Skip to content

Commit

Permalink
fix: restored values summary (async)
Browse files Browse the repository at this point in the history
  • Loading branch information
unocelli committed Nov 26, 2024
1 parent 3a92a8f commit 621a38f
Showing 1 changed file with 28 additions and 29 deletions.
57 changes: 28 additions & 29 deletions server/runtime/devices/device.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,10 @@ function Device(data, runtime) {
var sharedDevices = data.sharedDevices;
var tryToConnect = 0;
var comm; // Interface to OPCUA/S7/.. Device
// required: connect, disconnect, isConnected, polling, init, load, getValue,
// getValues, getStatus, setValue, bindAddDaq, getTagProperty,
// required: connect, disconnect, isConnected, polling, init, load, getValue,
// getValues, getStatus, setValue, bindAddDaq, getTagProperty,
fncGetDeviceProperty = runtime.project.getDeviceProperty;

if (data.type === DeviceEnum.S7) {
if (!S7client) {
return null;
Expand All @@ -56,44 +56,44 @@ function Device(data, runtime) {
if (!MODBUSclient) {
return null;
}
comm = MODBUSclient.create(data, logger, events, manager, runtime);
comm = MODBUSclient.create(data, logger, events, manager, runtime);
} else if (data.type === DeviceEnum.BACnet) {
if (!BACNETclient) {
return null;
}
comm = BACNETclient.create(data, logger, events, manager, runtime);
comm = BACNETclient.create(data, logger, events, manager, runtime);
} else if (data.type === DeviceEnum.WebAPI) {
if (!HTTPclient) {
return null;
}
comm = HTTPclient.create(data, logger, events, manager, runtime);
comm = HTTPclient.create(data, logger, events, manager, runtime);
} else if (data.type === DeviceEnum.MQTTclient) {
if (!MQTTclient) {
return null;
}
data.certificatesDir = path.resolve(runtime.settings.appDir, '_certificates');
comm = MQTTclient.create(data, logger, events, runtime);
comm = MQTTclient.create(data, logger, events, runtime);
} else if (data.type === DeviceEnum.EthernetIP) {
if (!EthernetIPclient) {
return null;
}
comm = EthernetIPclient.create(data, logger, events, manager, runtime);
comm = EthernetIPclient.create(data, logger, events, manager, runtime);
} else if (data.type === DeviceEnum.FuxaServer) {
if (!FuxaServer) {
return null;
}
comm = FuxaServer.create(data, logger, events, manager);
comm = FuxaServer.create(data, logger, events, manager);
} else if (data.type === DeviceEnum.ODBC) {
if (!ODBCclient) {
return null;
}
comm = ODBCclient.create(data, logger, events, manager);
comm = ODBCclient.create(data, logger, events, manager);
}
// else if (data.type === DeviceEnum.Template) {
// if (!TEMPLATEclient) {
// return null;
// }
// comm = TEMPLATEclient.create(data, logger, events, manager);
// comm = TEMPLATEclient.create(data, logger, events, manager);
// }
if (!comm) {
return null;
Expand Down Expand Up @@ -202,7 +202,7 @@ function Device(data, runtime) {
}

/**
* Call Device to disconnect
* Call Device to disconnect
*/
this.disconnect = function () {
return comm.disconnect();
Expand Down Expand Up @@ -280,7 +280,7 @@ function Device(data, runtime) {
}
});
}

/**
* Call Device to return Tag/Node attribute (only OPCUA)
*/
Expand Down Expand Up @@ -356,8 +356,8 @@ function Device(data, runtime) {
/**
* Set connection status of device in FuxaServer
* used only from FuxaServer device
* @param {*} deviceId
* @param {*} status
* @param {*} deviceId
* @param {*} status
*/
this.setDeviceConnectionStatus = function (deviceId, status) {
comm.setConnectionStatus(deviceId, status);
Expand All @@ -376,28 +376,27 @@ function Device(data, runtime) {
return parseFloat(current) + parseFloat(fnc[1]);
} else if (fnc[0] === 'remove') {
return parseFloat(current) - parseFloat(fnc[1]);
}
}
} catch (err) {
logger.error(err);
}
return value;
}

this.restoreValues = function() {
this.restoreValues = () => {
try {
if (this.getDaqValueToRestore) {
var self = this;
this.getDaqValueToRestore(property.id).then((toRestore) => {
this.getDaqValueToRestore(property.id).then(async (toRestore) => {
var restored = 0;
toRestore.forEach(element => {
for (let element of toRestore) {
if (element.id && !utils.isNullOrUndefined(element.value)) {
self.setValue(element.id, element.value).then((result) => {
if (result) {
restored++;
}
});
const result = await self.setValue(element.id, element.value);
if (result) {
restored++;
}
}
});
}
logger.info(`'${property.name}' restored ${restored}/${toRestore.length} values`);
}).catch((err) => {
logger.error(`'${property.name}' restore error! ${err}`);
Expand Down Expand Up @@ -425,8 +424,8 @@ function Device(data, runtime) {

/**
* Return the property (security mode) supported from device
* @param {*} endpoint
* @param {*} type
* @param {*} endpoint
* @param {*} type
*/
function getSupportedProperty(endpoint, type, packagerManager) {
var self = this;
Expand All @@ -451,7 +450,7 @@ function getSupportedProperty(endpoint, type, packagerManager) {

/**
* Return the result of request
* @param {*} property
* @param {*} property
*/
function getRequestResult(property) {
return new Promise(function (resolve, reject) {
Expand All @@ -469,7 +468,7 @@ function getRequestResult(property) {

/**
* Load the plugin library
* @param {*} type
* @param {*} type
*/
function loadPlugin(type, module) {
if (type === DeviceEnum.S7) {
Expand Down

0 comments on commit 621a38f

Please sign in to comment.