Sfoglia il codice sorgente

在网页添加产品信息

guohui 1 anno fa
parent
commit
6b4d3424f3

BIN
output/prod/tools/plink.exe


BIN
output/prod/tools/pscp.exe


output/prod/script.sh → output/prod/tools/script.sh


+ 14 - 0
pro/src/common.h

@@ -300,6 +300,20 @@ typedef struct {
     uint16_t    ch_delay;               //通道延时
 }ProductInfo_t;
 
+typedef struct {
+    char        p_name[32];
+    char        p_sn[32];
+    char        d_name[32];
+    char        d_date[32];
+    char        d_batch[32];
+    char        s_name[256];
+    char        s_site[256];
+    char        s_mail[256];
+    char        s_addr[256];
+    char        s_tele[32];
+}prod_info_t;
+
+
 typedef struct
 {
     int         voltage;

+ 11 - 7
pro/src/json_handle.c

@@ -1548,6 +1548,7 @@ char* vendor_info_to_json(GlobalDeviceInfo *dev)
     char temp[100];
     buf_t logo={NULL,0,0},qrcode={NULL,0,0};
     char *ptmp=NULL;
+    prod_info_t info={0};
     
     cJSON* root = cJSON_CreateObject(); 
     cJSON_AddNumberToObject(root, "code", 200);       
@@ -1556,19 +1557,22 @@ char* vendor_info_to_json(GlobalDeviceInfo *dev)
     if(root_array) {
         cJSON* data_field = cJSON_CreateObject();
         if(data_field) {
-            cJSON_AddStringToObject(data_field, "productName", dev->product.name);
+
+            sys_get_prod(&info);
+
+            cJSON_AddStringToObject(data_field, "productName", info.p_name);
 
             sprintf(temp, "%d", dev->product.id);
-            cJSON_AddStringToObject(data_field,"productId", temp);
-            cJSON_AddStringToObject(data_field,"productNumber", dev->product.number); 
+            cJSON_AddStringToObject(data_field,"productId", info.d_name);
+            cJSON_AddStringToObject(data_field,"productNumber", info.p_sn); 
             cJSON_AddStringToObject(data_field,"productVersion", dev->product.version); 
 
             get_base64(&logo, &qrcode);
             cJSON_AddStringToObject(data_field,"logo", logo.buf?logo.buf:"");              //base64
-            cJSON_AddStringToObject(data_field,"sensorAddr", "-");
-            cJSON_AddStringToObject(data_field,"website", "-");
-            cJSON_AddStringToObject(data_field,"serviceTel","-");
-            cJSON_AddStringToObject(data_field,"mailbox","-");
+            cJSON_AddStringToObject(data_field,"sensorAddr", info.s_addr);
+            cJSON_AddStringToObject(data_field,"website", info.s_site);
+            cJSON_AddStringToObject(data_field,"serviceTel",info.s_tele);
+            cJSON_AddStringToObject(data_field,"mailbox",info.s_mail);
             cJSON_AddStringToObject(data_field,"qrCode",qrcode.buf?qrcode.buf:"");        //base64
 
             cJSON_AddItemToArray(root_array, data_field);

+ 1 - 66
pro/src/paras.c

@@ -122,71 +122,6 @@ static int str_replace(char *b, char *s1, char *s2)
     }
     return 0;
 }
-static char *str_get(char *buf, char *tok, char *dst, int dstlen)
-{
-    int n=0;
-    char *p=strstr(buf,tok);
-    if(!p) {
-        return NULL;
-    }
-    while((*p)!=':') {
-        if((*p)=='\r' || (*p)=='\n') {
-            return NULL;
-        }
-        p++;
-    }
-    p++;
-
-    while((*p)!='"') {
-        if((*p)=='\r' || (*p)=='\n') {
-            return NULL;
-        }
-        p++;
-    }
-    p++;
-
-    while((*p)!='"') {
-        if((*p)=='\r' || (*p)=='\n') {
-            return NULL;
-        }
-
-        *dst++ = *p++;
-        n++;
-        if(n>=dstlen-1) {
-            return NULL;
-        }
-    }
-    *dst = 0;
-
-    return dst;
-}
-static int get_prod(ProductInfo_t *info)
-{
-    int r;
-    char *p;
-    buf_t fbuf;
-    char temp[100];
-
-    r = file_load(INFO_FILE_PATH, &fbuf);
-    if(r) {
-        return -1;
-    }
-    p = get_str(fbuf.buf, "product_name",     temp, sizeof(temp));
-    p = get_str(fbuf.buf, "product_sn",       temp, sizeof(temp));
-    p = get_str(fbuf.buf, "device_name",      temp, sizeof(temp));
-    p = get_str(fbuf.buf, "device_date",      temp, sizeof(temp));
-    p = get_str(fbuf.buf, "device_batch",     temp, sizeof(temp));
-    p = get_str(fbuf.buf, "server_name",      temp, sizeof(temp));
-    p = get_str(fbuf.buf, "server_net",       temp, sizeof(temp));
-    p = get_str(fbuf.buf, "server_mail",      temp, sizeof(temp));
-    p = get_str(fbuf.buf, "server_address",   temp, sizeof(temp));
-    p = get_str(fbuf.buf, "server_telephone", temp, sizeof(temp));
-
-    free(fbuf.buf);
-    return 0;
-}
-
-
 static int ini_dump(char *path, dictionary *dic)
 {
     FILE *fp=fopen(path, "a+");
@@ -3235,7 +3170,7 @@ int paras_load(char *path)
 {
     int r=-1;
     paras_handle_t *h=&paraHandle;
-    
+
     lock_s_hold(LOCK_ID_PARAS);
     ini_free(h);
     h->dic = ini_load(path, h->info);

+ 98 - 0
pro/src/sys.c

@@ -1349,6 +1349,104 @@ static void* polling_thread(void *arg)
     pthread_exit(NULL);
 }
 
+static char *str_get(char *buf, char *tok, char *dst, int dstlen)
+{
+    int n=0;
+    char *t=dst,*p=strstr(buf,tok);
+    if(!p) {
+        return NULL;
+    }
+    while((*p)!=':') {
+        if((*p)=='\r' || (*p)=='\n') {
+            return NULL;
+        }
+        p++;
+    }
+    p++;
+
+    while((*p)!='"') {
+        if((*p)=='\r' || (*p)=='\n') {
+            return NULL;
+        }
+        p++;
+    }
+    p++;
+
+    while((*p)!='"') {
+        if((*p)=='\r' || (*p)=='\n') {
+            return NULL;
+        }
+
+        *dst++ = *p++;
+        n++;
+        if(n>=dstlen-1) {
+            LOGE("str_get %s, dst buf length %d is too small!\n", tok, dstlen);
+            return NULL;
+        }
+    }
+    *dst = 0;
+
+    return t;
+}
+
+int sys_get_prod(prod_info_t *info)
+{
+    int r;
+    char *p,*tok;
+    buf_t fbuf;
+    char temp[100];
+
+    r = file_load(INFO_FILE_PATH, &fbuf);
+    if(r) {
+        return -1;
+    }
+
+    tok = "product_name";
+    p = str_get(fbuf.buf, tok, info->p_name, sizeof(info->p_name));
+    if(p) LOGD("___%s:%s\n", tok, p);
+
+    tok = "product_sn";
+    p = str_get(fbuf.buf, tok, info->p_sn, sizeof(info->p_sn));
+    if(p) LOGD("___%s:%s\n", tok, p);
+
+    tok = "device_name";
+    p = str_get(fbuf.buf, tok, info->d_name, sizeof(info->d_name));
+    if(p) LOGD("___%s:%s\n", tok, p);
+
+    tok = "device_date";
+    p = str_get(fbuf.buf, tok, info->d_date, sizeof(info->d_date));
+    if(p) LOGD("___%s:%s\n", tok, p);
+
+    tok = "device_batch";
+    p = str_get(fbuf.buf, tok, info->d_batch, sizeof(info->d_batch));
+    if(p) LOGD("___%s:%s\n", tok, p);
+
+    tok = "server_name";
+    p = str_get(fbuf.buf, tok, info->s_name, sizeof(info->s_name));
+    if(p) LOGD("___%s:%s\n", tok, p);
+
+    tok = "server_site";
+    p = str_get(fbuf.buf, tok, info->s_site, sizeof(info->s_site));
+    if(p) LOGD("___%s:%s\n", tok, p);
+
+    tok = "server_mail";
+    p = str_get(fbuf.buf, tok, info->s_mail, sizeof(info->s_mail));
+    if(p) LOGD("___%s:%s\n", tok, p);
+
+    tok = "server_address";
+    p = str_get(fbuf.buf, tok, info->s_addr, sizeof(info->s_addr));
+    if(p) LOGD("___%s:%s\n", tok, p);
+
+    tok = "server_telephone";
+    p = str_get(fbuf.buf, tok, info->s_tele, sizeof(info->s_tele));
+    if(p) LOGD("___%s:%s\n", tok, p);
+
+    free(fbuf.buf);
+    return 0;
+}
+
+
+
 
 
 int sys_init(void)

+ 1 - 0
pro/src/sys.h

@@ -30,5 +30,6 @@ int sys_set_net(NetworkInfo_t *para, int ipVersion);
 int sys_get_mac(char *mac, int maclen);
 int sys_get_chip_id(int *id);
 int sys_ip_check(char *ip);
+int sys_get_prod(prod_info_t *info);
 
 #endif