1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | {attribute 'hide'} METHOD PublishDDATAEntry : BOOL VAR_IN_OUT AllMetricsList : LIST; END_VAR VAR_OUTPUT EncodeError : BOOL := FALSE; Encode_eError : ERROR; VAR_STAT PublishDDATAEntry := FALSE; EncodeError := _SparkplugB.EncodeError( eError => Encode_eError ); EncodeDone := _SparkplugB.Encoded(); UNTIL EncodeDone OR EncodeError END_REPEAT; _SparkplugB.Encode( Enable := FALSE ); IF EncodeError THEN WriteDeviceLog( gc_sparkplug.CMP_EDGE, CmpLog.LogClass.LOG_ERROR, 'Encoding DDATA Error: %s', TO_STRING( Encode_eError ) ); END_IF // retrieve the serialised blob _SparkplugB.GetEncodedBlob( Blob := _Blob, BlobSize := _BlobSize ); // Publish the payload (blob) to the topic _MQTT.EnablePublisher(); PublishDDATAEntry := EncodeDone OR EncodeError; |