diff --git a/apps/aqhome-nodes/db.c b/apps/aqhome-nodes/db.c index 09346f0..01152b7 100644 --- a/apps/aqhome-nodes/db.c +++ b/apps/aqhome-nodes/db.c @@ -117,6 +117,26 @@ void _handleMsgValue(AQH_NODE_SERVER *xo, const AQH_MESSAGE *msg) if (ni==NULL) { DBG_INFO(AQH_LOGDOMAIN, "Error handling message"); } + else { + uint8_t valueId; + uint16_t val; + + val=AQH_ValueMessage_GetValueNom(msg); + valueId=AQH_ValueMessage_GetValueId(msg); + + switch(valueId) { + case AQH_ENDPOINT_VID_STATS_PACKETS_IN: AQH_NodeInfo_SetStatsPacketsIn(ni, val); AQH_NodeDb_SetModified(xo->nodeDb); break; + case AQH_ENDPOINT_VID_STATS_PACKETS_OUT: AQH_NodeInfo_SetStatsPacketsOut(ni, val); AQH_NodeDb_SetModified(xo->nodeDb); break; + case AQH_ENDPOINT_VID_STATS_ERRS_CONTENT: AQH_NodeInfo_SetStatsCrcErrors(ni, val); AQH_NodeDb_SetModified(xo->nodeDb); break; + case AQH_ENDPOINT_VID_STATS_ERRS_IO: AQH_NodeInfo_SetStatsIoErrors(ni, val); AQH_NodeDb_SetModified(xo->nodeDb); break; + case AQH_ENDPOINT_VID_STATS_ERRS_NOBUF: break; + case AQH_ENDPOINT_VID_STATS_ERRS_COLLISIONS: AQH_NodeInfo_SetStatsCollisions(ni, val); AQH_NodeDb_SetModified(xo->nodeDb); break; + case AQH_ENDPOINT_VID_STATS_ERRS_BUSY: AQH_NodeInfo_SetStatsBusy(ni, val); AQH_NodeDb_SetModified(xo->nodeDb); break; + case AQH_ENDPOINT_VID_STATS_HEAP_USED: break; + case AQH_ENDPOINT_VID_STATS_HEAP_FREE: break; + default: + } + } } @@ -145,11 +165,13 @@ void _handleMsgComSendStat(AQH_NODE_SERVER *xo, const AQH_MESSAGE *msg) if (ni==NULL) { DBG_INFO(AQH_LOGDOMAIN, "Error handling message"); } - AQH_NodeInfo_SetStatsPacketsOut(ni, AQH_SendStatsMessage_GetPacketsOut(msg)); - AQH_NodeInfo_SetStatsCollisions(ni, AQH_SendStatsMessage_GetCollisions(msg)); - AQH_NodeInfo_SetStatsBusy(ni, AQH_SendStatsMessage_GetBusyErrors(msg)); - AQH_NodeDb_SetModified(xo->nodeDb); - _updateTimestampLastChange(ni); + else { + AQH_NodeInfo_SetStatsPacketsOut(ni, AQH_SendStatsMessage_GetPacketsOut(msg)); + AQH_NodeInfo_SetStatsCollisions(ni, AQH_SendStatsMessage_GetCollisions(msg)); + AQH_NodeInfo_SetStatsBusy(ni, AQH_SendStatsMessage_GetBusyErrors(msg)); + AQH_NodeDb_SetModified(xo->nodeDb); + _updateTimestampLastChange(ni); + } } diff --git a/apps/aqhome-nodes/server.h b/apps/aqhome-nodes/server.h index 086215b..a59b7f9 100644 --- a/apps/aqhome-nodes/server.h +++ b/apps/aqhome-nodes/server.h @@ -34,6 +34,18 @@ +#define AQH_ENDPOINT_VID_STATS_PACKETS_IN 0xe0 +#define AQH_ENDPOINT_VID_STATS_PACKETS_OUT 0xe1 +#define AQH_ENDPOINT_VID_STATS_ERRS_CONTENT 0xe2 +#define AQH_ENDPOINT_VID_STATS_ERRS_IO 0xe3 +#define AQH_ENDPOINT_VID_STATS_ERRS_NOBUF 0xe4 +#define AQH_ENDPOINT_VID_STATS_ERRS_COLLISIONS 0xe5 +#define AQH_ENDPOINT_VID_STATS_ERRS_BUSY 0xe6 +#define AQH_ENDPOINT_VID_STATS_HEAP_USED 0xe7 +#define AQH_ENDPOINT_VID_STATS_HEAP_FREE 0xe8 + + + AQH_OBJECT *AQH_NodeServer_new(AQH_EVENT_LOOP *eventLoop); int AQH_NodeServer_Init(AQH_OBJECT *o, int argc, char **argv); void AQH_NodeServer_Fini(AQH_OBJECT *o); diff --git a/aqhome/aqhome.c b/aqhome/aqhome.c index 7f6533d..473444d 100644 --- a/aqhome/aqhome.c +++ b/aqhome/aqhome.c @@ -261,6 +261,12 @@ int AQH_ValueModality_fromString(const char *s) return AQH_ValueModality_RGBW; else if (strcasecmp(s, "motion")==0) return AQH_ValueModality_Motion; + else if (strcasecmp(s, "co2")==0) + return AQH_ValueModality_Co2; + else if (strcasecmp(s, "tvoc")==0) + return AQH_ValueModality_TVOC; + else if (strcasecmp(s, "stats")==0) + return AQH_ValueModality_Stats; } return AQH_ValueModality_Unknown; } @@ -276,6 +282,9 @@ const char *AQH_ValueModality_toString(int i) case AQH_ValueModality_RGB: return "rgb"; case AQH_ValueModality_RGBW: return "rgbw"; case AQH_ValueModality_Motion: return "motion"; + case AQH_ValueModality_Co2: return "co2"; + case AQH_ValueModality_TVOC: return "tvoc"; + case AQH_ValueModality_Stats: return "stats"; case AQH_ValueModality_Unknown: default: return "unknown"; } diff --git a/aqhome/aqhome.h b/aqhome/aqhome.h index 50e6636..185ca2e 100644 --- a/aqhome/aqhome.h +++ b/aqhome/aqhome.h @@ -42,7 +42,10 @@ enum { AQH_ValueModality_Door, AQH_ValueModality_RGB, AQH_ValueModality_RGBW, - AQH_ValueModality_Motion + AQH_ValueModality_Motion, + AQH_ValueModality_Co2, + AQH_ValueModality_TVOC, + AQH_ValueModality_Stats };