?? check.cpp
字號:
#include <vcl.h>
#include "math.h"
#include "stdlib.h"
#include "Sim_Valve.h"
//五、統計診斷程序
//進入統計診斷程序
//---------------------------------------------------------------------------
void TMainForm::Check_Func_Key(void)
{
if(m_Set_Num<34)
{
m_Set_Num++;
}
else
{
m_Set_Num=0;
}
Check_Disp();
}
void TMainForm::Check_FuncAndSub_Key(void)
{
if(m_Set_Num>0)
{
m_Set_Num--;
}
else
{
m_Set_Num=34;
}
Check_Disp();
}
//---------------------------------------------------------------------------
//工作時間中斷,累積工作時間,溫度測量與溫度處理
//---------------------------------------------------------------------------
void TMainForm::Check_TimerP(void)
{
float f;
//行程累計
f=fabs(m_Valve_Check_Pos-m_Valve_Check_Pos_Old);
if(f>1.0)
{
if(m_HSTRK==0)
{
if(m_STRKS<TENY)
m_STRKS+=f;
}
else
{
if(m_STRKS<m_HSTRK)
m_STRKS+=f;
}
m_Valve_Check_Pos_Old=m_Valve_Check_Pos;
}
//報警與報警累計
if(m_HLIM<-0.05) f=ALARMLIMAUTO;
else f=m_HLIM;
if(m_Valve_Check_Pos>m_A2+f)
{
m_A2_Timer++;
if(m_HTIM==-1)
{
if(m_A2_Timer>ALARMTIMEAUTO && m_A2_Alarm==0)
{
//報警
Alarm_Panel->Color=clRed;
A2_Panel->Color=clRed;
if(m_A2CNT<TENY)
m_A2CNT++;
if(m_HCNT<TENY)
m_HCNT++;
m_A2_Alarm=1;
}
}
else
{
if(m_A2_Timer>m_HTIM && m_A2_Alarm==0)
{
A2_Panel->Color=clRed;
Alarm_Panel->Color=clRed;//報警
if(m_A2CNT<TENY)
m_A2CNT++;
if(m_HCNT<TENY)
m_HCNT++;
m_A2_Alarm=1;
}
}
}
else
{
if(m_A1_Alarm==0)
Alarm_Panel->Color=clBtnFace;//報警
A2_Panel->Color=clBtnFace;
m_A2_Timer=0;
m_A2_Alarm=0;
}
if(m_Valve_Check_Pos<m_A1-f)
{
m_A1_Timer++;
if(m_HTIM==-1)
{
if(m_A1_Timer>ALARMTIMEAUTO && m_A1_Alarm==0)
{
//報警
A1_Panel->Color=clRed;
Alarm_Panel->Color=clRed;//報警
if(m_A1CNT<TENY)
m_A1CNT++;
if(m_HCNT<TENY)
m_HCNT++;
m_A1_Alarm=1;
}
}
else
{
if(m_A1_Timer>m_HTIM && m_A1_Alarm==0)
{
//報警
A1_Panel->Color=clRed;
Alarm_Panel->Color=clRed;//報警
if(m_A1CNT<TENY)
m_A1CNT++;
if(m_HCNT<TENY)
m_HCNT++;
m_A1_Alarm=1;
}
}
}
else
{
if(m_A2_Alarm==0)
Alarm_Panel->Color=clBtnFace;//報警
A1_Panel->Color=clBtnFace;
m_A1_Timer=0;
m_A1_Alarm=0;
}
if(m_Work_Time<60)
m_Work_Time++;
else
{
if(m_HOURS<TENY)
m_HOURS++;
m_TEMP=30.0-random(100);
if(m_TMIN>m_TEMP)
m_TMIN=m_TEMP;
if(m_TMAX<m_TEMP)
m_TMAX=m_TEMP;
if(m_TEMP<LIMIT_T1)
{
if(m_T1<TENY)
m_T1++;
}
else if(m_TEMP<LIMIT_T2)
{
if(m_T2<TENY)
m_T2++;
}
else if(m_TEMP<LIMIT_T3)
{
if(m_T3<TENY)
m_T3++;
}
else if(m_TEMP<LIMIT_T4)
{
if(m_T4<TENY)
m_T4++;
}
else if(m_TEMP<LIMIT_T5)
{
if(m_T5<TENY)
m_T5++;
}
else if(m_TEMP<LIMIT_T6)
{
if(m_T6<TENY)
m_T6++;
}
else if(m_TEMP<LIMIT_T7)
{
if(m_T7<TENY)
m_T7++;
}
else if(m_TEMP<LIMIT_T8)
{
if(m_T8<TENY)
m_T8++;
}
else if(m_TEMP<LIMIT_T9)
{
if(m_T9<TENY)
m_T9++;
}
Check_Data_Save();
}
}
void TMainForm::Check_Number(void)
{
if(m_Valve1_State==1 && m_Valve1_State_Old==0)
{
if(m_VENT1<TENY)
m_VENT1++;
if(m_Valve_State==0)
{
if(m_HDCHG==0)
{
if(m_CHDIR<TENY)
m_CHDIR++;
}
else
{
if(m_CHDIR<m_HDCHG)
m_CHDIR++;
}
}
m_Valve_State=1;
}
if(m_Valve2_State==1 && m_Valve2_State_Old==0)
{
if(m_VENT2<TENY)
m_VENT2++;
m_Valve_State=0;
}
}
void TMainForm::Check_Add5s_Key(void)
{
if(m_Set_Num==0) Check_Reset(&m_HOURS);
else if(m_Set_Num==1) Check_Reset(&m_CHDIR);
else if(m_Set_Num==2) Check_Reset(&m_HCNT);
else if(m_Set_Num==3) Check_Reset(&m_A1CNT);
else if(m_Set_Num==4) Check_Reset(&m_A2CNT);
else if(m_Set_Num==18) Check_T_F(m_TEMP);
else if(m_Set_Num==19) Check_T_F(m_TMIN);
else if(m_Set_Num==20) Check_T_F(m_TMAX);
else if(m_Set_Num==32) Check_Save();
}
//---------------------------------------------------------------------------
void TMainForm::Check_Reset(unsigned long *d)
{
char Data[12];
char str[6]="RESETa";
Disp_Turn_Str_TO_Code(str,Data);
Disp_Data(Data);
Check_Delay(5000);
*d=0;
Check_Disp();
}
void TMainForm::Check_T_F(float d)
{
if(m_Check_TF==0)
m_Check_TF=1;
else
m_Check_TF=0;
Check_Disp();
}
void TMainForm::Check_Save(void)
{
char Data[12];
char str[6]="STARTa";
Disp_Turn_Str_TO_Code(str,Data);
Disp_Data(Data);
Check_Delay(5000);
strcpy(str,"OCAYaa");
Disp_Turn_Str_TO_Code(str,Data);
Disp_Data(Data);
Check_Data_Save();
}
void TMainForm::Check_Delay(unsigned long d)
{
unsigned long i,j;
for(i=0;i<d;i++)
for(j=0;j<60000;j++)
;
}
void TMainForm::Check_Start(void)
{
m_Work_State=2;
Work_Timer->Enabled=false;
m_Set_Num=0;
Check_Disp();
}
void TMainForm::Check_Disp(void)
{
unsigned char State[6];
unsigned char Data[12];
unsigned char Temp[6];
unsigned int D[6];
double f;
unsigned char c;
int i;
for(i=0;i<5;i++)
State[i]=m_Test_Name[m_Set_Num][i];
State[5]=0x0;
Data[5]=0;
//全字符顯示
if(m_Set_Num==0) Disp_Turn_Long(m_STRKS,Data);
else if(m_Set_Num==1) Disp_Turn_Long(m_CHDIR,Data);
else if(m_Set_Num==2) Disp_Turn_Long(m_HCNT, Data);
else if(m_Set_Num==3) Disp_Turn_Long(m_A1CNT,Data);
else if(m_Set_Num==4) Disp_Turn_Long(m_A2CNT,Data);
else if(m_Set_Num==5) Disp_Turn_Long(m_HOURS,Data);
else if(m_Set_Num==6)
{
Disp_Turn_Data_TO_Code8(m_WAY, Data,0);
}
else if(m_Set_Num==7) Disp_Turn_Data_TO_Code8(m_Up_Time,Data,0);
else if(m_Set_Num==8) Disp_Turn_Data_TO_Code8(m_Down_Time,Data,0);
else if(m_Set_Num==9) Disp_Turn_Data_TO_Code8(m_LEAK,Data,1);
else if(m_Set_Num==10) Disp_Turn_Data_TO_Code8(m_P0,Data,1);
else if(m_Set_Num==11) Disp_Turn_Data_TO_Code8(m_P100,Data,1);
else if(m_Set_Num==12) Disp_Turn_Data_TO_Code8(m_IMPUP,Data,0);
else if(m_Set_Num==13) Disp_Turn_Data_TO_Code8(m_IMPDN,Data,0);
else if(m_Set_Num==14)
{
m_DBUP=m_DEBA;
Disp_Turn_Data_TO_Code8(m_DBUP,Data,1);
}
else if(m_Set_Num==15)
{
m_DBDN=-m_DEBA;
Disp_Turn_Data_TO_Code8(m_DBDN,Data,1);
}
else if(m_Set_Num==16) Disp_Turn_Data_TO_Code8(m_SSUP,Data,1);
else if(m_Set_Num==17) Disp_Turn_Data_TO_Code8(m_SSDN,Data,1);
else if(m_Set_Num==18)
{
if(m_Check_TF==1)
{
f=m_TEMP*9.0/5.0+32.0;
}
else
{
f=m_TEMP;
}
Disp_Turn_Data_TO_Code8(f,Data,2);
if(m_Check_TF==1)
{
Data[0]=0x08; //F 華氏度
Data[1]=0x0E;
}
else
{
Data[0]=0x09; //C 攝氏度
Data[1]=0x0A;
}
}
else if(m_Set_Num==19)
{
if(m_Check_TF==1)
{
f=m_TMIN*9.0/5.0+32.0;
}
else
{
f=m_TMIN;
}
Disp_Turn_Data_TO_Code8(f,Data,2);
if(m_Check_TF==1)
{
Data[0]=0x08; //F 華氏度
Data[1]=0x0E;
}
else
{
Data[0]=0x09; //C 攝氏度
Data[1]=0x0A;
}
}
else if(m_Set_Num==20)
{
if(m_Check_TF==1)
{
f=m_TMAX*9.0/5.0+32.0;
}
else
{
f=m_TMAX;
}
Disp_Turn_Data_TO_Code8(f,Data,2);
if(m_Check_TF==1)
{
Data[0]=0x08; //F 華氏度
Data[1]=0x0E;
}
else
{
Data[0]=0x09; //C 攝氏度
Data[1]=0x0A;
}
}
else if(m_Set_Num==21) Disp_Turn_Long(m_T1,Data);
else if(m_Set_Num==22) Disp_Turn_Long(m_T2,Data);
else if(m_Set_Num==23) Disp_Turn_Long(m_T3,Data);
else if(m_Set_Num==24) Disp_Turn_Long(m_T4,Data);
else if(m_Set_Num==25) Disp_Turn_Long(m_T5,Data);
else if(m_Set_Num==26) Disp_Turn_Long(m_T6,Data);
else if(m_Set_Num==27) Disp_Turn_Long(m_T7,Data);
else if(m_Set_Num==28) Disp_Turn_Long(m_T8,Data);
else if(m_Set_Num==29) Disp_Turn_Long(m_T9,Data);
else if(m_Set_Num==30) Disp_Turn_Long(m_VENT1,Data);
else if(m_Set_Num==31) Disp_Turn_Long(m_VENT2,Data);
else if(m_Set_Num==32) Disp_Turn_Data_TO_Code8(m_STORE,Data,0);
else if(m_Set_Num==33) Disp_Turn_Data_TO_Code8(m_PRUP,Data,0);
else if(m_Set_Num==34) Disp_Turn_Data_TO_Code8(m_PRDN,Data,0);
Disp_Data(Data);
Disp_Number();
Disp_State(State);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -