dial-a-device-node
Version:
dial-a-device-node is the device interface for dial-a-device
188 lines (96 loc) • 4.04 kB
JavaScript
(function (exports) {
var device_model_simulation = {
time: 0,
temperature: 0,
temperature_setpoint: 0,
heater_status: 0,
coolant_valve: 0,
rotation: 0,
rotation_setpoint: 0,
rotation_status: 0,
lift: 0,
lift_setpoint: 0,
lift_status: 0
};
exports.init = function (eventbus) {
setInterval(function () {
if (device_model_simulation.heater_status == 1) {
device_model_simulation.temperature = device_model_simulation.temperature_setpoint;
} else {
device_model_simulation.temperature = 21;
}
if (device_model_simulation.rotation_status == 1) {
device_model_simulation.rotation = device_model_simulation.rotation_setpoint;
time = time + 1;
} else {
device_model_simulation.rotation = 0;
time = 0;
}
if (device_model_simulation.lift_status == 1) {
if (device_model_simulation.lift < 10) {
device_model_simulation.lift = device_model_simulation.lift + 1;
}
} else if (device_model_simulation.lift_status == -1) {
if (device_model_simulation.lift > 0) {
device_model_simulation.lift = device_model_simulation.lift - 1;
}
}
eventbus.emit('ui.update', {
"component": "all",
"model": device_model_simulation
});
eventbus.emit('device.snapshot', device_model_simulation);
}, 1000);
eventbus.emit("serial.simulation");
eventbus.emit("serial.portopened");
eventbus.on("device.command", function (data) {
if (data.command == "set_temperature_setpoint") {
device_model_simulation.temperature_setpoint = data.value;
}
if (data.command == "set_rotation_setpoint") {
device_model_simulation.rotation_setpoint = data.value;
}
if (data.command == "set_lift_setpoint") {
device_model_simulation.lift_setpoint = data.value;
}
if (data.command == "set_shaking_time") {
device_model_simulation.shaking_time = data.value;
}
if (data.command == "start_heater") {
device_model_simulation.heater_status = 1;
}
if (data.command == "stop_heater") {
device_model_simulation.heater_status = 0;
}
if (data.command == "start_rotation") {
device_model_simulation.rotation_status = 1;
}
if (data.command == "stop_rotation") {
device_model_simulation.rotation_status = 0;
}
if (data.command == "set_coolant_on") {
device_model_simulation.coolant_valve = 1;
}
if (data.command == "set_coolant_off") {
device_model_simulation.coolant_valve = 0;
}
if (data.command == "start_lift_up") {
device_model_simulation.lift_status = 1;
}
if (data.command == "stop_lift_up") {
device_model_simulation.lift_status = 0;
}
if (data.command == "start_lift_down") {
device_model_simulation.lift_status = -1;
}
if (data.command == "stop_lift_down") {
device_model_simulation.lift_status = 0;
}
if (data.command == "stop") {
device_model_simulation.heater_status = 0;
device_model_simulation.rotation_status = 0;
device_model_simulation.lift_status = 0;
}
});
};
})(typeof exports == 'undefined' ? this['simulator'] = {} : exports);