|
28 | 28 | type: pt.val, circuits: [], |
29 | 29 | minFlow: 0, maxFlow: 130, |
30 | 30 | 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, |
32 | 36 | }); |
33 | 37 | pnl.find('div.picAccordian:first')[0].expanded(true); |
34 | 38 | }); |
|
81 | 85 | }); |
82 | 86 | if (!isNixie) ports.hide(); |
83 | 87 |
|
| 88 | + |
| 89 | + // Build the address list maintaining backward compatibility for now |
84 | 90 | 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 | + |
86 | 97 | $('<div></div>').appendTo(line).pickList({ |
87 | 98 | required: true, bindColumn: 0, displayColumn: 1, labelText: 'Address', binding: binding + 'address', |
88 | 99 | 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' } } |
90 | 101 | }); |
91 | 102 | line = $('<div></div>').appendTo(pnl); |
92 | 103 | $('<div></div>').appendTo(line).pickList({ |
|
189 | 200 | }, |
190 | 201 | _resetPumpPanel: function (type) { |
191 | 202 | 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 | + |
192 | 210 | var binding = ''; |
193 | 211 | var pnl = el.find('div.picPumpDetails:first'); |
194 | 212 | pnl.empty(); |
|
0 commit comments