Skip to content
Snippets Groups Projects
Commit 3087001f authored by Jake Read's avatar Jake Read
Browse files

towards new-queue tests

parent cdfdafb8
No related branches found
No related tags found
No related merge requests found
Subproject commit 2715834fbc79e77f061f0812234ab3a8eeb14f27
Subproject commit be9a5a919bc9c6324f4ce6dcdfccac6837b659df
......@@ -24,11 +24,35 @@ OSAP osap("axl-stepper_z");
//OSAP osap("axl-stepper_rl");
//OSAP osap("axl-stepper_rr");
// -------------------------------------------------------- 0: USB Serial
VPort_ArduinoSerial vpUSBSerial(&osap, "arduinoUSBSerial", &Serial);
VBus_UCBusDrop vbUCBusDrop(&osap, "ucBusDrop");
// -------------------------------------------------------- 1: Bus Drop
VBus_UCBusDrop vbUCBusDrop(&osap, "ucBusDrop");
// -------------------------------------------------------- 2: AXL Settings
EP_ONDATA_RESPONSES onAXLSettingsData(uint8_t* data, uint16_t len){
// jd, then pairs of accel & vel limits,
axlSettings_t settings;
uint16_t rptr = 0;
for(uint8_t a = 0; a < AXL_NUM_DOF; a ++){
settings.accelLimits.axis[a] = ts_readFloat32(data, &rptr);
settings.velocityLimits.axis[a] = ts_readFloat32(data, &rptr);
}
settings.queueStartDelayMS = ts_readUint32(data, &rptr);
settings.ourActuatorID = ts_readUint8(data, &rptr);
// ship em...
axl_setSettings(settings);
// don't stash data,
return EP_ONDATA_ACCEPT;
}
Endpoint axlSettingsEP(&osap, "axlSettings", onAXLSettingsData);
// -------------------------------------------------------- 2: States
// -------------------------------------------------------- 3: Axl Modal Requests
EP_ONDATA_RESPONSES onStateData(uint8_t* data, uint16_t len){
/*
......@@ -79,39 +103,9 @@ EP_ONDATA_RESPONSES onStateData(uint8_t* data, uint16_t len){
Endpoint statesEP(&osap, "states", onStateData);
// -------------------------------------------------------- 3: Halt
EP_ONDATA_RESPONSES onHaltData(uint8_t* data, uint16_t len){
axl_halt(AXL_HALT_REQUEST);
return EP_ONDATA_REJECT;
}
Endpoint haltInEP(&osap, "haltInput", onHaltData);
Endpoint haltOutEP(&osap, "haltOutput");
// -------------------------------------------------------- 5: AXL Settings
// -------------------------------------------------------- 4: Axl Queue Addition
EP_ONDATA_RESPONSES onAXLSettingsData(uint8_t* data, uint16_t len){
// jd, then pairs of accel & vel limits,
axlSettings_t settings;
uint16_t rptr = 0;
for(uint8_t a = 0; a < AXL_NUM_DOF; a ++){
settings.accelLimits.axis[a] = ts_readFloat32(data, &rptr);
settings.velocityLimits.axis[a] = ts_readFloat32(data, &rptr);
}
settings.queueStartDelayMS = ts_readUint32(data, &rptr);
settings.outActuatorID = ts_readUint8(data, &rptr);
// ship em...
axl_setSettings(settings);
// don't stash data,
return EP_ONDATA_ACCEPT;
}
Endpoint axlSettingsEP(&osap, "axlSettings", onAXLSettingsData);
// -------------------------------------------------------- 8: Precalcd-move-adder;
EP_ONDATA_RESPONSES onPrecalculatedMoveData(uint8_t* data, uint16_t len){
EP_ONDATA_RESPONSES onPlannedMoveData(uint8_t* data, uint16_t len){
axlPlannedSegment_t move;
uint16_t rptr = 0;
// location of move-in-sequence, to count continuity,
......@@ -134,10 +128,23 @@ EP_ONDATA_RESPONSES onPrecalculatedMoveData(uint8_t* data, uint16_t len){
return EP_ONDATA_REJECT;
}
Endpoint precalculatedMoveEP(&osap, "plannedMovesIn", onPrecalculatedMoveData);
Endpoint precalculatedMoveEP(&osap, "plannedMovesIn", onPlannedMoveData);
// -------------------------------------------------------- 5: Halt Input
EP_ONDATA_RESPONSES onHaltInData(uint8_t* data, uint16_t len){
axl_halt(AXL_HALT_REQUEST);
return EP_ONDATA_REJECT;
}
Endpoint haltInEP(&osap, "haltIn", onHaltInData);
// -------------------------------------------------------- 6, 7: Outputs
Endpoint queueAckOutEP(&osap, "queueAckOut");
Endpoint haltOutEP(&osap, "haltOut");
// -------------------------------------------------------- 6: Motor Settings
// -------------------------------------------------------- 8: Motor Settings
uint8_t axisPick = 0;
boolean invert = false;
......@@ -196,14 +203,12 @@ void loop() {
// check for halt info...
axlDataLen = axl_getHaltPacket(axlData);
if(axlDataLen){
#warning here - ibid, stick in endpoint,
haltOutEP.write(axlData, axlDataLen);
}
// check for on-queue-completion info...
axlDataLen = axl_getQueueAck(axlData);
if(axlDataLen){
#warning here - if we have an ack, stick it in the endpoint...
// and if that endpoint isn't clear to write, we're fukd, halt!
// and add an axl_halt(<string>) option to print those messages
queueAckOutEP.write(axlData, axlDataLen);
}
// refresh stepper hw,
stepper_hw->dacRefresh();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment