🔧 Fixed i2c settings

This commit is contained in:
Niklas Jensen
2026-01-02 19:07:54 +01:00
committed by nikguin04
parent 13546d600c
commit b485579d80
3 changed files with 106 additions and 10 deletions
@@ -206,6 +206,9 @@ export interface PeripheralSettingsData {
pins: PinConfig[];
}
export interface PeripheralSettingsDataRequest {
}
export interface WifiSettingsData {
hostname: string;
priorityRssi: boolean;
@@ -284,6 +287,7 @@ export interface WebsocketMessage {
angles?: AnglesData | undefined;
i2cScan?: I2CScanData | undefined;
peripheralSettings?: PeripheralSettingsData | undefined;
peripheralSettingsDataRequest?: PeripheralSettingsDataRequest | undefined;
kinematicData?: KinematicData | undefined;
wifiSettings?: WifiSettingsData | undefined;
humanInputData?: HumanInputData | undefined;
@@ -1960,6 +1964,49 @@ export const PeripheralSettingsData: MessageFns<PeripheralSettingsData> = {
},
};
function createBasePeripheralSettingsDataRequest(): PeripheralSettingsDataRequest {
return {};
}
export const PeripheralSettingsDataRequest: MessageFns<PeripheralSettingsDataRequest> = {
encode(_: PeripheralSettingsDataRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
return writer;
},
decode(input: BinaryReader | Uint8Array, length?: number): PeripheralSettingsDataRequest {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
const end = length === undefined ? reader.len : reader.pos + length;
const message = createBasePeripheralSettingsDataRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(_: any): PeripheralSettingsDataRequest {
return {};
},
toJSON(_: PeripheralSettingsDataRequest): unknown {
const obj: any = {};
return obj;
},
create<I extends Exact<DeepPartial<PeripheralSettingsDataRequest>, I>>(base?: I): PeripheralSettingsDataRequest {
return PeripheralSettingsDataRequest.fromPartial(base ?? ({} as any));
},
fromPartial<I extends Exact<DeepPartial<PeripheralSettingsDataRequest>, I>>(_: I): PeripheralSettingsDataRequest {
const message = createBasePeripheralSettingsDataRequest();
return message;
},
};
function createBaseWifiSettingsData(): WifiSettingsData {
return { hostname: "", priorityRssi: false, wifiNetworks: [] };
}
@@ -2886,6 +2933,7 @@ function createBaseWebsocketMessage(): WebsocketMessage {
angles: undefined,
i2cScan: undefined,
peripheralSettings: undefined,
peripheralSettingsDataRequest: undefined,
kinematicData: undefined,
wifiSettings: undefined,
humanInputData: undefined,
@@ -2934,6 +2982,9 @@ export const WebsocketMessage: MessageFns<WebsocketMessage> = {
if (message.peripheralSettings !== undefined) {
PeripheralSettingsData.encode(message.peripheralSettings, writer.uint32(1522).fork()).join();
}
if (message.peripheralSettingsDataRequest !== undefined) {
PeripheralSettingsDataRequest.encode(message.peripheralSettingsDataRequest, writer.uint32(1530).fork()).join();
}
if (message.kinematicData !== undefined) {
KinematicData.encode(message.kinematicData, writer.uint32(1602).fork()).join();
}
@@ -3060,6 +3111,14 @@ export const WebsocketMessage: MessageFns<WebsocketMessage> = {
message.peripheralSettings = PeripheralSettingsData.decode(reader, reader.uint32());
continue;
}
case 191: {
if (tag !== 1530) {
break;
}
message.peripheralSettingsDataRequest = PeripheralSettingsDataRequest.decode(reader, reader.uint32());
continue;
}
case 200: {
if (tag !== 1602) {
break;
@@ -3120,6 +3179,9 @@ export const WebsocketMessage: MessageFns<WebsocketMessage> = {
peripheralSettings: isSet(object.peripheralSettings)
? PeripheralSettingsData.fromJSON(object.peripheralSettings)
: undefined,
peripheralSettingsDataRequest: isSet(object.peripheralSettingsDataRequest)
? PeripheralSettingsDataRequest.fromJSON(object.peripheralSettingsDataRequest)
: undefined,
kinematicData: isSet(object.kinematicData) ? KinematicData.fromJSON(object.kinematicData) : undefined,
wifiSettings: isSet(object.wifiSettings) ? WifiSettingsData.fromJSON(object.wifiSettings) : undefined,
humanInputData: isSet(object.humanInputData) ? HumanInputData.fromJSON(object.humanInputData) : undefined,
@@ -3168,6 +3230,9 @@ export const WebsocketMessage: MessageFns<WebsocketMessage> = {
if (message.peripheralSettings !== undefined) {
obj.peripheralSettings = PeripheralSettingsData.toJSON(message.peripheralSettings);
}
if (message.peripheralSettingsDataRequest !== undefined) {
obj.peripheralSettingsDataRequest = PeripheralSettingsDataRequest.toJSON(message.peripheralSettingsDataRequest);
}
if (message.kinematicData !== undefined) {
obj.kinematicData = KinematicData.toJSON(message.kinematicData);
}
@@ -3223,6 +3288,10 @@ export const WebsocketMessage: MessageFns<WebsocketMessage> = {
message.peripheralSettings = (object.peripheralSettings !== undefined && object.peripheralSettings !== null)
? PeripheralSettingsData.fromPartial(object.peripheralSettings)
: undefined;
message.peripheralSettingsDataRequest =
(object.peripheralSettingsDataRequest !== undefined && object.peripheralSettingsDataRequest !== null)
? PeripheralSettingsDataRequest.fromPartial(object.peripheralSettingsDataRequest)
: undefined;
message.kinematicData = (object.kinematicData !== undefined && object.kinematicData !== null)
? KinematicData.fromPartial(object.kinematicData)
: undefined;
@@ -4196,6 +4265,18 @@ export const protoMetadata: ProtoMetadata = {
"reservedRange": [],
"reservedName": [],
"visibility": 0,
}, {
"name": "PeripheralSettingsDataRequest",
"field": [],
"extension": [],
"nestedType": [],
"enumType": [],
"extensionRange": [],
"oneofDecl": [],
"options": undefined,
"reservedRange": [],
"reservedName": [],
"visibility": 0,
}, {
"name": "WifiSettingsData",
"field": [{
@@ -4786,6 +4867,18 @@ export const protoMetadata: ProtoMetadata = {
"jsonName": "peripheralSettings",
"options": undefined,
"proto3Optional": false,
}, {
"name": "peripheral_settings_data_request",
"number": 191,
"label": 1,
"type": 11,
"typeName": ".socket_message.PeripheralSettingsDataRequest",
"extendee": "",
"defaultValue": "",
"oneofIndex": 0,
"jsonName": "peripheralSettingsDataRequest",
"options": undefined,
"proto3Optional": false,
}, {
"name": "kinematic_data",
"number": 200,
@@ -4882,8 +4975,8 @@ export const protoMetadata: ProtoMetadata = {
"trailingComments": "",
"leadingDetachedComments": [],
}, {
"path": [4, 26],
"span": [110, 0, 130, 1],
"path": [4, 27],
"span": [111, 0, 132, 1],
"leadingComments": " WebSocket message wrapper\n Only ONE field will be set at a time (oneof ensures this)\n",
"trailingComments": "",
"leadingDetachedComments": [],
@@ -4909,6 +5002,7 @@ export const protoMetadata: ProtoMetadata = {
".socket_message.AnglesData": AnglesData,
".socket_message.I2CScanData": I2CScanData,
".socket_message.PeripheralSettingsData": PeripheralSettingsData,
".socket_message.PeripheralSettingsDataRequest": PeripheralSettingsDataRequest,
".socket_message.WifiSettingsData": WifiSettingsData,
".socket_message.RSSIData": RSSIData,
".socket_message.DownloadOTAData": DownloadOTAData,
@@ -1,22 +1,22 @@
<script lang="ts">
import { Cancel, Edit, EditOff, Power } from '$lib/components/icons'
import { socket } from '$lib/stores'
import { MessageTopic, type PeripheralsConfiguration } from '$lib/types/models'
import { onMount } from 'svelte'
import { modals } from 'svelte-modals'
import ConfirmDialog from '$lib/components/ConfirmDialog.svelte'
import { PeripheralSettingsData, PeripheralSettingsDataRequest } from '$lib/platform_shared/websocket_message'
let settings: PeripheralsConfiguration | null = $state(null)
let settings: PeripheralSettingsData | null = $state(null)
let isEditing = $state(false)
onMount(() => {
socket.on(MessageTopic.peripheralSettings, handleSettings)
socket.sendEvent(MessageTopic.peripheralSettings, '')
return () => socket.off(MessageTopic.peripheralSettings, handleSettings)
let unsub = socket.on(PeripheralSettingsData, handleSettings)
socket.sendEvent(PeripheralSettingsDataRequest, {})
return unsub
})
const handleSettings = (data: Record<string, unknown>) => {
settings = data as PeripheralsConfiguration
const handleSettings = (data: PeripheralSettingsData) => {
settings = data
}
const handleSave = () => {
@@ -30,7 +30,7 @@
},
onConfirm: () => {
modals.close()
socket.sendEvent(MessageTopic.peripheralSettings, settings)
socket.sendEvent(PeripheralSettingsData, settings)
}
})
}
+2
View File
@@ -73,6 +73,7 @@ message AnalyticsData {
message AnglesData { repeated int32 angles = 1; }
message I2CScanData { repeated I2CDevice devices = 1; }
message PeripheralSettingsData { int32 sda = 1; int32 scl = 2; int32 frequency = 3; repeated PinConfig pins = 4; }
message PeripheralSettingsDataRequest {}
message WifiSettingsData { string hostname = 1; bool priority_rssi = 2; repeated KnownNetworkItem wifi_networks = 3; }
message RSSIData { int32 rssi = 1; }
message DownloadOTAData { string status = 1; int32 progress = 2; string error = 3; }
@@ -123,6 +124,7 @@ message WebsocketMessage {
AnglesData angles = 170;
I2CScanData i2c_scan = 180;
PeripheralSettingsData peripheral_settings = 190;
PeripheralSettingsDataRequest peripheral_settings_data_request = 191;
KinematicData kinematic_data = 200;
WifiSettingsData wifi_settings = 240;
HumanInputData human_input_data = 250;