🚚 Rename websocket_message to messages

This commit is contained in:
Rune Harlyk
2026-01-03 17:00:33 +01:00
committed by nikguin04
parent c4b1ae8335
commit 775ca78a10
33 changed files with 144 additions and 176 deletions
+1 -1
View File
@@ -37,7 +37,7 @@
import { radToDeg } from 'three/src/math/MathUtils.js'
import type { URDFRobot } from 'urdf-loader'
import { get } from 'svelte/store'
import { AnglesData, KinematicData, ModesEnum } from '$lib/platform_shared/websocket_message'
import { AnglesData, KinematicData, ModesEnum } from '$lib/platform_shared/message'
interface Props {
defaultColor?: string | null
@@ -1,5 +1,5 @@
<script lang="ts">
import { ModeData, ModesEnum } from '$lib/platform_shared/websocket_message'
import { ModeData, ModesEnum } from '$lib/platform_shared/message'
import { mode } from '$lib/stores'
const deactivate = async () => {
+1 -1
View File
@@ -1,7 +1,7 @@
import { get } from 'svelte/store'
import type { body_state_t } from './kinematic'
import { currentKinematic } from './stores/featureFlags'
import { HumanInputData, WalkGaits } from './platform_shared/websocket_message'
import { HumanInputData, WalkGaits } from './platform_shared/message'
export interface gait_state_t {
step_height: number
+1 -1
View File
@@ -1,4 +1,4 @@
import { AnalyticsData } from '$lib/platform_shared/websocket_message'
import { AnalyticsData } from '$lib/platform_shared/message'
import { writable } from 'svelte/store'
const analytics_data: AnalyticsData[] = []
+1 -1
View File
@@ -1,5 +1,5 @@
import { writable } from 'svelte/store'
import { IMUData } from '$lib/platform_shared/websocket_message'
import { IMUData } from '$lib/platform_shared/message'
const imu_data: IMUData[] = []
const maxIMUData = 100
+1 -1
View File
@@ -6,7 +6,7 @@ import {
ModesEnum,
WalkGaitData,
WalkGaits
} from '$lib/platform_shared/websocket_message'
} from '$lib/platform_shared/message'
import { persistentStore } from '$lib/utilities/svelte-utilities'
import { writable, type Writable } from 'svelte/store'
+1 -1
View File
@@ -1,4 +1,4 @@
import { AnglesData } from '$lib/platform_shared/websocket_message'
import { AnglesData } from '$lib/platform_shared/message'
import { writable, type Writable } from 'svelte/store'
export const servoAnglesOut: Writable<AnglesData> = writable(
+34 -34
View File
@@ -1,12 +1,12 @@
import { writable } from 'svelte/store'
import {
WebsocketMessage,
Message,
CorrelationRequest,
CorrelationResponse,
protoMetadata as websocket_md,
protoMetadata,
type MessageFns
} from '$lib/platform_shared/websocket_message'
import * as WebsocketMessages from '$lib/platform_shared/websocket_message'
} from '$lib/platform_shared/message'
import * as Messages from '$lib/platform_shared/message'
export const MESSAGE_TYPE_TO_KEY = new Map<MessageFns<unknown>, string>()
export const MESSAGE_TYPE_TO_TAG = new Map<MessageFns<unknown>, number>()
@@ -20,14 +20,14 @@ type PendingRequest = {
timeoutId: ReturnType<typeof setTimeout>
}
const websocketMessageType = websocket_md.fileDescriptor.messageType?.find(
(msg: { name: string }) => msg.name === 'WebsocketMessage'
const MessageType = protoMetadata.fileDescriptor.messageType?.find(
(msg: { name: string }) => msg.name === 'Message'
)
if (websocketMessageType?.field) {
for (const field of websocketMessageType.field) {
if (MessageType?.field) {
for (const field of MessageType.field) {
if (field.typeName) {
const messageFns = websocket_md.references[field.typeName]
const messageFns = protoMetadata.references[field.typeName]
if (messageFns && field.jsonName && field.number) {
MESSAGE_TYPE_TO_KEY.set(messageFns, field.jsonName)
MESSAGE_TYPE_TO_TAG.set(messageFns, field.number)
@@ -38,21 +38,21 @@ if (websocketMessageType?.field) {
}
}
function get_name_from_messagetype<T>(event_type: MessageFns<T>): string {
function getNameFromMessageType<T>(event_type: MessageFns<T>): string {
const event = MESSAGE_TYPE_TO_KEY.get(event_type as MessageFns<unknown>)
if (!event) {
throw new Error(
"Event type not found in 'WebsocketMessage'. The MessageFns you passed doesn't correspond to any WebsocketMessage field."
"Event type not found in 'Message'. The MessageFns you passed doesn't correspond to any Message field."
)
}
return event
}
function get_tag_from_messagetype<T>(event_type: MessageFns<T>): number {
function getTagFromMessageType<T>(event_type: MessageFns<T>): number {
const fieldNumber = MESSAGE_TYPE_TO_TAG.get(event_type as MessageFns<unknown>)
if (fieldNumber === undefined) {
throw new Error(
"Tag not found in 'WebsocketMessage'. The MessageFns you passed doesn't correspond to any WebsocketMessage field."
"Tag not found in 'Message'. The MessageFns you passed doesn't correspond to any Message field."
)
}
return fieldNumber
@@ -60,10 +60,10 @@ function get_tag_from_messagetype<T>(event_type: MessageFns<T>): number {
type SocketEvent = 'open' | 'close' | 'error' | 'message' | 'unresponsive'
type TaggedSocketMessage = { tag: number; msg: WebsocketMessage }
type TaggedMessage = { tag: number; msg: Message }
export const decodeMessage = (data: ArrayBuffer): TaggedSocketMessage => {
const decoded = WebsocketMessage.decode(new Uint8Array(data))
export const decodeMessage = (data: ArrayBuffer): TaggedMessage => {
const decoded = Message.decode(new Uint8Array(data))
const values = Object.entries(decoded).filter(([, value]) => value !== undefined)
if (values.length != 1) {
throw new Error('Message included either 0 or more than 1 data point')
@@ -76,8 +76,8 @@ export const decodeMessage = (data: ArrayBuffer): TaggedSocketMessage => {
return { tag: tag, msg: decoded }
}
export const encodeMessage = (data: WebsocketMessage): Uint8Array<ArrayBuffer> => {
const encoded = WebsocketMessage.encode(data).finish()
export const encodeMessage = (data: Message): Uint8Array<ArrayBuffer> => {
const encoded = Message.encode(data).finish()
return encoded
}
@@ -158,7 +158,7 @@ function createWebSocket() {
}
function unsubscribe<MT>(event_type: MessageFns<MT>, listener: (data: MT) => void) {
const tag = get_tag_from_messagetype(event_type)
const tag = getTagFromMessageType(event_type)
const message_listeners_totag = message_listeners.get(tag)
if (!message_listeners_totag) return
@@ -182,43 +182,43 @@ function createWebSocket() {
function sendEvent<T>(event: MessageFns<T>, data: T) {
if (!ws || ws.readyState !== WebSocket.OPEN) return
const type = get_name_from_messagetype(event)
const wsm = WebsocketMessage.create() as Record<string, unknown>
const type = getNameFromMessageType(event)
const wsm = Message.create() as Record<string, unknown>
wsm[type] = data
send(wsm as WebsocketMessage)
send(wsm as Message)
}
function unsubscribeToMessageFromServer<T>(event_type: MessageFns<T>) {
if (!ws || ws.readyState !== WebSocket.OPEN) return
const unsub_msg = WebsocketMessages.UnsubscribeNotification.create({
tag: get_tag_from_messagetype(event_type)
const unsub_msg = Messages.UnsubscribeNotification.create({
tag: getTagFromMessageType(event_type)
})
send(WebsocketMessage.create({ unsubNotif: unsub_msg }))
send(Message.create({ unsubNotif: unsub_msg }))
}
function subscribeToEvent<T>(event_type: MessageFns<T>) {
if (!ws || ws.readyState !== WebSocket.OPEN) return
const sub_msg = WebsocketMessages.SubscribeNotification.create({
tag: get_tag_from_messagetype(event_type)
const sub_msg = Messages.SubscribeNotification.create({
tag: getTagFromMessageType(event_type)
})
send(WebsocketMessage.create({ subNotif: sub_msg }))
send(Message.create({ subNotif: sub_msg }))
}
function resubscribeAll() {
for (const tag of message_listeners.keys()) {
const sub_msg = WebsocketMessages.SubscribeNotification.create({ tag })
send(WebsocketMessage.create({ subNotif: sub_msg }))
const sub_msg = Messages.SubscribeNotification.create({ tag })
send(Message.create({ subNotif: sub_msg }))
}
}
function send(data: WebsocketMessage) {
function send(data: Message) {
if (!ws || ws.readyState !== WebSocket.OPEN) return
const encoded = encodeMessage(data)
ws.send(encoded)
}
function ping() {
send(WebsocketMessage.create({ pingmsg: {} }))
send(Message.create({ pingmsg: {} }))
}
function sendRequest(
@@ -235,7 +235,7 @@ function createWebSocket() {
pending_requests.set(correlationId, { resolve, reject, timeoutId })
const request = CorrelationRequest.create({ correlationId, ...data })
send(WebsocketMessage.create({ correlationRequest: request }))
send(Message.create({ correlationRequest: request }))
}
function flushQueuedRequests() {
@@ -250,7 +250,7 @@ function createWebSocket() {
sendEvent,
init,
on: <MT>(event_type: MessageFns<MT>, listener: (data: MT) => void): (() => void) => {
const tag = get_tag_from_messagetype(event_type)
const tag = getTagFromMessageType(event_type)
let message_listeners_totag = message_listeners.get(tag)
if (!message_listeners_totag) {
+1 -1
View File
@@ -1,4 +1,4 @@
import { DownloadOTAData, RSSIData } from '$lib/platform_shared/websocket_message'
import { DownloadOTAData, RSSIData } from '$lib/platform_shared/message'
import { writable } from 'svelte/store'
type telemetry_data_type = {
+2 -2
View File
@@ -32,7 +32,7 @@
RSSIData,
SonarData,
WalkGaitData
} from '$lib/platform_shared/websocket_message'
} from '$lib/platform_shared/message'
import { Throttler } from '$lib/utilities'
interface Props {
@@ -82,7 +82,7 @@
servoAngles.set(data)
}),
socket.on(PingMsg, data => {
console.log("Ping received!")
console.log('Ping received!')
})
]
)
+1 -1
View File
@@ -5,7 +5,7 @@
import { onMount } from 'svelte'
import { mpu, socket } from '$lib/stores'
import { imu } from '$lib/stores/imu'
import { IMUData } from '$lib/platform_shared/websocket_message'
import { IMUData } from '$lib/platform_shared/message'
let layout = $derived($views.find(v => v.name === $selectedView)!)
+1 -6
View File
@@ -14,12 +14,7 @@
import { VerticalSlider } from '$lib/components/input'
import { gamepadAxes, gamepadButtonsEdges, hasGamepad } from '$lib/stores/gamepad'
import { notifications } from '$lib/components/toasts/notifications'
import {
ModeData,
ModesEnum,
WalkGaitData,
WalkGaits
} from '$lib/platform_shared/websocket_message'
import { ModeData, ModesEnum, WalkGaitData, WalkGaits } from '$lib/platform_shared/message'
let left: nipplejs.JoystickManager
let right: nipplejs.JoystickManager
+1 -1
View File
@@ -4,7 +4,7 @@
import { socket } from '$lib/stores'
import { Connection } from '$lib/components/icons'
import I2CSetting from './i2cSetting.svelte'
import type { I2CDevice } from '$lib/platform_shared/websocket_message'
import type { I2CDevice } from '$lib/platform_shared/message'
let active_devices: I2CDevice[] = $state([])
let isLoading = $state(false)
@@ -7,7 +7,7 @@
import {
PeripheralSettingsData,
PeripheralSettingsDataRequest
} from '$lib/platform_shared/websocket_message'
} from '$lib/platform_shared/message'
let settings: PeripheralSettingsData | null = $state(null)
let isEditing = $state(false)
+1 -1
View File
@@ -9,7 +9,7 @@
import { useFeatureFlags } from '$lib/stores/featureFlags'
import { Rotate3d } from '$lib/components/icons'
import { type IMUCalibrateData, IMUData } from '$lib/platform_shared/websocket_message'
import { type IMUCalibrateData, IMUData } from '$lib/platform_shared/message'
Chart.register(...registerables)
@@ -1,5 +1,5 @@
<script lang="ts">
import { ServoPWMData, ServoStateData } from '$lib/platform_shared/websocket_message'
import { ServoPWMData, ServoStateData } from '$lib/platform_shared/message'
import { socket } from '$lib/stores'
import { Throttler } from '$lib/utilities'
+23 -11
View File
@@ -3,7 +3,13 @@
import { socket } from '$lib/stores'
//import { IMUReport, IMUType } from '$lib/platform_shared/example';
import { AnglesData, WebsocketMessage, IMUData, CorrelationRequest, CorrelationResponse } from '$lib/platform_shared/websocket_message'
import {
AnglesData,
Message,
IMUData,
CorrelationRequest,
CorrelationResponse
} from '$lib/platform_shared/message'
// const imu_report: IMUReport = {type: IMUType.IMU_ACCEL, xVal: 4}
// const writer = IMUReport.encode(imu_report);
@@ -13,20 +19,20 @@
// .map((b) => b.toString(16).padStart(2, '0'))
// .join(' ');
// const wmd: WebsocketMessage = { imu: {temp: 0, x: 0, y: 0, z: 1}, angles: {angles: [2]}}
// const wmd: WebsocketMessage = { imu: {temp: 0, x: 0, y: 0, z: 0} }
// const wmd: WebsocketMessage = { rssi: { rssi: 16 } }
// const wmd: WebsocketMessage = { imu: {temp: 1, x: 2, y: 4, z: 5} }
// const wmd: WebsocketMessage = { angles: {angles: [1,2,3,4]} }
const wmd: WebsocketMessage = { pongmsg: {} }
const writer = WebsocketMessage.encode(wmd)
// const wmd: Message = { imu: {temp: 0, x: 0, y: 0, z: 1}, angles: {angles: [2]}}
// const wmd: Message = { imu: {temp: 0, x: 0, y: 0, z: 0} }
// const wmd: Message = { rssi: { rssi: 16 } }
// const wmd: Message = { imu: {temp: 1, x: 2, y: 4, z: 5} }
// const wmd: Message = { angles: {angles: [1,2,3,4]} }
const wmd: Message = { pongmsg: {} }
const writer = Message.encode(wmd)
const bytes = writer.finish()
// Convert bytes to hex
const hex = Array.from(bytes)
.map(b => b.toString(16).padStart(2, '0'))
.join(' ')
// const decodedmsg: WebsocketMessage = WebsocketMessage.decode(bytes);
// const decodedmsg: Message = Message.decode(bytes);
// const objects = Object.entries(decodedmsg)
// console.log(Object.keys(AnglesData.create())[0] )
@@ -48,11 +54,17 @@
// console.log(data)
}
onMount(() => {
socket.on(CorrelationResponse, (data) => {
socket.on(CorrelationResponse, data => {
console.log(data)
})
socket.onEvent('open', () => {
socket.sendEvent(CorrelationRequest, CorrelationRequest.create({correlationId: 69, featuresDataRequest: { sonarTest: true }}))
socket.sendEvent(
CorrelationRequest,
CorrelationRequest.create({
correlationId: 69,
featuresDataRequest: { sonarTest: true }
})
)
})
return socket.on(IMUData, handleData)
@@ -31,7 +31,7 @@
} from '$lib/components/icons'
import StatusItem from '$lib/components/StatusItem.svelte'
import ActionButton from './ActionButton.svelte'
import { AnalyticsData, type SystemInformation } from '$lib/platform_shared/websocket_message'
import { AnalyticsData, type SystemInformation } from '$lib/platform_shared/message'
const features = useFeatureFlags()
+1 -1
View File
@@ -33,7 +33,7 @@
Edit
} from '$lib/components/icons'
import StatusItem from '$lib/components/StatusItem.svelte'
import { KnownNetworkItem } from '$lib/platform_shared/websocket_message'
import { KnownNetworkItem } from '$lib/platform_shared/message'
import { WifiSettings, type WifiStatus } from '$lib/platform_shared/rest_message'
let networkEditable: KnownNetworkItem = $state(KnownNetworkItem.create())