Fixes to REGS_ADDR_MAX in server examples
This commit is contained in:
parent
96126e5732
commit
b8d247f329
@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
// A single nmbs_bitfield variable can keep 2000 coils
|
// A single nmbs_bitfield variable can keep 2000 coils
|
||||||
nmbs_bitfield server_coils = {0};
|
nmbs_bitfield server_coils = {0};
|
||||||
uint16_t server_registers[REGS_ADDR_MAX] = {0};
|
uint16_t server_registers[REGS_ADDR_MAX + 1] = {0};
|
||||||
|
|
||||||
|
|
||||||
int32_t read_serial(uint8_t* buf, uint16_t count, int32_t byte_timeout_ms, void* arg) {
|
int32_t read_serial(uint8_t* buf, uint16_t count, int32_t byte_timeout_ms, void* arg) {
|
||||||
@ -42,7 +42,7 @@ void onError() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
nmbs_error handle_read_coils(uint16_t address, uint16_t quantity, nmbs_bitfield coils_out, uint8_t unit_id, void *arg) {
|
nmbs_error handle_read_coils(uint16_t address, uint16_t quantity, nmbs_bitfield coils_out, uint8_t unit_id, void* arg) {
|
||||||
if (address + quantity > COILS_ADDR_MAX + 1)
|
if (address + quantity > COILS_ADDR_MAX + 1)
|
||||||
return NMBS_EXCEPTION_ILLEGAL_DATA_ADDRESS;
|
return NMBS_EXCEPTION_ILLEGAL_DATA_ADDRESS;
|
||||||
|
|
||||||
@ -56,7 +56,8 @@ nmbs_error handle_read_coils(uint16_t address, uint16_t quantity, nmbs_bitfield
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
nmbs_error handle_write_multiple_coils(uint16_t address, uint16_t quantity, const nmbs_bitfield coils, uint8_t unit_id, void *arg) {
|
nmbs_error handle_write_multiple_coils(uint16_t address, uint16_t quantity, const nmbs_bitfield coils, uint8_t unit_id,
|
||||||
|
void* arg) {
|
||||||
if (address + quantity > COILS_ADDR_MAX + 1)
|
if (address + quantity > COILS_ADDR_MAX + 1)
|
||||||
return NMBS_EXCEPTION_ILLEGAL_DATA_ADDRESS;
|
return NMBS_EXCEPTION_ILLEGAL_DATA_ADDRESS;
|
||||||
|
|
||||||
@ -69,7 +70,8 @@ nmbs_error handle_write_multiple_coils(uint16_t address, uint16_t quantity, cons
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
nmbs_error handler_read_holding_registers(uint16_t address, uint16_t quantity, uint16_t* registers_out, uint8_t unit_id, void *arg) {
|
nmbs_error handler_read_holding_registers(uint16_t address, uint16_t quantity, uint16_t* registers_out, uint8_t unit_id,
|
||||||
|
void* arg) {
|
||||||
if (address + quantity > REGS_ADDR_MAX + 1)
|
if (address + quantity > REGS_ADDR_MAX + 1)
|
||||||
return NMBS_EXCEPTION_ILLEGAL_DATA_ADDRESS;
|
return NMBS_EXCEPTION_ILLEGAL_DATA_ADDRESS;
|
||||||
|
|
||||||
@ -81,7 +83,8 @@ nmbs_error handler_read_holding_registers(uint16_t address, uint16_t quantity, u
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
nmbs_error handle_write_multiple_registers(uint16_t address, uint16_t quantity, const uint16_t* registers, uint8_t unit_id, void *arg) {
|
nmbs_error handle_write_multiple_registers(uint16_t address, uint16_t quantity, const uint16_t* registers,
|
||||||
|
uint8_t unit_id, void* arg) {
|
||||||
if (address + quantity > REGS_ADDR_MAX + 1)
|
if (address + quantity > REGS_ADDR_MAX + 1)
|
||||||
return NMBS_EXCEPTION_ILLEGAL_DATA_ADDRESS;
|
return NMBS_EXCEPTION_ILLEGAL_DATA_ADDRESS;
|
||||||
|
|
||||||
@ -94,10 +97,11 @@ nmbs_error handle_write_multiple_registers(uint16_t address, uint16_t quantity,
|
|||||||
|
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
pinMode (LED_BUILTIN, OUTPUT);
|
pinMode(LED_BUILTIN, OUTPUT);
|
||||||
|
|
||||||
Serial.begin(9600);
|
Serial.begin(9600);
|
||||||
while (!Serial);
|
while (!Serial)
|
||||||
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -21,7 +21,7 @@
|
|||||||
// A single nmbs_bitfield variable can keep 2000 coils
|
// A single nmbs_bitfield variable can keep 2000 coils
|
||||||
bool terminate = false;
|
bool terminate = false;
|
||||||
nmbs_bitfield server_coils = {0};
|
nmbs_bitfield server_coils = {0};
|
||||||
uint16_t server_registers[REGS_ADDR_MAX] = {0};
|
uint16_t server_registers[REGS_ADDR_MAX + 1] = {0};
|
||||||
uint16_t server_file[FILE_SIZE_MAX];
|
uint16_t server_file[FILE_SIZE_MAX];
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user