下面是关于最大可读字节数量判断逻辑,我想知道在程序中modbus_read_max_byte = 255,255设定有什么意义?按照协议规范来说,读线圈最大支持的线圈数量为2000(2000/8=250 != 255),读保持寄存器最大支持的寄存器数量为125(125*2=250 != 255)。
static bool tag_sort(neu_tag_sort_t *sort, void *tag, void *tag_to_be_sorted)
switch (t1->area) {
case MODBUS_AREA_COIL:
case MODBUS_AREA_INPUT:
if ((ctx->end - ctx->start) / 8 >= modbus_read_max_byte - 1) {
return false;
}
break;
case MODBUS_AREA_INPUT_REGISTER:
case MODBUS_AREA_HOLD_REGISTER: {
uint16_t now_bytes = (ctx->end - ctx->start) * 2;
uint16_t add_now = now_bytes + t2->n_register * 2;
if (add_now >= modbus_read_max_byte) {
return false;
}
break;
}
}