📄 comm.c
字号:
CnvtFlt();
unionFlt.Flt = envionment_variables.Max_humidity;
CnvtFlt();
//发送温度零点
unionFlt.Flt = envionment_variables.Zero_temperature;
CnvtFlt();
//发送湿度零点
unionFlt.Flt = envionment_variables.Zero_humidity;
CnvtFlt();
//发送温度电流输出类型
unionFlt.Flt = (float)envionment_variables.TC_CurrentType;
CnvtFlt();
//发送湿度电流输出类型
unionFlt.Flt = (float)envionment_variables.RH_CurrentType;
CnvtFlt();
}
else if(ConfigRXBuffer[2] == 0xAA)//设置温湿度量程
{
ConfigTXBuffer[ucConfigTXCharCount++] = ConfigRXBuffer[2];
//得到温度的 程
GetNum = 4;
GetFlt(GetNum);
envionment_variables.Mini_temperature = unionFlt.Flt;
GetNum += 4;
GetFlt(GetNum);
envionment_variables.Max_temperature = unionFlt.Flt;
GetNum += 4;
//得到湿度的量程
GetFlt(GetNum);
envionment_variables.Mini_humidity = unionFlt.Flt;
GetNum += 4;
GetFlt(GetNum);
envionment_variables.Max_humidity = unionFlt.Flt;
GetNum += 4;
//设置温度零点
GetFlt(GetNum);
envionment_variables.Zero_temperature = unionFlt.Flt;
GetNum += 4;
//设置湿度零点
GetFlt(GetNum);
envionment_variables.Zero_humidity = unionFlt.Flt;
GetNum += 4;
//设置温度电流输出类型
GetFlt(GetNum);
envionment_variables.TC_CurrentType = (U8)unionFlt.Flt ;
GetNum += 4;
GetFlt(GetNum);
//发设置湿度电流输出类型
envionment_variables.RH_CurrentType = (U8)unionFlt.Flt;
//保存设置的值
WriteSystemVar(1);
ReadSystemVar(1);
}
MakeConfigParity();
StartConfigTX();
}
void ProcessConfigCmd03()
{
U8 GetNum;
ucConfigTXCharCount = 0;
ConfigTXBuffer[ucConfigTXCharCount++] = 0xFF;
ConfigTXBuffer[ucConfigTXCharCount++] = 0x03;
if(ConfigRXBuffer[2] == 0x55) //恢复出厂设置
{
ConfigTXBuffer[ucConfigTXCharCount++] = 0x02;
ReadFacSystemVar();
WriteSystemVar(1);
ConfigTXBuffer[ucConfigTXCharCount++] = ConfigRXBuffer[2];
//发送温度量程
unionFlt.Flt = envionment_variables.Mini_temperature;
CnvtFlt();
unionFlt.Flt = envionment_variables.Max_temperature;
CnvtFlt();
//发送湿度量程
unionFlt.Flt = envionment_variables.Mini_humidity;
CnvtFlt();
unionFlt.Flt = envionment_variables.Max_humidity;
CnvtFlt();
//发送温度零点
unionFlt.Flt = envionment_variables.Zero_temperature;
CnvtFlt();
//发送湿度零点
unionFlt.Flt = envionment_variables.Zero_humidity;
CnvtFlt();
//发送温度电流输出类型
unionFlt.Flt = (float)envionment_variables.TC_CurrentType;
CnvtFlt();
//发送湿度电流输出类型
unionFlt.Flt = (float)envionment_variables.RH_CurrentType;
CnvtFlt();
}
else if(ConfigRXBuffer[2] == 0xAA) //保存出厂设置
{
ConfigTXBuffer[ucConfigTXCharCount++] = 0x03;
ConfigTXBuffer[ucConfigTXCharCount++] = ConfigRXBuffer[2];
//得到温度的 程
GetNum = 4;
GetFlt(GetNum);
envionment_variables.Mini_temperature = unionFlt.Flt;
GetNum += 4;
GetFlt(GetNum);
envionment_variables.Max_temperature = unionFlt.Flt;
GetNum += 4;
//得到湿度的量程
GetFlt(GetNum);
envionment_variables.Mini_humidity = unionFlt.Flt;
GetNum += 4;
GetFlt(GetNum);
envionment_variables.Max_humidity = unionFlt.Flt;
GetNum += 4;
//设置温度零点
GetFlt(GetNum);
envionment_variables.Zero_temperature = unionFlt.Flt;
GetNum += 4;
//设置湿度零点
GetFlt(GetNum);
envionment_variables.Zero_humidity = unionFlt.Flt;
GetNum += 4;
//设置温度电流输出类型
GetFlt(GetNum);
envionment_variables.TC_CurrentType = (U8)unionFlt.Flt ;
GetNum += 4;
GetFlt(GetNum);
//发设置湿度电流输出类型
envionment_variables.RH_CurrentType = (U8)unionFlt.Flt;
//保存设置的值
WriteFacSystemVar();
}
MakeConfigParity();
StartConfigTX();
}
//用于电流修正
void ProcessConfigCmd04()
{
U8 GetNum,Index;
float TestCurrent;
ucConfigTXCharCount = 0;
ConfigTXBuffer[ucConfigTXCharCount++] = 0xFF;
ConfigTXBuffer[ucConfigTXCharCount++] = 0x03;
ConfigTXBuffer[ucConfigTXCharCount++] = 0x04;
if(ConfigRXBuffer[3] == 0x55) //读取电流的 AD吗
{
ConfigTXBuffer[ucConfigTXCharCount++] = ConfigRXBuffer[3];
//
if((ConfigRXBuffer[2] >= 0x01) && (ConfigRXBuffer[2] <= 0x09))//温度电流标定
{
unionFlt.Flt = envionment_variables.TCDATable[ConfigRXBuffer[2] - 1];
}
else if((ConfigRXBuffer[2] >= 0x0A ) && (ConfigRXBuffer[2] <= 0x11))//温度电流测试
{
Index = ConfigRXBuffer[2] - 0x0A;
TestCurrent = envionment_variables.TCDATable[Index] - envionment_variables.TCDATable[Index+1];
TestCurrent = TestCurrent/2;
TestCurrent = envionment_variables.TCDATable[Index] - TestCurrent;
TBCCR2 = (int)TestCurrent;
}
else if((ConfigRXBuffer[2] >= 0x21) && (ConfigRXBuffer[2] <= 0x29))//湿度电流标定
{
unionFlt.Flt = envionment_variables.RHDATable[ConfigRXBuffer[2] - 0x21];
}
else if((ConfigRXBuffer[2] >= 0x2A ) && (ConfigRXBuffer[2] <= 0x31))//温度电流测试
{
Index = ConfigRXBuffer[2] - 0x2A;
TestCurrent = envionment_variables.RHDATable[Index] - envionment_variables.RHDATable[Index+1];
TestCurrent = TestCurrent/2;
TestCurrent = envionment_variables.RHDATable[Index] - TestCurrent;
TBCCR1 = (int)TestCurrent;
}
if((ConfigRXBuffer[2] >= 0x01) && (ConfigRXBuffer[2] <= 0x09))//温度电流标定
{
envionment_variables.TCPWM_OUTNUM = (int)unionFlt.Flt;
TBCCR2 = envionment_variables.TCPWM_OUTNUM;
}
else if((ConfigRXBuffer[2] >= 0x21) && (ConfigRXBuffer[2] <= 0x29))//湿度电流标定
{
envionment_variables.RHPWM_OUTNUM = (int)unionFlt.Flt;
TBCCR1 = envionment_variables.RHPWM_OUTNUM;
}
else
{
}
LoopFlag = 0;
CnvtFlt();
}
else if(ConfigRXBuffer[3] == 0xAA) //标定电流AD
{
ConfigTXBuffer[ucConfigTXCharCount++] = ConfigRXBuffer[3];
GetNum = 4;
GetFlt(GetNum);
if((ConfigRXBuffer[2] >= 0x01) && (ConfigRXBuffer[2] <= 0x09))//温度电流标定
{
envionment_variables.TCPWM_OUTNUM = (int)unionFlt.Flt;
TBCCR2 = envionment_variables.TCPWM_OUTNUM;
}
else if((ConfigRXBuffer[2] >= 0x21) && (ConfigRXBuffer[2] <= 0x29))//湿度电流标定
{
envionment_variables.RHPWM_OUTNUM = (int)unionFlt.Flt;
TBCCR1 = envionment_variables.RHPWM_OUTNUM;
}
else
{
}
LoopFlag = 0;
// TBCCR1 = envionment_variables.TCPWM_OUTNUM;
}
else if(ConfigRXBuffer[3] == 0x5A) //保存标定的 电流AD吗
{
ConfigTXBuffer[ucConfigTXCharCount++] = ConfigRXBuffer[3];
GetNum = 4;
GetFlt(GetNum);
if((ConfigRXBuffer[2] >= 0x01) && (ConfigRXBuffer[2] <= 0x09))//温度电流标定
{
// envionment_variables.TC_DA4mA = (int)unionFlt.Flt;
//WriteEEPROM(TC_DA4mA_Addr, (unsigned char *)&envionment_variables.TC_DA4mA, 4);
envionment_variables.TCDATable[ConfigRXBuffer[2] - 1] = (int)unionFlt.Flt; ;
WriteEEPROM(TCDATable_Addr+(ConfigRXBuffer[2] - 1)*2, (unsigned char *)&envionment_variables.TCDATable[ConfigRXBuffer[2] - 1], 2);
}
else if((ConfigRXBuffer[2] >= 0x21) && (ConfigRXBuffer[2] <= 0x29))//温度电流标定
{
envionment_variables.RHDATable[ConfigRXBuffer[2] - 0x21] = (int)unionFlt.Flt; ;
WriteEEPROM(RHDATable_Addr+(ConfigRXBuffer[2] - 0x21)*2, (unsigned char *)&envionment_variables.RHDATable[ConfigRXBuffer[2] - 0x21], 2);
}
else
{
}
//LoopFlag = 1; //设置保存还在标定状态
}
else if(ConfigRXBuffer[3] == 0x5B)
{
LoopFlag = 1;
}
else if(ConfigRXBuffer[3] == 0x5C)
{
//LoopFlag = 1;
envionment_variables.TC_DA4mA = 999;
envionment_variables.TC_DA20mA = 254;
envionment_variables.RH_DA4mA = 999;
envionment_variables.RH_DA20mA = 254;
WriteEEPROM(TC_DA4mA_Addr, (unsigned char *)&envionment_variables.TC_DA4mA, 4);
WriteEEPROM(TC_DA20mA_Addr, (unsigned char *)&envionment_variables.TC_DA20mA, 4);
WriteEEPROM(RH_DA4mA_Addr, (unsigned char *)&envionment_variables.RH_DA4mA, 4);
WriteEEPROM(RH_DA20mA_Addr, (unsigned char *)&envionment_variables.RH_DA20mA, 4);
}
else if(ConfigRXBuffer[3] == 0x5F)
{
if(ConfigRXBuffer[2] == 0x05) // 温度电流测试
{
TestCurrent = (envionment_variables.TC_DA4mA - envionment_variables.TC_DA20mA)/2;
TestCurrent = envionment_variables.TC_DA4mA - TestCurrent;
TBCCR2 = (int)TestCurrent;
}
else if(ConfigRXBuffer[2] == 0x06) //湿度电流测试
{
TestCurrent = (envionment_variables.RH_DA4mA - envionment_variables.RH_DA20mA)/2;
TestCurrent = envionment_variables.RH_DA4mA - TestCurrent;
TBCCR1 = (int)TestCurrent;
}
}
MakeConfigParity();
StartConfigTX();
}
//用于报警设置
void ProcessConfigCmd05()
{
}
void TaskConfig()
{
if(g_Event & EVENT_CONFIG_MSGRCV)
{
ProcessConfigCmd[ConfigRXBuffer[1]]();
g_Event &= ~EVENT_CONFIG_MSGRCV;
}
}
/////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -