添加语言部分,添加数据解析部分,添加io状态表部分
This commit is contained in:
1 parent
9f9c96d650
commit
1402105850
10 files changed
+1499
-22
No files matched your search
@@ -9,7 +9,15 @@
|
||||
*/
|
||||
/* DATA_comm.c */
|
||||
#include <rtthread.h>
|
||||
#include "cjson.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include "string.h"
|
||||
#include "data_comm.h"
|
||||
#include "language.h"
|
||||
#include "Variable.h"
|
||||
#include "SC828_DATA_table.h"
|
||||
|
||||
rt_mq_t proc_mq;
|
||||
|
||||
@@ -25,7 +33,13 @@ void proc_thread_entry(void *parameter)
|
||||
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);
|
||||
@@ -39,6 +53,270 @@ void proc_thread_entry(void *parameter)
|
||||
}
|
||||
}
|
||||
|
||||
// 变量
|
||||
char *json_buffer=NULL;
|
||||
uint8_t cjson_falg=0;//是否解析cjson
|
||||
|
||||
/**
|
||||
* 截取两个指定子串之间的内容
|
||||
* @param src 源字符串
|
||||
* @param start 起始子串
|
||||
* @param end 结束子串
|
||||
* @param buf 目标缓冲区
|
||||
* @param buf_len 缓冲区大小
|
||||
* @return 成功返回 0,失败返回 -1
|
||||
*/
|
||||
int extract_between(const char *src, const char *start, const char *end, char *buf, size_t buf_len)
|
||||
{
|
||||
const char *p1, *p2;
|
||||
size_t len;
|
||||
|
||||
p1 = strstr(src, start);
|
||||
if (!p1) return -1;
|
||||
p1 += strlen(start); // 跳过起始子串
|
||||
|
||||
p2 = strstr(p1, end);
|
||||
if (!p2) return -1;
|
||||
|
||||
len = p2 - p1;
|
||||
if (len >= buf_len) len = buf_len - 1;
|
||||
memcpy(buf, p1, len);
|
||||
buf[len] = '\0';
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// 提取字符串并安全拷贝
|
||||
#define GET_STRING(dst, obj, key, size) do { \
|
||||
cJSON* _item = cJSON_GetObjectItem(obj, key); \
|
||||
if (cJSON_IsString(_item) && _item->valuestring != NULL) { \
|
||||
strncpy(dst, _item->valuestring, (size) - 1); \
|
||||
(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分析 =====
|
||||
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);
|
||||
json_buffer=NULL;
|
||||
}
|
||||
|
||||
if(strlen(json_str)>4){
|
||||
cjson_falg=1;
|
||||
//判断json解析是否成功
|
||||
if(!root)
|
||||
{
|
||||
printf("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) {
|
||||
printf("Processing:SC812\n");
|
||||
}
|
||||
else if (strcmp(api, "SC813") == 0) {
|
||||
printf("Processing:SC813\n");
|
||||
}
|
||||
else if (strcmp(api, "SC820") == 0) {
|
||||
printf("Processing:SC820\n");
|
||||
}
|
||||
else if (strcmp(api, "SC821") == 0) {
|
||||
printf("Processing:SC821\n");
|
||||
}
|
||||
else if (strcmp(api, "SC822") == 0) {
|
||||
printf("Processing:SC822\n");
|
||||
}
|
||||
else if (strcmp(api, "SC827") == 0) {
|
||||
printf("Processing:SC827\n");
|
||||
}
|
||||
else if (strcmp(api, "SC828") == 0) {
|
||||
printf("Processing:SC828\n");
|
||||
}
|
||||
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();
|
||||
// 添加 IO 编号
|
||||
cJSON_AddItemToObject(item, "P", cJSON_CreateNumber(dio_table[i].pin));
|
||||
// 添加默认值
|
||||
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) {
|
||||
printf("Processing:SC855\n");
|
||||
}
|
||||
else if (strcmp(api, "SC859") == 0) {
|
||||
printf("Processing:SC859\n");
|
||||
}
|
||||
else if (strcmp(api, "SC861") == 0) {
|
||||
printf("Processing:SC861\n");
|
||||
}
|
||||
else if (strcmp(api, "SC862") == 0) {
|
||||
printf("Processing:SC862\n");
|
||||
}
|
||||
else {}
|
||||
//printf(dat);
|
||||
json_buffer=cJSON_PrintUnformatted(dat);
|
||||
cJSON_Delete(root);
|
||||
cJSON_Delete(dat);
|
||||
// return json_buffer;
|
||||
}
|
||||
|
||||
int data_comm_init(void)
|
||||
{
|
||||
proc_mq = rt_mq_create("proc_mq", sizeof(struct proc_request*), 5, RT_IPC_FLAG_FIFO);
|
||||
@@ -48,8 +326,8 @@ int data_comm_init(void)
|
||||
return -1;
|
||||
}
|
||||
|
||||
rt_thread_t tid = rt_thread_create("proc", proc_thread_entry, RT_NULL,
|
||||
2048, 20, 10);
|
||||
rt_thread_t tid = rt_thread_create("data_comm", proc_thread_entry, RT_NULL,
|
||||
1024*16, 20, 10);
|
||||
if (tid != RT_NULL)
|
||||
{
|
||||
rt_thread_startup(tid);
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
static rt_device_t serial;
|
||||
|
||||
// DMA 接收缓冲区
|
||||
static rt_uint8_t dma_rx_buffer[DMA_RX_BUF_SIZE];
|
||||
//static rt_uint8_t dma_rx_buffer[DMA_RX_BUF_SIZE];
|
||||
|
||||
// 环形缓冲区(暂存未完整报文)
|
||||
static struct rt_ringbuffer rx_rb;
|
||||
@@ -74,9 +74,15 @@ void uart_thread_entry(void *parameter)
|
||||
{
|
||||
// 处理接收到的数据(提取完整行)
|
||||
while ((len = get_line(input, sizeof(input))) > 0)
|
||||
{
|
||||
rt_kprintf("Received: %.*s\n", len, input);
|
||||
{ // 调试:打印每个字节
|
||||
/* rt_kprintf("Len=%d, Data: ", len);
|
||||
for (int i = 0; i < len; i++) {
|
||||
rt_kprintf("[%02X '%c'] ", input[i],
|
||||
(input[i] >= 32 && input[i] < 127) ? input[i] : '.');
|
||||
}
|
||||
rt_kprintf("\n");
|
||||
|
||||
rt_kprintf("Received: [%.*s]\n", len, input);*/
|
||||
// 动态分配请求结构体(见之前完整代码)
|
||||
struct proc_request *req = rt_malloc(sizeof(struct proc_request));
|
||||
if (!req) continue;
|
||||
@@ -112,33 +118,43 @@ void uart_thread_entry(void *parameter)
|
||||
// DMA 接收回调
|
||||
static rt_err_t uart_rx_ind(rt_device_t dev, rt_size_t size)
|
||||
{
|
||||
rt_ringbuffer_put(&rx_rb, (const rt_uint8_t*)dma_rx_buffer, size);
|
||||
rt_sem_release(&rx_sem); // 通知线程处理
|
||||
return RT_EOK;
|
||||
rt_uint8_t temp[64];
|
||||
rt_size_t read_size;
|
||||
|
||||
// 从设备读取数据(驱动内部有 DMA buffer)
|
||||
while (size > 0)
|
||||
{
|
||||
read_size = rt_device_read(dev, 0, temp, (size > 64) ? 64 : size);
|
||||
if (read_size > 0) {
|
||||
rt_ringbuffer_put(&rx_rb, temp, read_size);
|
||||
// 调试:打印实际读到的数据
|
||||
/* for (int i = 0; i < read_size; i++) {
|
||||
rt_kprintf("RX: 0x%02X '%c'\n", temp[i],
|
||||
(temp[i] >= 32 && temp[i] < 127) ? temp[i] : '.');
|
||||
}*/
|
||||
}
|
||||
size -= read_size;
|
||||
}
|
||||
|
||||
rt_sem_release(&rx_sem);
|
||||
return RT_EOK;
|
||||
}
|
||||
|
||||
// 从环形缓冲区提取一行
|
||||
static int get_line(char *buf, int maxlen)
|
||||
{
|
||||
int i = 0;
|
||||
char ch;
|
||||
|
||||
while (rt_ringbuffer_getchar(&rx_rb, &ch) == 1)
|
||||
{
|
||||
if (ch == '\n' || ch == '\r') {
|
||||
if (i > 0) break;
|
||||
continue;
|
||||
int len = rt_ringbuffer_get(&rx_rb, (rt_uint8_t*)buf, maxlen - 1);
|
||||
if (len > 0) {
|
||||
buf[len] = '\0';
|
||||
return len;
|
||||
}
|
||||
if (i < maxlen - 1) buf[i++] = ch;
|
||||
}
|
||||
buf[i] = '\0';
|
||||
return i > 0 ? i : 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
// 启动 UART 线程
|
||||
int start_uart_thread(void)
|
||||
{
|
||||
rt_thread_t tid = rt_thread_create("uart_rx", uart_thread_entry, RT_NULL,
|
||||
rt_thread_t tid = rt_thread_create("data_uart", uart_thread_entry, RT_NULL,
|
||||
4096, // 栈大小:4KB
|
||||
25, // 优先级
|
||||
10); // 时间片
|
||||
|
||||
@@ -0,0 +1,231 @@
|
||||
#include "SC828_DATA_table.h"
|
||||
|
||||
// 系统数据状态表(表格)
|
||||
IO_State_DATA data_table[] = {
|
||||
{1001, 0, STR_COMM_COUNTER},
|
||||
{1002, 0, STR_COMM_FAULT_COUNTER},
|
||||
{1003, 0, STR_CYCLE_TEMP_RISE_SET},
|
||||
{1004, 0, STR_TEMP_CONTROL_RATIO},
|
||||
{1005, 0, STR_CALCULATED_TEMP},
|
||||
{1006, 0, STR_FLOW_COUNTER},
|
||||
{1007, 0, STR_GLOBAL_FLOW_COUNTER},
|
||||
{1008, 0, STR_NOZZLE_SETTING},
|
||||
{1009, 0, STR_MAIN_PUMP_SPEED_SET},
|
||||
{1010, 0, STR_FAN_SPEED_SET},
|
||||
{1011, 0, STR_TARGET_PH_SET},
|
||||
{1012, 0, STR_PH_DEVICE_STATUS}
|
||||
};
|
||||
|
||||
// DIO状态表(表格)
|
||||
IO_State_DIO dio_table[] = {
|
||||
{2001, 0, STR_EMERGENCY_STOP},
|
||||
{2002, 0, STR_TEMP_LOCK},
|
||||
{2003, 0, STR_PRESSURE_LOCK},
|
||||
{2004, 0, STR_CALL_CONFIRM},
|
||||
{2005, 0, STR_MANUAL},
|
||||
{2006, 0, STR_FAN_START},
|
||||
{2007, 0, STR_FAN_FAULT},
|
||||
{2008, 0, STR_MAIN_PUMP_FAULT},
|
||||
{2009, 0, STR_ROLL_RESET},
|
||||
{2010, 0, STR_FABRIC_FAULT},
|
||||
{2011, 0, STR_ELEC_FAULT},
|
||||
{2012, 0, STR_MATERIAL_PUMP1},
|
||||
{2013, 0, STR_MATERIAL_PUMP2},
|
||||
{2014, 0, STR_MATERIAL_PUMP3},
|
||||
{2015, 0, STR_MANUAL1},
|
||||
{2016, 0, STR_COIL_CAR1},
|
||||
{2017, 0, STR_FABRIC_HEAD1},
|
||||
{2018, 0, STR_ROLL_FWD1},
|
||||
{2019, 0, STR_ROLL_REV1},
|
||||
{2020, 0, STR_ROLL_OVERLOAD1},
|
||||
{2021, 0, STR_BLOCK_FABRIC1},
|
||||
{2022, 0, STR_MATERIAL1_HIGH},
|
||||
{2023, 0, STR_MATERIAL1_LOW},
|
||||
{2024, 0, STR_MATERIAL1_IN},
|
||||
{2025, 0, STR_MATERIAL1_OUT},
|
||||
{2026, 0, STR_MATERIAL1_RECIRC},
|
||||
{2027, 0, STR_MATERIAL1_BOTTOM},
|
||||
{2028, 0, STR_MATERIAL1_FILL},
|
||||
{2029, 0, STR_MATERIAL1_HEAT},
|
||||
{2030, 0, STR_MATERIAL2_HIGH},
|
||||
{2031, 0, STR_MATERIAL2_LOW},
|
||||
{2032, 0, STR_MATERIAL2_IN},
|
||||
{2033, 0, STR_MATERIAL2_OUT},
|
||||
{2034, 0, STR_MATERIAL2_RECIRC},
|
||||
{2035, 0, STR_MATERIAL2_BOTTOM},
|
||||
{2036, 0, STR_MATERIAL2_FILL},
|
||||
{2037, 0, STR_MATERIAL2_HEAT},
|
||||
{2038, 0, STR_MATERIAL2_STIR},
|
||||
{2039, 0, STR_MANUAL2},
|
||||
{2040, 0, STR_COIL_CAR2},
|
||||
{2041, 0, STR_FABRIC_HEAD2},
|
||||
{2042, 0, STR_ROLL_FWD2},
|
||||
{2043, 0, STR_ROLL_REV2},
|
||||
{2044, 0, STR_ROLL_OVERLOAD2},
|
||||
{2045, 0, STR_BLOCK_FABRIC2},
|
||||
{2046, 0, STR_MANUAL3},
|
||||
{2047, 0, STR_COIL_CAR3},
|
||||
{2048, 0, STR_FABRIC_HEAD3},
|
||||
{2049, 0, STR_ROLL_FWD3},
|
||||
{2050, 0, STR_ROLL_REV3},
|
||||
{2051, 0, STR_ROLL_OVERLOAD3},
|
||||
{2052, 0, STR_BLOCK_FABRIC3},
|
||||
{2053, 0, STR_MANUAL4},
|
||||
{2054, 0, STR_COIL_CAR4},
|
||||
{2055, 0, STR_FABRIC_HEAD4},
|
||||
{2056, 0, STR_ROLL_FWD4},
|
||||
{2057, 0, STR_ROLL_REV4},
|
||||
{2058, 0, STR_ROLL_OVERLOAD4},
|
||||
{2059, 0, STR_BLOCK_FABRIC4},
|
||||
{2060, 0, STR_MANUAL5},
|
||||
{2061, 0, STR_COIL_CAR5},
|
||||
{2062, 0, STR_FABRIC_HEAD5},
|
||||
{2063, 0, STR_ROLL_FWD5},
|
||||
{2064, 0, STR_ROLL_REV5},
|
||||
{2065, 0, STR_ROLL_OVERLOAD5},
|
||||
{2066, 0, STR_BLOCK_FABRIC5},
|
||||
{2067, 0, STR_MANUAL6},
|
||||
{2068, 0, STR_COIL_CAR6},
|
||||
{2069, 0, STR_FABRIC_HEAD6},
|
||||
{2070, 0, STR_ROLL_FWD6},
|
||||
{2071, 0, STR_ROLL_REV6},
|
||||
{2072, 0, STR_ROLL_OVERLOAD6},
|
||||
{2073, 0, STR_BLOCK_FABRIC6},
|
||||
{2074, 0, STR_MATERIAL3_HIGH},
|
||||
{2075, 0, STR_MATERIAL3_LOW},
|
||||
{2076, 0, STR_MATERIAL3_IN},
|
||||
{2077, 0, STR_MATERIAL3_OUT},
|
||||
{2078, 0, STR_MATERIAL3_RECIRC},
|
||||
{2079, 0, STR_MATERIAL3_BOTTOM},
|
||||
{2080, 0, STR_MATERIAL3_FILL},
|
||||
{2081, 0, STR_MATERIAL3_HEAT},
|
||||
{2082, 0, STR_MATERIAL3_STIR},
|
||||
// --- DIO 输出(3001~3066)---
|
||||
{3001, 0, STR_RED}, // 红
|
||||
{3002, 0, STR_GREEN}, // 绿
|
||||
{3003, 0, STR_YELLOW}, // 黄
|
||||
{3004, 0, STR_ALARM}, // 警报
|
||||
{3005, 0, STR_HAND_AUTO}, // 手自动
|
||||
{3006, 0, STR_CONFIRM}, // 确认
|
||||
{3007, 0, STR_PRESSURIZE_VALVE}, // 加压阀
|
||||
{3008, 0, STR_DEPRESSURIZE_VALVE}, // 排压阀
|
||||
{3009, 0, STR_HEAT_UP_VALVE}, // 升温阀
|
||||
{3010, 0, STR_COOL_DOWN_VALVE}, // 降温阀
|
||||
{3011, 0, STR_MAIN_PUMP_START}, // 主泵启动
|
||||
{3012, 0, STR_FAN_START}, // 风机启动
|
||||
{3013, 0, STR_WATER_IN_1}, // 入水1
|
||||
{3014, 0, STR_WATER_IN_2}, // 入水2
|
||||
{3015, 0, STR_WATER_IN_3}, // 入水3
|
||||
{3016, 0, STR_WATER_IN_4}, // 入水4
|
||||
{3017, 0, STR_WATER_OUT_1}, // 排水1
|
||||
{3018, 0, STR_WATER_OUT_2}, // 排水2
|
||||
{3019, 0, STR_WATER_OUT_3}, // 排水3
|
||||
{3020, 0, STR_OVERFLOW_VALVE}, // 溢流阀
|
||||
{3021, 0, STR_ROLL_FWD_1}, // 布轮正转1
|
||||
{3022, 0, STR_ROLL_REV_1}, // 布轮反转1
|
||||
{3023, 0, STR_ROLL_FWD_2}, // 布轮正转2
|
||||
{3024, 0, STR_ROLL_REV_2}, // 布轮反转2
|
||||
{3025, 0, STR_ROLL_FWD_3}, // 布轮正转3
|
||||
{3026, 0, STR_ROLL_REV_3}, // 布轮反转3
|
||||
{3027, 0, STR_ROLL_FWD_4}, // 布轮正转4
|
||||
{3028, 0, STR_ROLL_REV_4}, // 布轮反转4
|
||||
{3029, 0, STR_ROLL_FWD_5}, // 布轮正转5
|
||||
{3030, 0, STR_ROLL_REV_5}, // 布轮反转5
|
||||
{3031, 0, STR_ROLL_FWD_6}, // 布轮正转6
|
||||
{3032, 0, STR_ROLL_REV_6}, // 布轮反转6
|
||||
{3033, 0, STR_TANK1_PUMP}, // 药缸1泵
|
||||
{3034, 0, STR_TANK1_WATER_IN_1}, // 药缸1入水1
|
||||
{3035, 0, STR_TANK1_WATER_IN_2}, // 药缸1入水2
|
||||
{3036, 0, STR_TANK1_RETURN_WATER}, // 药缸1回水
|
||||
{3037, 0, STR_TANK1_HEAT}, // 药缸1加热
|
||||
{3038, 0, STR_TANK1_STIRRER}, // 药缸1搅拌器
|
||||
{3039, 0, STR_TANK1_STIR_VALVE}, // 药缸1搅拌阀
|
||||
{3040, 0, STR_TANK1_FILL_VALVE}, // 药缸1加料阀
|
||||
{3041, 0, STR_TANK1_BYPASS_VALVE}, // 药缸1比例旁通阀
|
||||
{3042, 0, STR_TANK1_DRAIN_VALVE}, // 药缸1排水阀
|
||||
{3043, 0, STR_TANK2_PUMP}, // 药缸2泵
|
||||
{3044, 0, STR_TANK2_WATER_IN_1}, // 药缸2入水1
|
||||
{3045, 0, STR_TANK2_WATER_IN_2}, // 药缸2入水2
|
||||
{3046, 0, STR_TANK2_RETURN_WATER}, // 药缸2回水
|
||||
{3047, 0, STR_TANK2_HEAT}, // 药缸2加热
|
||||
{3048, 0, STR_TANK2_STIRRER}, // 药缸2搅拌器
|
||||
{3049, 0, STR_TANK2_STIR_VALVE}, // 药缸2搅拌阀
|
||||
{3050, 0, STR_TANK2_FILL_VALVE}, // 药缸2加料阀
|
||||
{3051, 0, STR_TANK2_BYPASS_VALVE}, // 药缸2比例旁通阀
|
||||
{3052, 0, STR_TANK2_DRAIN_VALVE}, // 药缸2排水阀
|
||||
{3053, 0, STR_TANK3_PUMP}, // 药缸3泵
|
||||
{3054, 0, STR_TANK3_WATER_IN_1}, // 药缸3入水1
|
||||
{3055, 0, STR_TANK3_WATER_IN_2}, // 药缸3入水2
|
||||
{3056, 0, STR_TANK3_RETURN_WATER}, // 药缸3回水
|
||||
{3057, 0, STR_TANK3_HEAT}, // 药缸3加热
|
||||
{3058, 0, STR_TANK3_STIRRER}, // 药缸3搅拌器
|
||||
{3059, 0, STR_TANK3_STIR_VALVE}, // 药缸3搅拌阀
|
||||
{3060, 0, STR_TANK3_FILL_VALVE}, // 药缸3加料阀
|
||||
{3061, 0, STR_TANK3_BYPASS_VALVE}, // 药缸3比例旁通阀
|
||||
{3062, 0, STR_TANK3_DRAIN_VALVE}, // 药缸3排水阀
|
||||
{3063, 0, STR_ROLL_REV_12}, // 布轮反转12
|
||||
{3064, 0, STR_DRAIN_PUMP}, // 排水泵
|
||||
{3065, 0, STR_HEAT_EXCHANGER_CONDENSATE}, // 热交换器冷凝水
|
||||
{3066, 0, STR_HEAT_EXCHANGER_COOLING_WATER}, // 交换器排冷却水
|
||||
};
|
||||
|
||||
//AIO状态表
|
||||
IO_State_AIO aio_table[] = {
|
||||
// --- AIO 输入(4001~4022)---
|
||||
{4001, 0, STR_AIO_TEMP1},
|
||||
{4002, 0, STR_AIO_TEMP2},
|
||||
{4003, 0, STR_AIO_TEMP3},
|
||||
{4004, 0, STR_AIO_TEMP4},
|
||||
{4005, 0, STR_AIO_TEMP5},
|
||||
{4006, 0, STR_AIO_FLOW1},
|
||||
{4007, 0, STR_AIO_LEVEL1},
|
||||
{4008, 0, STR_AIO_LEVEL2},
|
||||
{4009, 0, STR_AIO_LEVEL3},
|
||||
{4010, 0, STR_AIO_LEVEL4},
|
||||
{4011, 0, STR_AIO_MAIN_PRESSURE},
|
||||
{4012, 0, STR_AIO_NOZZLE_PRESSURE},
|
||||
{4013, 0, STR_AIO_NOZZLE_FLOW},
|
||||
{4014, 0, STR_AIO_AIR_FLOW},
|
||||
{4015, 0, STR_AIO_POWER},
|
||||
{4016, 0, STR_AIO_FABRIC_CYCLE1},
|
||||
{4017, 0, STR_AIO_FABRIC_CYCLE2},
|
||||
{4018, 0, STR_AIO_FABRIC_CYCLE3},
|
||||
{4019, 0, STR_AIO_FABRIC_CYCLE4},
|
||||
{4020, 0, STR_AIO_FABRIC_CYCLE5},
|
||||
{4021, 0, STR_AIO_FABRIC_CYCLE6},
|
||||
{4022, 0, STR_AIO_PH},
|
||||
// --- AO 输出(5001~5014)---
|
||||
{5001, 0, STR_AIO_HEAT_RATIO},
|
||||
{5002, 0, STR_AIO_COOL_RATIO},
|
||||
{5003, 0, STR_AIO_MAIN_PUMP_SPEED},
|
||||
{5004, 0, STR_AIO_FAN_SPEED},
|
||||
{5005, 0, STR_AIO_FILL_RATIO1},
|
||||
{5006, 0, STR_AIO_FILL_RATIO2},
|
||||
{5007, 0, STR_AIO_FILL_RATIO3},
|
||||
{5008, 0, STR_AIO_FABRIC_SWING},
|
||||
{5009, 0, STR_AIO_LIFT1},
|
||||
{5010, 0, STR_AIO_LIFT2},
|
||||
{5011, 0, STR_AIO_LIFT3},
|
||||
{5012, 0, STR_AIO_LIFT4},
|
||||
{5013, 0, STR_AIO_LIFT5},
|
||||
{5014, 0, STR_AIO_LIFT6}
|
||||
};
|
||||
|
||||
const unsigned char DIO_TABLE_SIZE = sizeof(dio_table) / sizeof(dio_table[0]);
|
||||
const unsigned char AIO_TABLE_SIZE = sizeof(aio_table) / sizeof(aio_table[0]);
|
||||
const unsigned char DATA_TABLE_SIZE = sizeof(data_table) / sizeof(data_table[0]);
|
||||
|
||||
void DATA_Table_Init(){
|
||||
for(int i=0;i<DIO_TABLE_SIZE;i++)
|
||||
{
|
||||
dio_table[i].current_state = 0;
|
||||
}
|
||||
for(int i=0;i<AIO_TABLE_SIZE;i++)
|
||||
{
|
||||
aio_table[i].current_Value = 0;
|
||||
}
|
||||
for(int i=0;i<DATA_TABLE_SIZE;i++)
|
||||
{
|
||||
data_table[i].current_data = 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
#ifndef APPLICATIONS_SC828_DATA_Table_H
|
||||
#define APPLICATIONS_SC828_DATA_Table_H
|
||||
|
||||
#include "stdbool.h"
|
||||
#include "language.h"
|
||||
|
||||
// IO状态结构体(可扩展)
|
||||
typedef struct {
|
||||
int pin; // PLCID
|
||||
unsigned char current_state; // 当前电平:0=低,1=高
|
||||
str_id_t name; // 名称(可选,用于调试)
|
||||
} IO_State_DIO;
|
||||
|
||||
typedef struct {
|
||||
int pin; // PLCID
|
||||
unsigned char current_Value; // 当前状态
|
||||
str_id_t name; // 名称(可选,用于调试)
|
||||
} IO_State_AIO;
|
||||
|
||||
typedef struct {
|
||||
int pin; // PLCID
|
||||
int current_data; // 当前状态
|
||||
str_id_t name; // 名称(可选,用于调试)
|
||||
} IO_State_DATA;
|
||||
|
||||
extern IO_State_DIO dio_table[];
|
||||
extern IO_State_AIO aio_table[];
|
||||
extern IO_State_DATA data_table[];
|
||||
|
||||
extern const unsigned char DIO_TABLE_SIZE;
|
||||
extern const unsigned char AIO_TABLE_SIZE;
|
||||
extern const unsigned char DATA_TABLE_SIZE;
|
||||
|
||||
void DATA_Table_Init(void);//
|
||||
#endif
|
||||
@@ -0,0 +1,104 @@
|
||||
#include <rtthread.h>
|
||||
#include <string.h>
|
||||
|
||||
// ===== 实际定义 =====
|
||||
|
||||
// 动态数据缓冲区(初始化为 NULL,后续分配)
|
||||
char *DATA_dat = NULL;
|
||||
char *DATA_machins = NULL;
|
||||
char DATA_api[5];
|
||||
char *machine_name = "Q109";
|
||||
char machine_ID[3] = "23";
|
||||
|
||||
// 状态标志
|
||||
char MACHINE_ERR = 0;
|
||||
char MACHINE_LOCK = 0;
|
||||
char MACHINE_CALL = 0;
|
||||
char MACHINE_USER = 0;
|
||||
|
||||
// 字符串变量(RAM 中可修改)
|
||||
char Work[15];
|
||||
char Dye[15];
|
||||
char Process[50];
|
||||
char Message[40];
|
||||
char Step[60];
|
||||
char Info[30];
|
||||
|
||||
// 整型变量
|
||||
unsigned int Redye = 0;
|
||||
unsigned int UserInfoStart = 900;
|
||||
unsigned int RUN = 0;
|
||||
unsigned int STEPID = 0;
|
||||
|
||||
// 浮点变量
|
||||
float MTT = 0.0f;
|
||||
float MTL = 0.0f;
|
||||
float MTH = 6.0f; // 默认目标温度
|
||||
float MST = 0.0f;
|
||||
float MUT = 0.0f;
|
||||
float STTA = 0.0f;
|
||||
float STLA = 0.0f;
|
||||
float STTB = 0.0f;
|
||||
float STLB = 0.0f;
|
||||
float STTC = 0.0f;
|
||||
float STLC = 0.0f;
|
||||
|
||||
// 控制输出
|
||||
unsigned int Pump = 0;
|
||||
unsigned int TC = 0;
|
||||
unsigned int Fan = 0;
|
||||
unsigned int Pull = 0;
|
||||
unsigned int Swing = 0;
|
||||
unsigned int STA = 0;
|
||||
unsigned int STB = 0;
|
||||
unsigned int STC = 0;
|
||||
unsigned int Time = 0;
|
||||
unsigned int StepN = 0;
|
||||
unsigned int P6 = 0;
|
||||
unsigned int P7 = 0;
|
||||
unsigned int P8 = 0;
|
||||
unsigned int P9 = 0;
|
||||
unsigned int P10 = 0;
|
||||
|
||||
// 步骤功能参数
|
||||
float P1 = 0.0f;
|
||||
float P2 = 0.0f;
|
||||
float P3 = 0.0f;
|
||||
float P4 = 0.0f;
|
||||
float P5 = 0.0f;
|
||||
float P1S1 = 0.0f;
|
||||
float P2S1 = 0.0f;
|
||||
float P3S1 = 0.0f;
|
||||
float P4S1 = 0.0f;
|
||||
float P5S1 = 0.0f;
|
||||
float P1S2 = 0.0f;
|
||||
float P2S2 = 0.0f;
|
||||
float P3S2 = 0.0f;
|
||||
float P4S2 = 0.0f;
|
||||
float P5S2 = 0.0f;
|
||||
float P1S3 = 0.0f;
|
||||
float P2S3 = 0.0f;
|
||||
float P3S3 = 0.0f;
|
||||
float P4S3 = 0.0f;
|
||||
float P5S3 = 0.0f;
|
||||
|
||||
// 步骤编号字符串
|
||||
char StepID[3];
|
||||
char SIDS1[3];
|
||||
char SIDS2[3];
|
||||
char SIDS3[3];
|
||||
|
||||
// ===== 初始化函数 =====
|
||||
void init_global_vars(void) {
|
||||
strcpy(Work, "Work Order");
|
||||
strcpy(Dye, "Work Order");
|
||||
strcpy(Process, "Process");
|
||||
strcpy(Message, "Message");
|
||||
strcpy(Step, "STEP");
|
||||
strcpy(Info, "user");
|
||||
|
||||
strcpy(StepID, "000");
|
||||
strcpy(SIDS1, "000");
|
||||
strcpy(SIDS2, "000");
|
||||
strcpy(SIDS3, "000");
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
#ifndef APPLICATIONS_Variable_H
|
||||
#define APPLICATIONS_Variable_H
|
||||
|
||||
#include "stdbool.h"
|
||||
|
||||
// ===== 字符串变量 =====
|
||||
extern char *DATA_dat;
|
||||
extern char *DATA_machins;
|
||||
extern char DATA_api[5];
|
||||
extern char *machine_name;
|
||||
extern char machine_ID[3];
|
||||
|
||||
// ===== 布尔变量 =====
|
||||
extern char MACHINE_ERR;
|
||||
extern char MACHINE_LOCK;
|
||||
extern char MACHINE_CALL;
|
||||
extern char MACHINE_USER;
|
||||
|
||||
// ===== 字符串 =====
|
||||
extern char Work[15];
|
||||
extern char Dye[15];
|
||||
extern char Process[50];
|
||||
extern char Message[40];
|
||||
extern char Step[60];
|
||||
extern char Info[30];
|
||||
|
||||
// ===== 整数变量 =====
|
||||
extern unsigned int Redye;
|
||||
extern unsigned int UserInfoStart;
|
||||
extern unsigned int RUN;
|
||||
extern unsigned int STEPID;
|
||||
extern unsigned int Pump;
|
||||
extern unsigned int TC;
|
||||
extern unsigned int Fan;
|
||||
extern unsigned int Pull;
|
||||
extern unsigned int Swing;
|
||||
extern unsigned int STA;
|
||||
extern unsigned int STB;
|
||||
extern unsigned int STC;
|
||||
extern unsigned int Time;
|
||||
extern unsigned int StepN;
|
||||
extern unsigned int P6;
|
||||
extern unsigned int P7;
|
||||
extern unsigned int P8;
|
||||
extern unsigned int P9;
|
||||
extern unsigned int P10;
|
||||
|
||||
// ===== 浮点数变量 =====
|
||||
extern float MTT;
|
||||
extern float MTL;
|
||||
extern float MTH;
|
||||
extern float MST;
|
||||
extern float MUT;
|
||||
extern float STTA;
|
||||
extern float STLA;
|
||||
extern float STTB;
|
||||
extern float STLB;
|
||||
extern float STTC;
|
||||
extern float STLC;
|
||||
extern float P1;
|
||||
extern float P2;
|
||||
extern float P3;
|
||||
extern float P4;
|
||||
extern float P5;
|
||||
extern float P1S1;
|
||||
extern float P2S1;
|
||||
extern float P3S1;
|
||||
extern float P4S1;
|
||||
extern float P5S1;
|
||||
extern float P1S2;
|
||||
extern float P2S2;
|
||||
extern float P3S2;
|
||||
extern float P4S2;
|
||||
extern float P5S2;
|
||||
extern float P1S3;
|
||||
extern float P2S3;
|
||||
extern float P3S3;
|
||||
extern float P4S3;
|
||||
extern float P5S3;
|
||||
|
||||
extern char StepID[3];
|
||||
extern char SIDS1[3];
|
||||
extern char SIDS2[3];
|
||||
extern char SIDS3[3];
|
||||
|
||||
void init_global_vars(void);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,415 @@
|
||||
// language.c
|
||||
#include <rtthread.h>
|
||||
#include <language.h>
|
||||
|
||||
lang_t current_lang = LANG_ZH;
|
||||
|
||||
// 英文字符串
|
||||
static const char *text_en[STR_COUNT] = {
|
||||
[STR_EMERGENCY_STOP] = "Emergency Stop",
|
||||
[STR_TEMP_LOCK] = "Temperature Lock",
|
||||
[STR_PRESSURE_LOCK] = "Pressure Lock",
|
||||
[STR_CALL_CONFIRM] = "Call Confirm",
|
||||
[STR_MANUAL] = "Manual",
|
||||
[STR_FAN_START] = "Fan Start",
|
||||
[STR_FAN_FAULT] = "Fan Fault",
|
||||
[STR_MAIN_PUMP_FAULT] = "Main Pump Fault",
|
||||
[STR_ROLL_RESET] = "Roll Reset",
|
||||
[STR_FABRIC_FAULT] = "Fabric Fault",
|
||||
[STR_ELEC_FAULT] = "Electrical Fault",
|
||||
[STR_MATERIAL_PUMP1] = "Material Pump 1 Abnormal",
|
||||
[STR_MATERIAL_PUMP2] = "Material Pump 2 Abnormal",
|
||||
[STR_MATERIAL_PUMP3] = "Material Pump 3 Abnormal",
|
||||
[STR_MANUAL1] = "Manual 1",
|
||||
[STR_COIL_CAR1] = "Coil Car 1",
|
||||
[STR_FABRIC_HEAD1] = "Fabric Head 1",
|
||||
[STR_ROLL_FWD1] = "Roll Forward 1",
|
||||
[STR_ROLL_REV1] = "Roll Reverse 1",
|
||||
[STR_ROLL_OVERLOAD1] = "Roll Overload 1",
|
||||
[STR_BLOCK_FABRIC1] = "Block Fabric 1",
|
||||
[STR_MATERIAL1_HIGH] = "Material 1 High Level",
|
||||
[STR_MATERIAL1_LOW] = "Material 1 Low Level",
|
||||
[STR_MATERIAL1_IN] = "Material 1 In Water",
|
||||
[STR_MATERIAL1_OUT] = "Material 1 Drain",
|
||||
[STR_MATERIAL1_RECIRC] = "Material 1 Recirculate",
|
||||
[STR_MATERIAL1_BOTTOM] = "Material 1 Bottom Level",
|
||||
[STR_MATERIAL1_FILL] = "Material 1 Fill",
|
||||
[STR_MATERIAL1_HEAT] = "Material 1 Heat",
|
||||
[STR_MATERIAL2_HIGH] = "Material 2 High Level",
|
||||
[STR_MATERIAL2_LOW] = "Material 2 Low Level",
|
||||
[STR_MATERIAL2_IN] = "Material 2 In Water",
|
||||
[STR_MATERIAL2_OUT] = "Material 2 Drain",
|
||||
[STR_MATERIAL2_RECIRC] = "Material 2 Recirculate",
|
||||
[STR_MATERIAL2_BOTTOM] = "Material 2 Bottom Level",
|
||||
[STR_MATERIAL2_FILL] = "Material 2 Fill",
|
||||
[STR_MATERIAL2_HEAT] = "Material 2 Heat",
|
||||
[STR_MATERIAL2_STIR] = "Material 2 Stir",
|
||||
[STR_MANUAL2] = "Manual 2",
|
||||
[STR_COIL_CAR2] = "Coil Car 2",
|
||||
[STR_FABRIC_HEAD2] = "Fabric Head 2",
|
||||
[STR_ROLL_FWD2] = "Roll Forward 2",
|
||||
[STR_ROLL_REV2] = "Roll Reverse 2",
|
||||
[STR_ROLL_OVERLOAD2] = "Roll Overload 2",
|
||||
[STR_BLOCK_FABRIC2] = "Block Fabric 2",
|
||||
[STR_MANUAL3] = "Manual 3",
|
||||
[STR_COIL_CAR3] = "Coil Car 3",
|
||||
[STR_FABRIC_HEAD3] = "Fabric Head 3",
|
||||
[STR_ROLL_FWD3] = "Roll Forward 3",
|
||||
[STR_ROLL_REV3] = "Roll Reverse 3",
|
||||
[STR_ROLL_OVERLOAD3] = "Roll Overload 3",
|
||||
[STR_BLOCK_FABRIC3] = "Block Fabric 3",
|
||||
[STR_MANUAL4] = "Manual 4",
|
||||
[STR_COIL_CAR4] = "Coil Car 4",
|
||||
[STR_FABRIC_HEAD4] = "Fabric Head 4",
|
||||
[STR_ROLL_FWD4] = "Roll Forward 4",
|
||||
[STR_ROLL_REV4] = "Roll Reverse 4",
|
||||
[STR_ROLL_OVERLOAD4] = "Roll Overload 4",
|
||||
[STR_BLOCK_FABRIC4] = "Block Fabric 4",
|
||||
[STR_MANUAL5] = "Manual 5",
|
||||
[STR_COIL_CAR5] = "Coil Car 5",
|
||||
[STR_FABRIC_HEAD5] = "Fabric Head 5",
|
||||
[STR_ROLL_FWD5] = "Roll Forward 5",
|
||||
[STR_ROLL_REV5] = "Roll Reverse 5",
|
||||
[STR_ROLL_OVERLOAD5] = "Roll Overload 5",
|
||||
[STR_BLOCK_FABRIC5] = "Block Fabric 5",
|
||||
[STR_MANUAL6] = "Manual 6",
|
||||
[STR_COIL_CAR6] = "Coil Car 6",
|
||||
[STR_FABRIC_HEAD6] = "Fabric Head 6",
|
||||
[STR_ROLL_FWD6] = "Roll Forward 6",
|
||||
[STR_ROLL_REV6] = "Roll Reverse 6",
|
||||
[STR_ROLL_OVERLOAD6] = "Roll Overload 6",
|
||||
[STR_BLOCK_FABRIC6] = "Block Fabric 6",
|
||||
[STR_MATERIAL3_HIGH] = "Material 3 High Level",
|
||||
[STR_MATERIAL3_LOW] = "Material 3 Low Level",
|
||||
[STR_MATERIAL3_IN] = "Material 3 In Water",
|
||||
[STR_MATERIAL3_OUT] = "Material 3 Drain",
|
||||
[STR_MATERIAL3_RECIRC] = "Material 3 Recirculate",
|
||||
[STR_MATERIAL3_BOTTOM] = "Material 3 Bottom Level",
|
||||
[STR_MATERIAL3_FILL] = "Material 3 Fill",
|
||||
[STR_MATERIAL3_HEAT] = "Material 3 Heat",
|
||||
[STR_MATERIAL3_STIR] = "Material 3 Stir",
|
||||
[STR_AIO_TEMP1] = "Temp 1",
|
||||
[STR_AIO_TEMP2] = "Temp 2",
|
||||
[STR_AIO_TEMP3] = "Temp 3",
|
||||
[STR_AIO_TEMP4] = "Temp 4",
|
||||
[STR_AIO_TEMP5] = "Temp 5",
|
||||
[STR_AIO_FLOW1] = "Flow 1",
|
||||
[STR_AIO_LEVEL1] = "Level 1",
|
||||
[STR_AIO_LEVEL2] = "Level 2",
|
||||
[STR_AIO_LEVEL3] = "Level 3",
|
||||
[STR_AIO_LEVEL4] = "Level 4",
|
||||
[STR_AIO_MAIN_PRESSURE] = "Main Pressure",
|
||||
[STR_AIO_NOZZLE_PRESSURE] = "Nozzle Pressure",
|
||||
[STR_AIO_NOZZLE_FLOW] = "Nozzle Flow",
|
||||
[STR_AIO_AIR_FLOW] = "Air Flow",
|
||||
[STR_AIO_POWER] = "Power",
|
||||
[STR_AIO_FABRIC_CYCLE1] = "Fabric Cycle 1",
|
||||
[STR_AIO_FABRIC_CYCLE2] = "Fabric Cycle 2",
|
||||
[STR_AIO_FABRIC_CYCLE3] = "Fabric Cycle 3",
|
||||
[STR_AIO_FABRIC_CYCLE4] = "Fabric Cycle 4",
|
||||
[STR_AIO_FABRIC_CYCLE5] = "Fabric Cycle 5",
|
||||
[STR_AIO_FABRIC_CYCLE6] = "Fabric Cycle 6",
|
||||
[STR_AIO_PH] = "PH",
|
||||
[STR_AIO_HEAT_RATIO] = "Heat Ratio",
|
||||
[STR_AIO_COOL_RATIO] = "Cool Ratio",
|
||||
[STR_AIO_MAIN_PUMP_SPEED] = "Main Pump Speed",
|
||||
[STR_AIO_FAN_SPEED] = "Fan Speed",
|
||||
[STR_AIO_FILL_RATIO1] = "Fill Ratio 1",
|
||||
[STR_AIO_FILL_RATIO2] = "Fill Ratio 2",
|
||||
[STR_AIO_FILL_RATIO3] = "Fill Ratio 3",
|
||||
[STR_AIO_FABRIC_SWING] = "Fabric Swing",
|
||||
[STR_AIO_LIFT1] = "Lift 1",
|
||||
[STR_AIO_LIFT2] = "Lift 2",
|
||||
[STR_AIO_LIFT3] = "Lift 3",
|
||||
[STR_AIO_LIFT4] = "Lift 4",
|
||||
[STR_AIO_LIFT5] = "Lift 5",
|
||||
[STR_AIO_LIFT6] = "Lift 6",
|
||||
[STR_RED] = "Red",
|
||||
[STR_GREEN] = "Green",
|
||||
[STR_YELLOW] = "Yellow",
|
||||
[STR_ALARM] = "Alarm",
|
||||
[STR_HAND_AUTO] = "Manual Auto",
|
||||
[STR_CONFIRM] = "Confirm",
|
||||
[STR_PRESSURIZE_VALVE] = "Pressurize Valve",
|
||||
[STR_DEPRESSURIZE_VALVE] = "Depressurize Valve",
|
||||
[STR_HEAT_UP_VALVE] = "Heat Up Valve",
|
||||
[STR_COOL_DOWN_VALVE] = "Cool Down Valve",
|
||||
[STR_MAIN_PUMP_START] = "Main Pump Start",
|
||||
[STR_WATER_IN_1] = "Water In 1",
|
||||
[STR_WATER_IN_2] = "Water In 2",
|
||||
[STR_WATER_IN_3] = "Water In 3",
|
||||
[STR_WATER_IN_4] = "Water In 4",
|
||||
[STR_WATER_OUT_1] = "Water Out 1",
|
||||
[STR_WATER_OUT_2] = "Water Out 2",
|
||||
[STR_WATER_OUT_3] = "Water Out 3",
|
||||
[STR_OVERFLOW_VALVE] = "Overflow Valve",
|
||||
[STR_ROLL_FWD_1] = "Roll Forward 1",
|
||||
[STR_ROLL_REV_1] = "Roll Reverse 1",
|
||||
[STR_ROLL_FWD_2] = "Roll Forward 2",
|
||||
[STR_ROLL_REV_2] = "Roll Reverse 2",
|
||||
[STR_ROLL_FWD_3] = "Roll Forward 3",
|
||||
[STR_ROLL_REV_3] = "Roll Reverse 3",
|
||||
[STR_ROLL_FWD_4] = "Roll Forward 4",
|
||||
[STR_ROLL_REV_4] = "Roll Reverse 4",
|
||||
[STR_ROLL_FWD_5] = "Roll Forward 5",
|
||||
[STR_ROLL_REV_5] = "Roll Reverse 5",
|
||||
[STR_ROLL_FWD_6] = "Roll Forward 6",
|
||||
[STR_ROLL_REV_6] = "Roll Reverse 6",
|
||||
[STR_TANK1_PUMP] = "Tank 1 Pump",
|
||||
[STR_TANK1_WATER_IN_1] = "Tank 1 Water In 1",
|
||||
[STR_TANK1_WATER_IN_2] = "Tank 1 Water In 2",
|
||||
[STR_TANK1_RETURN_WATER] = "Tank 1 Return Water",
|
||||
[STR_TANK1_HEAT] = "Tank 1 Heat",
|
||||
[STR_TANK1_STIRRER] = "Tank 1 Stirrer",
|
||||
[STR_TANK1_STIR_VALVE] = "Tank 1 Stir Valve",
|
||||
[STR_TANK1_FILL_VALVE] = "Tank 1 Fill Valve",
|
||||
[STR_TANK1_BYPASS_VALVE] = "Tank 1 Bypass Valve",
|
||||
[STR_TANK1_DRAIN_VALVE] = "Tank 1 Drain Valve",
|
||||
[STR_TANK2_PUMP] = "Tank 2 Pump",
|
||||
[STR_TANK2_WATER_IN_1] = "Tank 2 Water In 1",
|
||||
[STR_TANK2_WATER_IN_2] = "Tank 2 Water In 2",
|
||||
[STR_TANK2_RETURN_WATER] = "Tank 2 Return Water",
|
||||
[STR_TANK2_HEAT] = "Tank 2 Heat",
|
||||
[STR_TANK2_STIRRER] = "Tank 2 Stirrer",
|
||||
[STR_TANK2_STIR_VALVE] = "Tank 2 Stir Valve",
|
||||
[STR_TANK2_FILL_VALVE] = "Tank 2 Fill Valve",
|
||||
[STR_TANK2_BYPASS_VALVE] = "Tank 2 Bypass Valve",
|
||||
[STR_TANK2_DRAIN_VALVE] = "Tank 2 Drain Valve",
|
||||
[STR_TANK3_PUMP] = "Tank 3 Pump",
|
||||
[STR_TANK3_WATER_IN_1] = "Tank 3 Water In 1",
|
||||
[STR_TANK3_WATER_IN_2] = "Tank 3 Water In 2",
|
||||
[STR_TANK3_RETURN_WATER] = "Tank 3 Return Water",
|
||||
[STR_TANK3_HEAT] = "Tank 3 Heat",
|
||||
[STR_TANK3_STIRRER] = "Tank 3 Stirrer",
|
||||
[STR_TANK3_STIR_VALVE] = "Tank 3 Stir Valve",
|
||||
[STR_TANK3_FILL_VALVE] = "Tank 3 Fill Valve",
|
||||
[STR_TANK3_BYPASS_VALVE] = "Tank 3 Bypass Valve",
|
||||
[STR_TANK3_DRAIN_VALVE] = "Tank 3 Drain Valve",
|
||||
[STR_ROLL_REV_12] = "Roll Reverse 1-2",
|
||||
[STR_DRAIN_PUMP] = "Drain Pump",
|
||||
[STR_HEAT_EXCHANGER_CONDENSATE] = "Heat Exchanger Condensate",
|
||||
[STR_HEAT_EXCHANGER_COOLING_WATER] = "Heat Exchanger Cooling Water",
|
||||
[STR_COMM_COUNTER] = "Communication Counter",
|
||||
[STR_COMM_FAULT_COUNTER] = "Communication Fault Counter",
|
||||
[STR_CYCLE_TEMP_RISE_SET] = "Cycle Temperature Rise Setpoint",
|
||||
[STR_TEMP_CONTROL_RATIO] = "Temperature Control Ratio",
|
||||
[STR_CALCULATED_TEMP] = "Calculated Temperature",
|
||||
[STR_FLOW_COUNTER] = "Flow Counter",
|
||||
[STR_GLOBAL_FLOW_COUNTER] = "Global Flow Counter",
|
||||
[STR_NOZZLE_SETTING] = "Nozzle Setting",
|
||||
[STR_MAIN_PUMP_SPEED_SET] = "Main Pump Speed Setpoint",
|
||||
[STR_FAN_SPEED_SET] = "Fan Speed Setpoint",
|
||||
[STR_TARGET_PH_SET] = "Target pH Setpoint",
|
||||
[STR_PH_DEVICE_STATUS] = "pH Device Status"
|
||||
};
|
||||
|
||||
// 中文字符串(UTF-8 编码)
|
||||
static const char *text_zh[STR_COUNT] = {
|
||||
[STR_EMERGENCY_STOP] = "\xE6\x80\xA5\xE5\x81\x9C", // "急停"
|
||||
[STR_TEMP_LOCK] = "\xE6\xB8\xA9\xE5\xBA\xA6\xE9\x94\x81\xE5\xAE\x9A", // "温度锁定"
|
||||
[STR_PRESSURE_LOCK] = "\xE5\x8E\x8B\xE5\x8A\x9B\xE9\x94\x81\xE5\xAE\x9A", // "压力锁定"
|
||||
[STR_CALL_CONFIRM] = "\xE5\x91\xBC\xE5\x8F\xAB\xE7\xa1\xAE\xE8\xAE\xA4", // "呼叫确认"
|
||||
[STR_MANUAL] = "\xE6\x89\x8B\xE5\x8A\xA8", // "手动"
|
||||
[STR_FAN_START] = "\xE9\xA3\x8E\xE6\x9C\xBA\xE5\x90\xAF\xE5\x8A\xA8", // "风机启动"
|
||||
[STR_FAN_FAULT] = "\xE9\xA3\x8E\xE6\x9C\xBA\xE6\x95\x85\xE9\x9A\x9C", // "风机故障"
|
||||
[STR_MAIN_PUMP_FAULT] = "\xE4\xB8\xBB\xE6\xB3\xB5\xE6\x95\x85\xE9\x9A\x9C", // "主泵故障"
|
||||
[STR_ROLL_RESET] = "\xE5\xB8\x83\xE8\xBD\xAE\xE9\x87\x8D\xE7\xBD\xAE", // "布轮重置"
|
||||
[STR_FABRIC_FAULT] = "\xE6\x91\x86\xE5\xB8\x83\xE6\x95\x85\xE9\x9A\x9C", // "摆布故障"
|
||||
[STR_ELEC_FAULT] = "\xE7\x94\xB5\xE5\x99\xA8\xE6\x95\x85\xE9\x9A\x9C", // "电器故障"
|
||||
[STR_MATERIAL_PUMP1] = "\xE6\x96\x99\xE6\xB3\xB5\x31\xE5\xBC\x82\xE5\xB8\xB8", // "料泵1异常"
|
||||
[STR_MATERIAL_PUMP2] = "\xE6\x96\x99\xE6\xB3\xB5\x32\xE5\xBC\x82\xE5\xB8\xB8", // "料泵2异常"
|
||||
[STR_MATERIAL_PUMP3] = "\xE6\x96\x99\xE6\xB3\xB5\x33\xE5\xBC\x82\xE5\xB8\xB8", // "料泵3异常"
|
||||
[STR_MANUAL1] = "\xE6\x89\x8B\xE5\x8A\xA8\x31", // "手动1"
|
||||
[STR_COIL_CAR1] = "\xE7\xBA\xA0\xE8\xBD\xA6\x31", // "缠车1"
|
||||
[STR_FABRIC_HEAD1] = "\xE5\xB8\x83\xE5\xA4\xB4\x31", // "布头1"
|
||||
[STR_ROLL_FWD1] = "\xE5\xB8\x83\xE8\xBD\xAE\xE6\xAD\xA3\xE8\xBD\xAC\x31", // "布轮正转1"
|
||||
[STR_ROLL_REV1] = "\xE5\xB8\x83\xE8\xBD\xAE\xE5\x8F\x8D\xE8\xBD\xAC\x31", // "布轮反转1"
|
||||
[STR_ROLL_OVERLOAD1] = "\xE5\xB8\x83\xE8\xBD\xAE\xE8\xBF\x87\xE8\xBD\xBD\x31", // "布轮过载1"
|
||||
[STR_BLOCK_FABRIC1] = "\xE5\xA0\xB5\xE5\xB8\x83\x31", // "堵布1"
|
||||
[STR_MATERIAL1_HIGH] = "\xE6\x96\x99\x31\xE9\xAB\x98\xE6\xB6\xB2\xE4\xBD\x8D", // "料1高液位"
|
||||
[STR_MATERIAL1_LOW] = "\xE6\x96\x99\x31\xE4\xBD\x8E\xE6\xB6\xB2\xE4\xBD\x8D", // "料1低液位"
|
||||
[STR_MATERIAL1_IN] = "\xE6\x96\x99\x31\xE5\x85\xA5\xE6\xB0\xB4", // "料1入水"
|
||||
[STR_MATERIAL1_OUT] = "\xE6\x96\x99\x31\xE6\x8E\x92\xE6\xB0\xB4", // "料1排水"
|
||||
[STR_MATERIAL1_RECIRC] = "\xE6\x96\x99\x31\xE5\x9B\x9E\xE6\xB5\x81", // "料1回流"
|
||||
[STR_MATERIAL1_BOTTOM] = "\xE6\x96\x99\x31\xE5\xBA\x95\xE6\xB6\xB2\xE4\xBD\x8D", // "料1底液位"
|
||||
[STR_MATERIAL1_FILL] = "\xE6\x96\x99\x31\xE6\xB3\xA8\xE6\x96\x99", // "料1注料"
|
||||
[STR_MATERIAL1_HEAT] = "\xE6\x96\x99\x31\xE5\x8A\xA0\xE7\x83\xAD", // "料1加热"
|
||||
[STR_MATERIAL2_HIGH] = "\xE6\x96\x99\x32\xE9\xAB\x98\xE6\xB6\xB2\xE4\xBD\x8D", // "料2高液位"
|
||||
[STR_MATERIAL2_LOW] = "\xE6\x96\x99\x32\xE4\xBD\x8E\xE6\xB6\xB2\xE4\xBD\x8D", // "料2低液位"
|
||||
[STR_MATERIAL2_IN] = "\xE6\x96\x99\x32\xE5\x85\xA5\xE6\xB0\xB4", // "料2入水"
|
||||
[STR_MATERIAL2_OUT] = "\xE6\x96\x99\x32\xE6\x8E\x92\xE6\xB0\xB4", // "料2排水"
|
||||
[STR_MATERIAL2_RECIRC] = "\xE6\x96\x99\x32\xE5\x9B\x9E\xE6\xB5\x81", // "料2回流"
|
||||
[STR_MATERIAL2_BOTTOM] = "\xE6\x96\x99\x32\xE5\xBA\x95\xE6\xB6\xB2\xE4\xBD\x8D", // "料2底液位"
|
||||
[STR_MATERIAL2_FILL] = "\xE6\x96\x99\x32\xE6\xB3\xA8\xE6\x96\x99", // "料2注料"
|
||||
[STR_MATERIAL2_HEAT] = "\xE6\x96\x99\x32\xE5\x8A\xA0\xE7\x83\xAD", // "料2加热"
|
||||
[STR_MATERIAL2_STIR] = "\xE6\x96\x99\x32\xE6\x90\x9A\xE6\x8B\x8C", // "料2搅拌"
|
||||
[STR_MANUAL2] = "\xE6\x89\x8B\xE5\x8A\xA8\x32", // "手动2"
|
||||
[STR_COIL_CAR2] = "\xE7\xBA\xA0\xE8\xBD\xA6\x32", // "缠车2"
|
||||
[STR_FABRIC_HEAD2] = "\xE5\xB8\x83\xE5\xA4\xB4\x32", // "布头2"
|
||||
[STR_ROLL_FWD2] = "\xE5\xB8\x83\xE8\xBD\xAE\xE6\xAD\xA3\xE8\xBD\xAC\x32", // "布轮正转2"
|
||||
[STR_ROLL_REV2] = "\xE5\xB8\x83\xE8\xBD\xAE\xE5\x8F\x8D\xE8\xBD\xAC\x32", // "布轮反转2"
|
||||
[STR_ROLL_OVERLOAD2] = "\xE5\xB8\x83\xE8\xBD\xAE\xE8\xBF\x87\xE8\xBD\xBD\x32", // "布轮过载2"
|
||||
[STR_BLOCK_FABRIC2] = "\xE5\xA0\xB5\xE5\xB8\x83\x32", // "堵布2"
|
||||
[STR_MANUAL3] = "\xE6\x89\x8B\xE5\x8A\xA8\x33", // "手动3"
|
||||
[STR_COIL_CAR3] = "\xE7\xBA\xA0\xE8\xBD\xA6\x33", // "缠车3"
|
||||
[STR_FABRIC_HEAD3] = "\xE5\xB8\x83\xE5\xA4\xB4\x33", // "布头3"
|
||||
[STR_ROLL_FWD3] = "\xE5\xB8\x83\xE8\xBD\xAE\xE6\xAD\xA3\xE8\xBD\xAC\x33", // "布轮正转3"
|
||||
[STR_ROLL_REV3] = "\xE5\xB8\x83\xE8\xBD\xAE\xE5\x8F\x8D\xE8\xBD\xAC\x33", // "布轮反转3"
|
||||
[STR_ROLL_OVERLOAD3] = "\xE5\xB8\x83\xE8\xBD\xAE\xE8\xBF\x87\xE8\xBD\xBD\x33", // "布轮过载3"
|
||||
[STR_BLOCK_FABRIC3] = "\xE5\xA0\xB5\xE5\xB8\x83\x33", // "堵布3"
|
||||
[STR_MANUAL4] = "\xE6\x89\x8B\xE5\x8A\xA8\x34", // "手动4"
|
||||
[STR_COIL_CAR4] = "\xE7\xBA\xA0\xE8\xBD\xA6\x34", // "缠车4"
|
||||
[STR_FABRIC_HEAD4] = "\xE5\xB8\x83\xE5\xA4\xB4\x34", // "布头4"
|
||||
[STR_ROLL_FWD4] = "\xE5\xB8\x83\xE8\xBD\xAE\xE6\xAD\xA3\xE8\xBD\xAC\x34", // "布轮正转4"
|
||||
[STR_ROLL_REV4] = "\xE5\xB8\x83\xE8\xBD\xAE\xE5\x8F\x8D\xE8\xBD\xAC\x34", // "布轮反转4"
|
||||
[STR_ROLL_OVERLOAD4] = "\xE5\xB8\x83\xE8\xBD\xAE\xE8\xBF\x87\xE8\xBD\xBD\x34", // "布轮过载4"
|
||||
[STR_BLOCK_FABRIC4] = "\xE5\xA0\xB5\xE5\xB8\x83\x34", // "堵布4"
|
||||
[STR_MANUAL5] = "\xE6\x89\x8B\xE5\x8A\xA8\x35", // "手动5"
|
||||
[STR_COIL_CAR5] = "\xE7\xBA\xA0\xE8\xBD\xA6\x35", // "缠车5"
|
||||
[STR_FABRIC_HEAD5] = "\xE5\xB8\x83\xE5\xA4\xB4\x35", // "布头5"
|
||||
[STR_ROLL_FWD5] = "\xE5\xB8\x83\xE8\xBD\xAE\xE6\xAD\xA3\xE8\xBD\xAC\x35", // "布轮正转5"
|
||||
[STR_ROLL_REV5] = "\xE5\xB8\x83\xE8\xBD\xAE\xE5\x8F\x8D\xE8\xBD\xAC\x35", // "布轮反转5"
|
||||
[STR_ROLL_OVERLOAD5] = "\xE5\xB8\x83\xE8\xBD\xAE\xE8\xBF\x87\xE8\xBD\xBD\x35", // "布轮过载5"
|
||||
[STR_BLOCK_FABRIC5] = "\xE5\xA0\xB5\xE5\xB8\x83\x35", // "堵布5"
|
||||
[STR_MANUAL6] = "\xE6\x89\x8B\xE5\x8A\xA8\x36", // "手动6"
|
||||
[STR_COIL_CAR6] = "\xE7\xBA\xA0\xE8\xBD\xA6\x36", // "缠车6"
|
||||
[STR_FABRIC_HEAD6] = "\xE5\xB8\x83\xE5\xA4\xB4\x36", // "布头6"
|
||||
[STR_ROLL_FWD6] = "\xE5\xB8\x83\xE8\xBD\xAE\xE6\xAD\xA3\xE8\xBD\xAC\x36", // "布轮正转6"
|
||||
[STR_ROLL_REV6] = "\xE5\xB8\x83\xE8\xBD\xAE\xE5\x8F\x8D\xE8\xBD\xAC\x36", // "布轮反转6"
|
||||
[STR_ROLL_OVERLOAD6] = "\xE5\xB8\x83\xE8\xBD\xAE\xE8\xBF\x87\xE8\xBD\xBD\x36", // "布轮过载6"
|
||||
[STR_BLOCK_FABRIC6] = "\xE5\xA0\xB5\xE5\xB8\x83\x36", // "堵布6"
|
||||
[STR_MATERIAL3_HIGH] = "\xE6\x96\x99\x33\xE9\xAB\x98\xE6\xB0\xB4\xE4\xBD\x8D", // "料3高水位"
|
||||
[STR_MATERIAL3_LOW] = "\xE6\x96\x99\x33\xE4\xBD\x8E\xE6\xB0\xB4\xE4\xBD\x8D", // "料3低水位"
|
||||
[STR_MATERIAL3_IN] = "\xE6\x96\x99\x33\xE5\x85\xA5\xE6\xB0\xB4", // "料3入水"
|
||||
[STR_MATERIAL3_OUT] = "\xE6\x96\x99\x33\xE6\x8E\x92\xE6\xB0\xB4", // "料3排水"
|
||||
[STR_MATERIAL3_RECIRC] = "\xE6\x96\x99\x33\xE5\x9B\x9E\xE6\xB5\x81", // "料3回流"
|
||||
[STR_MATERIAL3_BOTTOM] = "\xE6\x96\x99\x33\xE5\xBA\x95\xE6\xB0\xB4\xE4\xBD\x8D", // "料3底水位"
|
||||
[STR_MATERIAL3_FILL] = "\xE6\x96\x99\x33\xE6\xB3\xA8\xE6\x96\x99", // "料3注料"
|
||||
[STR_MATERIAL3_HEAT] = "\xE6\x96\x99\x33\xE5\x8A\xA0\xE7\x83\xAD", // "料3加热"
|
||||
[STR_MATERIAL3_STIR] = "\xE6\x96\x99\x33\xE6\x90\x9A\xE6\x8B\x8C", // "料3搅拌"
|
||||
[STR_AIO_TEMP1] = "\xE6\xB8\xA9\xE5\xBA\xA6\x31",
|
||||
[STR_AIO_TEMP2] = "\xE6\xB8\xA9\xE5\xBA\xA6\x32",
|
||||
[STR_AIO_TEMP3] = "\xE6\xB8\xA9\xE5\xBA\xA6\x33",
|
||||
[STR_AIO_TEMP4] = "\xE6\xB8\xA9\xE5\xBA\xA6\x34",
|
||||
[STR_AIO_TEMP5] = "\xE6\xB8\xA9\xE5\xBA\xA6\x35",
|
||||
[STR_AIO_FLOW1] = "\xE6\xB5\x81\xE9\x87\x8F\x31",
|
||||
[STR_AIO_LEVEL1] = "\xE6\xB6\xB2\xE4\xBD\x8D\x31",
|
||||
[STR_AIO_LEVEL2] = "\xE6\xB6\xB2\xE4\xBD\x8D\x32",
|
||||
[STR_AIO_LEVEL3] = "\xE6\xB6\xB2\xE4\xBD\x8D\x33",
|
||||
[STR_AIO_LEVEL4] = "\xE6\xB6\xB2\xE4\xBD\x8D\x34",
|
||||
[STR_AIO_MAIN_PRESSURE] = "\xE4\xB8\xBB\xE7\xBC\xB8\xE5\x8E\x8B\xE5\x8A\x9B",
|
||||
[STR_AIO_NOZZLE_PRESSURE] = "\xE5\x96\xB7\xE5\xA4\xB4\xE5\x8E\x8B\xE5\x8A\x9B",
|
||||
[STR_AIO_NOZZLE_FLOW] = "\xE5\x96\xB7\xE5\xA4\xB4\xE6\xB5\x81\xE9\x87\x8F",
|
||||
[STR_AIO_AIR_FLOW] = "\xE7\xA9\xBA\xE6\xB0\x94\xE6\xB5\x81\xE9\x87\x8F",
|
||||
[STR_AIO_POWER] = "\xE7\x94\xB5\xE8\x83\xBD",
|
||||
[STR_AIO_FABRIC_CYCLE1] = "\xE8\xA1\x8C\xE5\xB8\x83\xE5\x91\xA8\xE6\x9C\x9F\x31",
|
||||
[STR_AIO_FABRIC_CYCLE2] = "\xE8\xA1\x8C\xE5\xB8\x83\xE5\x91\xA8\xE6\x9C\x9F\x32",
|
||||
[STR_AIO_FABRIC_CYCLE3] = "\xE8\xA1\x8C\xE5\xB8\x83\xE5\x91\xA8\xE6\x9C\x9F\x33",
|
||||
[STR_AIO_FABRIC_CYCLE4] = "\xE8\xA1\x8C\xE5\xB8\x83\xE5\x91\xA8\xE6\x9C\x9F\x34",
|
||||
[STR_AIO_FABRIC_CYCLE5] = "\xE8\xA1\x8C\xE5\xB8\x83\xE5\x91\xA8\xE6\x9C\x9F\x35",
|
||||
[STR_AIO_FABRIC_CYCLE6] = "\xE8\xA1\x8C\xE5\xB8\x83\xE5\x91\xA8\xE6\x9C\x9F\x36",
|
||||
[STR_AIO_PH] = "PH",
|
||||
[STR_AIO_HEAT_RATIO] = "\xE5\x8D\x87\xE6\xB8\xA9\xE6\xAF\x94\xE4\xBE\x8B",
|
||||
[STR_AIO_COOL_RATIO] = "\xE9\x99\x8D\xE6\xB8\xA9\xE6\xAF\x94\xE4\xBE\x8B",
|
||||
[STR_AIO_MAIN_PUMP_SPEED] = "\xE4\xB8\xBB\xE6\xB3\xB5\xE9\x80\x9F\xE5\xBA\xA6",
|
||||
[STR_AIO_FAN_SPEED] = "\xE9\xA3\x8E\xE6\x9C\xBA\xE9\x80\x9F\xE5\xBA\xA6",
|
||||
[STR_AIO_FILL_RATIO1] = "\xE5\x8A\xA0\xE6\x96\x99\xE6\xAF\x94\xE4\xBE\x8B\x31",
|
||||
[STR_AIO_FILL_RATIO2] = "\xE5\x8A\xA0\xE6\x96\x99\xE6\xAF\x94\xE4\xBE\x8B\x32",
|
||||
[STR_AIO_FILL_RATIO3] = "\xE5\x8A\xA0\xE6\x96\x99\xE6\xAF\x94\xE4\xBE\x8B\x33",
|
||||
[STR_AIO_FABRIC_SWING] = "\xE6\x91\x86\xE5\xB8\x83",
|
||||
[STR_AIO_LIFT1] = "\xE6\x8F\x90\xE5\xB8\x83\x31",
|
||||
[STR_AIO_LIFT2] = "\xE6\x8F\x90\xE5\xB8\x83\x32",
|
||||
[STR_AIO_LIFT3] = "\xE6\x8F\x90\xE5\xB8\x83\x33",
|
||||
[STR_AIO_LIFT4] = "\xE6\x8F\x90\xE5\xB8\x83\x34",
|
||||
[STR_AIO_LIFT5] = "\xE6\x8F\x90\xE5\xB8\x83\x35",
|
||||
[STR_AIO_LIFT6] = "\xE6\x8F\x90\xE5\xB8\x83\x36",
|
||||
[STR_RED] = "\xe7\xba\xa2", // 红
|
||||
[STR_GREEN] = "\xe7\xbb\xbf", // 绿
|
||||
[STR_YELLOW] = "\xe9\xbb\x84", // 黄
|
||||
[STR_ALARM] = "\xe8\xad\xa6\xe6\x8a\xa5", // 警报
|
||||
[STR_HAND_AUTO] = "\xe6\x89\x8b\xe8\x87\xaa\xe5\x8a\xa8", // 手自动
|
||||
[STR_CONFIRM] = "\xe7\xa1\xae\xe8\xae\xa4", // 确认
|
||||
[STR_PRESSURIZE_VALVE] = "\xe5\x8a\xa0\xe5\x8e\x8b\xe9\x98\x80", // 加压阀
|
||||
[STR_DEPRESSURIZE_VALVE] = "\xe6\x8e\x92\xe5\x8e\x8b\xe9\x98\x80", // 排压阀
|
||||
[STR_HEAT_UP_VALVE] = "\xe5\x8d\x87\xe6\xb8\xa9\xe9\x98\x80", // 升温阀
|
||||
[STR_COOL_DOWN_VALVE] = "\xe9\x99\x8d\xe6\xb8\xa9\xe9\x98\x80", // 降温阀
|
||||
[STR_MAIN_PUMP_START] = "\xe4\xb8\xbb\xe6\xb3\xb5\xe5\x90\xaf\xe5\x8a\xa8", // 主泵启动
|
||||
[STR_WATER_IN_1] = "\xe5\x85\xa5\xe6\xb0\xb4\x31", // 入水1
|
||||
[STR_WATER_IN_2] = "\xe5\x85\xa5\xe6\xb0\xb4\x32", // 入水2
|
||||
[STR_WATER_IN_3] = "\xe5\x85\xa5\xe6\xb0\xb4\x33", // 入水3
|
||||
[STR_WATER_IN_4] = "\xe5\x85\xa5\xe6\xb0\xb4\x34", // 入水4
|
||||
[STR_WATER_OUT_1] = "\xe6\x8e\x92\xe6\xb0\xb4\x31", // 排水1
|
||||
[STR_WATER_OUT_2] = "\xe6\x8e\x92\xe6\xb0\xb4\x32", // 排水2
|
||||
[STR_WATER_OUT_3] = "\xe6\x8e\x92\xe6\xb0\xb4\x33", // 排水3
|
||||
[STR_OVERFLOW_VALVE] = "\xe6\xba\xa2\xe6\xb5\x81\xe9\x98\x80", // 溢流阀
|
||||
[STR_ROLL_FWD_1] = "\xe5\xb8\x83\xe8\xbd\xae\xe6\xad\xa3\xe8\xbd\xac\x31", // 布轮正转1
|
||||
[STR_ROLL_REV_1] = "\xe5\xb8\x83\xe8\xbd\xae\xe5\x8f\x8d\xe8\xbd\xac\x31", // 布轮反转1
|
||||
[STR_ROLL_FWD_2] = "\xe5\xb8\x83\xe8\xbd\xae\xe6\xad\xa3\xe8\xbd\xac\x32", // 布轮正转2
|
||||
[STR_ROLL_REV_2] = "\xe5\xb8\x83\xe8\xbd\xae\xe5\x8f\x8d\xe8\xbd\xac\x32", // 布轮反转2
|
||||
[STR_ROLL_FWD_3] = "\xe5\xb8\x83\xe8\xbd\xae\xe6\xad\xa3\xe8\xbd\xac\x33", // 布轮正转3
|
||||
[STR_ROLL_REV_3] = "\xe5\xb8\x83\xe8\xbd\xae\xe5\x8f\x8d\xe8\xbd\xac\x33", // 布轮反转3
|
||||
[STR_ROLL_FWD_4] = "\xe5\xb8\x83\xe8\xbd\xae\xe6\xad\xa3\xe8\xbd\xac\x34", // 布轮正转4
|
||||
[STR_ROLL_REV_4] = "\xe5\xb8\x83\xe8\xbd\xae\xe5\x8f\x8d\xe8\xbd\xac\x34", // 布轮反转4
|
||||
[STR_ROLL_FWD_5] = "\xe5\xb8\x83\xe8\xbd\xae\xe6\xad\xa3\xe8\xbd\xac\x35", // 布轮正转5
|
||||
[STR_ROLL_REV_5] = "\xe5\xb8\x83\xe8\xbd\xae\xe5\x8f\x8d\xe8\xbd\xac\x35", // 布轮反转5
|
||||
[STR_ROLL_FWD_6] = "\xe5\xb8\x83\xe8\xbd\xae\xe6\xad\xa3\xe8\xbd\xac\x36", // 布轮正转6
|
||||
[STR_ROLL_REV_6] = "\xe5\xb8\x83\xe8\xbd\xae\xe5\x8f\x8d\xe8\xbd\xac\x36", // 布轮反转6
|
||||
[STR_TANK1_PUMP] = "\xe8\x8d\xaf\xe7\xbc\xb8\x31\xe6\xb3\xb5", // 药缸1泵
|
||||
[STR_TANK1_WATER_IN_1] = "\xe8\x8d\xaf\xe7\xbc\xb8\x31\xe5\x85\xa5\xe6\xb0\xb4\x31", // 药缸1入水1
|
||||
[STR_TANK1_WATER_IN_2] = "\xe8\x8d\xaf\xe7\xbc\xb8\x31\xe5\x85\xa5\xe6\xb0\xb4\x32", // 药缸1入水2
|
||||
[STR_TANK1_RETURN_WATER] = "\xe8\x8d\xaf\xe7\xbc\xb8\x31\xe5\x9b\x9e\xe6\xb0\xb4", // 药缸1回水
|
||||
[STR_TANK1_HEAT] = "\xe8\x8d\xaf\xe7\xbc\xb8\x31\xe5\x8a\xa0\xe7\x83\xad", // 药缸1加热
|
||||
[STR_TANK1_STIRRER] = "\xe8\x8d\xaf\xe7\xbc\xb8\x31\xe6\x90\x85\xe6\x8b\x8c\xe5\x99\xa8", // 药缸1搅拌器
|
||||
[STR_TANK1_STIR_VALVE] = "\xe8\x8d\xaf\xe7\xbc\xb8\x31\xe6\x90\x85\xe6\x8b\x8c\xe9\x98\x80", // 药缸1搅拌阀
|
||||
[STR_TANK1_FILL_VALVE] = "\xe8\x8d\xaf\xe7\xbc\xb8\x31\xe5\x8a\xa0\xe6\x96\x99\xe9\x98\x80", // 药缸1加料阀
|
||||
[STR_TANK1_BYPASS_VALVE] = "\xe8\x8d\xaf\xe7\xbc\xb8\x31\xe6\xaf\x94\xe4\xbe\x8b\xe4\xbe\xa7\xe9\x80\x9a\xe9\x98\x80", // 药缸1比例旁通阀
|
||||
[STR_TANK1_DRAIN_VALVE] = "\xe8\x8d\xaf\xe7\xbc\xb8\x31\xe6\x8e\x92\xe6\xb0\xb4\xe9\x98\x80", // 药缸1排水阀
|
||||
[STR_TANK2_PUMP] = "\xe8\x8d\xaf\xe7\xbc\xb8\x32\xe6\xb3\xb5", // 药缸2泵
|
||||
[STR_TANK2_WATER_IN_1] = "\xe8\x8d\xaf\xe7\xbc\xb8\x32\xe5\x85\xa5\xe6\xb0\xb4\x31", // 药缸2入水1
|
||||
[STR_TANK2_WATER_IN_2] = "\xe8\x8d\xaf\xe7\xbc\xb8\x32\xe5\x85\xa5\xe6\xb0\xb4\x32", // 药缸2入水2
|
||||
[STR_TANK2_RETURN_WATER] = "\xe8\x8d\xaf\xe7\xbc\xb8\x32\xe5\x9b\x9e\xe6\xb0\xb4", // 药缸2回水
|
||||
[STR_TANK2_HEAT] = "\xe8\x8d\xaf\xe7\xbc\xb8\x32\xe5\x8a\xa0\xe7\x83\xad", // 药缸2加热
|
||||
[STR_TANK2_STIRRER] = "\xe8\x8d\xaf\xe7\xbc\xb8\x32\xe6\x90\x85\xe6\x8b\x8c\xe5\x99\xa8", // 药缸2搅拌器
|
||||
[STR_TANK2_STIR_VALVE] = "\xe8\x8d\xaf\xe7\xbc\xb8\x32\xe6\x90\x85\xe6\x8b\x8c\xe9\x98\x80", // 药缸2搅拌阀
|
||||
[STR_TANK2_FILL_VALVE] = "\xe8\x8d\xaf\xe7\xbc\xb8\x32\xe5\x8a\xa0\xe6\x96\x99\xe9\x98\x80", // 药缸2加料阀
|
||||
[STR_TANK2_BYPASS_VALVE] = "\xe8\x8d\xaf\xe7\xbc\xb8\x32\xe6\xaf\x94\xe4\xbe\x8b\xe4\xbe\xa7\xe9\x80\x9a\xe9\x98\x80", // 药缸2比例旁通阀
|
||||
[STR_TANK2_DRAIN_VALVE] = "\xe8\x8d\xaf\xe7\xbc\xb8\x32\xe6\x8e\x92\xe6\xb0\xb4\xe9\x98\x80", // 药缸2排水阀
|
||||
[STR_TANK3_PUMP] = "\xe8\x8d\xaf\xe7\xbc\xb8\x33\xe6\xb3\xb5", // 药缸3泵
|
||||
[STR_TANK3_WATER_IN_1] = "\xe8\x8d\xaf\xe7\xbc\xb8\x33\xe5\x85\xa5\xe6\xb0\xb4\x31", // 药缸3入水1
|
||||
[STR_TANK3_WATER_IN_2] = "\xe8\x8d\xaf\xe7\xbc\xb8\x33\xe5\x85\xa5\xe6\xb0\xb4\x32", // 药缸3入水2
|
||||
[STR_TANK3_RETURN_WATER] = "\xe8\x8d\xaf\xe7\xbc\xb8\x33\xe5\x9b\x9e\xe6\xb0\xb4", // 药缸3回水
|
||||
[STR_TANK3_HEAT] = "\xe8\x8d\xaf\xe7\xbc\xb8\x33\xe5\x8a\xa0\xe7\x83\xad", // 药缸3加热
|
||||
[STR_TANK3_STIRRER] = "\xe8\x8d\xaf\xe7\xbc\xb8\x33\xe6\x90\x85\xe6\x8b\x8c\xe5\x99\xa8", // 药缸3搅拌器
|
||||
[STR_TANK3_STIR_VALVE] = "\xe8\x8d\xaf\xe7\xbc\xb8\x33\xe6\x90\x85\xe6\x8b\x8c\xe9\x98\x80", // 药缸3搅拌阀
|
||||
[STR_TANK3_FILL_VALVE] = "\xe8\x8d\xaf\xe7\xbc\xb8\x33\xe5\x8a\xa0\xe6\x96\x99\xe9\x98\x80", // 药缸3加料阀
|
||||
[STR_TANK3_BYPASS_VALVE] = "\xe8\x8d\xaf\xe7\xbc\xb8\x33\xe6\xaf\x94\xe4\xbe\x8b\xe4\xbe\xa7\xe9\x80\x9a\xe9\x98\x80", // 药缸3比例旁通阀
|
||||
[STR_TANK3_DRAIN_VALVE] = "\xe8\x8d\xaf\xe7\xbc\xb8\x33\xe6\x8e\x92\xe6\xb0\xb4\xe9\x98\x80", // 药缸3排水阀
|
||||
[STR_ROLL_REV_12] = "\xe5\xb8\x83\xe8\xbd\xae\xe5\x8f\x8d\xe8\xbd\xac\x31\x32", // 布轮反转12
|
||||
[STR_DRAIN_PUMP] = "\xe6\x8e\x92\xe6\xb0\xb4\xe6\xb3\xb5", // 排水泵
|
||||
[STR_HEAT_EXCHANGER_CONDENSATE] = "\xe7\x83\xad\xe4\xba\xa4\xe6\x8d\xa2\xe5\x99\xa8\xe5\x86\xb7\xe5\x87\x9d\xe6\xb0\xb4", // 热交换器冷凝水
|
||||
[STR_HEAT_EXCHANGER_COOLING_WATER] = "\xe4\xba\xa4\xe6\x8d\xa2\xe5\x99\xa8\xe6\x8e\x92\xe5\x86\xb7\xe5\x8d\xb4\xe6\xb0\xb4", // 交换器排冷却水
|
||||
[STR_COMM_COUNTER] = "\xE9\x80\x9A\xE8\xAE\xAF\xE8\xAE\xA1\xE6\x95\xB0\xE5\x99\xA8", // "通讯计数器"
|
||||
[STR_COMM_FAULT_COUNTER] = "\xE9\x80\x9A\xE8\xAE\xAF\xE5\xBC\x82\xE5\xB8\xB8\xE8\xAE\xA1\xE6\x95\xB0\xE5\x99\xA8", // "通讯异常计数器"
|
||||
[STR_CYCLE_TEMP_RISE_SET] = "\xE5\x91\xA8\xE6\x9C\x9F\xE6\xB8\xA9\xE5\x8D\x87\xE8\xAE\xBE\xE5\xAE\x9A", // "周期温升设定"
|
||||
[STR_TEMP_CONTROL_RATIO] = "\xE6\xB8\xA9\xE6\x8E\xA7\xE6\xAF\x94\xE4\xBE\x8B", // "温控比例"
|
||||
[STR_CALCULATED_TEMP] = "\xE8\xAE\xA1\xE7\xAE\x97\xE6\xB8\xA9\xE5\xBA\xA6", // "计算温度"
|
||||
[STR_FLOW_COUNTER] = "\xE6\xB5\x81\xE9\x87\x8F\xE8\xAE\xA1\xE6\x95\xB0\xE5\x99\xA8", // "流量计数器"
|
||||
[STR_GLOBAL_FLOW_COUNTER] = "\xE5\x85\xA8\xE5\xB1\x80\xE6\xB5\x81\xE9\x87\x8F\xE8\xAE\xA1\xE6\x95\xB0\xE5\x99\xA8", // "全局流量计数器"
|
||||
[STR_NOZZLE_SETTING] = "\xE5\x96\xB7\xE5\xA4\xB4\xE8\xAE\xBE\xE5\xAE\x9A", // "喷头设定"
|
||||
[STR_MAIN_PUMP_SPEED_SET] = "\xE4\xB8\xBB\xE6\xB3\xB5\xE9\x80\x9F\xE5\xBA\xA6\xE8\xAE\xBE\xE5\xAE\x9A", // "主泵速度设定"
|
||||
[STR_FAN_SPEED_SET] = "\xE9\xA3\x8E\xE6\x9C\xBA\xE9\x80\x9F\xE5\xBA\xA6\xE8\xAE\xBE\xE5\xAE\x9A", // "风机速度设定"
|
||||
[STR_TARGET_PH_SET] = "\xE7\x9B\xAE\xE6\xA0\x87PH\xE8\xAE\xBE\xE5\xAE\x9A", // "目标PH设定"
|
||||
[STR_PH_DEVICE_STATUS] = "PH\xE8\xAE\xBE\xE5\xA4\x87\xE7\x8A\xB6\xE6\x80\x81" // "PH设备状态"
|
||||
};
|
||||
|
||||
|
||||
|
||||
const char* lang_get_str(str_id_t id) {
|
||||
if (id >= STR_COUNT) return "???";
|
||||
return current_lang == LANG_ZH ? text_zh[id] : text_en[id];
|
||||
}
|
||||
|
||||
void lang_set(lang_t lang) {
|
||||
current_lang = lang;
|
||||
// 可选:发送消息通知 UI 刷新
|
||||
}
|
||||
@@ -0,0 +1,214 @@
|
||||
// language.h
|
||||
#ifndef APPLICATIONS_LANGUAGE_H
|
||||
#define APPLICATIONS_LANGUAGE_H
|
||||
|
||||
typedef enum {
|
||||
STR_EMERGENCY_STOP,
|
||||
STR_TEMP_LOCK,
|
||||
STR_PRESSURE_LOCK,
|
||||
STR_CALL_CONFIRM,
|
||||
STR_MANUAL,
|
||||
STR_FAN_START,
|
||||
STR_FAN_FAULT,
|
||||
STR_MAIN_PUMP_FAULT,
|
||||
STR_ROLL_RESET,
|
||||
STR_FABRIC_FAULT,
|
||||
STR_ELEC_FAULT,
|
||||
STR_MATERIAL_PUMP1,
|
||||
STR_MATERIAL_PUMP2,
|
||||
STR_MATERIAL_PUMP3,
|
||||
STR_MANUAL1,
|
||||
STR_COIL_CAR1,
|
||||
STR_FABRIC_HEAD1,
|
||||
STR_ROLL_FWD1,
|
||||
STR_ROLL_REV1,
|
||||
STR_ROLL_OVERLOAD1,
|
||||
STR_BLOCK_FABRIC1,
|
||||
STR_MATERIAL1_HIGH,
|
||||
STR_MATERIAL1_LOW,
|
||||
STR_MATERIAL1_IN,
|
||||
STR_MATERIAL1_OUT,
|
||||
STR_MATERIAL1_RECIRC,
|
||||
STR_MATERIAL1_BOTTOM,
|
||||
STR_MATERIAL1_FILL,
|
||||
STR_MATERIAL1_HEAT,
|
||||
STR_MATERIAL2_HIGH,
|
||||
STR_MATERIAL2_LOW,
|
||||
STR_MATERIAL2_IN,
|
||||
STR_MATERIAL2_OUT,
|
||||
STR_MATERIAL2_RECIRC,
|
||||
STR_MATERIAL2_BOTTOM,
|
||||
STR_MATERIAL2_FILL,
|
||||
STR_MATERIAL2_HEAT,
|
||||
STR_MATERIAL2_STIR,
|
||||
STR_MANUAL2,
|
||||
STR_COIL_CAR2,
|
||||
STR_FABRIC_HEAD2,
|
||||
STR_ROLL_FWD2,
|
||||
STR_ROLL_REV2,
|
||||
STR_ROLL_OVERLOAD2,
|
||||
STR_BLOCK_FABRIC2,
|
||||
STR_MANUAL3,
|
||||
STR_COIL_CAR3,
|
||||
STR_FABRIC_HEAD3,
|
||||
STR_ROLL_FWD3,
|
||||
STR_ROLL_REV3,
|
||||
STR_ROLL_OVERLOAD3,
|
||||
STR_BLOCK_FABRIC3,
|
||||
STR_MANUAL4,
|
||||
STR_COIL_CAR4,
|
||||
STR_FABRIC_HEAD4,
|
||||
STR_ROLL_FWD4,
|
||||
STR_ROLL_REV4,
|
||||
STR_ROLL_OVERLOAD4,
|
||||
STR_BLOCK_FABRIC4,
|
||||
STR_MANUAL5,
|
||||
STR_COIL_CAR5,
|
||||
STR_FABRIC_HEAD5,
|
||||
STR_ROLL_FWD5,
|
||||
STR_ROLL_REV5,
|
||||
STR_ROLL_OVERLOAD5,
|
||||
STR_BLOCK_FABRIC5,
|
||||
STR_MANUAL6,
|
||||
STR_COIL_CAR6,
|
||||
STR_FABRIC_HEAD6,
|
||||
STR_ROLL_FWD6,
|
||||
STR_ROLL_REV6,
|
||||
STR_ROLL_OVERLOAD6,
|
||||
STR_BLOCK_FABRIC6,
|
||||
STR_MATERIAL3_HIGH,
|
||||
STR_MATERIAL3_LOW,
|
||||
STR_MATERIAL3_IN,
|
||||
STR_MATERIAL3_OUT,
|
||||
STR_MATERIAL3_RECIRC,
|
||||
STR_MATERIAL3_BOTTOM,
|
||||
STR_MATERIAL3_FILL,
|
||||
STR_MATERIAL3_HEAT,
|
||||
STR_MATERIAL3_STIR,
|
||||
STR_AIO_TEMP1,
|
||||
STR_AIO_TEMP2,
|
||||
STR_AIO_TEMP3,
|
||||
STR_AIO_TEMP4,
|
||||
STR_AIO_TEMP5,
|
||||
STR_AIO_FLOW1,
|
||||
STR_AIO_LEVEL1,
|
||||
STR_AIO_LEVEL2,
|
||||
STR_AIO_LEVEL3,
|
||||
STR_AIO_LEVEL4,
|
||||
STR_AIO_MAIN_PRESSURE,
|
||||
STR_AIO_NOZZLE_PRESSURE,
|
||||
STR_AIO_NOZZLE_FLOW,
|
||||
STR_AIO_AIR_FLOW,
|
||||
STR_AIO_POWER,
|
||||
STR_AIO_FABRIC_CYCLE1,
|
||||
STR_AIO_FABRIC_CYCLE2,
|
||||
STR_AIO_FABRIC_CYCLE3,
|
||||
STR_AIO_FABRIC_CYCLE4,
|
||||
STR_AIO_FABRIC_CYCLE5,
|
||||
STR_AIO_FABRIC_CYCLE6,
|
||||
STR_AIO_PH,
|
||||
STR_AIO_HEAT_RATIO,
|
||||
STR_AIO_COOL_RATIO,
|
||||
STR_AIO_MAIN_PUMP_SPEED,
|
||||
STR_AIO_FAN_SPEED,
|
||||
STR_AIO_FILL_RATIO1,
|
||||
STR_AIO_FILL_RATIO2,
|
||||
STR_AIO_FILL_RATIO3,
|
||||
STR_AIO_FABRIC_SWING,
|
||||
STR_AIO_LIFT1,
|
||||
STR_AIO_LIFT2,
|
||||
STR_AIO_LIFT3,
|
||||
STR_AIO_LIFT4,
|
||||
STR_AIO_LIFT5,
|
||||
STR_AIO_LIFT6,
|
||||
STR_RED,
|
||||
STR_GREEN,
|
||||
STR_YELLOW,
|
||||
STR_ALARM,
|
||||
STR_HAND_AUTO,
|
||||
STR_CONFIRM,
|
||||
STR_PRESSURIZE_VALVE,
|
||||
STR_DEPRESSURIZE_VALVE,
|
||||
STR_HEAT_UP_VALVE,
|
||||
STR_COOL_DOWN_VALVE,
|
||||
STR_MAIN_PUMP_START,
|
||||
STR_WATER_IN_1,
|
||||
STR_WATER_IN_2,
|
||||
STR_WATER_IN_3,
|
||||
STR_WATER_IN_4,
|
||||
STR_WATER_OUT_1,
|
||||
STR_WATER_OUT_2,
|
||||
STR_WATER_OUT_3,
|
||||
STR_OVERFLOW_VALVE,
|
||||
STR_ROLL_FWD_1,
|
||||
STR_ROLL_REV_1,
|
||||
STR_ROLL_FWD_2,
|
||||
STR_ROLL_REV_2,
|
||||
STR_ROLL_FWD_3,
|
||||
STR_ROLL_REV_3,
|
||||
STR_ROLL_FWD_4,
|
||||
STR_ROLL_REV_4,
|
||||
STR_ROLL_FWD_5,
|
||||
STR_ROLL_REV_5,
|
||||
STR_ROLL_FWD_6,
|
||||
STR_ROLL_REV_6,
|
||||
STR_TANK1_PUMP,
|
||||
STR_TANK1_WATER_IN_1,
|
||||
STR_TANK1_WATER_IN_2,
|
||||
STR_TANK1_RETURN_WATER,
|
||||
STR_TANK1_HEAT,
|
||||
STR_TANK1_STIRRER,
|
||||
STR_TANK1_STIR_VALVE,
|
||||
STR_TANK1_FILL_VALVE,
|
||||
STR_TANK1_BYPASS_VALVE,
|
||||
STR_TANK1_DRAIN_VALVE,
|
||||
STR_TANK2_PUMP,
|
||||
STR_TANK2_WATER_IN_1,
|
||||
STR_TANK2_WATER_IN_2,
|
||||
STR_TANK2_RETURN_WATER,
|
||||
STR_TANK2_HEAT,
|
||||
STR_TANK2_STIRRER,
|
||||
STR_TANK2_STIR_VALVE,
|
||||
STR_TANK2_FILL_VALVE,
|
||||
STR_TANK2_BYPASS_VALVE,
|
||||
STR_TANK2_DRAIN_VALVE,
|
||||
STR_TANK3_PUMP,
|
||||
STR_TANK3_WATER_IN_1,
|
||||
STR_TANK3_WATER_IN_2,
|
||||
STR_TANK3_RETURN_WATER,
|
||||
STR_TANK3_HEAT,
|
||||
STR_TANK3_STIRRER,
|
||||
STR_TANK3_STIR_VALVE,
|
||||
STR_TANK3_FILL_VALVE,
|
||||
STR_TANK3_BYPASS_VALVE,
|
||||
STR_TANK3_DRAIN_VALVE,
|
||||
STR_ROLL_REV_12,
|
||||
STR_DRAIN_PUMP,
|
||||
STR_HEAT_EXCHANGER_CONDENSATE,
|
||||
STR_HEAT_EXCHANGER_COOLING_WATER,
|
||||
STR_COMM_COUNTER,
|
||||
STR_COMM_FAULT_COUNTER,
|
||||
STR_CYCLE_TEMP_RISE_SET,
|
||||
STR_TEMP_CONTROL_RATIO,
|
||||
STR_CALCULATED_TEMP,
|
||||
STR_FLOW_COUNTER,
|
||||
STR_GLOBAL_FLOW_COUNTER,
|
||||
STR_NOZZLE_SETTING,
|
||||
STR_MAIN_PUMP_SPEED_SET,
|
||||
STR_FAN_SPEED_SET,
|
||||
STR_TARGET_PH_SET,
|
||||
STR_PH_DEVICE_STATUS,
|
||||
STR_COUNT // 自动计数
|
||||
} str_id_t;
|
||||
|
||||
typedef enum {
|
||||
LANG_EN,
|
||||
LANG_ZH
|
||||
} lang_t;
|
||||
|
||||
// 外部函数
|
||||
const char* lang_get_str(str_id_t id);
|
||||
void lang_set(lang_t lang);
|
||||
extern lang_t current_lang;
|
||||
|
||||
#endif
|
||||
@@ -15,6 +15,8 @@
|
||||
#include <rtdbg.h>
|
||||
#include "RUN_LED.h"
|
||||
#include "DB_SQLite.h"
|
||||
#include "DATA_comm.h"
|
||||
#include "DATA_uart.h"
|
||||
|
||||
#define DBG_TAG "main"
|
||||
#define DBG_LVL DBG_LOG
|
||||
|
||||
Reference in new issue
Block a user