@canboat/canboatjs 2.0.0-beta3 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/candumpjs +18 -1
- package/bin/ydvr-file +0 -0
- package/lib/canbus.js +5 -2
- package/lib/candevice.js +1 -1
- package/lib/fromPgn.js +24 -10
- package/lib/ikonvert.js +1 -1
- package/lib/serial.js +22 -3
- package/lib/stringMsg.js +1 -1
- package/lib/toPgn.js +2 -2
- package/lib/venus.js +1 -1
- package/lib/w2k01.js +1 -1
- package/lib/ydgw02.js +2 -2
- package/lib/ydvr.js +17 -2
- package/package.json +1 -1
- package/W2K_NOTES +0 -5
- package/n2ka.js +0 -123
- package/wk2.out +0 -224
package/bin/candumpjs
CHANGED
|
@@ -67,8 +67,25 @@ channel.addListener('onMessage', (msg) => {
|
|
|
67
67
|
var pgn = parseCanId(msg.id)
|
|
68
68
|
|
|
69
69
|
pgn.timestamp = new Date().toISOString()
|
|
70
|
+
|
|
71
|
+
let sourceString = binToActisense(pgn, msg.data, msg.data.length)
|
|
70
72
|
|
|
71
|
-
parser.parse({ pgn, length: msg.data.length, data: msg.data })
|
|
73
|
+
parser.parse({ pgn, length: msg.data.length, data: msg.data, sourceString })
|
|
72
74
|
})
|
|
73
75
|
|
|
74
76
|
channel.start()
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
function binToActisense(pgn, data, length) {
|
|
80
|
+
return (
|
|
81
|
+
pgn.timestamp +
|
|
82
|
+
`,${pgn.prio},${pgn.pgn},${pgn.src},${pgn.dst},${length},` +
|
|
83
|
+
new Uint32Array(data)
|
|
84
|
+
.reduce(function(acc, i) {
|
|
85
|
+
acc.push(i.toString(16));
|
|
86
|
+
return acc;
|
|
87
|
+
}, [])
|
|
88
|
+
.map(x => (x.length === 1 ? "0" + x : x))
|
|
89
|
+
.join(",")
|
|
90
|
+
);
|
|
91
|
+
}
|
package/bin/ydvr-file
CHANGED
|
File without changes
|
package/lib/canbus.js
CHANGED
|
@@ -84,7 +84,7 @@ function CanbusStream (options) {
|
|
|
84
84
|
options.app.on(options.outEvent || 'nmea2000out', (msg) => {
|
|
85
85
|
that.sendPGN(msg)
|
|
86
86
|
})
|
|
87
|
-
options.app.on('nmea2000JsonOut', (msg) => {
|
|
87
|
+
options.app.on(options.jsonOutEvent || 'nmea2000JsonOut', (msg) => {
|
|
88
88
|
that.sendPGN(msg)
|
|
89
89
|
})
|
|
90
90
|
}
|
|
@@ -94,6 +94,9 @@ function CanbusStream (options) {
|
|
|
94
94
|
this.socketCanWriter = null
|
|
95
95
|
var hasWriter = spawn('sh', ['-c', 'which socketcan-writer'])
|
|
96
96
|
|
|
97
|
+
const setProviderError = this.setProviderError.bind(this)
|
|
98
|
+
const setProviderStatus = this.setProviderStatus.bind(this)
|
|
99
|
+
|
|
97
100
|
hasWriter.on('close', code => {
|
|
98
101
|
if ( code == 0 ) {
|
|
99
102
|
debug('found socketcan-writer, starting...')
|
|
@@ -318,7 +321,7 @@ function readLine(that, line) {
|
|
|
318
321
|
|
|
319
322
|
pgn.timestamp = new Date().toISOString()
|
|
320
323
|
|
|
321
|
-
that.push({ pgn: pgn, length: len, data })
|
|
324
|
+
that.push({ pgn: pgn, length: len, data, sourceString: line })
|
|
322
325
|
}
|
|
323
326
|
|
|
324
327
|
CanbusStream.prototype._transform = function (chunk, encoding, done) {
|
package/lib/candevice.js
CHANGED
package/lib/fromPgn.js
CHANGED
|
@@ -40,6 +40,7 @@ const maxInt64 = new Int64LE(0x7fffffff, 0xffffffff)
|
|
|
40
40
|
|
|
41
41
|
const FORMAT_PLAIN = 0
|
|
42
42
|
const FORMAT_COALESCED = 1
|
|
43
|
+
const RES_BINARY = 'Binary data'
|
|
43
44
|
|
|
44
45
|
const FASTPACKET_INDEX = 0
|
|
45
46
|
const FASTPACKET_SIZE = 1
|
|
@@ -301,11 +302,11 @@ class Parser extends EventEmitter {
|
|
|
301
302
|
} else if ( _.isBuffer(data) ) {
|
|
302
303
|
return this.parseBuffer(data, cb)
|
|
303
304
|
} else {
|
|
304
|
-
return this.parsePgnData(data.pgn, data.length, data.data, data.coalesced === true)
|
|
305
|
+
return this.parsePgnData(data.pgn, data.length, data.data, data.coalesced === true, cb, data.sourceString)
|
|
305
306
|
}
|
|
306
307
|
}
|
|
307
308
|
|
|
308
|
-
parsePgnData(pgn, length, data, coalesced, cb) {
|
|
309
|
+
parsePgnData(pgn, length, data, coalesced, cb, sourceString) {
|
|
309
310
|
try
|
|
310
311
|
{
|
|
311
312
|
var buffer = data
|
|
@@ -319,7 +320,7 @@ class Parser extends EventEmitter {
|
|
|
319
320
|
|
|
320
321
|
var bv = new BitView(buffer);
|
|
321
322
|
var bs = new BitStream(bv)
|
|
322
|
-
const res = this._parse(pgn, bs, length, coalesced, cb);
|
|
323
|
+
const res = this._parse(pgn, bs, length, coalesced, cb, sourceString);
|
|
323
324
|
if ( res ) {
|
|
324
325
|
debug('parsed pgn %j', pgn)
|
|
325
326
|
}
|
|
@@ -500,7 +501,7 @@ function getField(pgn, index, data) {
|
|
|
500
501
|
var hasMatch = !_.isUndefined(field.Match)
|
|
501
502
|
if ( hasMatch && data.fields.list.length > 0 ) {
|
|
502
503
|
let param = data.fields.list.find(f => f.Parameter === idx+1)
|
|
503
|
-
|
|
504
|
+
|
|
504
505
|
if ( param ) {
|
|
505
506
|
pgnList = pgnList.filter(f => f.Fields[idx].Match == param.Value)
|
|
506
507
|
if ( pgnList.length == 0 ) {
|
|
@@ -513,7 +514,7 @@ function getField(pgn, index, data) {
|
|
|
513
514
|
}
|
|
514
515
|
})
|
|
515
516
|
}
|
|
516
|
-
|
|
517
|
+
|
|
517
518
|
if ( index >= 0 && index < pgn.Fields.length ) {
|
|
518
519
|
return pgn.Fields[index]
|
|
519
520
|
}
|
|
@@ -571,7 +572,7 @@ function readField(options, runPostProcessor, pgn, field, bs) {
|
|
|
571
572
|
if ( reader ) {
|
|
572
573
|
value = reader(pgn, field, bs)
|
|
573
574
|
} else {
|
|
574
|
-
if ( bs.bitsLeft < field.BitLength ) {
|
|
575
|
+
if ( field.Type !== RES_BINARY && bs.bitsLeft < field.BitLength ) {
|
|
575
576
|
//no more data
|
|
576
577
|
bs.readBits(bs.bitsLeft, false)
|
|
577
578
|
return
|
|
@@ -701,12 +702,25 @@ function readValue(options, pgn, field, bs, bitLength) {
|
|
|
701
702
|
} else {
|
|
702
703
|
value = x === 0xffffffff && y == 0xffffffff ? null : new Uint64LE(y,x)
|
|
703
704
|
}
|
|
704
|
-
} else {
|
|
705
|
+
} else if ( bitLength <= 64 ) {
|
|
705
706
|
value = bs.readBits(bitLength, field.Signed)
|
|
706
707
|
if ( bitLength > 1 && isMax(bitLength, value, field.Signed) ) {
|
|
707
708
|
value = null
|
|
708
709
|
}
|
|
709
|
-
|
|
710
|
+
} else {
|
|
711
|
+
if ( bs.bitsLeft < field.BitLength ) {
|
|
712
|
+
bitLength = bs.bitsLeft
|
|
713
|
+
}
|
|
714
|
+
|
|
715
|
+
value = bs.readArrayBuffer(bitLength/8, field.Signed)
|
|
716
|
+
value = new Uint32Array(value)
|
|
717
|
+
.reduce(function(acc, i) {
|
|
718
|
+
acc.push(i.toString(16));
|
|
719
|
+
return acc;
|
|
720
|
+
}, [])
|
|
721
|
+
.map(x => (x.length === 1 ? "0" + x : x))
|
|
722
|
+
.join(" ")
|
|
723
|
+
return value
|
|
710
724
|
}
|
|
711
725
|
|
|
712
726
|
if ( value != null && typeof value !== 'undefined' && typeof value !== 'number' ) {
|
|
@@ -744,7 +758,7 @@ function readVariableLengthField(options, pgn, field, bs) {
|
|
|
744
758
|
|
|
745
759
|
try {
|
|
746
760
|
var refField = getField(pgn.fields.PGN, bs.view.buffer[bs.byteIndex-1]-1, pgn)
|
|
747
|
-
|
|
761
|
+
|
|
748
762
|
if ( refField ) {
|
|
749
763
|
var bits = (refField.BitLength + 7) & ~7; // Round # of bits in field refField up to complete bytes: 1->8, 7->8, 8->8 etc.
|
|
750
764
|
let res = readField(options, false, pgn, refField, bs)
|
|
@@ -918,7 +932,7 @@ fieldTypePostProcessors['Pressure'] = (field, value) => {
|
|
|
918
932
|
return value
|
|
919
933
|
}
|
|
920
934
|
|
|
921
|
-
fieldTypePostProcessors[
|
|
935
|
+
fieldTypePostProcessors[RES_BINARY] = (field, value) => {
|
|
922
936
|
return value.toString()
|
|
923
937
|
}
|
|
924
938
|
|
package/lib/ikonvert.js
CHANGED
package/lib/serial.js
CHANGED
|
@@ -108,6 +108,10 @@ SerialStream.prototype.start = function () {
|
|
|
108
108
|
this.isFile = false
|
|
109
109
|
this.state = MSG_START
|
|
110
110
|
|
|
111
|
+
if ( typeof this.reconnectDelay === 'undefined' ) {
|
|
112
|
+
this.reconnectDelay = 1000
|
|
113
|
+
}
|
|
114
|
+
|
|
111
115
|
if ( !this.options.fromFile ) {
|
|
112
116
|
this.serial = new SerialPort(this.options.device, {
|
|
113
117
|
baudRate: this.options.baudrate || 115200
|
|
@@ -122,7 +126,9 @@ SerialStream.prototype.start = function () {
|
|
|
122
126
|
? (msg) => {
|
|
123
127
|
this.options.app.setProviderError(this.options.providerId, msg)
|
|
124
128
|
}
|
|
125
|
-
|
|
129
|
+
: () => {}
|
|
130
|
+
this.setProviderStatus = setProviderStatus
|
|
131
|
+
|
|
126
132
|
var that = this
|
|
127
133
|
|
|
128
134
|
this.serial.on('data', (data) => {
|
|
@@ -163,7 +169,7 @@ SerialStream.prototype.start = function () {
|
|
|
163
169
|
}
|
|
164
170
|
})
|
|
165
171
|
|
|
166
|
-
this.options.app.on('nmea2000JsonOut', msg => {
|
|
172
|
+
this.options.app.on(this.options.jsonOutEvent || 'nmea2000JsonOut', msg => {
|
|
167
173
|
if ( this.outAvailable ) {
|
|
168
174
|
writeObject(msg)
|
|
169
175
|
}
|
|
@@ -175,15 +181,18 @@ SerialStream.prototype.start = function () {
|
|
|
175
181
|
this.serial.on('error', function (x) {
|
|
176
182
|
setProviderError(x.message)
|
|
177
183
|
console.log(x)
|
|
184
|
+
that.scheduleReconnect()
|
|
178
185
|
})
|
|
179
186
|
this.serial.on('close', () => {
|
|
180
187
|
setProviderError('Closed, reconnecting...')
|
|
181
|
-
this.start.bind(this)
|
|
188
|
+
//this.start.bind(this)
|
|
189
|
+
that.scheduleReconnect()
|
|
182
190
|
})
|
|
183
191
|
this.serial.on(
|
|
184
192
|
'open',
|
|
185
193
|
function () {
|
|
186
194
|
try {
|
|
195
|
+
this.reconnectDelay = 1000
|
|
187
196
|
setProviderStatus(`Connected to ${that.options.device}`)
|
|
188
197
|
var buf = composeMessage(NGT_MSG_SEND, Buffer.from(NGT_STARTUP_MSG), NGT_STARTUP_MSG.length)
|
|
189
198
|
debugOut(buf)
|
|
@@ -211,6 +220,16 @@ SerialStream.prototype.start = function () {
|
|
|
211
220
|
}
|
|
212
221
|
}
|
|
213
222
|
|
|
223
|
+
SerialStream.prototype.scheduleReconnect = function () {
|
|
224
|
+
this.reconnectDelay *= this.reconnectDelay < 60 * 1000 ? 1.5 : 1
|
|
225
|
+
const msg = `Not connected (retry delay ${(
|
|
226
|
+
this.reconnectDelay / 1000
|
|
227
|
+
).toFixed(0)} s)`
|
|
228
|
+
debug(msg)
|
|
229
|
+
this.setProviderStatus(msg)
|
|
230
|
+
setTimeout(this.start.bind(this), this.reconnectDelay)
|
|
231
|
+
}
|
|
232
|
+
|
|
214
233
|
function readData(that, data) {
|
|
215
234
|
for ( var i = 0; i < data.length; i++ ) {
|
|
216
235
|
//console.log(data[i])
|
package/lib/stringMsg.js
CHANGED
|
@@ -59,7 +59,7 @@ exports.encodeActisense = ({
|
|
|
59
59
|
byteString(data)
|
|
60
60
|
].join(','))
|
|
61
61
|
|
|
62
|
-
exports.toActisenseSerialFormat = (pgn, data, dst=255, src=0) => exports.encodeActisense({
|
|
62
|
+
exports.toActisenseSerialFormat = (pgn, data, dst=255, src=0, prio=2) => exports.encodeActisense({
|
|
63
63
|
pgn, data, dst, src, prio
|
|
64
64
|
})
|
|
65
65
|
|
package/lib/toPgn.js
CHANGED
|
@@ -154,7 +154,7 @@ function writeField(bs, pgn_number, field, data, value, bitLength) {
|
|
|
154
154
|
}
|
|
155
155
|
|
|
156
156
|
// console.log(`${field.Name}:${value}(${bitLength}-${field.Resolution})`)
|
|
157
|
-
if ( _.isUndefined(value) ) {
|
|
157
|
+
if ( _.isUndefined(value) || value === null) {
|
|
158
158
|
if ( field.Type && fieldTypeWriters[field.Type] ) {
|
|
159
159
|
fieldTypeWriters[field.Type](pgn_number, field, value, bs)
|
|
160
160
|
} else if ( bitLength % 8 == 0 ) {
|
|
@@ -223,7 +223,7 @@ function writeField(bs, pgn_number, field, data, value, bitLength) {
|
|
|
223
223
|
if (field.Signed) {
|
|
224
224
|
bs.writeInt32(value)
|
|
225
225
|
} else {
|
|
226
|
-
bs.writeUint32(value)
|
|
226
|
+
bs.writeUint32(value)
|
|
227
227
|
}
|
|
228
228
|
} else if (bitLength === 48 || bitLength == 24) {
|
|
229
229
|
var count = bitLength/8;
|
package/lib/venus.js
CHANGED
|
@@ -75,7 +75,7 @@ VenusStream.prototype._transform = function (pgn, encoding, done) {
|
|
|
75
75
|
this.fromPgn.parseVenusMQTT(pgn, (error, pgn) => {
|
|
76
76
|
if ( !error ) {
|
|
77
77
|
this.push(pgn)
|
|
78
|
-
this.options.app.emit('N2KAnalyzerOut', pgn)
|
|
78
|
+
this.options.app.emit(this.options.analyzerOutEvent || 'N2KAnalyzerOut', pgn)
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
done()
|
package/lib/w2k01.js
CHANGED
package/lib/ydgw02.js
CHANGED
|
@@ -57,7 +57,7 @@ function Ydgw02Stream (options, type) {
|
|
|
57
57
|
}
|
|
58
58
|
})
|
|
59
59
|
|
|
60
|
-
options.app.on('nmea2000JsonOut', (msg) => {
|
|
60
|
+
options.app.on(options.jsonOutEvent || 'nmea2000JsonOut', (msg) => {
|
|
61
61
|
this.sendPGN(msg)
|
|
62
62
|
})
|
|
63
63
|
|
|
@@ -133,7 +133,7 @@ Ydgw02Stream.prototype._transform = function (chunk, encoding, done) {
|
|
|
133
133
|
const pgn = this.fromPgn.parseYDGW02(line)
|
|
134
134
|
if ( !_.isUndefined(pgn) ) {
|
|
135
135
|
this.push(pgn)
|
|
136
|
-
this.options.app.emit('N2KAnalyzerOut', pgn)
|
|
136
|
+
this.options.app.emit(this.options.analyzerOutEvent || 'N2KAnalyzerOut', pgn)
|
|
137
137
|
}
|
|
138
138
|
|
|
139
139
|
done()
|
package/lib/ydvr.js
CHANGED
|
@@ -108,6 +108,10 @@ function YdvrStream() {
|
|
|
108
108
|
|
|
109
109
|
this.parser = new FromPgn();
|
|
110
110
|
|
|
111
|
+
this.messageCount = 0;
|
|
112
|
+
this.errorCount = 0;
|
|
113
|
+
this.timerResetCount = 0;
|
|
114
|
+
|
|
111
115
|
this.parser.on('error', (pgn, error) => {
|
|
112
116
|
console.error(`Error parsing ${pgn.pgn} ${error}`);
|
|
113
117
|
console.error(error.stack);
|
|
@@ -141,7 +145,8 @@ YdvrStream.prototype.parseNextRecord = function () {
|
|
|
141
145
|
let timeAbsolute;
|
|
142
146
|
if (this.lastTime != null && time < this.lastTime) {
|
|
143
147
|
this.timeOffset = (this.timeOffset || 0) + 60000;
|
|
144
|
-
timeAbsolute = time + timeOffset;
|
|
148
|
+
timeAbsolute = time + this.timeOffset;
|
|
149
|
+
this.timerResetCount += 1;
|
|
145
150
|
} else {
|
|
146
151
|
timeAbsolute = time;
|
|
147
152
|
}
|
|
@@ -150,6 +155,9 @@ YdvrStream.prototype.parseNextRecord = function () {
|
|
|
150
155
|
var identifier = this.bs.readUint32();
|
|
151
156
|
if (identifier === 0xffffffff) {
|
|
152
157
|
// service record
|
|
158
|
+
if (this.bs.bitsLeft < 8 * 8) {
|
|
159
|
+
return false;
|
|
160
|
+
}
|
|
153
161
|
var srData = this.bs.readArrayBuffer(8);
|
|
154
162
|
} else {
|
|
155
163
|
const pgn = parseCanId(identifier);
|
|
@@ -163,6 +171,9 @@ YdvrStream.prototype.parseNextRecord = function () {
|
|
|
163
171
|
} else {
|
|
164
172
|
bodyLen = 8;
|
|
165
173
|
}
|
|
174
|
+
if (this.bs.bitsLeft < bodyLen * 8) {
|
|
175
|
+
return false;
|
|
176
|
+
}
|
|
166
177
|
var body = this.bs.readArrayBuffer(bodyLen);
|
|
167
178
|
|
|
168
179
|
const parsed = this.parser.parsePgnData(
|
|
@@ -177,6 +188,7 @@ YdvrStream.prototype.parseNextRecord = function () {
|
|
|
177
188
|
}
|
|
178
189
|
}
|
|
179
190
|
|
|
191
|
+
this.messageCount += 1;
|
|
180
192
|
return true;
|
|
181
193
|
}
|
|
182
194
|
|
|
@@ -192,7 +204,10 @@ YdvrStream.prototype._transform = function (chunk, encoding, done) {
|
|
|
192
204
|
let parsed = false;
|
|
193
205
|
try {
|
|
194
206
|
parsed = this.parseNextRecord();
|
|
195
|
-
} catch (ex) {
|
|
207
|
+
} catch (ex) {
|
|
208
|
+
console.error(ex);
|
|
209
|
+
this.errorCount += 1;
|
|
210
|
+
}
|
|
196
211
|
if (!parsed) {
|
|
197
212
|
this.bs.byteIndex = startIndex;
|
|
198
213
|
break;
|
package/package.json
CHANGED
package/W2K_NOTES
DELETED
package/n2ka.js
DELETED
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
var net = require('net');
|
|
2
|
-
const BitStream = require('bit-buffer').BitStream
|
|
3
|
-
const BitView = require('bit-buffer').BitView
|
|
4
|
-
const cid = require('./lib/canId')
|
|
5
|
-
const FromPgn = require('./lib/fromPgn').Parser
|
|
6
|
-
const debug = require('debug')('canboatjs:w2k01')
|
|
7
|
-
|
|
8
|
-
var client = new net.Socket();
|
|
9
|
-
client.connect(60003, '192.168.1.145', function() {
|
|
10
|
-
console.log('Connected');
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
client.on('data', function(data) {
|
|
14
|
-
const parser = new FromPgn()
|
|
15
|
-
|
|
16
|
-
/*
|
|
17
|
-
var obuf = Buffer.from(data)
|
|
18
|
-
let len = obuf.readUInt16LE(3)
|
|
19
|
-
|
|
20
|
-
let buf = Buffer.alloc(len)
|
|
21
|
-
obuf.copy(buf, 0, 5, len+5)
|
|
22
|
-
console.log('New Buf: ' + buf.toString('hex'))
|
|
23
|
-
let offset = 0
|
|
24
|
-
let dst = buf.readUInt8(offset)
|
|
25
|
-
offset += 1
|
|
26
|
-
let canid = buf.readUInt32LE(offset)
|
|
27
|
-
offset += 4
|
|
28
|
-
let timestamp = buf.readUInt32LE(offset)
|
|
29
|
-
offset += 4
|
|
30
|
-
let mhs = buf.readUInt8(offset)
|
|
31
|
-
offset += 1
|
|
32
|
-
|
|
33
|
-
let info = cid.parseCanId(canid)
|
|
34
|
-
|
|
35
|
-
console.log(`(${len}, ${data.length}) (${info.src}, ${info.dst}) ${info.pgn} ${timestamp}`)
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
try {
|
|
39
|
-
let pgnData = Buffer.alloc(len-offset-2)
|
|
40
|
-
buf.copy(pgnData, 0, offset, len-2)
|
|
41
|
-
console.log('pgnData: ' + pgnData.toString('hex'))
|
|
42
|
-
let pgn = parser.parsePgnData(info, pgnData.length, pgnData, true)
|
|
43
|
-
console.log(pgn)
|
|
44
|
-
} catch (error) {
|
|
45
|
-
|
|
46
|
-
console.log(error)
|
|
47
|
-
}
|
|
48
|
-
*/
|
|
49
|
-
|
|
50
|
-
debug('Received: (' + data.length + ') ' + Buffer.from(data).toString('hex'))
|
|
51
|
-
|
|
52
|
-
var inBuf = Buffer.from(data)
|
|
53
|
-
var inOffset = 0
|
|
54
|
-
|
|
55
|
-
while ( true ) {
|
|
56
|
-
let len = inBuf.readUInt16LE(inOffset+3)
|
|
57
|
-
|
|
58
|
-
if ( inBuf.length < inOffset + 5 + len ) {
|
|
59
|
-
console.log('PARTIAL PGN')
|
|
60
|
-
this.lastChunk = Buffer.alloc(inBuf.length - inOffset)
|
|
61
|
-
inBuf.copy(this.lastChunk, 0, inOffset, inBuf.length-1)
|
|
62
|
-
return
|
|
63
|
-
} else if ( inBuf[inOffset + 5 + len -1] != 0x03 ||
|
|
64
|
-
inBuf[inOffset + 5 + len -2] != 0x10 ) {
|
|
65
|
-
//console.log('Received: (' + data.length + ') ' + Buffer.from(data).toString('hex'))
|
|
66
|
-
//console.log('LENGTH MISMATCH ' + inBuf[inOffset + 5 + len -1])
|
|
67
|
-
return
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
let buf = Buffer.alloc(len)
|
|
71
|
-
inBuf.copy(buf, 0, inOffset+5, inOffset+len+5)
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
let offset = 0
|
|
75
|
-
let dst = buf.readUInt8(offset)
|
|
76
|
-
offset += 1
|
|
77
|
-
let canid = buf.readUInt32LE(offset)
|
|
78
|
-
offset += 4
|
|
79
|
-
let timestamp = buf.readUInt32LE(offset)
|
|
80
|
-
offset += 4
|
|
81
|
-
let mhs = buf.readUInt8(offset)
|
|
82
|
-
offset += 1
|
|
83
|
-
|
|
84
|
-
let info = cid.parseCanId(canid)
|
|
85
|
-
|
|
86
|
-
if ( info.pgn != 129025)
|
|
87
|
-
return
|
|
88
|
-
|
|
89
|
-
let pgnData = Buffer.alloc(len-offset-3)
|
|
90
|
-
buf.copy(pgnData, 0, offset, len-3)
|
|
91
|
-
|
|
92
|
-
/*
|
|
93
|
-
console.log('inputLen: ' + inBuf.length)
|
|
94
|
-
console.log('NextBuf: (' + buf.length + ') ' + buf.toString('hex'))
|
|
95
|
-
console.log('pgnData: (' + pgnData.length + ') ' + pgnData.toString('hex'))
|
|
96
|
-
|
|
97
|
-
console.log(`${len} ${mhs} ${dst} (${info.src}, ${info.dst}) ${info.pgn} ${timestamp}`)
|
|
98
|
-
*/
|
|
99
|
-
|
|
100
|
-
let pgn = parser.parsePgnData(info, pgnData.length, pgnData, true)
|
|
101
|
-
if ( pgn ) {
|
|
102
|
-
//console.log(JSON.stringify(pgn))
|
|
103
|
-
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
inOffset += len + 5
|
|
107
|
-
//console.log(`inOffset ${inOffset} `)
|
|
108
|
-
if ( inOffset >= inBuf.length ) {
|
|
109
|
-
return
|
|
110
|
-
}
|
|
111
|
-
break
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
-
|
|
115
|
-
client.on('close', function() {
|
|
116
|
-
console.log('Connection closed');
|
|
117
|
-
})
|
|
118
|
-
|
|
119
|
-
process.on('SIGINT', () => {
|
|
120
|
-
console.info('SIGINT signal received.');
|
|
121
|
-
client.destroy()
|
|
122
|
-
});
|
|
123
|
-
|
package/wk2.out
DELETED
|
@@ -1,224 +0,0 @@
|
|
|
1
|
-
A000021.144 05FF2 1F801 F04E4717B2E569D2
|
|
2
|
-
A000021.244 05FF2 1F801 EF4E4717B3E569D2
|
|
3
|
-
A000021.293 05FF2 1F802 FFFC289A1600FFFF
|
|
4
|
-
A000021.344 05FF2 1F801 EF4E4717B3E569D2
|
|
5
|
-
A000021.355 05FF7 1EF00 E59861060202FFFFFFFF03030000FFFFFFFFFFFFFFFFFFFF0000FFFFFF7FFFFFFF7FFFFFFF7F0000FF7F
|
|
6
|
-
A000021.360 05FF7 1EF00 E59812070202FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF7F
|
|
7
|
-
A000021.363 05FF3 1F904 FFFFFFFFFF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF7FFF7F
|
|
8
|
-
A000021.367 05FF3 1F903 FFF0FFFFFF7FFFFF
|
|
9
|
-
A000021.444 05FF2 1F801 EE4E4717B4E569D2
|
|
10
|
-
A000021.544 05FF2 1F802 FFFC289A1700FFFF
|
|
11
|
-
A000021.544 05FF2 1F801 F04E4717AFE569D2
|
|
12
|
-
A000021.644 05FF2 1F801 F14E4717ABE569D2
|
|
13
|
-
A000021.700 05FF7 1EF00 E598E708000A0301030DDDB7C684051101
|
|
14
|
-
A000021.744 05FF2 1F801 F24E4717A8E569D2
|
|
15
|
-
A000021.794 05FF2 1F802 FFFC289A1900FFFF
|
|
16
|
-
A000021.844 05FF2 1F801 F34E4717A4E569D2
|
|
17
|
-
A000021.944 05FF2 1F801 F34E4717A1E569D2
|
|
18
|
-
A000022.041 05FF7 1EF00 E5984819020203030101030F08FF0F00303CA31C0113C6A90F
|
|
19
|
-
A000022.044 05FF3 1F805 FFDB4BA48A7822C068149B75826B05808477E7A7D762F5998A99000000000014FC06CD002A03AAF2FFFF00
|
|
20
|
-
A000022.046 05FF6 1F11A FFF2DB4B69F8FFFF
|
|
21
|
-
A000022.068 05FF6 1FA03 FFDACD0010036F02
|
|
22
|
-
A000022.068 05FF7 1EF00 E5981700040453487B42F4D0E942AFB70443000000000000000000000000000000000000000000000000F29C0340CE06FB4022C10141BA7EC74000000000
|
|
23
|
-
A000022.073 05FF2 1F802 FFFC289A1D00FFFF
|
|
24
|
-
A000022.073 05FF2 1F801 F44E47179EE569D2
|
|
25
|
-
A000022.144 05FF2 1F801 F14E471797E569D2
|
|
26
|
-
A000022.244 05FF2 1F801 EC4E471799E569D2
|
|
27
|
-
A000022.294 05FF2 1F802 FFFC289A2800FFFF
|
|
28
|
-
A000022.344 05FF2 1F801 E74E47179BE569D2
|
|
29
|
-
A000022.355 05FF7 1EF00 E59861060202FFFFFFFF03030000FFFFFFFFFFFFFFFFFFFF0000FFFFFF7FFFFFFF7FFFFFFF7F0000FF7F
|
|
30
|
-
A000022.360 05FF7 1EF00 E59812070202FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF7F
|
|
31
|
-
A000022.362 05FF3 1F904 FFFFFFFFFF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF7FFF7F
|
|
32
|
-
A000022.366 05FF3 1F903 FFF0FFFFFF7FFFFF
|
|
33
|
-
A000022.387 05FF7 1EF00 E598E008020203090012E8071900
|
|
34
|
-
A000022.389 05FF7 1EF00 E598E008020203090112E8071900
|
|
35
|
-
A000022.391 05FF7 1EF00 E598E008020203090B11011900
|
|
36
|
-
A000022.392 05FF7 1EF00 E598E008020203090C12E8071900
|
|
37
|
-
A000022.444 05FF2 1F801 E04E47179CE569D2
|
|
38
|
-
A000022.544 05FF2 1F802 FFFC289A3200FFFF
|
|
39
|
-
A000022.544 05FF2 1F801 F54E471771E569D2
|
|
40
|
-
A000022.644 05FF2 1F801 ED4E471772E569D2
|
|
41
|
-
A000022.700 05FF7 1EF00 E598E708000A0301030DDDB7C684051101
|
|
42
|
-
A000022.744 05FF2 1F801 E54E471772E569D2
|
|
43
|
-
A000022.794 05FF2 1F802 FFFC289A4600FFFF
|
|
44
|
-
A000022.844 05FF2 1F801 DB4E471772E569D2
|
|
45
|
-
A000022.944 05FF2 1F801 D24E471771E569D2
|
|
46
|
-
A000023.044 05FF3 1F805 FFDB4BDBB17822804FA0566B826B0580C203F09CD762F53F9891000000000014FC06CD002A03AAF2FFFF00
|
|
47
|
-
A000023.049 05FF6 1F11A FFF2DB4B69F8FFFF
|
|
48
|
-
A000023.068 05FF6 1FA03 FFDACD0010036F02
|
|
49
|
-
A000023.068 05FF7 1EF00 E598170004043EAD77420D9DE84217C303430000000000000000000000000000000000000000000000007193034085F4FA40B0B701418E6FC74000000000
|
|
50
|
-
A000023.072 05FF2 1F802 FFFC289A5300FFFF
|
|
51
|
-
A000023.072 05FF2 1F801 C84E47176FE569D2
|
|
52
|
-
A000023.144 05FF2 1F801 C24E47176DE569D2
|
|
53
|
-
A000023.244 05FF2 1F801 B84E47176BE569D2
|
|
54
|
-
A000023.294 05FF2 1F802 FFFC289A5900FFFF
|
|
55
|
-
A000023.344 05FF2 1F801 AE4E471769E569D2
|
|
56
|
-
A000023.355 05FF7 1EF00 E59861060202FFFFFFFF03030000FFFFFFFFFFFFFFFFFFFF0000FFFFFF7FFFFFFF7FFFFFFF7F0000FF7F
|
|
57
|
-
A000023.360 05FF7 1EF00 E59812070202FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF7F
|
|
58
|
-
A000023.362 05FF3 1F904 FFFFFFFFFF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF7FFF7F
|
|
59
|
-
A000023.366 05FF3 1F903 FFF0FFFFFF7FFFFF
|
|
60
|
-
A000023.443 05FF2 1F801 9E4E471764E569D2
|
|
61
|
-
A000023.541 05FF7 1EF00 E5984719020206030101030F08FF0F00303CA31C011100190022904E2B9EA10C
|
|
62
|
-
A000023.544 05FF2 1F802 FFFC8B956500FFFF
|
|
63
|
-
A000023.545 05FF2 1F801 914E471761E569D2
|
|
64
|
-
A000023.644 05FF2 1F801 984E471762E569D2
|
|
65
|
-
A000023.700 05FF7 1EF00 E598E708000A0301030DDDB7C684051101
|
|
66
|
-
A000023.744 05FF2 1F801 3A4E471754E569D2
|
|
67
|
-
A000023.794 05FF2 1F802 FFFC488E6900FFFF
|
|
68
|
-
A000023.844 05FF2 1F801 314E471752E569D2
|
|
69
|
-
A000023.944 05FF2 1F801 2A4E471752E569D2
|
|
70
|
-
A000024.041 05FF7 1EF00 E5984819020203030101030F08FF0F00303CA31C0113C7A90F
|
|
71
|
-
A000024.044 05FF3 1F805 FFDB4BC4D87822C0589B0945826B0500F03E8196D762F52BF085000000000014FC06CD002A03AAF2FFFF00
|
|
72
|
-
A000024.048 05FF6 1F11A FFF2DB4B69F8FFFF
|
|
73
|
-
A000024.068 05FF6 1FA03 FFDACD0010036F02
|
|
74
|
-
A000024.068 05FF7 1EF00 E59817000404AF8B764259E0E742CB4D0343000000000000000000000000000000000000000000000000EB8903401DE2FA402EAE01414C60C74000000000
|
|
75
|
-
A000024.071 05FF2 1F802 FFFCDE896200FFFF
|
|
76
|
-
A000024.075 05FF2 1F801 234E471753E569D2
|
|
77
|
-
A000024.144 05FF2 1F801 204E471754E569D2
|
|
78
|
-
A000024.244 05FF2 1F801 1D4E471754E569D2
|
|
79
|
-
A000024.294 05FF2 1F802 FFFC78865600FFFF
|
|
80
|
-
A000024.344 05FF2 1F801 1A4E471754E569D2
|
|
81
|
-
A000024.354 05FF7 1EF00 E59861060202FFFFFFFF03030000FFFFFFFFFFFFFFFFFFFF0000FFFFFF7FFFFFFF7FFFFFFF7F0000FF7F
|
|
82
|
-
A000024.360 05FF7 1EF00 E59812070202FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF7F
|
|
83
|
-
A000024.362 05FF3 1F904 FFFFFFFFFF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF7FFF7F
|
|
84
|
-
A000024.364 05FF3 1F903 FFF0FFFFFF7FFFFF
|
|
85
|
-
A000024.387 05FF7 1EF00 E598E008020203090012E8071900
|
|
86
|
-
A000024.389 05FF7 1EF00 E598E008020203090112E8071900
|
|
87
|
-
A000024.391 05FF7 1EF00 E598E008020203090B11011900
|
|
88
|
-
A000024.392 05FF7 1EF00 E598E008020203090C12E8071900
|
|
89
|
-
A000024.444 05FF2 1F801 174E471755E569D2
|
|
90
|
-
A000024.544 05FF2 1F802 FFFC78865000FFFF
|
|
91
|
-
A000024.545 05FF2 1F801 144E471755E569D2
|
|
92
|
-
A000024.644 05FF2 1F801 114E471756E569D2
|
|
93
|
-
A000024.700 05FF7 1EF00 E598E708000A0301030DDDB7C684051101
|
|
94
|
-
A000024.744 05FF2 1F801 074E471756E569D2
|
|
95
|
-
A000024.794 05FF2 1F802 FFFC78864900FFFF
|
|
96
|
-
A000024.844 05FF2 1F801 FF4D471755E569D2
|
|
97
|
-
A000024.944 05FF2 1F801 F84D471755E569D2
|
|
98
|
-
A000025.044 05FF3 1F805 FFDB4BD4FF7822C025B34D38826B0500CB59C196D762F5753F7F000000000014FC06CD002A03AAF2FFFF00
|
|
99
|
-
A000025.049 05FF6 1F11A FFF2DB4B69F8FFFF
|
|
100
|
-
A000025.066 05FF6 1FA03 FFDACD000F036E02
|
|
101
|
-
A000025.068 05FF7 1EF00 E59817000404677C7742E7F1E742D47103430000000000000000000000000000000000000000000000005F800340A2CFFA40A3A40141F950C74000000000
|
|
102
|
-
A000025.072 05FF2 1F802 FFFC78864500FFFF
|
|
103
|
-
A000025.072 05FF2 1F801 EC4D471754E569D2
|
|
104
|
-
A000025.144 05FF2 1F801 E14D471754E569D2
|
|
105
|
-
A000025.244 05FF2 1F801 D64D471754E569D2
|
|
106
|
-
A000025.294 05FF2 1F802 FFFC78864300FFFF
|
|
107
|
-
A000025.344 05FF2 1F801 CB4D471754E569D2
|
|
108
|
-
A000025.355 05FF7 1EF00 E59861060202FFFFFFFF03030000FFFFFFFFFFFFFFFFFFFF0000FFFFFF7FFFFFFF7FFFFFFF7F0000FF7F
|
|
109
|
-
A000025.360 05FF7 1EF00 E59812070202FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF7F
|
|
110
|
-
A000025.362 05FF3 1F904 FFFFFFFFFF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF7FFF7F
|
|
111
|
-
A000025.365 05FF3 1F903 FFF0FFFFFF7FFFFF
|
|
112
|
-
A000025.444 05FF2 1F801 C04D471754E569D2
|
|
113
|
-
A000025.544 05FF2 1F802 FFFC78864000FFFF
|
|
114
|
-
A000025.544 05FF2 1F801 B54D471754E569D2
|
|
115
|
-
A000025.644 05FF2 1F801 AA4D471754E569D2
|
|
116
|
-
A000025.700 05FF7 1EF00 E598E708000A0301030DDDB7C684051101
|
|
117
|
-
A000025.744 05FF2 1F801 A44D471755E569D2
|
|
118
|
-
A000025.794 05FF2 1F802 FFFC78863E00FFFF
|
|
119
|
-
A000025.844 05FF2 1F801 9E4D471755E569D2
|
|
120
|
-
A000025.944 05FF2 1F801 7A4D471756E569D2
|
|
121
|
-
A000026.044 05FF3 1F805 FFDB4B0B277922005557F01B826B05004210BF97D762F528937E000000000014FC06CD002A03AAF2FFFF00
|
|
122
|
-
A000026.049 05FF6 1F11A FFF2DB4B69F8FFFF
|
|
123
|
-
A000026.063 05FF6 1FA03 FFDACD000F036E02
|
|
124
|
-
A000026.068 05FF7 1EF00 E59817000404E2F8784290E3E84238090443000000000000000000000000000000000000000000000000CB76034014BDFA400E9B01419741C74000000000
|
|
125
|
-
A000026.073 05FF2 1F802 FFFC78864200FFFF
|
|
126
|
-
A000026.073 05FF2 1F801 734D471759E569D2
|
|
127
|
-
A000026.073 05FF7 1EF00 E5984719020206030101030F08FF0F00303CA31C011100190022904E2B9FA10C
|
|
128
|
-
A000026.078 05FF7 1EF00 E5984819020203030101030F08FF0F00303CA31C0113C8A90F
|
|
129
|
-
A000026.144 05FF2 1F801 6A4D47175BE569D2
|
|
130
|
-
A000026.244 05FF2 1F801 614D47175EE569D2
|
|
131
|
-
A000026.294 05FF2 1F802 FFFC78865300FFFF
|
|
132
|
-
A000026.344 05FF2 1F801 574D471760E569D2
|
|
133
|
-
A000026.355 05FF7 1EF00 E59861060202FFFFFFFF03030000FFFFFFFFFFFFFFFFFFFF0000FFFFFF7FFFFFFF7FFFFFFF7F0000FF7F
|
|
134
|
-
A000026.360 05FF7 1EF00 E59812070202FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF7F
|
|
135
|
-
A000026.362 05FF3 1F904 FFFFFFFFFF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF7FFF7F
|
|
136
|
-
A000026.365 05FF3 1F903 FFF0FFFFFF7FFFFF
|
|
137
|
-
A000026.387 05FF7 1EF00 E598E008020203090012E8071900
|
|
138
|
-
A000026.389 05FF7 1EF00 E598E008020203090112E8071900
|
|
139
|
-
A000026.391 05FF7 1EF00 E598E008020203090B11011900
|
|
140
|
-
A000026.392 05FF7 1EF00 E598E008020203090C12E8071900
|
|
141
|
-
A000026.444 05FF2 1F801 4C4D471763E569D2
|
|
142
|
-
A000026.544 05FF2 1F802 FFFCE6846100FFFF
|
|
143
|
-
A000026.544 05FF2 1F801 464D471763E569D2
|
|
144
|
-
A000026.644 05FF2 1F801 404D471762E569D2
|
|
145
|
-
A000026.700 05FF7 1EF00 E598E708000A0301030DDDB7C684051101
|
|
146
|
-
A000026.744 05FF2 1F801 394D471761E569D2
|
|
147
|
-
A000026.794 05FF2 1F802 FFFC38826B00FFFF
|
|
148
|
-
A000026.844 05FF2 1F801 324D471760E569D2
|
|
149
|
-
A000026.944 05FF2 1F801 2B4D471760E569D2
|
|
150
|
-
A000027.044 05FF3 1F805 FFDB4BF44D7922402890A309826B0580C6D36299D762F5B41E7E000000000014FC06CD002903AAF2FFFF00
|
|
151
|
-
A000027.048 05FF6 1F11A FFF2DB4B69F8FFFF
|
|
152
|
-
A000027.065 05FF6 1FA03 FFDACD000F036E02
|
|
153
|
-
A000027.065 05FF7 1EF00 E5981700040469777B42F0FAE942BFCF04430000000000000000000000000000000000000000000000002F6D034068AAFA406B9101411E32C74000000000
|
|
154
|
-
A000027.072 05FF2 1F802 FFFCC07E7800FFFF
|
|
155
|
-
A000027.072 05FF2 1F801 244D471760E569D2
|
|
156
|
-
A000027.144 05FF2 1F801 184D47175FE569D2
|
|
157
|
-
A000027.244 05FF2 1F801 0B4D47175FE569D2
|
|
158
|
-
A000027.294 05FF2 1F802 FFFC6F7C7D00FFFF
|
|
159
|
-
A000027.344 05FF2 1F801 FE4C47175EE569D2
|
|
160
|
-
A000027.355 05FF7 1EF00 E59861060202FFFFFFFF03030000FFFFFFFFFFFFFFFFFFFF0000FFFFFF7FFFFFFF7FFFFFFF7F0000FF7F
|
|
161
|
-
A000027.360 05FF7 1EF00 E59812070202FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF7F
|
|
162
|
-
A000027.362 05FF3 1F904 FFFFFFFFFF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF7FFF7F
|
|
163
|
-
A000027.366 05FF3 1F903 FFF0FFFFFF7FFFFF
|
|
164
|
-
A000027.444 05FF2 1F801 F34C47175FE569D2
|
|
165
|
-
A000027.544 05FF2 1F802 FFFC5E7A8000FFFF
|
|
166
|
-
A000027.544 05FF2 1F801 C34C47175FE569D2
|
|
167
|
-
A000027.642 05FF2 1F801 B64C471760E569D2
|
|
168
|
-
A000027.707 05FF7 1EF00 E598E708000A0301030DDDB7C684051101
|
|
169
|
-
A000027.744 05FF2 1F801 AA4C47175FE569D2
|
|
170
|
-
A000027.794 05FF2 1F802 FFFC177A8700FFFF
|
|
171
|
-
A000027.844 05FF2 1F801 A24C47175EE569D2
|
|
172
|
-
A000027.944 05FF2 1F801 874C47175FE569D2
|
|
173
|
-
A000028.041 05FF7 1EF00 E5984819020203030101030F08FF0F00303CA31C0113C9A90F
|
|
174
|
-
A000028.044 05FF3 1F805 FFDB4B0475792200D0CA4FE2816B0580641E6B99D762F5ACF17D000000000014FC06CD002903AAF2FFFF00
|
|
175
|
-
A000028.048 05FF6 1F11A FFF2DB4B69F8FFFF
|
|
176
|
-
A000028.068 05FF6 1FA03 FFDACD000F036E02
|
|
177
|
-
A000028.068 05FF7 1EF00 E598170004049E9A7E42D81AEB42C6AD05430000000000000000000000000000000000000000000000008A630340A097FA40B88701418E22C74000000000
|
|
178
|
-
A000028.074 05FF2 1F802 FFFC92798600FFFF
|
|
179
|
-
A000028.074 05FF2 1F801 7B4C471760E569D2
|
|
180
|
-
A000028.144 05FF2 1F801 764C471762E569D2
|
|
181
|
-
A000028.244 05FF2 1F801 714C471764E569D2
|
|
182
|
-
A000028.294 05FF2 1F802 FFFCFA768000FFFF
|
|
183
|
-
A000028.344 05FF2 1F801 5C4C47176BE569D2
|
|
184
|
-
A000028.355 05FF7 1EF00 E59861060202FFFFFFFF03030000FFFFFFFFFFFFFFFFFFFF0000FFFFFF7FFFFFFF7FFFFFFF7F0000FF7F
|
|
185
|
-
A000028.359 05FF7 1EF00 E59812070202FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF7F
|
|
186
|
-
A000028.362 05FF3 1F904 FFFFFFFFFF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF7FFF7F
|
|
187
|
-
A000028.367 05FF3 1F903 FFF0FFFFFF7FFFFF
|
|
188
|
-
A000028.386 05FF7 1EF00 E598E008020203090012E8071900
|
|
189
|
-
A000028.389 05FF7 1EF00 E598E008020203090112E8071900
|
|
190
|
-
A000028.391 05FF7 1EF00 E598E008020203090B11011900
|
|
191
|
-
A000028.392 05FF7 1EF00 E598E008020203090C12E8071900
|
|
192
|
-
A000028.444 05FF2 1F801 584C47176EE569D2
|
|
193
|
-
A000028.541 05FF7 1EF00 E5984719020206030101030F08FF0F00303CA31C011100190022904E2BA0A10C
|
|
194
|
-
A000028.544 05FF2 1F802 FFFC82737900FFFF
|
|
195
|
-
A000028.545 05FF2 1F801 4C4C471778E569D2
|
|
196
|
-
A000028.644 05FF2 1F801 464C471780E569D2
|
|
197
|
-
A000028.707 05FF7 1EF00 E598E708000A0301030DDDB7C684051101
|
|
198
|
-
A000028.744 05FF2 1F801 404C47177EE569D2
|
|
199
|
-
A000028.794 05FF2 1F802 FFFC146C6C00FFFF
|
|
200
|
-
A000028.844 05FF2 1F801 3C4C471780E569D2
|
|
201
|
-
A000028.944 05FF2 1F801 354C471787E569D2
|
|
202
|
-
A000029.044 05FF3 1F805 FFDB4B149C7922801525F6D0816B050017A601A3D762F5F8567D000000000014FC06CD002903AAF2FFFF00
|
|
203
|
-
A000029.048 05FF6 1F11A FFF2DB4B69F8FFFF
|
|
204
|
-
A000029.067 05FF6 1FA03 FFDACD000E036E02
|
|
205
|
-
A000029.068 05FF7 1EF00 E598170004045FD480425FF3EB424A6A0643000000000000000000000000000000000000000000000000D75A0340A886FA40F67E01417F14C74000000000
|
|
206
|
-
A000029.074 05FF2 1F802 FFFCCE696A00FFFF
|
|
207
|
-
A000029.074 05FF2 1F801 314C471789E569D2
|
|
208
|
-
A000029.144 05FF2 1F801 2C4C47178BE569D2
|
|
209
|
-
A000029.244 05FF2 1F801 254C471792E569D2
|
|
210
|
-
A000029.293 05FF2 1F802 FFFCE0646700FFFF
|
|
211
|
-
A000029.344 05FF2 1F801 294C47178CE569D2
|
|
212
|
-
A000029.355 05FF7 1EF00 E59861060202FFFFFFFF03030000FFFFFFFFFFFFFFFFFFFF0000FFFFFF7FFFFFFF7FFFFFFF7F0000FF7F
|
|
213
|
-
A000029.359 05FF7 1EF00 E59812070202FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF7F
|
|
214
|
-
A000029.362 05FF3 1F904 FFFFFFFFFF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF7FFF7F
|
|
215
|
-
A000029.362 05FF3 1F903 FFF0FFFFFF7FFFFF
|
|
216
|
-
A000029.444 05FF2 1F801 244C471790E569D2
|
|
217
|
-
A000029.544 05FF2 1F802 FFFCB0636800FFFF
|
|
218
|
-
A000029.544 05FF2 1F801 1B4C471796E569D2
|
|
219
|
-
A000029.644 05FF2 1F801 134C47179CE569D2
|
|
220
|
-
A000029.708 05FF7 1EF00 E598E708000A0301030DDDB7C684051101
|
|
221
|
-
A000029.744 05FF2 1F801 0A4C4717A3E569D2
|
|
222
|
-
A000029.792 05FF2 1F802 FFFC74656800FFFF
|
|
223
|
-
A000029.844 05FF2 1F801 004C4717A9E569D2
|
|
224
|
-
A000029.944 05FF2 1F801 F64B4717AEE569D2
|