diff --git a/applications/DATA/DATA_comm.c b/applications/DATA/DATA_comm.c index 0e0d56d..e9f6f20 100644 --- a/applications/DATA/DATA_comm.c +++ b/applications/DATA/DATA_comm.c @@ -13,7 +13,6 @@ #include #include #include -#include "string.h" #include "data_comm.h" #include "language.h" #include "Variable.h" @@ -21,42 +20,8 @@ rt_mq_t proc_mq; -void proc_thread_entry(void *parameter) -{ - struct proc_request *req; - - while (1) - { - // 接收请求指针 - if (rt_mq_recv(proc_mq, &req, sizeof(req), RT_WAITING_FOREVER) == RT_EOK) - { - if (!req) continue; - - rt_kprintf("Processing: %.*s\n", req->input_len, req->input); - rt_kprintf("Processing: %d\n", req->input_len); - rt_kprintf("Processing: %s\n", req->input); -memcpy(DATA_api,req->input,5); -//DATA_api[5]="\0"; -rt_kprintf("DATA_api: %s\n", DATA_api); -extract_between(req->input, "[", "]", machine_ID, sizeof(machine_ID)); -rt_kprintf("machine_ID: %s\n", machine_ID); - // 示例处理:回显 - req->output_len = rt_snprintf(req->output, sizeof(req->output), - "Echo: %.*s", req->input_len, req->input); - - // 通知 UART 线程可以发送了 - if (req->sem) - { - rt_sem_release(req->sem); - } - } - } -} - -// 变量 +char cjson_falg=0;//是否解析cjson char *json_buffer=NULL; -uint8_t cjson_falg=0;//是否解析cjson - /** * 截取两个指定子串之间的内容 * @param src 源字符串 @@ -85,7 +50,6 @@ int extract_between(const char *src, const char *start, const char *end, char *b return 0; } - // 提取字符串并安全拷贝 #define GET_STRING(dst, obj, key, size) do { \ cJSON* _item = cJSON_GetObjectItem(obj, key); \ @@ -94,227 +58,262 @@ int extract_between(const char *src, const char *start, const char *end, char *b (dst)[(size) - 1] = '\0'; \ } \ } while(0) - // 提取浮点数 #define GET_FLOAT_VAR(var, obj, key, default_val) do { \ cJSON* _item = cJSON_GetObjectItem(obj, key); \ (var) = cJSON_IsNumber(_item) ? (float)_item->valuedouble : (default_val); \ } while(0) - // 提取整数(int 类型) #define GET_INT_VAR(var, obj, key, default_val) do { \ cJSON* _item = cJSON_GetObjectItem(obj, key); \ (var) = cJSON_IsNumber(_item) ? (int)_item->valueint : (default_val); \ } while(0) -// ===== cJSON分析 ===== +// ===== cJSON分析 =====// void pasre_DAT(const char *api, const char *json_str) { - cJSON *root=cJSON_Parse(json_str); cJSON *dat=cJSON_CreateObject(); - if(json_buffer){ - free(json_buffer); + if(json_buffer) + { + free(json_buffer); json_buffer=NULL; } - if(strlen(json_str)>4){ + if(strlen(json_str)>4) + { cjson_falg=1; //判断json解析是否成功 - if(!root) - { - printf("JSON parse error :%s\n",cJSON_GetErrorPtr()); - cJSON_Delete(root); + if(!root) + { + rt_kprintf("JSON parse error :%s\n",cJSON_GetErrorPtr()); + cJSON_Delete(root); // return "JSON parse error\n"; - }} - - if (strcmp(api, "SC800") == 0) { - // 处理 SC800 - cJSON_AddItemToObject(dat,"Name",cJSON_CreateString(machine_name)); - cJSON_AddItemToObject(dat,"Station",cJSON_CreateString(machine_ID)); - cJSON_AddItemToObject(dat,"SYSKEY",cJSON_CreateString(machine_ID)); - cJSON_AddItemToObject(dat,"Groups",cJSON_CreateString(machine_ID)); - } - else if (strcmp(api, "SC810") == 0) { - //工单明细 - // === 解析整数变量 StepN === - GET_INT_VAR(StepN, root, "StepN", 0); - // 字符串赋值 - GET_STRING(Work, root, "Work", sizeof(Work)); - GET_STRING(Dye, root, "Dye", sizeof(Dye)); - GET_STRING(StepID, root, "StepID", sizeof(StepID)); - GET_STRING(SIDS1, root, "SIDS1", sizeof(SIDS1)); - GET_STRING(SIDS2, root, "SIDS2", sizeof(SIDS2)); - GET_STRING(SIDS3, root, "SIDS3", sizeof(SIDS3)); - // 浮点数赋值 - GET_FLOAT_VAR(P1, root, "P1", 0.0f); - GET_FLOAT_VAR(P2, root, "P2", 0.0f); - GET_FLOAT_VAR(P3, root, "P3", 0.0f); - GET_FLOAT_VAR(P4, root, "P4", 0.0f); - GET_FLOAT_VAR(P5, root, "P5", 0.0f); - GET_FLOAT_VAR(P1S1, root, "P1S1", 0.0f); - GET_FLOAT_VAR(P2S1, root, "P2S1", 0.0f); - GET_FLOAT_VAR(P3S1, root, "P3S1", 0.0f); - GET_FLOAT_VAR(P4S1, root, "P4S1", 0.0f); - GET_FLOAT_VAR(P5S1, root, "P5S1", 0.0f); - GET_FLOAT_VAR(P1S2, root, "P1S2", 0.0f); - GET_FLOAT_VAR(P2S2, root, "P2S2", 0.0f); - GET_FLOAT_VAR(P3S2, root, "P3S2", 0.0f); - GET_FLOAT_VAR(P4S2, root, "P4S2", 0.0f); - GET_FLOAT_VAR(P5S2, root, "P5S2", 0.0f); - GET_FLOAT_VAR(P1S3, root, "P1S3", 0.0f); - GET_FLOAT_VAR(P2S3, root, "P2S3", 0.0f); - GET_FLOAT_VAR(P3S3, root, "P3S3", 0.0f); - GET_FLOAT_VAR(P4S3, root, "P4S3", 0.0f); - GET_FLOAT_VAR(P5S3, root, "P5S3", 0.0f); - + } + } - cJSON_AddItemToObject(dat,"Work",cJSON_CreateString(Work)); - cJSON_AddItemToObject(dat,"ReDye",cJSON_CreateNumber(Redye)); - } - else if (strcmp(api, "SC811") == 0) { - printf("Processing:SC811\n"); - } - else if (strcmp(api, "SC812") == 0) { + if (strcmp(api, "SC800") == 0) + {// 处理 SC800 + cJSON_AddItemToObject(dat,"Name",cJSON_CreateString(machine_name)); + cJSON_AddItemToObject(dat,"Station",cJSON_CreateString(machine_ID)); + cJSON_AddItemToObject(dat,"SYSKEY",cJSON_CreateString(machine_ID)); + cJSON_AddItemToObject(dat,"Groups",cJSON_CreateString(machine_ID)); + } + else if (strcmp(api, "SC810") == 0) + {//工单明细 + // === 解析整数变量 StepN === + GET_INT_VAR(StepN, root, "StepN", 0); + // 字符串赋值 + GET_STRING(Work, root, "Work", sizeof(Work)); + GET_STRING(Dye, root, "Dye", sizeof(Dye)); + GET_STRING(StepID, root, "StepID", sizeof(StepID)); + GET_STRING(SIDS1, root, "SIDS1", sizeof(SIDS1)); + GET_STRING(SIDS2, root, "SIDS2", sizeof(SIDS2)); + GET_STRING(SIDS3, root, "SIDS3", sizeof(SIDS3)); + // 浮点数赋值 + GET_FLOAT_VAR(P1, root, "P1", 0.0f); + GET_FLOAT_VAR(P2, root, "P2", 0.0f); + GET_FLOAT_VAR(P3, root, "P3", 0.0f); + GET_FLOAT_VAR(P4, root, "P4", 0.0f); + GET_FLOAT_VAR(P5, root, "P5", 0.0f); + GET_FLOAT_VAR(P1S1, root, "P1S1", 0.0f); + GET_FLOAT_VAR(P2S1, root, "P2S1", 0.0f); + GET_FLOAT_VAR(P3S1, root, "P3S1", 0.0f); + GET_FLOAT_VAR(P4S1, root, "P4S1", 0.0f); + GET_FLOAT_VAR(P5S1, root, "P5S1", 0.0f); + GET_FLOAT_VAR(P1S2, root, "P1S2", 0.0f); + GET_FLOAT_VAR(P2S2, root, "P2S2", 0.0f); + GET_FLOAT_VAR(P3S2, root, "P3S2", 0.0f); + GET_FLOAT_VAR(P4S2, root, "P4S2", 0.0f); + GET_FLOAT_VAR(P5S2, root, "P5S2", 0.0f); + GET_FLOAT_VAR(P1S3, root, "P1S3", 0.0f); + GET_FLOAT_VAR(P2S3, root, "P2S3", 0.0f); + GET_FLOAT_VAR(P3S3, root, "P3S3", 0.0f); + GET_FLOAT_VAR(P4S3, root, "P4S3", 0.0f); + GET_FLOAT_VAR(P5S3, root, "P5S3", 0.0f); + cJSON_AddItemToObject(dat,"Work",cJSON_CreateString(Work)); + cJSON_AddItemToObject(dat,"ReDye",cJSON_CreateNumber(Redye)); + } + else if (strcmp(api, "SC811") == 0) { + printf("Processing:SC811\n"); + } + else if (strcmp(api, "SC812") == 0) { printf("Processing:SC812\n"); - } - else if (strcmp(api, "SC813") == 0) { + } + else if (strcmp(api, "SC813") == 0) { printf("Processing:SC813\n"); - } - else if (strcmp(api, "SC820") == 0) { + } + else if (strcmp(api, "SC820") == 0) { printf("Processing:SC820\n"); - } - else if (strcmp(api, "SC821") == 0) { + } + else if (strcmp(api, "SC821") == 0) { printf("Processing:SC821\n"); - } - else if (strcmp(api, "SC822") == 0) { + } + else if (strcmp(api, "SC822") == 0) { printf("Processing:SC822\n"); - } - else if (strcmp(api, "SC827") == 0) { + } + else if (strcmp(api, "SC827") == 0) { printf("Processing:SC827\n"); - } - else if (strcmp(api, "SC828") == 0) { + } + else if (strcmp(api, "SC828") == 0) { printf("Processing:SC828\n"); - } - else if (strcmp(api, "SC829") == 0) { + } + else if (strcmp(api, "SC829") == 0) { printf("Processing:SC829\n"); - } - else if (strcmp(api, "SC830") == 0) { - //当前信息 - cJSON_AddItemToObject(dat,"ERR",cJSON_CreateBool(MACHINE_ERR)); - cJSON_AddItemToObject(dat,"LOCK",cJSON_CreateBool(MACHINE_LOCK)); - cJSON_AddItemToObject(dat,"Status",cJSON_CreateString(Message)); - cJSON_AddItemToObject(dat,"Work",cJSON_CreateString(Work)); - cJSON_AddItemToObject(dat,"ReDye",cJSON_CreateNumber(Redye)); - cJSON_AddItemToObject(dat,"Process",cJSON_CreateString(Process)); - cJSON_AddItemToObject(dat,"Step",cJSON_CreateString(Step)); - cJSON_AddItemToObject(dat,"User",cJSON_CreateBool(MACHINE_USER)); - cJSON_AddItemToObject(dat,"InfoS",cJSON_CreateNumber(UserInfoStart)); - cJSON_AddItemToObject(dat,"Info",cJSON_CreateString(Info)); - cJSON_AddItemToObject(dat,"RUN",cJSON_CreateNumber(RUN)); - cJSON_AddItemToObject(dat,"STEPID",cJSON_CreateNumber(STEPID)); - cJSON_AddItemToObject(dat,"CALL",cJSON_CreateBool(MACHINE_CALL)); - - cJSON_AddItemToObject(dat,"MST",cJSON_CreateNumber(MST)); - cJSON_AddItemToObject(dat,"MTT",cJSON_CreateNumber(MTT)); - cJSON_AddItemToObject(dat,"MTL",cJSON_CreateNumber(MTL)); - cJSON_AddItemToObject(dat,"MTH",cJSON_CreateNumber(MTH)); - cJSON_AddItemToObject(dat,"MUT",cJSON_CreateNumber(MUT)); - cJSON_AddItemToObject(dat,"STTA",cJSON_CreateNumber(STTA)); - cJSON_AddItemToObject(dat,"STLA",cJSON_CreateNumber(STLA)); - cJSON_AddItemToObject(dat,"STTB",cJSON_CreateNumber(STTB)); - cJSON_AddItemToObject(dat,"STLB",cJSON_CreateNumber(STLB)); - cJSON_AddItemToObject(dat,"STTC",cJSON_CreateNumber(STTC)); - cJSON_AddItemToObject(dat,"STLC",cJSON_CreateNumber(STLC)); - } - else if (strcmp(api, "SC831") == 0) { - //当前步骤信息 - cJSON_AddItemToObject(dat,"Work",cJSON_CreateString(Work)); - cJSON_AddItemToObject(dat,"ReDye",cJSON_CreateNumber(Redye)); - } - else if (strcmp(api, "SC832") == 0) { - //当前细节信息 - cJSON_AddItemToObject(dat,"Pump",cJSON_CreateNumber(Pump));//泵 - cJSON_AddItemToObject(dat,"TC",cJSON_CreateNumber(TC));//温度比例 - cJSON_AddItemToObject(dat,"Fan",cJSON_CreateNumber(Fan));//风机 - cJSON_AddItemToObject(dat,"Pull",cJSON_CreateNumber(Pull));//提布 - cJSON_AddItemToObject(dat,"Swing",cJSON_CreateNumber(Swing));//摆布 - cJSON_AddItemToObject(dat,"STA",cJSON_CreateNumber(STA));//料1 - cJSON_AddItemToObject(dat,"STB",cJSON_CreateNumber(STB));//料2 - cJSON_AddItemToObject(dat,"STC",cJSON_CreateNumber(STC));//料3 - } - else if (strcmp(api, "SC833") == 0) { - //当前领料单信息 - cJSON_AddItemToObject(dat,"Work",cJSON_CreateString(Work)); - cJSON_AddItemToObject(dat,"ReDye",cJSON_CreateNumber(Redye)); - } - else if (strcmp(api, "SC851") == 0) { - //创建数组 - cJSON *Dev = cJSON_CreateArray(); - // - for (int i = 0; i < DIO_TABLE_SIZE; i++) { - cJSON* item = cJSON_CreateObject(); + } + else if (strcmp(api, "SC830") == 0) { + //当前信息 + cJSON_AddItemToObject(dat,"ERR",cJSON_CreateBool(MACHINE_ERR)); + cJSON_AddItemToObject(dat,"LOCK",cJSON_CreateBool(MACHINE_LOCK)); + cJSON_AddItemToObject(dat,"Status",cJSON_CreateString(Message)); + cJSON_AddItemToObject(dat,"Work",cJSON_CreateString(Work)); + cJSON_AddItemToObject(dat,"ReDye",cJSON_CreateNumber(Redye)); + cJSON_AddItemToObject(dat,"Process",cJSON_CreateString(Process)); + cJSON_AddItemToObject(dat,"Step",cJSON_CreateString(Step)); + cJSON_AddItemToObject(dat,"User",cJSON_CreateBool(MACHINE_USER)); + cJSON_AddItemToObject(dat,"InfoS",cJSON_CreateNumber(UserInfoStart)); + cJSON_AddItemToObject(dat,"Info",cJSON_CreateString(Info)); + cJSON_AddItemToObject(dat,"RUN",cJSON_CreateNumber(RUN)); + cJSON_AddItemToObject(dat,"STEPID",cJSON_CreateNumber(STEPID)); + cJSON_AddItemToObject(dat,"CALL",cJSON_CreateBool(MACHINE_CALL)); + cJSON_AddItemToObject(dat,"MST",cJSON_CreateNumber(MST)); + cJSON_AddItemToObject(dat,"MTT",cJSON_CreateNumber(MTT)); + cJSON_AddItemToObject(dat,"MTL",cJSON_CreateNumber(MTL)); + cJSON_AddItemToObject(dat,"MTH",cJSON_CreateNumber(MTH)); + cJSON_AddItemToObject(dat,"MUT",cJSON_CreateNumber(MUT)); + cJSON_AddItemToObject(dat,"STTA",cJSON_CreateNumber(STTA)); + cJSON_AddItemToObject(dat,"STLA",cJSON_CreateNumber(STLA)); + cJSON_AddItemToObject(dat,"STTB",cJSON_CreateNumber(STTB)); + cJSON_AddItemToObject(dat,"STLB",cJSON_CreateNumber(STLB)); + cJSON_AddItemToObject(dat,"STTC",cJSON_CreateNumber(STTC)); + cJSON_AddItemToObject(dat,"STLC",cJSON_CreateNumber(STLC)); + } + else if (strcmp(api, "SC831") == 0) + {//当前步骤信息 + cJSON_AddItemToObject(dat,"Work",cJSON_CreateString(Work)); + cJSON_AddItemToObject(dat,"ReDye",cJSON_CreateNumber(Redye)); + } + else if (strcmp(api, "SC832") == 0) + {//当前细节信息 + cJSON_AddItemToObject(dat,"Pump",cJSON_CreateNumber(Pump));//泵 + cJSON_AddItemToObject(dat,"TC",cJSON_CreateNumber(TC));//温度比例 + cJSON_AddItemToObject(dat,"Fan",cJSON_CreateNumber(Fan));//风机 + cJSON_AddItemToObject(dat,"Pull",cJSON_CreateNumber(Pull));//提布 + cJSON_AddItemToObject(dat,"Swing",cJSON_CreateNumber(Swing));//摆布 + cJSON_AddItemToObject(dat,"STA",cJSON_CreateNumber(STA));//料1 + cJSON_AddItemToObject(dat,"STB",cJSON_CreateNumber(STB));//料2 + cJSON_AddItemToObject(dat,"STC",cJSON_CreateNumber(STC));//料3 + } + else if (strcmp(api, "SC833") == 0) + {//当前领料单信息 + cJSON_AddItemToObject(dat,"Work",cJSON_CreateString(Work)); + cJSON_AddItemToObject(dat,"ReDye",cJSON_CreateNumber(Redye)); + } + else if (strcmp(api, "SC851") == 0) + {//创建数组 + cJSON *Dev = cJSON_CreateArray(); + for (int i = 0; i < DIO_TABLE_SIZE; i++) { + cJSON* item = cJSON_CreateObject(); // 添加 IO 编号 - cJSON_AddItemToObject(item, "P", cJSON_CreateNumber(dio_table[i].pin)); + cJSON_AddItemToObject(item, "P", cJSON_CreateNumber(dio_table[i].pin)); // 添加默认值 - cJSON_AddItemToObject(item, "D", cJSON_CreateNumber(dio_table[i].current_state)); + cJSON_AddItemToObject(item, "D", cJSON_CreateNumber(dio_table[i].current_state)); // 添加枚举名称(字符串形式) //cJSON_AddStringToObject(item, "str_enum_name", lang_get_str(dio_table[i].name)); // 将当前项添加到数组中 - cJSON_AddItemToArray(Dev, item); - } - cJSON_AddItemToObject(dat,"DIO",Dev); - } - else if (strcmp(api, "SC852") == 0) { - //创建数组 - cJSON *Dev = cJSON_CreateArray(); - for (int i = 0; i < AIO_TABLE_SIZE; i++) { - cJSON* item = cJSON_CreateObject(); - // 添加 IO 编号 - cJSON_AddNumberToObject(item, "P", aio_table[i].pin); - // 添加默认值 - cJSON_AddNumberToObject(item, "A", aio_table[i].current_Value); - // 将当前项添加到数组中 - cJSON_AddItemToArray(Dev, item); - } - cJSON_AddItemToObject(dat,"A",Dev); - } - else if (strcmp(api, "SC853") == 0) { - //创建数组 - cJSON *Dev = cJSON_CreateArray(); - for (int i = 0; i < DATA_TABLE_SIZE; i++) { - cJSON* item = cJSON_CreateObject(); - // 添加 IO 编号 - cJSON_AddNumberToObject(item, "P", data_table[i].pin); - // 添加默认值 - cJSON_AddNumberToObject(item, "M", data_table[i].current_data); - // 将当前项添加到数组中 - cJSON_AddItemToArray(Dev, item); - } - cJSON_AddItemToObject(dat,"M",Dev); - } - else if (strcmp(api, "SC854") == 0) { - printf("Processing:SC854\n"); - } - else if (strcmp(api, "SC855") == 0) { + cJSON_AddItemToArray(Dev, item); + } + cJSON_AddItemToObject(dat,"DIO",Dev); + } + else if (strcmp(api, "SC852") == 0) + {//创建数组 + cJSON *Dev = cJSON_CreateArray(); + for (int i = 0; i < AIO_TABLE_SIZE; i++) { + cJSON* item = cJSON_CreateObject(); + // 添加 IO 编号 + cJSON_AddNumberToObject(item, "P", aio_table[i].pin); + // 添加默认值 + cJSON_AddNumberToObject(item, "A", aio_table[i].current_Value); + // 将当前项添加到数组中 + cJSON_AddItemToArray(Dev, item); + } + cJSON_AddItemToObject(dat,"A",Dev); + } + else if (strcmp(api, "SC853") == 0) + {//创建数组 + cJSON *Dev = cJSON_CreateArray(); + for (int i = 0; i < DATA_TABLE_SIZE; i++) { + cJSON* item = cJSON_CreateObject(); + // 添加 IO 编号 + cJSON_AddNumberToObject(item, "P", data_table[i].pin); + // 添加默认值 + cJSON_AddNumberToObject(item, "M", data_table[i].current_data); + // 将当前项添加到数组中 + cJSON_AddItemToArray(Dev, item); + } + cJSON_AddItemToObject(dat,"M",Dev); + } + else if (strcmp(api, "SC854") == 0) { + + printf("Processing:SC854\n"); + + } + else if (strcmp(api, "SC855") == 0) { printf("Processing:SC855\n"); - } - else if (strcmp(api, "SC859") == 0) { + + } + else if (strcmp(api, "SC859") == 0) { printf("Processing:SC859\n"); - } - else if (strcmp(api, "SC861") == 0) { + + } + else if (strcmp(api, "SC861") == 0) { printf("Processing:SC861\n"); - } - else if (strcmp(api, "SC862") == 0) { + + } + else if (strcmp(api, "SC862") == 0) { printf("Processing:SC862\n"); + + } + else { + memcpy(DATA_api,"SC999",5); + } + + json_buffer=cJSON_PrintUnformatted(dat); + cJSON_Delete(root); + cJSON_Delete(dat); +} + +void proc_thread_entry(void *parameter) +{ + struct proc_request *req; + while (1) + { + // 接收请求指针 + if (rt_mq_recv(proc_mq, &req, sizeof(req), RT_WAITING_FOREVER) == RT_EOK) + { + if (!req) continue; + memcpy(DATA_api,req->input,5); + extract_between(req->input, "[", "]", machine_ID, sizeof(machine_ID)); + char *p=strstr(req->input,"]"); + if(!p){cjson_falg=0;} + else { + p += strlen("]"); + } + //处理指令分析 + pasre_DAT(DATA_api,p); + // 回复 + int16_t total_len = strlen(machine_ID) + strlen(json_buffer) + 8; + char t_buffer[total_len]; + snprintf(t_buffer,total_len,"%s[%s]%s",DATA_api,machine_ID,json_buffer); + req->output_len = rt_snprintf(req->output, sizeof(req->output),t_buffer); + // 通知 UART 线程可以发送了 + if (req->sem) + { + rt_sem_release(req->sem); + } } - else {} - //printf(dat); - json_buffer=cJSON_PrintUnformatted(dat); - cJSON_Delete(root); - cJSON_Delete(dat); - // return json_buffer; + } } int data_comm_init(void) @@ -327,7 +326,7 @@ int data_comm_init(void) } rt_thread_t tid = rt_thread_create("data_comm", proc_thread_entry, RT_NULL, - 1024*16, 20, 10); + 1024*5, 20, 10); if (tid != RT_NULL) { rt_thread_startup(tid); diff --git a/applications/DATA/DATA_comm.h b/applications/DATA/DATA_comm.h index e35b528..5a3636b 100644 --- a/applications/DATA/DATA_comm.h +++ b/applications/DATA/DATA_comm.h @@ -11,8 +11,8 @@ #define APPLICATIONS_DATA_COMM_H_ // 最大输入/输出长度 -#define MAX_INPUT_LEN 512 -#define MAX_OUTPUT_LEN 1024 +#define MAX_INPUT_LEN 1024 +#define MAX_OUTPUT_LEN 1024*3 // 请求结构体 struct proc_request { diff --git a/applications/DATA/DATA_uart.c b/applications/DATA/DATA_uart.c index 4a597de..ac4cf63 100644 --- a/applications/DATA/DATA_uart.c +++ b/applications/DATA/DATA_uart.c @@ -155,7 +155,7 @@ static int get_line(char *buf, int maxlen) int start_uart_thread(void) { rt_thread_t tid = rt_thread_create("data_uart", uart_thread_entry, RT_NULL, - 4096, // 栈大小:4KB + 1024*2, // 栈大小:3KB 25, // 优先级 10); // 时间片 if (tid != RT_NULL) diff --git a/applications/DATA/Variable.c b/applications/DATA/Variable.c index d4aed62..940c16d 100644 --- a/applications/DATA/Variable.c +++ b/applications/DATA/Variable.c @@ -4,8 +4,8 @@ // ===== 实际定义 ===== // 动态数据缓冲区(初始化为 NULL,后续分配) -char *DATA_dat = NULL; -char *DATA_machins = NULL; +char *DATA_dat; +char *DATA_machins; char DATA_api[5]; char *machine_name = "Q109"; char machine_ID[3] = "23";