diff --git a/app/src/routes/+layout.svelte b/app/src/routes/+layout.svelte index a31cb11..66d47fe 100644 --- a/app/src/routes/+layout.svelte +++ b/app/src/routes/+layout.svelte @@ -28,6 +28,7 @@ HumanInputData, KinematicData, ModeData, + PingMsg, RSSIData, SonarData, WalkGaitData @@ -74,10 +75,14 @@ socket.on(RSSIData, data => telemetry.setRSSI(data)), socket.on(ModeData, data => mode.set(data)), socket.on(AnalyticsData, data => { + // console.log(data); analytics.addData(data) }), socket.on(AnglesData, data => { servoAngles.set(data) + }), + socket.on(PingMsg, data => { + console.log("Ping received!") }) ] ) diff --git a/app/src/routes/prototest/+page.svelte b/app/src/routes/prototest/+page.svelte index 74fcd7e..d687a07 100644 --- a/app/src/routes/prototest/+page.svelte +++ b/app/src/routes/prototest/+page.svelte @@ -3,7 +3,7 @@ import { socket } from '$lib/stores' //import { IMUReport, IMUType } from '$lib/platform_shared/example'; - import { AnglesData, WebsocketMessage, IMUData } from '$lib/platform_shared/websocket_message' + import { AnglesData, WebsocketMessage, IMUData, CorrelationRequest, CorrelationResponse } from '$lib/platform_shared/websocket_message' // const imu_report: IMUReport = {type: IMUType.IMU_ACCEL, xVal: 4} // const writer = IMUReport.encode(imu_report); @@ -15,9 +15,10 @@ // 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 = { 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 bytes = writer.finish() // Convert bytes to hex @@ -44,9 +45,16 @@ // } const handleData = (data: IMUData) => { - console.log(data) + // console.log(data) } onMount(() => { + socket.on(CorrelationResponse, (data) => { + console.log(data) + }) + socket.onEvent('open', () => { + socket.sendEvent(CorrelationRequest, CorrelationRequest.create({correlationId: 69, featuresDataRequest: { sonarTest: true }})) + }) + return socket.on(IMUData, handleData) }) diff --git a/esp32/src/main.cpp b/esp32/src/main.cpp index 0f86512..984cf9d 100644 --- a/esp32/src/main.cpp +++ b/esp32/src/main.cpp @@ -169,6 +169,32 @@ void setupEventSocket() { socket.on([&](const socket_message_ServoStateData &data, int clientId) { data.active ? servoController.activate() : servoController.deactivate(); }); + + socket.on([&](const socket_message_CorrelationRequest &data, int clientId) { + printf("Received correlation request: %d\n", data.correlation_id); + // Temporarily hardcoded + switch (data.which_request) { + case socket_message_CorrelationRequest_features_data_request_tag: { + socket_message_CorrelationResponse res = socket_message_CorrelationResponse_init_default; + res.correlation_id = data.correlation_id; + res.stauts_code = 200; + res.which_response = socket_message_CorrelationResponse_features_data_response_tag; + + feature_service::features_request( + data.request.features_data_request, + res.response.features_data_response + ); + + socket.emit(res, clientId); + + break; + } + default: { + printf("WARNING: no tag found for correlation request: %d", data.which_request); + break; + } + } + }); } void IRAM_ATTR SpotControlLoopEntry(void *) {