function sendDataToCloud()

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);
}