|
|
@@ -9,12 +9,11 @@
|
|
|
|
|
|
#define DEV_CHN_REG (4000)
|
|
|
#define OUT_INFO_REG (4001)
|
|
|
-#define IN_TOTAL_REG (4385)
|
|
|
-#define TEM_REG (4389)
|
|
|
-#define HUMAN_REG (4390)
|
|
|
-#define CHN_SWITCH_REG (4391)
|
|
|
-#define CHN_OPEN_DLA_REG (4455)
|
|
|
-#define CHN_CLOSE_DLA_REG (4519)
|
|
|
+#define IN_TOTAL_REG (4768)
|
|
|
+#define TEM_HUMAN_REG (4777)
|
|
|
+#define CHN_SWITCH_REG (4779)
|
|
|
+#define CHN_OPEN_DLA_REG (4843)
|
|
|
+#define CHN_CLOSE_DLA_REG (4907)
|
|
|
#define CHN_SET_OPEN_DLA_REG (5000)
|
|
|
#define CHN_SET_CLOSE_DLA_REG (5064)
|
|
|
#define CHN_SET_SWITCH_STA_REG (5128)
|
|
|
@@ -32,8 +31,7 @@ enum {
|
|
|
DS_R_DEV_CHN = 0,
|
|
|
DS_R_OUT_INFO,
|
|
|
DS_R_IN_TOTAL,
|
|
|
- DS_R_TEMP,
|
|
|
- DS_R_HUM,
|
|
|
+ DS_R_TEMP_HUM,
|
|
|
DS_R_SWITCH_STA,
|
|
|
DS_R_OPEN_DELAY,
|
|
|
DS_R_CLOSE_DELAY,
|
|
|
@@ -92,8 +90,7 @@ static mmap_modbus_t modbus_single[] = {
|
|
|
[DS_R_DEV_CHN ]{.offset = DEV_CHN_REG },
|
|
|
[DS_R_OUT_INFO ]{.offset = OUT_INFO_REG },
|
|
|
[DS_R_IN_TOTAL ]{.offset = IN_TOTAL_REG },
|
|
|
- [DS_R_TEMP ]{.offset = TEM_REG },
|
|
|
- [DS_R_HUM ]{.offset = HUMAN_REG },
|
|
|
+ [DS_R_TEMP_HUM ]{.offset = TEM_HUMAN_REG },
|
|
|
[DS_R_SWITCH_STA ]{.offset = CHN_SWITCH_REG },
|
|
|
[DS_R_OPEN_DELAY ]{.offset = CHN_OPEN_DLA_REG },
|
|
|
[DS_R_CLOSE_DELAY ]{.offset = CHN_CLOSE_DLA_REG },
|
|
|
@@ -149,8 +146,7 @@ int cascade_slave_init(void)
|
|
|
modbus_single[DS_R_DEV_CHN ].addr = &mgr->single_mmap->dev_chn;
|
|
|
modbus_single[DS_R_OUT_INFO ].addr = &mgr->single_mmap->all_ch;
|
|
|
modbus_single[DS_R_IN_TOTAL ].addr = &mgr->single_mmap->total_valtage;
|
|
|
- modbus_single[DS_R_TEMP ].addr = &mgr->single_mmap->temperature;
|
|
|
- modbus_single[DS_R_HUM ].addr= &mgr->single_mmap->humidity;
|
|
|
+ modbus_single[DS_R_TEMP_HUM ].addr = &mgr->single_mmap->total_temp;
|
|
|
modbus_single[DS_R_SWITCH_STA ].addr = &mgr->single_mmap->chn_status;
|
|
|
modbus_single[DS_R_OPEN_DELAY ].addr = &mgr->single_mmap->open_delay;
|
|
|
modbus_single[DS_R_CLOSE_DELAY ].addr = &mgr->single_mmap->close_delay;
|
|
|
@@ -210,7 +206,7 @@ static void slave_read(slave_handle_t *sh, uint32_t addr,int num,uint32_t reg_ty
|
|
|
{
|
|
|
uint32_t *base_addr = (uint32_t *)modbus_single[reg_type].addr;
|
|
|
uint32_t step = addr - sh->map->start_registers;
|
|
|
- base_addr = base_addr + (addr - modbus_single[reg_type].offset);
|
|
|
+ base_addr = base_addr + (addr - modbus_single[reg_type].offset) / 2;
|
|
|
uint32_t *map_addr = (uint32_t *)&(sh->map->tab_registers[step]);
|
|
|
if(num < 126)
|
|
|
{
|
|
|
@@ -256,23 +252,21 @@ void cascade_slave_read(uint32_t addr,uint32_t lenth)
|
|
|
case 4000:
|
|
|
slave_read(sh,addr,lenth,DS_R_DEV_CHN,TYPE_U16);
|
|
|
break;
|
|
|
- case 4001 ... 4384:
|
|
|
+ case 4001 ... 4768:
|
|
|
slave_read(sh,addr,lenth,DS_R_OUT_INFO,TYPE_U32);
|
|
|
break;
|
|
|
- case 4385 ... 4388:
|
|
|
+ case 4769 ... 4776:
|
|
|
slave_read(sh,addr,lenth,DS_R_IN_TOTAL,TYPE_U32);
|
|
|
break;
|
|
|
- case 4389:
|
|
|
- slave_read(sh,addr,lenth,DS_R_TEMP,TYPE_U16);
|
|
|
- case 4390:
|
|
|
- slave_read(sh,addr,lenth,DS_R_HUM,TYPE_U16);
|
|
|
- case 4391 ... 4454:
|
|
|
+ case 4777 ... 4778:
|
|
|
+ slave_read(sh,addr,lenth,DS_R_TEMP_HUM,TYPE_U16);
|
|
|
+ case 4779 ... 4842:
|
|
|
slave_read(sh,addr,lenth,DS_R_SWITCH_STA,TYPE_U16);
|
|
|
break;
|
|
|
- case 4455 ... 4518:
|
|
|
+ case 4843 ... 4906:
|
|
|
slave_read(sh,addr,lenth,DS_R_OPEN_DELAY,TYPE_U16);
|
|
|
break;
|
|
|
- case 4519 ... 4582:
|
|
|
+ case 4907 ... 4970:
|
|
|
slave_read(sh,addr,lenth,DS_R_CLOSE_DELAY,TYPE_U16);
|
|
|
break;
|
|
|
case 5000 ... 5063:
|