3744 lines
82 KiB
C
3744 lines
82 KiB
C
#include "includes.h"
|
||
|
||
// 多路滚动显示序号
|
||
volatile uint8_t Form_rollIdx = 0;
|
||
|
||
// 窗口ID
|
||
typedef enum
|
||
{
|
||
FORM_ID_START, // 启动界面
|
||
FORM_ID_METER, // 表盘显示
|
||
FORM_ID_PWD, // 输密码界面
|
||
FORM_ID_000, // 主菜单
|
||
FORM_ID_100, // PSN设置
|
||
FORM_ID_200, // 储罐信息设置
|
||
FORM_ID_210, // 储罐类型设置
|
||
FORM_ID_220, // 介质设置
|
||
FORM_ID_230, // 长度设置
|
||
FORM_ID_240, // 直径设置
|
||
FORM_ID_250, // 充装比设置
|
||
FORM_ID_251, // 低液位百分比设置
|
||
FORM_ID_260, // 密度设置
|
||
FORM_ID_270, // 压力报警低点设置
|
||
FORM_ID_271, // 压力报警高点设置
|
||
FORM_ID_272, // 压力报警低点设置
|
||
FORM_ID_273, // 压力报警高点设置
|
||
FORM_ID_280, // 容积显示
|
||
FORM_ID_285, // 4~20mA输出液位高度
|
||
FORM_ID_300, // 上报周期设置
|
||
FORM_ID_310, // 采集周期设置
|
||
FORM_ID_320, // 发送周期设置
|
||
FORM_ID_400, // 标定界面
|
||
FORM_ID_410, // 电容标定
|
||
FORM_ID_411, // C1(100pF)标定
|
||
FORM_ID_412, // C2(400pF)标定
|
||
FORM_ID_413, // 零点标定
|
||
FORM_ID_420, // 压力标定
|
||
FORM_ID_421, // 低压力标定
|
||
FORM_ID_422, // 高压力标定
|
||
FORM_ID_430, // 温度标定
|
||
FORM_ID_431, // 低温度标定
|
||
FORM_ID_432, // 高温度标定
|
||
FORM_ID_500, // 量程设置
|
||
FORM_ID_510, // 电容量程
|
||
FORM_ID_511, // 底电容设置
|
||
FORM_ID_512, // 增长电容设置
|
||
FORM_ID_520, // 压力量程
|
||
FORM_ID_521, // 压力低量程设置
|
||
FORM_ID_522, // 压力高量程设置
|
||
FORM_ID_530, // 温度量程
|
||
FORM_ID_531, // 温度低量程设置
|
||
FORM_ID_532, // 温度高量程设置
|
||
FORM_ID_600, // 系统信息
|
||
FORM_ID_700, // 查看真空度
|
||
} TForm_Id;
|
||
|
||
void Change_Form(TForm_Id formId);
|
||
uint32_t Comm_Sample();
|
||
|
||
// 主界面参数
|
||
typedef struct
|
||
{
|
||
u8 blinkVisible; // 闪烁状态:亮或熄
|
||
u8 menuIdx[3]; // 各级菜单当前项
|
||
u8 privilege; // 操作权限:0-查询,1-设置参数,2-标定
|
||
u8 meterPage; // 表盘显示页面:测量页面、GPRS/GPS页面1、GPRS/GPS页面2、标定页面
|
||
u8 infoPage; // 信息显示页面:软件版本、硬件版本
|
||
u8 caliIdx; // 标定传感器路数
|
||
} TForm_Params;
|
||
|
||
TForm_Params formParam;
|
||
|
||
// 是否允许充装
|
||
volatile uint8_t Charge_Enabled = 0, last_Charge_Enabled = 0;
|
||
volatile uint32_t Charge_Pulse_Time = 0;
|
||
|
||
// 是否允许报警
|
||
volatile uint8_t Alarm_Enabled = 1, Low_Alarm_Enabled = 1, Leak_Alarm_Enabled = 1;
|
||
volatile uint8_t Press_Alarm_Enabled = 1, Low_Press_Alarm_Enabled = 1, ExtPress_Alarm_Enabled = 1, Low_ExtPress_Alarm_Enabled = 1;
|
||
volatile uint8_t Alarm_Output = 0, Low_Alarm_Output = 0, Leak_Alarm_Output = 0;
|
||
volatile uint8_t Press_Alarm_Output = 0, Low_Press_Alarm_Output = 0, ExtPress_Alarm_Output = 0, Low_ExtPress_Alarm_Output = 0;
|
||
|
||
// 是否匹配槽车
|
||
volatile uint8_t Truck_Matched = 0, Truck_Charging = 0;
|
||
volatile uint8_t Match_Charging = 1; // 回持区间,未充满
|
||
|
||
// 充液泵控制
|
||
volatile uint32_t Pump_Stop_Time = 0;
|
||
volatile uint8_t Pump_Stop_posState = 0;
|
||
volatile uint32_t Pump_Stop_Longitude = 0, Pump_Stop_Latitude = 0;
|
||
|
||
// 手动启动充装
|
||
volatile uint8_t Manual_Charing = 0;
|
||
|
||
// 是否在测试界面
|
||
uint8_t MeterInSamplePage()
|
||
{
|
||
return (formParam.meterPage == 3);
|
||
}
|
||
|
||
// 是否主界面
|
||
uint8_t MeterInMeterPage()
|
||
{
|
||
return (formParam.meterPage == 0);
|
||
}
|
||
|
||
// 是否需要切换显示
|
||
uint8_t MeterNeedRoll()
|
||
{
|
||
if(!dcBuff.sampleData.staPress.notConnect)
|
||
return 1;
|
||
if(!dcBuff.sampleData.staExtTempr[0].notConnect)
|
||
return 1;
|
||
if(!dcBuff.sampleData.staExtTempr[1].notConnect)
|
||
return 1;
|
||
if(dcBuff.sampleData.vacuum[0].staVacuum != VACUUM_STATUS_COMM_FAULT)
|
||
return 1;
|
||
|
||
MeterRollFirst();
|
||
return 0;
|
||
}
|
||
|
||
// 切换显示
|
||
void MeterRoll()
|
||
{
|
||
uint8_t idx = Form_rollIdx;
|
||
|
||
Form_rollIdx=!Form_rollIdx;
|
||
// uint8_t try_count = 4;
|
||
//
|
||
// while(try_count--)
|
||
// {
|
||
// if(++idx >= 2)
|
||
// idx = 0;
|
||
// if(idx == 0
|
||
// || (idx == 1 && !dcBuff.sampleData.staPress.notConnect)
|
||
// || (idx == 2 && !dcBuff.sampleData.staExtTempr[0].notConnect)
|
||
// || (idx == 3 && !dcBuff.sampleData.staExtTempr[1].notConnect)
|
||
// || (idx == 4 && dcBuff.sampleData.vacuum[0].staVacuum != VACUUM_STATUS_COMM_FAULT))
|
||
// {
|
||
// Form_rollIdx = idx;
|
||
// return;
|
||
// }
|
||
// }
|
||
}
|
||
|
||
// 切换显示第一路(差压)
|
||
void MeterRollFirst()
|
||
{
|
||
Form_rollIdx = 0;
|
||
}
|
||
|
||
// 检查当前显示单位是否合法,如不合法则移到最近的合法单位上, 不保存
|
||
void Check_L_Unit(u8 key)
|
||
{
|
||
// while((dcBuff.configDisplay.op_USE_CAPACITY_SENSOR || dcBuff.configDisplay.op_USE_HEIGHT_LEVEL || dcBuff.configDisplay.op_USE_PCT_LEVEL)
|
||
// && (dcBuff.configDisplay.L_Unit == UNIT_KPA || dcBuff.configDisplay.L_Unit == UNIT_MMH2O || dcBuff.configDisplay.L_Unit != UNIT_MMH2O))
|
||
// {
|
||
// if(key == KEY_UP)
|
||
// {
|
||
// if(dcBuff.configDisplay.L_Unit == UNIT_MMH2O)
|
||
// dcBuff.configDisplay.L_Unit = UNIT_INH2O;
|
||
// else
|
||
// dcBuff.configDisplay.L_Unit++;
|
||
// }
|
||
// else
|
||
// {
|
||
// if(dcBuff.configDisplay.L_Unit == UNIT_INH2O)
|
||
// dcBuff.configDisplay.L_Unit = UNIT_MMH2O;
|
||
// else
|
||
// dcBuff.configDisplay.L_Unit--;
|
||
// }
|
||
// }
|
||
}
|
||
|
||
// 显示容积百分比(指针)
|
||
void Meter_DispNeedle()
|
||
{
|
||
// u8 needle;
|
||
//
|
||
// if(dcBuff.sampleData.staDPress.notConnect)
|
||
// {
|
||
// Disp_WriteNeedle(0);
|
||
// }
|
||
// else if(dcBuff.sampleData.staDPress.underFlow)
|
||
// {
|
||
// Disp_WriteNeedle(0);
|
||
// }
|
||
// else if(dcBuff.sampleData.staDPress.overFlow)
|
||
// {
|
||
// Disp_WriteNeedle(0);
|
||
// }
|
||
// else
|
||
// {
|
||
// // 差压:指针范围0~50,根据传感器量程不同(15/25/50KPa), 表盘量程也不同(1500/2500/5000mmWC)
|
||
// // 每一小格代表30/50/100mmWC
|
||
// needle = (u8) ((((uint16_t) KPa2mmH2O(dcBuff.sampleData.diff)) + dcBuff.configSensor.sensorDPress.highRange) / (dcBuff.configSensor.sensorDPress.highRange * 2));
|
||
// Disp_WriteNeedle(needle);
|
||
// }
|
||
}
|
||
|
||
// 显示差压数据: KPa
|
||
void Meter_DispDiffData()
|
||
{
|
||
s8 text[10];
|
||
|
||
Disp_Fld1PointOff();
|
||
if(dcBuff.sampleData.staDPress.notConnect)
|
||
{
|
||
Disp_Fld1Text("---");
|
||
}
|
||
// else if(dcBuff.sampleData.staDPress.underFlow)
|
||
// {
|
||
// Disp_Fld1Text("-EE");
|
||
// }
|
||
// else if(dcBuff.sampleData.staDPress.overFlow)
|
||
// {
|
||
// Disp_Fld1Text("+EE");
|
||
// }
|
||
else
|
||
{
|
||
if(dcBuff.sampleData.diff >= 10000) // 不显示小数
|
||
{
|
||
sprintf(text, "%d", (uint16_t) (dcBuff.sampleData.diff));
|
||
Disp_Fld1Text(text);
|
||
}
|
||
else if(dcBuff.sampleData.diff >= 1000) // 显示1位小数
|
||
{
|
||
sprintf(text, "%d", (uint16_t) (dcBuff.sampleData.diff * 10));
|
||
Disp_Fld1Text(text);
|
||
Disp_Fld1PointOn(1);
|
||
}
|
||
else if(dcBuff.sampleData.diff >= 100) // 显示2位小数
|
||
{
|
||
sprintf(text, "%d", (uint16_t) (dcBuff.sampleData.diff * 100));
|
||
Disp_Fld1Text(text);
|
||
Disp_Fld1PointOn(2);
|
||
}
|
||
else // 显示3位小数
|
||
{
|
||
sprintf(text, "%05d", (uint16_t) (dcBuff.sampleData.diff * 1000));
|
||
// 最少要显示4位数字
|
||
if(text[0] == '0')
|
||
Disp_Fld1Text(text + 1);
|
||
else
|
||
Disp_Fld1Text(text);
|
||
Disp_Fld1PointOn(3);
|
||
}
|
||
}
|
||
|
||
// 显示单位
|
||
Disp_SwitchDiffUnit(UNIT_KPA);
|
||
}
|
||
|
||
// 显示差压数据: inH2O
|
||
void Meter_DispinH2OData()
|
||
{
|
||
Meter_DispDiffData();
|
||
// s8 text[10];
|
||
// float inH2O = KPa2mmH2O(dcBuff.sampleData.diff) / 25.4;
|
||
|
||
// Disp_Fld1PointOff();
|
||
// if(dcBuff.sampleData.staDPress.notConnect)
|
||
// {
|
||
// Disp_Fld1Text("---");
|
||
// }
|
||
// else if(dcBuff.sampleData.staDPress.underFlow)
|
||
// {
|
||
// Disp_Fld1Text("-EE");
|
||
// }
|
||
// else if(dcBuff.sampleData.staDPress.overFlow)
|
||
// {
|
||
// Disp_Fld1Text("+EE");
|
||
// }
|
||
// else
|
||
// {
|
||
// if(inH2O >= 10000) // 不显示小数
|
||
// {
|
||
// sprintf(text, "%d", (uint16_t) (inH2O));
|
||
// Disp_Fld1Text(text);
|
||
// }
|
||
// else if(inH2O >= 1000) // 显示1位小数
|
||
// {
|
||
// sprintf(text, "%d", (uint16_t) (inH2O * 10));
|
||
// Disp_Fld1Text(text);
|
||
// Disp_Fld1PointOn(1);
|
||
// }
|
||
// else // 显示2位小数
|
||
// {
|
||
// sprintf(text, "%05d", (uint16_t) (inH2O * 100));
|
||
// // 最少要显示3位数字
|
||
// if(text[0] == '0')
|
||
// {
|
||
// if(text[1] == '0')
|
||
// Disp_Fld1Text(text + 2);
|
||
// else
|
||
// Disp_Fld1Text(text + 1);
|
||
// }
|
||
// else
|
||
// Disp_Fld1Text(text);
|
||
// Disp_Fld1PointOn(2);
|
||
// }
|
||
// }
|
||
|
||
// // 显示单位
|
||
// Disp_SwitchDiffUnit(UNIT_INH2O);
|
||
}
|
||
|
||
// 显示差压数据: mmH2O
|
||
void Meter_DispmmH2OData()
|
||
{
|
||
Meter_DispDiffData();
|
||
// s8 text[10];
|
||
// float mmH2O = KPa2mmH2O(dcBuff.sampleData.diff);
|
||
|
||
// Disp_Fld1PointOff();
|
||
// if(dcBuff.sampleData.staDPress.notConnect)
|
||
// {
|
||
// Disp_Fld1Text("---");
|
||
// }
|
||
// else if(dcBuff.sampleData.staDPress.underFlow)
|
||
// {
|
||
// Disp_Fld1Text("-EE");
|
||
// }
|
||
// else if(dcBuff.sampleData.staDPress.overFlow)
|
||
// {
|
||
// Disp_Fld1Text("+EE");
|
||
// }
|
||
// else
|
||
// {
|
||
// // 不显示小数
|
||
// sprintf(text, "%d", (uint16_t) (mmH2O));
|
||
// Disp_Fld1Text(text);
|
||
// }
|
||
|
||
// // 显示单位
|
||
Disp_SwitchDiffUnit(UNIT_MMH2O);
|
||
}
|
||
|
||
// 显示压力数据
|
||
void Meter_DispPres1Data()
|
||
{
|
||
s8 text[10];
|
||
|
||
Disp_Fld1PointOff();
|
||
if(dcBuff.sampleData.staPress.notConnect)
|
||
{
|
||
Disp_Fld1Text("---");
|
||
}
|
||
// else if(dcBuff.sampleData.staPress.underFlow)
|
||
// {
|
||
// Disp_Fld1Text("-EE");
|
||
// }
|
||
// else if(dcBuff.sampleData.staPress.overFlow)
|
||
// {
|
||
// Disp_Fld1Text("+EE");
|
||
// }
|
||
else
|
||
{
|
||
sprintf(text, "%03d", (uint16_t) ((dcBuff.sampleData.pressure + 5) / 10));
|
||
Disp_Fld1Text(text);
|
||
Disp_Fld1PointOn(2);
|
||
}
|
||
|
||
// 显示单位
|
||
Disp_SwitchPresUnit(UNIT_MPA);
|
||
}
|
||
|
||
// 显示温度数据
|
||
void Meter_DispTemp1Data()
|
||
{
|
||
s8 text[10];
|
||
|
||
if(dcBuff.sampleData.staExtTempr[0].notConnect)
|
||
{
|
||
Disp_Fld1Text("---");
|
||
}
|
||
// else if(dcBuff.sampleData.staExtTempr[0].underFlow)
|
||
// {
|
||
// Disp_Fld1Text("-EE");
|
||
// }
|
||
// else if(dcBuff.sampleData.staExtTempr[0].overFlow)
|
||
// {
|
||
// Disp_Fld1Text("+EE");
|
||
// }
|
||
else
|
||
{
|
||
// 不显示小数
|
||
sprintf(text, "%d", dcBuff.sampleData.extTempr[0]);
|
||
Disp_Fld1Text(text);
|
||
}
|
||
|
||
// 显示单位
|
||
Disp_SwitchTempUnit(UNIT_C);
|
||
}
|
||
|
||
// 显示温度数据
|
||
void Meter_DispTemp2Data()
|
||
{
|
||
s8 text[10];
|
||
|
||
if(dcBuff.sampleData.staExtTempr[1].notConnect)
|
||
{
|
||
Disp_Fld1Text("---");
|
||
}
|
||
// else if(dcBuff.sampleData.staExtTempr[1].underFlow)
|
||
// {
|
||
// Disp_Fld1Text("-EE");
|
||
// }
|
||
// else if(dcBuff.sampleData.staExtTempr[1].overFlow)
|
||
// {
|
||
// Disp_Fld1Text("+EE");
|
||
// }
|
||
else
|
||
{
|
||
// 不显示小数
|
||
sprintf(text, "%d", dcBuff.sampleData.extTempr[1]);
|
||
Disp_Fld1Text(text);
|
||
}
|
||
|
||
// 显示单位
|
||
Disp_SwitchTempUnit(UNIT_C);
|
||
}
|
||
|
||
// 显示真空数据
|
||
void Meter_DispVacuData()
|
||
{
|
||
// s8 text[10];
|
||
|
||
// // 隐藏真空显示
|
||
// if(dcBuff.configBottle.hideVacu)
|
||
// return;
|
||
//
|
||
// // 如无真空计则不显示
|
||
// if(dcBuff.sampleData.vacuum[0].staVacuum == VACUUM_STATUS_COMM_FAULT)
|
||
// return;
|
||
//
|
||
// if(dcBuff.sampleData.vacuum[0].staVacuum == VACUUM_STATUS_FAULT || dcBuff.sampleData.vacuum[0].vacuum > 99.99999999)
|
||
// Disp_Fld1Text("+EE");
|
||
// else if(dcBuff.sampleData.vacuum[0].vacuum > 0.00999999)
|
||
// {
|
||
// sprintf(text, "%04d", (uint16_t) (dcBuff.sampleData.vacuum[0].vacuum * 100));
|
||
// // 至少要显示三位数字
|
||
// if(text[0] == '0')
|
||
// Disp_Fld1Text(text + 1);
|
||
// else
|
||
// Disp_Fld1Text(text);
|
||
// Disp_Fld1PointOn(2);
|
||
// }
|
||
// else
|
||
// Disp_Fld1Text("-EE");
|
||
//
|
||
// // 显示单位
|
||
// Disp_SwitchVacuUnit(UNIT_PA);
|
||
}
|
||
|
||
// 刷新状态信息:gprs信号,联网,电池电量
|
||
void Meter_RefreshStatus()
|
||
{
|
||
Disp_WriteBattery((dcBuff.dtuData.batPct + 12) / 25);
|
||
Disp_WriteStrength((dcBuff.dtuData.rssi + 12) / 25);
|
||
Disp_WriteCommunication(!VCC_POWER_STATUS() && dcBuff.dtuData.batLow);
|
||
Disp_WriteAlarm(0);
|
||
Disp_WriteError(0);
|
||
Disp_WriteFill(Charge_Enabled || (Manual_Charing && Truck_Matched));
|
||
Disp_WritePower(VCC_POWER_STATUS());
|
||
Disp_WriteGPS(dcBuff.dtuData.posState);
|
||
Disp_WriteRF(0);
|
||
}
|
||
|
||
void Meter_DispData()
|
||
{
|
||
// if(dcBuff.configDisplay.L_Unit == UNIT_KPA)
|
||
Meter_DispDiffData();
|
||
// else if(dcBuff.configDisplay.L_Unit == UNIT_MMH2O)
|
||
// Meter_DispmmH2OData();
|
||
// else
|
||
// Meter_DispinH2OData();
|
||
}
|
||
|
||
void Meter_Disp()
|
||
{
|
||
s8 text[7] = "";
|
||
|
||
// 清屏
|
||
Disp_Clear();
|
||
|
||
Meter_RefreshStatus();
|
||
if(formParam.meterPage == 0)
|
||
{
|
||
// Meter_DispNeedle();
|
||
|
||
// if(!dcBuff.configDisplay.op_DISP_MMWC_ONLY)
|
||
// Disp_SwitchSource(dcBuff.configBottle.source); // 显示液源
|
||
|
||
if(Form_rollIdx == 0)
|
||
Meter_DispData();
|
||
else //if(Form_rollIdx == 1)
|
||
Meter_DispPres1Data();
|
||
// else if(Form_rollIdx == 2)
|
||
// Meter_DispTemp1Data();
|
||
// else if(Form_rollIdx == 3)
|
||
// Meter_DispTemp2Data();
|
||
// else
|
||
// Meter_DispVacuData();
|
||
|
||
// 显示第几路温度传感器
|
||
// if(dcBuff.sampleData.staExtTempr[1].status != SENSOR_STATUS_NOCONNECT)
|
||
// {
|
||
// if(Form_rollIdx == 2)
|
||
// Disp_ChannelOn(1);
|
||
// else if(Form_rollIdx == 3)
|
||
// Disp_ChannelOn(2);
|
||
// }
|
||
}
|
||
else if(formParam.meterPage == 1)
|
||
{
|
||
// 电池电压
|
||
sprintf(text, "%03d", dcBuff.dtuData.batVoltage / 10);
|
||
Disp_Fld1Text(text);
|
||
}
|
||
else if(formParam.meterPage == 2)
|
||
{
|
||
// 启动代码
|
||
sprintf(text, "%d", SYS_RSTSTS);
|
||
Disp_Fld1Text(text);
|
||
}
|
||
else // 显示测量值
|
||
{
|
||
if(Form_rollIdx == 0)
|
||
Meter_DispDiffData();
|
||
else //if(Form_rollIdx == 1)
|
||
Meter_DispPres1Data();
|
||
// else if(Form_rollIdx == 2)
|
||
// Meter_DispTemp1Data();
|
||
// else if(Form_rollIdx == 3)
|
||
// Meter_DispTemp2Data();
|
||
// else
|
||
// Meter_DispVacuData();
|
||
|
||
// 提示测试界面
|
||
Disp_WriteAlarm(1);
|
||
Disp_WriteError(1);
|
||
Disp_WriteFill(0);
|
||
|
||
// 显示第几路温度传感器
|
||
// if(dcBuff.sampleData.staExtTempr[1].status != SENSOR_STATUS_NOCONNECT)
|
||
// {
|
||
// if(Form_rollIdx == 2)
|
||
// Disp_ChannelOn(1);
|
||
// else if(Form_rollIdx == 3)
|
||
// Disp_ChannelOn(2);
|
||
// }
|
||
}
|
||
}
|
||
|
||
// ********************************************
|
||
// 以下为窗口界面实现
|
||
// ********************************************
|
||
|
||
// 查询菜单
|
||
const char menu_000_items[][5] =
|
||
{
|
||
"PSN", "PARA", "PERI", "CALI", "RANG", "INFO",
|
||
};
|
||
|
||
// 设置菜单
|
||
const char menu_001_items[][5] =
|
||
{
|
||
"PARA",
|
||
};
|
||
|
||
// 标定菜单
|
||
const char menu_002_items[][5] =
|
||
{
|
||
"PSN", "PERI", "CALI", "RANG",
|
||
};
|
||
|
||
// 储罐信息菜单
|
||
const char menu_200_items[][4][5] =
|
||
{
|
||
{"DP-H", "DP-L", "P-H", "P-L"}
|
||
// {"TYPE", "SRC", "LEN", "DIE", "PCT", "LPCT", "DENS", "ALAR", "ALAH", "VOL", "4-20"},
|
||
// {"TYPE", "SRC", "LEN", "DIE", "PCT", "LPCT", "DENS", "VOL"}
|
||
};
|
||
|
||
// 储罐类型选项
|
||
const char menu_210_items[][5] =
|
||
{
|
||
"STAN", "LIE", "BALL"
|
||
};
|
||
|
||
// 介质选项
|
||
const char menu_220_items[][5] =
|
||
{
|
||
"LNG", "O2", "N2", "AR", "CO2", "H2", "CNG", "HE", "C2H4", "LPG", "NH3", "PENT", "POPO"
|
||
};
|
||
|
||
// 上报周期菜单
|
||
const char menu_300_items[][5] =
|
||
{
|
||
"CAPT", "SEND"
|
||
};
|
||
|
||
// 标定菜单
|
||
const char menu_400_items[][5][5] =
|
||
{
|
||
{"DIFF", "PRS1", "PRS2", "TEP1", "TEP2"},
|
||
//{"CAP", "PRS1", "PRS2", "TEP1", "TEP2"}
|
||
{"PRS1", "PRS2", "TEP1", "TEP2"}
|
||
};
|
||
|
||
// 电容标定菜单
|
||
const char menu_410_items[][3][5] =
|
||
{
|
||
{"LO", "HIGH", "OFFS"}, // 低点、高点、偏移(零点)
|
||
{"C1", "C2"}
|
||
};
|
||
|
||
// 压力标定菜单
|
||
const char menu_420_items[][5] =
|
||
{
|
||
"LO", "HIGH"
|
||
};
|
||
|
||
// 温度标定菜单
|
||
const char menu_430_items[][2][5] =
|
||
{
|
||
{"LO", "HIGH"},
|
||
{"CALT", "CALR"}
|
||
};
|
||
|
||
// 量程菜单
|
||
const char menu_500_items[][4][5] =
|
||
{
|
||
{"DIFF", "PRS1", "PRS2", "TEP1"},
|
||
{"CAP", "PRS1", "PRS2", "TEP1"}
|
||
};
|
||
|
||
// 电容量程菜单
|
||
const char menu_510_items[][2][5] =
|
||
{
|
||
{"LO", "HIGH"},
|
||
{"BASE", "REF"}
|
||
};
|
||
|
||
// 压力量程菜单
|
||
const char menu_520_items[][5] =
|
||
{
|
||
"LO", "HIGH"
|
||
};
|
||
|
||
// 温度量程菜单
|
||
const char menu_530_items[][5] =
|
||
{
|
||
"LO", "HIGH"
|
||
};
|
||
|
||
// 函数类型定义:事件
|
||
typedef void (*TEvent)(void);
|
||
typedef void (*TKeyEvent)(u8);
|
||
|
||
// 窗口控件结构
|
||
typedef struct
|
||
{
|
||
// 控件
|
||
TButton Button1; // 按钮:自动测量
|
||
TEditBox Edit2; // 编辑框:输入(与选择框二选一)
|
||
TSelectBox Select3; // 选择框:输入(与编辑框二选一)
|
||
TButton Button4; // 按钮:YES
|
||
TButton Button5; // 按钮:ESC
|
||
|
||
// 事件
|
||
TEvent OnButton1; // 按钮1回调函数
|
||
TEvent OnButton4; // 按钮4回调函数
|
||
TEvent OnButton5; // 按钮5回调函数
|
||
TEvent OnTimeOut; // 超时回调函数(自动返回主界面)
|
||
TEvent OnDrawOthers;// 绘制屏幕上除控件以外的其它文字或符号,直接调用底层函数实现
|
||
TKeyEvent OnKey; // 默认按键处理
|
||
|
||
// 属性
|
||
u8 cursorId; // 当前控件:0-无,1-Button1,2-Edit2, 3-Select3,4-Button4, 5-Button5
|
||
} TForm;
|
||
|
||
volatile u32 Form_timer = 0; // 最近动作时间,用于超时处理
|
||
volatile u16 Form_timeout = 10; // 超时时间
|
||
volatile u8 Form_timeouted = 0; // 是否已执行超时动作
|
||
|
||
// 窗口结构
|
||
TForm form;
|
||
|
||
void Form_ResetTimer()
|
||
{
|
||
S_RTC_TIME_DATA_T sRTC;
|
||
|
||
// 获取当前时间
|
||
RTC_GetDateAndTime(&sRTC);
|
||
// 计算自上次gps定位以来的时间
|
||
Form_timer = Calc_SecondsFromYear(INITIAL_YEAR, sRTC.u32Year, sRTC.u32Month, sRTC.u32Day,
|
||
sRTC.u32Hour, sRTC.u32Minute, sRTC.u32Second);
|
||
Form_timeouted = 0;
|
||
}
|
||
|
||
// 设置焦点控件
|
||
void Form_SetFocus()
|
||
{
|
||
if(form.cursorId == 1)
|
||
Button_SetFocus(&form.Button1);
|
||
else if(form.cursorId == 2)
|
||
EditBox_SetFocus(&form.Edit2);
|
||
else if(form.cursorId == 3)
|
||
SelectBox_SetFocus(&form.Select3);
|
||
else if(form.cursorId == 4)
|
||
Button_SetFocus(&form.Button4);
|
||
else if(form.cursorId == 5)
|
||
Button_SetFocus(&form.Button5);
|
||
else
|
||
Disp_ClearCursor();
|
||
}
|
||
|
||
// 切换到第一个控件
|
||
void Form_FocusFirst()
|
||
{
|
||
if(!form.Edit2.hide)
|
||
form.cursorId = 2;
|
||
else if(!form.Select3.hide)
|
||
form.cursorId = 3;
|
||
else if(!form.Button4.hide)
|
||
form.cursorId = 4;
|
||
else if(!form.Button5.hide)
|
||
form.cursorId = 5;
|
||
else if(!form.Button1.hide)
|
||
form.cursorId = 1;
|
||
else
|
||
form.cursorId = 0;
|
||
|
||
// 设置焦点控件
|
||
Form_SetFocus();
|
||
}
|
||
|
||
// 切换到下一个控件
|
||
void Form_FocusNext()
|
||
{
|
||
if(form.cursorId == 1)
|
||
{
|
||
if(!form.Edit2.hide)
|
||
form.cursorId = 2;
|
||
else if(!form.Select3.hide)
|
||
form.cursorId = 3;
|
||
else if(!form.Button4.hide)
|
||
form.cursorId = 4;
|
||
else if(!form.Button5.hide)
|
||
form.cursorId = 5;
|
||
}
|
||
else if(form.cursorId == 2)
|
||
{
|
||
if(!form.Select3.hide)
|
||
form.cursorId = 3;
|
||
else if(!form.Button4.hide)
|
||
form.cursorId = 4;
|
||
else if(!form.Button5.hide)
|
||
form.cursorId = 5;
|
||
else if(!form.Button1.hide)
|
||
form.cursorId = 1;
|
||
}
|
||
else if(form.cursorId == 3)
|
||
{
|
||
if(!form.Button4.hide)
|
||
form.cursorId = 4;
|
||
else if(!form.Button5.hide)
|
||
form.cursorId = 5;
|
||
else if(!form.Button1.hide)
|
||
form.cursorId = 1;
|
||
else if(!form.Edit2.hide)
|
||
form.cursorId = 2;
|
||
}
|
||
else if(form.cursorId == 4)
|
||
{
|
||
if(!form.Button5.hide)
|
||
form.cursorId = 5;
|
||
else if(!form.Button1.hide)
|
||
form.cursorId = 1;
|
||
else if(!form.Edit2.hide)
|
||
form.cursorId = 2;
|
||
else if(!form.Select3.hide)
|
||
form.cursorId = 3;
|
||
}
|
||
else if(form.cursorId == 5)
|
||
{
|
||
if(!form.Button1.hide)
|
||
form.cursorId = 1;
|
||
else if(!form.Edit2.hide)
|
||
form.cursorId = 2;
|
||
else if(!form.Select3.hide)
|
||
form.cursorId = 3;
|
||
else if(!form.Button4.hide)
|
||
form.cursorId = 4;
|
||
}
|
||
|
||
// 设置焦点控件
|
||
Form_SetFocus();
|
||
}
|
||
|
||
void Form_OnKey(u8 key)
|
||
{
|
||
if(form.cursorId == 1 && Button_OnKey(&form.Button1, key) != KEY_INVALID)
|
||
{
|
||
if(key == KEY_FUNC)
|
||
Form_FocusNext();
|
||
else if(key == KEY_SET && form.OnButton1 != NULL)
|
||
form.OnButton1();
|
||
|
||
return;
|
||
}
|
||
if(form.cursorId == 2 && EditBox_OnKey(&form.Edit2, key) != KEY_INVALID)
|
||
{
|
||
if(key == KEY_FUNC)
|
||
Form_FocusNext();
|
||
|
||
return;
|
||
}
|
||
if(form.cursorId == 3 && SelectBox_OnKey(&form.Select3, key) != KEY_INVALID)
|
||
{
|
||
if(key == KEY_FUNC)
|
||
Form_FocusNext();
|
||
|
||
return;
|
||
}
|
||
if(form.cursorId == 4 && Button_OnKey(&form.Button4, key) != KEY_INVALID)
|
||
{
|
||
if(key == KEY_FUNC)
|
||
Form_FocusNext();
|
||
else if(key == KEY_SET && form.OnButton4 != NULL)
|
||
form.OnButton4();
|
||
|
||
return;
|
||
}
|
||
if(form.cursorId == 5 && Button_OnKey(&form.Button5, key) != KEY_INVALID)
|
||
{
|
||
if(key == KEY_FUNC)
|
||
Form_FocusNext();
|
||
else if(key == KEY_SET && form.OnButton5 != NULL)
|
||
form.OnButton5();
|
||
|
||
return;
|
||
}
|
||
|
||
if(form.OnKey != NULL)
|
||
form.OnKey(key);
|
||
}
|
||
|
||
// 刷新控件
|
||
void Form_RefreshCtrls()
|
||
{
|
||
if(!form.Button1.hide && form.cursorId == 1)
|
||
Button_Refresh(&form.Button1);
|
||
if(!form.Edit2.hide && form.cursorId == 2)
|
||
EditBox_Refresh(&form.Edit2);
|
||
if(!form.Select3.hide && form.cursorId == 3)
|
||
SelectBox_Refresh(&form.Select3);
|
||
if(!form.Button4.hide && form.cursorId == 4)
|
||
Button_Refresh(&form.Button4);
|
||
if(!form.Button5.hide && form.cursorId == 5)
|
||
Button_Refresh(&form.Button5);
|
||
}
|
||
|
||
void Form_Refresh()
|
||
{
|
||
if(form.OnDrawOthers != NULL)
|
||
form.OnDrawOthers();
|
||
Form_RefreshCtrls();
|
||
|
||
// 实际写屏
|
||
HT1621_Refresh();
|
||
}
|
||
|
||
void Form_OnTimer()
|
||
{
|
||
S_RTC_TIME_DATA_T sRTC;
|
||
|
||
// 切换闪烁状态
|
||
formParam.blinkVisible = !formParam.blinkVisible;
|
||
Disp_SetBlinkVisible(formParam.blinkVisible);
|
||
|
||
// 处理超时
|
||
if(form.OnTimeOut != NULL && !Form_timeouted)
|
||
{
|
||
// 获取当前时间
|
||
RTC_GetDateAndTime(&sRTC);
|
||
// 计算自上次gps定位以来的时间
|
||
if(Calc_SecondsFromYear(INITIAL_YEAR, sRTC.u32Year, sRTC.u32Month, sRTC.u32Day,
|
||
sRTC.u32Hour, sRTC.u32Minute, sRTC.u32Second) >= Form_timer + Form_timeout)
|
||
{
|
||
Form_timeouted = 1;
|
||
form.OnTimeOut();
|
||
}
|
||
}
|
||
|
||
Form_Refresh();
|
||
}
|
||
// ********************************************
|
||
// 以下为各个功能界面函数
|
||
// ********************************************
|
||
|
||
// 默认超时:查看30秒,设置60秒,标定120秒
|
||
#define OPERATE_TIMEOUT (formParam.privilege == 0 ? 30 : (formParam.privilege == 1 ? 60 : 120))
|
||
#define METER_DISP_TIMEOUT 10 // 正常界面:4秒钟休眠
|
||
#define METER_TEST_TIMEOUT 60 // 测试界面:1分钟休眠
|
||
|
||
// 超时:进入主界面
|
||
void Form_Return2Meter()
|
||
{
|
||
formParam.menuIdx[0] = 0;
|
||
formParam.menuIdx[1] = 0;
|
||
formParam.menuIdx[2] = 0;
|
||
formParam.meterPage = 0;
|
||
Change_Form(FORM_ID_METER);
|
||
}
|
||
|
||
// 启动界面进入,或功能界面返回到设置菜单
|
||
void Form_Return2_000()
|
||
{
|
||
formParam.menuIdx[1] = 0;
|
||
formParam.menuIdx[2] = 0;
|
||
Change_Form(FORM_ID_000);
|
||
}
|
||
|
||
// ********************************************
|
||
// 启动界面
|
||
// ********************************************
|
||
void Form_Start_OnDrawOthers()
|
||
{
|
||
char range[10];
|
||
|
||
// 显示差压量程
|
||
sprintf(range, "%3d", dcBuff.configSensor.sensorDPress.highRange);
|
||
Disp_Fld1Text(range);
|
||
Disp_SwitchDiffUnit(UNIT_KPA);
|
||
}
|
||
|
||
// 无控件,4秒超时
|
||
void Form_Start_Create()
|
||
{
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Hide(&form.Edit2);
|
||
SelectBox_Hide(&form.Select3);
|
||
Button_Hide(&form.Button4);
|
||
Button_Hide(&form.Button5);
|
||
|
||
Form_timeout = 4; // 4秒超时
|
||
|
||
// 事件回调
|
||
form.OnDrawOthers = Form_Start_OnDrawOthers;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// ********************************************
|
||
// 主界面
|
||
// ********************************************
|
||
|
||
void Form_Meter_OnDrawOthers()
|
||
{
|
||
// 显示表盘全部数据
|
||
Meter_Disp();
|
||
|
||
// 贴片厂测试软件打开
|
||
// Disp_WriteAlarm(1);
|
||
// Disp_WriteError(1);
|
||
// Disp_WriteFill(1);
|
||
// Disp_WritePower(1);
|
||
// Disp_WriteGPS(1);
|
||
// Disp_WriteRF(1);
|
||
}
|
||
|
||
// 主界面超时
|
||
void Form_Meter_OnTimeOut()
|
||
{
|
||
if(formParam.meterPage == 3)
|
||
{
|
||
formParam.meterPage = 0;
|
||
Form_timeout = METER_DISP_TIMEOUT;
|
||
|
||
// 刷新屏幕
|
||
xSemaphoreGive(Key_Semaphore);
|
||
}
|
||
// 允许休眠
|
||
LCD_Disabled = 1;
|
||
}
|
||
|
||
void Form_Meter_OnKey(u8 key)
|
||
{
|
||
// 按FUNC键进入查询或设置界面
|
||
if(key == KEY_FUNC)
|
||
{
|
||
formParam.privilege = 0;
|
||
Change_Form(FORM_ID_PWD);
|
||
}
|
||
// 防过充
|
||
else if(key == KEY_SET)
|
||
{
|
||
// if(IS_ALARM_ON() && formParam.meterPage == 0)
|
||
// {
|
||
// // 手动关闭报警
|
||
// KZ_ALARM_OFF();
|
||
|
||
// if(dcBuff.configDisplay.op_ALARM_OUTPUT && Alarm_Output)
|
||
// Alarm_Enabled = 0;
|
||
// if(dcBuff.configDisplay.op_LOW_ALARM_OUTPUT && Low_Alarm_Output)
|
||
// Low_Alarm_Enabled = 0;
|
||
// if(dcBuff.configDisplay.op_LEAK_ALARM_OUTPUT && Leak_Alarm_Output)
|
||
// Leak_Alarm_Enabled = 0;
|
||
// if(dcBuff.configDisplay.op_PRESS_ALARM_OUTPUT && Press_Alarm_Output)
|
||
// Press_Alarm_Enabled = 0;
|
||
// if(dcBuff.configDisplay.op_LOW_PRESS_ALARM_OUTPUT && Low_Press_Alarm_Output)
|
||
// Low_Press_Alarm_Enabled = 0;
|
||
// if(dcBuff.powerInfo.hardVer.major == 232 && ExtPress_Alarm_Output)
|
||
// ExtPress_Alarm_Enabled = 0;
|
||
// if(dcBuff.powerInfo.hardVer.major == 232 && Low_ExtPress_Alarm_Output)
|
||
// Low_ExtPress_Alarm_Enabled = 0;
|
||
|
||
// Alarm_Output = 0;
|
||
// Low_Alarm_Output = 0;
|
||
// Leak_Alarm_Output = 0;
|
||
// Press_Alarm_Output = 0;
|
||
// Low_Press_Alarm_Output = 0;
|
||
// ExtPress_Alarm_Output = 0;
|
||
// Low_ExtPress_Alarm_Output = 0;
|
||
// }
|
||
|
||
// if(dcBuff.configDisplay.op_LOW_ALARM_OUTPUT && formParam.meterPage == 0)
|
||
// {
|
||
// // 手动关闭报警
|
||
// if(Low_Alarm_Enabled && IS_ALARM_ON())
|
||
// {
|
||
// Low_Alarm_Enabled = 0;
|
||
// KZ_ALARM_OFF();
|
||
// }
|
||
// }
|
||
// if(dcBuff.configDisplay.op_LEAK_ALARM_OUTPUT && formParam.meterPage == 0)
|
||
// {
|
||
// // 手动关泄露报警
|
||
// if(Leak_Alarm_Enabled && IS_ALARM_ON())
|
||
// {
|
||
// Leak_Alarm_Enabled = 0;
|
||
// KZ_ALARM_OFF();
|
||
// }
|
||
// }
|
||
// if(dcBuff.configDisplay.op_ANTI_OVERFILL && formParam.meterPage == 0)
|
||
// {
|
||
// // 手动开关充装
|
||
// Charge_Enabled = !Charge_Enabled;
|
||
// if(Charge_Enabled)
|
||
// Wakeup_SetAlarm(1);
|
||
//
|
||
// // 采集数据
|
||
// Sample_Notify();
|
||
// }
|
||
|
||
// if(formParam.meterPage == 3 && MeterNeedRoll())
|
||
if(formParam.meterPage == 3)
|
||
MeterRoll(); // 切换显示第几路
|
||
}
|
||
else if(key == KEY_UP)///if(key == KEY_DOWN)
|
||
{
|
||
if(formParam.meterPage >= 3)
|
||
formParam.meterPage = 0;
|
||
else
|
||
formParam.meterPage++;
|
||
if(formParam.meterPage == 3)
|
||
{
|
||
MeterRollFirst(); // 默认在第1路
|
||
Form_timeout = METER_TEST_TIMEOUT;
|
||
}
|
||
else
|
||
Form_timeout = METER_DISP_TIMEOUT;
|
||
|
||
|
||
}
|
||
// else if(key == KEY_UP)
|
||
// {
|
||
// if(formParam.meterPage == 0)
|
||
// {
|
||
// if(dcBuff.configDisplay.L_Unit == UNIT_MMH2O)
|
||
// dcBuff.configDisplay.L_Unit = UNIT_INH2O;
|
||
// else
|
||
// dcBuff.configDisplay.L_Unit++;
|
||
// // 保存
|
||
// Config_SaveConfig();
|
||
// // 检查合法性
|
||
// Check_L_Unit(key);
|
||
// }
|
||
// }
|
||
}
|
||
|
||
// 无控件
|
||
void Form_Meter_Create()
|
||
{
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Hide(&form.Edit2);
|
||
SelectBox_Hide(&form.Select3);
|
||
Button_Hide(&form.Button4);
|
||
Button_Hide(&form.Button5);
|
||
|
||
Form_timeout = METER_DISP_TIMEOUT;
|
||
// 事件回调
|
||
form.OnDrawOthers = Form_Meter_OnDrawOthers;
|
||
form.OnTimeOut = Form_Meter_OnTimeOut;
|
||
form.OnKey = Form_Meter_OnKey;
|
||
}
|
||
|
||
// ********************************************
|
||
// 输密码界面
|
||
// ********************************************
|
||
// 确认按钮
|
||
void Form_Pwd_OnButton4()
|
||
{
|
||
// 不输入密码,进入查询界面
|
||
if(strcmp(form.Edit2.text, "oooo") == 0)
|
||
{
|
||
formParam.privilege = 0;
|
||
Form_Return2_000();
|
||
}
|
||
// 输入密码1:设置储罐参数
|
||
else if(strcmp(form.Edit2.text, dcBuff.configDisplay.pwd1) == 0)
|
||
{
|
||
formParam.privilege = 1;
|
||
//Form_Return2_000();
|
||
Change_Form(FORM_ID_200); // 一级菜单只有一项,直接进入二级菜单(储罐参数设置)
|
||
}
|
||
// 输入密码2:设置标定等参数
|
||
else if(strcmp(form.Edit2.text, dcBuff.configDisplay.pwd2) == 0)
|
||
{
|
||
formParam.privilege = 2;
|
||
Form_Return2_000();
|
||
}
|
||
// 输入密码3:查看真空度
|
||
else if(strcmp(form.Edit2.text, "2323") == 0)
|
||
{
|
||
formParam.privilege = 0;
|
||
Change_Form(FORM_ID_700);
|
||
}
|
||
// 输入错误密码:返回主界面
|
||
else
|
||
Form_Return2Meter();
|
||
}
|
||
|
||
void Form_Pwd_Create()
|
||
{
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Create(&form.Edit2, 0, 4, 4, "oooo");
|
||
SelectBox_Hide(&form.Select3);
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton4 = Form_Pwd_OnButton4;
|
||
form.OnButton5 = Form_Return2Meter;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// ********************************************
|
||
// 设置菜单界面
|
||
// ********************************************
|
||
// 确认按钮
|
||
void Form_000_OnButton4()
|
||
{
|
||
// 保存选项序号
|
||
formParam.menuIdx[0] = form.Select3.idx;
|
||
|
||
if(formParam.privilege == 0)
|
||
{
|
||
switch(form.Select3.idx)
|
||
{
|
||
case 0: // 设置PSN
|
||
Change_Form(FORM_ID_100);
|
||
break;
|
||
case 1: // 设置储罐参数
|
||
Change_Form(FORM_ID_200);
|
||
break;
|
||
case 2: // 设置上报周期
|
||
Change_Form(FORM_ID_300);
|
||
break;
|
||
case 3: // 标定
|
||
if(!dcBuff.configDisplay.op_LEVEL_SENSOR_ONLY)
|
||
Change_Form(FORM_ID_400);
|
||
else
|
||
Change_Form(FORM_ID_410);
|
||
break;
|
||
case 4: // 量程
|
||
if(!dcBuff.configDisplay.op_LEVEL_SENSOR_ONLY)
|
||
Change_Form(FORM_ID_500);
|
||
else
|
||
Change_Form(FORM_ID_510);
|
||
break;
|
||
case 5: // 信息
|
||
Change_Form(FORM_ID_600);
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
else if(formParam.privilege == 1) // 这个地方不会执行到,因为一级菜单只有一项,故直接进入二级菜单
|
||
{
|
||
switch(form.Select3.idx)
|
||
{
|
||
case 0: // 设置储罐参数
|
||
Change_Form(FORM_ID_200);
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
switch(form.Select3.idx)
|
||
{
|
||
case 0: // 设置PSN
|
||
Change_Form(FORM_ID_100);
|
||
break;
|
||
case 1: // 设置上报周期
|
||
Change_Form(FORM_ID_300);
|
||
break;
|
||
case 2: // 标定
|
||
if(!dcBuff.configDisplay.op_LEVEL_SENSOR_ONLY)
|
||
Change_Form(FORM_ID_400);
|
||
else
|
||
Change_Form(FORM_ID_410);
|
||
break;
|
||
case 3: // 量程
|
||
if(!dcBuff.configDisplay.op_LEVEL_SENSOR_ONLY)
|
||
Change_Form(FORM_ID_500);
|
||
else
|
||
Change_Form(FORM_ID_510);
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
void Form_000_Create()
|
||
{
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Hide(&form.Edit2);
|
||
if(formParam.privilege == 0)
|
||
SelectBox_Create(&form.Select3, 0, 4, 6, menu_000_items, formParam.menuIdx[0]);
|
||
else if(formParam.privilege == 1)
|
||
SelectBox_Create(&form.Select3, 0, 4, 1, menu_001_items, formParam.menuIdx[0]);
|
||
else
|
||
SelectBox_Create(&form.Select3, 0, 4, 4, menu_002_items, formParam.menuIdx[0]);
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton4 = Form_000_OnButton4;
|
||
form.OnButton5 = Form_Return2Meter;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// ********************************************
|
||
// 设置PSN界面
|
||
// ********************************************
|
||
// 确认按钮
|
||
void Form_100_OnButton4()
|
||
{
|
||
char psn[20];
|
||
u16 serial;
|
||
|
||
// 保存PSN
|
||
strcpy(psn, form.Edit2.text);
|
||
|
||
serial = atoi(psn + 10);
|
||
dcBuff.configBottle.PSN[5] = serial & 0xFF;
|
||
dcBuff.configBottle.PSN[4] = serial >> 8;
|
||
|
||
psn[10] = 0;
|
||
dcBuff.configBottle.PSN[3] = atoi(psn + 8);
|
||
psn[8] = 0;
|
||
dcBuff.configBottle.PSN[2] = atoi(psn + 6);
|
||
psn[6] = 0;
|
||
dcBuff.configBottle.PSN[1] = atoi(psn + 4);
|
||
psn[4] = 0;
|
||
dcBuff.configBottle.PSN[0] = atoi(psn + 2);
|
||
dcBuff.configBottle.updateFlag = 1; // 参数更新标志
|
||
|
||
// 保存
|
||
Config_SaveConfig();
|
||
|
||
// 返回上级菜单
|
||
Form_Return2_000();
|
||
}
|
||
|
||
void Form_100_Create()
|
||
{
|
||
char psn[20];
|
||
|
||
// 显示13位PSN号
|
||
sprintf(psn, "20%02d%02d%02d%02d%03d", dcBuff.configBottle.PSN[0], dcBuff.configBottle.PSN[1],
|
||
dcBuff.configBottle.PSN[2], dcBuff.configBottle.PSN[3],
|
||
(dcBuff.configBottle.PSN[4] << 8) | dcBuff.configBottle.PSN[5]);
|
||
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Create(&form.Edit2, 0, 4, 13, psn);
|
||
SelectBox_Hide(&form.Select3);
|
||
if(formParam.privilege == 2)
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
else
|
||
{
|
||
Button_Hide(&form.Button4);
|
||
EditBox_ReadOnly(&form.Edit2);
|
||
}
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton4 = Form_100_OnButton4;
|
||
form.OnButton5 = Form_Return2_000;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// ********************************************
|
||
// 储罐参数设置界面
|
||
// ********************************************
|
||
|
||
// 确认按钮
|
||
void Form_200_OnButton4()
|
||
{
|
||
// 保存选项序号
|
||
formParam.menuIdx[1] = form.Select3.idx;
|
||
|
||
switch(form.Select3.idx) //apex
|
||
{
|
||
case 0: // 类型
|
||
//Change_Form(FORM_ID_210);
|
||
Change_Form(FORM_ID_273);
|
||
break;
|
||
case 1: // 液源
|
||
//Change_Form(FORM_ID_220);
|
||
Change_Form(FORM_ID_272);
|
||
break;
|
||
case 2: // 长度
|
||
Change_Form(FORM_ID_271);//压力报警高点设置
|
||
// Change_Form(FORM_ID_230);
|
||
break;
|
||
case 3: // 直径
|
||
// Change_Form(FORM_ID_240);
|
||
Change_Form(FORM_ID_270);
|
||
break;
|
||
case 4: // 充装比
|
||
Change_Form(FORM_ID_250);
|
||
break;
|
||
case 5: // 低液位百分比
|
||
Change_Form(FORM_ID_251);
|
||
break;
|
||
case 6: // 密度
|
||
Change_Form(FORM_ID_260);
|
||
break;
|
||
case 7: // 压力报警低点
|
||
if(!dcBuff.configDisplay.op_LEVEL_SENSOR_ONLY)
|
||
Change_Form(FORM_ID_270);
|
||
else// 容积
|
||
Change_Form(FORM_ID_280);
|
||
break;
|
||
case 8: // 压力报警高点
|
||
if(!dcBuff.configDisplay.op_LEVEL_SENSOR_ONLY)
|
||
Change_Form(FORM_ID_271);
|
||
break;
|
||
case 9: // 容积
|
||
if(!dcBuff.configDisplay.op_LEVEL_SENSOR_ONLY)
|
||
Change_Form(FORM_ID_280);
|
||
break;
|
||
case 10:// 4~20mA输出液位高度
|
||
if(!dcBuff.configDisplay.op_LEVEL_SENSOR_ONLY)
|
||
Change_Form(FORM_ID_285);
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
void Form_200_Create()
|
||
{
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Hide(&form.Edit2);
|
||
SelectBox_Create(&form.Select3, 0, 4, /*dcBuff.configDisplay.op_LEVEL_SENSOR_ONLY ? 8 : 11*/4,
|
||
menu_200_items[dcBuff.configDisplay.op_LEVEL_SENSOR_ONLY], formParam.menuIdx[1]);
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton4 = Form_200_OnButton4;
|
||
if(formParam.privilege == 0)
|
||
form.OnButton5 = Form_Return2_000;
|
||
else // 无一级菜单
|
||
form.OnButton5 = Form_Return2Meter;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// 返回上级菜单
|
||
void Form_Return2_200()
|
||
{
|
||
formParam.menuIdx[2] = 0;
|
||
Change_Form(FORM_ID_200);
|
||
}
|
||
|
||
// ********************************************
|
||
// 储罐类型设置界面
|
||
// ********************************************
|
||
// 确认按钮
|
||
void Form_210_OnButton4()
|
||
{
|
||
// 保存类型
|
||
dcBuff.configBottle.type = form.Select3.idx;
|
||
dcBuff.configBottle.updateFlag = 1; // 参数更新标志
|
||
// 保存
|
||
Config_SaveConfig();
|
||
|
||
// 返回上级菜单
|
||
Form_Return2_200();
|
||
}
|
||
|
||
void Form_210_Create()
|
||
{
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Hide(&form.Edit2);
|
||
SelectBox_Create(&form.Select3, 0, 4, 3, menu_210_items, dcBuff.configBottle.type);
|
||
if(formParam.privilege == 1)
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
else
|
||
{
|
||
Button_Hide(&form.Button4);
|
||
SelectBox_ReadOnly(&form.Select3);
|
||
}
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton4 = Form_210_OnButton4;
|
||
form.OnButton5 = Form_Return2_200;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// ********************************************
|
||
// 液源设置界面
|
||
// ********************************************
|
||
// 确认按钮
|
||
void Form_220_OnButton4()
|
||
{
|
||
// 保存液源
|
||
dcBuff.configBottle.source = form.Select3.idx;
|
||
dcBuff.configBottle.updateFlag = 1; // 参数更新标志
|
||
|
||
// 保存
|
||
Config_SaveConfig();
|
||
|
||
// 返回上级菜单
|
||
Form_Return2_200();
|
||
}
|
||
|
||
void Form_220_Create()
|
||
{
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Hide(&form.Edit2);
|
||
SelectBox_Create(&form.Select3, 0, 4, 13, menu_220_items, dcBuff.configBottle.source);
|
||
if(formParam.privilege == 1)
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
else
|
||
{
|
||
Button_Hide(&form.Button4);
|
||
SelectBox_ReadOnly(&form.Select3);
|
||
}
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton4 = Form_220_OnButton4;
|
||
form.OnButton5 = Form_Return2_200;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// ********************************************
|
||
// 储罐长度设置界面
|
||
// ********************************************
|
||
// 确认按钮
|
||
void Form_230_OnButton4()
|
||
{
|
||
// 保存长度
|
||
dcBuff.configBottle.len = atoi(form.Edit2.text);
|
||
dcBuff.configBottle.updateFlag = 1; // 参数更新标志
|
||
|
||
// 保存
|
||
Config_SaveConfig();
|
||
|
||
// 返回上级菜单
|
||
Form_Return2_200();
|
||
}
|
||
|
||
void Form_230_Create()
|
||
{
|
||
char len[8];
|
||
sprintf(len, "%05d", dcBuff.configBottle.len);
|
||
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Create(&form.Edit2, 0, 4, 5, len);
|
||
SelectBox_Hide(&form.Select3);
|
||
if(formParam.privilege == 1)
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
else
|
||
{
|
||
Button_Hide(&form.Button4);
|
||
EditBox_ReadOnly(&form.Edit2);
|
||
}
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton4 = Form_230_OnButton4;
|
||
form.OnButton5 = Form_Return2_200;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// ********************************************
|
||
// 储罐直径设置界面
|
||
// ********************************************
|
||
// 确认按钮
|
||
void Form_240_OnButton4()
|
||
{
|
||
// 保存直径
|
||
dcBuff.configBottle.diameter = atoi(form.Edit2.text);
|
||
dcBuff.configBottle.updateFlag = 1; // 参数更新标志
|
||
|
||
// 保存
|
||
Config_SaveConfig();
|
||
|
||
// 返回上级菜单
|
||
Form_Return2_200();
|
||
}
|
||
|
||
void Form_240_Create()
|
||
{
|
||
char diameter[8];
|
||
sprintf(diameter, "%05d", dcBuff.configBottle.diameter);
|
||
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Create(&form.Edit2, 0, 4, 5, diameter);
|
||
SelectBox_Hide(&form.Select3);
|
||
if(formParam.privilege == 1)
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
else
|
||
{
|
||
Button_Hide(&form.Button4);
|
||
EditBox_ReadOnly(&form.Edit2);
|
||
}
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton4 = Form_240_OnButton4;
|
||
form.OnButton5 = Form_Return2_200;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// ********************************************
|
||
// 充装比设置界面
|
||
// ********************************************
|
||
// 确认按钮
|
||
void Form_250_OnButton4()
|
||
{
|
||
// 保存充装比
|
||
dcBuff.configBottle.fullPct = atoi(form.Edit2.text) * 100;
|
||
dcBuff.configBottle.updateFlag = 1; // 参数更新标志
|
||
|
||
// 保存
|
||
Config_SaveConfig();
|
||
|
||
// 返回上级菜单
|
||
Form_Return2_200();
|
||
}
|
||
|
||
void Form_250_Create()
|
||
{
|
||
char fullPct[8];
|
||
sprintf(fullPct, "%02d", dcBuff.configBottle.fullPct / 100);
|
||
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Create(&form.Edit2, 0, 2, 2, fullPct);
|
||
SelectBox_Hide(&form.Select3);
|
||
if(formParam.privilege == 1)
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
else
|
||
{
|
||
Button_Hide(&form.Button4);
|
||
EditBox_ReadOnly(&form.Edit2);
|
||
}
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton4 = Form_250_OnButton4;
|
||
form.OnButton5 = Form_Return2_200;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// ********************************************
|
||
// 低液位百分比设置界面
|
||
// ********************************************
|
||
// 确认按钮
|
||
void Form_251_OnButton4()
|
||
{
|
||
// 保存充装比
|
||
dcBuff.configBottle.emptyPct = atoi(form.Edit2.text) * 100;
|
||
dcBuff.configBottle.updateFlag = 1; // 参数更新标志
|
||
|
||
// 保存
|
||
Config_SaveConfig();
|
||
|
||
// 返回上级菜单
|
||
Form_Return2_200();
|
||
}
|
||
|
||
void Form_251_Create()
|
||
{
|
||
char emptyPct[8];
|
||
sprintf(emptyPct, "%02d", dcBuff.configBottle.emptyPct / 100);
|
||
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Create(&form.Edit2, 0, 2, 2, emptyPct);
|
||
SelectBox_Hide(&form.Select3);
|
||
if(formParam.privilege == 1)
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
else
|
||
{
|
||
Button_Hide(&form.Button4);
|
||
EditBox_ReadOnly(&form.Edit2);
|
||
}
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton4 = Form_251_OnButton4;
|
||
form.OnButton5 = Form_Return2_200;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// ********************************************
|
||
// 液体密度设置界面
|
||
// ********************************************
|
||
// 确认按钮
|
||
void Form_260_OnButton4()
|
||
{
|
||
// 保存密度
|
||
Config_SetDensity(dcBuff.configBottle.source, atoi(form.Edit2.text) * 0.001);
|
||
dcBuff.configBottle.updateFlag = 1; // 参数更新标志
|
||
|
||
// 保存
|
||
Config_SaveConfig();
|
||
|
||
// 返回上级菜单
|
||
Form_Return2_200();
|
||
}
|
||
|
||
void Form_260_Create()
|
||
{
|
||
char density[8];
|
||
sprintf(density, "%04d", (uint16_t) (Config_GetDensity(dcBuff.configBottle.source) * 1000));
|
||
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Create(&form.Edit2, 0, 4, 4, density);
|
||
SelectBox_Hide(&form.Select3);
|
||
if(formParam.privilege == 1)
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
else
|
||
{
|
||
Button_Hide(&form.Button4);
|
||
EditBox_ReadOnly(&form.Edit2);
|
||
}
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton4 = Form_260_OnButton4;
|
||
form.OnButton5 = Form_Return2_200;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// ********************************************
|
||
// 压力报警低点设置界面
|
||
// ********************************************
|
||
void Form_DispPoint3()
|
||
{
|
||
Disp_Fld1PointOff();
|
||
if(form.cursorId == 2)
|
||
Disp_Fld1PointOn(3);
|
||
}
|
||
|
||
void Form_DispPoint2()
|
||
{
|
||
Disp_Fld1PointOff();
|
||
if(form.cursorId == 2)
|
||
Disp_Fld1PointOn(2);
|
||
}
|
||
|
||
void Form_DispPoint1()
|
||
{
|
||
Disp_Fld1PointOff();
|
||
if(form.cursorId == 2)
|
||
Disp_Fld1PointOn(1);
|
||
}
|
||
|
||
// 确认按钮
|
||
void Form_270_OnButton4()
|
||
{
|
||
// 保存报警参数
|
||
dcBuff.configBottle.warnPress = atoi(form.Edit2.text);
|
||
dcBuff.configBottle.updateFlag = 1; // 参数更新标志
|
||
|
||
// 保存
|
||
Config_SaveConfig();
|
||
|
||
// 返回上级菜单
|
||
Form_Return2_200();
|
||
}
|
||
|
||
void Form_270_Create()
|
||
{
|
||
char warnPress[8];
|
||
sprintf(warnPress, "%04d", dcBuff.configBottle.warnPress);
|
||
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Create(&form.Edit2, 0, 4, 4, warnPress);
|
||
SelectBox_Hide(&form.Select3);
|
||
if(formParam.privilege == 1)
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
else
|
||
{
|
||
Button_Hide(&form.Button4);
|
||
EditBox_ReadOnly(&form.Edit2);
|
||
}
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
//form.OnDrawOthers = Form_DispPoint3;
|
||
form.OnButton4 = Form_270_OnButton4;
|
||
form.OnButton5 = Form_Return2_200;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// ********************************************
|
||
// 压力报警高点设置界面
|
||
// ********************************************
|
||
|
||
// 确认按钮
|
||
void Form_271_OnButton4()
|
||
{
|
||
// 保存报警参数
|
||
dcBuff.configBottle.warnPressH = atoi(form.Edit2.text) ;
|
||
dcBuff.configBottle.updateFlag = 1; // 参数更新标志
|
||
|
||
// 保存
|
||
Config_SaveConfig();
|
||
|
||
// 返回上级菜单
|
||
Form_Return2_200();
|
||
}
|
||
|
||
void Form_271_Create()
|
||
{
|
||
char warnPressH[8];
|
||
sprintf(warnPressH, "%04d", dcBuff.configBottle.warnPressH);
|
||
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Create(&form.Edit2, 0, 4, 4, warnPressH);
|
||
SelectBox_Hide(&form.Select3);
|
||
if(formParam.privilege == 1)
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
else
|
||
{
|
||
Button_Hide(&form.Button4);
|
||
EditBox_ReadOnly(&form.Edit2);
|
||
}
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
//form.OnDrawOthers = Form_DispPoint3;
|
||
form.OnButton4 = Form_271_OnButton4;
|
||
form.OnButton5 = Form_Return2_200;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// 确认按钮
|
||
void Form_272_OnButton4()
|
||
{
|
||
// 保存报警参数
|
||
dcBuff.configBottle.emptyPct = atoi(form.Edit2.text) ;
|
||
dcBuff.configBottle.updateFlag = 1; // 参数更新标志
|
||
|
||
// 保存
|
||
Config_SaveConfig();
|
||
|
||
// 返回上级菜单
|
||
Form_Return2_200();
|
||
}
|
||
|
||
void Form_272_Create()
|
||
{
|
||
char emptyPct[8];
|
||
sprintf(emptyPct, "%04d", dcBuff.configBottle.emptyPct);
|
||
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Create(&form.Edit2, 0, 4, 4, emptyPct);
|
||
SelectBox_Hide(&form.Select3);
|
||
if(formParam.privilege == 1)
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
else
|
||
{
|
||
Button_Hide(&form.Button4);
|
||
EditBox_ReadOnly(&form.Edit2);
|
||
}
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnDrawOthers = Form_DispPoint2;
|
||
form.OnButton4 = Form_272_OnButton4;
|
||
form.OnButton5 = Form_Return2_200;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// 确认按钮
|
||
void Form_273_OnButton4()
|
||
{
|
||
// 保存报警参数
|
||
dcBuff.configBottle.fullPct = atoi(form.Edit2.text) ;
|
||
dcBuff.configBottle.updateFlag = 1; // 参数更新标志
|
||
|
||
// 保存
|
||
Config_SaveConfig();
|
||
|
||
// 返回上级菜单
|
||
Form_Return2_200();
|
||
}
|
||
void Form_273_Create()
|
||
{
|
||
char fullPct[8];
|
||
sprintf(fullPct, "%04d", dcBuff.configBottle.fullPct);
|
||
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Create(&form.Edit2, 0, 4, 4, fullPct);
|
||
SelectBox_Hide(&form.Select3);
|
||
if(formParam.privilege == 1)
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
else
|
||
{
|
||
Button_Hide(&form.Button4);
|
||
EditBox_ReadOnly(&form.Edit2);
|
||
}
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnDrawOthers = Form_DispPoint2;
|
||
form.OnButton4 = Form_273_OnButton4;
|
||
form.OnButton5 = Form_Return2_200;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
// ********************************************
|
||
// 储罐容积显示界面
|
||
// ********************************************
|
||
void Form_280_Create()
|
||
{
|
||
char volumeTotal[8];
|
||
|
||
Calculate_Theoretical_Params();
|
||
sprintf(volumeTotal, "%06d", Theoretical_Param.v);
|
||
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Create(&form.Edit2, 0, 4, 6, volumeTotal);
|
||
SelectBox_Hide(&form.Select3);
|
||
Button_Hide(&form.Button4);
|
||
EditBox_ReadOnly(&form.Edit2);
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton4 = Form_Return2_200;
|
||
form.OnButton5 = Form_Return2_200;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// ********************************************
|
||
// 4~20mA输出液位高度设置界面
|
||
// ********************************************
|
||
|
||
void Form_285_OnButton1()
|
||
{
|
||
// 自动采集差压值
|
||
if(Comm_Sample())
|
||
sprintf(form.Edit2.text, "%05d", (uint16_t) KPa2mmH2O(dcBuff.sampleData.diff));
|
||
|
||
form.cursorId = 2;
|
||
Form_SetFocus();
|
||
}
|
||
|
||
// 确认按钮
|
||
void Form_285_OnButton4()
|
||
{
|
||
dcBuff.configSensor.levelOutMMWC = atoi(form.Edit2.text);
|
||
|
||
// 保存
|
||
Config_SaveConfig();
|
||
|
||
// 返回上级菜单
|
||
Form_Return2_200();
|
||
}
|
||
|
||
void Form_285_Create()
|
||
{
|
||
char mmWC[10];
|
||
|
||
sprintf(mmWC, "%05d", dcBuff.configSensor.levelOutMMWC);
|
||
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
EditBox_Create(&form.Edit2, 0, 4, 5, mmWC);
|
||
SelectBox_Hide(&form.Select3);
|
||
if(formParam.privilege == 1)
|
||
{
|
||
Button_Create(&form.Button1, 0, 5, " AUT");
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
}
|
||
else
|
||
{
|
||
Button_Hide(&form.Button1);
|
||
Button_Hide(&form.Button4);
|
||
EditBox_ReadOnly(&form.Edit2);
|
||
}
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton1 = Form_285_OnButton1;
|
||
form.OnButton4 = Form_285_OnButton4;
|
||
form.OnButton5 = Form_Return2_200;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// ********************************************
|
||
// 周期设置界面
|
||
// ********************************************
|
||
|
||
// 确认按钮
|
||
void Form_300_OnButton4()
|
||
{
|
||
// 保存选项序号
|
||
formParam.menuIdx[1] = form.Select3.idx;
|
||
|
||
switch(form.Select3.idx)
|
||
{
|
||
case 0: // 采集周期
|
||
Change_Form(FORM_ID_310);
|
||
break;
|
||
case 1: // 发送周期
|
||
Change_Form(FORM_ID_320);
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
void Form_300_Create()
|
||
{
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Hide(&form.Edit2);
|
||
SelectBox_Create(&form.Select3, 0, 4, 2, menu_300_items, formParam.menuIdx[1]);
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton4 = Form_300_OnButton4;
|
||
form.OnButton5 = Form_Return2_000;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
void Form_Return2_300()
|
||
{
|
||
formParam.menuIdx[2] = 0;
|
||
Change_Form(FORM_ID_300);
|
||
}
|
||
|
||
// ********************************************
|
||
// 采集周期设置界面
|
||
// ********************************************
|
||
// 确认按钮
|
||
void Form_310_OnButton4()
|
||
{
|
||
// 保存周期
|
||
dcBuff.configData.intervalSample = atoi(form.Edit2.text);
|
||
dcBuff.configBottle.updateFlag = 1; // 参数更新标志
|
||
|
||
// 保存
|
||
Config_SaveConfig();
|
||
|
||
// 返回上级菜单
|
||
Form_Return2_300();
|
||
}
|
||
|
||
void Form_310_Create()
|
||
{
|
||
char intervalSample[8];
|
||
sprintf(intervalSample, "%04d", dcBuff.configData.intervalSample);
|
||
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Create(&form.Edit2, 0, 4, 4, intervalSample);
|
||
SelectBox_Hide(&form.Select3);
|
||
if(formParam.privilege == 2)
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
else
|
||
{
|
||
Button_Hide(&form.Button4);
|
||
EditBox_ReadOnly(&form.Edit2);
|
||
}
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton4 = Form_310_OnButton4;
|
||
form.OnButton5 = Form_Return2_300;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// ********************************************
|
||
// 上报周期设置界面
|
||
// ********************************************
|
||
// 确认按钮
|
||
void Form_320_OnButton4()
|
||
{
|
||
// 保存周期
|
||
dcBuff.configData.intervalTrans = atoi(form.Edit2.text);
|
||
dcBuff.configBottle.updateFlag = 1; // 参数更新标志
|
||
|
||
// 保存
|
||
Config_SaveConfig();
|
||
|
||
// 返回上级菜单
|
||
Form_Return2_300();
|
||
}
|
||
|
||
void Form_320_Create()
|
||
{
|
||
char intervalTrans[8];
|
||
sprintf(intervalTrans, "%06d", dcBuff.configData.intervalTrans);
|
||
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Create(&form.Edit2, 0, 4, 6, intervalTrans);
|
||
SelectBox_Hide(&form.Select3);
|
||
if(formParam.privilege == 2)
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
else
|
||
{
|
||
Button_Hide(&form.Button4);
|
||
EditBox_ReadOnly(&form.Edit2);
|
||
}
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton4 = Form_320_OnButton4;
|
||
form.OnButton5 = Form_Return2_300;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// ********************************************
|
||
// 标定界面
|
||
// ********************************************
|
||
|
||
// 确认按钮
|
||
void Form_400_OnButton4()
|
||
{
|
||
// 保存选项序号
|
||
formParam.menuIdx[1] = form.Select3.idx;
|
||
|
||
switch(form.Select3.idx)
|
||
{
|
||
case 0:
|
||
if(!dcBuff.configDisplay.op_USE_CAPACITY_SENSOR) // 差压标定
|
||
Change_Form(FORM_ID_410);
|
||
else // 压力1标定
|
||
{
|
||
formParam.caliIdx = 0;
|
||
Change_Form(FORM_ID_420);
|
||
}
|
||
break;
|
||
case 1:
|
||
if(!dcBuff.configDisplay.op_USE_CAPACITY_SENSOR) // 压力1标定
|
||
{
|
||
formParam.caliIdx = 0;
|
||
Change_Form(FORM_ID_420);
|
||
}
|
||
else // 压力2标定
|
||
{
|
||
formParam.caliIdx = 1;
|
||
Change_Form(FORM_ID_420);
|
||
}
|
||
break;
|
||
case 2:
|
||
if(!dcBuff.configDisplay.op_USE_CAPACITY_SENSOR) // 压力2标定
|
||
{
|
||
formParam.caliIdx = 1;
|
||
Change_Form(FORM_ID_420);
|
||
}
|
||
else // 温度1标定
|
||
{
|
||
formParam.caliIdx = 0;
|
||
Change_Form(FORM_ID_430);
|
||
}
|
||
break;
|
||
case 3:
|
||
if(!dcBuff.configDisplay.op_USE_CAPACITY_SENSOR) // 温度1标定
|
||
{
|
||
formParam.caliIdx = 0;
|
||
Change_Form(FORM_ID_430);
|
||
}
|
||
else // 温度2标定
|
||
{
|
||
formParam.caliIdx = 1;
|
||
Change_Form(FORM_ID_430);
|
||
}
|
||
break;
|
||
case 4:
|
||
if(!dcBuff.configDisplay.op_USE_CAPACITY_SENSOR) // 温度2标定
|
||
{
|
||
formParam.caliIdx = 1;
|
||
Change_Form(FORM_ID_430);
|
||
}
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
void Form_400_Create()
|
||
{
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Hide(&form.Edit2);
|
||
// 3线制温度传感器无须标定(从v84开始,不区分2线/3线制)
|
||
// SelectBox_Create(&form.Select3, 1, 4, dcBuff.configDisplay.op_PT100_3LINE ? 3 : 5, menu_400_items[dcBuff.configDisplay.op_USE_CAPACITY_SENSOR], formParam.menuIdx[1]);
|
||
SelectBox_Create(&form.Select3, 0, 4, dcBuff.configDisplay.op_USE_CAPACITY_SENSOR ? 4 : 5, menu_400_items[dcBuff.configDisplay.op_USE_CAPACITY_SENSOR], formParam.menuIdx[1]);
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton4 = Form_400_OnButton4;
|
||
form.OnButton5 = Form_Return2_000;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// 返回按钮
|
||
void Form_Return2_400()
|
||
{
|
||
formParam.menuIdx[2] = 0;
|
||
Change_Form(FORM_ID_400);
|
||
}
|
||
|
||
// ********************************************
|
||
// 电容标定界面
|
||
// ********************************************
|
||
|
||
// 确认按钮
|
||
void Form_410_OnButton4()
|
||
{
|
||
// 保存选项序号
|
||
formParam.menuIdx[2] = form.Select3.idx;
|
||
|
||
switch(form.Select3.idx)
|
||
{
|
||
case 0: // C1电容标定
|
||
Change_Form(FORM_ID_411);
|
||
break;
|
||
case 1: // C2电容标定
|
||
Change_Form(FORM_ID_412);
|
||
break;
|
||
case 2: // 偏移(零点)标定
|
||
Change_Form(FORM_ID_413);
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
void Form_410_Create()
|
||
{
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Hide(&form.Edit2);
|
||
SelectBox_Create(&form.Select3, 0, 4, dcBuff.configDisplay.op_USE_CAPACITY_SENSOR ? 2 : 3,
|
||
menu_410_items[dcBuff.configDisplay.op_USE_CAPACITY_SENSOR], formParam.menuIdx[2]);
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton4 = Form_410_OnButton4;
|
||
if(!dcBuff.configDisplay.op_LEVEL_SENSOR_ONLY)
|
||
form.OnButton5 = Form_Return2_400;
|
||
else
|
||
form.OnButton5 = Form_Return2_000;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// 返回按钮
|
||
void Form_Return2_410()
|
||
{
|
||
Change_Form(FORM_ID_410);
|
||
}
|
||
|
||
// ********************************************
|
||
// C1电容标定界面
|
||
// ********************************************
|
||
|
||
void Form_411_OnButton1()
|
||
{
|
||
// 自动采集电容AD值
|
||
if(Comm_Sample())
|
||
sprintf(form.Edit2.text, "%04d", dcBuff.sampleData.adDPress);
|
||
|
||
form.cursorId = 2;
|
||
Form_SetFocus();
|
||
}
|
||
|
||
// 确认按钮
|
||
void Form_411_OnButton4()
|
||
{
|
||
// 保存C1
|
||
if(!dcBuff.configDisplay.op_USE_CAPACITY_SENSOR)
|
||
dcBuff.configSensor.sensorDPress.zeroValue = atoi(form.Edit2.text);
|
||
else
|
||
dcBuff.configSensor.sensorCap.c1ADC = atoi(form.Edit2.text);
|
||
|
||
// 保存
|
||
Config_SaveConfig();
|
||
|
||
// 返回上级菜单
|
||
Form_Return2_410();
|
||
}
|
||
|
||
void Form_411_Create()
|
||
{
|
||
char c1[10];
|
||
|
||
if(!dcBuff.configDisplay.op_USE_CAPACITY_SENSOR)
|
||
sprintf(c1, "%04d", dcBuff.configSensor.sensorDPress.zeroValue);
|
||
else
|
||
sprintf(c1, "%04d", dcBuff.configSensor.sensorCap.c1ADC);
|
||
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
EditBox_Create(&form.Edit2, 0, 4, 4, c1);
|
||
SelectBox_Hide(&form.Select3);
|
||
if(formParam.privilege == 2)
|
||
{
|
||
Button_Create(&form.Button1, 0, 5, " AUT");
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
}
|
||
else
|
||
{
|
||
Button_Hide(&form.Button1);
|
||
Button_Hide(&form.Button4);
|
||
EditBox_ReadOnly(&form.Edit2);
|
||
}
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton1 = Form_411_OnButton1;
|
||
form.OnButton4 = Form_411_OnButton4;
|
||
form.OnButton5 = Form_Return2_410;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// ********************************************
|
||
// C2电容标定界面
|
||
// ********************************************
|
||
|
||
// 确认按钮
|
||
void Form_412_OnButton4()
|
||
{
|
||
// 保存C2
|
||
if(!dcBuff.configDisplay.op_USE_CAPACITY_SENSOR)
|
||
dcBuff.configSensor.sensorDPress.fullValue = atoi(form.Edit2.text);
|
||
else
|
||
dcBuff.configSensor.sensorCap.c2ADC = atoi(form.Edit2.text);
|
||
|
||
// 保存
|
||
Config_SaveConfig();
|
||
|
||
// 返回上级菜单
|
||
Form_Return2_410();
|
||
}
|
||
|
||
void Form_412_Create()
|
||
{
|
||
char c2[10];
|
||
|
||
if(!dcBuff.configDisplay.op_USE_CAPACITY_SENSOR)
|
||
sprintf(c2, "%04d", dcBuff.configSensor.sensorDPress.fullValue);
|
||
else
|
||
sprintf(c2, "%04d", dcBuff.configSensor.sensorCap.c2ADC);
|
||
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
EditBox_Create(&form.Edit2, 0, 4, 4, c2);
|
||
SelectBox_Hide(&form.Select3);
|
||
if(formParam.privilege == 2)
|
||
{
|
||
Button_Create(&form.Button1, 0, 5, " AUT");
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
}
|
||
else
|
||
{
|
||
Button_Hide(&form.Button1);
|
||
Button_Hide(&form.Button4);
|
||
EditBox_ReadOnly(&form.Edit2);
|
||
}
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton1 = Form_411_OnButton1;
|
||
form.OnButton4 = Form_412_OnButton4;
|
||
form.OnButton5 = Form_Return2_410;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// ********************************************
|
||
// 偏移(零点)标定界面
|
||
// ********************************************
|
||
|
||
// 确认按钮
|
||
void Form_413_OnButton4()
|
||
{
|
||
int32_t range = dcBuff.configSensor.sensorDPress.fullValue - dcBuff.configSensor.sensorDPress.zeroValue;
|
||
dcBuff.configSensor.sensorDPress.zeroValue = atoi(form.Edit2.text);
|
||
dcBuff.configSensor.sensorDPress.fullValue = dcBuff.configSensor.sensorDPress.zeroValue + range;
|
||
|
||
// 保存
|
||
Config_SaveConfig();
|
||
|
||
// 返回上级菜单
|
||
Form_Return2_410();
|
||
}
|
||
|
||
void Form_413_Create()
|
||
{
|
||
char c1[10];
|
||
|
||
sprintf(c1, "%04d", dcBuff.configSensor.sensorDPress.zeroValue);
|
||
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
EditBox_Create(&form.Edit2, 0, 4, 4, c1);
|
||
SelectBox_Hide(&form.Select3);
|
||
if(formParam.privilege == 2)
|
||
{
|
||
Button_Create(&form.Button1, 0, 5, " AUT");
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
}
|
||
else
|
||
{
|
||
Button_Hide(&form.Button1);
|
||
Button_Hide(&form.Button4);
|
||
EditBox_ReadOnly(&form.Edit2);
|
||
}
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton1 = Form_411_OnButton1;
|
||
form.OnButton4 = Form_413_OnButton4;
|
||
form.OnButton5 = Form_Return2_410;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// ********************************************
|
||
// 压力标定界面
|
||
// ********************************************
|
||
|
||
// 确认按钮
|
||
void Form_420_OnButton4()
|
||
{
|
||
// 保存选项序号
|
||
formParam.menuIdx[2] = form.Select3.idx;
|
||
|
||
switch(form.Select3.idx)
|
||
{
|
||
case 0: // 低压力标定
|
||
Change_Form(FORM_ID_421);
|
||
break;
|
||
case 1: // 高压力标定
|
||
Change_Form(FORM_ID_422);
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
void Form_420_Create()
|
||
{
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Hide(&form.Edit2);
|
||
SelectBox_Create(&form.Select3, 0, 4, 2, menu_420_items, formParam.menuIdx[2]);
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton4 = Form_420_OnButton4;
|
||
form.OnButton5 = Form_Return2_400;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// 返回按钮
|
||
void Form_Return2_420()
|
||
{
|
||
Change_Form(FORM_ID_420);
|
||
}
|
||
|
||
// ********************************************
|
||
// 低压力标定界面
|
||
// ********************************************
|
||
|
||
void Form_421_OnButton1()
|
||
{
|
||
// 自动采集压力AD值
|
||
if(Comm_Sample())
|
||
{
|
||
if(formParam.caliIdx == 0)
|
||
sprintf(form.Edit2.text, "%04d", dcBuff.sampleData.adPress);
|
||
else
|
||
sprintf(form.Edit2.text, "%04d", dcBuff.sampleData.adExtPress[0]);
|
||
}
|
||
|
||
form.cursorId = 2;
|
||
Form_SetFocus();
|
||
}
|
||
|
||
// 确认按钮
|
||
void Form_421_OnButton4()
|
||
{
|
||
// 保存低压力
|
||
if(formParam.caliIdx == 0)
|
||
dcBuff.configSensor.sensorPress.zeroValue = atoi(form.Edit2.text);
|
||
else
|
||
dcBuff.configSensor.sensorEPress[0].zeroValue = atoi(form.Edit2.text);
|
||
|
||
// 保存
|
||
Config_SaveConfig();
|
||
|
||
// 返回上级菜单
|
||
Form_Return2_420();
|
||
}
|
||
|
||
void Form_421_Create()
|
||
{
|
||
char press[10];
|
||
|
||
if(formParam.caliIdx == 0)
|
||
sprintf(press, "%04d", dcBuff.configSensor.sensorPress.zeroValue);
|
||
else
|
||
sprintf(press, "%04d", dcBuff.configSensor.sensorEPress[0].zeroValue);
|
||
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
EditBox_Create(&form.Edit2, 0, 4, 4, press);
|
||
SelectBox_Hide(&form.Select3);
|
||
if(formParam.privilege == 2)
|
||
{
|
||
Button_Create(&form.Button1, 0, 5, " AUT");
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
}
|
||
else
|
||
{
|
||
Button_Hide(&form.Button1);
|
||
Button_Hide(&form.Button4);
|
||
EditBox_ReadOnly(&form.Edit2);
|
||
}
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton1 = Form_421_OnButton1;
|
||
form.OnButton4 = Form_421_OnButton4;
|
||
form.OnButton5 = Form_Return2_420;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// ********************************************
|
||
// 高压力标定界面
|
||
// ********************************************
|
||
|
||
// 确认按钮
|
||
void Form_422_OnButton4()
|
||
{
|
||
// 保存高压力
|
||
if(formParam.caliIdx == 0)
|
||
dcBuff.configSensor.sensorPress.fullValue = atoi(form.Edit2.text);
|
||
else
|
||
dcBuff.configSensor.sensorEPress[0].fullValue = atoi(form.Edit2.text);
|
||
|
||
// 保存
|
||
Config_SaveConfig();
|
||
|
||
// 返回上级菜单
|
||
Form_Return2_420();
|
||
}
|
||
|
||
void Form_422_Create()
|
||
{
|
||
char press[10];
|
||
|
||
if(formParam.caliIdx == 0)
|
||
sprintf(press, "%04d", dcBuff.configSensor.sensorPress.fullValue);
|
||
else
|
||
sprintf(press, "%04d", dcBuff.configSensor.sensorEPress[0].fullValue);
|
||
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
EditBox_Create(&form.Edit2, 0, 4, 4, press);
|
||
SelectBox_Hide(&form.Select3);
|
||
if(formParam.privilege == 2)
|
||
{
|
||
Button_Create(&form.Button1, 0, 5, " AUT");
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
}
|
||
else
|
||
{
|
||
Button_Hide(&form.Button1);
|
||
Button_Hide(&form.Button4);
|
||
EditBox_ReadOnly(&form.Edit2);
|
||
}
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton1 = Form_421_OnButton1;
|
||
form.OnButton4 = Form_422_OnButton4;
|
||
form.OnButton5 = Form_Return2_420;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// ********************************************
|
||
// 温度标定界面
|
||
// ********************************************
|
||
// 确认按钮
|
||
void Form_430_OnButton4()
|
||
{
|
||
// 保存选项序号
|
||
formParam.menuIdx[2] = form.Select3.idx;
|
||
|
||
switch(form.Select3.idx)
|
||
{
|
||
case 0: // 低温标定
|
||
Change_Form(FORM_ID_431);
|
||
break;
|
||
case 1: // 高温标定
|
||
Change_Form(FORM_ID_432);
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
void Form_430_Create()
|
||
{
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Hide(&form.Edit2);
|
||
if(formParam.caliIdx == 0)
|
||
SelectBox_Create(&form.Select3, 0, 4, 2, menu_430_items[dcBuff.configDisplay.op_USE_PT100_SENSOR], formParam.menuIdx[2]);
|
||
else
|
||
SelectBox_Create(&form.Select3, 0, 4, 2, menu_430_items[1], formParam.menuIdx[2]);
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton4 = Form_430_OnButton4;
|
||
form.OnButton5 = Form_Return2_400;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// 返回按钮
|
||
void Form_Return2_430()
|
||
{
|
||
Change_Form(FORM_ID_430);
|
||
}
|
||
|
||
// ********************************************
|
||
// 低温标定界面
|
||
// ********************************************
|
||
|
||
void Form_431_OnButton1()
|
||
{
|
||
// 自动采集温度AD值
|
||
if(Comm_Sample())
|
||
sprintf(form.Edit2.text, "%04d", dcBuff.sampleData.adExtTempr[formParam.caliIdx]);
|
||
|
||
form.cursorId = 2;
|
||
Form_SetFocus();
|
||
}
|
||
|
||
// 确认按钮
|
||
void Form_431_OnButton4()
|
||
{
|
||
if(formParam.caliIdx == 0 && !dcBuff.configDisplay.op_USE_PT100_SENSOR)
|
||
// 保存低温度
|
||
dcBuff.configSensor.sensorMTempr[formParam.caliIdx].zeroValue = atoi(form.Edit2.text);
|
||
else
|
||
// 保存校准温度
|
||
dcBuff.configSensor.sensorPTempr[formParam.caliIdx].calibrateT = atoi(form.Edit2.text);
|
||
|
||
// 保存
|
||
Config_SaveConfig();
|
||
|
||
// 返回上级菜单
|
||
Form_Return2_430();
|
||
}
|
||
|
||
void Form_431_Create()
|
||
{
|
||
char tempr[10];
|
||
|
||
if(formParam.caliIdx == 0 && !dcBuff.configDisplay.op_USE_PT100_SENSOR)
|
||
sprintf(tempr, "%04d", dcBuff.configSensor.sensorMTempr[formParam.caliIdx].zeroValue);
|
||
else
|
||
sprintf(tempr, "%04d", dcBuff.configSensor.sensorPTempr[formParam.caliIdx].calibrateT);
|
||
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
EditBox_Create(&form.Edit2, 0, 4, 4, tempr);
|
||
SelectBox_Hide(&form.Select3);
|
||
if(formParam.privilege == 2)
|
||
{
|
||
if(formParam.caliIdx == 0 && !dcBuff.configDisplay.op_USE_PT100_SENSOR)
|
||
Button_Create(&form.Button1, 0, 5, " AUT");
|
||
else
|
||
Button_Hide(&form.Button1);
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
}
|
||
else
|
||
{
|
||
Button_Hide(&form.Button1);
|
||
Button_Hide(&form.Button4);
|
||
EditBox_ReadOnly(&form.Edit2);
|
||
}
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
if(formParam.caliIdx == 0 && !dcBuff.configDisplay.op_USE_PT100_SENSOR)
|
||
form.OnButton1 = Form_431_OnButton1;
|
||
else
|
||
form.OnDrawOthers = Form_DispPoint1;
|
||
form.OnButton4 = Form_431_OnButton4;
|
||
form.OnButton5 = Form_Return2_430;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// ********************************************
|
||
// 高温标定界面
|
||
// ********************************************
|
||
|
||
void Form_432_OnButton1()
|
||
{
|
||
// 自动采集温度AD值
|
||
if(Comm_Sample())
|
||
{
|
||
if(formParam.caliIdx == 0 && !dcBuff.configDisplay.op_USE_PT100_SENSOR)
|
||
sprintf(form.Edit2.text, "%04d", dcBuff.sampleData.adExtTempr[formParam.caliIdx]);
|
||
else
|
||
{
|
||
if(dcBuff.configDisplay.op_DIFF_RESIST)
|
||
sprintf(form.Edit2.text, "%04d", (int16_t) dcBuff.sampleData.adExtTempr[formParam.caliIdx]); // 显示:Ω
|
||
else
|
||
sprintf(form.Edit2.text, "%04d", (int16_t) PT100_CalResit(dcBuff.sampleData.adExtTempr[formParam.caliIdx], 0)); // 显示:Ω
|
||
}
|
||
}
|
||
|
||
form.cursorId = 2;
|
||
Form_SetFocus();
|
||
}
|
||
|
||
// 确认按钮
|
||
void Form_432_OnButton4()
|
||
{
|
||
if(formParam.caliIdx == 0 && !dcBuff.configDisplay.op_USE_PT100_SENSOR)
|
||
// 保存高温度
|
||
dcBuff.configSensor.sensorMTempr[formParam.caliIdx].fullValue = atoi(form.Edit2.text);
|
||
else
|
||
// 保存校准电阻
|
||
dcBuff.configSensor.sensorPTempr[formParam.caliIdx].calibrateR = atoi(form.Edit2.text) * 10; // 保存:0.1Ω
|
||
|
||
// 保存
|
||
Config_SaveConfig();
|
||
|
||
// 返回上级菜单
|
||
Form_Return2_430();
|
||
}
|
||
|
||
void Form_432_Create()
|
||
{
|
||
char tempr[10];
|
||
|
||
if(formParam.caliIdx == 0 && !dcBuff.configDisplay.op_USE_PT100_SENSOR)
|
||
sprintf(tempr, "%04d", dcBuff.configSensor.sensorMTempr[formParam.caliIdx].fullValue);
|
||
else
|
||
sprintf(tempr, "%04d", dcBuff.configSensor.sensorPTempr[formParam.caliIdx].calibrateR / 10); // 显示:Ω
|
||
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
EditBox_Create(&form.Edit2, 0, 4, 4, tempr);
|
||
SelectBox_Hide(&form.Select3);
|
||
if(formParam.privilege == 2)
|
||
{
|
||
Button_Create(&form.Button1, 0, 5, " AUT");
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
}
|
||
else
|
||
{
|
||
Button_Hide(&form.Button1);
|
||
Button_Hide(&form.Button4);
|
||
EditBox_ReadOnly(&form.Edit2);
|
||
}
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
if(formParam.caliIdx == 0 && dcBuff.configDisplay.op_USE_PT100_SENSOR)
|
||
{
|
||
//form.OnDrawOthers = Form_DispPoint1; // 不显示小数点
|
||
}
|
||
form.OnButton1 = Form_432_OnButton1;
|
||
form.OnButton4 = Form_432_OnButton4;
|
||
form.OnButton5 = Form_Return2_430;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// ********************************************
|
||
// 量程设置界面
|
||
// ********************************************
|
||
|
||
// 确认按钮
|
||
void Form_500_OnButton4()
|
||
{
|
||
// 保存选项序号
|
||
formParam.menuIdx[1] = form.Select3.idx;
|
||
|
||
switch(form.Select3.idx)
|
||
{
|
||
case 0: // 电容量程
|
||
Change_Form(FORM_ID_510);
|
||
break;
|
||
case 1: // 压力量程
|
||
case 2:
|
||
formParam.caliIdx = form.Select3.idx - 1;
|
||
Change_Form(FORM_ID_520);
|
||
break;
|
||
case 3: // 温度量程
|
||
formParam.caliIdx = form.Select3.idx - 3;
|
||
Change_Form(FORM_ID_530);
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
void Form_500_Create()
|
||
{
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Hide(&form.Edit2);
|
||
// PT100温度传感器不设置量程
|
||
SelectBox_Create(&form.Select3, 0, 4, dcBuff.configDisplay.op_USE_PT100_SENSOR ? 3 : 4, menu_500_items[dcBuff.configDisplay.op_USE_CAPACITY_SENSOR], formParam.menuIdx[1]);
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton4 = Form_500_OnButton4;
|
||
form.OnButton5 = Form_Return2_000;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// 返回按钮
|
||
void Form_Return2_500()
|
||
{
|
||
formParam.menuIdx[2] = 0;
|
||
Change_Form(FORM_ID_500);
|
||
}
|
||
|
||
// ********************************************
|
||
// 电容设置界面
|
||
// ********************************************
|
||
|
||
// 确认按钮
|
||
void Form_510_OnButton4()
|
||
{
|
||
// 保存选项序号
|
||
formParam.menuIdx[2] = form.Select3.idx;
|
||
|
||
switch(form.Select3.idx)
|
||
{
|
||
case 0: // 底电容设置
|
||
Change_Form(FORM_ID_511);
|
||
break;
|
||
case 1: // 增长电容设置
|
||
Change_Form(FORM_ID_512);
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
void Form_510_Create()
|
||
{
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Hide(&form.Edit2);
|
||
SelectBox_Create(&form.Select3, 0, 4, 2, menu_510_items[dcBuff.configDisplay.op_USE_CAPACITY_SENSOR], formParam.menuIdx[2]);
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton4 = Form_510_OnButton4;
|
||
if(!dcBuff.configDisplay.op_LEVEL_SENSOR_ONLY)
|
||
form.OnButton5 = Form_Return2_500;
|
||
else
|
||
form.OnButton5 = Form_Return2_000;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// 返回按钮
|
||
void Form_Return2_510()
|
||
{
|
||
Change_Form(FORM_ID_510);
|
||
}
|
||
|
||
// ********************************************
|
||
// 底电容设置界面
|
||
// ********************************************
|
||
|
||
void Form_511_OnButton1()
|
||
{
|
||
// 自动采集电容值
|
||
if(Comm_Sample())
|
||
sprintf(form.Edit2.text, "%04d", (int16_t) (dcBuff.sampleData.diff * 10));
|
||
|
||
form.cursorId = 2;
|
||
Form_SetFocus();
|
||
}
|
||
|
||
// 确认按钮
|
||
void Form_511_OnButton4()
|
||
{
|
||
// 保存底电容
|
||
if(!dcBuff.configDisplay.op_USE_CAPACITY_SENSOR)
|
||
dcBuff.configSensor.sensorDPress.lowRange = atoi(form.Edit2.text);
|
||
else
|
||
dcBuff.configSensor.sensorCap.baseC = atoi(form.Edit2.text);
|
||
|
||
// 保存
|
||
Config_SaveConfig();
|
||
|
||
// 返回上级菜单
|
||
Form_Return2_510();
|
||
}
|
||
|
||
void Form_511_Create()
|
||
{
|
||
char baseC[10];
|
||
|
||
if(!dcBuff.configDisplay.op_USE_CAPACITY_SENSOR)
|
||
sprintf(baseC, "%04d", dcBuff.configSensor.sensorDPress.lowRange);
|
||
else
|
||
sprintf(baseC, "%04d", dcBuff.configSensor.sensorCap.baseC);
|
||
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
EditBox_Create(&form.Edit2, 0, 4, 4, baseC);
|
||
SelectBox_Hide(&form.Select3);
|
||
if(formParam.privilege == 2)
|
||
{
|
||
if(!dcBuff.configDisplay.op_USE_CAPACITY_SENSOR)
|
||
Button_Hide(&form.Button1);
|
||
else
|
||
Button_Create(&form.Button1, 0, 5, " AUT");
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
}
|
||
else
|
||
{
|
||
Button_Hide(&form.Button1);
|
||
Button_Hide(&form.Button4);
|
||
EditBox_ReadOnly(&form.Edit2);
|
||
}
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton1 = Form_511_OnButton1;
|
||
form.OnButton4 = Form_511_OnButton4;
|
||
form.OnButton5 = Form_Return2_510;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
if(dcBuff.configDisplay.op_USE_CAPACITY_SENSOR)
|
||
form.OnDrawOthers = Form_DispPoint1;
|
||
}
|
||
|
||
// ********************************************
|
||
// 增长电容设置界面
|
||
// ********************************************
|
||
|
||
void Form_512_OnButton1()
|
||
{
|
||
const float e = e_Src[dcBuff.configBottle.source];
|
||
uint32_t d = dcBuff.configBottle.diameter;
|
||
uint16_t refC;
|
||
|
||
if(dcBuff.configBottle.type == BOTTLE_TYPE_STAND)
|
||
d = dcBuff.configBottle.len + dcBuff.configBottle.lenExtra * 2 + dcBuff.configBottle.diameter / 2;
|
||
|
||
// 自动计算增长电容
|
||
refC = (uint16_t) (Adc_Sensor_Tables[0].k * (d - Adc_Sensor_Tables[0].nl_len) * (e - 1) * 10);
|
||
sprintf(form.Edit2.text, "%04d", refC);
|
||
|
||
form.cursorId = 2;
|
||
Form_SetFocus();
|
||
}
|
||
|
||
// 确认按钮
|
||
void Form_512_OnButton4()
|
||
{
|
||
// 保存底电容
|
||
if(!dcBuff.configDisplay.op_USE_CAPACITY_SENSOR)
|
||
dcBuff.configSensor.sensorDPress.highRange = atoi(form.Edit2.text);
|
||
else
|
||
dcBuff.configSensor.sensorCap.refC = atoi(form.Edit2.text);
|
||
|
||
// 保存
|
||
Config_SaveConfig();
|
||
|
||
// 返回上级菜单
|
||
Form_Return2_510();
|
||
}
|
||
|
||
void Form_512_Create()
|
||
{
|
||
char refC[10];
|
||
|
||
if(!dcBuff.configDisplay.op_USE_CAPACITY_SENSOR)
|
||
sprintf(refC, "%04d", dcBuff.configSensor.sensorDPress.highRange);
|
||
else
|
||
sprintf(refC, "%04d", dcBuff.configSensor.sensorCap.refC);
|
||
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
EditBox_Create(&form.Edit2, 0, 4, 4, refC);
|
||
SelectBox_Hide(&form.Select3);
|
||
if(formParam.privilege == 2)
|
||
{
|
||
if(!dcBuff.configDisplay.op_USE_CAPACITY_SENSOR)
|
||
Button_Hide(&form.Button1);
|
||
else
|
||
Button_Create(&form.Button1, 0, 5, " AUT");
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
}
|
||
else
|
||
{
|
||
Button_Hide(&form.Button1);
|
||
Button_Hide(&form.Button4);
|
||
EditBox_ReadOnly(&form.Edit2);
|
||
}
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton1 = Form_512_OnButton1;
|
||
form.OnButton4 = Form_512_OnButton4;
|
||
form.OnButton5 = Form_Return2_510;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
if(dcBuff.configDisplay.op_USE_CAPACITY_SENSOR)
|
||
form.OnDrawOthers = Form_DispPoint1;
|
||
}
|
||
|
||
// ********************************************
|
||
// 压力量程设置界面
|
||
// ********************************************
|
||
// 确认按钮
|
||
void Form_520_OnButton4()
|
||
{
|
||
// 保存选项序号
|
||
formParam.menuIdx[2] = form.Select3.idx;
|
||
|
||
switch(form.Select3.idx)
|
||
{
|
||
case 0: // 压力低量程设置
|
||
Change_Form(FORM_ID_521);
|
||
break;
|
||
case 1: // 压力高量程设置
|
||
Change_Form(FORM_ID_522);
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
void Form_520_Create()
|
||
{
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Hide(&form.Edit2);
|
||
SelectBox_Create(&form.Select3, 0, 4, 2, menu_520_items, formParam.menuIdx[2]);
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton4 = Form_520_OnButton4;
|
||
form.OnButton5 = Form_Return2_500;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// 返回按钮
|
||
void Form_Return2_520()
|
||
{
|
||
Change_Form(FORM_ID_520);
|
||
}
|
||
|
||
// ********************************************
|
||
// 压力低量程设置界面
|
||
// ********************************************
|
||
// 确认按钮
|
||
void Form_521_OnButton4()
|
||
{
|
||
// 保存压力低量程
|
||
if(formParam.caliIdx == 0)
|
||
dcBuff.configSensor.sensorPress.lowRange = atoi(form.Edit2.text) * 10;
|
||
else
|
||
dcBuff.configSensor.sensorEPress[0].lowRange = atoi(form.Edit2.text) * 10;
|
||
|
||
// 保存
|
||
Config_SaveConfig();
|
||
|
||
// 返回上级菜单
|
||
Form_Return2_520();
|
||
}
|
||
|
||
void Form_521_Create()
|
||
{
|
||
char range[10];
|
||
|
||
if(formParam.caliIdx == 0)
|
||
sprintf(range, "%03d", dcBuff.configSensor.sensorPress.lowRange / 10);
|
||
else
|
||
sprintf(range, "%03d", dcBuff.configSensor.sensorEPress[0].lowRange / 10);
|
||
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Create(&form.Edit2, 0, 3, 3, range);
|
||
SelectBox_Hide(&form.Select3);
|
||
if(formParam.privilege == 2)
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
else
|
||
{
|
||
Button_Hide(&form.Button4);
|
||
EditBox_ReadOnly(&form.Edit2);
|
||
}
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnDrawOthers = Form_DispPoint3;
|
||
form.OnButton4 = Form_521_OnButton4;
|
||
form.OnButton5 = Form_Return2_520;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// ********************************************
|
||
// 压力高量程设置界面
|
||
// ********************************************
|
||
// 确认按钮
|
||
void Form_522_OnButton4()
|
||
{
|
||
// 保存压力高量程
|
||
if(formParam.caliIdx == 0)
|
||
dcBuff.configSensor.sensorPress.highRange = atoi(form.Edit2.text) * 10;
|
||
else
|
||
dcBuff.configSensor.sensorEPress[0].highRange = atoi(form.Edit2.text) * 10;
|
||
|
||
// 保存
|
||
Config_SaveConfig();
|
||
|
||
// 返回上级菜单
|
||
Form_Return2_520();
|
||
}
|
||
|
||
void Form_522_Create()
|
||
{
|
||
char range[10];
|
||
|
||
if(formParam.caliIdx == 0)
|
||
sprintf(range, "%03d", dcBuff.configSensor.sensorPress.highRange / 10);
|
||
else
|
||
sprintf(range, "%03d", dcBuff.configSensor.sensorEPress[0].highRange / 10);
|
||
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Create(&form.Edit2, 0, 3, 3, range);
|
||
SelectBox_Hide(&form.Select3);
|
||
if(formParam.privilege == 2)
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
else
|
||
{
|
||
Button_Hide(&form.Button4);
|
||
EditBox_ReadOnly(&form.Edit2);
|
||
}
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnDrawOthers = Form_DispPoint3;
|
||
form.OnButton4 = Form_522_OnButton4;
|
||
form.OnButton5 = Form_Return2_520;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// ********************************************
|
||
// 温度量程设置界面
|
||
// ********************************************
|
||
// 确认按钮
|
||
void Form_530_OnButton4()
|
||
{
|
||
// 保存选项序号
|
||
formParam.menuIdx[2] = form.Select3.idx;
|
||
|
||
switch(form.Select3.idx)
|
||
{
|
||
case 0: // 温度低量程设置
|
||
Change_Form(FORM_ID_531);
|
||
break;
|
||
case 1: // 温度高量程设置
|
||
Change_Form(FORM_ID_532);
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
void Form_530_Create()
|
||
{
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Hide(&form.Edit2);
|
||
SelectBox_Create(&form.Select3, 0, 4, 2, menu_530_items, formParam.menuIdx[2]);
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton4 = Form_530_OnButton4;
|
||
form.OnButton5 = Form_Return2_500;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// 返回按钮
|
||
void Form_Return2_530()
|
||
{
|
||
Change_Form(FORM_ID_530);
|
||
}
|
||
|
||
// ********************************************
|
||
// 温度低量程设置界面
|
||
// ********************************************
|
||
void Form_531_OnDrawOthers()
|
||
{
|
||
Disp_DispChar(0, '-');
|
||
}
|
||
|
||
// 确认按钮
|
||
void Form_531_OnButton4()
|
||
{
|
||
// 保存温度低量程
|
||
dcBuff.configSensor.sensorMTempr[formParam.caliIdx].lowRange = -atoi(form.Edit2.text);
|
||
|
||
// 保存
|
||
Config_SaveConfig();
|
||
|
||
// 返回上级菜单
|
||
Form_Return2_530();
|
||
}
|
||
|
||
void Form_531_Create()
|
||
{
|
||
char range[10];
|
||
|
||
sprintf(range, "%03d", -dcBuff.configSensor.sensorMTempr[formParam.caliIdx].lowRange);
|
||
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Create(&form.Edit2, 0, 3, 3, range);
|
||
SelectBox_Hide(&form.Select3);
|
||
if(formParam.privilege == 2)
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
else
|
||
{
|
||
Button_Hide(&form.Button4);
|
||
EditBox_ReadOnly(&form.Edit2);
|
||
}
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnDrawOthers = Form_531_OnDrawOthers;
|
||
form.OnButton4 = Form_531_OnButton4;
|
||
form.OnButton5 = Form_Return2_530;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// ********************************************
|
||
// 温度高量程设置界面
|
||
// ********************************************
|
||
// 确认按钮
|
||
void Form_532_OnButton4()
|
||
{
|
||
// 保存温度高量程
|
||
dcBuff.configSensor.sensorMTempr[formParam.caliIdx].highRange = atoi(form.Edit2.text);
|
||
|
||
// 保存
|
||
Config_SaveConfig();
|
||
|
||
// 返回上级菜单
|
||
Form_Return2_530();
|
||
}
|
||
|
||
void Form_532_Create()
|
||
{
|
||
char range[10];
|
||
|
||
sprintf(range, "%03d", dcBuff.configSensor.sensorMTempr[formParam.caliIdx].highRange);
|
||
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Create(&form.Edit2, 0, 3, 3, range);
|
||
SelectBox_Hide(&form.Select3);
|
||
if(formParam.privilege == 2)
|
||
Button_Create(&form.Button4, 0, 5, " YES");
|
||
else
|
||
{
|
||
Button_Hide(&form.Button4);
|
||
EditBox_ReadOnly(&form.Edit2);
|
||
}
|
||
Button_Create(&form.Button5, 0, 5, " ESC");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton4 = Form_532_OnButton4;
|
||
form.OnButton5 = Form_Return2_530;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// ********************************************
|
||
// 系统信息界面
|
||
// ********************************************
|
||
// 复位按钮
|
||
void Form_600_OnButton5()
|
||
{
|
||
// 复位
|
||
VCC_GSM_OFF();
|
||
delay_ms(200);
|
||
NVIC_SystemReset();
|
||
}
|
||
|
||
void Form_600_OnKey(u8 key)
|
||
{
|
||
if(key == KEY_DOWN)
|
||
{
|
||
if(formParam.infoPage >= 1)
|
||
formParam.infoPage = 0;
|
||
else
|
||
formParam.infoPage++;
|
||
|
||
if(formParam.infoPage == 0)
|
||
sprintf(form.Edit2.text, "%02d%02d", dcBuff.displayInfo.softDate.month, dcBuff.displayInfo.softDate.day);
|
||
else
|
||
sprintf(form.Edit2.text, "%3d", dcBuff.displayInfo.softVer.minor);
|
||
}
|
||
}
|
||
|
||
void Form_600_Create()
|
||
{
|
||
char version[8];
|
||
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
// 默认显示软件版本
|
||
formParam.infoPage = 0;
|
||
|
||
sprintf(version, "%02d%02d", dcBuff.displayInfo.softDate.month, dcBuff.displayInfo.softDate.day);
|
||
|
||
// 控件
|
||
Button_Create(&form.Button1, 0, 5, " ESC");
|
||
EditBox_Create(&form.Edit2, 0, 4, 4, version);
|
||
EditBox_ReadOnly(&form.Edit2);
|
||
SelectBox_Hide(&form.Select3);
|
||
Button_Hide(&form.Button4);
|
||
Button_Create(&form.Button5, 0, 5, " RST");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnButton1 = Form_Return2_000;
|
||
form.OnButton5 = Form_600_OnButton5;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
form.OnKey = Form_600_OnKey;
|
||
}
|
||
|
||
// ********************************************
|
||
// 查看真空度界面
|
||
// ********************************************
|
||
void Form_700_OnDrawOthers()
|
||
{
|
||
// 提示真空度
|
||
Disp_SwitchVacuUnit(UNIT_PA);
|
||
// 显示小数点
|
||
Disp_Fld1PointOff();
|
||
if(form.cursorId == 2)
|
||
{
|
||
if(dcBuff.sampleData.vacuum[0].staVacuum == VACUUM_STATUS_OK
|
||
&& dcBuff.sampleData.vacuum[0].vacuum > 0.00999999
|
||
&& dcBuff.sampleData.vacuum[0].vacuum <= 99.99999999)
|
||
{
|
||
Disp_Fld1PointOn(2);
|
||
}
|
||
}
|
||
}
|
||
|
||
void Form_700_OnButton5()
|
||
{
|
||
s8 text[10];
|
||
|
||
while(Sample_Busy())
|
||
osDelay(1);
|
||
|
||
Config_Vacuum_Request = 1; // 强制测量真空度
|
||
Config_Sample_Request = 1;
|
||
// 采集数据
|
||
Sample_Notify();
|
||
while(Config_Sample_Request)
|
||
osDelay(1);
|
||
|
||
if(dcBuff.sampleData.vacuum[0].staVacuum == VACUUM_STATUS_COMM_FAULT)
|
||
strcpy(text, " ---");
|
||
else if(dcBuff.sampleData.vacuum[0].staVacuum == VACUUM_STATUS_FAULT || dcBuff.sampleData.vacuum[0].vacuum > 99.99999999)
|
||
strcpy(text, " +EE");
|
||
else if(dcBuff.sampleData.vacuum[0].vacuum > 0.00999999)
|
||
{
|
||
sprintf(text, " %04d", (uint16_t) (dcBuff.sampleData.vacuum[0].vacuum * 100));
|
||
// 至少要显示3位数字
|
||
if(text[1] == '0')
|
||
text[1] = ' ';
|
||
}
|
||
else
|
||
strcpy(text, " -EE");
|
||
|
||
strcpy(form.Edit2.text, text);
|
||
|
||
form.cursorId = 2; // 光标到返回按钮
|
||
Form_SetFocus();
|
||
}
|
||
|
||
void Form_700_Create()
|
||
{
|
||
s8 text[10];
|
||
|
||
memset(&form, 0, sizeof(form));
|
||
|
||
if(dcBuff.sampleData.vacuum[0].staVacuum == VACUUM_STATUS_COMM_FAULT)
|
||
strcpy(text, " ---");
|
||
else if(dcBuff.sampleData.vacuum[0].staVacuum == VACUUM_STATUS_FAULT || dcBuff.sampleData.vacuum[0].vacuum > 99.99999999)
|
||
strcpy(text, " +EE");
|
||
else if(dcBuff.sampleData.vacuum[0].vacuum > 0.00999999)
|
||
{
|
||
sprintf(text, " %04d", (uint16_t) (dcBuff.sampleData.vacuum[0].vacuum * 100));
|
||
// 至少要显示3位数字
|
||
if(text[1] == '0')
|
||
text[1] = ' ';
|
||
}
|
||
else
|
||
strcpy(text, " -EE");
|
||
|
||
// 控件
|
||
Button_Hide(&form.Button1);
|
||
EditBox_Create(&form.Edit2, 0, 5, 5, text);
|
||
EditBox_ReadOnly(&form.Edit2);
|
||
SelectBox_Hide(&form.Select3);
|
||
Button_Create(&form.Button4, 0, 5, " ESC");
|
||
Button_Create(&form.Button5, 0, 5, " AUT");
|
||
|
||
Form_timeout = OPERATE_TIMEOUT;
|
||
|
||
// 事件回调
|
||
form.OnDrawOthers = Form_700_OnDrawOthers;
|
||
form.OnButton4 = Form_Return2Meter;
|
||
form.OnButton5 = Form_700_OnButton5;
|
||
form.OnTimeOut = Form_Return2Meter;
|
||
}
|
||
|
||
// ********************************************
|
||
// 切换各个功能界面
|
||
// ********************************************
|
||
void Change_Form(TForm_Id formId)
|
||
{
|
||
// 清屏
|
||
Disp_Clear();
|
||
|
||
switch(formId)
|
||
{
|
||
case FORM_ID_START: // 启动界面
|
||
Form_Start_Create();
|
||
break;
|
||
case FORM_ID_METER: // 表盘显示
|
||
Form_Meter_Create();
|
||
break;
|
||
case FORM_ID_PWD: // 输入密码
|
||
Form_Pwd_Create();
|
||
break;
|
||
case FORM_ID_000: // 设置菜单
|
||
Form_000_Create();
|
||
break;
|
||
case FORM_ID_100: // PSN设置
|
||
Form_100_Create();
|
||
break;
|
||
case FORM_ID_200: // 储罐信息设置
|
||
Form_200_Create();
|
||
break;
|
||
case FORM_ID_210: // 储罐类型设置
|
||
Form_210_Create();
|
||
break;
|
||
case FORM_ID_220: // 介质设置
|
||
Form_220_Create();
|
||
break;
|
||
case FORM_ID_230: // 长度设置
|
||
Form_230_Create();
|
||
break;
|
||
case FORM_ID_240: // 直径设置
|
||
Form_240_Create();
|
||
break;
|
||
case FORM_ID_250: // 充装比设置
|
||
Form_250_Create();
|
||
break;
|
||
case FORM_ID_251: // 低液位百分比设置
|
||
Form_251_Create();
|
||
break;
|
||
case FORM_ID_260: // 密度设置
|
||
Form_260_Create();
|
||
break;
|
||
case FORM_ID_270: // 压力报警低点设置
|
||
Form_270_Create();
|
||
break;
|
||
case FORM_ID_271: // 压力报警高点设置
|
||
Form_271_Create();
|
||
break;
|
||
case FORM_ID_272: // 压力报警低点设置
|
||
Form_272_Create();
|
||
break;
|
||
case FORM_ID_273: // 压力报警高点设置
|
||
Form_273_Create();
|
||
break;
|
||
case FORM_ID_280: // 容积显示
|
||
Form_280_Create();
|
||
break;
|
||
case FORM_ID_285: // 4~20mA输出液位高度
|
||
Form_285_Create();
|
||
break;
|
||
case FORM_ID_300: // 上报周期设置
|
||
Form_300_Create();
|
||
break;
|
||
case FORM_ID_310: // 采集周期设置
|
||
Form_310_Create();
|
||
break;
|
||
case FORM_ID_320: // 发送周期设置
|
||
Form_320_Create();
|
||
break;
|
||
case FORM_ID_400: // 标定界面
|
||
Form_400_Create();
|
||
break;
|
||
case FORM_ID_410: // 电容标定
|
||
Form_410_Create();
|
||
break;
|
||
case FORM_ID_411: // C1(100pF)标定
|
||
Form_411_Create();
|
||
break;
|
||
case FORM_ID_412: // C2(400pF)标定
|
||
Form_412_Create();
|
||
break;
|
||
case FORM_ID_413: // 偏移(零点)标定
|
||
Form_413_Create();
|
||
break;
|
||
case FORM_ID_420: // 压力标定
|
||
Form_420_Create();
|
||
break;
|
||
case FORM_ID_421: // 低压力标定
|
||
Form_421_Create();
|
||
break;
|
||
case FORM_ID_422: // 高压力标定
|
||
Form_422_Create();
|
||
break;
|
||
case FORM_ID_430: // 温度标定
|
||
Form_430_Create();
|
||
break;
|
||
case FORM_ID_431: // 低温度标定
|
||
Form_431_Create();
|
||
break;
|
||
case FORM_ID_432: // 高温度标定
|
||
Form_432_Create();
|
||
break;
|
||
case FORM_ID_500: // 量程设置
|
||
Form_500_Create();
|
||
break;
|
||
case FORM_ID_510: // 电容量程
|
||
Form_510_Create();
|
||
break;
|
||
case FORM_ID_511: // 底电容设置
|
||
Form_511_Create();
|
||
break;
|
||
case FORM_ID_512: // 增长电容设置
|
||
Form_512_Create();
|
||
break;
|
||
case FORM_ID_520: // 压力量程
|
||
Form_520_Create();
|
||
break;
|
||
case FORM_ID_521: // 压力低量程设置
|
||
Form_521_Create();
|
||
break;
|
||
case FORM_ID_522: // 压力高量程设置
|
||
Form_522_Create();
|
||
break;
|
||
case FORM_ID_530: // 温度量程
|
||
Form_530_Create();
|
||
break;
|
||
case FORM_ID_531: // 温度低量程设置
|
||
Form_531_Create();
|
||
break;
|
||
case FORM_ID_532: // 温度高量程设置
|
||
Form_532_Create();
|
||
break;
|
||
case FORM_ID_600: // 系统信息
|
||
Form_600_Create();
|
||
break;
|
||
case FORM_ID_700: // 查看真空度
|
||
Form_700_Create();
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
|
||
// 第一个控件设置焦点
|
||
Form_FocusFirst();
|
||
|
||
// 重置超时计数
|
||
Form_ResetTimer();
|
||
}
|
||
|
||
void Form_Start()
|
||
{
|
||
// 初始化
|
||
memset(&formParam, 0, sizeof(formParam));
|
||
|
||
// 检查合法性
|
||
Check_L_Unit(KEY_UP);
|
||
|
||
// 启动界面
|
||
Change_Form(FORM_ID_START);
|
||
}
|
||
|
||
uint32_t Comm_Sample()
|
||
{
|
||
while(Sample_Busy())
|
||
osDelay(1);
|
||
|
||
Config_Sample_Request = 1;
|
||
// 采集数据
|
||
Sample_Notify();
|
||
|
||
while(Config_Sample_Request)
|
||
osDelay(1);
|
||
|
||
return TRUE;
|
||
}
|