adapted to latest changes in gwen, more work on data and nodes servers.

This commit is contained in:
Martin Preuss
2024-09-26 10:45:22 +02:00
parent be053b035f
commit b0b6efb1c3
88 changed files with 1745 additions and 445 deletions

View File

@@ -42,39 +42,31 @@
#define AQH_MSGIPC_GETDEVICES_RSP_MINSIZE (GWEN_MSGIPC_OFFS_PAYLOAD+AQH_MSGIPC_GETDEVICES_RSP_OFFS_IO+2)
static void _addU16t(uint8_t **pPtr, uint16_t i);
static void _addU32t(uint8_t **pPtr, uint32_t i);
static void _addU64t(uint8_t **pPtr, uint64_t i);
GWEN_MSG *AQH_GetDevicesResponseIpcMsg_new(uint16_t code, uint8_t flags, const AQH_NODE_INFO *ni)
GWEN_MSG *AQH_GetDevicesResponseIpcMsg_new(uint16_t code, uint32_t msgId, uint32_t refMsgId, uint8_t flags, const AQH_NODE_INFO *ni)
{
GWEN_MSG *msg;
uint8_t *ptr;
const GWEN_TIMESTAMP *t;
msg=GWEN_IpcMsg_new(AQH_IPC_PROTOCOL_NODES_ID, AQH_IPC_PROTOCOL_NODES_VERSION, code, AQH_MSGIPC_GETDEVICES_RSP_MINSIZE, NULL);
ptr=GWEN_Msg_GetBuffer(msg)+GWEN_MSGIPC_OFFS_PAYLOAD;
msg=GWEN_IpcMsg_new(AQH_IPC_PROTOCOL_NODES_ID, AQH_IPC_PROTOCOL_NODES_VERSION, code, msgId, refMsgId, 0, NULL);
GWEN_Msg_AddUint8(msg, flags & 0xff);
GWEN_Msg_AddUint8(msg, AQH_NodeInfo_GetBusAddress(ni));
GWEN_Msg_AddUint32(msg, AQH_NodeInfo_GetUid(ni));
*(ptr++)=flags & 0xff;
*(ptr++)=AQH_NodeInfo_GetBusAddress(ni);
_addU32t(&ptr, AQH_NodeInfo_GetUid(ni));
_addU32t(&ptr, AQH_NodeInfo_GetManufacturer(ni));
_addU16t(&ptr, AQH_NodeInfo_GetDeviceType(ni));
_addU16t(&ptr, AQH_NodeInfo_GetDeviceVersion(ni));
_addU32t(&ptr, AQH_NodeInfo_GetFirmwareVersion(ni));
GWEN_Msg_AddUint32(msg, AQH_NodeInfo_GetManufacturer(ni));
GWEN_Msg_AddUint16(msg, AQH_NodeInfo_GetDeviceType(ni));
GWEN_Msg_AddUint16(msg, AQH_NodeInfo_GetDeviceVersion(ni));
GWEN_Msg_AddUint32(msg, AQH_NodeInfo_GetFirmwareVersion(ni));
t=AQH_NodeInfo_GetTimestampLastChange(ni);
_addU64t(&ptr, t?((uint64_t)GWEN_Timestamp_toInt64(t)):0L);
GWEN_Msg_AddUint64(msg, t?((uint64_t)GWEN_Timestamp_toInt64(t)):0L);
_addU16t(&ptr, AQH_NodeInfo_GetStatsPacketsOut(ni));
_addU16t(&ptr, AQH_NodeInfo_GetStatsPacketsIn(ni));
_addU16t(&ptr, AQH_NodeInfo_GetStatsCollisions(ni));
_addU16t(&ptr, AQH_NodeInfo_GetStatsBusy(ni));
_addU16t(&ptr, AQH_NodeInfo_GetStatsCrcErrors(ni));
_addU16t(&ptr, AQH_NodeInfo_GetStatsIoErrors(ni));
GWEN_Msg_AddUint16(msg, AQH_NodeInfo_GetStatsPacketsOut(ni));
GWEN_Msg_AddUint16(msg, AQH_NodeInfo_GetStatsPacketsIn(ni));
GWEN_Msg_AddUint16(msg, AQH_NodeInfo_GetStatsCollisions(ni));
GWEN_Msg_AddUint16(msg, AQH_NodeInfo_GetStatsBusy(ni));
GWEN_Msg_AddUint16(msg, AQH_NodeInfo_GetStatsCrcErrors(ni));
GWEN_Msg_AddUint16(msg, AQH_NodeInfo_GetStatsIoErrors(ni));
GWEN_IpcMsg_AdjustMsgSize(msg);
return msg;
}
@@ -132,11 +124,7 @@ uint32_t AQH_GetDevicesResponseIpcMsg_GetFirmwareVersion(const GWEN_MSG *msg)
int64_t AQH_GetDevicesResponseIpcMsg_GetTimestamp(const GWEN_MSG *msg)
{
uint64_t v;
v=(uint64_t) GWEN_Msg_GetUint32At(msg, GWEN_MSGIPC_OFFS_PAYLOAD+AQH_MSGIPC_GETDEVICES_RSP_OFFS_LASTCHG, 0);
v|=((uint64_t)GWEN_Msg_GetUint32At(msg, GWEN_MSGIPC_OFFS_PAYLOAD+AQH_MSGIPC_GETDEVICES_RSP_OFFS_LASTCHG+4, 0))<<32;
return (int64_t) v;
return GWEN_Msg_GetUint64At(msg, GWEN_MSGIPC_OFFS_PAYLOAD+AQH_MSGIPC_GETDEVICES_RSP_OFFS_LASTCHG, 0);
}
@@ -199,49 +187,3 @@ void AQH_GetDevicesResponseIpcMsg_DumpToBuffer(const GWEN_MSG *msg, GWEN_BUFFER
}
void _addU16t(uint8_t **pPtr, uint16_t i)
{
uint8_t *ptr=*pPtr;
*(ptr++)=i & 0xff;
*(ptr++)=(i>>8) & 0xff;
*pPtr=ptr;
}
void _addU32t(uint8_t **pPtr, uint32_t i)
{
uint8_t *ptr=*pPtr;
*(ptr++)=i & 0xff;
*(ptr++)=(i>>8) & 0xff;
*(ptr++)=(i>>16) & 0xff;
*(ptr++)=(i>>24) & 0xff;
*pPtr=ptr;
}
void _addU64t(uint8_t **pPtr, uint64_t i)
{
uint8_t *ptr=*pPtr;
*(ptr++)=i & 0xff;
*(ptr++)=(i>>8) & 0xff;
*(ptr++)=(i>>16) & 0xff;
*(ptr++)=(i>>24) & 0xff;
*(ptr++)=(i>>32) & 0xff;
*(ptr++)=(i>>40) & 0xff;
*(ptr++)=(i>>48) & 0xff;
*(ptr++)=(i>>56) & 0xff;
*pPtr=ptr;
}