node-open-protocol-desoutter
Version:
316 lines (257 loc) • 7.75 kB
JavaScript
/*
Copyright 2018 Smart-Tech Controle e Automação
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
/*jshint esversion: 6, node: true*/
//04-07-2018
/*
After that, the production can start with use of the following messages:
Command Abort Job. MID 0127.
Command Select Pset MID 0018.
Command Set VIN. MID 0050 or MID 0150 handling
Command Disable Tool. MID 0042.
Command Enable Tool. MID 0043.
*/
let op = require(".");
let ipControlador = "127.0.0.1"; //"172.26.138.52"
let portControlador = 4545;
let optsSessionControl = {
//Configurações Session Control
defaultRevisions: undefined, // {"mid": rev, "mid": rev}
linkLayerActivate: undefined, // true activate / false not activate / undefined autoNegotiation
genericMode: false, // true activate / false ou undefined not activate
keepAlive: undefined, // Number, default 10000
//Configuraçoes do LinkLayer
rawData: undefined, // true activate / false ou undefined not activate
disableMidParsing: undefined, // true activate / false ou undefined not activate
timeOut: undefined, // Number, default 3000
retryTimes: undefined // Number, default 3
};
let sc = connect();
// requestReadTimeUpload();
// requestReadTimeUpload();
function connect() {
return op.createClient(portControlador, ipControlador, optsSessionControl, (data) => {
console.log("CONNECT");
console.log("MID0002", JSON.stringify(data));
});
}
sc.on("error", (err) => {
console.log("[Event][SessionControl][onError]", err);
});
sc.on("data", (data) => {
//console.log("[Event][SessionControl][onData]", JSON.stringify(data));
});
sc.on("close", (err) => {
console.log("[Event][SessionControl][onClose]", err);
});
//--> Start COMMANDS
//MID 0003
function commandCommunicationStop() {
sc.command("communicationStop", (err, data) => {
onCallback("Command", "communicationStop", err, data);
});
}
//MID 0018
function commandSelectParameterSet(pset) {
let opts = {
payload: {
parameterSetID: pset
}
};
sc.command("selectParameterSet", opts, (err, data) => {
onCallback("Command", "selectParameterSet", err, data);
});
}
//MID 0042
function commandDisableTool() {
sc.command("disableTool", (err, data) => {
onCallback("Command", "disableTool", err, data);
});
}
//MID 0043
function commandEnableTool() {
sc.command("enableTool", (err, data) => {
onCallback("Command", "enableTool", err, data);
});
}
//MID 0050
//numberVin = String (25)
function commandVehicleIdNumberDownload(numberVIN) {
let opts = {
payload: {
numberVIN
}
};
sc.command("vehicleIdNumberDownload", opts, (err, data) => {
onCallback("Command", "vehicleIdNumberDownload", err, data);
});
}
//MID 0127
function commandAbortJob() {
sc.command("abortJob", (err, data) => {
onCallback("Command", "abortJob", err, data);
});
}
//--> End COMMANDS
//--> Start SUBSCRIBES
//MID 0014
function subscribePsetSelected() {
sc.subscribe("psetSelected", (err, data) => {
onCallback("Subscribe", "psetSelected", err, data);
});
setListener("psetSelected");
}
//MID 0070
function subscribeAlarm(){
sc.subscribe("alarm", (err, data) => {
onCallback("Subscribe", "alarm", err, data);
});
setListener("alarm");
setListener("alarmAcknowledged");
setListener("alarmStatus");
}
//MID 0051
function subscribeVin() {
sc.subscribe("vin", (err, data) => {
onCallback("Subscribe", "vin", err, data);
});
setListener("vin");
}
//MID 0061
function subscribeLastTightening() {
sc.subscribe("lastTightening", (err, data) => {
onCallback("Subscribe", "lastTightening", err, data);
});
setListener("lastTightening");
}
//--> End SUBSCRIBES
//--> Start UNSUBSCRIBES
//MID 0017
function unsubscribePsetSelected() {
sc.unsubscribe("psetSelected", (err, data) => {
onCallback("Unsubscribe", "psetSelected", err, data);
});
}
//MID 0054
function unsubscribeVin() {
sc.unsubscribe("vin", (err, data) => {
onCallback("Unsubscribe", "vin", err, data);
});
}
//MID 0063
function unsubscribeLastTightening() {
sc.unsubscribe("lastTightening", (err, data) => {
onCallback("Unsubscribe", "lastTightening", err, data);
});
}
//--> End SUBSCRIBES
//--> Start REQUESTS
//MID 0064
//tighteningID = String (10)
function requestOldTighteningResultUpload(tighteningID) {
let opts = {
tighteningID
};
sc.request("oldTighteningResultUpload", opts, (err, data) => {
onCallback("Request", "oldTighteningResultUpload", err, data);
});
}
//MID 0080
function requestReadTimeUpload() {
sc.request("readTimeUpload", (err, data) => {
onCallback("Request", "readTimeUpload", err, data);
});
}
//--> End REQUESTS
//--> Start Generic Calls
function _subscribe(type, opts) {
sc.subscribe(type, opts, (err, data) => {
onCallback("Subscribe", type, err, data);
});
setListener(type);
}
function _unsubscribe(type, opts) {
sc.unsubscribe(type, opts, (err, data) => {
onCallback("Unsubscribe", type, err, data);
});
}
function _request(type, opts) {
sc.request(type, opts, (err, data) => {
onCallback("Request", type, err, data);
});
}
function _command(type, opts) {
sc.command(type, opts, (err, data) => {
onCallback("Command", type, err, data);
});
}
function _sendMid(midNumber, opts) {
sc.sendMid(midNumber, opts, (err, data) => {
onCallback("SendMid", midNumber, err, data);
});
}
//--> End Generic Calls
function chamarAperto(){
commandAbortJob();
commandSelectParameterSet(1);
commandVehicleIdNumberDownload("ASDEDCUHBG34563EDFRCVGFR6");
commandDisableTool();
commandEnableTool();
}
function sendText(){
let opts = {
payload:"01006002003Teste Linha 1 04Teste Linha 2 05Teste Linha 3 06Teste Linha 4 "
};
sc.command("displayUserTextOnGraph", opts, (err, data) =>{
onCallback("Command", "Text", err, data);
});
}
function subscribeMID900() {
let opts = {
payload: {
midNumber: 900,
revision: 1,
dataLength: 35,
extraData: "00000000000000000000000000000001001"
}
};
sc.sendMid(8, opts, (err, data) => {
onCallback("Subcribe", "MID 0900", err, data);
});
}
function subscribeMID901() {
let opts = {
payload: {
midNumber: 901,
revision: 1,
dataLength: 0,
extraData: ""
}
};
sc.sendMid(8, opts, (err, data) => {
onCallback("Subcribe", "MID 0901", err, data);
});
}
//--> Start Helpers
function setListener(type) {
sc.on(type, (data) => {
//console.log(`[Event][onData][${type}]`, JSON.stringify(data)));
});
}
function onCallback(type, param, err, data) {
if (err) {
console.log(`${type}][${param}][Error]`, err);
return;
}
console.log(`[${type}][${param}][Reply]`, JSON.stringify(data));
}
//--> End Helpers