Reeltwo provides SMQ for advanced message passing between multiple CPUs. SMQ messages are transmitted via serial from the MCU to the host CPU which will convert them to JSON messages and use ZeroMQ publish/subscribe messaging.
static char marcBuffer[65];
const char* cmd = msg.get_string(
MSGID(
"cmd"), marcBuffer,
sizeof(marcBuffer));
})
char movieName[13];
frontHolo.play(msg.get_string(
MSGID(
"name"), movieName,
sizeof(movieName)));
})
FLD.selectEffect(msg.get_integer(
MSGID(
"state")));
})
RLD.selectEffect(msg.get_integer(
MSGID(
"state")));
})
long state = msg.get_integer(
MSGID(
"state"));
FLD.selectEffect(state);
RLD.selectEffect(state);
})
char cmdBuffer[13];
const char* cmd = msg.get_string(
MSGID(
"cmd"), cmdBuffer,
sizeof(cmdBuffer));
})
char* cmdBuffer = jawaCommander.getBuffer();
size_t cmdBufferSize = jawaCommander.getBufferSize();
const char* cmd = msg.get_string(
MSGID(
"cmd"), cmdBuffer, cmdBufferSize);
jawaCommander.process('\r');
})
char cmdBuffer[13];
int cmd = msg.get_integer(
MSGID(
"cmd"));
switch (cmd)
{
periscope.up();
break;
periscope.down();
break;
periscope.searchLightCW();
break;
periscope.searchLightCCW();
break;
periscope.randomFast();
break;
periscope.randomSlow();
break;
periscope.faceForward();
break;
}
})
byte num = msg.get_integer(
MSGID(
"num"));
if (num < servoDispatch.getNumServos())
{
uint32_t startDelay = msg.get_integer(
MSGID(
"startDelay"));
uint32_t moveTime = msg.get_integer(
MSGID(
"moveTime"));
int32_t startPos = msg.get_integer(
MSGID(
"startPos"));
int32_t endPos = msg.get_integer(
MSGID(
"endPos"));
int32_t relPos = msg.get_integer(
MSGID(
"relPos"));
if (startPos == -1)
startPos = curPos;
if (relPos > 0)
endPos = curPos + relPos;
servoDispatch.moveTo(num, startDelay, moveTime, startPos, endPos);
}
})