[r819]: / trunk / mqttsparkplug / mqttsparkplug / SparkplugB / Function Blocks / FB_Device / FB_Device_1 / DDATA / PublishDDATAEntry / svnobj  Maximize  Restore  History

Download this file

28 lines (27 with data), 3.7 kB

 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;