API declaration for MyTransport.
E | SYS | SUB | Message | Comment |
| TSM | INIT | | Transition to stInit state |
| TSM | INIT | STATID=%d | Node ID is static |
| TSM | INIT | TSP OK | Transport device configured and fully operational |
| TSM | INIT | TSP PSM | Transport passive mode set |
| TSM | INIT | GW MODE | Node is set up as GW, thus omitting ID and findParent states |
! | TSM | INIT | TSP FAIL | Transport device initialization failed |
| TSM | FPAR | | Transition to stParent state |
| TSM | FPAR | STATP=%d | Static parent set, skip finding parent |
| TSM | FPAR | OK | Parent node identified |
! | TSM | FPAR | NO REPLY | No potential parents replied to find parent request |
! | TSM | FPAR | FAIL | Finding parent failed |
| TSM | ID | | Transition to stID state |
| TSM | ID | OK,ID=%d | Node ID is valid |
| TSM | ID | REQ | Request node ID from controller |
! | TSM | ID | FAIL,ID=%d | ID verification failed, ID invalid, no ID received from controller |
| TSM | UPL | | Transition to stUplink state |
| TSM | UPL | OK | Uplink OK, GW returned ping |
| TSF | UPL | DGWC,O=%d,N=%d | Uplink check revealed changed network topology, old distance (O), new distance (N) |
! | TSM | UPL | FAIL | Uplink check failed, i.e. GW could not be pinged |
| TSM | READY | SRT | Save routing table |
| TSM | READY | ID=%d,PAR=%d,DIS=%d | Transition to stReady Transport ready, node ID (ID), parent node ID (PAR), distance to GW (DIS) |
! | TSM | READY | UPL FAIL,SNP | Too many failed uplink transmissions, search new parent |
! | TSM | READY | FAIL,STATP | Too many failed uplink transmissions, static parent enforced |
| TSM | FAIL | CNT=%d | Transition to stFailure state, consecutive failure counter (CNT) |
| TSM | FAIL | DIS | Disable transport |
| TSM | FAIL | RE-INIT | Attempt to re-initialize transport |
| TSF | CKU | OK | Uplink OK |
| TSF | CKU | OK,FCTRL | Uplink OK, flood control prevents pinging GW in too short intervals |
| TSF | CKU | DGWC,O=%d,N=%d | Uplink check revealed changed network topology, old distance (O), new distance (N) |
| TSF | CKU | FAIL | No reply received when checking uplink |
| TSF | SID | OK,ID=%d | Node ID assigned |
! | TSF | SID | FAIL,ID=%d | Assigned ID is invalid |
| TSF | PNG | SEND,TO=%d | Send ping to destination (TO) |
| TSF | WUR | MS=%lu | Wait until transport ready, timeout (MS) |
| TSF | MSG | ECHO REQ | ECHO message requested |
| TSF | MSG | ECHO | ECHO message, do not proceed but forward to callback |
| TSF | MSG | FPAR RES,ID=%d,D=%d | Response to find parent received from node (ID) with distance (D) to GW |
| TSF | MSG | FPAR PREF FOUND | Preferred parent found, i.e. parent defined via MY_PARENT_NODE_ID |
| TSF | MSG | FPAR OK,ID=%d,D=%d | Find parent response from node (ID) is valid, distance (D) to GW |
| TSF | MSG | FPAR INACTIVE | Find parent response received, but no find parent request active, skip response |
| TSF | MSG | FPAR REQ,ID=%d | Find parent request from node (ID) |
| TSF | MSG | PINGED,ID=%d,HP=%d | Node pinged by node (ID) with (HP) hops |
| TSF | MSG | PONG RECV,HP=%d | Pinged node replied with (HP) hops |
| TSF | MSG | BC | Broadcast message received |
| TSF | MSG | GWL OK | Link to GW ok |
| TSF | MSG | FWD BC MSG | Controlled broadcast message forwarding |
| TSF | MSG | RCV CB | Hand over message to receive() callback function |
| TSF | MSG | REL MSG | Relay message |
| TSF | MSG | REL PxNG,HP=%d | Relay PING/PONG message, increment hop counter (HP) |
! | TSF | MSG | SIGN VERIFY FAIL | Signing verification failed |
! | TSF | MSG | REL MSG,NORP | Node received a message for relaying, but node is not a repeater, message skipped |
! | TSF | MSG | SIGN FAIL | Signing message failed |
! | TSF | MSG | GWL FAIL | GW uplink failed |
! | TSF | MSG | ID TK INVALID | Token for ID request invalid |
| TSF | SAN | OK | Sanity check passed |
! | TSF | SAN | FAIL | Sanity check failed, attempt to re-initialize radio |
| TSF | CRT | OK | Clearing routing table successful |
| TSF | LRT | OK | Loading routing table successful |
| TSF | SRT | OK | Saving routing table successful |
! | TSF | RTE | FPAR ACTIVE | Finding parent active, message not sent |
! | TSF | RTE | DST %d UNKNOWN | Routing for destination (DST) unknown, send message to parent |
| TSF | RTE | N2N OK | Node-to-node communication succeeded |
! | TSF | RTE | N2N FAIL | Node-to-node communication failed, handing over to parent for re-routing |
| TSF | RRT | ROUTE N=%d,R=%d | Routing table, messages to node (N) are routed via node (R) |
! | TSF | SND | TNR | Transport not ready, message cannot be sent |
| TSF | TDI | TSL | Set transport to sleep |
| TSF | TDI | TPD | Power down transport |
| TSF | TRI | TRI | Reinitialise transport |
| TSF | TRI | TSB | Set transport to standby |
| TSF | SIR | CMD=d,VAL=d | Get signal report |
|
void | stInitTransition (void) |
| Initialize SM variables and transport HW.
|
|
void | stInitUpdate (void) |
| Initialize transport.
|
|
void | stParentTransition (void) |
| Find parent.
|
|
void | stParentUpdate (void) |
| Verify find parent responses.
|
|
void | stIDTransition (void) |
| Send ID request.
|
|
void | stIDUpdate (void) |
| Verify ID response and GW link.
|
|
void | stUplinkTransition (void) |
| Send uplink ping request.
|
|
void | stUplinkUpdate (void) |
| Verify uplink response.
|
|
void | stReadyTransition (void) |
| Set transport OK.
|
|
void | stReadyUpdate (void) |
| Monitor transport link.
|
|
void | stFailureTransition (void) |
| Transport failure and power down radio.
|
|
void | stFailureUpdate (void) |
| Re-initialize transport after timeout.
|
|
void | transportSwitchSM (transportState_t &newState) |
| Switch SM state. More...
|
|
void | transportUpdateSM (void) |
| Update SM state.
|
|
uint32_t | transportTimeInState (void) |
| Request time in current SM state. More...
|
|
void | transportInvokeSanityCheck (void) |
| Call transport driver sanity check.
|
|
void | transportProcessFIFO (void) |
| Process all pending messages in RX FIFO.
|
|
void | transportProcessMessage (void) |
| Receive message from RX FIFO and process.
|
|
bool | transportAssignNodeID (const uint8_t newNodeId) |
| Assign node ID. More...
|
|
bool | transportWait (const uint32_t waitingMS, const uint8_t cmd, const uint8_t msgType) |
| Wait and process messages for a defined amount of time until specified message received. More...
|
|
uint8_t | transportPingNode (const uint8_t targetId) |
| Ping node. More...
|
|
bool | transportRouteMessage (MyMessage &message) |
| Send and route message according to destination. More...
|
|
bool | transportSendRoute (MyMessage &message) |
| Send and route message according to destination with transport state check. More...
|
|
bool | transportSendWrite (const uint8_t to, MyMessage &message) |
| Send message to recipient. More...
|
|
bool | transportCheckUplink (const bool force=false) |
| Check uplink to GW, includes flooding control. More...
|
|
bool | transportWaitUntilReady (const uint32_t waitingMS=0) |
| Wait until transport is ready. More...
|
|
void | transportInitialise (void) |
| Initialize transport and SM.
|
|
void | transportProcess (void) |
| Process FIFO msg and update SM.
|
|
bool | isTransportReady (void) |
| Flag transport ready. More...
|
|
bool | isTransportSearchingParent (void) |
| Flag searching parent ongoing. More...
|
|
bool | isTransportExtendedFailure (void) |
| Flag TSM extended failure. More...
|
|
bool | isMessageReceived (void) |
| Flag valid message received. More...
|
|
void | resetMessageReceived (void) |
| Reset message received flag.
|
|
void | transportClearRoutingTable (void) |
| Clear routing table.
|
|
uint32_t | transportGetHeartbeat (void) |
| Return heart beat. More...
|
|
void | transportLoadRoutingTable (void) |
| Load routing table from EEPROM to RAM. Only for GW devices with enough RAM, i.e. ESP8266, RPI Sensebender GW, etc. Atmega328 has only limited amount of RAM.
|
|
void | transportSaveRoutingTable (void) |
| Save routing table to EEPROM.
|
|
void | transportSetRoute (const uint8_t node, const uint8_t route) |
| Update routing table. More...
|
|
uint8_t | transportGetRoute (const uint8_t node) |
| Load route to node. More...
|
|
void | transportReportRoutingTable (void) |
| Reports content of routing table.
|
|
uint8_t | transportGetNodeId (void) |
| Get node ID. More...
|
|
uint8_t | transportGetParentNodeId (void) |
| Get parent node ID. More...
|
|
uint8_t | transportGetDistanceGW (void) |
| Get distance to GW. More...
|
|
void | transportTogglePassiveMode (const bool OnOff) |
| Toggle passive mode, i.e. transport does not wait for ACK. More...
|
|
void | transportDisable (void) |
| Disable transport, if xxx_POWER_PIN is defined, transport is powered down, else send to sleep.
|
|
void | transportReInitialise (void) |
| Reinitialise transport. Put transport to standby - If xxx_POWER_PIN set, power up and go to standby.
|
|
int16_t | transportSignalReport (const char command) __attribute__((unused)) |
| Get transport signal report. More...
|
|
int16_t | transportGetSignalReport (const signalReport_t signalReport) __attribute__((unused)) |
| Get transport signal report. More...
|
|