weblab-instrument
Version:
communication with instrument through usb
79 lines (72 loc) • 1.73 kB
JavaScript
const propMethod = require('../dev/propMethod.js');
const debug = require('debug');
const log = debug('pwr_sys:log');
function SysCmd() {
this.sysLock = 'OFF';
this.status = '';
this.track = '0';
this.beep = '0';
this.out = '0';
}
SysCmd.prototype.cmdHandler = {
IDN: {
getHandler() {
return true;
},
},
RST: {
setHelper() {
return true;
},
},
SysLocal: {
setHelper(sysObj) {
sysObj.sysLock = 'OFF';
return true;
},
},
SysRemote: {
setHelper(sysObj) {
log('sent SysRemote command');
sysObj.sysLock = 'ON';
return true;
},
},
STATUS: {
getHandler(sysObj, res) {
let status = '';
if (res.length > 15) { // GPD3303D
for (let i = 0; i < 15; i += 2) { status += res[i]; }
log(status);
sysObj.status = status.slice(0, 5) + status[6] + status[6] + status[7];
} else {
sysObj.status = res;
}
return true;
},
},
TRACK: {
setHelper(sysObj, arg) {
sysObj.track = arg;
return true;
},
},
BEEP: {
setHelper(sysObj, arg) {
sysObj.beep = arg;
return true;
},
},
OUT: {
setHelper(sysObj, arg) {
log('sent RangeAuto command');
sysObj.out = arg;
return true;
},
},
};
exports.initPwrSysObj = function initPwrSysObj(id) {
const sysCmd = new SysCmd();
sysCmd.prop = propMethod.CreatMethod.call(this, id);
return sysCmd;
};