diff --git a/firmware/axl-stepper/src/axl b/firmware/axl-stepper/src/axl index 3d62ffa48024d7c43844653dac7199f1bbacc254..f49a43eb9cc400704cf8e965e71be198aaec5148 160000 --- a/firmware/axl-stepper/src/axl +++ b/firmware/axl-stepper/src/axl @@ -1 +1 @@ -Subproject commit 3d62ffa48024d7c43844653dac7199f1bbacc254 +Subproject commit f49a43eb9cc400704cf8e965e71be198aaec5148 diff --git a/firmware/axl-stepper/src/main.cpp b/firmware/axl-stepper/src/main.cpp index ca8e66d52be6b65080829c07dd9fe3a8a464fd25..f20e89c0b9bc471dcccd8b2bff045e2f23754fca 100644 --- a/firmware/axl-stepper/src/main.cpp +++ b/firmware/axl-stepper/src/main.cpp @@ -54,7 +54,7 @@ Endpoint axlSettingsEP(&osap, "axlSettings", onAXLSettingsData); // -------------------------------------------------------- 3: Axl Modal Requests -EP_ONDATA_RESPONSES onStateRequestData(uint8_t* data, uint16_t len){ +EP_ONDATA_RESPONSES onStateData(uint8_t* data, uint16_t len){ // check for partner-config badness, if(len != AXL_NUM_DOF * 4 + 2){ OSAP::error("state req has bad DOF count"); return EP_ONDATA_REJECT; } // we have accel, rate, posn data, @@ -99,7 +99,17 @@ EP_ONDATA_RESPONSES onStateRequestData(uint8_t* data, uint16_t len){ return EP_ONDATA_REJECT; } -Endpoint stateRequestsEP(&osap, "stateRequests", onStateRequestData); +uint8_t stateDataDummy[256]; + +boolean beforeAxlStateQuery(void); + +Endpoint stateEP(&osap, "axlState", onStateData, beforeAxlStateQuery); + +boolean beforeAxlStateQuery(void){ + uint16_t len = axl_getState(stateDataDummy); + stateEP.write(stateDataDummy, len); + return true; +} // -------------------------------------------------------- 4: Axl Queue Addition