in greengrass-opcua-adapter-nodejs/subscriber.js [40:80]
function sendDataToCloud(serverConfig, customConfig) {
const serverName = serverConfig.name;
const awsServerName = serverName.replace(/\#|\?|\+/g,'');
const topic = `/opcua/${awsServerName}/node`;
let timeout = customConfig.customUploadDataStrategy.pollingInSecond * 1000;
// Check if the DataMap is not empty.
if (!isEmptyObject(payloadDataMap)) {
payloadDataMap['timestamp'] = Date.now();
const payloadStr = JSON.stringify(payloadDataMap);
console.log(payloadStr);
IoTDevice.publish(
{
topic: topic,
payload: payloadStr,
},
(err) => {
if (err) {
console.log(`Failed to publish ${payloadStr} on ${topic}. Got the following error: ${err}`);
}
});
// Clear dict if flag sendAllDataToCloud set to false.
if (!customConfig.customUploadDataStrategy.sendAllDataToCloud) {
payloadDataMap={};
}
// Clear dict if flag enableAccumulativeData set to true,
// because the accumulative data has been sent (One shot).
else if (customConfig.customUploadDataStrategy.enableAccumulativeData)
{
for( const element of customConfig.customUploadDataStrategy.accumulativeWhiteList )
{
// Clear key-value
if (payloadDataMap.hasOwnProperty(element))
{
delete payloadDataMap[element];
}
}
}
}
timeoutObj = setTimeout(sendDataToCloud, timeout, serverConfig, customConfig);
}