Add support for I_DEBUG messages
This commit is contained in:
@@ -31,10 +31,19 @@
|
|||||||
* Serial and debug options
|
* Serial and debug options
|
||||||
***********************************/
|
***********************************/
|
||||||
|
|
||||||
// Enables this in sketch to show debug prints. This option will add a lot to the size of the
|
// Enable MY_DEBUG in sketch to show debug prints. This option will add a lot to the size of the
|
||||||
// final sketch but is helpful to see what is actually is happening during development
|
// final sketch but is helpful to see what is actually is happening during development
|
||||||
//#define MY_DEBUG
|
//#define MY_DEBUG
|
||||||
|
|
||||||
|
// Enable MY_SPECIAL_DEBUG in sketch to activate I_DEBUG messages if MY_DEBUG is disabled.
|
||||||
|
// I_DEBUG requests are:
|
||||||
|
// R: routing info (only repeaters): received msg XXYY (as stream), where XX is the node and YY the routing node
|
||||||
|
// V: CPU voltage
|
||||||
|
// F: CPU frequency
|
||||||
|
// M: free memory
|
||||||
|
// E: clear MySensors EEPROM area and reboot (i.e. "factory" reset)
|
||||||
|
//#define MY_SPECIAL_DEBUG
|
||||||
|
|
||||||
// Enable MY_DEBUG_VERBOSE_SIGNING flag for verbose debug prints related to signing.
|
// Enable MY_DEBUG_VERBOSE_SIGNING flag for verbose debug prints related to signing.
|
||||||
// Requires DEBUG to be enabled.
|
// Requires DEBUG to be enabled.
|
||||||
// This will add even more to the size of the final sketch!
|
// This will add even more to the size of the final sketch!
|
||||||
|
|||||||
@@ -306,25 +306,58 @@ void _processInternalMessages() {
|
|||||||
// Deliver time to callback
|
// Deliver time to callback
|
||||||
if (receiveTime)
|
if (receiveTime)
|
||||||
receiveTime(_msg.getULong());
|
receiveTime(_msg.getULong());
|
||||||
}
|
} else if (type == I_CHILDREN) {
|
||||||
#if defined(MY_REPEATER_FEATURE)
|
#if defined(MY_REPEATER_FEATURE)
|
||||||
if (type == I_CHILDREN) {
|
if (_msg.data[0] == 'C') {
|
||||||
if (_msg.getString()[0] == 'C') {
|
// Clears child relay data for this node
|
||||||
// Clears child relay data for this node
|
debug(PSTR("clear routing table\n"));
|
||||||
debug(PSTR("clear routing table\n"));
|
uint8_t i = 255;
|
||||||
uint8_t i = 255;
|
do {
|
||||||
do {
|
hwWriteConfig(EEPROM_ROUTES_ADDRESS+i, BROADCAST_ADDRESS);
|
||||||
hwWriteConfig(EEPROM_ROUTES_ADDRESS+i, BROADCAST_ADDRESS);
|
} while (i--);
|
||||||
} while (i--);
|
// Clear parent node id & distance to gw
|
||||||
// Clear parent node id & distance to gw
|
hwWriteConfig(EEPROM_PARENT_NODE_ID_ADDRESS, AUTO);
|
||||||
hwWriteConfig(EEPROM_PARENT_NODE_ID_ADDRESS, AUTO);
|
hwWriteConfig(EEPROM_DISTANCE_ADDRESS, DISTANCE_INVALID);
|
||||||
hwWriteConfig(EEPROM_DISTANCE_ADDRESS, DISTANCE_INVALID);
|
// Find parent node
|
||||||
// Find parent node
|
transportFindParentNode();
|
||||||
transportFindParentNode();
|
_sendRoute(build(_msg, _nc.nodeId, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_CHILDREN,false).set("ok"));
|
||||||
_sendRoute(build(_msg, _nc.nodeId, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_CHILDREN,false).set(""));
|
}
|
||||||
|
#endif
|
||||||
|
} else if (type == I_DEBUG) {
|
||||||
|
#if defined(MY_DEBUG) || defined(MY_SPECIAL_DEBUG)
|
||||||
|
char debug_msg = _msg.data[0];
|
||||||
|
if(debug_msg == 'R'){
|
||||||
|
#if defined(MY_REPEATER_FEATURE)
|
||||||
|
// routing table
|
||||||
|
for(uint8_t cnt=0; cnt!=255;cnt++){
|
||||||
|
uint8_t route = hwReadConfig(EEPROM_ROUTES_ADDRESS+cnt);
|
||||||
|
if (route!=BROADCAST_ADDRESS){
|
||||||
|
debug(PSTR("ID: %d via %d\n"),cnt,route);
|
||||||
|
uint8_t OutBuf[2] = {cnt,route};
|
||||||
|
_sendRoute(build(_msgTmp, _nc.nodeId, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_DEBUG,false).set(OutBuf,2));
|
||||||
|
wait(100);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
} else if(debug_msg == 'V'){
|
||||||
|
// CPU voltage
|
||||||
|
_sendRoute(build(_msgTmp, _nc.nodeId, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_DEBUG,false).set(hwCPUVoltage()));
|
||||||
|
} else if (debug_msg == 'F') {
|
||||||
|
// CPU frequency in 1/10Mhz
|
||||||
|
_sendRoute(build(_msgTmp, _nc.nodeId, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_DEBUG,false).set(hwCPUFrequency()));
|
||||||
|
} else if (debug_msg == 'M') {
|
||||||
|
// free memory
|
||||||
|
_sendRoute(build(_msgTmp, _nc.nodeId, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_DEBUG,false).set(hwFreeMem()));
|
||||||
|
} else if (debug_msg == 'E') {
|
||||||
|
// clear MySensors eeprom area and reboot
|
||||||
|
_sendRoute(build(_msgTmp, _nc.nodeId, GATEWAY_ADDRESS, NODE_SENSOR_ID, C_INTERNAL, I_CHILDREN,false).set("ok"));
|
||||||
|
for (int i=EEPROM_START;i<EEPROM_LOCAL_CONFIG_ADDRESS;i++) {
|
||||||
|
hwWriteConfig(i,0xFF);
|
||||||
|
}
|
||||||
|
hwReboot();
|
||||||
}
|
}
|
||||||
}
|
#endif
|
||||||
#endif
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ smartSleep KEYWORD2
|
|||||||
#######################################
|
#######################################
|
||||||
AUTO LITERAL1
|
AUTO LITERAL1
|
||||||
MY_DEBUG LITERAL1
|
MY_DEBUG LITERAL1
|
||||||
|
MY_SPECIAL_DEBUG LITERAL1
|
||||||
MY_CORE_ONLY LITERAL1
|
MY_CORE_ONLY LITERAL1
|
||||||
MY_DEBUG_VERBOSE LITERAL1
|
MY_DEBUG_VERBOSE LITERAL1
|
||||||
MY_DEBUG_VERBOSE_RF24 LITERAL1
|
MY_DEBUG_VERBOSE_RF24 LITERAL1
|
||||||
|
|||||||
Reference in New Issue
Block a user