aqhome-nodes: handle new statistics messages.
This commit is contained in:
@@ -126,7 +126,6 @@ static void _forwardDataFromRecvStatsMsgToBroker(AQH_NODE_SERVER *xo, const AQH_
|
|||||||
static void _forwardDataFromMemStatsMsgToBroker(AQH_NODE_SERVER *xo, const AQH_MESSAGE *msg);
|
static void _forwardDataFromMemStatsMsgToBroker(AQH_NODE_SERVER *xo, const AQH_MESSAGE *msg);
|
||||||
static void _forwardTtyMsgToClients(AQH_NODE_SERVER *xo, const AQH_MESSAGE *msg);
|
static void _forwardTtyMsgToClients(AQH_NODE_SERVER *xo, const AQH_MESSAGE *msg);
|
||||||
static void _publishIntWithIdx(AQH_NODE_SERVER *xo, uint32_t uid, const char *vPath, int idx, int vModality, const char *vUnits, int v);
|
static void _publishIntWithIdx(AQH_NODE_SERVER *xo, uint32_t uid, const char *vPath, int idx, int vModality, const char *vUnits, int v);
|
||||||
static void _publishDoubleWithIdx(AQH_NODE_SERVER *xo, uint32_t uid, const char *vPath, int idx, int vModality, const char *vUnits, double v);
|
|
||||||
static void _publishInt(AQH_NODE_SERVER *xo, uint32_t uid, const char *vPath, int vModality, const char *vUnits, int v);
|
static void _publishInt(AQH_NODE_SERVER *xo, uint32_t uid, const char *vPath, int vModality, const char *vUnits, int v);
|
||||||
static void _publishDouble(AQH_NODE_SERVER *xo, uint32_t uid, const char *vPath, int vModality, const char *vUnits, double v);
|
static void _publishDouble(AQH_NODE_SERVER *xo, uint32_t uid, const char *vPath, int vModality, const char *vUnits, double v);
|
||||||
static void _setDeviceName(AQH_VALUE *value, uint32_t uid);
|
static void _setDeviceName(AQH_VALUE *value, uint32_t uid);
|
||||||
@@ -905,25 +904,20 @@ void _forwardDataFromSendStatsMsgToBroker(AQH_NODE_SERVER *xo, const AQH_MESSAGE
|
|||||||
if (packetsOutInt) {
|
if (packetsOutInt) {
|
||||||
uint32_t uid;
|
uint32_t uid;
|
||||||
int devNum;
|
int devNum;
|
||||||
double packetsOut;
|
|
||||||
double collisions;
|
|
||||||
double busy;
|
|
||||||
double collisionsPercentage=0.0;
|
|
||||||
double busyPercentage=0.0;
|
|
||||||
|
|
||||||
uid=AQH_SendStatsMessage_GetUid(msg);
|
uid=AQH_SendStatsMessage_GetUid(msg);
|
||||||
devNum=AQH_SendStatsMessage_GetInterface(msg);
|
devNum=AQH_SendStatsMessage_GetInterface(msg);
|
||||||
packetsOut=/*(double)*/ packetsOutInt;
|
|
||||||
collisions=/*(double)*/ AQH_SendStatsMessage_GetCollisions(msg);
|
|
||||||
busy=/*(double)*/ AQH_SendStatsMessage_GetBusyErrors(msg);
|
|
||||||
|
|
||||||
collisionsPercentage=collisions*100.0/packetsOut;
|
if (devNum==0) {
|
||||||
busyPercentage=busy*100.0/packetsOut;
|
_publishInt(xo, uid, "net/packetsOut", 0, NULL, packetsOutInt);
|
||||||
|
_publishInt(xo, uid, "net/collisions", 0, NULL, (int) AQH_SendStatsMessage_GetCollisions(msg));
|
||||||
_publishIntWithIdx( xo, uid, "net/packetsOut", devNum, 0, NULL, packetsOutInt);
|
_publishInt(xo, uid, "net/busy", 0, NULL, (int) AQH_SendStatsMessage_GetBusyErrors(msg));
|
||||||
_publishIntWithIdx( xo, uid, "net/collisions", devNum, 0, NULL, (int) AQH_SendStatsMessage_GetCollisions(msg));
|
}
|
||||||
_publishDoubleWithIdx(xo, uid, "net/collisionsPercent", devNum, 0, "%", collisionsPercentage);
|
else {
|
||||||
_publishDoubleWithIdx(xo, uid, "net/busyPercent", devNum, 0, "%", busyPercentage);
|
_publishIntWithIdx(xo, uid, "net/packetsOut", devNum, 0, NULL, packetsOutInt);
|
||||||
|
_publishIntWithIdx(xo, uid, "net/collisions", devNum, 0, NULL, (int) AQH_SendStatsMessage_GetCollisions(msg));
|
||||||
|
_publishIntWithIdx(xo, uid, "net/busy", devNum, 0, NULL, (int) AQH_SendStatsMessage_GetBusyErrors(msg));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -937,26 +931,26 @@ void _forwardDataFromRecvStatsMsgToBroker(AQH_NODE_SERVER *xo, const AQH_MESSAGE
|
|||||||
if (packetsInInt) {
|
if (packetsInInt) {
|
||||||
uint32_t uid;
|
uint32_t uid;
|
||||||
int devNum;
|
int devNum;
|
||||||
double packetsIn;
|
|
||||||
double crcErrors;
|
|
||||||
double ioErrors;
|
|
||||||
double crcErrorsPercentage=0.0;
|
|
||||||
double ioErrorsPercentage=0.0;
|
|
||||||
|
|
||||||
uid=AQH_RecvStatsMessage_GetUid(msg);
|
uid=AQH_RecvStatsMessage_GetUid(msg);
|
||||||
devNum=AQH_RecvStatsMessage_GetInterface(msg);
|
devNum=AQH_RecvStatsMessage_GetInterface(msg);
|
||||||
packetsIn=/*(double)*/ packetsInInt;
|
|
||||||
crcErrors=/*(double)*/AQH_RecvStatsMessage_GetCrcErrors(msg);
|
|
||||||
ioErrors=/*(double)*/AQH_RecvStatsMessage_GetIoErrors(msg);
|
|
||||||
|
|
||||||
crcErrorsPercentage=crcErrors*100.0/packetsIn;
|
if (devNum==0) {
|
||||||
ioErrorsPercentage=ioErrors*100.0/packetsIn;
|
_publishInt(xo, uid, "net/packetsIn", 0, NULL, packetsInInt);
|
||||||
|
_publishInt(xo, uid, "net/crcErrors", 0, NULL, (int) AQH_RecvStatsMessage_GetCrcErrors(msg));
|
||||||
_publishIntWithIdx( xo, uid, "net/packetsIn", devNum, 0, NULL, packetsInInt);
|
_publishInt(xo, uid, "net/ioErrors", 0, NULL, (int) AQH_RecvStatsMessage_GetIoErrors(msg));
|
||||||
_publishIntWithIdx( xo, uid, "net/crcerrors", devNum, 0, NULL, (int) AQH_RecvStatsMessage_GetCrcErrors(msg));
|
_publishInt(xo, uid, "net/nobufferErrors", 0, NULL, (int) AQH_RecvStatsMessage_GetNoBufferErrors(msg));
|
||||||
_publishIntWithIdx( xo, uid, "net/ioerrors", devNum, 0, NULL, (int) AQH_RecvStatsMessage_GetIoErrors(msg));
|
_publishInt(xo, uid, "net/msgSizeErrors", 0, NULL, (int) AQH_RecvStatsMessage_GetMsgSizeErrors(msg));
|
||||||
_publishDoubleWithIdx(xo, uid, "net/crcerrorsPercent", devNum, 0, "%", crcErrorsPercentage);
|
_publishInt(xo, uid, "net/missed", 0, NULL, (int) AQH_RecvStatsMessage_GetMissed(msg));
|
||||||
_publishDoubleWithIdx(xo, uid, "net/ioerrorsPercent", devNum, 0, "%", ioErrorsPercentage);
|
}
|
||||||
|
else {
|
||||||
|
_publishIntWithIdx(xo, uid, "net/packetsIn", devNum, 0, NULL, packetsInInt);
|
||||||
|
_publishIntWithIdx(xo, uid, "net/crcErrors", devNum, 0, NULL, (int) AQH_RecvStatsMessage_GetCrcErrors(msg));
|
||||||
|
_publishIntWithIdx(xo, uid, "net/ioErrors", devNum, 0, NULL, (int) AQH_RecvStatsMessage_GetIoErrors(msg));
|
||||||
|
_publishIntWithIdx(xo, uid, "net/nobufferErrors", devNum, 0, NULL, (int) AQH_RecvStatsMessage_GetNoBufferErrors(msg));
|
||||||
|
_publishIntWithIdx(xo, uid, "net/msgSizeErrors", devNum, 0, NULL, (int) AQH_RecvStatsMessage_GetMsgSizeErrors(msg));
|
||||||
|
_publishIntWithIdx(xo, uid, "net/missed", devNum, 0, NULL, (int) AQH_RecvStatsMessage_GetMissed(msg));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -986,18 +980,6 @@ void _publishIntWithIdx(AQH_NODE_SERVER *xo, uint32_t uid, const char *vPath, in
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
void _publishDoubleWithIdx(AQH_NODE_SERVER *xo, uint32_t uid, const char *vPath, int idx, int vModality, const char *vUnits, double v)
|
|
||||||
{
|
|
||||||
GWEN_BUFFER *tbuf;
|
|
||||||
|
|
||||||
tbuf=GWEN_Buffer_new(0, 256, 0, 1);
|
|
||||||
GWEN_Buffer_AppendArgs(tbuf, "%s%d", vPath, idx);
|
|
||||||
_publishDouble(xo, uid, GWEN_Buffer_GetStart(tbuf), vModality, vUnits, v);
|
|
||||||
GWEN_Buffer_free(tbuf);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void _publishInt(AQH_NODE_SERVER *xo, uint32_t uid, const char *vPath, int vModality, const char *vUnits, int v)
|
void _publishInt(AQH_NODE_SERVER *xo, uint32_t uid, const char *vPath, int vModality, const char *vUnits, int v)
|
||||||
{
|
{
|
||||||
_publishDouble(xo, uid, vPath, vModality, vUnits, /*(double)*/ v);
|
_publishDouble(xo, uid, vPath, vModality, vUnits, /*(double)*/ v);
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ AQHOME_API uint16_t AQH_RecvStatsMessage_GetPacketsIn(const AQH_MESSAGE *msg);
|
|||||||
AQHOME_API uint16_t AQH_RecvStatsMessage_GetCrcErrors(const AQH_MESSAGE *msg);
|
AQHOME_API uint16_t AQH_RecvStatsMessage_GetCrcErrors(const AQH_MESSAGE *msg);
|
||||||
AQHOME_API uint16_t AQH_RecvStatsMessage_GetIoErrors(const AQH_MESSAGE *msg);
|
AQHOME_API uint16_t AQH_RecvStatsMessage_GetIoErrors(const AQH_MESSAGE *msg);
|
||||||
AQHOME_API uint16_t AQH_RecvStatsMessage_GetNoBufferErrors(const AQH_MESSAGE *msg);
|
AQHOME_API uint16_t AQH_RecvStatsMessage_GetNoBufferErrors(const AQH_MESSAGE *msg);
|
||||||
AQHOME_API uint16_t AQH_RecvStatsMessage_GetHandled(const AQH_MESSAGE *msg);
|
AQHOME_API uint16_t AQH_RecvStatsMessage_GetMsgSizeErrors(const AQH_MESSAGE *msg);
|
||||||
AQHOME_API uint16_t AQH_RecvStatsMessage_GetMissed(const AQH_MESSAGE *msg);
|
AQHOME_API uint16_t AQH_RecvStatsMessage_GetMissed(const AQH_MESSAGE *msg);
|
||||||
|
|
||||||
AQHOME_API void AQH_RecvStatsMessage_DumpToBuffer(const AQH_MESSAGE *msg, GWEN_BUFFER *dbuf, const char *sText);
|
AQHOME_API void AQH_RecvStatsMessage_DumpToBuffer(const AQH_MESSAGE *msg, GWEN_BUFFER *dbuf, const char *sText);
|
||||||
|
|||||||
Reference in New Issue
Block a user