/*------------------------------------------------------------------------------------------------*/\r
-/* Unicens XML Parser */\r
+/* UNICENS XML Parser */\r
/* Copyright 2017, Microchip Technology Inc. and its subsidiaries. */\r
/* */\r
/* Redistribution and use in source and binary forms, with or without */\r
typedef struct\r
{\r
Ucs_Rm_Node_t *nod;\r
- bool usbPortAddedToJobList; /* USB Port must be added only ONCE to connection job lists */\r
Ucs_Xrm_UsbPort_t *usbPort;\r
- bool mlbPortAddedToJobList; /* MLB Port must be added only ONCE to connection job lists */\r
Ucs_Xrm_MlbPort_t *mlbPort;\r
- bool strmPortsAddedToJobList; /* STRM Ports must be added only ONCE to connection job lists */\r
Ucs_Xrm_StrmPort_t *strmPortA;\r
Ucs_Xrm_StrmPort_t *strmPortB;\r
} NodeData_t;\r
#define MLB_PORT "MediaLBPort"\r
#define USB_PORT "USBPort"\r
#define STRM_PORT "StreamPort"\r
-static const char* ALL_PORTS[] = { MLB_PORT, USB_PORT, STRM_PORT };\r
+static const char* ALL_PORTS[] = { MLB_PORT, USB_PORT, STRM_PORT, NULL };\r
\r
static const char* PHYSICAL_LAYER = "PhysicalLayer";\r
static const char* DEVICE_INTERFACES = "DeviceInterfaces";\r
UcsXml_CB_OnError("Unknown Port:'%s'", 1, txt);\r
RETURN_ASSERT(Parse_XmlError);\r
}\r
- if(!GetElementArray(port, ALL_SOCKETS, &txt, &port))\r
+ if(!GetElementArray(port, ALL_PORTS, &txt, &port))\r
break;\r
}\r
}\r
RETURN_ASSERT(Parse_XmlError);\r
priv->nodeData.usbPort = (Ucs_Xrm_UsbPort_t *)p.usbPort;\r
}\r
- if (!priv->nodeData.usbPortAddedToJobList)\r
- {\r
- priv->nodeData.usbPortAddedToJobList = true;\r
- if(!AddJob(jobList, p.usbPort, &priv->objList)) RETURN_ASSERT(Parse_XmlError);\r
- }\r
+ if(!AddJob(jobList, p.usbPort, &priv->objList)) RETURN_ASSERT(Parse_XmlError);\r
if (!GetString(soc, ENDPOINT_ADDRESS, &p.endpointAddress, true)) RETURN_ASSERT(Parse_XmlError);\r
if (!GetString(soc, FRAMES_PER_TRANSACTION, &p.framesPerTrans, true)) RETURN_ASSERT(Parse_XmlError);\r
if (!GetUsbSocket((Ucs_Xrm_UsbSocket_t **)targetSock, &p)) RETURN_ASSERT(Parse_XmlError);\r
RETURN_ASSERT(Parse_XmlError);\r
priv->nodeData.mlbPort = (Ucs_Xrm_MlbPort_t *)p.mlbPort;\r
}\r
- if (!priv->nodeData.mlbPortAddedToJobList)\r
- {\r
- priv->nodeData.mlbPortAddedToJobList = true;\r
- if (!AddJob(jobList, p.mlbPort, &priv->objList)) RETURN_ASSERT(Parse_XmlError);\r
- }\r
+ if (!AddJob(jobList, p.mlbPort, &priv->objList)) RETURN_ASSERT(Parse_XmlError);\r
if (!GetUInt16(soc, BANDWIDTH, &p.bandwidth, true)) RETURN_ASSERT(Parse_XmlError);\r
if (!GetString(soc, CHANNEL_ADDRESS, &p.channelAddress, true)) RETURN_ASSERT(Parse_XmlError);\r
if (!GetMlbSocket((Ucs_Xrm_MlbSocket_t **)targetSock, &p)) RETURN_ASSERT(Parse_XmlError);\r
p.dataType = priv->conData.dataType;\r
p.streamPortA = priv->nodeData.strmPortA;\r
p.streamPortB = priv->nodeData.strmPortB;\r
- if (!priv->nodeData.strmPortsAddedToJobList)\r
- {\r
- priv->nodeData.strmPortsAddedToJobList = true;\r
- if (!AddJob(jobList, p.streamPortA, &priv->objList)) RETURN_ASSERT(Parse_XmlError);\r
- if (!AddJob(jobList, p.streamPortB, &priv->objList)) RETURN_ASSERT(Parse_XmlError);\r
- }\r
+ if (!AddJob(jobList, p.streamPortA, &priv->objList)) RETURN_ASSERT(Parse_XmlError);\r
+ if (!AddJob(jobList, p.streamPortB, &priv->objList)) RETURN_ASSERT(Parse_XmlError);\r
if (!GetUInt16(soc, BANDWIDTH, &p.bandwidth, true)) RETURN_ASSERT(Parse_XmlError);\r
if (!GetString(soc, STRM_PIN, &p.streamPin, true)) RETURN_ASSERT(Parse_XmlError);\r
if (!GetStrmSocket((Ucs_Xrm_StrmSocket_t **)targetSock, &p)) RETURN_ASSERT(Parse_XmlError);\r
if (!GetUInt8(act, OP_TYPE_REQUEST, &req->OpCode, true))\r
RETURN_ASSERT(Parse_XmlError);\r
\r
- if (!GetUInt8(act, OP_TYPE_RESPONSE, &res->OpCode, true))\r
- RETURN_ASSERT(Parse_XmlError);\r
-\r
res->FBlockId = req->FBlockId;\r
res->FunktId = req->FunktId;\r
- GetPayload(act, PAYLOAD_RES_HEX, &res->DataPtr, &res->DataLen, 0, &priv->objList, false);\r
+\r
+ if (GetUInt8(act, OP_TYPE_RESPONSE, &res->OpCode, false))\r
+ GetPayload(act, PAYLOAD_RES_HEX, &res->DataPtr, &res->DataLen, 0, &priv->objList, false);\r
\r
if (!GetPayload(act, PAYLOAD_REQ_HEX, &req->DataPtr, &req->DataLen, 0, &priv->objList, true))\r
RETURN_ASSERT(Parse_XmlError);\r