🔧 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[]; pins: PinConfig[];
} }
export interface PeripheralSettingsDataRequest {
}
export interface WifiSettingsData { export interface WifiSettingsData {
hostname: string; hostname: string;
priorityRssi: boolean; priorityRssi: boolean;
@@ -284,6 +287,7 @@ export interface WebsocketMessage {
angles?: AnglesData | undefined; angles?: AnglesData | undefined;
i2cScan?: I2CScanData | undefined; i2cScan?: I2CScanData | undefined;
peripheralSettings?: PeripheralSettingsData | undefined; peripheralSettings?: PeripheralSettingsData | undefined;
peripheralSettingsDataRequest?: PeripheralSettingsDataRequest | undefined;
kinematicData?: KinematicData | undefined; kinematicData?: KinematicData | undefined;
wifiSettings?: WifiSettingsData | undefined; wifiSettings?: WifiSettingsData | undefined;
humanInputData?: HumanInputData | 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 { function createBaseWifiSettingsData(): WifiSettingsData {
return { hostname: "", priorityRssi: false, wifiNetworks: [] }; return { hostname: "", priorityRssi: false, wifiNetworks: [] };
} }
@@ -2886,6 +2933,7 @@ function createBaseWebsocketMessage(): WebsocketMessage {
angles: undefined, angles: undefined,
i2cScan: undefined, i2cScan: undefined,
peripheralSettings: undefined, peripheralSettings: undefined,
peripheralSettingsDataRequest: undefined,
kinematicData: undefined, kinematicData: undefined,
wifiSettings: undefined, wifiSettings: undefined,
humanInputData: undefined, humanInputData: undefined,
@@ -2934,6 +2982,9 @@ export const WebsocketMessage: MessageFns<WebsocketMessage> = {
if (message.peripheralSettings !== undefined) { if (message.peripheralSettings !== undefined) {
PeripheralSettingsData.encode(message.peripheralSettings, writer.uint32(1522).fork()).join(); 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) { if (message.kinematicData !== undefined) {
KinematicData.encode(message.kinematicData, writer.uint32(1602).fork()).join(); 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()); message.peripheralSettings = PeripheralSettingsData.decode(reader, reader.uint32());
continue; continue;
} }
case 191: {
if (tag !== 1530) {
break;
}
message.peripheralSettingsDataRequest = PeripheralSettingsDataRequest.decode(reader, reader.uint32());
continue;
}
case 200: { case 200: {
if (tag !== 1602) { if (tag !== 1602) {
break; break;
@@ -3120,6 +3179,9 @@ export const WebsocketMessage: MessageFns<WebsocketMessage> = {
peripheralSettings: isSet(object.peripheralSettings) peripheralSettings: isSet(object.peripheralSettings)
? PeripheralSettingsData.fromJSON(object.peripheralSettings) ? PeripheralSettingsData.fromJSON(object.peripheralSettings)
: undefined, : undefined,
peripheralSettingsDataRequest: isSet(object.peripheralSettingsDataRequest)
? PeripheralSettingsDataRequest.fromJSON(object.peripheralSettingsDataRequest)
: undefined,
kinematicData: isSet(object.kinematicData) ? KinematicData.fromJSON(object.kinematicData) : undefined, kinematicData: isSet(object.kinematicData) ? KinematicData.fromJSON(object.kinematicData) : undefined,
wifiSettings: isSet(object.wifiSettings) ? WifiSettingsData.fromJSON(object.wifiSettings) : undefined, wifiSettings: isSet(object.wifiSettings) ? WifiSettingsData.fromJSON(object.wifiSettings) : undefined,
humanInputData: isSet(object.humanInputData) ? HumanInputData.fromJSON(object.humanInputData) : undefined, humanInputData: isSet(object.humanInputData) ? HumanInputData.fromJSON(object.humanInputData) : undefined,
@@ -3168,6 +3230,9 @@ export const WebsocketMessage: MessageFns<WebsocketMessage> = {
if (message.peripheralSettings !== undefined) { if (message.peripheralSettings !== undefined) {
obj.peripheralSettings = PeripheralSettingsData.toJSON(message.peripheralSettings); obj.peripheralSettings = PeripheralSettingsData.toJSON(message.peripheralSettings);
} }
if (message.peripheralSettingsDataRequest !== undefined) {
obj.peripheralSettingsDataRequest = PeripheralSettingsDataRequest.toJSON(message.peripheralSettingsDataRequest);
}
if (message.kinematicData !== undefined) { if (message.kinematicData !== undefined) {
obj.kinematicData = KinematicData.toJSON(message.kinematicData); obj.kinematicData = KinematicData.toJSON(message.kinematicData);
} }
@@ -3223,6 +3288,10 @@ export const WebsocketMessage: MessageFns<WebsocketMessage> = {
message.peripheralSettings = (object.peripheralSettings !== undefined && object.peripheralSettings !== null) message.peripheralSettings = (object.peripheralSettings !== undefined && object.peripheralSettings !== null)
? PeripheralSettingsData.fromPartial(object.peripheralSettings) ? PeripheralSettingsData.fromPartial(object.peripheralSettings)
: undefined; : undefined;
message.peripheralSettingsDataRequest =
(object.peripheralSettingsDataRequest !== undefined && object.peripheralSettingsDataRequest !== null)
? PeripheralSettingsDataRequest.fromPartial(object.peripheralSettingsDataRequest)
: undefined;
message.kinematicData = (object.kinematicData !== undefined && object.kinematicData !== null) message.kinematicData = (object.kinematicData !== undefined && object.kinematicData !== null)
? KinematicData.fromPartial(object.kinematicData) ? KinematicData.fromPartial(object.kinematicData)
: undefined; : undefined;
@@ -4196,6 +4265,18 @@ export const protoMetadata: ProtoMetadata = {
"reservedRange": [], "reservedRange": [],
"reservedName": [], "reservedName": [],
"visibility": 0, "visibility": 0,
}, {
"name": "PeripheralSettingsDataRequest",
"field": [],
"extension": [],
"nestedType": [],
"enumType": [],
"extensionRange": [],
"oneofDecl": [],
"options": undefined,
"reservedRange": [],
"reservedName": [],
"visibility": 0,
}, { }, {
"name": "WifiSettingsData", "name": "WifiSettingsData",
"field": [{ "field": [{
@@ -4786,6 +4867,18 @@ export const protoMetadata: ProtoMetadata = {
"jsonName": "peripheralSettings", "jsonName": "peripheralSettings",
"options": undefined, "options": undefined,
"proto3Optional": false, "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", "name": "kinematic_data",
"number": 200, "number": 200,
@@ -4882,8 +4975,8 @@ export const protoMetadata: ProtoMetadata = {
"trailingComments": "", "trailingComments": "",
"leadingDetachedComments": [], "leadingDetachedComments": [],
}, { }, {
"path": [4, 26], "path": [4, 27],
"span": [110, 0, 130, 1], "span": [111, 0, 132, 1],
"leadingComments": " WebSocket message wrapper\n Only ONE field will be set at a time (oneof ensures this)\n", "leadingComments": " WebSocket message wrapper\n Only ONE field will be set at a time (oneof ensures this)\n",
"trailingComments": "", "trailingComments": "",
"leadingDetachedComments": [], "leadingDetachedComments": [],
@@ -4909,6 +5002,7 @@ export const protoMetadata: ProtoMetadata = {
".socket_message.AnglesData": AnglesData, ".socket_message.AnglesData": AnglesData,
".socket_message.I2CScanData": I2CScanData, ".socket_message.I2CScanData": I2CScanData,
".socket_message.PeripheralSettingsData": PeripheralSettingsData, ".socket_message.PeripheralSettingsData": PeripheralSettingsData,
".socket_message.PeripheralSettingsDataRequest": PeripheralSettingsDataRequest,
".socket_message.WifiSettingsData": WifiSettingsData, ".socket_message.WifiSettingsData": WifiSettingsData,
".socket_message.RSSIData": RSSIData, ".socket_message.RSSIData": RSSIData,
".socket_message.DownloadOTAData": DownloadOTAData, ".socket_message.DownloadOTAData": DownloadOTAData,
@@ -1,22 +1,22 @@
<script lang="ts"> <script lang="ts">
import { Cancel, Edit, EditOff, Power } from '$lib/components/icons' import { Cancel, Edit, EditOff, Power } from '$lib/components/icons'
import { socket } from '$lib/stores' import { socket } from '$lib/stores'
import { MessageTopic, type PeripheralsConfiguration } from '$lib/types/models'
import { onMount } from 'svelte' import { onMount } from 'svelte'
import { modals } from 'svelte-modals' import { modals } from 'svelte-modals'
import ConfirmDialog from '$lib/components/ConfirmDialog.svelte' 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) let isEditing = $state(false)
onMount(() => { onMount(() => {
socket.on(MessageTopic.peripheralSettings, handleSettings) let unsub = socket.on(PeripheralSettingsData, handleSettings)
socket.sendEvent(MessageTopic.peripheralSettings, '') socket.sendEvent(PeripheralSettingsDataRequest, {})
return () => socket.off(MessageTopic.peripheralSettings, handleSettings) return unsub
}) })
const handleSettings = (data: Record<string, unknown>) => { const handleSettings = (data: PeripheralSettingsData) => {
settings = data as PeripheralsConfiguration settings = data
} }
const handleSave = () => { const handleSave = () => {
@@ -30,7 +30,7 @@
}, },
onConfirm: () => { onConfirm: () => {
modals.close() 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 AnglesData { repeated int32 angles = 1; }
message I2CScanData { repeated I2CDevice devices = 1; } message I2CScanData { repeated I2CDevice devices = 1; }
message PeripheralSettingsData { int32 sda = 1; int32 scl = 2; int32 frequency = 3; repeated PinConfig pins = 4; } 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 WifiSettingsData { string hostname = 1; bool priority_rssi = 2; repeated KnownNetworkItem wifi_networks = 3; }
message RSSIData { int32 rssi = 1; } message RSSIData { int32 rssi = 1; }
message DownloadOTAData { string status = 1; int32 progress = 2; string error = 3; } message DownloadOTAData { string status = 1; int32 progress = 2; string error = 3; }
@@ -123,6 +124,7 @@ message WebsocketMessage {
AnglesData angles = 170; AnglesData angles = 170;
I2CScanData i2c_scan = 180; I2CScanData i2c_scan = 180;
PeripheralSettingsData peripheral_settings = 190; PeripheralSettingsData peripheral_settings = 190;
PeripheralSettingsDataRequest peripheral_settings_data_request = 191;
KinematicData kinematic_data = 200; KinematicData kinematic_data = 200;
WifiSettingsData wifi_settings = 240; WifiSettingsData wifi_settings = 240;
HumanInputData human_input_data = 250; HumanInputData human_input_data = 250;