Procházet zdrojové kódy

PubSub: Cosmetic improvements to JSON encoding

Julius Pfrommer před 6 roky
rodič
revize
18427523b4
1 změnil soubory, kde provedl 23 přidání a 21 odebrání
  1. 23 21
      src/pubsub/ua_pubsub_networkmessage_json.c

+ 23 - 21
src/pubsub/ua_pubsub_networkmessage_json.c

@@ -40,43 +40,43 @@ UA_DataSetMessage_encodeJson_internal(const UA_DataSetMessage* src, UA_UInt16 da
     status rv = writeJsonObjStart(ctx);
 
     /* DataSetWriterId */
-    rv |= writeJsonKey(ctx, UA_DECODEKEY_DATASETWRITERID);
-    rv |= encodeJsonInternal(&dataSetWriterId, &UA_TYPES[UA_TYPES_UINT16], ctx);
+    rv |= writeJsonObjElm(ctx, UA_DECODEKEY_DATASETWRITERID,
+                          &dataSetWriterId, &UA_TYPES[UA_TYPES_UINT16]);
     if(rv != UA_STATUSCODE_GOOD)
         return rv;
 
     /* DataSetMessageSequenceNr */
     if(src->header.dataSetMessageSequenceNrEnabled) {
-        rv |= writeJsonKey(ctx, UA_DECODEKEY_SEQUENCENUMBER);
-        rv |= encodeJsonInternal(&(src->header.dataSetMessageSequenceNr),
-                                 &UA_TYPES[UA_TYPES_UINT16], ctx);
+        rv |= writeJsonObjElm(ctx, UA_DECODEKEY_SEQUENCENUMBER,
+                              &src->header.dataSetMessageSequenceNr,
+                              &UA_TYPES[UA_TYPES_UINT16]);
         if(rv != UA_STATUSCODE_GOOD)
             return rv;
     }
 
     /* MetaDataVersion */
     if(src->header.configVersionMajorVersionEnabled || src->header.configVersionMinorVersionEnabled) {
-        rv |= writeJsonKey(ctx, UA_DECODEKEY_METADATAVERSION);
         UA_ConfigurationVersionDataType cvd;
         cvd.majorVersion = src->header.configVersionMajorVersion;
         cvd.minorVersion = src->header.configVersionMinorVersion;
-        rv |= encodeJsonInternal(&cvd, &UA_TYPES[UA_TYPES_CONFIGURATIONVERSIONDATATYPE], ctx);
+        rv |= writeJsonObjElm(ctx, UA_DECODEKEY_METADATAVERSION, &cvd,
+                              &UA_TYPES[UA_TYPES_CONFIGURATIONVERSIONDATATYPE]);
         if(rv != UA_STATUSCODE_GOOD)
             return rv;
     }
 
     /* Timestamp */
     if(src->header.timestampEnabled) {
-        rv |= writeJsonKey(ctx, UA_DECODEKEY_TIMESTAMP);
-        rv |= encodeJsonInternal(&(src->header.timestamp), &UA_TYPES[UA_TYPES_DATETIME], ctx);
+        rv |= writeJsonObjElm(ctx, UA_DECODEKEY_TIMESTAMP, &src->header.timestamp,
+                              &UA_TYPES[UA_TYPES_DATETIME]);
         if(rv != UA_STATUSCODE_GOOD)
             return rv;
     }
 
     /* Status */
     if(src->header.statusEnabled) {
-        rv |= writeJsonKey(ctx, UA_DECODEKEY_DSM_STATUS);
-        rv |= encodeJsonInternal(&(src->header.status), &UA_TYPES[UA_TYPES_STATUSCODE], ctx);
+        rv |= writeJsonObjElm(ctx, UA_DECODEKEY_DSM_STATUS,
+                              &src->header.status, &UA_TYPES[UA_TYPES_STATUSCODE]);
         if(rv != UA_STATUSCODE_GOOD)
             return rv;
     }
@@ -97,12 +97,10 @@ UA_DataSetMessage_encodeJson_internal(const UA_DataSetMessage* src, UA_UInt16 da
                 else
                     rv |= writeJsonKey(ctx, "");
                 rv |= encodeJsonInternal(&(src->data.keyFrameData.dataSetFields[i].value),
-                        &UA_TYPES[UA_TYPES_VARIANT], ctx);
+                                         &UA_TYPES[UA_TYPES_VARIANT], ctx);
                 if(rv != UA_STATUSCODE_GOOD)
                     return rv;
             }
-        } else if(src->header.fieldEncoding == UA_FIELDENCODING_RAWDATA) {
-            return UA_STATUSCODE_BADNOTIMPLEMENTED;
         } else if(src->header.fieldEncoding == UA_FIELDENCODING_DATAVALUE) {
             /* KEYFRAME DATAVALUE */
             for (UA_UInt16 i = 0; i < src->data.keyFrameData.fieldCount; i++) {
@@ -115,8 +113,12 @@ UA_DataSetMessage_encodeJson_internal(const UA_DataSetMessage* src, UA_UInt16 da
                 if(rv != UA_STATUSCODE_GOOD)
                     return rv;
             }
+        } else {
+            /* RawData */
+            return UA_STATUSCODE_BADNOTIMPLEMENTED;
         }
-    }else if(src->header.dataSetMessageType == UA_DATASETMESSAGE_DATADELTAFRAME){
+    } else {
+        /* DeltaFrame */
         return UA_STATUSCODE_BADNOTSUPPORTED;
     }
     rv |= writeJsonObjEnd(ctx); /* Payload */
@@ -137,13 +139,13 @@ UA_NetworkMessage_encodeJson_internal(const UA_NetworkMessage* src, CtxJson *ctx
      * MessageId | String | A globally unique identifier for the message.
      * This value is mandatory. But we don't check uniqueness in the
      * encoding layer. */
-    rv |= writeJsonKey(ctx, UA_DECODEKEY_MESSAGEID);
-    rv |= encodeJsonInternal(&src->messageId, &UA_TYPES[UA_TYPES_STRING], ctx);
+    rv |= writeJsonObjElm(ctx, UA_DECODEKEY_MESSAGEID,
+                          &src->messageId, &UA_TYPES[UA_TYPES_STRING]);
 
     /* MessageType */
-    rv |= writeJsonKey(ctx, UA_DECODEKEY_MESSAGETYPE);
     UA_String s = UA_STRING("ua-data");
-    rv |= encodeJsonInternal(&s, &UA_TYPES[UA_TYPES_STRING], ctx);
+    rv |= writeJsonObjElm(ctx, UA_DECODEKEY_MESSAGETYPE,
+                          &s, &UA_TYPES[UA_TYPES_STRING]);
 
     /* PublisherId */
     if(src->publisherIdEnabled) {
@@ -180,8 +182,8 @@ UA_NetworkMessage_encodeJson_internal(const UA_NetworkMessage* src, CtxJson *ctx
 
     /* DataSetClassId */
     if(src->dataSetClassIdEnabled) {
-        rv |= writeJsonKey(ctx, UA_DECODEKEY_DATASETCLASSID);
-        rv |= encodeJsonInternal(&src->dataSetClassId, &UA_TYPES[UA_TYPES_GUID], ctx);
+        rv |= writeJsonObjElm(ctx, UA_DECODEKEY_DATASETCLASSID,
+                              &src->dataSetClassId, &UA_TYPES[UA_TYPES_GUID]);
         if(rv != UA_STATUSCODE_GOOD)
             return rv;
     }