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

beep led 的设置接口没有传上去,广播网页接口

liyi месяцев назад: 11
Родитель
Сommit
5c34aca2ec
7 измененных файлов с 249 добавлено и 3 удалено
  1. 43 0
      pro/src/appweb_handle.c
  2. 77 0
      pro/src/json_handle.c
  3. 13 1
      pro/src/json_handle.h
  4. 39 0
      pro/ui/beep.c
  5. 14 0
      pro/ui/beep.h
  6. 49 1
      pro/ui/led.c
  7. 14 1
      pro/ui/led.h

+ 43 - 0
pro/src/appweb_handle.c

@@ -20,6 +20,7 @@
 #include "wifi.h"
 #include "beep.h"
 #include "led.h"
+#include "broadcast.h"
 
 #define TOTAL_COUNT 60
 #define FN_MAX  30
@@ -4019,6 +4020,48 @@ static void communicationManagement(void *conn)
 
          ack_str = ctrl_sts_ack_to_json(); 
 #endif
+    }else if(strcmp(reqInfo.type, "broadcastQuery") == 0)
+    {
+        mulcast_t* broad = &devInfo->broadcast;
+        ack_str = communication_broadcast_ack_to_json(broad);
+    }else if(strcmp(reqInfo.type, "broadcastSave") == 0)
+    {
+        mulcast_t* broad = &devInfo->broadcast;
+        mulcast_t _broad = reqInfo.broadcast;
+        uint8_t flag = 1;
+        if(memcmp(broad,&_broad,sizeof(mulcast_t)) != 0)
+        {
+            //check
+            if(_broad.broad_enable >= 2)
+                flag = 0;
+            //check ip
+            struct in_addr addr={0};
+
+            if(inet_pton(AF_INET,&_broad.boardcast_ip[0],&addr) != 1)
+                flag = 0;
+            if(inet_pton(AF_INET,&_broad.mulcast_ip[0],&addr) != 1)
+                flag = 0;
+            if(flag)
+            {
+                *broad = _broad;
+                paras_save();
+                if(_broad.broad_enable == 1)
+                {
+                    broadcast_deinit();
+                    broadcast_init();
+                }else
+                {
+                    broadcast_deinit();
+                }
+                ack_str = ctrl_sts_ack_to_json(); 
+            }else
+            {
+                ack_str = ctrl_breaker_err_ack_to_json("check mulcast err!!!");  
+            }
+        }else
+        {
+            ack_str = ctrl_sts_ack_to_json(); 
+        }
     }
 
     cJSON_Delete(cjson);

+ 77 - 0
pro/src/json_handle.c

@@ -4940,6 +4940,51 @@ char* communication_net_ack_to_json(NetworkInfo_t* _networkInfo_t)
     return str;
 }
 
+
+
+char *communication_broadcast_ack_to_json(mulcast_t* broad)
+{
+    char temp[32] = {0};
+    char* str = NULL;
+    // 创建 JSON 对象
+    cJSON* root = cJSON_CreateObject();   
+    // 添加基本键值对
+    cJSON_AddNumberToObject(root, "code", 200); 
+
+    //创建数据
+    memset(temp, 0, sizeof(temp));
+    cJSON* data_root_array = cJSON_CreateObject();  
+
+    cJSON_AddNumberToObject(data_root_array, "broadcastEn", broad->broad_enable);  
+
+    // memset(temp, 0, sizeof(temp));
+    // sprintf(temp,"%d",_modbusInfo_t->addr);
+    cJSON_AddNumberToObject(data_root_array, "broadcastPort", broad->broadcast_port); 
+    cJSON_AddNumberToObject(data_root_array, "multcastPort", broad->mulcast_port); 
+
+
+    memset(temp, 0, sizeof(temp));
+    sprintf(temp,"%s",broad->boardcast_ip);
+    cJSON_AddStringToObject(data_root_array, "broadcastIp", temp);  
+
+
+    memset(temp, 0, sizeof(temp));
+    sprintf(temp,"%s",broad->mulcast_ip);
+    cJSON_AddStringToObject(data_root_array, "multcastIp", temp);  
+ 
+    //添加汇总
+    cJSON_AddItemToObject(root, "data", data_root_array);
+    //添加结果
+    cJSON_AddStringToObject(root, "msg", language_Operation_Success[__globalDeviceManage._globalDevInfo.product.language]);
+    //转换
+    str = cJSON_Print(root);    
+    //释放资源
+    cJSON_Delete(root);
+    return str;   
+}
+
+
+
 /// @brief 返回RS485信息
 /// @param _networkInfo_t 
 /// @return 
@@ -5700,6 +5745,38 @@ cJSON* json_to_communication_manage(const char* str,_CommunicationManageRequestI
             sprintf(_communicationRequestInfo->_4g_wifi_info.WIFI_code, "%s", cjson_wifi_password->valuestring);
     }
 
+    if(strcmp(_communicationRequestInfo->type,"broadcastPz")==0)
+    {
+        cJSON *_cjson = NULL;
+        _cjson = cJSON_GetObjectItem(cjson, "broadcastEn");
+        if (_cjson != NULL)
+        {
+            _communicationRequestInfo->broadcast.broad_enable = _cjson->valueint;
+        }
+        _cjson = cJSON_GetObjectItem(cjson, "broadcastPort");
+        if (_cjson != NULL)
+        {
+            _communicationRequestInfo->broadcast.broadcast_port = _cjson->valueint;
+        }        
+        _cjson = cJSON_GetObjectItem(cjson, "multcastPort");
+        if (_cjson != NULL)
+        {
+            _communicationRequestInfo->broadcast.mulcast_port = _cjson->valueint;
+        }
+        _cjson = cJSON_GetObjectItem(cjson, "broadcastIp");
+        if (_cjson != NULL)
+        {
+            sprintf(_communicationRequestInfo->broadcast.boardcast_ip, "%s", _cjson->valuestring);
+        }
+
+        _cjson = cJSON_GetObjectItem(cjson, "multcastIp");
+        if (_cjson != NULL)
+        {
+            sprintf(_communicationRequestInfo->broadcast.mulcast_ip, "%s", _cjson->valuestring);
+        }        
+    }
+
+
     return cjson;
 }
 

+ 13 - 1
pro/src/json_handle.h

@@ -546,6 +546,17 @@ typedef struct
     char recvAccount[MAIL_RECV_MAX][64];
 }_4G_WIFI_CommunicationRequestInfo;
 
+
+typedef struct
+{
+    uint8_t         status;
+    uint16_t        broadcast_port;
+    uint16_t        multcast_port;
+    char            broadcast_ip[64];
+    char            multcast_ip[64];
+}broadcast_t;
+
+
 /// @brief 通信信息查询
 typedef struct
 {
@@ -554,6 +565,7 @@ typedef struct
     _NET_CommunicationRequestInfo _net_info;
     _RS_CommunicationRequestInfo _rs_info;
     _4G_WIFI_CommunicationRequestInfo _4g_wifi_info;
+    mulcast_t                         broadcast;
 }_CommunicationManageRequestInfo;
 
 
@@ -673,7 +685,7 @@ char* alarm_info_to_json(_AlarmAckInfo* _alarm_ack_info,int nAllNumber);
 
 char * alarm_type_sg_to_json(_BeepLedAckInfo_t *info);
 
-
+char *communication_broadcast_ack_to_json(mulcast_t* broad);
 
 
 char* alarm_type_info_to_json(_AlarmAckInfo* _alarm_ack_info,int nAllNumber);

+ 39 - 0
pro/ui/beep.c

@@ -5,6 +5,7 @@
 #include "common.h"
 #include <stdio.h>
 #include <sys/time.h>
+#include "paras.h"
 
 
 #if 1
@@ -166,3 +167,41 @@ int beep_reset(void)
     return 0;
 }
 
+int beep_set_val(web_beep_t *para)
+{
+    MiscInfo_t* misc=get_misc();
+    if(para->enable)
+    {
+        misc->beep = 1;
+    }else
+    {
+        misc->beep = 0;
+    }
+    misc->beep_on = para->on;
+    misc->beep_off = para->off;
+    misc->beep_count = para->time;
+
+    beep_para[BEEP_MODE_WARN1].off_ms = misc->beep_off;
+    beep_para[BEEP_MODE_WARN1].on_ms =  misc->beep_on;
+    beep_para[BEEP_MODE_WARN1].times = misc->beep_count;
+
+    beep_para[BEEP_MODE_WARN2].off_ms = misc->beep_off;
+    beep_para[BEEP_MODE_WARN2].on_ms =  misc->beep_on;
+    beep_para[BEEP_MODE_WARN2].times = misc->beep_count;
+    
+    paras_save();
+    return 0;
+}
+
+
+int beep_get_val(web_beep_t *para)
+{
+    if(!para)
+        return -1;
+    MiscInfo_t* misc=get_misc();
+    para->enable = misc->beep;
+    para->on = misc->beep_on;
+    para->off =  misc->beep_off;
+    para->time = misc->beep_count;
+    return 0;
+}

+ 14 - 0
pro/ui/beep.h

@@ -1,5 +1,6 @@
 #ifndef __BEEP_Hx__
 #define __BEEP_Hx__
+#include "stdint.h"
 
 enum {
     BEEP_MODE_WARN1=0,
@@ -17,9 +18,22 @@ typedef struct {
     int times;
 }beep_para_t;
 
+
+typedef struct{
+    uint8_t enable;
+    uint32_t on;
+    uint32_t off;
+    int time;
+}web_beep_t;
+
+
 int beep_init(void);
 int beep_deinit(void);
 int beep_set(int mode);
 int beep_set_ex(beep_para_t *para);
 int beep_reset(void);
+
+
+int beep_set_val(web_beep_t *para);
+int beep_get_val(web_beep_t *para);
 #endif

+ 49 - 1
pro/ui/led.c

@@ -3,6 +3,7 @@
 #include "gpio.h"
 #include "elog.h"
 #include "common.h"
+#include "paras.h"
 
 
 #if 1
@@ -104,7 +105,16 @@ int led_init(void)
 {
     int i;
     led_handle_t *h=&ledHandle;
-    
+    MiscInfo_t* misc=get_misc();
+
+    led_para[LED_MODE_WARN1].off_ms = misc->led_off;
+    led_para[LED_MODE_WARN1].on_ms =  misc->led_on;
+    led_para[LED_MODE_WARN1].times = misc->led_count;
+
+    led_para[LED_MODE_WARN2].off_ms = misc->led_off;
+    led_para[LED_MODE_WARN2].on_ms =  misc->led_on;
+    led_para[LED_MODE_WARN2].times = misc->led_count;
+
     h->tmr = timer_init();
     for(i=0; i<LED_ID_MAX; i++) {
         h->data[i].info = &led_info[i];
@@ -196,3 +206,41 @@ int led_reset(void)
 }
 
 
+int led_set_val(web_led_t *para)
+{
+    MiscInfo_t* misc=get_misc();
+    if(para->enable)
+    {
+        misc->led = 1;
+    }else
+    {
+        misc->led = 0;
+    }
+    misc->led_on = para->on;
+    misc->led_off = para->off;
+    misc->led_count = para->time;
+
+    led_para[LED_MODE_WARN1].off_ms = misc->led_off;
+    led_para[LED_MODE_WARN1].on_ms =  misc->led_on;
+    led_para[LED_MODE_WARN1].times = misc->led_count;
+
+    led_para[LED_MODE_WARN2].off_ms = misc->led_off;
+    led_para[LED_MODE_WARN2].on_ms =  misc->led_on;
+    led_para[LED_MODE_WARN2].times = misc->led_count;
+    
+    paras_save();
+    return 0;
+}
+
+
+int led_get_val(web_led_t *para)
+{
+    if(!para)
+        return -1;
+    MiscInfo_t* misc=get_misc();
+    para->enable = misc->led;
+    para->on = misc->led_on;
+    para->off =  misc->led_off;
+    para->time = misc->led_count;
+    return 0;
+}

+ 14 - 1
pro/ui/led.h

@@ -1,6 +1,6 @@
 #ifndef __LED_Hx__
 #define __LED_Hx__
-
+#include "stdint.h"
 
 enum {
     LED_ID_RED=0,
@@ -29,10 +29,23 @@ typedef struct {
     int end_on;
 }led_para_t;
 
+
+
+typedef struct{
+    uint8_t enable;
+    uint32_t on;
+    uint32_t off;
+    int time;
+}web_led_t;
+
+
 int led_init(void);
 int led_deinit(void);
 int led_set(int mode);
 int led_set_ex(led_para_t *para);
 int led_reset(void);
+int led_set_val(web_led_t *para);
+
+int led_get_val(web_led_t *para);
 
 #endif