Skip to content

Commit 31d51f3

Browse files
committed
fix(driver-or-we-516): correct energy register range and validation consistency
- Fix energy register range from 0x012E to 0x012F (48 registers = offsets 0-47) - Refactor combined_code validation to reuse isValidCycleTime validator
1 parent 0cd8bad commit 31d51f3

3 files changed

Lines changed: 4 additions & 4 deletions

File tree

packages/driver-or-we-516/AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ ORNO OR-WE-516 3-Phase Energy Meter driver implementation.
77
- Implements DeviceDriver interface from `@ya-modbus/driver-types`
88
- Uses SDK utilities from `@ya-modbus/driver-sdk` for validation and encoding
99
- All floats are IEEE 754 big-endian (use `readFloatBE`/`writeFloatBE`)
10-
- Two register ranges: realtime (0x0000-0x003B) and energy (0x0100-0x012E)
10+
- Two register ranges: realtime (0x0000-0x003B) and energy (0x0100-0x012F)
1111

1212
## Testing
1313

packages/driver-or-we-516/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ const driver = await createDriver({
161161
| ------------- | ---------- | ------- | ------------------------------ |
162162
| 0x0000-0x003B | 60 (120 B) | Holding | Device info + real-time values |
163163
| 0x0042 | 1 (2 B) | Holding | Combined code (config) |
164-
| 0x0100-0x012E | 48 (96 B) | Holding | Energy counters |
164+
| 0x0100-0x012F | 48 (96 B) | Holding | Energy counters |
165165

166166
All float values are IEEE 754 single-precision (32-bit) big-endian.
167167

packages/driver-or-we-516/src/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*
1010
* Register mapping:
1111
* - Holding registers 0x0000-0x003B: Device info and real-time measurements
12-
* - Holding registers 0x0100-0x012E: Energy counters
12+
* - Holding registers 0x0100-0x012F: Energy counters
1313
* - All float values are IEEE 754 single-precision (32-bit)
1414
*/
1515

@@ -797,7 +797,7 @@ export const createDriver: CreateDriverFunction = (config: DriverConfig) => {
797797
}
798798

799799
if (id === 'combined_code') {
800-
if (!isValidInteger(value) || value < 0 || value > 65535) {
800+
if (!isValidInteger(value) || !isValidCycleTime(value)) {
801801
throw new Error(formatRangeError('combined code', 0, 65535))
802802
}
803803
await transport.writeSingleRegister(0x0042, value)

0 commit comments

Comments
 (0)