Просмотр исходного кода

Merge branch 'master' of http://jiecheng2024.tpddns.cn:3000/liyuezong/SmartPDCode

chenyj 1 год назад
Родитель
Сommit
708e1e27ea
100 измененных файлов с 892 добавлено и 184158 удалено
  1. 10 9
      485/CMakeLists.txt
  2. 126 1218
      485/src/app.c
  3. 60 45
      485/src/cascade.c
  4. 7 1
      485/src/cascade.h
  5. 159 583
      485/src/cascade_slave.c
  6. 2 85
      485/src/common.c
  7. 26 2
      485/src/common.h
  8. 7 8
      485/src/hlw8110_handle.c
  9. 0 47
      485/src/main.c
  10. 8 8
      485/src/modbus_handle.c
  11. 1 28
      485/src/sensor_handle.c
  12. 48 266
      485/src/sqlite_handle.c
  13. 6 0
      485/src/sqlite_handle.h
  14. 1 0
      485/src/switch_ctrl.c
  15. BIN
      485_img/485_v1.2.3_IMG.zip
  16. BIN
      Qt/Qt_Test/Qt_Test
  17. 3 3
      Qt/Qt_Test/widget.cpp
  18. 1 1
      Qt/Qt_Test/widget.ui
  19. 49 21
      control/PDU-AC-New-6/App/Main/Main.c
  20. 62 2
      control/PDU-AC-New-6/App/Main/Main.h
  21. 68 0
      control/PDU-AC-New-6/App/Modbus/BARE/port/port.c
  22. 181 1
      control/PDU-AC-New-6/App/ReadEeprom/ReadEeprom.c
  23. 1 0
      control/PDU-AC-New-6/App/ReadEeprom/ReadEeprom.h
  24. 41 32
      control/PDU-AC-New-6/Project/GD32KeilPrj.uvguix.Gowon
  25. 14 14
      control/PDU-AC-New-6/Project/GD32KeilPrj.uvoptx
  26. 11 11
      control/PDU-AC-New-6/Project/GD32KeilPrj.uvprojx
  27. 0 3457
      control/PDU-AC-New-6/Project/Listings/23A-1通道-0610-2.map
  28. 0 3458
      control/PDU-AC-New-6/Project/Listings/23A-1通道-0610.map
  29. 0 3465
      control/PDU-AC-New-6/Project/Listings/23A-2通道-0610-2.map
  30. 0 3479
      control/PDU-AC-New-6/Project/Listings/23A-2通道-0610.map
  31. 0 3477
      control/PDU-AC-New-6/Project/Listings/23A-3通道-0610-2.map
  32. 0 3492
      control/PDU-AC-New-6/Project/Listings/23A-3通道-0610.map
  33. 0 3510
      control/PDU-AC-New-6/Project/Listings/23A-4通道-0610-1.map
  34. 0 3482
      control/PDU-AC-New-6/Project/Listings/23A-4通道-0610-2.map
  35. 0 3496
      control/PDU-AC-New-6/Project/Listings/23A-4通道-0610.map
  36. 0 3489
      control/PDU-AC-New-6/Project/Listings/23A-5通道-0610-2.map
  37. 0 3504
      control/PDU-AC-New-6/Project/Listings/23A-5通道-0610.map
  38. 0 3632
      control/PDU-AC-New-6/Project/Listings/23A-5通道-0618-1.map
  39. 0 3489
      control/PDU-AC-New-6/Project/Listings/23A-5通道-0622.map
  40. 0 3499
      control/PDU-AC-New-6/Project/Listings/23A-6通道-0610-2.map
  41. 0 3513
      control/PDU-AC-New-6/Project/Listings/23A-6通道-0610.map
  42. 0 3507
      control/PDU-AC-New-6/Project/Listings/23A-7通道-0610-2.map
  43. 0 3521
      control/PDU-AC-New-6/Project/Listings/23A-7通道-0610.map
  44. 0 3510
      control/PDU-AC-New-6/Project/Listings/23A-8通道-0610-2.map
  45. 0 3523
      control/PDU-AC-New-6/Project/Listings/23A-8通道-0610.map
  46. 0 3489
      control/PDU-AC-New-6/Project/Listings/40A-1通道-0610-2.map
  47. 0 3442
      control/PDU-AC-New-6/Project/Listings/40A-1通道-0610.map
  48. 0 3442
      control/PDU-AC-New-6/Project/Listings/40A-1通道.map
  49. 0 3439
      control/PDU-AC-New-6/Project/Listings/40A-2通道-0610-2.map
  50. 0 3452
      control/PDU-AC-New-6/Project/Listings/40A-2通道-0610.map
  51. 0 3452
      control/PDU-AC-New-6/Project/Listings/40A-2通道.map
  52. 0 3452
      control/PDU-AC-New-6/Project/Listings/40A-3通道-0610-2.map
  53. 0 3466
      control/PDU-AC-New-6/Project/Listings/40A-3通道-0610.map
  54. 0 3452
      control/PDU-AC-New-6/Project/Listings/40A-3通道.map
  55. 0 3458
      control/PDU-AC-New-6/Project/Listings/40A-4通道-0610-1.map
  56. 0 3457
      control/PDU-AC-New-6/Project/Listings/40A-4通道-0610-2.map
  57. 0 3470
      control/PDU-AC-New-6/Project/Listings/40A-4通道-0610.map
  58. 0 3442
      control/PDU-AC-New-6/Project/Listings/40A-4通道.map
  59. 0 3466
      control/PDU-AC-New-6/Project/Listings/40A3通道.map
  60. 0 3509
      control/PDU-AC-New-6/Project/Listings/6通道-2024-8-10-New.map
  61. 0 3470
      control/PDU-AC-New-6/Project/Listings/GD32KeilPrj.map
  62. 0 3434
      control/PDU-AC-New-6/Project/Listings/jeff-23A-5通道-2024-6-23.map
  63. 0 3497
      control/PDU-AC-New-6/Project/Listings/jeff-23A-5通道-2024-6-25.map
  64. 0 3518
      control/PDU-AC-New-6/Project/Listings/jeff-23A-6通道-2024-6-26.map
  65. 0 3491
      control/PDU-AC-New-6/Project/Listings/jeff-23A-6通道-2024-7-27.map
  66. 0 3518
      control/PDU-AC-New-6/Project/Listings/jeff-23A-8通道-2024-6-23.map
  67. 0 3518
      control/PDU-AC-New-6/Project/Listings/jeff-23A-8通道-2024-6-25.map
  68. 0 3518
      control/PDU-AC-New-6/Project/Listings/jeff-23A-8通道-2024-7-3.map
  69. 0 3440
      control/PDU-AC-New-6/Project/Listings/jeff-40A-1通道-2024-6-23.map
  70. 0 3440
      control/PDU-AC-New-6/Project/Listings/jeff-40A-1通道-2024-6-24.map
  71. 0 3432
      control/PDU-AC-New-6/Project/Listings/jeff-40A-1通道-2024-7-9.map
  72. 0 3465
      control/PDU-AC-New-6/Project/Listings/jeff-40A-4通道-2024-6-23.map
  73. 0 3465
      control/PDU-AC-New-6/Project/Listings/jeff-40A-4通道-2024-6-24.map
  74. 0 3465
      control/PDU-AC-New-6/Project/Listings/jeff-40A-4通道-2024-7-9.map
  75. 0 3434
      control/PDU-AC-New-6/Project/Listings/jeff-40A-5通道-2024-6-24.map
  76. 0 942
      control/PDU-AC-New-6/Project/Listings/startup_gd32e230.lst
  77. 0 3499
      control/PDU-AC-New-6/Project/Listings/test_debug.map
  78. BIN
      control/PDU-AC-New-6/Project/Objects/6通道-2024-8-10-New.axf
  79. 0 105
      control/PDU-AC-New-6/Project/Objects/6通道-2024-8-10-New.build_log.htm
  80. 0 1207
      control/PDU-AC-New-6/Project/Objects/6通道-2024-8-10-New.hex
  81. 0 2172
      control/PDU-AC-New-6/Project/Objects/6通道-2024-8-10-New.htm
  82. 0 47
      control/PDU-AC-New-6/Project/Objects/6通道-2024-8-10-New.lnp
  83. 0 16
      control/PDU-AC-New-6/Project/Objects/6通道-2024-8-10-New.sct
  84. 0 2
      control/PDU-AC-New-6/Project/Objects/ExtDll.iex
  85. 0 2122
      control/PDU-AC-New-6/Project/Objects/GD32KeilPrj.htm
  86. 0 47
      control/PDU-AC-New-6/Project/Objects/GD32KeilPrj.lnp
  87. 0 16
      control/PDU-AC-New-6/Project/Objects/GD32KeilPrj.sct
  88. 0 1005
      control/PDU-AC-New-6/Project/Objects/GD32KeilPrj_Target 1.dep
  89. 0 20
      control/PDU-AC-New-6/Project/Objects/at24cxx.d
  90. BIN
      control/PDU-AC-New-6/Project/Objects/at24cxx.o
  91. 0 7
      control/PDU-AC-New-6/Project/Objects/demo.d
  92. BIN
      control/PDU-AC-New-6/Project/Objects/demo.o
  93. 0 17
      control/PDU-AC-New-6/Project/Objects/gd32e230_fmc.d
  94. BIN
      control/PDU-AC-New-6/Project/Objects/gd32e230_fmc.o
  95. 0 17
      control/PDU-AC-New-6/Project/Objects/gd32e230_gpio.d
  96. BIN
      control/PDU-AC-New-6/Project/Objects/gd32e230_gpio.o
  97. 0 19
      control/PDU-AC-New-6/Project/Objects/gd32e230_it.d
  98. BIN
      control/PDU-AC-New-6/Project/Objects/gd32e230_it.o
  99. 0 17
      control/PDU-AC-New-6/Project/Objects/gd32e230_misc.d
  100. 0 0
      control/PDU-AC-New-6/Project/Objects/gd32e230_misc.o

+ 10 - 9
485/CMakeLists.txt

@@ -35,11 +35,11 @@ link_directories(${PROJECT_SOURCE_DIR}/modbus/lib ${PROJECT_SOURCE_DIR}/sqlite/l
 add_definitions("-Wall -g")
 
 set( SRC_LIST
-	${PROJECT_SOURCE_DIR}/letter/src/shell_cmd_list.c
-	${PROJECT_SOURCE_DIR}/letter/src/shell_companion.c
-	${PROJECT_SOURCE_DIR}/letter/src/shell_ext.c
-	${PROJECT_SOURCE_DIR}/letter/src/shell.c
-	${PROJECT_SOURCE_DIR}/letter/os/shell_port.c
+	#${PROJECT_SOURCE_DIR}/letter/src/shell_cmd_list.c
+	#${PROJECT_SOURCE_DIR}/letter/src/shell_companion.c
+	#${PROJECT_SOURCE_DIR}/letter/src/shell_ext.c
+	#${PROJECT_SOURCE_DIR}/letter/src/shell.c
+	#${PROJECT_SOURCE_DIR}/letter/os/shell_port.c
 
 	${PROJECT_SOURCE_DIR}/easylogger/os/port/elog_file_port.c
 	${PROJECT_SOURCE_DIR}/easylogger/os/port/elog_port.c
@@ -50,17 +50,18 @@ set( SRC_LIST
 	${PROJECT_SOURCE_DIR}/easylogger/src/elog_utils.c
 
 
-	${PROJECT_SOURCE_DIR}/src/io.c
-	${PROJECT_SOURCE_DIR}/src/lcd_app.c
-	${PROJECT_SOURCE_DIR}/src/lcd_drv.c
+	#${PROJECT_SOURCE_DIR}/src/io.c
+	#${PROJECT_SOURCE_DIR}/src/lcd_app.c
+	#${PROJECT_SOURCE_DIR}/src/lcd_drv.c
 	${PROJECT_SOURCE_DIR}/src/sensor_handle.c
 	${PROJECT_SOURCE_DIR}/src/common.c
 	${PROJECT_SOURCE_DIR}/src/app.c
 	${PROJECT_SOURCE_DIR}/src/modbus_handle.c
 	${PROJECT_SOURCE_DIR}/src/sqlite_handle.c
-	${PROJECT_SOURCE_DIR}/src/switch_ctrl.c
+	#${PROJECT_SOURCE_DIR}/src/switch_ctrl.c
 	${PROJECT_SOURCE_DIR}/src/main.c
 	${PROJECT_SOURCE_DIR}/src/cascade.c
+	${PROJECT_SOURCE_DIR}/src/cascade_slave.c
 	${PROJECT_SOURCE_DIR}/src/thread.c
 
 

Разница между файлами не показана из-за своего большого размера
+ 126 - 1218
485/src/app.c


+ 60 - 45
485/src/cascade.c

@@ -116,7 +116,7 @@ static int slave_rm(cascade_handle_t *cas, int addr)
     cas->slaves[addr].err  = 0;
     return 0;
 }
-
+#if 0
 static int slave_cnt(cascade_handle_t *cas)
 {
     int i,cnt=0;
@@ -138,6 +138,8 @@ static int slave_find(cascade_handle_t *cas, int addr)
     }
     return 0;
 }
+#endif
+
 static int slave_get_info(cascade_handle_t *cas)
 {
     int cnt=0;
@@ -165,8 +167,9 @@ static int slave_get_info(cascade_handle_t *cas)
             //info->ch[cnt].product_ch_status = tmp->product_ch_status;
             info->ch[cnt].start_delay = tmp->product_ch_start_delay;
             info->ch[cnt].stop_delay  = tmp->product_ch_stop_delay;
-            // tmp->_PowerInfo.tempratue = dm->g_modebus_read.temprature / 1000.0;
-            // tmp->_PowerInfo.humidity = dm->g_modebus_read.humidity / 1000.0;
+            info->ch[cnt].product_ch_status = dm->g_modebus_read.sencor_status;
+            tmp->_PowerInfo.tempratue = dm->g_modebus_read.temprature / 1000.0;
+            tmp->_PowerInfo.humidity = dm->g_modebus_read.humidity / 1000.0;
             info->ch[cnt].chinfo = tmp->_PowerInfo;
             //printf("hellosadasd\n");
             cnt++;
@@ -448,15 +451,10 @@ static int mb_init(cascade_handle_t *cas, char *path, int type, int addr, uint32
     printf("type =%d  addr = %d\n",type,addr);
     r = g_modbus_init(&cas->m, path, baud, type, addr, (type>0)?"master":"slave");
     if(r==0) {
-        //if(type == 0) {
             LOGD("___ set slave addr: %d\n", addr);
             cas->addr = addr;
             g_modbus_set_slave(&cas->m, addr);
-            // cascade_slave_init();
-        // }
-        // else {
-        //     cas->addr = 0;
-        // }
+            cascade_slave_init();
         cas->inited = 1;
     }
     else {
@@ -470,6 +468,7 @@ static int mb_deinit(cascade_handle_t *cas)
     g_modbus_deinit(&cas->m);
     return 0;
 }
+#if 0
 static int _mb_scan(cascade_handle_t *cas, int addr)
 {
     int r;
@@ -481,6 +480,9 @@ static int _mb_scan(cascade_handle_t *cas, int addr)
 
     return r;
 }
+#endif
+
+#if 0
 static int _mb_read(cascade_handle_t *cas, int addr, uint16_t reg, uint16_t *data, int cnt)
 {
     int r;
@@ -496,6 +498,9 @@ static int _mb_read(cascade_handle_t *cas, int addr, uint16_t reg, uint16_t *dat
     }
     return r;
 }
+#endif
+
+#if 0
 static int _mb_write(cascade_handle_t *cas, int addr, uint16_t reg, uint16_t *data, int cnt)
 {
     int r;
@@ -511,6 +516,8 @@ static int _mb_write(cascade_handle_t *cas, int addr, uint16_t reg, uint16_t *da
     }
     return r;
 }
+#endif
+
 static int g_modbus_receive(void* manger, uint8_t *req)
 {
     int ret = 0 ;
@@ -540,6 +547,7 @@ static int _mb_reply(cascade_handle_t *cas, uint8_t *buff, int reqlen, modbus_ma
     return g_modbus_reply(&cas->m, buff, reqlen, map);
 }
 ////////////////////////////////////////////////////////////
+#if 0
 static void print_data(uint8_t *data, int len)
 {
     int i;
@@ -548,6 +556,8 @@ static void print_data(uint8_t *data, int len)
     }
     LOGD("\n");
 }
+#endif
+#if 0
 static void print_cmd(char *s, cmd_data_t *cmd)
 {
 
@@ -559,6 +569,8 @@ static void print_cmd(char *s, cmd_data_t *cmd)
 
     LOGD("\n");
 }
+#endif
+
 
 static void memswap(uint8_t *buf, int len)
 {
@@ -571,6 +583,7 @@ static void memswap(uint8_t *buf, int len)
         buf[i+1] = tmp;
     }
 }
+#if 0
 static void memcpy_swap(uint8_t *dst, uint8_t *src, int len)
 {
     int i;
@@ -580,6 +593,9 @@ static void memcpy_swap(uint8_t *dst, uint8_t *src, int len)
         dst[i+1] = src[i];
     }
 }
+#endif
+
+#if 0
 static int print_hdr(char *s, mb_hdr_t *h)
 {
     LOGD("____%s___ h.addr: %d\n", s, h->addr);
@@ -592,6 +608,7 @@ static int print_hdr(char *s, mb_hdr_t *h)
 
     return 0;
 }
+#endif
 static int mb_hdr(uint8_t *data, int datalen, mb_hdr_t *h)
 {
     h->addr = data[0];
@@ -611,6 +628,7 @@ static int mb_hdr(uint8_t *data, int datalen, mb_hdr_t *h)
 
     return 0;
 }
+#if 0
 static int mb_read(cascade_handle_t *cas, int addr, data_t *d)
 {
     int r=0,finish=0;
@@ -655,6 +673,8 @@ static int mb_read(cascade_handle_t *cas, int addr, data_t *d)
     
     return 0;
 }
+#endif
+#if 0
 static int mb_write(cascade_handle_t *cas, int addr, data_t *d)
 {
     int r=0;
@@ -693,6 +713,8 @@ static int mb_write(cascade_handle_t *cas, int addr, data_t *d)
     
     return 0;
 }
+#endif
+
 #if 0
 static int mb_write_read(cascade_handle_t *cas, int addr, data_t *wd, data_t *rd)
 {
@@ -756,6 +778,7 @@ static int mb_receive(cascade_handle_t *cas)
 
         case CASCADE_REG_WRITE:
         {
+            GlobalDeviceManager *dm=get_dm();
             if(h.data) {
                 cmd = (cmd_data_t*)h.data;
                 if(cmd->cmd>=CASCADE_CMD_GET_INFO) {
@@ -766,29 +789,14 @@ static int mb_receive(cascade_handle_t *cas)
             else {
                 return -1;
             }
-            // printf("reciveed h.addr = %d h->reg = %d cmd->cmd=%d\n",h.addr,h.reg,cmd->cmd);
             switch(cmd->cmd) {
                 case CASCADE_CMD_OPEN:
                 case CASCADE_CMD_CLOSE:
-                {
-                    //cmd_data_t *pcmd=malloc(sizeof(cmd_data_t));
-                    //if(pcmd) {
-                    //    *pcmd = *cmd;
-                    //    thread_start_simp(cmd_thread, pcmd, 4*MB);
-                    //}
-                }
                 break;
 
 
-              case CASCADE_CMD_OPEN_NF:
+                case CASCADE_CMD_OPEN_NF:
                 case CASCADE_CMD_CLOSE_NF:
-                {
-                    //cmd_data_t *pcmd=malloc(sizeof(cmd_data_t));
-                    //if(pcmd) {
-                    //    *pcmd = *cmd;
-                       // thread_start_simp(cmd_NF_thread, pcmd, 4*MB);
-                    //}
-                }
                 break;
 
                 case CASCADE_CMD_SAVE:
@@ -798,31 +806,35 @@ static int mb_receive(cascade_handle_t *cas)
                 }
                 break;
                 case CASCADE_CMD_BREAKER_SAVE_ADD:
+                case CASCADE_CMD_BREAKER_SAVE_DELETE:
+                break;
+                case CASCADE_CMD_REBOOT:
                 {
-                    LOGD("_____ slave CASCADE_CMD_BREAKER_SAVE_ADD\n");
-                    LOGD("%d %d %s %s %s\n",cmd->datas.data.jdh,cmd->datas.data.cjdz,cmd->datas.data.cjfs,cmd->datas.data.com,cmd->datas.data.breaker_chns);
-                    //slave_breaker_add(&cmd->datas.data);
-
+                    
+                    sqlite3_close(dm->db);
+                    system("reboot -f");
                 }
                 break;
-                case CASCADE_CMD_BREAKER_SAVE_UPDATE:
+                case CASCADE_CMD_RECOVERY:
                 {
-                    LOGD("_____ slave CASCADE_CMD_BREAKER_SAVE_UPDATE\n");
-                    LOGD("%d %s %s\n",cmd->datas.data1.switch_id,cmd->datas.data1.switch_name,cmd->datas.data1.breaker_chns);
-                    //slave_breaker_update(&cmd->datas.data1);
+                    sqlite3_close(dm->db);
+                    system("cp -rf /opt/pdu_dat_bak.db /opt/pdu_dat.db; reboot -f");
                 }
                 break;
-                case CASCADE_CMD_BREAKER_SAVE_DELETE:
+                case CASCADE_CMD_SET_ADDR:
+                {
+                    int addr = cmd->datas.saddr;
+                    dev_set_485_saddr(dm->db,addr,dm->_global_device_info);
+                    g_modbus_set_slave(&cas->m,addr);
+                }
+                break;
+                case CASCADE_CMD_CLEAR_CONSUMER:
                 {
-                    LOGD("_____ slave CASCADE_CMD_BREAKER_SAVE_DELETE\n");
-                   // slave_breaker_delete(&cmd->datas.data2);
+                    dm->_global_device_info->consumer = 0.0;
                 }
+                break;
             }
-
-            //clock_t tStart = clock();
             r = _mb_reply(cas, buff, rc, cas->map);
-            // clock_t tStop = clock();
-            // printf("reciveed  start = %ld stop=%ld\n",tStart,tStop);
         }
         break;
 
@@ -888,13 +900,13 @@ static int mb_receive(cascade_handle_t *cas)
             LOGD("___ slave XXXXXXXXXXX\n");
 
             if(h.func==MODBUS_FC_READ_HOLDING_REGISTERS) {
-                //cascade_slave_read(h.reg, h.regcnt);
+                cascade_slave_read(h.reg, h.regcnt);
             }
             else if(h.func==MODBUS_FC_WRITE_SINGLE_REGISTER) {
-                //cascade_slave_write(h.reg, h.regcnt);
+                cascade_slave_write((void*)(&cas->m),h.reg, h.regcnt);
             }
 
-            // r = _mb_reply(cas, buff, rc,cascade_slave_map());
+             r = _mb_reply(cas, buff, rc,cascade_slave_map());
         }
         break;
     }
@@ -902,7 +914,7 @@ static int mb_receive(cascade_handle_t *cas)
     return r;
 }
 /////////////////////////////////////////////////////////////////////////
-#if 1
+#if 0
 static int master_scan(cascade_handle_t *cas)
 {
     int r=0 ;
@@ -1645,6 +1657,7 @@ static void* cascade_thread(void *arg)
     
     pthread_exit(NULL);
 }
+#if 0
 static void* scan_thread(void *arg)
 {
    
@@ -1661,6 +1674,8 @@ static void* scan_thread(void *arg)
 
     pthread_exit(NULL);
 }
+#endif
+
 #if 0
 static void* cmd_thread(void *arg)
 {
@@ -1823,7 +1838,7 @@ int cascade_init(void)
     slave_add(cas, 0);
 
     thread_start(THREAD_ID_CASCADE, cascade_thread, cas, 4*MB, 0);
-    thread_start(THREAD_ID_SCAN, scan_thread, cas, 4*MB, 0);
+    //thread_start(THREAD_ID_SCAN, scan_thread, cas, 4*MB, 0);
         
     return 0;
 }

+ 7 - 1
485/src/cascade.h

@@ -58,6 +58,10 @@ enum {
     CASCADE_CMD_BREAKER_SAVE_DELETE,
     CASCADE_CMD_OPEN_NF,
     CASCADE_CMD_CLOSE_NF,
+    CASCADE_CMD_CLEAR_CONSUMER,
+    CASCADE_CMD_RECOVERY,
+    CASCADE_CMD_REBOOT,
+    CASCADE_CMD_SET_ADDR,
 
     CASCADE_CMD_MAX,
 };
@@ -217,6 +221,7 @@ typedef struct {
         cascade_breaker_add_t     data;
         cascade_breaker_update_t data1;
         cascade_braeker_delete_t data2;
+        int saddr;
     }datas;
 }cmd_data_t;
 
@@ -271,7 +276,8 @@ int cascade_unlock(void);
 int cascade_slave_init(void);
 modbus_mapping_t    *cascade_slave_map();
 void cascade_slave_read(uint32_t addr,uint32_t lenth);
-void cascade_slave_write(uint32_t addr, uint16_t val);
+
+void cascade_slave_write(void* manager,uint32_t addr,uint16_t val);
 
 #endif
 

+ 159 - 583
485/src/cascade_slave.c

@@ -4,6 +4,7 @@
 #include "switch_ctrl.h"
 #include "cascade.h"
 #include "sqlite_handle.h"
+#include "modbus_handle.h"
 
 
 
@@ -21,115 +22,135 @@
 
 
 
-enum{
-    TYPE_U16,
-    TYPE_U32
-};
 
 
-enum {
-    DS_R_DEV_CHN = 0,
-    DS_R_OUT_INFO,
-    DS_R_IN_TOTAL,
-    DS_R_TEMP_HUM,
-    DS_R_SWITCH_STA,
-    DS_R_OPEN_DELAY,
-    DS_R_CLOSE_DELAY,
-    DS_W_OPEN_DELAY,
-    DS_W_CLOSE_DELAY,
-    DS_W_CHN_SWITCH_STA,
-    DS_W_ALL_CHN_STA
-};
+#define For85_DEV_CHN_REG            (4000)
+#define For85_ALL_OVER               (4100)
+#define For85_SET_ADDR               (4101)
+#define For85_SET_RECOVERY           (4102)
+#define For85_SET_REBOOT             (4103)
+#define For85_CONESUMER_CLEAR        (4104)
 
 
-#define TREE_DEV_CHN_REG                (6000)  
-#define TREE_INPUT_A_REG                (6001)     
-#define TREE_INPUT_B_REG                (6009)  
-#define TREE_INPUT_C_REG                (6017)       
-#define TREE_CHN_TOTAL_REG              (6025)
-#define TREE_CHN_PH_REG                 (6665)
-#define TREE_TEMP_HUM_REG               (8585)
-#define TREE_CHN_SWITCH_STA_REG         (8587)
-#define TREE_CHN_OPEN_DLA_REG           (8651)
-#define TREE_CHN_CLOSE_DLA_REG          (8715)
-#define TREE_CHN_SET_OPEN_DLA_REG       (9000)
-#define TREE_CHN_SET_CLOSE_DLA_REG      (9064)
-#define TREE_CHN_SET_SWITCH_STA_REG     (9128)
-#define TREE_ALL_SET_SWITCH_REG         (9192)
-
-enum {
-    TREE_R_DEV_CHN,
-    TREE_R_INPUT_ALL_A,
-    TREE_R_INPUT_ALL_B,
-    TREE_R_INPUT_ALL_C,
-    TREE_R_CHN_TOTAL,
-    TREE_R_CHN_PH_INFO,
-    TREE_R_TEMP_HUM,
-    TREE_R_SWITCH_STA,
-    TREE_R_OPEN_DELAY,
-    TREE_R_CLOSE_DELAY,
-    TREE_W_OPEN_DELAY,
-    TREE_W_CLOSE_DELAY,
-    TREE_W_CHN_SWITCH_STA,
-    TREE_W_ALL_CHN_STA
+enum{
+    D_For85_DEV_CHN_REG=0,
 };
 
 
-#define DEV_CHN_REG                     (4000)
-#define SWITCH_STATUE_REG               (4001)
-#define POWER_INFO_REG                  (4002)
-#define TEPM_HUM_REG                    (4016)
-#define SENCOR_STATUS                   (4018)
+static mmap_modbus_t For85[] = {
+    [D_For85_DEV_CHN_REG       ]{.offset = For85_DEV_CHN_REG        },
+};
+
 
 enum{
-    IP_DEV_CHN,
-    IP_SWITCH_STATUE,
-    IP_POWER_INFO,
-    IP_TEMP_HUM,
-    IP_SENCOR_STATUS,
+    TYPE_U16,
+    TYPE_U32
 };
 
 
+// enum {
+//     DS_R_DEV_CHN = 0,
+//     DS_R_OUT_INFO,
+//     DS_R_IN_TOTAL,
+//     DS_R_TEMP_HUM,
+//     DS_R_SWITCH_STA,
+//     DS_R_OPEN_DELAY,
+//     DS_R_CLOSE_DELAY,
+//     DS_W_OPEN_DELAY,
+//     DS_W_CLOSE_DELAY,
+//     DS_W_CHN_SWITCH_STA,
+//     DS_W_ALL_CHN_STA
+// };
+
+
+// #define TREE_DEV_CHN_REG                (6000)  
+// #define TREE_INPUT_A_REG                (6001)     
+// #define TREE_INPUT_B_REG                (6009)  
+// #define TREE_INPUT_C_REG                (6017)       
+// #define TREE_CHN_TOTAL_REG              (6025)
+// #define TREE_CHN_PH_REG                 (6665)
+// #define TREE_TEMP_HUM_REG               (8585)
+// #define TREE_CHN_SWITCH_STA_REG         (8587)
+// #define TREE_CHN_OPEN_DLA_REG           (8651)
+// #define TREE_CHN_CLOSE_DLA_REG          (8715)
+// #define TREE_CHN_SET_OPEN_DLA_REG       (9000)
+// #define TREE_CHN_SET_CLOSE_DLA_REG      (9064)
+// #define TREE_CHN_SET_SWITCH_STA_REG     (9128)
+// #define TREE_ALL_SET_SWITCH_REG         (9192)
+
+// enum {
+//     TREE_R_DEV_CHN,
+//     TREE_R_INPUT_ALL_A,
+//     TREE_R_INPUT_ALL_B,
+//     TREE_R_INPUT_ALL_C,
+//     TREE_R_CHN_TOTAL,
+//     TREE_R_CHN_PH_INFO,
+//     TREE_R_TEMP_HUM,
+//     TREE_R_SWITCH_STA,
+//     TREE_R_OPEN_DELAY,
+//     TREE_R_CLOSE_DELAY,
+//     TREE_W_OPEN_DELAY,
+//     TREE_W_CLOSE_DELAY,
+//     TREE_W_CHN_SWITCH_STA,
+//     TREE_W_ALL_CHN_STA
+// };
+
+
+// #define DEV_CHN_REG                     (4000)
+// #define SWITCH_STATUE_REG               (4001)
+// #define POWER_INFO_REG                  (4002)
+// #define TEPM_HUM_REG                    (4016)
+// #define SENCOR_STATUS                   (4018)
+
+// enum{
+//     IP_DEV_CHN,
+//     IP_SWITCH_STATUE,
+//     IP_POWER_INFO,
+//     IP_TEMP_HUM,
+//     IP_SENCOR_STATUS,
+// };
+
+
 
 static inline GlobalDeviceManager* get_dm(void)
 {
     return &__globalDeviceManage;
 }
-static inline GlobalDeviceManager* get_dm2(void)
-{
-    return &__globalDeviceManage2;
-}
-
-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_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       },
-    [DS_W_OPEN_DELAY    ]{.offset = CHN_SET_OPEN_DLA_REG    },
-    [DS_W_CLOSE_DELAY   ]{.offset = CHN_SET_CLOSE_DLA_REG   },
-    [DS_W_CHN_SWITCH_STA]{.offset = CHN_SET_SWITCH_STA_REG  },
-    [DS_W_ALL_CHN_STA   ]{.offset = ALL_SET_SWITCH_REG      },
-};
-
-static mmap_modbus_t modbus_three[] = {
-    [TREE_R_DEV_CHN         ]{.offset = TREE_DEV_CHN_REG},
-    [TREE_R_INPUT_ALL_A     ]{.offset = TREE_INPUT_A_REG       },
-    [TREE_R_INPUT_ALL_B     ]{.offset = TREE_INPUT_B_REG       },
-    [TREE_R_INPUT_ALL_C     ]{.offset = TREE_INPUT_C_REG       },
-    [TREE_R_CHN_TOTAL       ]{.offset = TREE_CHN_TOTAL_REG     },
-    [TREE_R_CHN_PH_INFO     ]{.offset = TREE_CHN_PH_REG        },
-    [TREE_R_TEMP_HUM        ]{.offset = TREE_TEMP_HUM_REG      },
-    [TREE_R_SWITCH_STA      ]{.offset = TREE_CHN_SWITCH_STA_REG},
-    [TREE_R_OPEN_DELAY      ]{.offset = TREE_CHN_OPEN_DLA_REG  },
-    [TREE_R_CLOSE_DELAY     ]{.offset = TREE_CHN_CLOSE_DLA_REG },
-    [TREE_W_OPEN_DELAY      ]{.offset = TREE_CHN_SET_OPEN_DLA_REG},
-    [TREE_W_CLOSE_DELAY     ]{.offset = TREE_CHN_SET_CLOSE_DLA_REG},
-    [TREE_W_CHN_SWITCH_STA  ]{.offset = TREE_CHN_SET_SWITCH_STA_REG},
-    [TREE_W_ALL_CHN_STA     ]{.offset = TREE_ALL_SET_SWITCH_REG }
-};
+// static inline GlobalDeviceManager* get_dm2(void)
+// {
+//     return &__globalDeviceManage2;
+// }
+
+// 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_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       },
+//     [DS_W_OPEN_DELAY    ]{.offset = CHN_SET_OPEN_DLA_REG    },
+//     [DS_W_CLOSE_DELAY   ]{.offset = CHN_SET_CLOSE_DLA_REG   },
+//     [DS_W_CHN_SWITCH_STA]{.offset = CHN_SET_SWITCH_STA_REG  },
+//     [DS_W_ALL_CHN_STA   ]{.offset = ALL_SET_SWITCH_REG      },
+// };
+
+// static mmap_modbus_t modbus_three[] = {
+//     [TREE_R_DEV_CHN         ]{.offset = TREE_DEV_CHN_REG},
+//     [TREE_R_INPUT_ALL_A     ]{.offset = TREE_INPUT_A_REG       },
+//     [TREE_R_INPUT_ALL_B     ]{.offset = TREE_INPUT_B_REG       },
+//     [TREE_R_INPUT_ALL_C     ]{.offset = TREE_INPUT_C_REG       },
+//     [TREE_R_CHN_TOTAL       ]{.offset = TREE_CHN_TOTAL_REG     },
+//     [TREE_R_CHN_PH_INFO     ]{.offset = TREE_CHN_PH_REG        },
+//     [TREE_R_TEMP_HUM        ]{.offset = TREE_TEMP_HUM_REG      },
+//     [TREE_R_SWITCH_STA      ]{.offset = TREE_CHN_SWITCH_STA_REG},
+//     [TREE_R_OPEN_DELAY      ]{.offset = TREE_CHN_OPEN_DLA_REG  },
+//     [TREE_R_CLOSE_DELAY     ]{.offset = TREE_CHN_CLOSE_DLA_REG },
+//     [TREE_W_OPEN_DELAY      ]{.offset = TREE_CHN_SET_OPEN_DLA_REG},
+//     [TREE_W_CLOSE_DELAY     ]{.offset = TREE_CHN_SET_CLOSE_DLA_REG},
+//     [TREE_W_CHN_SWITCH_STA  ]{.offset = TREE_CHN_SET_SWITCH_STA_REG},
+//     [TREE_W_ALL_CHN_STA     ]{.offset = TREE_ALL_SET_SWITCH_REG }
+// };
 
 typedef struct { 
     modbus_mapping_t    *map;
@@ -142,522 +163,77 @@ modbus_mapping_t    *cascade_slave_map()
 {
     return slHandle.map;
 }
-#if 0
+
+
 int cascade_slave_init(void)
 {
     slave_handle_t *sh=&slHandle;
     GlobalDeviceManager* mgr=get_dm();
-
-    if(mgr->_globalDevInfo.product_pwr_type == SmartPDU_AC ||
-        mgr->_globalDevInfo.product_pwr_type == SmartPDU_DC)       // single AC
-    {
-        if(sh->map)
-        {
-            free(sh->map);
-            sh->map = NULL;
-        }
-        sh->map = modbus_mapping_new_start_address(0,0,0,0,DEV_CHN_REG,5000,0,0);     //3000 ge
-        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_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;
-        modbus_single[DS_W_OPEN_DELAY       ].addr = &mgr->single_mmap->set_chn_open_delay;
-        modbus_single[DS_W_CLOSE_DELAY      ].addr = &mgr->single_mmap->set_chn_close_delay;
-        modbus_single[DS_W_CHN_SWITCH_STA   ].addr = &mgr->single_mmap->set_chn_switch_status;
-        modbus_single[DS_W_ALL_CHN_STA      ].addr = &mgr->single_mmap->set_chn_all_switch_status;
-        printf("single dc address init 4000\n");
-    }else
+    if(sh->map)
     {
-        if(sh->map)
-        {
-            free(sh->map);
-            sh->map = NULL;
-        }
-        sh->map =  modbus_mapping_new_start_address(0,0,0,0,TREE_DEV_CHN_REG,7000,0,0);
-        modbus_three[TREE_R_DEV_CHN         ].addr = &mgr->triphasic_mmap->dev_chn;
-        modbus_three[TREE_R_INPUT_ALL_A     ].addr = &mgr->triphasic_mmap->i_total.pw_i_total[0];
-        modbus_three[TREE_R_INPUT_ALL_B     ].addr = &mgr->triphasic_mmap->i_total.pw_i_total[1];
-        modbus_three[TREE_R_INPUT_ALL_C     ].addr = &mgr->triphasic_mmap->i_total.pw_i_total[2];
-        modbus_three[TREE_R_CHN_TOTAL       ].addr = &mgr->triphasic_mmap->chn_info;
-        modbus_three[TREE_R_CHN_PH_INFO     ].addr = &mgr->triphasic_mmap->pw_o_chn;
-        modbus_three[TREE_R_TEMP_HUM        ].addr = &mgr->triphasic_mmap->temperature;
-        modbus_three[TREE_R_SWITCH_STA      ].addr = &mgr->triphasic_mmap->chn_status;
-        modbus_three[TREE_R_OPEN_DELAY      ].addr = &mgr->triphasic_mmap->open_delay;
-        modbus_three[TREE_R_CLOSE_DELAY     ].addr = &mgr->triphasic_mmap->close_delay;
-        modbus_three[TREE_W_OPEN_DELAY      ].addr = &mgr->triphasic_mmap->set_chn_open_delay;
-        modbus_three[TREE_W_CLOSE_DELAY     ].addr = &mgr->triphasic_mmap->set_chn_close_delay;
-        modbus_three[TREE_W_CHN_SWITCH_STA  ].addr = &mgr->triphasic_mmap->set_chn_switch_status;
-        modbus_three[TREE_W_ALL_CHN_STA     ].addr = &mgr->triphasic_mmap->set_chn_all_switch_status;
-        printf("triphasic address init 6000\n");
-        //return -1;
+        free(sh->map);
+        sh->map = 0;
     }
+    sh->map = modbus_mapping_new_start_address(0,0,0,0,For85_DEV_CHN_REG,200,0,0);     //3000 ge
+    For85[D_For85_DEV_CHN_REG].addr = &mgr->for85_data.addr;
     return 0;
 }
 
-
-static void slave_read(slave_handle_t *sh, uint32_t addr,int num,uint32_t reg_type,uint32_t type)
-{
-    GlobalDeviceManager* mgr=get_dm();
-  
-    if(mgr->_globalDevInfo.product_pwr_type == SmartPDU_AC || 
-            mgr->_globalDevInfo.product_pwr_type == SmartPDU_DC){    
-        if(addr >= DEV_CHN_REG && addr <= ALL_SET_SWITCH_REG)
-        {
-            if(type == TYPE_U16)
-            {
-                uint16_t *base_addr = (uint16_t *)modbus_single[reg_type].addr;
-                uint32_t step = addr - sh->map->start_registers;
-                base_addr = base_addr + (addr - modbus_single[reg_type].offset);
-                uint16_t *map_addr = (uint16_t *)&(sh->map->tab_registers[step]);
-                if(num < 126)
-                {
-                    memcpy(map_addr, base_addr,2*num);
-                }
-            }else
-            {
-                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) / 2;
-                uint32_t *map_addr = (uint32_t *)&(sh->map->tab_registers[step]);
-                if(num < 126)
-                {
-                    memcpy(map_addr, base_addr,2*num);
-                }
-            }
-        }
-    }else
-    {
-        if(addr >= TREE_DEV_CHN_REG && addr <= TREE_ALL_SET_SWITCH_REG) {
-            if(type == TYPE_U16)
-            {
-                uint16_t *base_addr = (uint16_t *)modbus_three[reg_type].addr;
-                uint32_t step = addr - sh->map->start_registers;
-                base_addr = base_addr + (addr - modbus_three[reg_type].offset);
-                uint16_t *map_addr = (uint16_t *)&(sh->map->tab_registers[step]);
-                if(num < 126)
-                {
-                    memcpy(map_addr, base_addr,2*num);
-                }
-            }else
-            {
-                uint32_t *base_addr = (uint32_t *)modbus_three[reg_type].addr;
-                uint32_t step = addr - sh->map->start_registers;
-                base_addr = base_addr + (addr - modbus_three[reg_type].offset) / 2;
-                uint32_t *map_addr = (uint32_t *)&(sh->map->tab_registers[step]);
-                if(num < 126)
-                {
-                    memcpy(map_addr, base_addr,2*num);
-                }
-            }
-        }
-    }
-}
-
-
 void cascade_slave_read(uint32_t addr,uint32_t lenth)
 {
     slave_handle_t *sh=&slHandle;
 
     switch (addr)
     {
-        case 4000:
-            slave_read(sh,addr,lenth,DS_R_DEV_CHN,TYPE_U16);
-        break;
-        case 4001 ... 4768:
-            slave_read(sh,addr,lenth,DS_R_OUT_INFO,TYPE_U32);
-        break;
-        case 4769 ... 4776:
-            slave_read(sh,addr,lenth,DS_R_IN_TOTAL,TYPE_U32);
-        break;
-        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 4843 ... 4906:
-            slave_read(sh,addr,lenth,DS_R_OPEN_DELAY,TYPE_U16);
-        break;
-        case 4907 ... 4970:
-            slave_read(sh,addr,lenth,DS_R_CLOSE_DELAY,TYPE_U16);
-        break;
-        case 5000 ... 5063:
-            slave_read(sh,addr,lenth,DS_W_OPEN_DELAY,TYPE_U16);
-        break;
-        case 5064 ... 5127:
-            slave_read(sh,addr,lenth,DS_W_OPEN_DELAY,TYPE_U16);
-        break;
-        case 5128 ... 5191:
-            slave_read(sh,addr,lenth,DS_W_CHN_SWITCH_STA,TYPE_U16);
-        break;
-        case 5192 :
-            slave_read(sh,addr,lenth,DS_W_ALL_CHN_STA,TYPE_U16);
-        break;
-
-        // triple
-        case 6000:
-            slave_read(sh,addr,lenth,TREE_R_DEV_CHN,TYPE_U16);
-        break;
-        case 6001 ... 6008:
-            slave_read(sh,addr,lenth,TREE_R_INPUT_ALL_A,TYPE_U32);
-        break;
-        case 6009 ... 6016:
-            slave_read(sh,addr,lenth,TREE_R_INPUT_ALL_B,TYPE_U32);
-        break;
-        case 6017 ... 6024:
-            slave_read(sh,addr,lenth,TREE_R_INPUT_ALL_C,TYPE_U32);
-        break;
-        case 6025 ... 6664:
-            slave_read(sh,addr,lenth,TREE_R_CHN_TOTAL,TYPE_U32);
-        break;
-        case 6665 ... 8584:
-            slave_read(sh,addr,lenth,TREE_R_CHN_PH_INFO,TYPE_U32);
-        break;
-        case 8585 ... 8586:
-            slave_read(sh,addr,lenth,TREE_R_TEMP_HUM,TYPE_U16);
-        break;
-        case 8587 ... 8650:
-            slave_read(sh,addr,lenth,TREE_R_SWITCH_STA,TYPE_U16);
-        break;
-        case 8651 ... 8714:
-            slave_read(sh,addr,lenth,TREE_R_OPEN_DELAY,TYPE_U16);
-        break;
-        case 8715 ... 8778:
-            slave_read(sh,addr,lenth,TREE_R_CLOSE_DELAY,TYPE_U16);
-        break;
-
-        default:
+        case For85_DEV_CHN_REG ... For85_ALL_OVER:
+        {
+            uint16_t *base_addr = (uint16_t *)For85[D_For85_DEV_CHN_REG].addr;
+            uint32_t step = addr - sh->map->start_registers;
+            base_addr = base_addr + (addr - For85[D_For85_DEV_CHN_REG].offset);
+            uint16_t *map_addr = (uint16_t *)&(sh->map->tab_registers[step]);
+            if(lenth < 126)
+            {
+                memcpy(map_addr, base_addr,2*lenth);
+            }
+        }
         break;
     }
 }
 
-
-void cascade_slave_write(uint32_t addr, uint16_t val)
+void cascade_slave_write(void* manager,uint32_t addr,uint16_t val)
 {
-    slave_handle_t *sh=&slHandle;
     GlobalDeviceManager* mgr=get_dm();
-    uint16_t buff[128] = {0};
- 
-    if(mgr->_globalDevInfo.product_pwr_type == SmartPDU_AC 
-            || mgr->_globalDevInfo.product_pwr_type == SmartPDU_DC)   
+    switch(addr)
     {
-        switch(addr)
+        case For85_SET_ADDR:
         {
-            case 5000 ... 5063:
-            {
-                int start_chn = addr - modbus_single[DS_W_OPEN_DELAY].offset;
-                GlobalPowerManger* _globalPowerMangerTemp = NULL ;
-                list_for_each_entry(_globalPowerMangerTemp, &__globalDeviceManage._globalPowerManger.list, list)
-                {
-                    if(_globalPowerMangerTemp==NULL)
-                            break;
-                        if((start_chn+1) == _globalPowerMangerTemp->product_ch_id)
-                        {
-                            if(mgr->_globalDevInfo.product_pwr_type == SmartPDU_AC){
-                                _globalPowerMangerTemp->product_ch_start_delay=val;
-                                g_switch_set_ac_single_s_start_time_delay(&__globalDeviceManage._globalRelaySampManger,_globalPowerMangerTemp->product_saddr,
-                                                _globalPowerMangerTemp->product_ch_addr,val);
-                            }else
-                            {
-                                _globalPowerMangerTemp->product_ch_start_delay=val;
-                                g_switch_set_dcpdu_start_time_delay(&__globalDeviceManage._globalRelaySampManger,_globalPowerMangerTemp->product_saddr,
-                                        _globalPowerMangerTemp->product_ch_addr,val/1000);
-                            }
-                            if (dev_update_power_manage_genera_info(__globalDeviceManage.db, _globalPowerMangerTemp->product_id, _globalPowerMangerTemp->product_ch_id, _globalPowerMangerTemp) != 0)
-                            {
-                                log_e("update pwr general data err.");
-                            }
-                            printf("val = %d start_chn = %d\n",val,start_chn);
-                          //  *(uint16_t *)((uint16_t*)(modbus_single[6].addr) + start_chn) = val;
-                            break;
-                        }                    
-                }
-            }
-            break;
-            case 5064 ... 5127:
-            {
-                 int start_chn = addr - modbus_single[DS_W_CLOSE_DELAY].offset;
-                GlobalPowerManger* _globalPowerMangerTemp = NULL ;
-                list_for_each_entry(_globalPowerMangerTemp, &__globalDeviceManage._globalPowerManger.list, list)
-                {
-                    if(_globalPowerMangerTemp==NULL)
-                            break;
-                        if((start_chn+1) == _globalPowerMangerTemp->product_ch_id)
-                        {
-                            if(mgr->_globalDevInfo.product_pwr_type == SmartPDU_AC){
-                                  _globalPowerMangerTemp->product_ch_stop_delay=val;
-                                g_switch_set_ac_single_s_stop_time_delay(&__globalDeviceManage._globalRelaySampManger,_globalPowerMangerTemp->product_saddr,
-                                                _globalPowerMangerTemp->product_ch_addr,val);
-                            }else
-                            {
-                                  _globalPowerMangerTemp->product_ch_stop_delay=val;
-                                g_switch_set_dcpdu_stop_time_delay(&__globalDeviceManage._globalRelaySampManger,_globalPowerMangerTemp->product_saddr,
-                                        _globalPowerMangerTemp->product_ch_addr,val/1000);
-                            }
-                            if (dev_update_power_manage_genera_info(__globalDeviceManage.db, _globalPowerMangerTemp->product_id, _globalPowerMangerTemp->product_ch_id, _globalPowerMangerTemp) != 0)
-                            {
-                                log_e("update pwr general data err.");
-                            }
-                            printf("val = %d",val);
-                            //*(uint16_t *)((uint16_t*)(modbus_single[7].addr) + start_chn) = val;
-                            //printf("modbus_single[7].addr = %d ",modbus_single[7].addr);
-                            break;
-                        }                    
-                }
-            }
-            break;
-            case 5128 ... 5191:
-            {
-                int start_chn = addr - modbus_single[DS_W_CHN_SWITCH_STA].offset;
-                GlobalPowerManger* _globalPowerMangerTemp = NULL ;
-                if (val == 0 || val == 1)
-                {
-                    list_for_each_entry(_globalPowerMangerTemp, &__globalDeviceManage._globalPowerManger.list, list)
-                    {
-                        if (_globalPowerMangerTemp == NULL)
-                            break;
-                        if ((start_chn + 1) == _globalPowerMangerTemp->product_ch_id)
-                        {
-                            int ret = g_switch_set_all_chn_ctrl(&__globalDeviceManage._globalRelaySampManger, _globalPowerMangerTemp,
-                                                                _globalPowerMangerTemp->product_saddr,
-                                                                _globalPowerMangerTemp->product_ch_addr,
-                                                                val, false);
-                            //  printf("ret = %d 0x%x\n",ret,val);
-                            *(uint16_t *)((uint16_t *)(modbus_single[DS_W_CHN_SWITCH_STA].addr) + start_chn) = val;
-                            break;
-                        }
-                    }
-                }
-            }
-            break;
-            case 5192:
-            {
-                if (val == 0 || val == 1)
-                {
-                    GlobalPowerManger *_globalPowerMangerTemp = NULL;
-                    list_for_each_entry(_globalPowerMangerTemp, &__globalDeviceManage._globalPowerManger.list, list)
-                    {
-                        if (_globalPowerMangerTemp == NULL)
-                            break;
-                        int rec = g_switch_set_all_ctrl(&__globalDeviceManage._globalRelaySampManger, _globalPowerMangerTemp->product_ch_type, _globalPowerMangerTemp->product_saddr, val);
-                        // printf("rec = %d 0x%x\n",rec,val);
-                    }
-                    *(uint16_t *)(modbus_single[DS_W_ALL_CHN_STA].addr) = val;
-                }
-            }
-            break;
-            
-            default:
-            break;
+            dev_set_485_saddr(mgr->db,val,mgr->_global_device_info);
+            Modbus_Manger *modbus_manger = (Modbus_Manger *)(manager);
+            pthread_mutex_lock(&modbus_manger->mutex);
+            modbus_set_slave(modbus_manger->mb, addr);
+            pthread_mutex_unlock(&modbus_manger->mutex);
         }
-    }else{
-        switch(addr)
+        break;
+        case For85_SET_RECOVERY:
         {
-            case 9000 ... 9063:
-            {
-                int start_chn = addr - modbus_three[TREE_W_OPEN_DELAY].offset;
-                GlobalPowerManger* _globalPowerMangerTemp = NULL ;
-                list_for_each_entry(_globalPowerMangerTemp, &__globalDeviceManage._globalPowerManger.list, list){
-                    if(_globalPowerMangerTemp==NULL)
-                            break;
-                    if((start_chn+1) == _globalPowerMangerTemp->product_ch_id)
-                    {
-                        int ret = 0;
-
-                        _globalPowerMangerTemp->product_ch_start_delay = val;
-                        if (__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_Tree
-                        ||__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_One
-                        ||__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_One_B
-                        )
-                        {
-                            printf("hwllo every one stop time !!!!\n");
-                            ret = g_switch_set_t_ac_start_time_delay(&__globalDeviceManage._globalRelaySampManger, 
-                                                        _globalPowerMangerTemp->product_saddr, (_globalPowerMangerTemp->product_ch_addr - 1) * 3, val / 1000);
-                            ret = g_switch_set_t_ac_start_time_delay(&__globalDeviceManage._globalRelaySampManger, 
-                                                        _globalPowerMangerTemp->product_saddr, (_globalPowerMangerTemp->product_ch_addr - 1) * 3 + 1, val / 1000);
-                            ret = g_switch_set_t_ac_start_time_delay(&__globalDeviceManage._globalRelaySampManger, 
-                                                        _globalPowerMangerTemp->product_saddr, (_globalPowerMangerTemp->product_ch_addr - 1) * 3 + 2, val / 1000);
-                        }
-                        else
-                        {
-                            ret = g_switch_set_t_ac_start_time_delay(&__globalDeviceManage._globalRelaySampManger, 
-                                                        _globalPowerMangerTemp->product_saddr, (_globalPowerMangerTemp->product_ch_addr - 1) * 3, val / 1000);
-                        }
-                        if (dev_update_power_manage_genera_info(__globalDeviceManage.db, _globalPowerMangerTemp->product_id, _globalPowerMangerTemp->product_ch_id, _globalPowerMangerTemp) != 0)
-                        {
-                            log_e("update pwr general data err.");
-                        }
-                        break;
-                    }
-                }
-            }
-            break;
-            case 9064 ... 9127:
-            {
-                int start_chn = addr - modbus_three[TREE_W_CLOSE_DELAY].offset;
-                GlobalPowerManger* _globalPowerMangerTemp = NULL ;
-                list_for_each_entry(_globalPowerMangerTemp, &__globalDeviceManage._globalPowerManger.list, list)
-                {
-                    if(_globalPowerMangerTemp==NULL)
-                            break;
-                    if((start_chn+1) == _globalPowerMangerTemp->product_ch_id)
-                    {
-                        int ret = 0;
-
-                        _globalPowerMangerTemp->product_ch_stop_delay = val;
-                        if (__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_Tree
-                        ||__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_One
-                        ||__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_One_B)
-                        {
-                            ret = g_switch_set_t_ac_stop_time_delay(&__globalDeviceManage._globalRelaySampManger, 
-                                                        _globalPowerMangerTemp->product_saddr, (_globalPowerMangerTemp->product_ch_addr - 1) * 3, val / 1000);
-                            ret = g_switch_set_t_ac_stop_time_delay(&__globalDeviceManage._globalRelaySampManger, 
-                                                        _globalPowerMangerTemp->product_saddr, (_globalPowerMangerTemp->product_ch_addr - 1) * 3 + 1, val / 1000);
-                            ret = g_switch_set_t_ac_stop_time_delay(&__globalDeviceManage._globalRelaySampManger, 
-                                                        _globalPowerMangerTemp->product_saddr, (_globalPowerMangerTemp->product_ch_addr - 1) * 3 + 2, val / 1000);
-                        }
-                        else
-                        {
-                            ret = g_switch_set_t_ac_stop_time_delay(&__globalDeviceManage._globalRelaySampManger, 
-                                                        _globalPowerMangerTemp->product_saddr, (_globalPowerMangerTemp->product_ch_addr - 1) * 3, val / 1000);
-                        }
-                        if (dev_update_power_manage_genera_info(__globalDeviceManage.db, _globalPowerMangerTemp->product_id, _globalPowerMangerTemp->product_ch_id, _globalPowerMangerTemp) != 0)
-                        {
-                            log_e("update pwr general data err.");
-                        }
-                        break;
-                    }
-                }
-            }
-            break;
-            case 9128 ... 9191:
-            {
-                int start_chn = addr - modbus_three[TREE_W_CHN_SWITCH_STA].offset;
-                GlobalPowerManger* _globalPowerMangerTemp = NULL ;
-                list_for_each_entry(_globalPowerMangerTemp, &__globalDeviceManage._globalPowerManger.list, list){
-                    if(_globalPowerMangerTemp==NULL)
-                            break;
-                    if((start_chn+1) == _globalPowerMangerTemp->product_ch_id)
-                    {
-                        int t_ac_CtrlType=0;
-                        int nRet = 0;
-                        
-                        _globalPowerMangerTemp->product_ch_status = val;
-
-                        GlobalTreeACManager *_globalTACManager = NULL;
-                        list_for_each_entry(_globalTACManager, &_globalPowerMangerTemp->list_Tree_AC, list_Tree_AC)
-                        {
-                            t_ac_CtrlType=_globalTACManager->product_ph_outputType;
-                        }
-                        if (t_ac_CtrlType == 2&&(__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_Tree
-                        ||__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_One
-                        ||__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_One_B))
-                        {
-                            if(_globalPowerMangerTemp->product_ch_type == AC_SINGLE_S_TYPE || _globalPowerMangerTemp->product_ch_type == AC_SINGLE_B_TYPE)
-                            {
-                                if (val == 1)
-                                {
-                                    if (_globalPowerMangerTemp->global_over_manager->product_vol_upper_enable == 1)
-                                        val |= ENABLE_TAC_V_UP;
-                                    if (_globalPowerMangerTemp->global_over_manager->product_vol_lower_enable == 1)
-                                        val |= ENABLE_TAC_V_DOWN;
-                                    if (_globalPowerMangerTemp->global_over_manager->product_cur_upper_enable == 1)
-                                        val |= ENABLE_TAC_A_UP;
-                                    if (_globalPowerMangerTemp->global_over_manager->product_pwr_upper_enable == 1)
-                                        val |= ENABLE_TAC_W_UP;
-                                    if (_globalPowerMangerTemp->global_over_manager->product_pwrcon_upper_enable == 1)
-                                        val |= ENABLE_TAC_P_UP;
-                                }
-                                g_switch_set_ac_single_s_chn_ctrl(&__globalDeviceManage._globalRelaySampManger,  _globalPowerMangerTemp->product_saddr, 
-                                                (_globalPowerMangerTemp->product_ch_addr- 1), val);
-                                break;
-                            }
-                            unsigned short phsts=0;
-                            list_for_each_entry(_globalTACManager, &_globalPowerMangerTemp->list_Tree_AC, list_Tree_AC)
-                            {
-                                if (val == 1 && _globalTACManager->product_ph_outputStatus==1)
-                                {
-                                    phsts=1;
-                                    if (_globalTACManager->global_over_manager->product_vol_upper_enable == 1)
-                                        phsts |= ENABLE_TAC_V_UP;
-                                    if (_globalTACManager->global_over_manager->product_vol_lower_enable == 1)
-                                        phsts |= ENABLE_TAC_V_DOWN;
-                                    if (_globalTACManager->global_over_manager->product_cur_upper_enable == 1)
-                                        phsts |= ENABLE_TAC_A_UP;
-                                    if (_globalTACManager->global_over_manager->product_pwr_upper_enable == 1)
-                                        phsts |= ENABLE_TAC_W_UP;
-                                    if (_globalTACManager->global_over_manager->product_pwrcon_upper_enable == 1)
-                                        phsts |= ENABLE_TAC_P_UP;
-                                }else{
-                                    phsts=0;
-                                }
-                                nRet= g_switch_set_t_ac_phchn_ctrl(&__globalDeviceManage._globalRelaySampManger,
-                                                     _globalTACManager->product_saddr, 
-                                                     _globalTACManager->product_ch_addr - 1, 
-                                                     phsts);
-                            }
-                            break;
-                        }else
-                        {
-                            if (val == 1)
-                            {
-                                if (_globalPowerMangerTemp->global_over_manager->product_vol_upper_enable == 1)
-                                    val |= ENABLE_TAC_V_UP;
-                                if (_globalPowerMangerTemp->global_over_manager->product_vol_lower_enable == 1)
-                                    val |= ENABLE_TAC_V_DOWN;
-                                if (_globalPowerMangerTemp->global_over_manager->product_cur_upper_enable == 1)
-                                    val |= ENABLE_TAC_A_UP;
-                                if (_globalPowerMangerTemp->global_over_manager->product_pwr_upper_enable == 1)
-                                    val |= ENABLE_TAC_W_UP;
-                                if (_globalPowerMangerTemp->global_over_manager->product_pwrcon_upper_enable == 1)
-                                    val |= ENABLE_TAC_P_UP;
-                            }
-                            /*
-                            if (isgroup)
-                            {
-                                sts |= ENABLE_TAC_STIME;
-                                sts |= ENABLE_TAC_ETIME;
-                            }*/
-                            if (__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_One)
-                            {
-                                g_switch_set_t_ac_phchn_ctrl(&__globalDeviceManage._globalRelaySampManger,
-                                                                _globalPowerMangerTemp->product_saddr,
-                                                                _globalPowerMangerTemp->product_ch_addr - 1,
-                                                                val);
-                            }else{
-                                g_switch_set_t_ac_chn_ctrl(&__globalDeviceManage._globalRelaySampManger,
-                                                                _globalPowerMangerTemp->product_saddr,
-                                                                _globalPowerMangerTemp->product_ch_addr - 1,
-                                                                val);
-                            }
-                        }
-                    }
-                }
-            }
-            break;
-            case 9192:
-            {
-                if (val == 0 || val == 1)
-                {
-                    GlobalPowerManger *_globalPowerMangerTemp = NULL;
-                    list_for_each_entry(_globalPowerMangerTemp, &__globalDeviceManage._globalPowerManger.list, list)
-                    {
-                        if (_globalPowerMangerTemp == NULL)
-                            break;
-
-                        _globalPowerMangerTemp->product_ch_status = val;
-                        int rec = g_switch_set_all_ctrl(&__globalDeviceManage._globalRelaySampManger, _globalPowerMangerTemp->product_ch_type, _globalPowerMangerTemp->product_saddr, val);
-                        // printf("rec = %d 0x%x\n",rec,val);
-                    }
-                }
-            }
-            break;
-            default:
-            break;
+            sqlite3_close(mgr->db);
+            system("cp -r /opt/pdu_dat_bak.db /opt/pdu_dat.db");
+
+            system("reboot -f");
+        }
+        break;
+        case For85_SET_REBOOT:
+        {
+            sqlite3_close(mgr->db);
+            system("reboot -f");
+        }
+        break;
+        case For85_CONESUMER_CLEAR:
+        {
+            mgr->_global_device_info->consumer = 0.0;
         }
+        break;
+        default:
+        break;
     }
 }
-
-#endif

+ 2 - 85
485/src/common.c

@@ -10,7 +10,7 @@
 #include <sys/vfs.h>
  #include <dirent.h>
  
-#define LOG_TAG    "main"
+//#define LOG_TAG    "main"
 
 void printf_global_device_info(GlobalDeviceInfo* _globalDeviceInfo)
 {
@@ -73,7 +73,7 @@ void printf_global_power_manage_info(GlobalPowerManger* _globalPowerManger)
 //打印电源信息
 void printf_power_info(GlobalPowerInfo* _globalPowerInfo)
 {
-    struct list_head *pos;
+    //struct list_head *pos;
     GlobalPowerInfo* _temp;
     int i = 0;
     list_for_each_entry(_temp, &_globalPowerInfo->list, list)
@@ -211,89 +211,6 @@ void get_disk_occupy(char ** reused)
     return;
 }
 
-int set_local_timeandzone(struct tm* t, int zone)
-{
-    char buf[128];
-    struct timeval tv;
-
-    switch(zone)
-    {
-        case -11:   //Midway
-            sprintf(buf, "ln -sf /usr/share/zoneinfo/Pacific/Midway /etc/localtime");
-            break;
-        case -10:   //夏威夷
-            sprintf(buf, "ln -sf /usr/share/zoneinfo/HST /etc/localtime");
-            break;
-        case -9:    //Adak
-            sprintf(buf, "ln -sf /usr/share/zoneinfo/America/Adak /etc/localtime");
-            break;
-        case -8:    //Los Angeles
-            sprintf(buf, "ln -sf /usr/share/zoneinfo/America/Boise /etc/localtime");
-            break;
-        case -7:    //MST
-            sprintf(buf, "ln -sf /usr/share/zoneinfo/MST /etc/localtime");
-            break;
-        case -6:    //Chicago
-            sprintf(buf, "ln -sf /usr/share/zoneinfo/America/Chicago /etc/localtime");
-            break;
-        case -5:    //Detroit
-            sprintf(buf, "ln -sf /usr/share/zoneinfo/America/Detroit /etc/localtime");
-            break;
-        case -4:    //Halifax
-            sprintf(buf, "ln -sf /usr/share/zoneinfo/America/Halifax /etc/localtime");
-            break;
-        case -3:    //Maceio
-            sprintf(buf, "ln -sf /usr/share/zoneinfo/America/Maceio /etc/localtime");
-            break;
-        case -2:    //Noronha
-            sprintf(buf, "ln -sf /usr/share/zoneinfo/America/Noronha /etc/localtime");
-            break;
-        case -1:    //Scoresbysund
-            sprintf(buf, "ln -sf /usr/share/zoneinfo/America/Scoresbysund /etc/localtime");
-            break;
-        case 0:     //Mexico_City
-            sprintf(buf, "ln -sf /usr/share/zoneinfo/America/Mexico_City /etc/localtime");
-            break;
-        case 1:     //Belgrade
-            sprintf(buf, "ln -sf /usr/share/zoneinfo/Europe/Belgrade /etc/localtime");
-            break;
-        case 2:
-            break;
-        case 3:
-            break;
-        case 4:
-            break;
-        case 5:
-            break;
-        case 6:
-            break;
-        case 7:
-            break;
-        case 8:
-            sprintf(buf, "ln -sf /usr/share/zoneinfo/Asia/Chongqing /etc/localtime");
-            break;
-        case 9:
-            break;
-        case 10:
-            break;
-        case 11:
-            break;
-        case 12:
-            break;
-    }
-    system(buf);
-
-    //t += zone * 3600;
-    //struct tm* ptm = localtime(&t);
-    memset(buf, 0, sizeof(buf));
-    //sprintf(buf, "echo \"Hello\"");
-    sprintf(buf, "date -s \"%04d-%02d-%02d %02d:%02d:%02d\" &", t->tm_year + 1900, t->tm_mon + 1, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec);
-    log_i("%s",buf);
-    system(buf);
-
-    return 0;
-}
-
 char* getUserNamebyToken(char* Token)
 {
     char* userName = NULL;

+ 26 - 2
485/src/common.h

@@ -190,7 +190,8 @@ typedef struct
     unsigned short  product_save_time           ;//采集周期 单位ms
     ModbusInfo_t    _modbus_info                ;//继电器控制端口
     NetworkInfo_t   _network_info ;             ;//网络信息
-    ModbusInfo_t    _gmodbus_info               ;//级联端口      
+    ModbusInfo_t    _gmodbus_info               ;//级联端口 
+    float           consumer                    ;     
 }GlobalDeviceInfo;
 ///////////////////////////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////////////////////////
@@ -312,7 +313,7 @@ typedef struct
     float           factor                                      ;//功率因素    
     unsigned short  status                                      ;//开关状态     
     float           tempratue                                   ;
-    float           humidity                                    ;    
+    float           humidity                                    ;                            
     port_info_t     port; 
 }PowerInfo;
 
@@ -582,6 +583,25 @@ typedef struct threshold_485{
 }Threshould_485;
 
 
+
+typedef struct For85_Data{
+    uint16_t addr;          //current addr;
+    uint16_t dev_cnt;
+    uint16_t temprature;
+    uint16_t humnate;
+    uint16_t sensor_status;
+    uint16_t breaker_status;
+    uint32_t voltage;
+    uint32_t current;
+    uint32_t power;
+    uint32_t consumer;
+    uint32_t freq;
+    uint32_t factor;
+    uint32_t angle;
+}For85_Data_t;
+
+
+
 struct modbus_slave_read_reg{
     uint16_t deveice_type;              //设备类型
     uint16_t slave_addr;                //设备地址
@@ -650,6 +670,7 @@ typedef struct
     pthread_t           replay_thread;
     Modbus_Manger       _global_Slave_Modbus;
     struct modbus_slave_read_reg g_modebus_read;
+    For85_Data_t       for85_data;
     struct modbus_slave_write_reg g_modebus_write;
     smartPDU_shm_data* g_shm_Data;
     pthread_t           shm_thread; //共享内存线程
@@ -663,6 +684,9 @@ GlobalDeviceManager __globalDeviceManage;
 
 
 
+
+
+
 unsigned long __globalSxIdx;
 
 _User_Log _GlobalUserLoginInfo;//全局用户登录信息

+ 7 - 8
485/src/hlw8110_handle.c

@@ -173,7 +173,7 @@ int hlw8110_reset(LowConf *conf)
         conf->serial_tx_buf[0] = 0xa5;
         conf->serial_tx_buf[1] = 0xea;
         conf->serial_tx_buf[2] = 0x96;
-        conf->serial_tx_buf[4] = hlw8110_checksum_write(conf);
+        conf->serial_tx_buf[3] = hlw8110_checksum_write(conf);
         int size = write(conf->h_hlw8110_fd,conf->serial_tx_buf,conf->tx_lenth);
         _DEBUG(SET,conf->serial_tx_buf,size);
         if(size == conf->tx_lenth)
@@ -188,7 +188,6 @@ uint8_t hlw8110_judge_chechsum_calfac(LowConf *conf)
 {
     uint32_t a;
     uint32_t d;
-    int size = 0;
 
     //read  RmsIAC  RmsIBC RmsPAC PowerPAC PowrPBC PowerSC EnergBc EnergAc
 
@@ -197,8 +196,8 @@ uint8_t hlw8110_judge_chechsum_calfac(LowConf *conf)
         if(hlw8110_read_reg(conf,REG_RMS_IAC_ADDR,2))printf("%s: read reg filed\n",__func__);
         usleep(D_TIME_50MS);
         memset(conf->serial_rx_buf,0,10);
-        size = read(conf->h_hlw8110_fd,conf->serial_rx_buf,conf->rx_lenth);
-        _DEBUG(GET,conf->serial_rx_buf,size);
+        int size = read(conf->h_hlw8110_fd,conf->serial_rx_buf,conf->rx_lenth);
+        //_DEBUG(GET,conf->serial_rx_buf,size);
         if ( conf->serial_rx_buf[conf->rx_lenth-1] == hlw8110_checksum_read(conf))
         {
             conf->U16_RMSIAC_RegData = (conf->serial_rx_buf[0] << 8) + conf->serial_rx_buf[1];
@@ -333,7 +332,7 @@ int hlw8110_write_reg_sucess(LowConf *conf)
         usleep(D_TIME_10MS);
         memset(conf->serial_rx_buf,0,10);
         int size = read(conf->h_hlw8110_fd,conf->serial_rx_buf,conf->rx_lenth);
-        _DEBUG(GET,conf->serial_rx_buf,size);
+        //_DEBUG(GET,conf->serial_rx_buf,size);
         if ( conf->serial_rx_buf[conf->rx_lenth-1] == hlw8110_checksum_read(conf))
         {
             conf->U16_Check_SysconReg_Data = (conf->serial_rx_buf[0] << 8) + conf->serial_rx_buf[1];
@@ -794,13 +793,13 @@ int hlw8110_read_Status(LowConf* conf,int* nStatus)
         if (*nStatus!=1)
         {
             *nStatus=1;
-            printf("GPIO %d value: %d\n", GPIO_PE3, nStatus); 
+          //  printf("GPIO %d value: %d\n", GPIO_PE3, *nStatus); 
         }
     }else{
         if (*nStatus!=0)
         {
             *nStatus=0;
-            printf("GPIO %d value: %d\n", GPIO_PE3, nStatus); 
+          //  printf("GPIO %d value: %d\n", GPIO_PE3, *nStatus); 
         }
     }
     
@@ -849,7 +848,7 @@ LowConf * hlw8110_init(void)
     // hlw8110_write_reg(&conf,REG_EMUCON_ADDR,2,0x0018);	
     // usleep(D_TIME_20MS);
 
-	hlw8110_write_reg(&conf,REG_EMUCON2_ADDR,2,0x0465);	
+	hlw8110_write_reg(&conf,REG_EMUCON2_ADDR,2,0x0065);	
     usleep(D_TIME_20MS);
     hlw8110_write_reg_dis(&conf);
     usleep(D_TIME_10MS);

+ 0 - 47
485/src/main.c

@@ -11,60 +11,13 @@
 #include "shell.h"
 
 
-//static GlobalDeviceManager* _globalDeviceManager;
 
 
-//get dev 
-static void dev_ctrl_main(void* arg)
-{
-    Modbus_Manger manger  ;
-
-    GlobalDeviceManager* _globalDeviceManager = (GlobalDeviceManager*)arg;
-    
-    short rd_data = 0 ;
-
-    //初始化modbus接口
-    // g_modbus_init(&_globalDeviceManager->_globalRelaySampManger,
-    //             _globalDeviceManager->_global_device_info->product_relay_ctrl_port,
-    //             0,//type
-    //             1,//addr
-    //             "RELAY");
-    while (1)
-    {
-        //1.读取设备总电压/总电流
-
-        //2.读取设备通道电压电流等参数
-
-        //3.判断是否超过阈值
-
-        //4.执行超限处理动作
-        
-        //5.写入总监控数据库
-
-        //6.写入通道监控数据库
-
-        sleep(1);
-    }
-}
 
 
 //主函数
 int main(int argc,char* argv[])
 {
-    int ret = 0 ;
-    int type = 0 ;
-    int chn = 0 ;
-
-    //if (1==is_process_running("main"))
-  //  {
-    //    log_e("main service is running!\n");
-     //    return 0;
-   // }
-    
-
-    //初始化shell
-    //userShellInit();
-    //初始化日志组件
     initLogger();
     //初始化系统
     _global_device_manage_init(&__globalDeviceManage);

+ 8 - 8
485/src/modbus_handle.c

@@ -31,7 +31,7 @@ int g_modbus_init(void* manger,
                 const char* name)
 {
     Modbus_Manger *modbus_manger = (Modbus_Manger *)manger;
-    modbus_manger->port_name = port_name;
+    modbus_manger->port_name = (char *)port_name;
     modbus_manger->baud = baud;
     modbus_manger->type = type;
     modbus_manger->saddr = saddr;
@@ -96,9 +96,9 @@ int g_modbus_init(void* manger,
 
     ret =modbus_set_error_recovery(modbus_manger->mb,MODBUS_ERROR_RECOVERY_PROTOCOL | MODBUS_ERROR_RECOVERY_LINK);
     //设置超时时间为2S
-    struct timeval response_timeout;
-    response_timeout.tv_sec = 4;
-    response_timeout.tv_usec = 0;
+    // struct timeval response_timeout;
+    // response_timeout.tv_sec = 4;
+    // response_timeout.tv_usec = 0;
     // modbus_set_response_timeout(modbus_manger->mb,2,1500000);
     // modbus_set_byte_timeout(modbus_manger->mb,0,1000000);
     //modbus_set_debug(modbus_manger->mb,1);
@@ -126,7 +126,7 @@ int d_g_modbus_init(void* manger,
                 const char* name)
 {
     Modbus_Manger *modbus_manger = (Modbus_Manger *)manger;
-    modbus_manger->port_name = port_name;
+    modbus_manger->port_name = (char *)port_name;
     modbus_manger->baud = baud;
     modbus_manger->type = type;
     modbus_manger->saddr = saddr;
@@ -189,9 +189,9 @@ int d_g_modbus_init(void* manger,
       /* code */
     }
     //设置超时时间为2S
-    struct timeval response_timeout;
-    response_timeout.tv_sec = 4;
-    response_timeout.tv_usec = 0;
+    // struct timeval response_timeout;
+    // response_timeout.tv_sec = 4;
+    // response_timeout.tv_usec = 0;
     modbus_set_response_timeout(modbus_manger->mb,2,1500000);
     modbus_set_byte_timeout(modbus_manger->mb,0,1000000);
     //modbus_set_debug(modbus_manger->mb,1);

+ 1 - 28
485/src/sensor_handle.c

@@ -12,7 +12,7 @@
 int _g_sensor_get_temperature_value(void* manger,int saddr,float* temp,float* humi)
 {
     int ret = 0 ;
-    short data_temp[2] = {0};
+    unsigned short data_temp[2] = {0};
     ret = g_modbus_read_x_reg(manger,saddr,0,2,data_temp);
     if(ret<=0)
         return -1 ;
@@ -24,33 +24,6 @@ int _g_sensor_get_temperature_value(void* manger,int saddr,float* temp,float* hu
 }
 
 
-/// @brief 获取IO状态
-/// @param saadr 
-/// @param sts 
-/// @return 
-int _gsensor_get_io_status(int saadr,unsigned char* sts)
-{
-    int val;
-    struct gpiod_line *line;
-    //获取系统IO状态
-    int ret = 0 ;
-    //获取GPIO引脚的值
-    //val = gpiod_line_get_value(line);
-
-    return 0;
-}
-
-/// @brief 设置IO输出状态
-/// @param saadr 
-/// @param sts 
-/// @return 
-int _gsensor_set_io_status(int saadr,unsigned char sts)
-{
-    int val;
-
-    return 0;
-}
-
 
 
 // int _gsensor_io_init(char* port_name,int saddr)

+ 48 - 266
485/src/sqlite_handle.c

@@ -1,6 +1,7 @@
 #include "sqlite_handle.h"
 #include "elog.h"
 #include "time.h"
+#include "math.h"
 #define	TOTAL_COUNT	60//统计总数
 
 /// @brief 初始化SQLite数据库
@@ -31,6 +32,46 @@ void sqlite_deinit(sqlite3 *db)
     return;
 }
 
+int dev_update_485_consumer(sqlite3 *db,float consumer,GlobalDeviceInfo* _globalDeviceInfo)
+{
+    int res ;
+    char select_sql[256] = {0};
+    //// char *errorMsg = NULL;
+    int nrow = 0;               //满足条件的记录数目
+    int ncolumn = 0;            //每条记录包含的字段数据
+    char** pResult = NULL;  //用来指向sql执行结果的指针
+    char* err_msg=NULL;
+    char buff[200] = {0};
+    sprintf(buff,"%.2f",consumer);
+    sprintf(select_sql,"UPDATE Table_DeviceInfo SET product_consumer=%s WHERE product_id=%d;",buff,_globalDeviceInfo->product_id);
+    //printf("consumer=%2f. product_id = %d\n",consumer,_globalDeviceInfo->product_id);
+    res = sqlite3_get_table(db, select_sql, &pResult, &nrow, &ncolumn, &err_msg);
+    if(res != SQLITE_OK){
+        printf("UPDATE dasdasdasdasdasdasdas FAIELD\n");
+        return -1 ;  
+    }
+        
+    sqlite3_free_table(pResult);
+}
+
+
+int dev_set_485_saddr(sqlite3 *db,uint16_t saddr,GlobalDeviceInfo* _globalDeviceInfo)
+{
+    int res ;
+    char select_sql[256] = {0};
+    //// char *errorMsg = NULL;
+    int nrow = 0;               //满足条件的记录数目
+    int ncolumn = 0;            //每条记录包含的字段数据
+    char** pResult = NULL;  //用来指向sql执行结果的指针
+    char* err_msg=NULL;
+    sprintf(select_sql,"UPDATE Table_DeviceInfo SET product_modbus_addr=%d WHERE product_id=%d;",saddr,_globalDeviceInfo->product_id);
+    res = sqlite3_get_table(db, select_sql, &pResult, &nrow, &ncolumn, &err_msg);
+    if(res != SQLITE_OK)
+        return -1 ;  
+    sqlite3_free_table(pResult);
+    return 0;
+}
+
 /// @brief 查询设备信息表
 /// @param db 数据库接口          
 /// @param _globalDeviceInfo 返回数据接口
@@ -63,7 +104,7 @@ int dev_get_device_info(sqlite3 *db,GlobalDeviceInfo* _globalDeviceInfo)
     //获取电源类型
     _globalDeviceInfo->product_pwr_type = atoi(pResult[rowIndex*ncolumn+4]); 
     //获取版本号
-    strcpy(_globalDeviceInfo->product_version,pResult[rowIndex*ncolumn+5]);
+    strcpy((char *)(_globalDeviceInfo->product_version),pResult[rowIndex*ncolumn+5]);
     //多国语言
     _globalDeviceInfo->product_language = atoi(pResult[rowIndex*ncolumn+6]); 
     //获取级联设备数
@@ -81,7 +122,8 @@ int dev_get_device_info(sqlite3 *db,GlobalDeviceInfo* _globalDeviceInfo)
     _globalDeviceInfo->_modbus_info.product_modbus_addr = atoi(pResult[rowIndex*ncolumn+12]); 
     //获取继电器控制端口号
     strcpy(_globalDeviceInfo->_modbus_info.product_relay_ctrl_port,pResult[rowIndex*ncolumn+13]);
-
+    _globalDeviceInfo->consumer = atof(pResult[rowIndex*ncolumn+14]);
+    //_globalDeviceInfo->consumer = 0;
     sqlite3_free_table(pResult);
     return 0;
 } 
@@ -719,7 +761,7 @@ int dev_search_power_trend_info(sqlite3 *db,int product_id,int product_ch_id,Glo
     }
     else nCount=TOTAL_COUNT;
 
-    char data_time_str[32]={0};
+   // char data_time_str[32]={0};
 
     for(int i=0;i < nCount; i++)
     {
@@ -788,7 +830,7 @@ int dev_search_power_info(sqlite3 *db,
     //log_d(select_sql);
     //log_d("total_num: %d", nrow-1);
     //初始化头
-    int k = 0 ;
+    // int k = 0 ;
     for (size_t i = 1; i < nrow + 1; i++)
     {
         GlobalPowerInfo* _globalPowerInfoTemp = (GlobalPowerInfo*)malloc(sizeof(GlobalPowerInfo));
@@ -1059,7 +1101,7 @@ int dev_get_sensor_manage_info(sqlite3 *db,int product_id,GlobalSensorManger* _g
     char** pResult = NULL;  //用来指向sql执行结果的指针
     char* err_msg=NULL;
     char select_sql[1024] = {0};
-    GlobalSensorManger* _globalSensorMangerTemp = NULL;
+    //GlobalSensorManger* _globalSensorMangerTemp = NULL;
     sprintf(select_sql,"SELECT* FROM Table_SensorManage WHERE product_id=%d;",product_id);
     printf("product_id =%d\n",product_id);
     res = sqlite3_get_table(db, select_sql, &pResult, &nrow, &ncolumn, &err_msg);
@@ -1244,7 +1286,7 @@ int dev_search_sensor_info(sqlite3 *db,
         return -1 ;
     
     //初始化头
-    GlobalSensorInfo* _temp = _globalSensorInfo;
+    //GlobalSensorInfo* _temp = _globalSensorInfo;
     for (size_t i = 1; i <= nrow; i++)
     {
         GlobalSensorInfo* _globalSensorInfoTemp = (GlobalSensorInfo*)malloc(sizeof(GlobalSensorInfo));
@@ -1921,268 +1963,8 @@ int dev_insert_group_info(sqlite3 *db,GroupInfo* _globalgroupInfo)
     return 0;
 }
 
-int dev_get_group_info(sqlite3 *db, GroupInfo* _globalgroupInfo)
-{
-    int res = 0 ;
-    // int rowIndex = 1 ;
-    // char *errorMsg = NULL;
-    int nrow = 0;               //满足条件的记录数目
-    int ncolumn = 0;            //每条记录包含的字段数据
-    char** pResult = NULL;  //用来指向sql执行结果的指针
-    char* err_msg=NULL;
-    char select_sql[1024] = {0};
-
-    sprintf(select_sql, "SELECT* from Table_GroupManage WHERE product_id = %d;", __globalDeviceManage._global_device_info->product_id);
-    res = sqlite3_get_table(db, select_sql, &pResult, &nrow, &ncolumn, &err_msg);
-    if(res != SQLITE_OK)
-        return -1 ;   
-    //提取数据
-    if(nrow==0)
-        return -2 ;
-
-
-    for(int i = 1; i <= nrow; i++)
-    {
-        // 获取ID
-        GroupInfo *new_group = (GroupInfo *)malloc(sizeof(GroupInfo));
-        // 清空数据
-        memset(new_group, 0, sizeof(GroupInfo));
-        if (!new_group)
-        {
-            break;
-        }
-        new_group->product_id = __globalDeviceManage._global_device_info->product_id;
-        new_group->GroupID =  atoi(pResult[i*ncolumn+1]);
-        strcpy(new_group->GroupName,pResult[i*ncolumn+2]);
-        strcpy(new_group->GroupChList,pResult[i*ncolumn+3]);
-
-        list_add_tail(&new_group->list, &_globalgroupInfo->list);
-    }
-
-
-    sqlite3_free_table(pResult);
-    return 0;
-}
-
-
-///用户管理
-int dev_update_user_info(sqlite3 *db, UserInfo* _globaluserInfo)                     
-{
-    int res = 0 ;
-    // int rowIndex = 1 ;
-    // char *errorMsg = NULL;
-    int nrow = 0;               //满足条件的记录数目
-    int ncolumn = 0;            //每条记录包含的字段数据
-    char** pResult = NULL;  //用来指向sql执行结果的指针
-    char* err_msg=NULL;
-    char select_sql[1024] = {0};
-    sprintf(select_sql,"UPDATE Table_Userinfo SET userName='%s',userPW='%s',nickName='%s',roleID=%d WHERE userID=%d AND product_id=%d;",
-        _globaluserInfo->userName,
-        _globaluserInfo->userPW,
-        _globaluserInfo->nickName,
-        _globaluserInfo->roleID,
-        _globaluserInfo->userID,
-        _globaluserInfo->product_id);
-    res = sqlite3_get_table(db, select_sql, &pResult, &nrow, &ncolumn, &err_msg);
-    if(res != SQLITE_OK)
-        return -1 ;   
-    sqlite3_free_table(pResult);
-
-    return 0;
-}
-
-int dev_insert_user_info(sqlite3 *db,UserInfo* _globaluserInfo)
-{
-    int res = 0 ;
-    // int rowIndex = 1 ;
-    // char *errorMsg = NULL;
-    int nrow = 0;               //满足条件的记录数目
-    int ncolumn = 0;            //每条记录包含的字段数据
-    char** pResult = NULL;  //用来指向sql执行结果的指针
-    char* err_msg=NULL;
-    char select_sql[1024] = {0};
-
-    sprintf(select_sql,"INSERT INTO Table_Userinfo (product_id, userID, userName, userPW, nickName, roleID, createTime) VALUES (%d,%d,'%s','%s','%s',%d,'%s');",
-        _globaluserInfo->product_id,
-        _globaluserInfo->userID,
-        _globaluserInfo->userName,
-        _globaluserInfo->userPW,
-        _globaluserInfo->nickName,
-        _globaluserInfo->roleID,
-        _globaluserInfo->createTime
-        );
-    res = sqlite3_get_table(db, select_sql, &pResult, &nrow, &ncolumn, &err_msg);
-    if(res != SQLITE_OK)
-        return -1 ;   
-    sqlite3_free_table(pResult);
-    return 0;
-}
-
-int dev_get_user_info(sqlite3 *db, UserInfo* _globaluserInfo)
-{
-    int res = 0 ;
-    // int rowIndex = 1 ;
-    // char *errorMsg = NULL;
-    int nrow = 0;               //满足条件的记录数目
-    int ncolumn = 0;            //每条记录包含的字段数据
-    char** pResult = NULL;  //用来指向sql执行结果的指针
-    char* err_msg=NULL;
-    char select_sql[1024] = {0};
-
-    sprintf(select_sql, "SELECT* from Table_Userinfo WHERE product_id = %d;", __globalDeviceManage._global_device_info->product_id);
-    res = sqlite3_get_table(db, select_sql, &pResult, &nrow, &ncolumn, &err_msg);
-    if(res != SQLITE_OK)
-        return -1 ;   
-    //提取数据
-    if(nrow==0)
-        return -2 ;
-
-    for(int i = 1; i <= nrow; i++)
-    {
-        // 获取ID
-        UserInfo *new_user = (UserInfo *)malloc(sizeof(UserInfo));
-        // 清空数据
-        memset(new_user, 0, sizeof(UserInfo));
-        if (!new_user)
-        {
-            break;
-        }
-        new_user->product_id = __globalDeviceManage._global_device_info->product_id;
-        new_user->userID =  atoi(pResult[i*ncolumn+1]);
-        new_user->userName = malloc(256);
-        strcpy(new_user->userName,pResult[i*ncolumn+2]);
-        new_user->userPW = malloc(256);
-        strcpy(new_user->userPW,pResult[i*ncolumn+3]);
-        new_user->nickName = malloc(256);
-        strcpy(new_user->nickName,pResult[i*ncolumn+4]);
-        new_user->roleID =  atoi(pResult[i*ncolumn+5]);
-        new_user->createTime = malloc(64);
-        strcpy(new_user->createTime,pResult[i*ncolumn+6]);
-        list_add_tail(&new_user->list, &_globaluserInfo->list);
-    }
-
-    sqlite3_free_table(pResult);
-    return 0;
-}
-/// @brief 删除用户信息
-int dev_delete_user_info(sqlite3 *db,int userID)
-{
-    int res ;
-    char select_sql[256] = {0};
-    // char *errorMsg = NULL;
-    int nrow = 0;               //满足条件的记录数目
-    int ncolumn = 0;            //每条记录包含的字段数据
-    char** pResult = NULL;  //用来指向sql执行结果的指针
-    char* err_msg=NULL;   
-
-    sprintf(select_sql,"DELETE FROM Table_Userinfo WHERE userID=%d;",
-                userID
-    );
-    res = sqlite3_get_table(db, select_sql, &pResult, &nrow, &ncolumn, &err_msg);
-    if(res != SQLITE_OK)
-        return -1 ;  
-    sqlite3_free_table(pResult);
-    return 0;
-}
-
-
-
-///角色管理
-int dev_update_role_info(sqlite3 *db, RoleInfo* _globalRoleInfo)                     
-{
-    int res = 0 ;
-    // int rowIndex = 1 ;
-    // char *errorMsg = NULL;
-    int nrow = 0;               //满足条件的记录数目
-    int ncolumn = 0;            //每条记录包含的字段数据
-    char** pResult = NULL;  //用来指向sql执行结果的指针
-    char* err_msg=NULL;
-    char select_sql[1024] = {0};
-    sprintf(select_sql,"UPDATE Table_RoleInfo SET roleName='%s',roleLevel=%d,roleAuthority='%s',roleSort=%d,WHERE roleID=%d AND product_id=%d;",
-        _globalRoleInfo->roleName,
-        _globalRoleInfo->roleLevel,
-        _globalRoleInfo->roleAuthority,
-        _globalRoleInfo->roleSort,
-        _globalRoleInfo->roleID,
-        _globalRoleInfo->product_id
-        );
-    res = sqlite3_get_table(db, select_sql, &pResult, &nrow, &ncolumn, &err_msg);
-    if(res != SQLITE_OK)
-        return -1 ;   
-    sqlite3_free_table(pResult);
-
-    return 0;
-}
-
-int dev_insert_role_info(sqlite3 *db,RoleInfo* _globalRoleInfo)
-{
-    int res = 0 ;
-    // int rowIndex = 1 ;
-    // char *errorMsg = NULL;
-    int nrow = 0;               //满足条件的记录数目
-    int ncolumn = 0;            //每条记录包含的字段数据
-    char** pResult = NULL;  //用来指向sql执行结果的指针
-    char* err_msg=NULL;
-    char select_sql[1024] = {0};
 
-    sprintf(select_sql,"INSERT INTO Table_RoleInfo (product_id, roleID, roleName, roleLevel, roleAuthority, roleSort, createTime) VALUES (%d,%d,'%s',%d,'%s',%d,'%s');",
-        _globalRoleInfo->product_id,
-        _globalRoleInfo->roleID,
-        _globalRoleInfo->roleName,
-        _globalRoleInfo->roleLevel,
-        _globalRoleInfo->roleAuthority,
-        _globalRoleInfo->roleSort,
-        _globalRoleInfo->createTime
-        );
-    res = sqlite3_get_table(db, select_sql, &pResult, &nrow, &ncolumn, &err_msg);
-    if(res != SQLITE_OK)
-        return -1 ;   
-    sqlite3_free_table(pResult);
-    return 0;
-}
 
-int dev_get_role_info(sqlite3 *db, RoleInfo* _globalRoleInfo)
-{
-    int res = 0 ;
-    // int rowIndex = 1 ;
-    // char *errorMsg = NULL;
-    int nrow = 0;               //满足条件的记录数目
-    int ncolumn = 0;            //每条记录包含的字段数据
-    char** pResult = NULL;  //用来指向sql执行结果的指针
-    char* err_msg=NULL;
-    char select_sql[1024] = {0};
 
-    sprintf(select_sql, "SELECT* from Table_RoleInfo WHERE product_id = %d;", __globalDeviceManage._global_device_info->product_id);
-    res = sqlite3_get_table(db, select_sql, &pResult, &nrow, &ncolumn, &err_msg);
-    if(res != SQLITE_OK)
-        return -1 ;   
-    //提取数据
-    if(nrow==0)
-        return -2 ;
 
-    for(int i = 1; i <= nrow; i++)
-    {
-        // 获取ID
-        RoleInfo *new_role = (RoleInfo *)malloc(sizeof(RoleInfo));
-        // 清空数据
-        memset(new_role, 0, sizeof(RoleInfo));
-        if (!new_role)
-        {
-            break;
-        }
-        new_role->product_id = __globalDeviceManage._global_device_info->product_id;
-        new_role->roleID =  atoi(pResult[i*ncolumn+1]);
-        new_role->roleName = malloc(256);
-        strcpy(new_role->roleName,pResult[i*ncolumn+2]);
-        new_role->roleLevel =  atoi(pResult[i*ncolumn+3]);
-        new_role->roleAuthority = malloc(256);
-        strcpy(new_role->roleAuthority,pResult[i*ncolumn+4]);
-        new_role->roleSort =  atoi(pResult[i*ncolumn+5]);
-        new_role->createTime = malloc(64);
-        strcpy(new_role->createTime,pResult[i*ncolumn+6]);
-        list_add_tail(&new_role->list, &_globalRoleInfo->list);
-    }
 
-    sqlite3_free_table(pResult);
-    return 0;
-}

+ 6 - 0
485/src/sqlite_handle.h

@@ -109,4 +109,10 @@ int dev_delete_sensor_manage(sqlite3 *db,int product_id,int sensor_id);
 // int dev_insert_role_info(sqlite3 *db,RoleInfo* _globalRoleInfo);
 // int dev_get_role_info(sqlite3 *db, RoleInfo* _globalRoleInfo);
 
+
+int dev_set_485_saddr(sqlite3 *db,uint16_t saddr,GlobalDeviceInfo* _globalDeviceInfo);
+int dev_update_485_consumer(sqlite3 *db,float consumer,GlobalDeviceInfo* _globalDeviceInfo);
+
+
+
 #endif

+ 1 - 0
485/src/switch_ctrl.c

@@ -950,6 +950,7 @@ int g_switch_get_all_out_info(void* manger,int ntype,int saddr,int nNumb,PowerIn
                 _power->freq = 0;
            //_power->a = hlw8110_read_Angle(__globalDeviceManage._RS485LowConfData);
             _power->consumption = hwl8110_read_EA(__globalDeviceManage._RS485LowConfData);
+            __globalDeviceManage.for85_data.angle = (hlw8110_read_Angle(__globalDeviceManage._RS485LowConfData)*1000);
             // log_d("get _power->consumption sucessful!!!\n");            
             int ret=hlw8110_read_Status(__globalDeviceManage._RS485LowConfData,&_power->status);
             if (ret==1)

BIN
485_img/485_v1.2.3_IMG.zip


BIN
Qt/Qt_Test/Qt_Test


+ 3 - 3
Qt/Qt_Test/widget.cpp

@@ -167,13 +167,13 @@ void Widget::setPH(int nIndex,int nPHType)
     QString  strShow="";
     switch (nPHType) {
     case 1:
-        strShow="-A";
+        strShow="-L1";
         break;
     case 2:
-        strShow="-B";
+        strShow="-L2";
         break;
     case 3:
-        strShow="-C";
+        strShow="-L3";
         break;
     default:
         break;

+ 1 - 1
Qt/Qt_Test/widget.ui

@@ -663,7 +663,7 @@ QLabel
                  </font>
                 </property>
                 <property name="text">
-                 <string>Output CHA</string>
+                 <string>Output CH</string>
                 </property>
                 <property name="alignment">
                  <set>Qt::AlignCenter</set>

+ 49 - 21
control/PDU-AC-New-6/App/Main/Main.c

@@ -79,17 +79,25 @@ ACDC_Consumer_Clear EE_ACDC_Consumer_Clear[RelaySlaveChaNum] = {0};
 
 ACDC_All_Chn_Consumption ACDC_Total_All_Chn_Read_Reg;
 
+EE_ACDC_ThresVal_struct_ReadReg EE_ACDC_All_ThrVal;
 ACDC_Over_Func_WriteReg 	ACDC_Over_WriteReg[RelaySlaveChaNum];  
+ACDC_Over_Func_WriteReg 	ACDC_Over_AllWriteReg;
+ACDC_Wann_Read_Reg_t ACDC_Wann_All = {0};
+EE_ACDC_State_All_Reg_En_t EE_ACDC_State_All_en;
+AC_Ele_struct_ReadReg AC_Ele_ReadReg_All;
+
+
 
 
 uint8_t over_Func_flag[RelaySlaveChaNum] = {0};
+uint8_t over_func_all_flag = 0;
 
 
 
 uint32_t read_Total_Consumer[RelaySlaveChaNum] = {0};
 
-uint32_t hlw8100_flash_backup[RelaySlaveChaNum] = {0};
-uint32_t Hlw8110_Flash_value[RelaySlaveChaNum] = {0};
+//uint32_t hlw8100_flash_backup[RelaySlaveChaNum] = {0};
+//uint32_t Hlw8110_Flash_value[RelaySlaveChaNum] = {0};
 float Hlw8110_Restore[RelaySlaveChaNum]={0.0};
 
 uint32_t write_2_minute_flag = 0;
@@ -126,7 +134,7 @@ static  void  Proc2msTask_Start(void);   	//2ms
 static  void  Proc1SecTask(void);   			//1s处理任务
 
 static void over_RelayState(void);
-
+static void all_over_RelayState(void);
 
 
 
@@ -556,14 +564,28 @@ static  void  Proc100msTask(void)
 		AC_Ele_ReadReg[channel].AC_E = (Hlw8110_Restore[channel]*1000);																//电能
 		AC_Ele_ReadReg[channel].AC_PF = F_AC_PF*1000;																																								 //功率因素
 		
+		AC_Ele_ReadReg_All.AC_V = AC_Ele_ReadReg[0].AC_V;
+		AC_Ele_ReadReg_All.AC_I += AC_Ele_ReadReg[channel].AC_I;		//all current
+		AC_Ele_ReadReg_All.AC_P += AC_Ele_ReadReg[channel].AC_P;
+		AC_Ele_ReadReg_All.AC_LINE_Freq = AC_Ele_ReadReg[0].AC_LINE_Freq;
+		AC_Ele_ReadReg_All.AC_PF= AC_Ele_ReadReg[channel].AC_PF;
+		
 		EE_ACDC_Total_Consum_Read_Reg[channel].ACDC_Consumption = (read_Total_Consumer[channel] + AC_Ele_ReadReg[channel].AC_E);										//total consumer
 		ACDC_Total_All_Chn_Read_Reg.ACDC_All_Consumption += EE_ACDC_Total_Consum_Read_Reg[channel].ACDC_Consumption;
+		AC_Ele_ReadReg_All.AC_E += EE_ACDC_Total_Consum_Read_Reg[channel].ACDC_Consumption;
 		WarnState();																																																							//更新状态寄存器的告警阈值
 		over_RelayState();
 		
 		channel=channel+1;
-		if(channel>=RelaySlaveChaNum)
+		if(channel>=RelaySlaveChaNum){
+			// jugement all 
+			All_Warn_State();
+			all_over_RelayState();
 			channel=0;
+			AC_Ele_ReadReg_All.AC_I = 0;
+			AC_Ele_ReadReg_All.AC_E = 0;
+			AC_Ele_ReadReg_All.AC_P = 0;
+		}
 //		Uart_Read_HLW8110_Reg(REG_HFCONST_ADDR,2);//测试使用,看是否和电能计量芯片是否通信成功,成功串口接收到10 00 48
     Clr100msFlag();   //清除100ms标志
   }
@@ -769,7 +791,7 @@ static  void  InitHardware(void)
 	while(1)
 	{
 		eMBPoll();
-//		Proc100msTask();									//100ms处理任务
+		Proc100msTask();									//100ms处理任务
 		Proc1SecTask(); 									//1s处理任务 
 //		test1 = gpio_input_bit_get(LOCK_LE_CH_RCU,LOCK_CHECK);
 //		if(test1)	//如果有jlink接入,则不会动作继电器,直接跳出进入主函数
@@ -1152,22 +1174,28 @@ static  void  Proc1SecTask(void)
   }    
 }
 
-//void Relay1State(void)
-//{
-//	if(RelaySlaveChaNum>=1)
-//	{
-//  	if(EE_ACDC_State_ReadReg[0].ACDC_Cha_On_Off_State==true)
-//		{
-//				RELAY_1_ON;                              																											//开继电器1 
-//				EE_ACDC_State_ReadRegTrue[0].ACDC_Cha_On_Off_State = true;
-//		}		
-//		else 
-//		{
-//				RELAY_1_OFF;																																									//关继电器1 
-//				EE_ACDC_State_ReadRegTrue[0].ACDC_Cha_On_Off_State = false;			
-//		}
-//	}                                                     
-//}
+static void all_over_RelayState(void)
+{
+		//all 
+	if(over_func_all_flag)
+	{
+		RELAY_1_OFF;
+		RELAY_2_OFF;
+		RELAY_3_OFF;
+		RELAY_4_OFF;
+		RELAY_5_OFF;
+		RELAY_6_OFF;
+		over_func_all_flag = 0;
+		for(int i = 0; i < RelaySlaveChaNum;i++)
+		{
+			EE_ACDC_State_ReadReg[i].ACDC_Cha_On_Off_State = false;
+			EE_ACDC_State_ReadRegTrue[i].ACDC_Cha_On_Off_State = false;
+		}
+		BUFF;
+		LOCK;
+	}
+}
+
 
 
 static void over_RelayState(void)

+ 62 - 2
control/PDU-AC-New-6/App/Main/Main.h

@@ -44,6 +44,16 @@
 #define AC_Sing_Detection_Qua  1
 
 
+#define AC_Sing_All_Over_Func_Wann_Addr			4320
+#define AC_Sing_All_Over_Func_Wann_Qua			(1)
+
+#define AC_Sing_All_EleSmaAddr    					4330
+#define AC_Sing_All_EleSmaQua      					12
+
+
+
+
+
 #define AC_Sing_Dela_OnSmaAddr 4500
 #define AC_Sing_Dela_OnSmaQua  1*RelaySlaveChaNum
 
@@ -70,9 +80,11 @@
 #define AC_Sing_Clear_Consumer_all 5128
 #define AC_Sing_Clear_Consumer_allQua 1
 
+#define AC_Sing_All_Thr_SmaAddr  				5200
+#define AC_Sing_All_Thr_SmaAddr_Qua 		(32)
 
-
-
+#define AC_Sing_All_Over_FuncAddr						5250
+#define AC_Sing_All_Over_FuncQua						1
 
 
 
@@ -103,6 +115,14 @@
 
 
 
+#define Eepr_AC_Sing_All_Thr_SmaAddr 		1250
+#define Eepr_AC_Sing_All_Thr_SmaQua			(32)
+
+#define Eepr_AC_Sing_All_Over_SmaAddr		1300
+#define Eepr_AC_Sing_All_Over_SmaQua		2
+
+
+
 #define Default_Consum_Max   (4000000000)
 #define Default_Voltage_Max  (1000000000)
 #define Default_Current_Max  (1000000000)
@@ -196,6 +216,18 @@ typedef struct	EE_ACDC_State_struct_ReadReg
 	unsigned char ACDC_ALLCha_Off_State:1;      	 //第12位表示通道全部关闭标志(不可以设置,可以读回)
 }EE_ACDC_State_struct_ReadReg; 
 
+
+
+
+typedef struct EE_ACDC_State_All_Reg_En{
+	unsigned char ACDC_Vol_Upper_En:1;
+	unsigned char ACDC_Vol_Lower_En:1;
+	unsigned char ACDC_Current_Upper_En:1;
+	unsigned char ACDC_Power_Upper_En:1;
+	unsigned char ACDC_Consumer_Upper_En:1;
+}EE_ACDC_State_All_Reg_En_t;
+
+
 extern EE_ACDC_State_struct_ReadReg EE_ACDC_State_ReadReg[RelaySlaveChaNum];
 
 //开关状态必须是等继电器动作完了才更新,也是真实放回给web端的状态
@@ -302,6 +334,34 @@ typedef struct	ACDC_State_struct_WriteReg
 	unsigned char ACDC_Ele_Upthr_Warn:1;           //第10位表示通道电能上限告警(不可以设置,可以读回)
 }ACDC_State_struct_WriteReg; 
 
+
+
+typedef struct Wanning
+{
+	unsigned char ACDC_V_Max   	:	1;
+	unsigned char ACDC_V_Min   	:	1;
+	unsigned char ACDC_I_Max   	:	1;	
+	unsigned char ACDC_P_Max   	:	1;
+	unsigned char ACDC_C_Max   	:	1;
+}Wanning_t;
+
+typedef struct OverFunc
+{
+	unsigned char ACDC_V_Max_O_Func   : 1;
+	unsigned char ACDC_V_Min_O_Func   : 1;
+	unsigned char ACDC_I_Max_O_Func   : 1;
+	unsigned char ACDC_P_Max_O_Func   : 1;
+	unsigned char ACDC_C_Max_O_Func   : 1;
+}OverFunc_t;
+
+
+typedef struct ACDC_Wann_Read_Reg
+{
+	Wanning_t 	wan;
+	OverFunc_t over;
+}ACDC_Wann_Read_Reg_t;
+
+
 extern ACDC_State_struct_WriteReg ACDC_State_WriteReg[RelaySlaveChaNum];
 
 typedef struct	ACDC_ThresVal_struct_WriteReg

+ 68 - 0
control/PDU-AC-New-6/App/Modbus/BARE/port/port.c

@@ -145,6 +145,14 @@ unsigned char WusNRegs;
 unsigned int WiRegIndex;
 unsigned int WeeiRegIndex;
 unsigned char Eeprom_Wbuf[200];
+
+extern ACDC_Wann_Read_Reg_t ACDC_Wann_All;
+extern EE_ACDC_ThresVal_struct_ReadReg EE_ACDC_All_ThrVal;
+extern EE_ACDC_State_All_Reg_En_t EE_ACDC_State_All_en;
+extern ACDC_Over_Func_WriteReg 	ACDC_Over_AllWriteReg;
+extern ACDC_Wann_Read_Reg_t ACDC_Wann_All;
+extern AC_Ele_struct_ReadReg AC_Ele_ReadReg_All;
+
 eMBErrorCode
 eMBRegHoldingCB( UCHAR * pucRegBuffer, USHORT usAddress, USHORT usNRegs, eMBRegisterMode eMode )
 {
@@ -201,7 +209,19 @@ eMBRegHoldingCB( UCHAR * pucRegBuffer, USHORT usAddress, USHORT usNRegs, eMBRegi
 						}else if(usAddress == AC_Sing_Detection_Addr)
 						{
 							memcpy(&usRegHoldBuf[iRegIndex],&detection_value,usNRegs*2);
+						}else if(usAddress == AC_Sing_All_Over_Func_Wann_Addr)
+						{
+							memcpy(&usRegHoldBuf[iRegIndex],&ACDC_Wann_All,2);
+						}else if(usAddress >= AC_Sing_All_EleSmaAddr &&  usAddress  <= (AC_Sing_All_EleSmaAddr+AC_Sing_All_EleSmaQua))
+						{
+							Start_Read_Flag = 1;
+							int base_addr = usAddress -AC_Sing_All_EleSmaAddr;
+							uint32_t * base = (uint32_t *)(&AC_Ele_ReadReg_All);
+							base += base_addr;
+							memcpy(&usRegHoldBuf[iRegIndex],base,usNRegs*2);
 						}
+						
+						
             while(usNRegs > 0)
             {
                 *pucRegBuffer++ = (uint8_t)(usRegHoldBuf[iRegIndex] >> 8);
@@ -358,6 +378,54 @@ eMBRegHoldingCB( UCHAR * pucRegBuffer, USHORT usAddress, USHORT usNRegs, eMBRegi
 								EE_ACDC_Consumer_Clear[i].flag = 1;
 								EE_ACDC_Consumer_Clear[i].value = recive;
 							}
+						}else if(usAddress >= AC_Sing_All_Thr_SmaAddr && (usAddress <=(AC_Sing_All_Thr_SmaAddr + AC_Sing_All_Thr_SmaAddr_Qua)))
+						{
+							WeeiRegIndex = (int)(usAddress - AC_Sing_Thr_SmaAddr);
+							//Chal_num = (usAddress-AC_Sing_All_Thr_SmaAddr)/16;  
+							memcpy(&EE_ACDC_All_ThrVal,&usRegHoldBuf[WiRegIndex],WusNRegs*2);
+							
+							if(EE_ACDC_All_ThrVal.ACDC_V_TopThres <= THRESHOULD_JUDGMENT)
+							{
+								EE_ACDC_State_All_en.ACDC_Vol_Upper_En = false;
+							}else
+							{
+								EE_ACDC_State_All_en.ACDC_Vol_Upper_En = true;
+							}
+							if(EE_ACDC_All_ThrVal.ACDC_V_DownThres <= THRESHOULD_JUDGMENT)
+							{
+								EE_ACDC_State_All_en.ACDC_Vol_Lower_En= false;
+							}else
+							{
+								EE_ACDC_State_All_en.ACDC_Vol_Lower_En= true;
+							}
+							if(EE_ACDC_All_ThrVal.ACDC_I_TopThres <= THRESHOULD_JUDGMENT)
+							{
+								EE_ACDC_State_All_en.ACDC_Current_Upper_En = false;
+							}else
+							{
+								EE_ACDC_State_All_en.ACDC_Current_Upper_En= true;
+							}
+							if(EE_ACDC_All_ThrVal.ACDC_P_TopThres <= THRESHOULD_JUDGMENT)
+							{
+								EE_ACDC_State_All_en.ACDC_Power_Upper_En = false;
+							}else
+							{
+								EE_ACDC_State_All_en.ACDC_Power_Upper_En = true;
+							}
+							if(EE_ACDC_All_ThrVal.ACDC_E_TopThres <= THRESHOULD_JUDGMENT)
+							{
+								EE_ACDC_State_All_en.ACDC_Consumer_Upper_En = false;
+							}else
+							{
+								EE_ACDC_State_All_en.ACDC_Consumer_Upper_En= true;
+							}
+							memcpy(&Eeprom_Wbuf,&usRegHoldBuf[WiRegIndex],WusNRegs*2);
+							AT24CxxWrite(Eepr_AC_Sing_All_Thr_SmaAddr,Eeprom_Wbuf, WusNRegs*2);
+						}else if(usAddress == AC_Sing_All_Over_FuncAddr)
+						{
+							memcpy(&ACDC_Over_AllWriteReg,&usRegHoldBuf[WiRegIndex],2);
+							memcpy(&Eeprom_Wbuf,&usRegHoldBuf[WiRegIndex],2);
+							AT24CxxWrite(Eepr_AC_Sing_All_Over_SmaAddr,Eeprom_Wbuf,2);
 						}
         }
     }

+ 181 - 1
control/PDU-AC-New-6/App/ReadEeprom/ReadEeprom.c

@@ -41,6 +41,13 @@ unsigned char Chal_Num;
 extern EE_ACDC_Total_Consumption  EE_ACDC_Total_Consum_Read_Reg[RelaySlaveChaNum];
 extern uint32_t read_Total_Consumer[RelaySlaveChaNum];
 extern uint8_t over_Func_flag[RelaySlaveChaNum];
+extern EE_ACDC_ThresVal_struct_ReadReg EE_ACDC_All_ThrVal;
+extern EE_ACDC_State_All_Reg_En_t EE_ACDC_State_All_en;
+extern ACDC_Over_Func_WriteReg 	ACDC_Over_AllWriteReg;
+extern AC_Ele_struct_ReadReg AC_Ele_ReadReg_All;
+extern ACDC_Wann_Read_Reg_t ACDC_Wann_All ;
+extern uint8_t over_func_all_flag;
+
 /*********************************************************************************************************
 *                                              内部函数声明
 *********************************************************************************************************/
@@ -75,6 +82,29 @@ void  ReadEeprom(void)
 	AT24CxxRead(Eepr_AC_Sing_Thr_SmaAddr, Eeprom_Rbuf, Eepr_AC_Sing_Thr_SmaQua);			//从eeprom中读出通道阈值数据
 	memcpy(&EE_ACDC_ThresVal_ReadReg,&Eeprom_Rbuf,Eepr_AC_Sing_Thr_SmaQua);						//将数据拷贝到指定的结构体,可能需要注意大小端问题
 	
+	AT24CxxRead(Eepr_AC_Sing_All_Thr_SmaAddr, Eeprom_Rbuf, Eepr_AC_Sing_All_Thr_SmaQua);				//read thr of all 
+	memcpy(&EE_ACDC_All_ThrVal,&Eeprom_Rbuf,Eepr_AC_Sing_All_Thr_SmaQua);
+	
+	// add by liyi
+		if(EE_ACDC_All_ThrVal.ACDC_V_TopThres > Default_Voltage_Max)
+		{
+			EE_ACDC_All_ThrVal.ACDC_V_TopThres = 0;
+		}
+		if(EE_ACDC_All_ThrVal.ACDC_V_DownThres > Default_Voltage_Max)
+		{
+			EE_ACDC_All_ThrVal.ACDC_V_DownThres = 0;
+		}
+		if(EE_ACDC_All_ThrVal.ACDC_P_TopThres > Default_Power_Max)
+		{
+			EE_ACDC_All_ThrVal.ACDC_P_TopThres = 0;
+		}	
+		if(EE_ACDC_All_ThrVal.ACDC_I_TopThres > Default_Current_Max)
+		{
+			EE_ACDC_All_ThrVal.ACDC_I_TopThres = 0;
+		}		
+	
+	
+	
 	//check is 
 	for(Chal_Num=0;Chal_Num<RelaySlaveChaNum;Chal_Num++) 
 	{
@@ -96,6 +126,45 @@ void  ReadEeprom(void)
 		}		
 	}
 	
+
+		if(EE_ACDC_All_ThrVal.ACDC_V_TopThres <= THRESHOULD_JUDGMENT)
+		{
+			EE_ACDC_State_All_en.ACDC_Vol_Upper_En = false;
+		}else
+		{
+			EE_ACDC_State_All_en.ACDC_Vol_Upper_En = true;
+		}
+		if(EE_ACDC_All_ThrVal.ACDC_V_DownThres <= THRESHOULD_JUDGMENT)
+		{
+			EE_ACDC_State_All_en.ACDC_Vol_Lower_En= false;
+		}else
+		{
+			EE_ACDC_State_All_en.ACDC_Vol_Lower_En= true;
+		}
+		if(EE_ACDC_All_ThrVal.ACDC_I_TopThres <= THRESHOULD_JUDGMENT)
+		{
+			EE_ACDC_State_All_en.ACDC_Current_Upper_En = false;
+		}else
+		{
+			EE_ACDC_State_All_en.ACDC_Current_Upper_En= true;
+		}
+		if(EE_ACDC_All_ThrVal.ACDC_P_TopThres <= THRESHOULD_JUDGMENT)
+		{
+			EE_ACDC_State_All_en.ACDC_Power_Upper_En = false;
+		}else
+		{
+			EE_ACDC_State_All_en.ACDC_Power_Upper_En = true;
+		}
+		if(EE_ACDC_All_ThrVal.ACDC_E_TopThres <= THRESHOULD_JUDGMENT)
+		{
+			EE_ACDC_State_All_en.ACDC_Consumer_Upper_En = false;
+		}else
+		{
+			EE_ACDC_State_All_en.ACDC_Consumer_Upper_En= true;
+		}
+	
+	
+	
 	for(Chal_Num=0;Chal_Num<RelaySlaveChaNum;Chal_Num++) 
 	{
 		if(EE_ACDC_ThresVal_ReadReg[Chal_Num].ACDC_V_TopThres <= THRESHOULD_JUDGMENT)
@@ -173,7 +242,7 @@ void  ReadEeprom(void)
 	
 	//read wanning func 
 	AT24CxxRead(Eepr_AC_Sing_Channel_Func_SmaAddr, Eeprom_Rbuf, Eepr_AC_Sing_Channel_Func_SmaQua);	
-	memcmp(ACDC_Over_WriteReg,Eeprom_Rbuf,Eepr_AC_Sing_Channel_Func_SmaQua);
+	memcpy(ACDC_Over_WriteReg,Eeprom_Rbuf,Eepr_AC_Sing_Channel_Func_SmaQua);
 	for(int i=0; i < RelaySlaveChaNum;i++)
 	{
 		if(ACDC_Over_WriteReg[i].openration > 0x003f)
@@ -181,6 +250,12 @@ void  ReadEeprom(void)
 			ACDC_Over_WriteReg[i].openration = 0;
 		}
 	}
+	AT24CxxRead(Eepr_AC_Sing_All_Over_SmaAddr, Eeprom_Rbuf, Eepr_AC_Sing_All_Over_SmaQua);	
+	memcpy(&ACDC_Over_AllWriteReg,Eeprom_Rbuf,Eepr_AC_Sing_All_Over_SmaQua);
+	if(ACDC_Over_AllWriteReg.openration > 0x003f)
+	{
+		ACDC_Over_AllWriteReg.openration = 0;
+	}
 }
 
 
@@ -723,6 +798,111 @@ void WarnState(void)
 	WarnPowUpthrState();
 	WarnEleUpthrState();
 }
+
+void All_Warn_State(void)
+{
+	
+	//voltage max
+	if(EE_ACDC_State_All_en.ACDC_Vol_Upper_En)
+	{
+		if(AC_Ele_ReadReg_All.AC_V > EE_ACDC_All_ThrVal.ACDC_V_TopThres)
+		{
+			ACDC_Wann_All.wan.ACDC_V_Max = true;
+			if(ACDC_Over_AllWriteReg.openration & Voltage_Max_Func)
+			{
+				over_func_all_flag = 1;
+				//ACDC_Wann_All.over.ACDC_V_Max_O_Func = true;
+			}
+		}else
+		{
+			ACDC_Wann_All.wan.ACDC_V_Max = false;
+			//ACDC_Wann_All.over.ACDC_V_Max_O_Func = false;
+		}
+	}else
+	{
+		ACDC_Wann_All.wan.ACDC_V_Max = false;
+	}
+	//voltage min
+	if(EE_ACDC_State_All_en.ACDC_Vol_Lower_En)
+	{
+		if(AC_Ele_ReadReg_All.AC_V < EE_ACDC_All_ThrVal.ACDC_V_DownThres)
+		{
+			ACDC_Wann_All.wan.ACDC_V_Min = true;
+			if(ACDC_Over_AllWriteReg.openration & Voltage_Min_Func)
+			{
+				over_func_all_flag = 1;
+			}
+			
+		}else
+		{
+			ACDC_Wann_All.wan.ACDC_V_Min = false;
+		}
+	}else
+	{
+		ACDC_Wann_All.wan.ACDC_V_Min = false;
+	}
+	//power max
+		if(EE_ACDC_State_All_en.ACDC_Power_Upper_En)
+		{
+			if(AC_Ele_ReadReg_All.AC_P > EE_ACDC_All_ThrVal.ACDC_P_TopThres)
+			{
+				ACDC_Wann_All.wan.ACDC_P_Max = true;
+				if(ACDC_Over_AllWriteReg.openration & Power_Max_Func)
+				{
+					over_func_all_flag = 1;
+				}
+				
+			}else
+			{
+				ACDC_Wann_All.wan.ACDC_P_Max = false;
+			}
+		}else
+		{
+			ACDC_Wann_All.wan.ACDC_P_Max = false;
+		}
+	//current max
+		if(EE_ACDC_State_All_en.ACDC_Current_Upper_En)
+		{
+			if(AC_Ele_ReadReg_All.AC_I > EE_ACDC_All_ThrVal.ACDC_I_TopThres)
+			{
+				ACDC_Wann_All.wan.ACDC_I_Max = true;
+				if(ACDC_Over_AllWriteReg.openration & Current_Max_Func)
+				{
+					over_func_all_flag = 1;
+				}
+				
+			}else
+			{
+				ACDC_Wann_All.wan.ACDC_I_Max = false;
+			}
+		}else
+		{
+			ACDC_Wann_All.wan.ACDC_I_Max = false;
+		}
+		//consumer max
+		if(EE_ACDC_State_All_en.ACDC_Consumer_Upper_En)
+		{
+			if(AC_Ele_ReadReg_All.AC_E > EE_ACDC_All_ThrVal.ACDC_E_TopThres)
+			{
+				ACDC_Wann_All.wan.ACDC_C_Max = true;
+				if(ACDC_Over_AllWriteReg.openration & Consumer_Max_Func)
+				{
+					over_func_all_flag = 1;
+				}
+				
+			}else
+			{
+				ACDC_Wann_All.wan.ACDC_C_Max = false;
+			}
+		}else
+		{
+			ACDC_Wann_All.wan.ACDC_C_Max = false;
+		}
+	
+}
+
+
+
 /*********************************************************************************************************
 * 函数名称:Bubble_Sort
 * 函数功能:根据读取的数据判断是否触发阈值

+ 1 - 0
control/PDU-AC-New-6/App/ReadEeprom/ReadEeprom.h

@@ -47,4 +47,5 @@ void Relay7State(void);
 void Relay8State(void);
 void WarnState(void);
 void Bubble_Sort(unsigned short int arr[], unsigned short int len);
+void All_Warn_State(void);
 #endif

Разница между файлами не показана из-за своего большого размера
+ 41 - 32
control/PDU-AC-New-6/Project/GD32KeilPrj.uvguix.Gowon


+ 14 - 14
control/PDU-AC-New-6/Project/GD32KeilPrj.uvoptx

@@ -544,8 +544,8 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\App\Wwdgt\Wwdgt.c</PathWithFileName>
-      <FilenameWithoutPath>Wwdgt.c</FilenameWithoutPath>
+      <PathWithFileName>..\App\24cxx\At24cxx.c</PathWithFileName>
+      <FilenameWithoutPath>At24cxx.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
@@ -556,8 +556,8 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\App\24cxx\At24cxx.c</PathWithFileName>
-      <FilenameWithoutPath>At24cxx.c</FilenameWithoutPath>
+      <PathWithFileName>..\HW\I2c\I2c.c</PathWithFileName>
+      <FilenameWithoutPath>I2c.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
@@ -568,8 +568,8 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\HW\I2c\I2c.c</PathWithFileName>
-      <FilenameWithoutPath>I2c.c</FilenameWithoutPath>
+      <PathWithFileName>..\App\ReadEeprom\ReadEeprom.c</PathWithFileName>
+      <FilenameWithoutPath>ReadEeprom.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
@@ -580,8 +580,8 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\App\ReadEeprom\ReadEeprom.c</PathWithFileName>
-      <FilenameWithoutPath>ReadEeprom.c</FilenameWithoutPath>
+      <PathWithFileName>..\App\Sn74lvc573\Sn74lvc573.c</PathWithFileName>
+      <FilenameWithoutPath>Sn74lvc573.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
@@ -592,8 +592,8 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\App\Sn74lvc573\Sn74lvc573.c</PathWithFileName>
-      <FilenameWithoutPath>Sn74lvc573.c</FilenameWithoutPath>
+      <PathWithFileName>..\App\Fwdgt\Fwdgt.c</PathWithFileName>
+      <FilenameWithoutPath>Fwdgt.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
@@ -617,7 +617,7 @@
 
   <Group>
     <GroupName>FW</GroupName>
-    <tvExp>0</tvExp>
+    <tvExp>1</tvExp>
     <tvExpOptDlg>0</tvExpOptDlg>
     <cbSel>0</cbSel>
     <RteFlg>0</RteFlg>
@@ -700,8 +700,8 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\FW\Source\gd32e230_wwdgt.c</PathWithFileName>
-      <FilenameWithoutPath>gd32e230_wwdgt.c</FilenameWithoutPath>
+      <PathWithFileName>..\FW\Source\gd32e230_fwdgt.c</PathWithFileName>
+      <FilenameWithoutPath>gd32e230_fwdgt.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
@@ -709,7 +709,7 @@
 
   <Group>
     <GroupName>ARM</GroupName>
-    <tvExp>0</tvExp>
+    <tvExp>1</tvExp>
     <tvExpOptDlg>0</tvExpOptDlg>
     <cbSel>0</cbSel>
     <RteFlg>0</RteFlg>

+ 11 - 11
control/PDU-AC-New-6/Project/GD32KeilPrj.uvprojx

@@ -16,8 +16,8 @@
         <TargetCommonOption>
           <Device>GD32E230C8</Device>
           <Vendor>GigaDevice</Vendor>
-          <PackID>GigaDevice.GD32E23x_DFP.1.0.2</PackID>
-          <PackURL>https://gd32mcu.com/data/documents/pack/</PackURL>
+          <PackID>GigaDevice.GD32E23x_DFP.2.2.1</PackID>
+          <PackURL>http://gd32mcu.com/data/documents/pack/</PackURL>
           <Cpu>IRAM(0x20000000,0x0002000) IROM(0x08000000,0x0010000) CPUTYPE("Cortex-M23") CLOCK(12000000) ELITTLE</Cpu>
           <FlashUtilSpec></FlashUtilSpec>
           <StartupFile></StartupFile>
@@ -49,7 +49,7 @@
             <InvalidFlash>1</InvalidFlash>
           </TargetStatus>
           <OutputDirectory>.\Objects\</OutputDirectory>
-          <OutputName>6通道-2024-8-22-New1</OutputName>
+          <OutputName>6通道-2024-11-9-New</OutputName>
           <CreateExecutable>1</CreateExecutable>
           <CreateLib>0</CreateLib>
           <CreateHexFile>1</CreateHexFile>
@@ -339,7 +339,7 @@
               <MiscControls>-Wno-invalid-source-encoding</MiscControls>
               <Define>GD32E230</Define>
               <Undefine></Undefine>
-              <IncludePath>..\FW\Include;..\App\Main;..\App\DataType;..\ARM\SysTick;..\ARM\System;..\ARM\NVIC;..\HW\Timer;..\App\Modbus\ascii;..\App\Modbus\include;..\App\Modbus\rtu;..\App\Modbus\tcp;..\App\Led;..\HW\Rcu;..\HW\Uart1;..\App\Key;..\App\Relay;..\App\Hlw8110;..\App\Wwdgt;..\App\24cxx;..\HW\I2c;..\App\ReadEeprom;..\App\Modbus\BARE\port;..\App\Sn74lvc573</IncludePath>
+              <IncludePath>..\FW\Include;..\App\Main;..\App\DataType;..\ARM\SysTick;..\ARM\System;..\ARM\NVIC;..\HW\Timer;..\App\Modbus\ascii;..\App\Modbus\include;..\App\Modbus\rtu;..\App\Modbus\tcp;..\App\Led;..\HW\Rcu;..\HW\Uart1;..\App\Key;..\App\Relay;..\App\Hlw8110;..\App\Wwdgt;..\App\24cxx;..\HW\I2c;..\App\ReadEeprom;..\App\Modbus\BARE\port;..\App\Sn74lvc573;..\App\Fwdgt</IncludePath>
             </VariousControls>
           </Cads>
           <Aads>
@@ -436,11 +436,6 @@
               <FileType>1</FileType>
               <FilePath>..\App\Hlw8110\Hlw8110.c</FilePath>
             </File>
-            <File>
-              <FileName>Wwdgt.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\App\Wwdgt\Wwdgt.c</FilePath>
-            </File>
             <File>
               <FileName>At24cxx.c</FileName>
               <FileType>1</FileType>
@@ -461,6 +456,11 @@
               <FileType>1</FileType>
               <FilePath>..\App\Sn74lvc573\Sn74lvc573.c</FilePath>
             </File>
+            <File>
+              <FileName>Fwdgt.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\App\Fwdgt\Fwdgt.c</FilePath>
+            </File>
           </Files>
         </Group>
         <Group>
@@ -503,9 +503,9 @@
               <FilePath>..\FW\Source\gd32e230_usart.c</FilePath>
             </File>
             <File>
-              <FileName>gd32e230_wwdgt.c</FileName>
+              <FileName>gd32e230_fwdgt.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\FW\Source\gd32e230_wwdgt.c</FilePath>
+              <FilePath>..\FW\Source\gd32e230_fwdgt.c</FilePath>
             </File>
           </Files>
         </Group>

Разница между файлами не показана из-за своего большого размера
+ 0 - 3457
control/PDU-AC-New-6/Project/Listings/23A-1通道-0610-2.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3458
control/PDU-AC-New-6/Project/Listings/23A-1通道-0610.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3465
control/PDU-AC-New-6/Project/Listings/23A-2通道-0610-2.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3479
control/PDU-AC-New-6/Project/Listings/23A-2通道-0610.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3477
control/PDU-AC-New-6/Project/Listings/23A-3通道-0610-2.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3492
control/PDU-AC-New-6/Project/Listings/23A-3通道-0610.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3510
control/PDU-AC-New-6/Project/Listings/23A-4通道-0610-1.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3482
control/PDU-AC-New-6/Project/Listings/23A-4通道-0610-2.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3496
control/PDU-AC-New-6/Project/Listings/23A-4通道-0610.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3489
control/PDU-AC-New-6/Project/Listings/23A-5通道-0610-2.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3504
control/PDU-AC-New-6/Project/Listings/23A-5通道-0610.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3632
control/PDU-AC-New-6/Project/Listings/23A-5通道-0618-1.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3489
control/PDU-AC-New-6/Project/Listings/23A-5通道-0622.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3499
control/PDU-AC-New-6/Project/Listings/23A-6通道-0610-2.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3513
control/PDU-AC-New-6/Project/Listings/23A-6通道-0610.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3507
control/PDU-AC-New-6/Project/Listings/23A-7通道-0610-2.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3521
control/PDU-AC-New-6/Project/Listings/23A-7通道-0610.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3510
control/PDU-AC-New-6/Project/Listings/23A-8通道-0610-2.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3523
control/PDU-AC-New-6/Project/Listings/23A-8通道-0610.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3489
control/PDU-AC-New-6/Project/Listings/40A-1通道-0610-2.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3442
control/PDU-AC-New-6/Project/Listings/40A-1通道-0610.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3442
control/PDU-AC-New-6/Project/Listings/40A-1通道.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3439
control/PDU-AC-New-6/Project/Listings/40A-2通道-0610-2.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3452
control/PDU-AC-New-6/Project/Listings/40A-2通道-0610.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3452
control/PDU-AC-New-6/Project/Listings/40A-2通道.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3452
control/PDU-AC-New-6/Project/Listings/40A-3通道-0610-2.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3466
control/PDU-AC-New-6/Project/Listings/40A-3通道-0610.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3452
control/PDU-AC-New-6/Project/Listings/40A-3通道.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3458
control/PDU-AC-New-6/Project/Listings/40A-4通道-0610-1.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3457
control/PDU-AC-New-6/Project/Listings/40A-4通道-0610-2.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3470
control/PDU-AC-New-6/Project/Listings/40A-4通道-0610.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3442
control/PDU-AC-New-6/Project/Listings/40A-4通道.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3466
control/PDU-AC-New-6/Project/Listings/40A3通道.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3509
control/PDU-AC-New-6/Project/Listings/6通道-2024-8-10-New.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3470
control/PDU-AC-New-6/Project/Listings/GD32KeilPrj.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3434
control/PDU-AC-New-6/Project/Listings/jeff-23A-5通道-2024-6-23.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3497
control/PDU-AC-New-6/Project/Listings/jeff-23A-5通道-2024-6-25.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3518
control/PDU-AC-New-6/Project/Listings/jeff-23A-6通道-2024-6-26.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3491
control/PDU-AC-New-6/Project/Listings/jeff-23A-6通道-2024-7-27.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3518
control/PDU-AC-New-6/Project/Listings/jeff-23A-8通道-2024-6-23.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3518
control/PDU-AC-New-6/Project/Listings/jeff-23A-8通道-2024-6-25.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3518
control/PDU-AC-New-6/Project/Listings/jeff-23A-8通道-2024-7-3.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3440
control/PDU-AC-New-6/Project/Listings/jeff-40A-1通道-2024-6-23.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3440
control/PDU-AC-New-6/Project/Listings/jeff-40A-1通道-2024-6-24.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3432
control/PDU-AC-New-6/Project/Listings/jeff-40A-1通道-2024-7-9.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3465
control/PDU-AC-New-6/Project/Listings/jeff-40A-4通道-2024-6-23.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3465
control/PDU-AC-New-6/Project/Listings/jeff-40A-4通道-2024-6-24.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3465
control/PDU-AC-New-6/Project/Listings/jeff-40A-4通道-2024-7-9.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 3434
control/PDU-AC-New-6/Project/Listings/jeff-40A-5通道-2024-6-24.map


+ 0 - 942
control/PDU-AC-New-6/Project/Listings/startup_gd32e230.lst

@@ -1,942 +0,0 @@
-
-
-
-ARM Macro Assembler    Page 1 
-
-
-    1 00000000         ;/*!
-    2 00000000         ;    \file    startup_gd32e230.s
-    3 00000000         ;    \brief   start up file
-    4 00000000         ;
-    5 00000000         ;    \version 2018-6-19, V1.0.0, firmware for GD32E230
-    6 00000000         ;*/
-    7 00000000         ;
-    8 00000000         ;/*
-    9 00000000         ;    Copyright (c) 2018, GigaDevice Semiconductor Inc.
-   10 00000000         ;
-   11 00000000         ;    All rights reserved.
-   12 00000000         ;
-   13 00000000         ;    Redistribution and use in source and binary forms, 
-                       with or without modification, 
-   14 00000000         ;are permitted provided that the following conditions ar
-                       e met:
-   15 00000000         ;
-   16 00000000         ;    1. Redistributions of source code must retain the a
-                       bove copyright notice, this 
-   17 00000000         ;       list of conditions and the following disclaimer.
-                       
-   18 00000000         ;    2. Redistributions in binary form must reproduce th
-                       e above copyright notice, 
-   19 00000000         ;       this list of conditions and the following discla
-                       imer in the documentation 
-   20 00000000         ;       and/or other materials provided with the distrib
-                       ution.
-   21 00000000         ;    3. Neither the name of the copyright holder nor the
-                        names of its contributors 
-   22 00000000         ;       may be used to endorse or promote products deriv
-                       ed from this software without 
-   23 00000000         ;       specific prior written permission.
-   24 00000000         ;
-   25 00000000         ;    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 
-                       AND CONTRIBUTORS "AS IS" 
-   26 00000000         ;AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT N
-                       OT LIMITED TO, THE IMPLIED 
-   27 00000000         ;WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICU
-                       LAR PURPOSE ARE DISCLAIMED. 
-   28 00000000         ;IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS 
-                       BE LIABLE FOR ANY DIRECT, 
-   29 00000000         ;INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENT
-                       IAL DAMAGES (INCLUDING, BUT 
-   30 00000000         ;NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERV
-                       ICES; LOSS OF USE, DATA, OR 
-   31 00000000         ;PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND O
-                       N ANY THEORY OF LIABILITY, 
-   32 00000000         ;WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDI
-                       NG NEGLIGENCE OR OTHERWISE) 
-   33 00000000         ;ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVE
-                       N IF ADVISED OF THE POSSIBILITY 
-   34 00000000         ;OF SUCH DAMAGE.
-   35 00000000         ;*/
-   36 00000000         
-   37 00000000         ; <h> Stack Configuration
-   38 00000000         ;   <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
-   39 00000000         ; </h>
-   40 00000000         
-   41 00000000 00000400 
-
-
-
-ARM Macro Assembler    Page 2 
-
-
-                       Stack_Size
-                               EQU              0x00000400
-   42 00000000         
-   43 00000000                 AREA             STACK, NOINIT, READWRITE, ALIGN
-=3
-   44 00000000         Stack_Mem
-                               SPACE            Stack_Size
-   45 00000400         __initial_sp
-   46 00000400         
-   47 00000400         
-   48 00000400         ; <h> Heap Configuration
-   49 00000400         ;   <o>  Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
-   50 00000400         ; </h>
-   51 00000400         
-   52 00000400 00000400 
-                       Heap_Size
-                               EQU              0x00000400
-   53 00000400         
-   54 00000400                 AREA             HEAP, NOINIT, READWRITE, ALIGN=
-3
-   55 00000000         __heap_base
-   56 00000000         Heap_Mem
-                               SPACE            Heap_Size
-   57 00000400         __heap_limit
-   58 00000400         
-   59 00000400                 PRESERVE8
-   60 00000400                 THUMB
-   61 00000400         
-   62 00000400         ;               /* reset Vector Mapped to at Address 0 *
-                       /
-   63 00000400                 AREA             RESET, DATA, READONLY
-   64 00000000                 EXPORT           __Vectors
-   65 00000000                 EXPORT           __Vectors_End
-   66 00000000                 EXPORT           __Vectors_Size
-   67 00000000         
-   68 00000000 00000000 
-                       __Vectors
-                               DCD              __initial_sp ; Top of Stack
-   69 00000004 00000000        DCD              Reset_Handler ; Reset Handler
-   70 00000008 00000000        DCD              NMI_Handler ; NMI Handler
-   71 0000000C 00000000        DCD              HardFault_Handler ; Hard Fault 
-                                                            Handler
-   72 00000010 00000000        DCD              0           ; Reserved
-   73 00000014 00000000        DCD              0           ; Reserved
-   74 00000018 00000000        DCD              0           ; Reserved
-   75 0000001C 00000000        DCD              0           ; Reserved
-   76 00000020 00000000        DCD              0           ; Reserved
-   77 00000024 00000000        DCD              0           ; Reserved
-   78 00000028 00000000        DCD              0           ; Reserved
-   79 0000002C 00000000        DCD              SVC_Handler ; SVCall Handler
-   80 00000030 00000000        DCD              0           ; Reserved
-   81 00000034 00000000        DCD              0           ; Reserved
-   82 00000038 00000000        DCD              PendSV_Handler ; PendSV Handler
-                                                            
-   83 0000003C 00000000        DCD              SysTick_Handler 
-                                                            ; SysTick Handler
-   84 00000040         
-   85 00000040         ;               /* external interrupts handler */
-   86 00000040 00000000        DCD              WWDGT_IRQHandler ; 16:Window Wa
-
-
-
-ARM Macro Assembler    Page 3 
-
-
-                                                            tchdog Timer
-   87 00000044 00000000        DCD              LVD_IRQHandler ; 17:LVD through
-                                                             EXTI Line detect
-   88 00000048 00000000        DCD              RTC_IRQHandler ; 18:RTC through
-                                                             EXTI Line
-   89 0000004C 00000000        DCD              FMC_IRQHandler ; 19:FMC
-   90 00000050 00000000        DCD              RCU_IRQHandler ; 20:RCU
-   91 00000054 00000000        DCD              EXTI0_1_IRQHandler ; 21:EXTI Li
-                                                            ne 0 and EXTI Line 
-                                                            1
-   92 00000058 00000000        DCD              EXTI2_3_IRQHandler ; 22:EXTI Li
-                                                            ne 2 and EXTI Line 
-                                                            3
-   93 0000005C 00000000        DCD              EXTI4_15_IRQHandler ; 23:EXTI L
-                                                            ine 4 to EXTI Line 
-                                                            15
-   94 00000060 00000000        DCD              0           ; Reserved
-   95 00000064 00000000        DCD              DMA_Channel0_IRQHandler 
-                                                            ; 25:DMA Channel 0 
-                                                            
-   96 00000068 00000000        DCD              DMA_Channel1_2_IRQHandler ; 26:
-                                                            DMA Channel 1 and D
-                                                            MA Channel 2
-   97 0000006C 00000000        DCD              DMA_Channel3_4_IRQHandler ; 27:
-                                                            DMA Channel 3 and D
-                                                            MA Channel 4
-   98 00000070 00000000        DCD              ADC_CMP_IRQHandler ; 28:ADC and
-                                                             Comparator
-   99 00000074 00000000        DCD              TIMER0_BRK_UP_TRG_COM_IRQHandle
-r 
-                                                            ; 29:TIMER0 Break,U
-                                                            pdate,Trigger and C
-                                                            ommutation
-  100 00000078 00000000        DCD              TIMER0_Channel_IRQHandler ; 30:
-                                                            TIMER0 Channel Capt
-                                                            ure Compare
-  101 0000007C 00000000        DCD              0           ; Reserved
-  102 00000080 00000000        DCD              TIMER2_IRQHandler ; 32:TIMER2
-  103 00000084 00000000        DCD              TIMER5_IRQHandler ; 33:TIMER5
-  104 00000088 00000000        DCD              0           ; Reserved
-  105 0000008C 00000000        DCD              TIMER13_IRQHandler ; 35:TIMER13
-                                                            
-  106 00000090 00000000        DCD              TIMER14_IRQHandler ; 36:TIMER14
-                                                            
-  107 00000094 00000000        DCD              TIMER15_IRQHandler ; 37:TIMER15
-                                                            
-  108 00000098 00000000        DCD              TIMER16_IRQHandler ; 38:TIMER16
-                                                            
-  109 0000009C 00000000        DCD              I2C0_EV_IRQHandler 
-                                                            ; 39:I2C0 Event
-  110 000000A0 00000000        DCD              I2C1_EV_IRQHandler 
-                                                            ; 40:I2C1 Event
-  111 000000A4 00000000        DCD              SPI0_IRQHandler ; 41:SPI0
-  112 000000A8 00000000        DCD              SPI1_IRQHandler ; 42:SPI1
-  113 000000AC 00000000        DCD              USART0_IRQHandler ; 43:USART0
-  114 000000B0 00000000        DCD              USART1_IRQHandler ; 44:USART1
-  115 000000B4 00000000        DCD              0           ; Reserved
-  116 000000B8 00000000        DCD              0           ; Reserved
-  117 000000BC 00000000        DCD              0           ; Reserved
-
-
-
-ARM Macro Assembler    Page 4 
-
-
-  118 000000C0 00000000        DCD              I2C0_ER_IRQHandler 
-                                                            ; 48:I2C0 Error
-  119 000000C4 00000000        DCD              0           ; Reserved
-  120 000000C8 00000000        DCD              I2C1_ER_IRQHandler 
-                                                            ; 50:I2C1 Error
-  121 000000CC         __Vectors_End
-  122 000000CC         
-  123 000000CC 000000CC 
-                       __Vectors_Size
-                               EQU              __Vectors_End - __Vectors
-  124 000000CC         
-  125 000000CC                 AREA             |.text|, CODE, READONLY
-  126 00000000         
-  127 00000000         ;/* reset Handler */
-  128 00000000         Reset_Handler
-                               PROC
-  129 00000000                 EXPORT           Reset_Handler                  
-   [WEAK]
-  130 00000000                 IMPORT           SystemInit
-  131 00000000                 IMPORT           __main
-  132 00000000 4807            LDR              R0, =SystemInit
-  133 00000002 4780            BLX              R0
-  134 00000004 4807            LDR              R0, =__main
-  135 00000006 4700            BX               R0
-  136 00000008                 ENDP
-  137 00000008         
-  138 00000008         ;/* dummy Exception Handlers */
-  140 00000008         NMI_Handler
-                               PROC
-  141 00000008                 EXPORT           NMI_Handler                    
-   [WEAK]
-  142 00000008 E7FE            B                .
-  143 0000000A                 ENDP
-  145 0000000A         HardFault_Handler
-                               PROC
-  146 0000000A                 EXPORT           HardFault_Handler              
-   [WEAK]
-  147 0000000A E7FE            B                .
-  148 0000000C                 ENDP
-  150 0000000C         SVC_Handler
-                               PROC
-  151 0000000C                 EXPORT           SVC_Handler                    
-   [WEAK]
-  152 0000000C E7FE            B                .
-  153 0000000E                 ENDP
-  155 0000000E         PendSV_Handler
-                               PROC
-  156 0000000E                 EXPORT           PendSV_Handler                 
-   [WEAK]
-  157 0000000E E7FE            B                .
-  158 00000010                 ENDP
-  160 00000010         SysTick_Handler
-                               PROC
-  161 00000010                 EXPORT           SysTick_Handler                
-   [WEAK]
-  162 00000010 E7FE            B                .
-  163 00000012                 ENDP
-  164 00000012         
-  165 00000012         Default_Handler
-
-
-
-ARM Macro Assembler    Page 5 
-
-
-                               PROC
-  166 00000012         ;               /* external interrupts handler */
-  167 00000012                 EXPORT           WWDGT_IRQHandler               
-   [WEAK]
-  168 00000012                 EXPORT           LVD_IRQHandler                 
-   [WEAK]
-  169 00000012                 EXPORT           RTC_IRQHandler                 
-   [WEAK]
-  170 00000012                 EXPORT           FMC_IRQHandler                 
-   [WEAK]
-  171 00000012                 EXPORT           RCU_IRQHandler                 
-   [WEAK]
-  172 00000012                 EXPORT           EXTI0_1_IRQHandler             
-   [WEAK]
-  173 00000012                 EXPORT           EXTI2_3_IRQHandler             
-   [WEAK]
-  174 00000012                 EXPORT           EXTI4_15_IRQHandler            
-   [WEAK]
-  175 00000012                 EXPORT           DMA_Channel0_IRQHandler        
-   [WEAK]
-  176 00000012                 EXPORT           DMA_Channel1_2_IRQHandler      
-   [WEAK]
-  177 00000012                 EXPORT           DMA_Channel3_4_IRQHandler      
-   [WEAK]
-  178 00000012                 EXPORT           ADC_CMP_IRQHandler             
-   [WEAK]
-  179 00000012                 EXPORT           TIMER0_BRK_UP_TRG_COM_IRQHandle
-r  [WEAK]
-  180 00000012                 EXPORT           TIMER0_Channel_IRQHandler      
-   [WEAK]
-  181 00000012                 EXPORT           TIMER2_IRQHandler              
-   [WEAK]
-  182 00000012                 EXPORT           TIMER5_IRQHandler              
-   [WEAK]
-  183 00000012                 EXPORT           TIMER13_IRQHandler             
-   [WEAK]
-  184 00000012                 EXPORT           TIMER14_IRQHandler             
-   [WEAK]
-  185 00000012                 EXPORT           TIMER15_IRQHandler             
-   [WEAK]
-  186 00000012                 EXPORT           TIMER16_IRQHandler             
-   [WEAK]
-  187 00000012                 EXPORT           I2C0_EV_IRQHandler             
-   [WEAK]
-  188 00000012                 EXPORT           I2C1_EV_IRQHandler             
-   [WEAK]
-  189 00000012                 EXPORT           SPI0_IRQHandler                
-   [WEAK]
-  190 00000012                 EXPORT           SPI1_IRQHandler                
-   [WEAK]
-  191 00000012                 EXPORT           USART0_IRQHandler              
-   [WEAK]
-  192 00000012                 EXPORT           USART1_IRQHandler              
-   [WEAK]
-  193 00000012                 EXPORT           I2C0_ER_IRQHandler             
-   [WEAK]
-  194 00000012                 EXPORT           I2C1_ER_IRQHandler             
-   [WEAK]
-  195 00000012         
-
-
-
-ARM Macro Assembler    Page 6 
-
-
-  196 00000012         ;/* external interrupts handler */
-  197 00000012         WWDGT_IRQHandler
-  198 00000012         LVD_IRQHandler
-  199 00000012         RTC_IRQHandler
-  200 00000012         FMC_IRQHandler
-  201 00000012         RCU_IRQHandler
-  202 00000012         EXTI0_1_IRQHandler
-  203 00000012         EXTI2_3_IRQHandler
-  204 00000012         EXTI4_15_IRQHandler
-  205 00000012         DMA_Channel0_IRQHandler
-  206 00000012         DMA_Channel1_2_IRQHandler
-  207 00000012         DMA_Channel3_4_IRQHandler
-  208 00000012         ADC_CMP_IRQHandler
-  209 00000012         TIMER0_BRK_UP_TRG_COM_IRQHandler
-  210 00000012         TIMER0_Channel_IRQHandler
-  211 00000012         TIMER2_IRQHandler
-  212 00000012         TIMER5_IRQHandler
-  213 00000012         TIMER13_IRQHandler
-  214 00000012         TIMER14_IRQHandler
-  215 00000012         TIMER15_IRQHandler
-  216 00000012         TIMER16_IRQHandler
-  217 00000012         I2C0_EV_IRQHandler
-  218 00000012         I2C1_EV_IRQHandler
-  219 00000012         SPI0_IRQHandler
-  220 00000012         SPI1_IRQHandler
-  221 00000012         USART0_IRQHandler
-  222 00000012         USART1_IRQHandler
-  223 00000012         I2C0_ER_IRQHandler
-  224 00000012         I2C1_ER_IRQHandler
-  225 00000012         
-  226 00000012 E7FE            B                .
-  227 00000014                 ENDP
-  228 00000014         
-  229 00000014                 ALIGN
-  230 00000014         
-  231 00000014         ; user Initial Stack & Heap
-  232 00000014         
-  233 00000014                 IF               :DEF:__MICROLIB
-  240 00000014         
-  241 00000014                 IMPORT           __use_two_region_memory
-  242 00000014                 EXPORT           __user_initial_stackheap
-  243 00000014         
-  244 00000014         __user_initial_stackheap
-                               PROC
-  245 00000014 4804            LDR              R0, =  Heap_Mem
-  246 00000016 4905            LDR              R1, =(Stack_Mem + Stack_Size)
-  247 00000018 4A05            LDR              R2, = (Heap_Mem +  Heap_Size)
-  248 0000001A 4B06            LDR              R3, = Stack_Mem
-  249 0000001C 4770            BX               LR
-  250 0000001E                 ENDP
-  251 0000001E         
-  252 0000001E 00 00           ALIGN
-  253 00000020         
-  254 00000020                 ENDIF
-  255 00000020         
-  256 00000020                 END
-              00000000 
-              00000000 
-              00000000 
-
-
-
-ARM Macro Assembler    Page 7 
-
-
-              00000400 
-              00000400 
-              00000000 
-Command Line: --xref --diag_suppress=9931 --cpu=Cortex-M23 --depend=.\objects\s
-tartup_gd32e230.d -o.\objects\startup_gd32e230.o -I.\RTE\_Target_1 -ID:\Keil_v5
-\pack\ARM\CMSIS\5.8.0\CMSIS\Core\Include -ID:\Keil_v5\pack\GigaDevice\GD32E23x_
-DFP\1.0.2\Device\Include --predefine="__UVISION_VERSION SETA 536" --predefine="
-_RTE_ SETA 1" --predefine="GD32E23x SETA 1" --predefine="_RTE_ SETA 1" --list=.
-\listings\startup_gd32e230.lst ..\ARM\System\startup_gd32e230.s
-
-
-
-ARM Macro Assembler    Page 1 Alphabetic symbol ordering
-Relocatable symbols
-
-STACK 00000000
-
-Symbol: STACK
-   Definitions
-      At line 43 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      None
-Comment: STACK unused
-Stack_Mem 00000000
-
-Symbol: Stack_Mem
-   Definitions
-      At line 44 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 246 in file ..\ARM\System\startup_gd32e230.s
-      At line 248 in file ..\ARM\System\startup_gd32e230.s
-
-__initial_sp 00000400
-
-Symbol: __initial_sp
-   Definitions
-      At line 45 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 68 in file ..\ARM\System\startup_gd32e230.s
-Comment: __initial_sp used once
-3 symbols
-
-
-
-ARM Macro Assembler    Page 1 Alphabetic symbol ordering
-Relocatable symbols
-
-HEAP 00000000
-
-Symbol: HEAP
-   Definitions
-      At line 54 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      None
-Comment: HEAP unused
-Heap_Mem 00000000
-
-Symbol: Heap_Mem
-   Definitions
-      At line 56 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 245 in file ..\ARM\System\startup_gd32e230.s
-      At line 247 in file ..\ARM\System\startup_gd32e230.s
-
-__heap_base 00000000
-
-Symbol: __heap_base
-   Definitions
-      At line 55 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      None
-Comment: __heap_base unused
-__heap_limit 00000400
-
-Symbol: __heap_limit
-   Definitions
-      At line 57 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      None
-Comment: __heap_limit unused
-4 symbols
-
-
-
-ARM Macro Assembler    Page 1 Alphabetic symbol ordering
-Relocatable symbols
-
-RESET 00000000
-
-Symbol: RESET
-   Definitions
-      At line 63 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      None
-Comment: RESET unused
-__Vectors 00000000
-
-Symbol: __Vectors
-   Definitions
-      At line 68 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 64 in file ..\ARM\System\startup_gd32e230.s
-      At line 123 in file ..\ARM\System\startup_gd32e230.s
-
-__Vectors_End 000000CC
-
-Symbol: __Vectors_End
-   Definitions
-      At line 121 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 65 in file ..\ARM\System\startup_gd32e230.s
-      At line 123 in file ..\ARM\System\startup_gd32e230.s
-
-3 symbols
-
-
-
-ARM Macro Assembler    Page 1 Alphabetic symbol ordering
-Relocatable symbols
-
-.text 00000000
-
-Symbol: .text
-   Definitions
-      At line 125 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      None
-Comment: .text unused
-ADC_CMP_IRQHandler 00000012
-
-Symbol: ADC_CMP_IRQHandler
-   Definitions
-      At line 208 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 98 in file ..\ARM\System\startup_gd32e230.s
-      At line 178 in file ..\ARM\System\startup_gd32e230.s
-
-DMA_Channel0_IRQHandler 00000012
-
-Symbol: DMA_Channel0_IRQHandler
-   Definitions
-      At line 205 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 95 in file ..\ARM\System\startup_gd32e230.s
-      At line 175 in file ..\ARM\System\startup_gd32e230.s
-
-DMA_Channel1_2_IRQHandler 00000012
-
-Symbol: DMA_Channel1_2_IRQHandler
-   Definitions
-      At line 206 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 96 in file ..\ARM\System\startup_gd32e230.s
-      At line 176 in file ..\ARM\System\startup_gd32e230.s
-
-DMA_Channel3_4_IRQHandler 00000012
-
-Symbol: DMA_Channel3_4_IRQHandler
-   Definitions
-      At line 207 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 97 in file ..\ARM\System\startup_gd32e230.s
-      At line 177 in file ..\ARM\System\startup_gd32e230.s
-
-Default_Handler 00000012
-
-Symbol: Default_Handler
-   Definitions
-      At line 165 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      None
-Comment: Default_Handler unused
-EXTI0_1_IRQHandler 00000012
-
-Symbol: EXTI0_1_IRQHandler
-   Definitions
-      At line 202 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 91 in file ..\ARM\System\startup_gd32e230.s
-
-
-
-ARM Macro Assembler    Page 2 Alphabetic symbol ordering
-Relocatable symbols
-
-      At line 172 in file ..\ARM\System\startup_gd32e230.s
-
-EXTI2_3_IRQHandler 00000012
-
-Symbol: EXTI2_3_IRQHandler
-   Definitions
-      At line 203 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 92 in file ..\ARM\System\startup_gd32e230.s
-      At line 173 in file ..\ARM\System\startup_gd32e230.s
-
-EXTI4_15_IRQHandler 00000012
-
-Symbol: EXTI4_15_IRQHandler
-   Definitions
-      At line 204 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 93 in file ..\ARM\System\startup_gd32e230.s
-      At line 174 in file ..\ARM\System\startup_gd32e230.s
-
-FMC_IRQHandler 00000012
-
-Symbol: FMC_IRQHandler
-   Definitions
-      At line 200 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 89 in file ..\ARM\System\startup_gd32e230.s
-      At line 170 in file ..\ARM\System\startup_gd32e230.s
-
-HardFault_Handler 0000000A
-
-Symbol: HardFault_Handler
-   Definitions
-      At line 145 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 71 in file ..\ARM\System\startup_gd32e230.s
-      At line 146 in file ..\ARM\System\startup_gd32e230.s
-
-I2C0_ER_IRQHandler 00000012
-
-Symbol: I2C0_ER_IRQHandler
-   Definitions
-      At line 223 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 118 in file ..\ARM\System\startup_gd32e230.s
-      At line 193 in file ..\ARM\System\startup_gd32e230.s
-
-I2C0_EV_IRQHandler 00000012
-
-Symbol: I2C0_EV_IRQHandler
-   Definitions
-      At line 217 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 109 in file ..\ARM\System\startup_gd32e230.s
-      At line 187 in file ..\ARM\System\startup_gd32e230.s
-
-I2C1_ER_IRQHandler 00000012
-
-Symbol: I2C1_ER_IRQHandler
-
-
-
-ARM Macro Assembler    Page 3 Alphabetic symbol ordering
-Relocatable symbols
-
-   Definitions
-      At line 224 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 120 in file ..\ARM\System\startup_gd32e230.s
-      At line 194 in file ..\ARM\System\startup_gd32e230.s
-
-I2C1_EV_IRQHandler 00000012
-
-Symbol: I2C1_EV_IRQHandler
-   Definitions
-      At line 218 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 110 in file ..\ARM\System\startup_gd32e230.s
-      At line 188 in file ..\ARM\System\startup_gd32e230.s
-
-LVD_IRQHandler 00000012
-
-Symbol: LVD_IRQHandler
-   Definitions
-      At line 198 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 87 in file ..\ARM\System\startup_gd32e230.s
-      At line 168 in file ..\ARM\System\startup_gd32e230.s
-
-NMI_Handler 00000008
-
-Symbol: NMI_Handler
-   Definitions
-      At line 140 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 70 in file ..\ARM\System\startup_gd32e230.s
-      At line 141 in file ..\ARM\System\startup_gd32e230.s
-
-PendSV_Handler 0000000E
-
-Symbol: PendSV_Handler
-   Definitions
-      At line 155 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 82 in file ..\ARM\System\startup_gd32e230.s
-      At line 156 in file ..\ARM\System\startup_gd32e230.s
-
-RCU_IRQHandler 00000012
-
-Symbol: RCU_IRQHandler
-   Definitions
-      At line 201 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 90 in file ..\ARM\System\startup_gd32e230.s
-      At line 171 in file ..\ARM\System\startup_gd32e230.s
-
-RTC_IRQHandler 00000012
-
-Symbol: RTC_IRQHandler
-   Definitions
-      At line 199 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 88 in file ..\ARM\System\startup_gd32e230.s
-      At line 169 in file ..\ARM\System\startup_gd32e230.s
-
-
-
-ARM Macro Assembler    Page 4 Alphabetic symbol ordering
-Relocatable symbols
-
-
-Reset_Handler 00000000
-
-Symbol: Reset_Handler
-   Definitions
-      At line 128 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 69 in file ..\ARM\System\startup_gd32e230.s
-      At line 129 in file ..\ARM\System\startup_gd32e230.s
-
-SPI0_IRQHandler 00000012
-
-Symbol: SPI0_IRQHandler
-   Definitions
-      At line 219 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 111 in file ..\ARM\System\startup_gd32e230.s
-      At line 189 in file ..\ARM\System\startup_gd32e230.s
-
-SPI1_IRQHandler 00000012
-
-Symbol: SPI1_IRQHandler
-   Definitions
-      At line 220 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 112 in file ..\ARM\System\startup_gd32e230.s
-      At line 190 in file ..\ARM\System\startup_gd32e230.s
-
-SVC_Handler 0000000C
-
-Symbol: SVC_Handler
-   Definitions
-      At line 150 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 79 in file ..\ARM\System\startup_gd32e230.s
-      At line 151 in file ..\ARM\System\startup_gd32e230.s
-
-SysTick_Handler 00000010
-
-Symbol: SysTick_Handler
-   Definitions
-      At line 160 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 83 in file ..\ARM\System\startup_gd32e230.s
-      At line 161 in file ..\ARM\System\startup_gd32e230.s
-
-TIMER0_BRK_UP_TRG_COM_IRQHandler 00000012
-
-Symbol: TIMER0_BRK_UP_TRG_COM_IRQHandler
-   Definitions
-      At line 209 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 99 in file ..\ARM\System\startup_gd32e230.s
-      At line 179 in file ..\ARM\System\startup_gd32e230.s
-
-TIMER0_Channel_IRQHandler 00000012
-
-Symbol: TIMER0_Channel_IRQHandler
-   Definitions
-
-
-
-ARM Macro Assembler    Page 5 Alphabetic symbol ordering
-Relocatable symbols
-
-      At line 210 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 100 in file ..\ARM\System\startup_gd32e230.s
-      At line 180 in file ..\ARM\System\startup_gd32e230.s
-
-TIMER13_IRQHandler 00000012
-
-Symbol: TIMER13_IRQHandler
-   Definitions
-      At line 213 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 105 in file ..\ARM\System\startup_gd32e230.s
-      At line 183 in file ..\ARM\System\startup_gd32e230.s
-
-TIMER14_IRQHandler 00000012
-
-Symbol: TIMER14_IRQHandler
-   Definitions
-      At line 214 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 106 in file ..\ARM\System\startup_gd32e230.s
-      At line 184 in file ..\ARM\System\startup_gd32e230.s
-
-TIMER15_IRQHandler 00000012
-
-Symbol: TIMER15_IRQHandler
-   Definitions
-      At line 215 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 107 in file ..\ARM\System\startup_gd32e230.s
-      At line 185 in file ..\ARM\System\startup_gd32e230.s
-
-TIMER16_IRQHandler 00000012
-
-Symbol: TIMER16_IRQHandler
-   Definitions
-      At line 216 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 108 in file ..\ARM\System\startup_gd32e230.s
-      At line 186 in file ..\ARM\System\startup_gd32e230.s
-
-TIMER2_IRQHandler 00000012
-
-Symbol: TIMER2_IRQHandler
-   Definitions
-      At line 211 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 102 in file ..\ARM\System\startup_gd32e230.s
-      At line 181 in file ..\ARM\System\startup_gd32e230.s
-
-TIMER5_IRQHandler 00000012
-
-Symbol: TIMER5_IRQHandler
-   Definitions
-      At line 212 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 103 in file ..\ARM\System\startup_gd32e230.s
-      At line 182 in file ..\ARM\System\startup_gd32e230.s
-
-
-
-
-ARM Macro Assembler    Page 6 Alphabetic symbol ordering
-Relocatable symbols
-
-USART0_IRQHandler 00000012
-
-Symbol: USART0_IRQHandler
-   Definitions
-      At line 221 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 113 in file ..\ARM\System\startup_gd32e230.s
-      At line 191 in file ..\ARM\System\startup_gd32e230.s
-
-USART1_IRQHandler 00000012
-
-Symbol: USART1_IRQHandler
-   Definitions
-      At line 222 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 114 in file ..\ARM\System\startup_gd32e230.s
-      At line 192 in file ..\ARM\System\startup_gd32e230.s
-
-WWDGT_IRQHandler 00000012
-
-Symbol: WWDGT_IRQHandler
-   Definitions
-      At line 197 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 86 in file ..\ARM\System\startup_gd32e230.s
-      At line 167 in file ..\ARM\System\startup_gd32e230.s
-
-__user_initial_stackheap 00000014
-
-Symbol: __user_initial_stackheap
-   Definitions
-      At line 244 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 242 in file ..\ARM\System\startup_gd32e230.s
-Comment: __user_initial_stackheap used once
-37 symbols
-
-
-
-ARM Macro Assembler    Page 1 Alphabetic symbol ordering
-Absolute symbols
-
-Heap_Size 00000400
-
-Symbol: Heap_Size
-   Definitions
-      At line 52 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 56 in file ..\ARM\System\startup_gd32e230.s
-      At line 247 in file ..\ARM\System\startup_gd32e230.s
-
-Stack_Size 00000400
-
-Symbol: Stack_Size
-   Definitions
-      At line 41 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 44 in file ..\ARM\System\startup_gd32e230.s
-      At line 246 in file ..\ARM\System\startup_gd32e230.s
-
-__Vectors_Size 000000CC
-
-Symbol: __Vectors_Size
-   Definitions
-      At line 123 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 66 in file ..\ARM\System\startup_gd32e230.s
-Comment: __Vectors_Size used once
-3 symbols
-
-
-
-ARM Macro Assembler    Page 1 Alphabetic symbol ordering
-External symbols
-
-SystemInit 00000000
-
-Symbol: SystemInit
-   Definitions
-      At line 130 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 132 in file ..\ARM\System\startup_gd32e230.s
-Comment: SystemInit used once
-__main 00000000
-
-Symbol: __main
-   Definitions
-      At line 131 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      At line 134 in file ..\ARM\System\startup_gd32e230.s
-Comment: __main used once
-__use_two_region_memory 00000000
-
-Symbol: __use_two_region_memory
-   Definitions
-      At line 241 in file ..\ARM\System\startup_gd32e230.s
-   Uses
-      None
-Comment: __use_two_region_memory unused
-3 symbols
-390 symbols in table

Разница между файлами не показана из-за своего большого размера
+ 0 - 3499
control/PDU-AC-New-6/Project/Listings/test_debug.map


BIN
control/PDU-AC-New-6/Project/Objects/6通道-2024-8-10-New.axf


+ 0 - 105
control/PDU-AC-New-6/Project/Objects/6通道-2024-8-10-New.build_log.htm

@@ -1,105 +0,0 @@
-<html>
-<body>
-<pre>
-<h1>µVision Build Log</h1>
-<h2>Tool Versions:</h2>
-IDE-Version: ¦ÌVision V5.36.0.0
-Copyright (C) 2021 ARM Ltd and ARM Germany GmbH. All rights reserved.
-License Information: 1 2, 1, LIC=76F5U-SJEFT-KP0ZY-ILYRT-02QWL-LDLC1
- 
-Tool Versions:
-Toolchain:       MDK-ARM Plus  Version: 5.36.0.0
-Toolchain Path:  D:\Keil_v5\ARM\ARMCLANG\Bin
-C Compiler:      ArmClang.exe V6.16
-Assembler:       Armasm.exe V6.16
-Linker/Locator:  ArmLink.exe V6.16
-Library Manager: ArmAr.exe V6.16
-Hex Converter:   FromElf.exe V6.16
-CPU DLL:         
-Dialog DLL:      
-Target DLL:      Segger\JL2CM3.dll V2.99.40.0
-Dialog DLL:      TCM.DLL V1.53.0.0
- 
-<h2>Project:</h2>
-C:\Users\Gowon\Desktop\PDU-V1.20\Project\GD32KeilPrj.uvprojx
-Project File Date:  08/10/2024
-
-<h2>Output:</h2>
-*** Using Compiler 'V6.16', folder: 'D:\Keil_v5\ARM\ARMCLANG\Bin'
-Rebuild target 'Target 1'
-compiling Wwdgt.c...
-compiling At24cxx.c...
-compiling Key.c...
-compiling Relay.c...
-compiling Queue.c...
-compiling Rcu.c...
-compiling Led.c...
-compiling Sn74lvc573.c...
-compiling I2c.c...
-compiling Uart1.c...
-compiling Timer.c...
-compiling ReadEeprom.c...
-compiling Hlw8110.c...
-compiling gd32e230_fmc.c...
-../App/Main/Main.c(1023): warning: function declared 'noreturn' should not return [-Winvalid-noreturn]
-}
-^
-1 warning generated.
-compiling Main.c...
-compiling gd32e230_gpio.c...
-compiling gd32e230_misc.c...
-compiling gd32e230_rcu.c...
-compiling gd32e230_timer.c...
-compiling gd32e230_wwdgt.c...
-compiling gd32e230_usart.c...
-compiling gd32e230_it.c...
-assembling startup_gd32e230.s...
-compiling system_gd32e230.c...
-compiling NVIC.c...
-compiling SysTick.c...
-compiling mbascii.c...
-compiling portevent.c...
-compiling portserial.c...
-compiling porttimer.c...
-compiling mbfunccoils.c...
-compiling mbfuncdiag.c...
-compiling mbfuncdisc.c...
-compiling mbfuncholding.c...
-compiling mbfuncinput.c...
-compiling mbfuncother.c...
-compiling mbutils.c...
-compiling mbcrc.c...
-compiling mbrtu.c...
-compiling mbtcp.c...
-compiling mb.c...
-compiling port.c...
-linking...
-Program Size: Code=18076 RO-data=1044 RW-data=144 ZI-data=6480  
-FromELF: creating hex file...
-".\Objects\6ͨµÀ-2024-8-10-New.axf" - 0 Error(s), 1 Warning(s).
-
-<h2>Software Packages used:</h2>
-
-Package Vendor: ARM
-                http://www.keil.com/pack/ARM.CMSIS.5.8.0.pack
-                ARM.CMSIS.5.8.0
-                CMSIS (Common Microcontroller Software Interface Standard)
-   * Component: CORE Version: 5.5.0
-
-Package Vendor: GigaDevice
-                https://gd32mcu.com/data/documents/pack/GigaDevice.GD32E23x_DFP.1.0.2.pack
-                GigaDevice.GD32E23x_DFP.1.0.2
-                GigaDevice GD32E23x Series Device Support and Examples
-
-<h2>Collection of Component include folders:</h2>
-  .\RTE\_Target_1
-  D:\Keil_v5\pack\ARM\CMSIS\5.8.0\CMSIS\Core\Include
-  D:\Keil_v5\pack\GigaDevice\GD32E23x_DFP\1.0.2\Device\Include
-
-<h2>Collection of Component Files used:</h2>
-
-   * Component: ARM::CMSIS:CORE:5.5.0
-Build Time Elapsed:  00:00:04
-</pre>
-</body>
-</html>

Разница между файлами не показана из-за своего большого размера
+ 0 - 1207
control/PDU-AC-New-6/Project/Objects/6通道-2024-8-10-New.hex


Разница между файлами не показана из-за своего большого размера
+ 0 - 2172
control/PDU-AC-New-6/Project/Objects/6通道-2024-8-10-New.htm


+ 0 - 47
control/PDU-AC-New-6/Project/Objects/6通道-2024-8-10-New.lnp

@@ -1,47 +0,0 @@
---cpu=Cortex-M23
-".\objects\main.o"
-".\objects\timer.o"
-".\objects\uart1.o"
-".\objects\led.o"
-".\objects\rcu.o"
-".\objects\queue.o"
-".\objects\relay.o"
-".\objects\key.o"
-".\objects\hlw8110.o"
-".\objects\wwdgt.o"
-".\objects\at24cxx.o"
-".\objects\i2c.o"
-".\objects\readeeprom.o"
-".\objects\sn74lvc573.o"
-".\objects\gd32e230_fmc.o"
-".\objects\gd32e230_gpio.o"
-".\objects\gd32e230_misc.o"
-".\objects\gd32e230_rcu.o"
-".\objects\gd32e230_timer.o"
-".\objects\gd32e230_usart.o"
-".\objects\gd32e230_wwdgt.o"
-".\objects\gd32e230_it.o"
-".\objects\system_gd32e230.o"
-".\objects\startup_gd32e230.o"
-".\objects\nvic.o"
-".\objects\systick.o"
-".\objects\mbascii.o"
-".\objects\portevent.o"
-".\objects\portserial.o"
-".\objects\porttimer.o"
-".\objects\mbfunccoils.o"
-".\objects\mbfuncdiag.o"
-".\objects\mbfuncdisc.o"
-".\objects\mbfuncholding.o"
-".\objects\mbfuncinput.o"
-".\objects\mbfuncother.o"
-".\objects\mbutils.o"
-".\objects\mbcrc.o"
-".\objects\mbrtu.o"
-".\objects\mbtcp.o"
-".\objects\mb.o"
-".\objects\port.o"
---strict --scatter ".\Objects\6ͨµÀ-2024-8-10-New.sct"
---summary_stderr --info summarysizes --map --load_addr_map_info --xref --callgraph --symbols
---info sizes --info totals --info unused --info veneers
---list ".\Listings\6ͨµÀ-2024-8-10-New.map" -o .\Objects\6ͨµÀ-2024-8-10-New.axf

+ 0 - 16
control/PDU-AC-New-6/Project/Objects/6通道-2024-8-10-New.sct

@@ -1,16 +0,0 @@
-; *************************************************************
-; *** Scatter-Loading Description File generated by uVision ***
-; *************************************************************
-
-LR_IROM1 0x08000000 0x00010000  {    ; load region size_region
-  ER_IROM1 0x08000000 0x00010000  {  ; load address = execution address
-   *.o (RESET, +First)
-   *(InRoot$$Sections)
-   .ANY (+RO)
-   .ANY (+XO)
-  }
-  RW_IRAM1 0x20000000 0x00002000  {  ; RW data
-   .ANY (+RW +ZI)
-  }
-}
-

+ 0 - 2
control/PDU-AC-New-6/Project/Objects/ExtDll.iex

@@ -1,2 +0,0 @@
-[EXTDLL]
-Count=0

Разница между файлами не показана из-за своего большого размера
+ 0 - 2122
control/PDU-AC-New-6/Project/Objects/GD32KeilPrj.htm


+ 0 - 47
control/PDU-AC-New-6/Project/Objects/GD32KeilPrj.lnp

@@ -1,47 +0,0 @@
---cpu=Cortex-M23
-".\objects\main.o"
-".\objects\timer.o"
-".\objects\uart1.o"
-".\objects\led.o"
-".\objects\rcu.o"
-".\objects\queue.o"
-".\objects\relay.o"
-".\objects\key.o"
-".\objects\hlw8110.o"
-".\objects\wwdgt.o"
-".\objects\at24cxx.o"
-".\objects\i2c.o"
-".\objects\readeeprom.o"
-".\objects\sn74lvc573.o"
-".\objects\gd32e230_fmc.o"
-".\objects\gd32e230_gpio.o"
-".\objects\gd32e230_misc.o"
-".\objects\gd32e230_rcu.o"
-".\objects\gd32e230_timer.o"
-".\objects\gd32e230_usart.o"
-".\objects\gd32e230_wwdgt.o"
-".\objects\gd32e230_it.o"
-".\objects\system_gd32e230.o"
-".\objects\startup_gd32e230.o"
-".\objects\nvic.o"
-".\objects\systick.o"
-".\objects\mbascii.o"
-".\objects\portevent.o"
-".\objects\portserial.o"
-".\objects\porttimer.o"
-".\objects\mbfunccoils.o"
-".\objects\mbfuncdiag.o"
-".\objects\mbfuncdisc.o"
-".\objects\mbfuncholding.o"
-".\objects\mbfuncinput.o"
-".\objects\mbfuncother.o"
-".\objects\mbutils.o"
-".\objects\mbcrc.o"
-".\objects\mbrtu.o"
-".\objects\mbtcp.o"
-".\objects\mb.o"
-".\objects\port.o"
---strict --scatter ".\Objects\GD32KeilPrj.sct"
---summary_stderr --info summarysizes --map --load_addr_map_info --xref --callgraph --symbols
---info sizes --info totals --info unused --info veneers
---list ".\Listings\GD32KeilPrj.map" -o .\Objects\GD32KeilPrj.axf

+ 0 - 16
control/PDU-AC-New-6/Project/Objects/GD32KeilPrj.sct

@@ -1,16 +0,0 @@
-; *************************************************************
-; *** Scatter-Loading Description File generated by uVision ***
-; *************************************************************
-
-LR_IROM1 0x08000000 0x00010000  {    ; load region size_region
-  ER_IROM1 0x08000000 0x00010000  {  ; load address = execution address
-   *.o (RESET, +First)
-   *(InRoot$$Sections)
-   .ANY (+RO)
-   .ANY (+XO)
-  }
-  RW_IRAM1 0x20000000 0x00002000  {  ; RW data
-   .ANY (+RW +ZI)
-  }
-}
-

Разница между файлами не показана из-за своего большого размера
+ 0 - 1005
control/PDU-AC-New-6/Project/Objects/GD32KeilPrj_Target 1.dep


+ 0 - 20
control/PDU-AC-New-6/Project/Objects/at24cxx.d

@@ -1,20 +0,0 @@
-./objects/at24cxx.o: ..\App\24cxx\At24cxx.c ..\App\24cxx\At24cxx.h \
-  ..\ARM\SysTick\SysTick.h ..\ARM\System\gd32e230.h \
-  D:\Keil_v5\pack\ARM\CMSIS\5.8.0\CMSIS\Core\Include\core_cm23.h \
-  D:\Keil_v5\ARM\ARMCLANG\Bin\..\include\stdint.h \
-  D:\Keil_v5\pack\ARM\CMSIS\5.8.0\CMSIS\Core\Include\cmsis_version.h \
-  D:\Keil_v5\pack\ARM\CMSIS\5.8.0\CMSIS\Core\Include\cmsis_compiler.h \
-  D:\Keil_v5\pack\ARM\CMSIS\5.8.0\CMSIS\Core\Include\cmsis_armclang.h \
-  ..\ARM\System\system_gd32e230.h ..\ARM\System\gd32e230_libopt.h \
-  ..\FW\Include\gd32e230_adc.h ..\FW\Include\gd32e230_crc.h \
-  ..\FW\Include\gd32e230_dbg.h ..\FW\Include\gd32e230_dma.h \
-  ..\FW\Include\gd32e230_exti.h ..\FW\Include\gd32e230_fmc.h \
-  ..\FW\Include\gd32e230_gpio.h ..\FW\Include\gd32e230_syscfg.h \
-  ..\FW\Include\gd32e230_i2c.h ..\FW\Include\gd32e230_fwdgt.h \
-  ..\FW\Include\gd32e230_pmu.h ..\FW\Include\gd32e230_rcu.h \
-  ..\FW\Include\gd32e230_rtc.h ..\FW\Include\gd32e230_spi.h \
-  ..\FW\Include\gd32e230_timer.h ..\FW\Include\gd32e230_usart.h \
-  ..\FW\Include\gd32e230_wwdgt.h ..\FW\Include\gd32e230_misc.h \
-  ..\FW\Include\gd32e230_cmp.h ..\HW\I2c\I2c.h \
-  ..\ARM\System\gd32e230x_conf.h \
-  D:\Keil_v5\ARM\ARMCLANG\Bin\..\include\stdio.h

BIN
control/PDU-AC-New-6/Project/Objects/at24cxx.o


+ 0 - 7
control/PDU-AC-New-6/Project/Objects/demo.d

@@ -1,7 +0,0 @@
-./objects/demo.o: ..\App\Modbus\BARE\demo.c ..\App\Modbus\include\mb.h \
-  ..\App\Modbus\BARE\port\port.h \
-  D:\jeff-soft-path\keil531\ARM\ARMCLANG\Bin\..\include\assert.h \
-  D:\jeff-soft-path\keil531\ARM\ARMCLANG\Bin\..\include\inttypes.h \
-  D:\jeff-soft-path\keil531\ARM\ARMCLANG\Bin\..\include\stdint.h \
-  ..\App\Modbus\include\mbport.h ..\App\Modbus\include\mbproto.h \
-  ..\App\Modbus\include\mbport.h

BIN
control/PDU-AC-New-6/Project/Objects/demo.o


+ 0 - 17
control/PDU-AC-New-6/Project/Objects/gd32e230_fmc.d

@@ -1,17 +0,0 @@
-./objects/gd32e230_fmc.o: ..\FW\Source\gd32e230_fmc.c \
-  ..\FW\Include\gd32e230_fmc.h ..\ARM\System\gd32e230.h \
-  D:\Keil_v5\pack\ARM\CMSIS\5.8.0\CMSIS\Core\Include\core_cm23.h \
-  D:\Keil_v5\ARM\ARMCLANG\Bin\..\include\stdint.h \
-  D:\Keil_v5\pack\ARM\CMSIS\5.8.0\CMSIS\Core\Include\cmsis_version.h \
-  D:\Keil_v5\pack\ARM\CMSIS\5.8.0\CMSIS\Core\Include\cmsis_compiler.h \
-  D:\Keil_v5\pack\ARM\CMSIS\5.8.0\CMSIS\Core\Include\cmsis_armclang.h \
-  ..\ARM\System\system_gd32e230.h ..\ARM\System\gd32e230_libopt.h \
-  ..\FW\Include\gd32e230_adc.h ..\FW\Include\gd32e230_crc.h \
-  ..\FW\Include\gd32e230_dbg.h ..\FW\Include\gd32e230_dma.h \
-  ..\FW\Include\gd32e230_exti.h ..\FW\Include\gd32e230_gpio.h \
-  ..\FW\Include\gd32e230_syscfg.h ..\FW\Include\gd32e230_i2c.h \
-  ..\FW\Include\gd32e230_fwdgt.h ..\FW\Include\gd32e230_pmu.h \
-  ..\FW\Include\gd32e230_rcu.h ..\FW\Include\gd32e230_rtc.h \
-  ..\FW\Include\gd32e230_spi.h ..\FW\Include\gd32e230_timer.h \
-  ..\FW\Include\gd32e230_usart.h ..\FW\Include\gd32e230_wwdgt.h \
-  ..\FW\Include\gd32e230_misc.h ..\FW\Include\gd32e230_cmp.h

BIN
control/PDU-AC-New-6/Project/Objects/gd32e230_fmc.o


+ 0 - 17
control/PDU-AC-New-6/Project/Objects/gd32e230_gpio.d

@@ -1,17 +0,0 @@
-./objects/gd32e230_gpio.o: ..\FW\Source\gd32e230_gpio.c \
-  ..\FW\Include\gd32e230_gpio.h ..\ARM\System\gd32e230.h \
-  D:\Keil_v5\pack\ARM\CMSIS\5.8.0\CMSIS\Core\Include\core_cm23.h \
-  D:\Keil_v5\ARM\ARMCLANG\Bin\..\include\stdint.h \
-  D:\Keil_v5\pack\ARM\CMSIS\5.8.0\CMSIS\Core\Include\cmsis_version.h \
-  D:\Keil_v5\pack\ARM\CMSIS\5.8.0\CMSIS\Core\Include\cmsis_compiler.h \
-  D:\Keil_v5\pack\ARM\CMSIS\5.8.0\CMSIS\Core\Include\cmsis_armclang.h \
-  ..\ARM\System\system_gd32e230.h ..\ARM\System\gd32e230_libopt.h \
-  ..\FW\Include\gd32e230_adc.h ..\FW\Include\gd32e230_crc.h \
-  ..\FW\Include\gd32e230_dbg.h ..\FW\Include\gd32e230_dma.h \
-  ..\FW\Include\gd32e230_exti.h ..\FW\Include\gd32e230_fmc.h \
-  ..\FW\Include\gd32e230_syscfg.h ..\FW\Include\gd32e230_i2c.h \
-  ..\FW\Include\gd32e230_fwdgt.h ..\FW\Include\gd32e230_pmu.h \
-  ..\FW\Include\gd32e230_rcu.h ..\FW\Include\gd32e230_rtc.h \
-  ..\FW\Include\gd32e230_spi.h ..\FW\Include\gd32e230_timer.h \
-  ..\FW\Include\gd32e230_usart.h ..\FW\Include\gd32e230_wwdgt.h \
-  ..\FW\Include\gd32e230_misc.h ..\FW\Include\gd32e230_cmp.h

BIN
control/PDU-AC-New-6/Project/Objects/gd32e230_gpio.o


+ 0 - 19
control/PDU-AC-New-6/Project/Objects/gd32e230_it.d

@@ -1,19 +0,0 @@
-./objects/gd32e230_it.o: ..\ARM\System\gd32e230_it.c \
-  ..\ARM\System\gd32e230_it.h ..\ARM\System\gd32e230.h \
-  D:\Keil_v5\pack\ARM\CMSIS\5.8.0\CMSIS\Core\Include\core_cm23.h \
-  D:\Keil_v5\ARM\ARMCLANG\Bin\..\include\stdint.h \
-  D:\Keil_v5\pack\ARM\CMSIS\5.8.0\CMSIS\Core\Include\cmsis_version.h \
-  D:\Keil_v5\pack\ARM\CMSIS\5.8.0\CMSIS\Core\Include\cmsis_compiler.h \
-  D:\Keil_v5\pack\ARM\CMSIS\5.8.0\CMSIS\Core\Include\cmsis_armclang.h \
-  ..\ARM\System\system_gd32e230.h ..\ARM\System\gd32e230_libopt.h \
-  ..\FW\Include\gd32e230_adc.h ..\ARM\System\gd32e230.h \
-  ..\FW\Include\gd32e230_crc.h ..\FW\Include\gd32e230_dbg.h \
-  ..\FW\Include\gd32e230_dma.h ..\FW\Include\gd32e230_exti.h \
-  ..\FW\Include\gd32e230_fmc.h ..\FW\Include\gd32e230_gpio.h \
-  ..\FW\Include\gd32e230_syscfg.h ..\FW\Include\gd32e230_i2c.h \
-  ..\FW\Include\gd32e230_fwdgt.h ..\FW\Include\gd32e230_pmu.h \
-  ..\FW\Include\gd32e230_rcu.h ..\FW\Include\gd32e230_rtc.h \
-  ..\FW\Include\gd32e230_spi.h ..\FW\Include\gd32e230_timer.h \
-  ..\FW\Include\gd32e230_usart.h ..\FW\Include\gd32e230_wwdgt.h \
-  ..\FW\Include\gd32e230_misc.h ..\FW\Include\gd32e230_cmp.h \
-  ..\ARM\SysTick\systick.h

BIN
control/PDU-AC-New-6/Project/Objects/gd32e230_it.o


+ 0 - 17
control/PDU-AC-New-6/Project/Objects/gd32e230_misc.d

@@ -1,17 +0,0 @@
-./objects/gd32e230_misc.o: ..\FW\Source\gd32e230_misc.c \
-  ..\FW\Include\gd32e230_misc.h ..\ARM\System\gd32e230.h \
-  D:\Keil_v5\pack\ARM\CMSIS\5.8.0\CMSIS\Core\Include\core_cm23.h \
-  D:\Keil_v5\ARM\ARMCLANG\Bin\..\include\stdint.h \
-  D:\Keil_v5\pack\ARM\CMSIS\5.8.0\CMSIS\Core\Include\cmsis_version.h \
-  D:\Keil_v5\pack\ARM\CMSIS\5.8.0\CMSIS\Core\Include\cmsis_compiler.h \
-  D:\Keil_v5\pack\ARM\CMSIS\5.8.0\CMSIS\Core\Include\cmsis_armclang.h \
-  ..\ARM\System\system_gd32e230.h ..\ARM\System\gd32e230_libopt.h \
-  ..\FW\Include\gd32e230_adc.h ..\FW\Include\gd32e230_crc.h \
-  ..\FW\Include\gd32e230_dbg.h ..\FW\Include\gd32e230_dma.h \
-  ..\FW\Include\gd32e230_exti.h ..\FW\Include\gd32e230_fmc.h \
-  ..\FW\Include\gd32e230_gpio.h ..\FW\Include\gd32e230_syscfg.h \
-  ..\FW\Include\gd32e230_i2c.h ..\FW\Include\gd32e230_fwdgt.h \
-  ..\FW\Include\gd32e230_pmu.h ..\FW\Include\gd32e230_rcu.h \
-  ..\FW\Include\gd32e230_rtc.h ..\FW\Include\gd32e230_spi.h \
-  ..\FW\Include\gd32e230_timer.h ..\FW\Include\gd32e230_usart.h \
-  ..\FW\Include\gd32e230_wwdgt.h ..\FW\Include\gd32e230_cmp.h

+ 0 - 0
control/PDU-AC-New-6/Project/Objects/gd32e230_misc.o


Некоторые файлы не были показаны из-за большого количества измененных файлов