Update HTML test page to new template. Added Config file selection from UI.
[apps/agl-service-unicens.git] / ucs2-interface / ucs-xml / UcsXml.c
index f953fe3..efce887 100644 (file)
@@ -62,7 +62,7 @@ struct UcsXmlScript
 struct UcsXmlJobList\r
 {\r
     Ucs_Xrm_ResObject_t *job;\r
-    struct UcsXmlJobList *next; \r
+    struct UcsXmlJobList *next;\r
 };\r
 \r
 typedef enum\r
@@ -85,11 +85,8 @@ typedef enum
 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
@@ -157,7 +154,7 @@ static const char* AVP_PACKET_SIZE =        "IsocPacketSize";
 #define QOS_CONNECTION                      "QoSConnection"\r
 #define IPC_CONNECTION                      "IPCConnection"\r
 \r
-static const char* ALL_CONNECTIONS[] = { SYNC_CONNECTION, AVP_CONNECTION, \r
+static const char* ALL_CONNECTIONS[] = { SYNC_CONNECTION, AVP_CONNECTION,\r
                         DFP_CONNECTION, QOS_CONNECTION, IPC_CONNECTION, NULL };\r
 \r
 #define MOST_SOCKET                         "MOSTSocket"\r
@@ -166,7 +163,7 @@ static const char* ALL_CONNECTIONS[] = { SYNC_CONNECTION, AVP_CONNECTION,
 #define STREAM_SOCKET                       "StreamSocket"\r
 #define SPLITTER                            "Splitter"\r
 #define COMBINER                            "Combiner"\r
-static const char* ALL_SOCKETS[] = { MOST_SOCKET, USB_SOCKET, MLB_SOCKET, \r
+static const char* ALL_SOCKETS[] = { MOST_SOCKET, USB_SOCKET, MLB_SOCKET,\r
                         STREAM_SOCKET, SPLITTER, COMBINER, NULL };\r
 \r
 #define MLB_PORT                            "MediaLBPort"\r
@@ -215,7 +212,7 @@ static const char* I2C_TIMEOUT =            "Timeout";
 #define SCRIPT_I2C_PORT_CREATE              "I2CPortCreate"\r
 #define SCRIPT_I2C_PORT_WRITE               "I2CPortWrite"\r
 #define SCRIPT_I2C_PORT_READ                "I2CPortRead"\r
-static const char* ALL_SCRIPTS[] = { SCRIPT_MSG_SEND, SCRIPT_PAUSE, \r
+static const char* ALL_SCRIPTS[] = { SCRIPT_MSG_SEND, SCRIPT_PAUSE,\r
     SCRIPT_GPIO_PORT_CREATE, SCRIPT_GPIO_PORT_PIN_MODE, SCRIPT_GPIO_PIN_STATE,\r
     SCRIPT_I2C_PORT_CREATE, SCRIPT_I2C_PORT_WRITE, SCRIPT_I2C_PORT_READ, NULL };\r
 \r
@@ -284,7 +281,7 @@ ERROR:
         UcsXml_CB_OnError("XML error, aborting..", 0);\r
     else\r
         UcsXml_CB_OnError("Allocation error, aborting..", 0);\r
-    assert(false);    \r
+    assert(false);\r
     if (!tree)\r
         mxmlDelete(tree);\r
     if (val)\r
@@ -416,7 +413,7 @@ static bool GetString(mxml_node_t *element, const char *key, const char **out, b
         }\r
     }\r
     if (mandatory)\r
-        UcsXml_CB_OnError("Can not find attribute='%s' from element <%s>", \r
+        UcsXml_CB_OnError("Can not find attribute='%s' from element <%s>",\r
             2, key, element->value.element.name);\r
     return false;\r
 }\r
@@ -490,7 +487,7 @@ static bool GetPayload(mxml_node_t *element, const char *name, uint8_t **pPayloa
         return false;\r
     tempLen = strlen(txt) + 1;\r
     txtCopy = malloc(tempLen);\r
-    if (NULL == txtCopy) \r
+    if (NULL == txtCopy)\r
         return false;\r
     strncpy(txtCopy, txt, tempLen);\r
     tempLen = tempLen / 3; /* 2 chars hex value plus space (AA )  */\r
@@ -634,7 +631,7 @@ static ParseResult_t ParseAll(mxml_node_t *tree, UcsXmlVal_t *ucs, PrivateData_t
     priv->autoRouteId = 0x8000;\r
     if (!GetCount(tree, NODE, &nodeCount, true))\r
         RETURN_ASSERT(Parse_XmlError);\r
-    \r
+\r
     ucs->pNod = MCalloc(&priv->objList, nodeCount, sizeof(Ucs_Rm_Node_t));\r
     if (NULL == ucs->pNod) RETURN_ASSERT(Parse_MemoryError);\r
 \r
@@ -686,7 +683,7 @@ static ParseResult_t ParseAll(mxml_node_t *tree, UcsXmlVal_t *ucs, PrivateData_t
     result = ParseRoutes(ucs, priv);\r
     if (Parse_MemoryError == result) RETURN_ASSERT(Parse_MemoryError)\r
     else if (Parse_XmlError == result) RETURN_ASSERT(Parse_XmlError);\r
-    \r
+\r
     /*Iterate all scripts. No scripts at all is allowed*/\r
     if(GetElement(tree, SCRIPT, true, &sub, false))\r
     {\r
@@ -767,7 +764,7 @@ static ParseResult_t ParseNode(mxml_node_t *node, PrivateData_t *priv)
 }\r
 \r
 static ParseResult_t ParseConnection(mxml_node_t * node, const char *conType, PrivateData_t *priv)\r
-{   \r
+{\r
     assert(NULL != node && NULL != priv);\r
     if (NULL == conType) RETURN_ASSERT(Parse_XmlError);\r
     if (!GetDataType(conType, &priv->conData.dataType)) RETURN_ASSERT(Parse_XmlError);\r
@@ -845,7 +842,7 @@ static ParseResult_t ParseSocket(mxml_node_t *soc, bool isSource, MSocketType_t
         /* If there is an combiner stored, add it now into job list (right before MOST socket) */\r
         if (priv->conData.combiner)\r
             if (!AddJob(jobList, priv->conData.combiner, &priv->objList)) RETURN_ASSERT(Parse_XmlError);\r
-        \r
+\r
         p.list = &priv->objList;\r
         p.isSource = isSource;\r
         p.dataType = priv->conData.dataType;\r
@@ -881,15 +878,11 @@ static ParseResult_t ParseSocket(mxml_node_t *soc, bool isSource, MSocketType_t
         {\r
             p.usbPort = priv->nodeData.usbPort;\r
         } else {\r
-            if (!GetUsbPortDefaultCreated(&p.usbPort, &priv->objList)) \r
+            if (!GetUsbPortDefaultCreated(&p.usbPort, &priv->objList))\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
@@ -906,15 +899,11 @@ static ParseResult_t ParseSocket(mxml_node_t *soc, bool isSource, MSocketType_t
         {\r
             p.mlbPort = priv->nodeData.mlbPort;\r
         } else {\r
-            if (!GetMlbPortDefaultCreated(&p.mlbPort, &priv->objList)) \r
+            if (!GetMlbPortDefaultCreated(&p.mlbPort, &priv->objList))\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
@@ -929,12 +918,8 @@ static ParseResult_t ParseSocket(mxml_node_t *soc, bool isSource, MSocketType_t
         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
@@ -952,7 +937,7 @@ static ParseResult_t ParseSocket(mxml_node_t *soc, bool isSource, MSocketType_t
         }\r
         p.list = &priv->objList;\r
         if (!GetUInt16(soc, BYTES_PER_FRAME, &p.bytesPerFrame, true)) RETURN_ASSERT(Parse_XmlError);\r
-        /* Current input socket will be stored inside splitter \r
+        /* Current input socket will be stored inside splitter\r
          * and splitter will become the new input socket */\r
         if (!(p.inSoc = priv->conData.inSocket)) RETURN_ASSERT(Parse_XmlError);\r
         if (!GetSplitter((Ucs_Xrm_Splitter_t **)&priv->conData.inSocket, &p)) RETURN_ASSERT(Parse_XmlError);\r
@@ -960,7 +945,7 @@ static ParseResult_t ParseSocket(mxml_node_t *soc, bool isSource, MSocketType_t
         if (!GetElement(soc->child, MOST_SOCKET, false, &mostSoc, true))\r
             RETURN_ASSERT(Parse_XmlError);\r
         priv->conData.syncOffsetNeeded = true;\r
-        \r
+\r
         while(mostSoc)\r
         {\r
             struct UcsXmlJobList *jobListCopy = DeepCopyJobList(*jobList, &priv->objList);\r
@@ -990,12 +975,12 @@ static ParseResult_t ParseSocket(mxml_node_t *soc, bool isSource, MSocketType_t
         RETURN_ASSERT(Parse_XmlError);\r
     }\r
     /*Handle Pending Combiner Tasks*/\r
-    if (NULL != priv->conData.outSocket && NULL != priv->conData.combiner && \r
+    if (NULL != priv->conData.outSocket && NULL != priv->conData.combiner &&\r
         NULL != priv->conData.pendingCombinerMostSockets)\r
     {\r
         mxml_node_t *tmp = priv->conData.pendingCombinerMostSockets;\r
         priv->conData.pendingCombinerMostSockets = NULL;\r
-        /* Current output socket will be stored inside combiner \r
+        /* Current output socket will be stored inside combiner\r
          * and combiner will become the new output socket */\r
         priv->conData.combiner->port_socket_obj_ptr = priv->conData.outSocket;\r
         priv->conData.outSocket = priv->conData.combiner;\r
@@ -1175,11 +1160,11 @@ static ParseResult_t ParseScriptMsgSend(mxml_node_t *act, Ucs_Ns_Script_t *scr,
 \r
     if (!GetUInt8(act, OP_TYPE_RESPONSE, &res->OpCode, true))\r
         RETURN_ASSERT(Parse_XmlError);\r
-    \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
+\r
     if (!GetPayload(act, PAYLOAD_REQ_HEX, &req->DataPtr, &req->DataLen, 0, &priv->objList, true))\r
         RETURN_ASSERT(Parse_XmlError);\r
     if (0 == req->DataLen || NULL == req->DataPtr)\r
@@ -1232,7 +1217,7 @@ static ParseResult_t ParseScriptGpioPinMode(mxml_node_t *act, Ucs_Ns_Script_t *s
     req->FunktId = res->FunktId = 0x703;\r
     req->OpCode = 0x2;\r
     res->OpCode = 0xC;\r
-    if (!GetPayload(act, PIN_CONFIG, &payload, &payloadLen, \r
+    if (!GetPayload(act, PIN_CONFIG, &payload, &payloadLen,\r
         PORT_HANDLE_OFFSET, /* First two bytes are reserved for port handle */\r
         &priv->objList, true)) RETURN_ASSERT(Parse_XmlError);\r
     payload[0] = 0x1D;\r
@@ -1449,7 +1434,7 @@ static ParseResult_t ParseRoutes(UcsXmlVal_t *ucs, PrivateData_t *priv)
         return Parse_Success; /*Its okay to have no routes at all (e.g. MEP traffic only)*/\r
     ucs->pRoutes = MCalloc(&priv->objList, routeAmount, sizeof(Ucs_Rm_Route_t));\r
     if (NULL == ucs->pRoutes) RETURN_ASSERT(Parse_MemoryError);\r
-    \r
+\r
     /*Second: Fill allocated structure now*/\r
     sourceRoute = priv->pRtLst;\r
     while (NULL != sourceRoute)\r
@@ -1475,7 +1460,7 @@ static ParseResult_t ParseRoutes(UcsXmlVal_t *ucs, PrivateData_t *priv)
         sourceRoute = sourceRoute->next;\r
     }\r
     assert(routeAmount == ucs->routesSize);\r
-    \r
+\r
 #ifdef DEBUG\r
     /* Third perform checks when running in debug mode*/\r
     {\r