Commit a966890fcaae6c914243088d8fb2d97be9ac65fc

Authored by Adhidarma Hadiwinoto
1 parent a563e601a7
Exists in master

MODEM-TESTER eslinted

Showing 1 changed file with 1 additions and 28 deletions Inline Diff

1 const SerialPort = require('serialport'); 1 const SerialPort = require('serialport');
2 2
3 const config = require('komodo-sdk/config'); 3 const config = require('komodo-sdk/config');
4 const logger = require('komodo-sdk/logger'); 4 const logger = require('komodo-sdk/logger');
5 5
6 6
7 const ParserInterByteTimeout = require('@serialport/parser-inter-byte-timeout'); 7 const ParserInterByteTimeout = require('@serialport/parser-inter-byte-timeout');
8 8
9 const parsers = require('./lib/serialport-parsers'); 9 const parsers = require('./lib/serialport-parsers');
10 const modemCommands = require('./lib/modem-commands'); 10 const modemCommands = require('./lib/modem-commands');
11 11
12 const parserInterByteTimeout = new ParserInterByteTimeout({ interval: 1000 }); 12 const parserInterByteTimeout = new ParserInterByteTimeout({ interval: 1000 });
13 parserInterByteTimeout.on('data', (data) => { 13 parserInterByteTimeout.on('data', (data) => {
14 logger.verbose('INCOMING', { parser: 'parserInterByteTimeout', data: data.toString() }); 14 logger.verbose('INCOMING', { parser: 'parserInterByteTimeout', data: data.toString() });
15 }); 15 });
16 16
17 let port; 17 const port = new SerialPort(config.modem.device, { baudRate: 115200 }, async (err) => {
18
19 function sleep(ms) {
20 return new Promise((resolve) => {
21 setTimeout(() => {
22 resolve();
23 }, ms || 0);
24 });
25 }
26
27 function writeToPort(data) {
28 return new Promise((resolve) => {
29 port.write(data, (err, bytesWritten) => {
30 if (err) logger.warn(`ERROR: ${err.toString()}`);
31
32 logger.verbose('OUTGOING', { bytesWritten, data: data.toString() });
33 resolve(bytesWritten);
34 });
35 });
36 }
37
38 async function writeToPortDelayed(data, ms) {
39 await sleep(ms || 500);
40 const result = writeToPort(data);
41 return result;
42 }
43
44 port = new SerialPort(config.modem.device, { baudRate: 115200 }, async (err) => {
45 if (err) { 18 if (err) {
46 logger.warn(`Error opening modem. ${err}. Terminating modem ${config.modem.device}.`); 19 logger.warn(`Error opening modem. ${err}. Terminating modem ${config.modem.device}.`);
47 process.exit(1); 20 process.exit(1);
48 } 21 }
49 22
50 await modemCommands.writeToPortAndWaitForOkOrError('AT\r'); 23 await modemCommands.writeToPortAndWaitForOkOrError('AT\r');
51 await modemCommands.writeToPortAndWaitForOkOrError('AT&FE0\r'); 24 await modemCommands.writeToPortAndWaitForOkOrError('AT&FE0\r');
52 await modemCommands.writeToPortAndWaitForOkOrError('AT+CMGF=0\r'); 25 await modemCommands.writeToPortAndWaitForOkOrError('AT+CMGF=0\r');
53 await modemCommands.writeToPortAndWaitForOkOrError('AT+CNMI=1,2,0,1,0\r'); 26 await modemCommands.writeToPortAndWaitForOkOrError('AT+CNMI=1,2,0,1,0\r');
54 27
55 const imei = await modemCommands.queryIMEI(); 28 const imei = await modemCommands.queryIMEI();
56 logger.info(`**** IMEI: ${imei}`); 29 logger.info(`**** IMEI: ${imei}`);
57 30
58 const imsi = await modemCommands.queryIMSI(); 31 const imsi = await modemCommands.queryIMSI();
59 logger.info(`**** IMSI: ${imsi}`); 32 logger.info(`**** IMSI: ${imsi}`);
60 33
61 const cops = await modemCommands.queryCOPS(); 34 const cops = await modemCommands.queryCOPS();
62 logger.info(`**** COPS: ${cops}`); 35 logger.info(`**** COPS: ${cops}`);
63 36
64 const signalQuality = await modemCommands.querySignalQuality(); 37 const signalQuality = await modemCommands.querySignalQuality();
65 logger.info(`**** Signal Quality: ${signalQuality}`); 38 logger.info(`**** Signal Quality: ${signalQuality}`);
66 39
67 setInterval(() => { 40 setInterval(() => {
68 modemCommands.querySignalQuality(); 41 modemCommands.querySignalQuality();
69 }, (config && config.interval_beetwen_signal_strength_ms) || 30000); 42 }, (config && config.interval_beetwen_signal_strength_ms) || 30000);
70 }); 43 });
71 44
72 parsers.setPort(port); 45 parsers.setPort(port);
73 modemCommands.setPort(port); 46 modemCommands.setPort(port);
74 47
75 if (config && config.modem_tester && config.modem_tester.parser === 'regex') { 48 if (config && config.modem_tester && config.modem_tester.parser === 'regex') {
76 logger.info('Using parserWaitForOkOrError'); 49 logger.info('Using parserWaitForOkOrError');
77 port.pipe(parsers.parserWaitForOkOrError); 50 port.pipe(parsers.parserWaitForOkOrError);
78 } else if (config && config.modem_tester && config.modem_tester.parser === 'interbyte') { 51 } else if (config && config.modem_tester && config.modem_tester.parser === 'interbyte') {
79 logger.info('Using parserInterByteTimeout'); 52 logger.info('Using parserInterByteTimeout');
80 port.pipe(parserInterByteTimeout); 53 port.pipe(parserInterByteTimeout);
81 } else { 54 } else {
82 logger.info('Using parserReadline'); 55 logger.info('Using parserReadline');
83 port.pipe(parsers.parserReadline); 56 port.pipe(parsers.parserReadline);
84 } 57 }
85 58