From a76660c3f567f02d78565cb4535d22ae51f279a6 Mon Sep 17 00:00:00 2001 From: Jake <jake.read@cba.mit.edu> Date: Wed, 17 Aug 2022 17:00:18 -0400 Subject: [PATCH] queues together --- firmware/axl-stepper/src/axl | 2 +- firmware/axl-stepper/src/main.cpp | 61 ++++++++++++++++++++-------- firmware/axl-stepper/src/osape_ucbus | 2 +- 3 files changed, 47 insertions(+), 18 deletions(-) diff --git a/firmware/axl-stepper/src/axl b/firmware/axl-stepper/src/axl index eb34931..202c44e 160000 --- a/firmware/axl-stepper/src/axl +++ b/firmware/axl-stepper/src/axl @@ -1 +1 @@ -Subproject commit eb34931b0991d7c6e257968fe60af13b90b1f629 +Subproject commit 202c44ee96ff46f07823a6dc8b9b4bb13c0a575e diff --git a/firmware/axl-stepper/src/main.cpp b/firmware/axl-stepper/src/main.cpp index 42cfefe..ae46f6b 100644 --- a/firmware/axl-stepper/src/main.cpp +++ b/firmware/axl-stepper/src/main.cpp @@ -16,10 +16,9 @@ //OSAP osap("axl-stepper_z-front-left"); //OSAP osap("axl-stepper_z-rear-right"); //OSAP osap("axl-stepper_z-front-right"); -OSAP osap("axl-stepper_y-left"); +//OSAP osap("axl-stepper_y-left"); //OSAP osap("axl-stepper_y-right"); -//OSAP osap("axl-stepper_x"); - +OSAP osap("axl-stepper_x"); //OSAP osap("axl-stepper_e"); VPort_ArduinoSerial vpUSBSerial(&osap, "arduinoUSBSerial", &Serial); @@ -207,6 +206,32 @@ boolean axl_checkLimit(void){ Endpoint homeEP(&osap, "home", onHomeData); +// -------------------------------------------------------- 8: Precalcd-move-adder; + +EP_ONDATA_RESPONSES onPrecalculatedMoveData(uint8_t* data, uint16_t len){ + ERRLIGHT_TOGGLE; + haltLightOnTime = millis() + 250; + move_t move; + // data[0] == AXL_MODE_QUEUE -> I think we designed this serialization so + // that we could hit the same endpoint w/ multiple structures... + uint16_t rptr = 1; + move.vi = ts_readFloat32(data, &rptr); + move.accel = ts_readFloat32(data, &rptr); + move.cruise = ts_readFloat32(data, &rptr); + move.vf = ts_readFloat32(data, &rptr); + move.distance = ts_readFloat32(data, &rptr); + for(uint8_t a = 0; a < AXL_NUM_DOF; a ++){ + move.unitVector[a] = ts_readFloat32(data, &rptr); + move.endPos.axis[a] = ts_readFloat32(data, &rptr); + } + // and send it... + axl_addMoveToQueue(move); + // OSAP::debug("move len " + String(move.distance)); + return EP_ONDATA_REJECT; +} + +Endpoint precalculatedMoveEP(&osap, "precalculatedMoves", onPrecalculatedMoveData); + // -------------------------------------------------------- Arduino Setup void setup() { @@ -223,27 +248,28 @@ void setup() { // setup controller axl_setup(); // ticker begin: - d51ClockUtils->start_ticker_a(AXL_TICKER_INTERVAL_US); + // d51ClockUtils->start_ticker_a(AXL_TICKER_INTERVAL_US); } // -------------------------------------------------------- Das Loop uint32_t lastBlink = 0; uint32_t blinkInterval = 50; // ms +uint8_t dummy[128]; void loop() { osap.loop(); stepper_hw->dacRefresh(); - axl_lazyLoop(); + axl_netLoop(dummy); if(lastBlink + blinkInterval < millis()){ lastBlink = millis(); CLKLIGHT_TOGGLE; updateStatesEP(); //axl_printHomeState(); } - if(haltLightOnTime + 250 < millis()){ - ERRLIGHT_OFF; - } + // if(haltLightOnTime + 250 < millis()){ + // ERRLIGHT_OFF; + // } } // -------------------------------------------------------- Small-Time Ops @@ -263,14 +289,17 @@ void axl_onPositionDelta(uint8_t axis, float delta){ } } -void TC0_Handler(void){ +// void TC0_Handler(void){ +// DEBUG1PIN_ON; +// TC0->COUNT32.INTFLAG.bit.MC0 = 1; +// TC0->COUNT32.INTFLAG.bit.MC1 = 1; +// // run the loop, +// axl_integrator(); +// DEBUG1PIN_OFF; +// } + +void ucBusDrop_onRxISR(void){ DEBUG1PIN_ON; - TC0->COUNT32.INTFLAG.bit.MC0 = 1; - TC0->COUNT32.INTFLAG.bit.MC1 = 1; - // run the loop, axl_integrator(); DEBUG1PIN_OFF; -} - -// deadies, unused ATM -void ucBusDrop_onRxISR(void){} \ No newline at end of file +} \ No newline at end of file diff --git a/firmware/axl-stepper/src/osape_ucbus b/firmware/axl-stepper/src/osape_ucbus index 55661c3..9779836 160000 --- a/firmware/axl-stepper/src/osape_ucbus +++ b/firmware/axl-stepper/src/osape_ucbus @@ -1 +1 @@ -Subproject commit 55661c3f0510b7e31ce059a47fc1c401c608c765 +Subproject commit 9779836fd38f965e2be5fb0ff11f933dac7f7a04 -- GitLab