@canboat/canboatjs 3.0.2 → 3.2.2

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.
Files changed (222) hide show
  1. package/.github/workflows/publish.yml +18 -9
  2. package/.github/workflows/test.yml +2 -2
  3. package/.github/workflows/test_canboat_changes.yml +91 -0
  4. package/.husky/pre-commit +4 -0
  5. package/.mocharc.js +7 -0
  6. package/.prettierrc.json +5 -0
  7. package/README.md +5 -14
  8. package/dist/actisense-serial.d.ts +17 -0
  9. package/dist/actisense-serial.d.ts.map +1 -0
  10. package/dist/actisense-serial.js +569 -0
  11. package/dist/actisense-serial.js.map +1 -0
  12. package/dist/bin/actisense-file.d.ts +3 -0
  13. package/dist/bin/actisense-file.d.ts.map +1 -0
  14. package/dist/bin/actisense-file.js +49 -0
  15. package/dist/bin/actisense-file.js.map +1 -0
  16. package/dist/bin/actisense-n2k-tcp.d.ts +3 -0
  17. package/dist/bin/actisense-n2k-tcp.d.ts.map +1 -0
  18. package/dist/bin/actisense-n2k-tcp.js +46 -0
  19. package/dist/bin/actisense-n2k-tcp.js.map +1 -0
  20. package/dist/bin/actisense-serialjs.d.ts +3 -0
  21. package/dist/bin/actisense-serialjs.d.ts.map +1 -0
  22. package/dist/bin/actisense-serialjs.js +51 -0
  23. package/dist/bin/actisense-serialjs.js.map +1 -0
  24. package/dist/bin/analyzerjs.d.ts +3 -0
  25. package/dist/bin/analyzerjs.d.ts.map +1 -0
  26. package/dist/bin/analyzerjs.js +61 -0
  27. package/dist/bin/analyzerjs.js.map +1 -0
  28. package/dist/bin/candumpjs.d.ts +3 -0
  29. package/dist/bin/candumpjs.d.ts.map +1 -0
  30. package/dist/bin/candumpjs.js +73 -0
  31. package/dist/bin/candumpjs.js.map +1 -0
  32. package/dist/bin/cansend.d.ts +3 -0
  33. package/dist/bin/cansend.d.ts.map +1 -0
  34. package/dist/bin/cansend.js +123 -0
  35. package/dist/bin/cansend.js.map +1 -0
  36. package/dist/bin/ikonvert-serial.d.ts +3 -0
  37. package/dist/bin/ikonvert-serial.d.ts.map +1 -0
  38. package/dist/bin/ikonvert-serial.js +36 -0
  39. package/dist/bin/ikonvert-serial.js.map +1 -0
  40. package/dist/bin/to-pgn.d.ts +3 -0
  41. package/dist/bin/to-pgn.d.ts.map +1 -0
  42. package/dist/bin/to-pgn.js +57 -0
  43. package/dist/bin/to-pgn.js.map +1 -0
  44. package/dist/canId.d.ts +21 -0
  45. package/dist/canId.d.ts.map +1 -0
  46. package/dist/canId.js +66 -0
  47. package/dist/canId.js.map +1 -0
  48. package/dist/canId.test.d.ts +2 -0
  49. package/dist/canId.test.d.ts.map +1 -0
  50. package/dist/canId.test.js +58 -0
  51. package/dist/canId.test.js.map +1 -0
  52. package/dist/canbus.d.ts +17 -0
  53. package/dist/canbus.d.ts.map +1 -0
  54. package/dist/canbus.js +261 -0
  55. package/dist/canbus.js.map +1 -0
  56. package/dist/candevice.d.ts +23 -0
  57. package/dist/candevice.d.ts.map +1 -0
  58. package/dist/candevice.js +36 -0
  59. package/dist/candevice.js.map +1 -0
  60. package/dist/codes.d.ts +2 -0
  61. package/dist/codes.d.ts.map +1 -0
  62. package/dist/codes.js +24 -0
  63. package/dist/codes.js.map +1 -0
  64. package/dist/discovery.d.ts +17 -0
  65. package/dist/discovery.d.ts.map +1 -0
  66. package/dist/discovery.js +119 -0
  67. package/dist/discovery.js.map +1 -0
  68. package/dist/fromPgn.d.ts +51 -0
  69. package/dist/fromPgn.d.ts.map +1 -0
  70. package/dist/fromPgn.js +989 -0
  71. package/dist/fromPgn.js.map +1 -0
  72. package/dist/fromPgnStream.d.ts +17 -0
  73. package/dist/fromPgnStream.d.ts.map +1 -0
  74. package/dist/fromPgnStream.js +47 -0
  75. package/dist/fromPgnStream.js.map +1 -0
  76. package/dist/ikonvert.d.ts +17 -0
  77. package/dist/ikonvert.d.ts.map +1 -0
  78. package/dist/ikonvert.js +224 -0
  79. package/dist/ikonvert.js.map +1 -0
  80. package/dist/index.d.ts +31 -0
  81. package/dist/index.d.ts.map +1 -0
  82. package/dist/index.js +60 -0
  83. package/dist/index.js.map +1 -0
  84. package/dist/n2k-actisense.d.ts +24 -0
  85. package/dist/n2k-actisense.d.ts.map +1 -0
  86. package/dist/n2k-actisense.js +126 -0
  87. package/dist/n2k-actisense.js.map +1 -0
  88. package/dist/n2k-actisense.test.d.ts +2 -0
  89. package/dist/n2k-actisense.test.d.ts.map +1 -0
  90. package/dist/n2k-actisense.test.js +49 -0
  91. package/dist/n2k-actisense.test.js.map +1 -0
  92. package/dist/n2kDevice.d.ts +44 -0
  93. package/dist/n2kDevice.d.ts.map +1 -0
  94. package/dist/n2kDevice.js +436 -0
  95. package/dist/n2kDevice.js.map +1 -0
  96. package/dist/pgns.d.ts +22 -0
  97. package/dist/pgns.d.ts.map +1 -0
  98. package/dist/pgns.js +157 -0
  99. package/dist/pgns.js.map +1 -0
  100. package/dist/pgns.test.d.ts +2 -0
  101. package/dist/pgns.test.d.ts.map +1 -0
  102. package/dist/pgns.test.js +14 -0
  103. package/dist/pgns.test.js.map +1 -0
  104. package/dist/simpleCan.d.ts +17 -0
  105. package/dist/simpleCan.d.ts.map +1 -0
  106. package/dist/simpleCan.js +125 -0
  107. package/dist/simpleCan.js.map +1 -0
  108. package/dist/stringMsg.d.ts +33 -0
  109. package/dist/stringMsg.d.ts.map +1 -0
  110. package/dist/stringMsg.js +359 -0
  111. package/dist/stringMsg.js.map +1 -0
  112. package/dist/stringMsg.test.d.ts +2 -0
  113. package/dist/stringMsg.test.d.ts.map +1 -0
  114. package/dist/stringMsg.test.js +244 -0
  115. package/dist/stringMsg.test.js.map +1 -0
  116. package/dist/toPgn.d.ts +34 -0
  117. package/dist/toPgn.d.ts.map +1 -0
  118. package/dist/toPgn.js +500 -0
  119. package/dist/toPgn.js.map +1 -0
  120. package/dist/utilities.d.ts +28 -0
  121. package/dist/utilities.d.ts.map +1 -0
  122. package/dist/utilities.js +159 -0
  123. package/dist/utilities.js.map +1 -0
  124. package/dist/utilities.test.d.ts +2 -0
  125. package/dist/utilities.test.d.ts.map +1 -0
  126. package/dist/utilities.test.js +9 -0
  127. package/dist/utilities.test.js.map +1 -0
  128. package/dist/venus-mqtt.d.ts +11 -0
  129. package/dist/venus-mqtt.d.ts.map +1 -0
  130. package/dist/venus-mqtt.js +100 -0
  131. package/dist/venus-mqtt.js.map +1 -0
  132. package/dist/venus.d.ts +11 -0
  133. package/dist/venus.d.ts.map +1 -0
  134. package/dist/venus.js +71 -0
  135. package/dist/venus.js.map +1 -0
  136. package/dist/w2k01.d.ts +17 -0
  137. package/dist/w2k01.d.ts.map +1 -0
  138. package/dist/w2k01.js +119 -0
  139. package/dist/w2k01.js.map +1 -0
  140. package/dist/yddevice.d.ts +25 -0
  141. package/dist/yddevice.d.ts.map +1 -0
  142. package/dist/yddevice.js +43 -0
  143. package/dist/yddevice.js.map +1 -0
  144. package/dist/ydgw02.d.ts +17 -0
  145. package/dist/ydgw02.d.ts.map +1 -0
  146. package/dist/ydgw02.js +163 -0
  147. package/dist/ydgw02.js.map +1 -0
  148. package/dist/ydvr.d.ts +17 -0
  149. package/dist/ydvr.d.ts.map +1 -0
  150. package/dist/ydvr.js +120 -0
  151. package/dist/ydvr.js.map +1 -0
  152. package/eslint.config.js +58 -0
  153. package/jest.config.js +5 -0
  154. package/lib/actisense-serial.ts +644 -0
  155. package/lib/bin/actisense-file.ts +53 -0
  156. package/lib/bin/actisense-n2k-tcp.ts +50 -0
  157. package/lib/bin/actisense-serialjs.ts +55 -0
  158. package/{bin/analyzerjs → lib/bin/analyzerjs.ts} +16 -15
  159. package/{bin/candumpjs → lib/bin/candumpjs.ts} +19 -20
  160. package/lib/bin/cansend.ts +131 -0
  161. package/lib/bin/ikonvert-serial.ts +44 -0
  162. package/{bin/to-pgn → lib/bin/to-pgn.ts} +23 -17
  163. package/lib/bin/ydvr-file +33 -0
  164. package/lib/canId.test.js +35 -15
  165. package/lib/canId.ts +84 -0
  166. package/lib/canbus.ts +293 -0
  167. package/lib/candevice.ts +41 -0
  168. package/lib/codes.ts +21 -0
  169. package/lib/{discovery.js → discovery.ts} +32 -30
  170. package/lib/fromPgn.ts +1207 -0
  171. package/lib/{fromPgnStream.js → fromPgnStream.ts} +17 -12
  172. package/lib/{ikonvert.js → ikonvert.ts} +99 -94
  173. package/lib/index.ts +48 -0
  174. package/lib/n2k-actisense.test.js +31 -32
  175. package/lib/n2k-actisense.ts +152 -0
  176. package/lib/n2kDevice.ts +516 -0
  177. package/lib/pgns.test.ts +12 -0
  178. package/lib/pgns.ts +191 -0
  179. package/lib/simpleCan.ts +140 -0
  180. package/lib/stringMsg.test.js +58 -41
  181. package/lib/stringMsg.ts +464 -0
  182. package/lib/toPgn.ts +597 -0
  183. package/lib/utilities.ts +169 -0
  184. package/lib/venus-mqtt.js +69 -73
  185. package/lib/venus.js +8 -8
  186. package/lib/w2k01.ts +142 -0
  187. package/lib/{yddevice.js → yddevice.ts} +18 -16
  188. package/lib/{ydgw02.js → ydgw02.ts} +58 -51
  189. package/lib/ydvr.js +65 -147
  190. package/package.json +54 -18
  191. package/tsconfig.json +19 -0
  192. package/tsconfig.tsbuildinfo +1 -0
  193. package/CHANGELOG.md +0 -101
  194. package/bin/actisense-file +0 -47
  195. package/bin/actisense-n2k-tcp +0 -45
  196. package/bin/actisense-serialjs +0 -52
  197. package/bin/candumpanalyzerjs +0 -29
  198. package/bin/cansend +0 -130
  199. package/bin/ikonvert-serial +0 -50
  200. package/bin/ydgw-analyzerjs +0 -36
  201. package/bin/ydvr-file +0 -33
  202. package/index.js +0 -53
  203. package/ios_canboat.js/main.js +0 -2
  204. package/ios_canboat.js/main.js.LICENSE.txt +0 -17
  205. package/ios_canboat.js/main.js.map +0 -1
  206. package/lib/canId.js +0 -64
  207. package/lib/canbus.js +0 -278
  208. package/lib/candevice.js +0 -51
  209. package/lib/codes.js +0 -69
  210. package/lib/codes.test.js +0 -17
  211. package/lib/codesMfgs.json +0 -166
  212. package/lib/fromPgn.js +0 -1027
  213. package/lib/n2k-actisense.js +0 -108
  214. package/lib/n2kDevice.js +0 -390
  215. package/lib/pgns.js +0 -196
  216. package/lib/pgns.test.js +0 -13
  217. package/lib/serial.js +0 -647
  218. package/lib/simpleCan.js +0 -105
  219. package/lib/stringMsg.js +0 -339
  220. package/lib/toPgn.js +0 -518
  221. package/lib/utilities.js +0 -111
  222. package/lib/w2k01.js +0 -129
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Copyright 2025 Scott Bender <scott@scottbender.net>
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { CanDevice } from './candevice'
18
+ import { CanID, encodeCanId, parseCanId } from './canId'
19
+ import { toActisenseSerialFormat, parseActisense } from './stringMsg'
20
+ import { toPgn } from './toPgn'
21
+ import { getPlainPGNs, binToActisense, createDebug } from './utilities'
22
+ import _ from 'lodash'
23
+
24
+ const debug = createDebug('canboatjs:simpleCan')
25
+
26
+ export function SimpleCan(
27
+ this: any,
28
+ options: any,
29
+ messageCb: (data: any) => void
30
+ ) {
31
+ this.options = options
32
+ this.messageCb = messageCb
33
+ this.plainText = false
34
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
35
+ this.socketcan = require('socketcan')
36
+ }
37
+
38
+ SimpleCan.prototype.start = function () {
39
+ const canDevice = this.options.canDevice || 'can0'
40
+
41
+ this.channel = this.socketcan.createRawChannel(canDevice)
42
+ if (this.messageCb) {
43
+ this.channel.addListener('onMessage', (msg: any) => {
44
+ const pgn = parseCanId(msg.id)
45
+
46
+ if (
47
+ this.candevice &&
48
+ this.candevice.cansend &&
49
+ pgn.src == this.candevice.address
50
+ ) {
51
+ return
52
+ }
53
+
54
+ const timestamp = new Date().toISOString()
55
+ if (this.plainText) {
56
+ this.messageCb(
57
+ binToActisense(pgn, timestamp, msg.data, msg.data.length)
58
+ )
59
+ } else {
60
+ this.messageCb({ pgn, length: msg.data.length, data: msg.data })
61
+ }
62
+ })
63
+ }
64
+ this.channel.start()
65
+ this.candevice = new CanDevice(this, {
66
+ ...this.options,
67
+ disableDefaultTransmitPGNs: true,
68
+ disableNAKs: true
69
+ })
70
+ this.candevice.start()
71
+ }
72
+
73
+ SimpleCan.prototype.sendPGN = function (msg: any) {
74
+ if (this.candevice) {
75
+ if (
76
+ !this.candevice.cansend &&
77
+ msg.pgn !== 59904 &&
78
+ msg.pgn !== 60928 &&
79
+ msg.pgn !== 126996
80
+ ) {
81
+ debug('ignoring %j', msg)
82
+ return
83
+ }
84
+
85
+ debug('sending %j', msg)
86
+
87
+ const src =
88
+ msg.pgn === 59904 || (msg as any).forceSrc
89
+ ? msg.src
90
+ : this.candevice.address
91
+ if (_.isString(msg)) {
92
+ const split = msg.split(',')
93
+ split[3] = src
94
+ msg = split.join(',')
95
+ } else {
96
+ msg.src = src
97
+ if (_.isUndefined(msg.prio)) {
98
+ msg.prio = 3
99
+ }
100
+ if (_.isUndefined(msg.dst)) {
101
+ msg.dst = 255
102
+ }
103
+ }
104
+
105
+ let canid: number
106
+ let buffer: Buffer | undefined
107
+
108
+ let pgn
109
+ if (_.isObject(msg)) {
110
+ canid = encodeCanId(msg as CanID)
111
+ buffer = toPgn(msg)
112
+ pgn = msg
113
+ } else {
114
+ pgn = parseActisense(msg)
115
+ canid = encodeCanId(pgn)
116
+ buffer = pgn.data
117
+ }
118
+
119
+ if (debug.enabled) {
120
+ const str = toActisenseSerialFormat(pgn.pgn, buffer, pgn.dst, pgn.src)
121
+ debug(str)
122
+ }
123
+
124
+ if (buffer) {
125
+ //seems as though 126720 should always be encoded this way
126
+ if (buffer.length > 8 || pgn.pgn == 126720) {
127
+ const pgns = getPlainPGNs(buffer)
128
+ pgns.forEach((pbuffer) => {
129
+ this.channel.send({ id: canid, ext: true, data: pbuffer })
130
+ })
131
+ } else {
132
+ this.channel.send({ id: canid, ext: true, data: buffer })
133
+ }
134
+ }
135
+ }
136
+ }
137
+
138
+ SimpleCan.prototype.sendActisenseFormat = function (msg: string) {
139
+ this.sendPGN(msg)
140
+ }
@@ -1,6 +1,17 @@
1
1
  const {
2
- encodeActisense, encodeYDRAW, parseActisense, parseCandump1, parseCandump2,
3
- parsePCDIN, parsePDGY, parseN2kString, parsePDGYdebug, parseYDRAW, encodeActisenseN2KACSII, parseActisenseN2KASCII, parseCandump3
2
+ encodeActisense,
3
+ encodeYDRAW,
4
+ parseActisense,
5
+ parseCandump1,
6
+ parseCandump2,
7
+ parsePCDIN,
8
+ parsePDGY,
9
+ parseN2kString,
10
+ parsePDGYdebug,
11
+ parseYDRAW,
12
+ encodeActisenseN2KACSII,
13
+ parseActisenseN2KASCII,
14
+ parseCandump3
4
15
  } = require('./stringMsg')
5
16
 
6
17
  /* globals describe test expect */
@@ -16,7 +27,7 @@ describe('parseCandump1', () => {
16
27
  len: 8,
17
28
  src: 1,
18
29
  pgn: 60928,
19
- prio: 6,
30
+ prio: 6
20
31
  })
21
32
  const msg2 = '<0x18ea2301> [3] 14 f0 01 '
22
33
  expect(parseCandump1(msg2)).toEqual({
@@ -27,28 +38,29 @@ describe('parseCandump1', () => {
27
38
  len: 3,
28
39
  src: 1,
29
40
  pgn: 59904,
30
- prio: 6,
41
+ prio: 6
31
42
  })
32
-
33
43
  })
34
44
  })
35
45
 
36
46
  describe('parseMultiLineCandump', () => {
37
47
  test('multi line messages', () => {
38
- const msgs = ['can0 0DF80523 [8] C0 2B 7E 9A 47 70 F8 2F',
39
- 'can0 0DF80523 [8] C1 26 00 0C D1 EF 45 98',
40
- 'can0 0DF80523 [8] C2 E5 05 00 7E C2 94 03',
41
- 'can0 0DF80523 [8] C3 A8 29 F6 C0 B6 77 02',
42
- 'can0 0DF80523 [8] C4 00 00 00 00 23 FC 0A',
43
- 'can0 0DF80523 [8] C5 5A 00 A0 00 EE F3 FF',
44
- 'can0 0DF80523 [8] C6 FF 00 FF FF FF FF FF']
48
+ const msgs = [
49
+ 'can0 0DF80523 [8] C0 2B 7E 9A 47 70 F8 2F',
50
+ 'can0 0DF80523 [8] C1 26 00 0C D1 EF 45 98',
51
+ 'can0 0DF80523 [8] C2 E5 05 00 7E C2 94 03',
52
+ 'can0 0DF80523 [8] C3 A8 29 F6 C0 B6 77 02',
53
+ 'can0 0DF80523 [8] C4 00 00 00 00 23 FC 0A',
54
+ 'can0 0DF80523 [8] C5 5A 00 A0 00 EE F3 FF',
55
+ 'can0 0DF80523 [8] C6 FF 00 FF FF FF FF FF'
56
+ ]
45
57
 
46
58
  let res
47
59
  msgs.forEach((msg) => {
48
60
  res = parseCandump2(msg)
49
61
  })
50
62
  expect(res).toEqual({
51
- bus: "can0",
63
+ bus: 'can0',
52
64
  canId: 234358051,
53
65
  data: Buffer.from('c6ff00ffffffffff', 'hex'),
54
66
  dst: 255,
@@ -56,7 +68,7 @@ describe('parseMultiLineCandump', () => {
56
68
  len: 8,
57
69
  src: 35,
58
70
  pgn: 129029,
59
- prio: 3,
71
+ prio: 3
60
72
  })
61
73
  })
62
74
  })
@@ -74,7 +86,7 @@ describe('parseMultiLineCandumpV3', () => {
74
86
  res = parseCandump3(msg)
75
87
  })
76
88
  expect(res).toEqual({
77
- bus: "vcan0",
89
+ bus: 'vcan0',
78
90
  canId: 166854913,
79
91
  data: Buffer.from('63000000007f7fff', 'hex'),
80
92
  dst: 255,
@@ -89,7 +101,8 @@ describe('parseMultiLineCandumpV3', () => {
89
101
 
90
102
  describe('parseActisense', () => {
91
103
  test('basic msg', () => {
92
- const msg = '2016-04-09T16:41:09.078Z,3,127257,17,255,8,00,ff,7f,52,00,21,fe,ff'
104
+ const msg =
105
+ '2016-04-09T16:41:09.078Z,3,127257,17,255,8,00,ff,7f,52,00,21,fe,ff'
93
106
  expect(parseActisense(msg)).toEqual({
94
107
  data: Buffer.from('00ff7f520021feff', 'hex'),
95
108
  dst: 255,
@@ -98,20 +111,22 @@ describe('parseActisense', () => {
98
111
  pgn: 127257,
99
112
  prio: 3,
100
113
  src: 17,
101
- timestamp: '2016-04-09T16:41:09.078Z',
114
+ timestamp: '2016-04-09T16:41:09.078Z'
102
115
  })
103
116
  })
104
117
  })
105
118
  describe('encodeActisense', () => {
106
119
  test('basic msg', () => {
107
- const msg = '2016-04-09T16:41:09.078Z,3,127257,17,255,8,00,ff,7f,52,00,21,fe,ff'
120
+ const msg =
121
+ '2016-04-09T16:41:09.078Z,3,127257,17,255,8,00,ff,7f,52,00,21,fe,ff'
108
122
  const n2k = parseActisense(msg)
109
123
  const res = encodeActisense(n2k)
110
124
  expect(res).toEqual(msg)
111
125
  })
112
126
  })
113
127
 
114
- const pdgyLong = '!PDGY,129029,3,2,255,483.236,UZ9FfR+bI/////////9//////////3//////////fwD8AIgTiBMAAAAAAQAAAAA'
128
+ const pdgyLong =
129
+ '!PDGY,129029,3,2,255,483.236,UZ9FfR+bI/////////9//////////3//////////fwD8AIgTiBMAAAAAAQAAAAA'
115
130
  describe('parsePDGY', () => {
116
131
  test('basic msg', () => {
117
132
  const msg = '!PDGY,126992,3,2,255,0.563,d2009e45b3b8821d'
@@ -129,7 +144,10 @@ describe('parsePDGY', () => {
129
144
  })
130
145
  test('long msg', () => {
131
146
  expect(parsePDGY(pdgyLong)).toEqual({
132
- data: Buffer.from('UZ9FfR+bI/////////9//////////3//////////fwD8AIgTiBMAAAAAAQAAAAA', 'base64'),
147
+ data: Buffer.from(
148
+ 'UZ9FfR+bI/////////9//////////3//////////fwD8AIgTiBMAAAAAAQAAAAA',
149
+ 'base64'
150
+ ),
133
151
  dst: 255,
134
152
  format: 'PDGY',
135
153
  prefix: '!PDGY',
@@ -145,7 +163,7 @@ describe('parsePDGYdebug', () => {
145
163
  test('basic msg', () => {
146
164
  const msg = '$PDGY,000000,4,,5,482,1,0'
147
165
  expect(parsePDGYdebug(msg)).toEqual({
148
- data: Buffer.from([4,0,5,482,1,0]),
166
+ data: Buffer.from([4, 0, 5, 482, 1, 0]),
149
167
  dst: 1,
150
168
  format: 'PDGYdebug',
151
169
  prefix: '$PDGY',
@@ -158,7 +176,7 @@ describe('parsePDGYdebug', () => {
158
176
  errors: 0,
159
177
  gatewaySrc: 1,
160
178
  rejectedTX: 0,
161
- timer: 482,
179
+ timer: 482
162
180
  }
163
181
  })
164
182
  })
@@ -177,7 +195,7 @@ describe('parsePCDIN', () => {
177
195
  prio: 0,
178
196
  src: 15,
179
197
  timer: 1262304000000,
180
- timestamp: new Date("2010-01-01T00:00:00.000Z"),
198
+ timestamp: new Date('2010-01-01T00:00:00.000Z')
181
199
  })
182
200
  })
183
201
  })
@@ -186,7 +204,7 @@ describe('parseYDRAW', () => {
186
204
  test('basic msg', () => {
187
205
  const msg = '16:29:27.082 R 09F8017F 50 C3 B8 13 47 D8 2B C6'
188
206
  expect(parseYDRAW(msg)).toEqual({
189
- canId: 0x09F8017F,
207
+ canId: 0x09f8017f,
190
208
  data: Buffer.from('50C3B81347D82BC6', 'hex'),
191
209
  direction: 'R',
192
210
  dst: 255,
@@ -194,20 +212,20 @@ describe('parseYDRAW', () => {
194
212
  pgn: 129025,
195
213
  prio: 2,
196
214
  src: 127,
197
- time: '16:29:27.082',
215
+ time: '16:29:27.082'
198
216
  })
199
217
  })
200
218
  })
201
219
  describe('encodeYDRAW', () => {
202
220
  test('long msg', () => {
203
221
  expect(encodeYDRAW(parsePDGY(pdgyLong))).toEqual([
204
- "0df80502 40 2f 51 9f 45 7d 1f 9b",
205
- "0df80502 41 23 ff ff ff ff ff ff",
206
- "0df80502 42 ff 7f ff ff ff ff ff",
207
- "0df80502 43 ff ff 7f ff ff ff ff",
208
- "0df80502 44 ff ff ff 7f 00 fc 00",
209
- "0df80502 45 88 13 88 13 00 00 00",
210
- "0df80502 46 00 01 00 00 00 00 ff",
222
+ '0df80502 40 2f 51 9f 45 7d 1f 9b',
223
+ '0df80502 41 23 ff ff ff ff ff ff',
224
+ '0df80502 42 ff 7f ff ff ff ff ff',
225
+ '0df80502 43 ff ff 7f ff ff ff ff',
226
+ '0df80502 44 ff ff ff 7f 00 fc 00',
227
+ '0df80502 45 88 13 88 13 00 00 00',
228
+ '0df80502 46 00 01 00 00 00 00 ff'
211
229
  ])
212
230
  })
213
231
  })
@@ -217,13 +235,13 @@ describe('parseActisenseN2KASCII', () => {
217
235
  const msg = 'A000021.293 05FF2 1F802 FFFC289A1600FFFF'
218
236
  expect(parseActisenseN2KASCII(msg)).toEqual({
219
237
  data: Buffer.from('FFFC289A1600FFFF', 'hex'),
220
- "dst": 255,
221
- "format": "Actisense N2K ASCII",
222
- "len": 16,
223
- "pgn": 129026,
224
- "prio": 2,
225
- "src": 5,
226
- "time": "000021.293"
238
+ dst: 255,
239
+ format: 'Actisense N2K ASCII',
240
+ len: 16,
241
+ pgn: 129026,
242
+ prio: 2,
243
+ src: 5,
244
+ time: '000021.293'
227
245
  })
228
246
  })
229
247
  })
@@ -236,7 +254,6 @@ describe('encodeActisenseN2KACSII', () => {
236
254
  })
237
255
  })
238
256
 
239
-
240
257
  describe('parseN2kString', () => {
241
258
  test('empty string or not string', () => {
242
259
  const emptyMsg = 'Input not string or empty.'
@@ -249,7 +266,7 @@ describe('parseN2kString', () => {
249
266
  const errMsg = {
250
267
  error: new Error('Parser not found for input. - foo,bar'),
251
268
  input: 'foo,bar',
252
- format: 'MISSING_PARSER',
269
+ format: 'MISSING_PARSER'
253
270
  }
254
271
  expect(parseN2kString('foo,bar')).toEqual(errMsg)
255
272
  })