@signalk/vedirect-serial-usb 1.4.0 → 1.5.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/index.js +8 -3
- package/lib/Parser.js +5 -0
- package/lib/fields.js +2 -0
- package/lib/tcp.js +8 -2
- package/migration.js +3 -0
- package/package.json +1 -1
- package/standalone.js +2 -1
package/index.js
CHANGED
|
@@ -37,13 +37,13 @@ module.exports = function (app) {
|
|
|
37
37
|
} else {
|
|
38
38
|
if (options.device) {
|
|
39
39
|
oldConfig = {vedirect: [{device: 'Serial', connection: options.device, ignoreChecksum: options.ignoreChecksum,
|
|
40
|
-
mainBatt: options.mainBatt, auxBatt: options.auxBatt, solar: options.solar}]}
|
|
40
|
+
mainBatt: options.mainBatt, auxBatt: options.auxBatt, bmv: options.bmv, solar: options.solar}]}
|
|
41
41
|
} else if (options.udpPort) {
|
|
42
42
|
oldConfig = {vedirect: [{device: 'UDP', port: options.udpPort, ignoreChecksum: options.ignoreChecksum,
|
|
43
|
-
mainBatt: options.mainBatt, auxBatt: options.auxBatt, solar: options.solar}]}
|
|
43
|
+
mainBatt: options.mainBatt, auxBatt: options.auxBatt, bmv: options.bmv, solar: options.solar}]}
|
|
44
44
|
} else if (options.host) {
|
|
45
45
|
oldConfig = {vedirect: [{device: 'TCP', connection: options.host, port: options.tcpPort, ignoreChecksum: options.ignoreChecksum,
|
|
46
|
-
mainBatt: options.mainBatt, auxBatt: options.auxBatt, solar: options.solar}]}
|
|
46
|
+
mainBatt: options.mainBatt, auxBatt: options.auxBatt, bmv: options.bmv, solar: options.solar}]}
|
|
47
47
|
}
|
|
48
48
|
parser[0] = new Parser(oldConfig)
|
|
49
49
|
|
|
@@ -139,6 +139,11 @@ module.exports = function (app) {
|
|
|
139
139
|
title: 'Aux Battery name in SK path',
|
|
140
140
|
default: 'Starter'
|
|
141
141
|
},
|
|
142
|
+
bmv: {
|
|
143
|
+
type: 'string',
|
|
144
|
+
title: 'BMV name in SK path',
|
|
145
|
+
default: 'bmv'
|
|
146
|
+
},
|
|
142
147
|
solar: {
|
|
143
148
|
type: 'string',
|
|
144
149
|
title: 'Solar name in SK path',
|
package/lib/Parser.js
CHANGED
|
@@ -7,6 +7,7 @@ const defaults = {
|
|
|
7
7
|
defaultUnitId: 'victronDevice',
|
|
8
8
|
mainBatt: 'house',
|
|
9
9
|
auxBatt: 'starter',
|
|
10
|
+
bmv: 'bmv',
|
|
10
11
|
solar: 'solar'
|
|
11
12
|
}
|
|
12
13
|
|
|
@@ -358,6 +359,10 @@ class VEDirectParser extends EventEmitter {
|
|
|
358
359
|
unitID = this.options.vedirect[items].auxBatt
|
|
359
360
|
}
|
|
360
361
|
|
|
362
|
+
if (field.unitId === 'bmv' && this.options.hasOwnProperty('bmv')) {
|
|
363
|
+
unitID = this.options.vedirect[items].bmv
|
|
364
|
+
}
|
|
365
|
+
|
|
361
366
|
if (field.unitId === 'solar' && this.options.hasOwnProperty('solar')) {
|
|
362
367
|
unitID = this.options.vedirect[items].solar
|
|
363
368
|
}
|
package/lib/fields.js
CHANGED
package/lib/tcp.js
CHANGED
|
@@ -4,6 +4,7 @@ let client = [];
|
|
|
4
4
|
function makeConnection(host, port, debug, items) {
|
|
5
5
|
client[items] = new Net.Socket();
|
|
6
6
|
client[items].connect({ port: port, host: host });
|
|
7
|
+
client[items].setTimeout(5000);
|
|
7
8
|
debug(`Connection to ${host}:${port}`);
|
|
8
9
|
return client[items]
|
|
9
10
|
}
|
|
@@ -17,9 +18,8 @@ function onClose(host, port, parser, debug, items) {
|
|
|
17
18
|
if(client[items]) {
|
|
18
19
|
setTimeout(() => {
|
|
19
20
|
debug('Trying to reconnect');
|
|
20
|
-
client[items].destroy();
|
|
21
21
|
module.exports.connect(host, port, parser, debug, items);
|
|
22
|
-
}, 10000)
|
|
22
|
+
}, 10000);
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
|
|
@@ -31,11 +31,17 @@ module.exports = {
|
|
|
31
31
|
});
|
|
32
32
|
client[items].on('close', () => {
|
|
33
33
|
debug('TCP connection closed');
|
|
34
|
+
client[items].destroy();
|
|
34
35
|
onClose(host, port, parser, debug, items);
|
|
35
36
|
});
|
|
36
37
|
client[items].on('error', () => {
|
|
37
38
|
debug('TCP connection error');
|
|
39
|
+
client[items].destroy();
|
|
38
40
|
});
|
|
41
|
+
client[items].on('timeout', () => {
|
|
42
|
+
debug('TCP connection timeout');
|
|
43
|
+
client[items].destroy();
|
|
44
|
+
});
|
|
39
45
|
},
|
|
40
46
|
close: (debug, items) => {
|
|
41
47
|
if (client[items]) {
|
package/migration.js
CHANGED
|
@@ -19,6 +19,7 @@ fs.readFile(path.resolve(jsonPath, 'vedirect-signalk.json'), 'UTF-8', (err, data
|
|
|
19
19
|
'ignoreChecksum': obj.configuration.ignoreChecksum,
|
|
20
20
|
'mainBatt': obj.configuration.mainBatt,
|
|
21
21
|
'auxBatt': obj.configuration.auxBatt,
|
|
22
|
+
'bmv': obj.configuration.bmv,
|
|
22
23
|
'solar': obj.configuration.solar
|
|
23
24
|
}]
|
|
24
25
|
} else if (obj.configuration.udpPort) {
|
|
@@ -29,6 +30,7 @@ fs.readFile(path.resolve(jsonPath, 'vedirect-signalk.json'), 'UTF-8', (err, data
|
|
|
29
30
|
'ignoreChecksum': obj.configuration.ignoreChecksum,
|
|
30
31
|
'mainBatt': obj.configuration.mainBatt,
|
|
31
32
|
'auxBatt': obj.configuration.auxBatt,
|
|
33
|
+
'bmv': obj.configuration.bmv,
|
|
32
34
|
'solar': obj.configuration.solar
|
|
33
35
|
}]
|
|
34
36
|
} else if (obj.configuration.host) {
|
|
@@ -39,6 +41,7 @@ fs.readFile(path.resolve(jsonPath, 'vedirect-signalk.json'), 'UTF-8', (err, data
|
|
|
39
41
|
'ignoreChecksum': obj.configuration.ignoreChecksum,
|
|
40
42
|
'mainBatt': obj.configuration.mainBatt,
|
|
41
43
|
'auxBatt': obj.configuration.auxBatt,
|
|
44
|
+
'bmv': obj.configuration.bmv,
|
|
42
45
|
'solar': obj.configuration.solar
|
|
43
46
|
}]
|
|
44
47
|
}
|
package/package.json
CHANGED
package/standalone.js
CHANGED
|
@@ -30,6 +30,7 @@ class VEDirect extends EventEmitter {
|
|
|
30
30
|
ignoreChecksum: true,
|
|
31
31
|
mainBatt: 'House',
|
|
32
32
|
auxBatt: 'Starter',
|
|
33
|
+
bmv: 'bmv',
|
|
33
34
|
solar: 'Main',
|
|
34
35
|
...(config || {}),
|
|
35
36
|
}
|
|
@@ -64,4 +65,4 @@ class VEDirect extends EventEmitter {
|
|
|
64
65
|
}
|
|
65
66
|
}
|
|
66
67
|
|
|
67
|
-
module.exports = VEDirect
|
|
68
|
+
module.exports = VEDirect
|