Skip to content

Commit 24388f6

Browse files
authored
Merge pull request #93 from celestinjr/feature/add-century-pump-support
2 parents a9d929e + 2b3bff1 commit 24388f6

4 files changed

Lines changed: 35 additions & 4 deletions

File tree

scripts/config/pumps.js

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,11 @@
2828
type: pt.val, circuits: [],
2929
minFlow: 0, maxFlow: 130,
3030
minSpeed: 0, maxSpeed: 3450, primingTime: 0,
31-
primingSpeed: 0, address: 96 + groups.length
31+
primingSpeed: 0,
32+
// addresses maintains backward compatibility for now
33+
address: typeof pt.addresses !== 'undefined' ? pt.addresses[0] : 96 + groups.length,
34+
// addresses exists only after Century Modbus pump implementation in nodejs-poolController
35+
addresses: pt.addresses,
3236
});
3337
pnl.find('div.picAccordian:first')[0].expanded(true);
3438
});
@@ -81,12 +85,19 @@
8185
});
8286
if (!isNixie) ports.hide();
8387

88+
89+
// Build the address list maintaining backward compatibility for now
8490
var addrs = [];
85-
for (var k = 0; k < o.maxPumps; k++) addrs.push({ val: k + 96, desc: k + 1 });
91+
if (typeof o.pumpTypes[0].addresses !== 'undefined') {
92+
addrs = o.pumpTypes[0].addresses; // default to addresses for the first pump type. we'll change this later.
93+
} else {
94+
for (var k = 0; k < o.maxPumps; k++) addrs.push({ val: k + 96, desc: k + 1 });
95+
}
96+
8697
$('<div></div>').appendTo(line).pickList({
8798
required: true, bindColumn: 0, displayColumn: 1, labelText: 'Address', binding: binding + 'address',
8899
columns: [{ binding: 'val', hidden: true, text: 'val', style: { whiteSpace: 'nowrap' } }, { binding: 'desc', text: 'Address', style: { whiteSpace: 'nowrap' } }],
89-
items: addrs, inputAttrs: { style: { width: '2rem' } }, labelAttrs: { style: { marginLeft: '.25rem' } }
100+
items: addrs, inputAttrs: { style: { width: '6rem' } }, labelAttrs: { style: { marginLeft: '.25rem' } }
90101
});
91102
line = $('<div></div>').appendTo(pnl);
92103
$('<div></div>').appendTo(line).pickList({
@@ -189,6 +200,13 @@
189200
},
190201
_resetPumpPanel: function (type) {
191202
var self = this, o = self.options, el = self.element;
203+
204+
// Add the hex address to the address list if we're dealing with a (newer) pump type that has addresses.
205+
if (typeof type.addresses !== 'undefined') {
206+
var ddAddr = el.find('div.picPickList[data-bind$=address]');
207+
ddAddr[0].items(type.addresses.map(addr => ({ val: addr, desc: `${addr} (0x${addr.toString(16).toUpperCase()})` })));
208+
}
209+
192210
var binding = '';
193211
var pnl = el.find('div.picPumpDetails:first');
194212
pnl.empty();

scripts/messages/messageList.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2069,7 +2069,8 @@ mhelper.init();
20692069
{ val: 'chlorinator', desc: 'Chlorinator' },
20702070
{ val: 'pump', desc: 'Pump' },
20712071
{ val: 'intellivalve', desc: 'Intellivalve' },
2072-
{ val: 'intellichem', desc: 'Intellichem' }],
2072+
{ val: 'intellichem', desc: 'Intellichem' },
2073+
{ val: 'regalmodbus', desc: 'Regal Modbus' }],
20732074
inputAttrs: { style: { width: '7rem' } }, labelAttrs: { style: { width: '4rem' } }
20742075
});
20752076
proto.on('selchanged', function (evt) {

scripts/pumps.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@
130130
case 'hwvs':
131131
case 'vs':
132132
case 'vs+svrs':
133+
case 'regalmodbus':
133134
el.find('div.picProgram').hide();
134135
el.find('div.picFlow').hide();
135136
el.find('div.picSpeed').show();

server/messages/docs/constants.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -823,6 +823,17 @@
823823
"source": false,
824824
"controller": false,
825825
"keyFormat": "SL_<dest>_<action>"
826+
},
827+
{
828+
"name": "regalmodbus",
829+
"desc": "Regal Modbus",
830+
"actions": {
831+
"all": []
832+
},
833+
"source": false,
834+
"controller": false,
835+
"length": false,
836+
"keyFormat": "<address>_<function>_<ack>_<data>_<crclo>_<crchi>"
826837
}
827838
],
828839
"controllers": [

0 commit comments

Comments
 (0)