nodejs-poolcontroller 8.4.0 → 8.4.1
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/.github/workflows/ghcr-publish.yml +1 -1
- package/157_issues.md +101 -0
- package/AGENTS.md +17 -1
- package/README.md +13 -2
- package/controller/Equipment.ts +49 -0
- package/controller/State.ts +8 -0
- package/controller/boards/AquaLinkBoard.ts +174 -2
- package/controller/boards/EasyTouchBoard.ts +44 -0
- package/controller/boards/IntelliCenterBoard.ts +360 -172
- package/controller/boards/NixieBoard.ts +7 -4
- package/controller/boards/SunTouchBoard.ts +1 -0
- package/controller/boards/SystemBoard.ts +39 -4
- package/controller/comms/Comms.ts +9 -3
- package/controller/comms/messages/Messages.ts +218 -24
- package/controller/comms/messages/config/EquipmentMessage.ts +34 -0
- package/controller/comms/messages/config/ExternalMessage.ts +1051 -989
- package/controller/comms/messages/config/GeneralMessage.ts +65 -0
- package/controller/comms/messages/config/OptionsMessage.ts +15 -2
- package/controller/comms/messages/config/PumpMessage.ts +427 -421
- package/controller/comms/messages/config/SecurityMessage.ts +37 -13
- package/controller/comms/messages/status/EquipmentStateMessage.ts +0 -218
- package/controller/comms/messages/status/HeaterStateMessage.ts +27 -15
- package/controller/comms/messages/status/NeptuneModbusStateMessage.ts +217 -0
- package/controller/comms/messages/status/VersionMessage.ts +67 -18
- package/controller/nixie/chemistry/ChemController.ts +65 -33
- package/controller/nixie/heaters/Heater.ts +10 -1
- package/controller/nixie/pumps/Pump.ts +145 -2
- package/docker-compose.yml +1 -0
- package/logger/Logger.ts +75 -64
- package/package.json +1 -1
- package/tsconfig.json +2 -1
- package/web/Server.ts +3 -1
- package/web/services/config/Config.ts +150 -1
- package/web/services/state/State.ts +21 -0
- package/web/services/state/StateSocket.ts +28 -0
|
@@ -150,6 +150,30 @@ export class EquipmentMessage {
|
|
|
150
150
|
state.equipment.maxPumps = sys.equipment.maxPumps;
|
|
151
151
|
msg.isProcessed = true;
|
|
152
152
|
break;
|
|
153
|
+
case 12:
|
|
154
|
+
case 13:
|
|
155
|
+
case 14:
|
|
156
|
+
case 15: {
|
|
157
|
+
const selector = msg.extractPayloadByte(1);
|
|
158
|
+
const raw = EquipmentMessage.extractAlertRaw(msg);
|
|
159
|
+
sys.alerts.setRaw(selector, raw);
|
|
160
|
+
switch (selector) {
|
|
161
|
+
case 12:
|
|
162
|
+
sys.alerts.circuitNotifications = raw.length > 0 ? raw[0] : 0;
|
|
163
|
+
break;
|
|
164
|
+
case 13:
|
|
165
|
+
sys.alerts.pumpNotifications = EquipmentMessage.extractAlertMask(raw);
|
|
166
|
+
break;
|
|
167
|
+
case 14:
|
|
168
|
+
sys.alerts.heaterNotifications = EquipmentMessage.extractAlertMask(raw);
|
|
169
|
+
break;
|
|
170
|
+
case 15:
|
|
171
|
+
sys.alerts.chlorinatorNotifications = EquipmentMessage.extractAlertMask(raw);
|
|
172
|
+
break;
|
|
173
|
+
}
|
|
174
|
+
msg.isProcessed = true;
|
|
175
|
+
break;
|
|
176
|
+
}
|
|
153
177
|
default:
|
|
154
178
|
logger.debug(`Unprocessed Config Message ${msg.toPacket()}`)
|
|
155
179
|
break;
|
|
@@ -173,6 +197,16 @@ export class EquipmentMessage {
|
|
|
173
197
|
sys.equipment.bootloaderVersion = `${msg.extractPayloadByte(5)}.${msg.extractPayloadByte(6) < 100 ? '0' + msg.extractPayloadByte(6) : msg.extractPayloadByte(6)}`;
|
|
174
198
|
sys.equipment.controllerFirmware = `${msg.extractPayloadByte(1)}.${msg.extractPayloadByte(2) < 100 ? '0' + msg.extractPayloadByte(2) : msg.extractPayloadByte(2)}`;
|
|
175
199
|
}
|
|
200
|
+
private static extractAlertRaw(msg: Inbound): number[] {
|
|
201
|
+
const raw: number[] = [];
|
|
202
|
+
for (let i = 2; i < msg.payload.length; i++) raw.push(msg.extractPayloadByte(i, 0));
|
|
203
|
+
return raw;
|
|
204
|
+
}
|
|
205
|
+
private static extractAlertMask(raw: number[]): number {
|
|
206
|
+
if (raw.length === 0) return 0;
|
|
207
|
+
if (raw.length === 1) return raw[0] & 0xFF;
|
|
208
|
+
return ((raw[raw.length - 2] & 0xFF) << 8) | (raw[raw.length - 1] & 0xFF);
|
|
209
|
+
}
|
|
176
210
|
//private static calcModel(eq: Equipment) {
|
|
177
211
|
// eq.shared = (eq.type & 8) === 8;
|
|
178
212
|
// eq.maxPumps = 16;
|