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

级联网页显示通道数据。

liyi 1 год назад
Родитель
Сommit
6bb956b7cc
5 измененных файлов с 496 добавлено и 591 удалено
  1. 453 565
      f407/applications/cascade.c
  2. 31 9
      f407/applications/cascade.h
  3. 7 5
      f407/applications/datadef.h
  4. 2 10
      f407/applications/main.c
  5. 3 2
      f407/applications/web.c

Разница между файлами не показана из-за своего большого размера
+ 453 - 565
f407/applications/cascade.c


+ 31 - 9
f407/applications/cascade.h

@@ -20,15 +20,30 @@ enum {
     OBJ_SENSOR,
 };
 
+
+
+
+
+
+
 typedef struct {
     uint8_t         cmd;
     uint8_t         obj;
     uint8_t         chId;
-    // char            time_s[24];   //start time
-    // char            time_e[24];   //end time
 		uint8_t 			data[200];
 }cmd_data_t;
 
+typedef struct {
+    int       addr;
+    int       err;      //err times
+}slave_t;
+
+typedef struct {
+		uint8_t cnt;
+    slave_t   *slave;
+}dev_list_t;
+
+//±±ÏòÊý¾Ý¼Ä´æÆ÷
 #define AC_DC_DEV_CHN_REG                  	(4000)
 #define AC_DC_DRY_REG         							(4987)
 
@@ -38,8 +53,6 @@ typedef struct {
 #define AC_DC_ALL_SET_SWITCH_REG        		(5192)
 
 
-
-
 #define AC_3_DEV_CHN_REG                  	(6000)
 #define AC_3_DRY_REG           							(8795)
 
@@ -99,10 +112,19 @@ enum {
 
 
 
-uint8_t cascade_init(const char* uart,uint8_t mode,uint8_t addr,uint32_t baud);
-uint8_t cascade_deinit();
-void cascade_scan_thread(void *arg);
-void cascade_thread(void *arg);
+uint8_t 			 cascade_init(const char* uart,uint8_t mode,uint8_t addr,uint32_t baud);
+uint8_t 			 cascade_deinit();
+void 					 cascade_scan_thread(void *arg);
+void 					 cascade_thread(void *arg);
+int 					 cascade_request(cmd_data_t *cmd);
+uint8_t 			 cascade_read_slave(uint8_t addr);
+uint8_t 			 cascade_set_mode(uint8_t mode,uint8_t addr);
+void    			 cascade_reinit(uint8_t mode,uint8_t addr,uint32_t baud);
+cascade_data_t cascade_power_get(void);
+void 					 cascade_reinit(uint8_t mode,uint8_t addr,uint32_t baud);
+uint8_t 			 cascade_set_mode(uint8_t mode,uint8_t addr);
+int 					 cascade_get_dlist(dev_list_t *dl);
+int 					 cascade_free_dlist(dev_list_t *dl);
+
 
-int cascade_request(cmd_data_t *cmd);
 #endif

+ 7 - 5
f407/applications/datadef.h

@@ -7,7 +7,7 @@
 
 #define CH_MAX          12
 #define BRD_MAX         32
-#define SLAVE_CH_MAX    64
+#define SLAVE_CH_MAX    32
 
 
 enum {
@@ -374,10 +374,6 @@ typedef struct cascade_saddr{
 }slave_info_t;
 
 
-typedef struct cascade_data{
-    slave_info_t *c_s[BRD_MAX];                 //从机最多个数
-}cascade_data_t;
-
 
 typedef struct sensor_info{
     uint8_t     type;
@@ -594,6 +590,12 @@ typedef struct md_3_ac{
 }md_3_ac_t;
 
 
+typedef struct cascade_data{
+		uint8_t         chs;                    //从机读取通道数
+		
+    power_ch_t      *pch;
+}cascade_data_t;
+
 #pragma pack ()
 
 #define DB_NAME         "smartPDU.db"

+ 2 - 10
f407/applications/main.c

@@ -114,10 +114,8 @@ static int user_init(void)
 {
    // ui_init();
     sd_mount();
-    
-    power_init();
-    //web_init();
-	
+    //power_init();
+    web_init();
 	  LOGD("cascade thread!!!!!\n");
     cascade_init(CASCADE_PORT,1,1,115200);
     return 0;
@@ -129,13 +127,7 @@ int main(void)
 {
     sys_init();
     user_init();
-		cmd_data_t cmd;
-		cmd.cmd = CASCADE_CMD_GET_INFO;
-		cmd.obj = OBJ_OVERALL;
-	
     while (1) {
-				//cascade_request(&cmd);
-				
         sleep(10);
     }
 }

+ 3 - 2
f407/applications/web.c

@@ -7,6 +7,7 @@
 #include "cfg.h"
 #include <stdio.h>
 #include "datadef.h"
+#include "cascade.h"
 
 #define TIMER_INTERVAL     1000
 #define ONCE_SEND_CH_CNT   10
@@ -118,8 +119,8 @@ static void send_powerc(web_handle_t *h, mg_conn_t *c)
 {
     int i,j,xlen,offset,times,left;
     pkt_hdr_t *hdr=NULL;
-    power_data_t pd=power_data_get();
-    
+    //power_data_t pd=power_data_get();
+    cascade_data_t pd = cascade_power_get();
     if(pd.chs==0 || h->buf==NULL ) {
         return;
     }