From 351845205c8f64c73a49e786a2de9d8c0ea46077 Mon Sep 17 00:00:00 2001 From: Olivier Date: Sun, 9 Oct 2016 11:27:04 +0200 Subject: [PATCH] Code harmonization --- MySensors.h | 10 +- core/MyGatewayTransport.cpp | 2 +- core/MySensorsCore.cpp | 213 +++++++++++++++++------------------- core/MySensorsCore.h | 97 ++++++++-------- core/MySigning.cpp | 6 +- core/MyTransport.cpp | 24 ++-- core/MyTransport.h | 2 +- 7 files changed, 176 insertions(+), 178 deletions(-) diff --git a/MySensors.h b/MySensors.h index 01ab39a..91affc1 100644 --- a/MySensors.h +++ b/MySensors.h @@ -54,7 +54,7 @@ // Enable radio "feature" if one of the radio types was enabled #if defined(MY_RADIO_NRF24) || defined(MY_RADIO_RFM69) || defined(MY_RS485) - #define MY_RADIO_FEATURE + #define MY_SENSOR_NETWORK #endif // HARDWARE @@ -167,7 +167,7 @@ #endif #if defined(MY_GATEWAY_MQTT_CLIENT) - #if defined(MY_RADIO_FEATURE) + #if defined(MY_SENSOR_NETWORK) // We assume that a gateway having a radio also should act as repeater #define MY_REPEATER_FEATURE #endif @@ -205,7 +205,7 @@ #include "core/MyProtocolMySensors.cpp" // GATEWAY - CONFIGURATION - #if defined(MY_RADIO_FEATURE) + #if defined(MY_SENSOR_NETWORK) // We assume that a gateway having a radio also should act as repeater #define MY_REPEATER_FEATURE #endif @@ -308,7 +308,7 @@ #endif // Make sure to disable child features when parent feature is disabled -#if !defined(MY_RADIO_FEATURE) +#if !defined(MY_SENSOR_NETWORK) #undef MY_OTA_FIRMWARE_FEATURE #undef MY_REPEATER_FEATURE #undef MY_SIGNING_NODE_WHITELISTING @@ -321,7 +321,7 @@ #endif #if !defined(MY_CORE_ONLY) - #if !defined(MY_GATEWAY_FEATURE) && !defined(MY_RADIO_FEATURE) + #if !defined(MY_GATEWAY_FEATURE) && !defined(MY_SENSOR_NETWORK) #error No forward link or gateway feature activated. This means nowhere to send messages! Pretty pointless. #endif #endif diff --git a/core/MyGatewayTransport.cpp b/core/MyGatewayTransport.cpp index f4e98f4..fcf2b53 100644 --- a/core/MyGatewayTransport.cpp +++ b/core/MyGatewayTransport.cpp @@ -61,7 +61,7 @@ inline void gatewayTransportProcess() { } } } else { - #if defined(MY_RADIO_FEATURE) + #if defined(MY_SENSOR_NETWORK) transportSendRoute(_msg); #endif } diff --git a/core/MySensorsCore.cpp b/core/MySensorsCore.cpp index f2b15e1..af58a88 100644 --- a/core/MySensorsCore.cpp +++ b/core/MySensorsCore.cpp @@ -19,10 +19,10 @@ #include "MySensorsCore.h" -ControllerConfig _cc; // Configuration coming from controller -NodeConfig _nc; // Essential settings for node to work -MyMessage _msg; // Buffer for incoming messages. -MyMessage _msgTmp; // Buffer for temporary messages (acks and nonces among others). +ControllerConfig _cc; // Configuration coming from controller +NodeConfig _nc; // Essential settings for node to work +MyMessage _msg; // Buffer for incoming messages +MyMessage _msgTmp; // Buffer for temporary messages (acks and nonces among others) bool _nodeRegistered = false; @@ -32,7 +32,7 @@ bool _nodeRegistered = false; void (*_timeCallback)(unsigned long); // Callback for requested time messages -void _process() { +void _process(void) { hwWatchdogReset(); #if defined (MY_DEFAULT_TX_LED_PIN) || defined(MY_DEFAULT_RX_LED_PIN) || defined(MY_DEFAULT_ERR_LED_PIN) @@ -47,7 +47,7 @@ void _process() { gatewayTransportProcess(); #endif - #if defined(MY_RADIO_FEATURE) + #if defined(MY_SENSOR_NETWORK) transportProcess(); #endif @@ -57,11 +57,9 @@ void _process() { #endif } -void _infiniteLoop() { +void _infiniteLoop(void) { while(1) { - #if defined(ARDUINO_ARCH_ESP8266) - yield(); - #endif + yield(); #if defined (MY_DEFAULT_TX_LED_PIN) || defined(MY_DEFAULT_RX_LED_PIN) || defined(MY_DEFAULT_ERR_LED_PIN) ledsProcess(); #endif @@ -71,7 +69,7 @@ void _infiniteLoop() { } } -void _begin() { +void _begin(void) { hwWatchdogReset(); if (preHwInit) @@ -102,16 +100,14 @@ void _begin() { readFirmwareSettings(); #endif - #if defined(MY_RADIO_FEATURE) + #if defined(MY_SENSOR_NETWORK) // Save static parent id in eeprom (used by bootloader) hwWriteConfig(EEPROM_PARENT_NODE_ID_ADDRESS, MY_PARENT_NODE_ID); transportInitialise(); while (!isTransportReady()) { hwWatchdogReset(); transportProcess(); - #if defined(ARDUINO_ARCH_ESP8266) - yield(); - #endif + yield(); } #endif @@ -176,7 +172,7 @@ void _begin() { } -void _registerNode() { +void _registerNode(void) { #if defined (MY_REGISTRATION_FEATURE) && !defined(MY_GATEWAY_FEATURE) debug(PSTR("MCO:REG:REQ\n")); // registration request setIndication(INDICATION_REQ_REGISTRATION); @@ -184,7 +180,7 @@ void _registerNode() { uint8_t counter = MY_REGISTRATION_RETRIES; // only proceed if register response received or retries exceeded do { - _sendRoute(build(_msgTmp, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_REGISTRATION_REQUEST, false).set(MY_CORE_VERSION)); + (void)_sendRoute(build(_msgTmp, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_REGISTRATION_REQUEST).set(MY_CORE_VERSION)); } while (!wait(2000, C_INTERNAL, I_REGISTRATION_RESPONSE) && counter--); #else @@ -193,20 +189,20 @@ void _registerNode() { #endif } -void presentNode() { +void presentNode(void) { setIndication(INDICATION_PRESENT); // Present node and request config #if defined(MY_GATEWAY_FEATURE) // Send presentation for this gateway device #if defined(MY_REPEATER_FEATURE) - present(NODE_SENSOR_ID, S_ARDUINO_REPEATER_NODE); + (void)present(NODE_SENSOR_ID, S_ARDUINO_REPEATER_NODE); #else - present(NODE_SENSOR_ID, S_ARDUINO_NODE); + (void)present(NODE_SENSOR_ID, S_ARDUINO_NODE); #endif #else #if defined(MY_OTA_FIRMWARE_FEATURE) - presentBootloaderInformation(); + presentBootloaderInformation(); #endif // Send signing preferences for this node to the GW @@ -214,17 +210,17 @@ void presentNode() { // Send presentation for this radio node #if defined(MY_REPEATER_FEATURE) - present(NODE_SENSOR_ID, S_ARDUINO_REPEATER_NODE); + (void)present(NODE_SENSOR_ID, S_ARDUINO_REPEATER_NODE); #else - present(NODE_SENSOR_ID, S_ARDUINO_NODE); + (void)present(NODE_SENSOR_ID, S_ARDUINO_NODE); #endif // Send a configuration exchange request to controller // Node sends parent node. Controller answers with latest node configuration - _sendRoute(build(_msgTmp, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_CONFIG, false).set(_nc.parentNodeId)); + (void)_sendRoute(build(_msgTmp, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_CONFIG).set(_nc.parentNodeId)); // Wait configuration reply. - wait(2000, C_INTERNAL, I_CONFIG); + (void)wait(2000, C_INTERNAL, I_CONFIG); #endif @@ -234,15 +230,15 @@ void presentNode() { } -uint8_t getNodeId() { +uint8_t getNodeId(void) { return _nc.nodeId; } -uint8_t getParentNodeId() { +uint8_t getParentNodeId(void) { return _nc.parentNodeId; } -ControllerConfig getConfig() { +ControllerConfig getConfig(void) { return _cc; } @@ -258,14 +254,14 @@ bool _sendRoute(MyMessage &message) { return gatewayTransportSend(message); } #endif - #if defined(MY_RADIO_FEATURE) + #if defined(MY_SENSOR_NETWORK) return transportSendRoute(message); #else return false; #endif } -bool send(MyMessage &message, bool enableAck) { +bool send(MyMessage &message, const bool enableAck) { message.sender = _nc.nodeId; mSetCommand(message, C_SET); mSetRequestAck(message, enableAck); @@ -283,37 +279,42 @@ bool send(MyMessage &message, bool enableAck) { #endif } -void sendBatteryLevel(uint8_t value, bool enableAck) { - _sendRoute(build(_msgTmp, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_BATTERY_LEVEL, enableAck).set(value)); +bool sendBatteryLevel(const uint8_t value, const bool ack) { + return _sendRoute(build(_msgTmp, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_BATTERY_LEVEL, ack).set(value)); } -void sendHeartbeat(void) { - #if defined(MY_RADIO_FEATURE) - uint32_t heartbeat = transportGetHeartbeat(); - _sendRoute(build(_msgTmp, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_HEARTBEAT_RESPONSE, false).set(heartbeat)); +bool sendHeartbeat(const bool ack) { + #if defined(MY_SENSOR_NETWORK) + const uint32_t heartbeat = transportGetHeartbeat(); + return _sendRoute(build(_msgTmp, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_HEARTBEAT_RESPONSE, ack).set(heartbeat)); + #else + (void)ack; + return false; #endif } -void present(uint8_t childSensorId, uint8_t sensorType, const char *description, bool enableAck) { - _sendRoute(build(_msgTmp, GATEWAY_ADDRESS, childSensorId, C_PRESENTATION, sensorType, enableAck).set(childSensorId==NODE_SENSOR_ID?MYSENSORS_LIBRARY_VERSION:description)); +bool present(const uint8_t childSensorId, const uint8_t sensorType, const char *description, const bool ack) { + return _sendRoute(build(_msgTmp, GATEWAY_ADDRESS, childSensorId, C_PRESENTATION, sensorType, ack).set(childSensorId==NODE_SENSOR_ID?MYSENSORS_LIBRARY_VERSION:description)); } -void sendSketchInfo(const char *name, const char *version, bool enableAck) { - if (name) _sendRoute(build(_msgTmp, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_SKETCH_NAME, enableAck).set(name)); - if (version) _sendRoute(build(_msgTmp, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_SKETCH_VERSION, enableAck).set(version)); +bool sendSketchInfo(const char *name, const char *version, const bool ack) { + bool result = true; + if (name) result &= _sendRoute(build(_msgTmp, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_SKETCH_NAME, ack).set(name)); + if (version) result &= _sendRoute(build(_msgTmp, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_SKETCH_VERSION, ack).set(version)); + return result; } -void request(uint8_t childSensorId, uint8_t variableType, uint8_t destination) { - _sendRoute(build(_msgTmp, destination, childSensorId, C_REQ, variableType, false).set("")); +bool request(const uint8_t childSensorId, const uint8_t variableType, const uint8_t destination) { + return _sendRoute(build(_msgTmp, destination, childSensorId, C_REQ, variableType).set("")); } -void requestTime() { - _sendRoute(build(_msgTmp, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_TIME, false).set("")); +bool requestTime(const bool ack) { + return _sendRoute(build(_msgTmp, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_TIME, ack).set("")); } // Message delivered through _msg -bool _processInternalMessages() { - uint8_t type = _msg.type; +bool _processInternalMessages(void) { + const uint8_t type = _msg.type; if (_msg.sender == GATEWAY_ADDRESS) { if (type == I_REBOOT) { @@ -340,7 +341,7 @@ bool _processInternalMessages() { presentNode(); } else if (type == I_HEARTBEAT_REQUEST) { - sendHeartbeat(); + (void)sendHeartbeat(); } else if (type == I_TIME) { // Deliver time to callback @@ -353,7 +354,7 @@ bool _processInternalMessages() { // Clears child relay data for this node setIndication(INDICATION_CLEAR_ROUTING); transportClearRoutingTable(); - _sendRoute(build(_msgTmp, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_CHILDREN, false).set("ok")); + (void)_sendRoute(build(_msgTmp, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_CHILDREN).set("OK")); } #endif } @@ -367,23 +368,23 @@ bool _processInternalMessages() { if (route != BROADCAST_ADDRESS) { debug(PSTR("MCO:PIM:ROUTE N=%d,R=%d\n"), cnt, route); uint8_t outBuf[2] = { (uint8_t)cnt,route }; - _sendRoute(build(_msgTmp, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_DEBUG, false).set(outBuf, 2)); + (void)_sendRoute(build(_msgTmp, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_DEBUG).set(outBuf, 2)); wait(200); } } #endif } else if (debug_msg == 'V') { // CPU voltage - _sendRoute(build(_msgTmp, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_DEBUG, false).set(hwCPUVoltage())); + (void)_sendRoute(build(_msgTmp, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_DEBUG).set(hwCPUVoltage())); } else if (debug_msg == 'F') { // CPU frequency in 1/10Mhz - _sendRoute(build(_msgTmp, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_DEBUG, false).set(hwCPUFrequency())); + (void)_sendRoute(build(_msgTmp, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_DEBUG).set(hwCPUFrequency())); } else if (debug_msg == 'M') { // free memory - _sendRoute(build(_msgTmp, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_DEBUG, false).set(hwFreeMem())); + (void)_sendRoute(build(_msgTmp, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_DEBUG).set(hwFreeMem())); } else if (debug_msg == 'E') { // clear MySensors eeprom area and reboot - _sendRoute(build(_msgTmp, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_DEBUG, false).set("ok")); + (void)_sendRoute(build(_msgTmp, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_DEBUG).set("OK")); for (int i = EEPROM_START; i MY_TRANSPORT_DISCOVERY_INTERVAL_MS) { _lastNetworkDiscovery = hwMillis(); TRANSPORT_DEBUG(PSTR("TSM:READY:NWD REQ\n")); // send transport network discovery - (void)transportRouteMessage(build(_msgTmp, BROADCAST_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_DISCOVER_REQUEST, false).set("")); + (void)transportRouteMessage(build(_msgTmp, BROADCAST_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_DISCOVER_REQUEST).set("")); } #else if (_transportSM.failedUplinkTransmissions > MY_TRANSPORT_MAX_TX_FAILURES) { @@ -298,7 +298,7 @@ void stFailureTransition(void) { _transportSM.uplinkOk = false; // uplink nok _transportSM.transportActive = false; // transport inactive setIndication(INDICATION_ERR_INIT_TRANSPORT); - #if defined(MY_RADIO_FEATURE) + #if defined(MY_SENSOR_NETWORK) TRANSPORT_DEBUG(PSTR("TSM:FAIL:PDT\n")); // power down transport, no need until re-init transportPowerDown(); #endif @@ -344,11 +344,11 @@ bool isTransportSearchingParent(void) { } bool isMessageReceived(void) { - return _transportSM.MsgReceived; + return _transportSM.msgReceived; } void resetMessageReceived(void) { - _transportSM.MsgReceived = false; + _transportSM.msgReceived = false; } @@ -507,7 +507,7 @@ uint8_t transportPingNode(const uint8_t targetId) { else { _transportSM.pingActive = true; _transportSM.pingResponse = INVALID_HOPS; - (void)transportRouteMessage(build(_msgTmp, targetId, NODE_SENSOR_ID, C_INTERNAL, I_PING, false).set((uint8_t)1)); + (void)transportRouteMessage(build(_msgTmp, targetId, NODE_SENSOR_ID, C_INTERNAL, I_PING).set((uint8_t)1)); // Wait for ping reply or timeout (void)transportWait(2000, C_INTERNAL, I_PONG); } @@ -579,7 +579,7 @@ void transportProcessMessage(void) { #endif // set message received flag - _transportSM.MsgReceived = true; + _transportSM.msgReceived = true; // Is message addressed to this node? if (destination == _nc.nodeId) { @@ -647,7 +647,7 @@ void transportProcessMessage(void) { // delay for fast GW and slow nodes delay(5); #endif - (void)transportRouteMessage(build(_msgTmp, sender, NODE_SENSOR_ID, C_INTERNAL, I_PONG, false).set((uint8_t)1)); + (void)transportRouteMessage(build(_msgTmp, sender, NODE_SENSOR_ID, C_INTERNAL, I_PONG).set((uint8_t)1)); return; // no further processing required } if (type == I_PONG) { @@ -700,7 +700,7 @@ void transportProcessMessage(void) { TRANSPORT_DEBUG(PSTR("TSF:MSG:GWL OK\n")); // GW uplink ok // random delay minimizes collisions delay(hwMillis() & 0x3ff); - (void)transportRouteMessage(build(_msgTmp, sender, NODE_SENSOR_ID, C_INTERNAL, I_FIND_PARENT_RESPONSE, false).set(_nc.distance)); + (void)transportRouteMessage(build(_msgTmp, sender, NODE_SENSOR_ID, C_INTERNAL, I_FIND_PARENT_RESPONSE).set(_nc.distance)); } else { TRANSPORT_DEBUG(PSTR("!TSF:MSG:GWL FAIL\n")); // GW uplink fail, do not respond to parent request @@ -718,7 +718,7 @@ void transportProcessMessage(void) { if (last == _nc.parentNodeId) { // random wait to minimize collisions delay(hwMillis() & 0x3ff); - (void)transportRouteMessage(build(_msgTmp, sender, NODE_SENSOR_ID, C_INTERNAL, I_DISCOVER_RESPONSE, false).set(_nc.parentNodeId)); + (void)transportRouteMessage(build(_msgTmp, sender, NODE_SENSOR_ID, C_INTERNAL, I_DISCOVER_RESPONSE).set(_nc.parentNodeId)); // no return here (for fwd if repeater) } } diff --git a/core/MyTransport.h b/core/MyTransport.h index 0cd350e..305b53f 100644 --- a/core/MyTransport.h +++ b/core/MyTransport.h @@ -236,7 +236,7 @@ typedef struct { // 8 bits uint8_t failedUplinkTransmissions : 4; //!< counter failed uplink transmissions (max 15) uint8_t failureCounter : 3; //!< counter for TSM failures (max 7) - bool MsgReceived : 1; //!< flag message received + bool msgReceived : 1; //!< flag message received // 8 bits uint8_t pingResponse; //!< stores I_PONG hops } transportSM;