UNPKG

weblab-instrument

Version:
441 lines (437 loc) 11.8 kB
const propMethod = require('../dev/propMethod.js'); function TriggerObj() { this.temp = 0; this.type = 'EDGE'; this.source = 'CH1'; this.mode = 'AUTO'; this.holdoff = '4E-9'; this.noise_rej = 'OFF'; this.level = '0E+0'; this.hlevel = '0E+0'; this.state = 'ARMED'; this.edge = { coupling: 'DC', slope: 'RISE', alt: 'OFF', }; this.delay = { coupling: 'DC', source: 'CH2', slope: 'RISE', level: '0E+0', type: 'EVENT', event: '2', time: '1E-2', }; this.pulsewidth = { polarity: 'HI', when: '4E-9', time: '1E-2', }; this.pulserunt = { polarity: 'HI', when: '4E-9', time: '1E-2', lowLevel: '0', }; this.risefall = { slope: 'RISE', when: '4E-9', time: '1E-2', }; this.video = { type: 'NTSC', polarity: 'POSITIVE', field: 'FIELD1', line: '1', }; this.ext_probe = { type: '1E0', ratio: '1E0', }; this.timeout = { when: 'HIGH', time: '1E-2', }; } TriggerObj.prototype.cmdHandler = { TrigType: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.type = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.type = arg; }, }, TrigSource: { getHandler(TrigObj, res) { res = res.slice(0, -1); if (TrigObj.type == 'DELAY') { TrigObj.delay.source = res.toString(); } else { TrigObj.source = res.toString(); } return true; }, setHelper(TrigObj, arg) { if (TrigObj.type == 'DELAY') { TrigObj.delay.source = arg; } else { TrigObj.source = arg; } }, }, TrigCouple: { getHandler(TrigObj, res) { res = res.slice(0, -1); if (TrigObj.type == 'DELAY') { TrigObj.delay.coupling = res.toString(); } else { TrigObj.edge.coupling = res.toString(); } return true; }, setHelper(TrigObj, arg) { if (TrigObj.type == 'DELAY') { TrigObj.delay.coupling = arg; } else { TrigObj.edge.coupling = arg; } }, }, TrigNoiseRej: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.noise_rej = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.noise_rej = arg; }, }, TrigMode: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.mode = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.mode = arg; }, }, TrigHoldoff: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.holdoff = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.holdoff = arg.toString(); }, }, TrigEdgeSlope: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.edge.slope = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.edge.slope = arg; }, }, TrigDelayType: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.delay.type = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.delay.type = arg; }, }, TrigDelaySlope: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.delay.slope = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.delay.slope = arg; }, }, TrigDelayTime: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.delay.time = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.delay.time = arg.toString(); return true; }, }, TrigDelayEvent: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.delay.event = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.delay.event = arg; }, }, TrigDelayLevel: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.delay.level = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.delay.level = arg.toString(); return true; }, }, TrigPulseWidthPolarity: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.pulsewidth.polarity = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.pulsewidth.polarity = arg; }, }, TrigPulseWidthWhen: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.pulsewidth.when = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.pulsewidth.when = arg.toString(); return true; }, }, TrigPulseWidthTime: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.pulsewidth.time = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.pulsewidth.time = arg.toString(); return true; }, }, TrigRuntPolarity: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.pulserunt.polarity = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.pulserunt.polarity = arg; }, }, TrigRuntWhen: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.pulserunt.when = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.pulserunt.when = arg.toString(); return true; }, }, TrigRuntTime: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.pulserunt.time = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.pulserunt.time = arg.toString(); return true; }, }, TrigLevel: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.level = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.level = arg.toString(); return true; }, }, TrigHighLevel: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.level = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.hlevel = arg.toString(); return true; }, }, TrigLowLevel: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.pulserunt.lowLevel = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.pulserunt.lowLevel = arg.toString(); return true; }, }, TrigRiseFallSlope: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.risefall.slope = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.risefall.slope = arg; }, }, TrigRiseFallWhen: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.risefall.when = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.risefall.when = arg.toString(); return true; }, }, TrigRiseFallTime: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.risefall.time = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.risefall.time = arg.toString(); return true; }, }, TrigVideoType: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.video.type = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.video.type = arg; }, }, TrigVideoField: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.video.field = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.video.field = arg; }, }, TrigVideoLine: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.video.line = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.video.line = arg; }, }, TrigVideoPolarity: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.video.polarity = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.video.polarity = arg; }, }, TrigState: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.state = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.state = arg; }, }, TrigALT: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.edge.alt = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.edge.alt = arg; }, }, TrigExtProbeType: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.ext_probe.type = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.ext_probe.type = arg; }, }, TrigExtProbeRatio: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.ext_probe.ratio = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.ext_probe.ratio = arg; }, }, TrigTimeoutWhen: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.timeout.when = res.toString(); return true; }, setHelper(TrigObj, arg) { TrigObj.timeout.when = arg.toString(); return true; }, }, TrigTimeoutTime: { getHandler(TrigObj, res) { res = res.slice(0, -1); TrigObj.timeout.time = res.toString(); return true; }, setHelper(TrigObj, arg, cb) { TrigObj.timeout.time = arg.toString(); if (TrigObj.temp != parseFloat(arg)) { if (typeof cb === 'function') { cb(['-500', `${TrigObj.temp.toExponential()} argument does not accept, set to near one ${arg}`]); } return false; } return true; }, }, }; exports.initTrigObj = function initTrigObj(id) { const trigCmd = new TriggerObj(); // trigCmd.cmdHandler=cmdHandler; trigCmd.prop = propMethod.CreatMethod.call(this, id); return trigCmd; };