Fix i2c svelte
This commit is contained in:
@@ -199,6 +199,9 @@ export interface I2CScanData {
|
|||||||
devices: I2CDevice[];
|
devices: I2CDevice[];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface I2CScanDataRequest {
|
||||||
|
}
|
||||||
|
|
||||||
export interface PeripheralSettingsData {
|
export interface PeripheralSettingsData {
|
||||||
sda: number;
|
sda: number;
|
||||||
scl: number;
|
scl: number;
|
||||||
@@ -286,6 +289,7 @@ export interface WebsocketMessage {
|
|||||||
analytics?: AnalyticsData | undefined;
|
analytics?: AnalyticsData | undefined;
|
||||||
angles?: AnglesData | undefined;
|
angles?: AnglesData | undefined;
|
||||||
i2cScan?: I2CScanData | undefined;
|
i2cScan?: I2CScanData | undefined;
|
||||||
|
i2cScanDataRequest?: I2CScanDataRequest | undefined;
|
||||||
peripheralSettings?: PeripheralSettingsData | undefined;
|
peripheralSettings?: PeripheralSettingsData | undefined;
|
||||||
peripheralSettingsDataRequest?: PeripheralSettingsDataRequest | undefined;
|
peripheralSettingsDataRequest?: PeripheralSettingsDataRequest | undefined;
|
||||||
kinematicData?: KinematicData | undefined;
|
kinematicData?: KinematicData | undefined;
|
||||||
@@ -1856,6 +1860,49 @@ export const I2CScanData: MessageFns<I2CScanData> = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function createBaseI2CScanDataRequest(): I2CScanDataRequest {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
|
export const I2CScanDataRequest: MessageFns<I2CScanDataRequest> = {
|
||||||
|
encode(_: I2CScanDataRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
||||||
|
return writer;
|
||||||
|
},
|
||||||
|
|
||||||
|
decode(input: BinaryReader | Uint8Array, length?: number): I2CScanDataRequest {
|
||||||
|
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
||||||
|
const end = length === undefined ? reader.len : reader.pos + length;
|
||||||
|
const message = createBaseI2CScanDataRequest();
|
||||||
|
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): I2CScanDataRequest {
|
||||||
|
return {};
|
||||||
|
},
|
||||||
|
|
||||||
|
toJSON(_: I2CScanDataRequest): unknown {
|
||||||
|
const obj: any = {};
|
||||||
|
return obj;
|
||||||
|
},
|
||||||
|
|
||||||
|
create<I extends Exact<DeepPartial<I2CScanDataRequest>, I>>(base?: I): I2CScanDataRequest {
|
||||||
|
return I2CScanDataRequest.fromPartial(base ?? ({} as any));
|
||||||
|
},
|
||||||
|
fromPartial<I extends Exact<DeepPartial<I2CScanDataRequest>, I>>(_: I): I2CScanDataRequest {
|
||||||
|
const message = createBaseI2CScanDataRequest();
|
||||||
|
return message;
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
function createBasePeripheralSettingsData(): PeripheralSettingsData {
|
function createBasePeripheralSettingsData(): PeripheralSettingsData {
|
||||||
return { sda: 0, scl: 0, frequency: 0, pins: [] };
|
return { sda: 0, scl: 0, frequency: 0, pins: [] };
|
||||||
}
|
}
|
||||||
@@ -2932,6 +2979,7 @@ function createBaseWebsocketMessage(): WebsocketMessage {
|
|||||||
analytics: undefined,
|
analytics: undefined,
|
||||||
angles: undefined,
|
angles: undefined,
|
||||||
i2cScan: undefined,
|
i2cScan: undefined,
|
||||||
|
i2cScanDataRequest: undefined,
|
||||||
peripheralSettings: undefined,
|
peripheralSettings: undefined,
|
||||||
peripheralSettingsDataRequest: undefined,
|
peripheralSettingsDataRequest: undefined,
|
||||||
kinematicData: undefined,
|
kinematicData: undefined,
|
||||||
@@ -2979,6 +3027,9 @@ export const WebsocketMessage: MessageFns<WebsocketMessage> = {
|
|||||||
if (message.i2cScan !== undefined) {
|
if (message.i2cScan !== undefined) {
|
||||||
I2CScanData.encode(message.i2cScan, writer.uint32(1442).fork()).join();
|
I2CScanData.encode(message.i2cScan, writer.uint32(1442).fork()).join();
|
||||||
}
|
}
|
||||||
|
if (message.i2cScanDataRequest !== undefined) {
|
||||||
|
I2CScanDataRequest.encode(message.i2cScanDataRequest, writer.uint32(1450).fork()).join();
|
||||||
|
}
|
||||||
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();
|
||||||
}
|
}
|
||||||
@@ -3103,6 +3154,14 @@ export const WebsocketMessage: MessageFns<WebsocketMessage> = {
|
|||||||
message.i2cScan = I2CScanData.decode(reader, reader.uint32());
|
message.i2cScan = I2CScanData.decode(reader, reader.uint32());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
case 181: {
|
||||||
|
if (tag !== 1450) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
message.i2cScanDataRequest = I2CScanDataRequest.decode(reader, reader.uint32());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
case 190: {
|
case 190: {
|
||||||
if (tag !== 1522) {
|
if (tag !== 1522) {
|
||||||
break;
|
break;
|
||||||
@@ -3176,6 +3235,9 @@ export const WebsocketMessage: MessageFns<WebsocketMessage> = {
|
|||||||
analytics: isSet(object.analytics) ? AnalyticsData.fromJSON(object.analytics) : undefined,
|
analytics: isSet(object.analytics) ? AnalyticsData.fromJSON(object.analytics) : undefined,
|
||||||
angles: isSet(object.angles) ? AnglesData.fromJSON(object.angles) : undefined,
|
angles: isSet(object.angles) ? AnglesData.fromJSON(object.angles) : undefined,
|
||||||
i2cScan: isSet(object.i2cScan) ? I2CScanData.fromJSON(object.i2cScan) : undefined,
|
i2cScan: isSet(object.i2cScan) ? I2CScanData.fromJSON(object.i2cScan) : undefined,
|
||||||
|
i2cScanDataRequest: isSet(object.i2cScanDataRequest)
|
||||||
|
? I2CScanDataRequest.fromJSON(object.i2cScanDataRequest)
|
||||||
|
: undefined,
|
||||||
peripheralSettings: isSet(object.peripheralSettings)
|
peripheralSettings: isSet(object.peripheralSettings)
|
||||||
? PeripheralSettingsData.fromJSON(object.peripheralSettings)
|
? PeripheralSettingsData.fromJSON(object.peripheralSettings)
|
||||||
: undefined,
|
: undefined,
|
||||||
@@ -3227,6 +3289,9 @@ export const WebsocketMessage: MessageFns<WebsocketMessage> = {
|
|||||||
if (message.i2cScan !== undefined) {
|
if (message.i2cScan !== undefined) {
|
||||||
obj.i2cScan = I2CScanData.toJSON(message.i2cScan);
|
obj.i2cScan = I2CScanData.toJSON(message.i2cScan);
|
||||||
}
|
}
|
||||||
|
if (message.i2cScanDataRequest !== undefined) {
|
||||||
|
obj.i2cScanDataRequest = I2CScanDataRequest.toJSON(message.i2cScanDataRequest);
|
||||||
|
}
|
||||||
if (message.peripheralSettings !== undefined) {
|
if (message.peripheralSettings !== undefined) {
|
||||||
obj.peripheralSettings = PeripheralSettingsData.toJSON(message.peripheralSettings);
|
obj.peripheralSettings = PeripheralSettingsData.toJSON(message.peripheralSettings);
|
||||||
}
|
}
|
||||||
@@ -3285,6 +3350,9 @@ export const WebsocketMessage: MessageFns<WebsocketMessage> = {
|
|||||||
message.i2cScan = (object.i2cScan !== undefined && object.i2cScan !== null)
|
message.i2cScan = (object.i2cScan !== undefined && object.i2cScan !== null)
|
||||||
? I2CScanData.fromPartial(object.i2cScan)
|
? I2CScanData.fromPartial(object.i2cScan)
|
||||||
: undefined;
|
: undefined;
|
||||||
|
message.i2cScanDataRequest = (object.i2cScanDataRequest !== undefined && object.i2cScanDataRequest !== null)
|
||||||
|
? I2CScanDataRequest.fromPartial(object.i2cScanDataRequest)
|
||||||
|
: undefined;
|
||||||
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;
|
||||||
@@ -4205,6 +4273,18 @@ export const protoMetadata: ProtoMetadata = {
|
|||||||
"reservedRange": [],
|
"reservedRange": [],
|
||||||
"reservedName": [],
|
"reservedName": [],
|
||||||
"visibility": 0,
|
"visibility": 0,
|
||||||
|
}, {
|
||||||
|
"name": "I2CScanDataRequest",
|
||||||
|
"field": [],
|
||||||
|
"extension": [],
|
||||||
|
"nestedType": [],
|
||||||
|
"enumType": [],
|
||||||
|
"extensionRange": [],
|
||||||
|
"oneofDecl": [],
|
||||||
|
"options": undefined,
|
||||||
|
"reservedRange": [],
|
||||||
|
"reservedName": [],
|
||||||
|
"visibility": 0,
|
||||||
}, {
|
}, {
|
||||||
"name": "PeripheralSettingsData",
|
"name": "PeripheralSettingsData",
|
||||||
"field": [{
|
"field": [{
|
||||||
@@ -4855,6 +4935,18 @@ export const protoMetadata: ProtoMetadata = {
|
|||||||
"jsonName": "i2cScan",
|
"jsonName": "i2cScan",
|
||||||
"options": undefined,
|
"options": undefined,
|
||||||
"proto3Optional": false,
|
"proto3Optional": false,
|
||||||
|
}, {
|
||||||
|
"name": "i2c_scan_data_request",
|
||||||
|
"number": 181,
|
||||||
|
"label": 1,
|
||||||
|
"type": 11,
|
||||||
|
"typeName": ".socket_message.I2CScanDataRequest",
|
||||||
|
"extendee": "",
|
||||||
|
"defaultValue": "",
|
||||||
|
"oneofIndex": 0,
|
||||||
|
"jsonName": "i2cScanDataRequest",
|
||||||
|
"options": undefined,
|
||||||
|
"proto3Optional": false,
|
||||||
}, {
|
}, {
|
||||||
"name": "peripheral_settings",
|
"name": "peripheral_settings",
|
||||||
"number": 190,
|
"number": 190,
|
||||||
@@ -4975,8 +5067,8 @@ export const protoMetadata: ProtoMetadata = {
|
|||||||
"trailingComments": "",
|
"trailingComments": "",
|
||||||
"leadingDetachedComments": [],
|
"leadingDetachedComments": [],
|
||||||
}, {
|
}, {
|
||||||
"path": [4, 27],
|
"path": [4, 28],
|
||||||
"span": [111, 0, 132, 1],
|
"span": [112, 0, 134, 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": [],
|
||||||
@@ -5001,6 +5093,7 @@ export const protoMetadata: ProtoMetadata = {
|
|||||||
".socket_message.AnalyticsData": AnalyticsData,
|
".socket_message.AnalyticsData": AnalyticsData,
|
||||||
".socket_message.AnglesData": AnglesData,
|
".socket_message.AnglesData": AnglesData,
|
||||||
".socket_message.I2CScanData": I2CScanData,
|
".socket_message.I2CScanData": I2CScanData,
|
||||||
|
".socket_message.I2CScanDataRequest": I2CScanDataRequest,
|
||||||
".socket_message.PeripheralSettingsData": PeripheralSettingsData,
|
".socket_message.PeripheralSettingsData": PeripheralSettingsData,
|
||||||
".socket_message.PeripheralSettingsDataRequest": PeripheralSettingsDataRequest,
|
".socket_message.PeripheralSettingsDataRequest": PeripheralSettingsDataRequest,
|
||||||
".socket_message.WifiSettingsData": WifiSettingsData,
|
".socket_message.WifiSettingsData": WifiSettingsData,
|
||||||
|
|||||||
@@ -54,13 +54,6 @@ export type Rssi = {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
export interface I2CDevice {
|
|
||||||
address: number
|
|
||||||
part_number: string
|
|
||||||
name: string
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
export type CameraSettings = {
|
export type CameraSettings = {
|
||||||
framesize: number
|
framesize: number
|
||||||
quality: number
|
quality: number
|
||||||
|
|||||||
@@ -2,50 +2,43 @@
|
|||||||
import SettingsCard from '$lib/components/SettingsCard.svelte'
|
import SettingsCard from '$lib/components/SettingsCard.svelte'
|
||||||
import { onMount } from 'svelte'
|
import { onMount } from 'svelte'
|
||||||
import { socket } from '$lib/stores'
|
import { socket } from '$lib/stores'
|
||||||
import { type I2CDevice } from '$lib/types/models'
|
|
||||||
import { Connection } from '$lib/components/icons'
|
import { Connection } from '$lib/components/icons'
|
||||||
import I2CSetting from './i2cSetting.svelte'
|
import I2CSetting from './i2cSetting.svelte'
|
||||||
import { I2CScanData } from '$lib/platform_shared/websocket_message'
|
import { I2CDevice, I2CScanData, I2CScanDataRequest } from '$lib/platform_shared/websocket_message'
|
||||||
|
|
||||||
const i2cDevices = [
|
// TODO: Delete this completely, this should be done on esp side, as it decides what addresses are actually valid, as for example ICM20948 and MPU6050 can have same address
|
||||||
{ address: 30, part_number: 'HMC5883', name: '3-Axis Digital Compass/Magnetometer IC' },
|
// const i2cDevices = [
|
||||||
{ address: 41, part_number: 'BNO055', name: '9-Axis Absolute Orientation Sensor' },
|
// { address: 30, part_number: 'HMC5883', name: '3-Axis Digital Compass/Magnetometer IC' },
|
||||||
{ address: 64, part_number: 'PCA9685', name: '16-channel PWM driver default address' },
|
// { address: 41, part_number: 'BNO055', name: '9-Axis Absolute Orientation Sensor' },
|
||||||
{ address: 72, part_number: 'ADS1115', name: '4-channel 16-bit ADC' },
|
// { address: 64, part_number: 'PCA9685', name: '16-channel PWM driver default address' },
|
||||||
{
|
// { address: 72, part_number: 'ADS1115', name: '4-channel 16-bit ADC' },
|
||||||
address: 104,
|
// {
|
||||||
part_number: 'MPU6050',
|
// address: 104,
|
||||||
name: 'Six-Axis (Gyro + Accelerometer) MEMS MotionTracking™ Devices'
|
// part_number: 'MPU6050',
|
||||||
},
|
// name: 'Six-Axis (Gyro + Accelerometer) MEMS MotionTracking™ Devices'
|
||||||
{ address: 115, part_number: 'PAJ7620U2', name: 'Gesture sensor' },
|
// },
|
||||||
{ address: 119, part_number: 'BMP085', name: 'Temp/Barometric' }
|
// { address: 115, part_number: 'PAJ7620U2', name: 'Gesture sensor' },
|
||||||
]
|
// { address: 119, part_number: 'BMP085', name: 'Temp/Barometric' }
|
||||||
|
// ]
|
||||||
|
|
||||||
let active_devices: I2CDevice[] = $state([])
|
let active_devices: I2CDevice[] = $state([])
|
||||||
|
|
||||||
let isLoading = $state(false)
|
let isLoading = $state(false)
|
||||||
|
|
||||||
onMount(() => {
|
onMount(() => {
|
||||||
socket.on(I2CScanData, handleScan)
|
const unsub = socket.on(I2CScanData, handleScan)
|
||||||
triggerScan()
|
triggerScan()
|
||||||
return () => socket.off(I2CScanData, handleScan)
|
return () => unsub
|
||||||
})
|
})
|
||||||
|
|
||||||
const handleScan = (data: { addresses: number[] }) => {
|
const handleScan = (data: I2CScanData) => {
|
||||||
active_devices = data.addresses.map(
|
active_devices = data.devices
|
||||||
(address: number) =>
|
|
||||||
i2cDevices.find(device => device.address === address) || {
|
|
||||||
address,
|
|
||||||
part_number: 'Unknown',
|
|
||||||
name: 'Unknown'
|
|
||||||
}
|
|
||||||
)
|
|
||||||
isLoading = false
|
isLoading = false
|
||||||
}
|
}
|
||||||
|
|
||||||
const triggerScan = () => {
|
const triggerScan = () => {
|
||||||
isLoading = true
|
isLoading = true
|
||||||
socket.sendEvent(I2CScanData, '')
|
socket.sendEvent(I2CScanDataRequest, {})
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -72,6 +72,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 I2CScanDataRequest {}
|
||||||
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 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; }
|
||||||
@@ -123,6 +124,7 @@ message WebsocketMessage {
|
|||||||
AnalyticsData analytics = 150;
|
AnalyticsData analytics = 150;
|
||||||
AnglesData angles = 170;
|
AnglesData angles = 170;
|
||||||
I2CScanData i2c_scan = 180;
|
I2CScanData i2c_scan = 180;
|
||||||
|
I2CScanDataRequest i2c_scan_data_request = 181;
|
||||||
PeripheralSettingsData peripheral_settings = 190;
|
PeripheralSettingsData peripheral_settings = 190;
|
||||||
PeripheralSettingsDataRequest peripheral_settings_data_request = 191;
|
PeripheralSettingsDataRequest peripheral_settings_data_request = 191;
|
||||||
KinematicData kinematic_data = 200;
|
KinematicData kinematic_data = 200;
|
||||||
|
|||||||
Reference in New Issue
Block a user