Current version of Remote Control protocol is 4. Master and slave can exchange with TLV-blocks. == TLV block == ||<-32 rowclass="bits">Block Header|| ||word #||byte offset||description|| ||<:>0||<:>0||Type word (32-bit integer)|| ||<:>1||<:>4||Block payload length: '''N''' bytes (32-bit integer)|| ||<-32 rowclass="bits">Block Payload|| ||<:>2||<:>8||<|3> ''Block payload'' || ||<:>...||<:>...|| ||<:>N+1||<:>4(N+1)|| Version 4 types can be following: * RC_MSG_CONFIG_V4 (0xAE2E6D03) - holds JSON which describe current program configuration * RC_MSG_CMD_V4 (0xAE2E6D04) - hold text line which describe status of slave program or command that master sends to slave Slave status: * fsm_state - describes Finite-state machine (FSM) of client (ex: "fsm_state Ready") * Init * Error - client has some error * Ready - client ready for Run * Configure * Starting - client is starting the Run * Run - client executing the Run * Stopping - client is stoping the Run * Calibrate * FindAdcDelay * CloseGlobTrig * WaitSpillEnd * OpenGlobTrig * PrepareStopping * warn/error - client got some warrning/error, format: "error " * state/status - client line that describe current status (ex: "status 12 device(s)") Master commands: * start/stop - Perform starting/stopping of Run, format: "start "