Skip to content

Commit d01c2e4

Browse files
committed
chore(cellocator): Change parser to new api of cellocator.
1 parent 2030155 commit d01c2e4

File tree

3 files changed

+28
-19
lines changed

3 files changed

+28
-19
lines changed

example.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
const tracking = require('tracking-parser');
22

3-
const raw = new Buffer('$$B6869444005480041|91$GPRMC,194329.000,A,3321.6735,S,07030.7640,W,0.00,0.00,090216,,,A*6C|02.1|01.3|01.7|000000000000|20160209194326|13981188|00000000|32D3A03F|0000|0.6376|0100|7B20\r\n');
4-
const data = await tracking.parse(raw);
3+
const tz = new Buffer('$$B6869444005480041|91$GPRMC,194329.000,A,3321.6735,S,07030.7640,W,0.00,0.00,090216,,,A*6C|02.1|01.3|01.7|000000000000|20160209194326|13981188|00000000|32D3A03F|0000|0.6376|0100|7B20\r\n');
4+
const meitrack = new Buffer('$$A138,862170013556541,AAA,35,7.092076,79.960473,140412132808,A,10,9,57,275,1,14,5783799,7403612,413|1|F6E0|3933,0000,000B|0009||02D8|0122,*EE\r\n');
5+
const cellocator = new Buffer('4d43475000bdda0b0000060ddf20041017002000e3c40000baeff3c6b6224502000000000000ea65000402090daec5f7cb302cff3357000038090000930a002a170c03e007c1', 'hex');
6+
const data = await Promise.all(tracking.parse(tz), tracking.parse(meitrack), tracking.parse(cellocator));

src/index.js

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -87,15 +87,13 @@ const parse = (raw, options) => {
8787
} else if (meitrack.isMeitrack(raw)) {
8888
data = meitrack.parse(raw);
8989
} else if (cellocator.isCello(raw)) {
90-
return cellocator.parse(raw).then(data => {
91-
if (Object.prototype.toString.call(data) === '[object Array]') {
92-
return Promise.all(data.map(x => enableLoc(x, options)));
93-
} else {
94-
return enableLoc(data, options);
95-
}
96-
});
90+
data = cellocator.parse(raw);
91+
}
92+
if (Object.prototype.toString.call(data) === '[object Array]') {
93+
return Promise.all(data.map(x => enableLoc(x, options)));
94+
} else {
95+
return enableLoc(data, options);
9796
}
98-
return enableLoc(data, options);
9997
};
10098

10199
const parseCommand = data => {

test/test.js

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ describe('tracking-parser', () => {
122122
const raw = new Buffer('4d43475000bdda0b0000060ddf20041017002000e3c40000baeff3c6b6224502000000000000ea65000402090daec5f7cb302cff3357000038090000930a002a170c03e007c1', 'hex');
123123
tracking.parse(raw).then(data => {
124124
expect(data.raw).to.eql(raw.toString('hex'));
125+
expect(data.unitId).to.eql(776893);
125126
expect(data.device).to.eql('CelloTrack');
126127
expect(data.type).to.eql('data');
127128
expect(data.loc.type).to.eql('Point');
@@ -135,16 +136,24 @@ describe('tracking-parser', () => {
135136
expect(data.voltage.adc).to.eql(45.41720000000001);
136137
expect(data.voltage.add).to.eql(182);
137138
expect(data.altitude).to.eql(223.23000000000002);
139+
expect(data.status.input['1']).to.be.false;
140+
expect(data.status.input['2']).to.be.false;
141+
expect(data.status.input['3']).to.be.false;
142+
expect(data.status.input['4']).to.be.false;
143+
expect(data.status.input['5']).to.be.true;
144+
expect(data.status.output['1']).to.be.false;
145+
expect(data.status.output['2']).to.be.false;
146+
expect(data.status.output['3']).to.be.false;
147+
expect(data.status.output['4']).to.be.false;
148+
expect(data.status.output['5']).to.be.false;
149+
expect(data.status.output['6']).to.be.false;
150+
expect(data.status.sos).to.be.false;
138151
expect(data.status.engine).to.be.false;
139-
expect(data.status.unlockInactive).to.be.true;
140-
expect(data.status.panicInactive).to.be.true;
141-
expect(data.status.drivingStatus).to.be.true;
142-
expect(data.status.shockInactive).to.be.true;
143-
expect(data.status.doorInactive).to.be.true;
144-
expect(data.status.ignitionPortStatus).to.be.true;
145-
expect(data.status.accelerometerStatus).to.be.true;
146-
expect(data.status.lock).to.be.true;
147-
expect(data.version).to.eql('HW: <223>, SW: <32>');
152+
expect(data.status.driving).to.be.false;
153+
expect(data.status.accelerometer).to.be.true;
154+
expect(data.hardware.model).to.eql('Cello-IQ');
155+
expect(data.hardware.modem).to.eql('Telit GE864, automative');
156+
expect(data.valid).to.be.true;
148157
done();
149158
}).catch(err => {
150159
done(err);

0 commit comments

Comments
 (0)