⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 实现RS232数据采集处理,设置RS23传输参数,显示控制终端的数据.
💻 CPP
📖 第 1 页 / 共 5 页
字号:
  }
  Senddata();
}
//---------------------------------------------------------------------------

void __fastcall TFormMain::BitBtn28Click(TObject *Sender)
{               //Set door state
 if(!Comm1->PortOpen) {ShowMessage("串口未打开!!"); return;}
 Checktimeout=0;

 ADR=Edit2->Text.ToInt();
 MYADR=myadr;
 CMD_TYPE=0x02;
 CMD_ID=0x02;
 int rotSpd;
 rotSpd=RadioGroup1->ItemIndex;
 	switch(rotSpd)
 {case 0: INFO0=0x01; break;               //Scan
  case 1: INFO0=0x02; break;               //Quiet
  default :break;
  }
  Senddata();

}
//---------------------------------------------------------------------------

void __fastcall TFormMain::BitBtn29Click(TObject *Sender)
{               //Set current temperature
 if(!Comm1->PortOpen) {ShowMessage("串口未打开!!"); return;}

 if(Edit21->Text.ToIntDef(15)==15||Edit21->Text.ToIntDef(15)<16||Edit21->Text.ToIntDef(15)>30)
  {ShowMessage("请输入16至30之间的数字");Edit21->Text="16"; return;}


 Checktimeout=0;

  ADR=Edit2->Text.ToInt();
 MYADR=myadr;
 CMD_TYPE=0x02;
 CMD_ID=0x01;
 INFO0=Edit21->Text.ToIntDef(16);
 Senddata();
}
//---------------------------------------------------------------------------

void __fastcall TFormMain::BitBtn25Click(TObject *Sender)
{                //Clear analog data
 Edit7->Clear();
 Edit8->Clear();
 Edit14->Clear();
 Edit13->Clear();
 Edit12->Clear();
 Edit11->Clear();
 Edit10->Clear();
 Edit9->Clear();
}
//---------------------------------------------------------------------------

void __fastcall TFormMain::BitBtn27Click(TObject *Sender)
{               //Clear digital data
 Edit15->Clear();
 Edit18->Clear();
 Edit19->Clear();
 Edit20->Clear();
 Edit17->Clear();
 //Edit16->Clear();
}
//---------------------------------------------------------------------------

void __fastcall TFormMain::BitBtn26Click(TObject *Sender)
{ if(!Comm1->PortOpen) {ShowMessage("串口未打开!!"); return;}
//Get digital data
Edit15->Clear();
Edit18->Clear();
Edit19->Clear();
Edit20->Clear();
Edit17->Clear();
//Edit16->Clear();
 ADR=Edit2->Text.ToInt();
 MYADR=myadr;
 CMD_TYPE=0x03;
 CMD_ID=0x00;
 INFO0=0;
 INFO1=0;
 INFO2=0;
 INFO3=0;
 Senddata();
// dgtalg=1;  //express digital state
Checktimeout=1;
if(read==1||autoread==1) Timer3->Enabled=true;
}
//---------------------------------------------------------------------------

void __fastcall TFormMain::BitBtn24Click(TObject *Sender)
{ if(!Comm1->PortOpen) {ShowMessage("串口未打开!!"); return;}
//Get analog data
 Edit7->Clear();
 Edit8->Clear();
 Edit14->Clear();
 Edit13->Clear();
 Edit12->Clear();
 Edit11->Clear();
 Edit10->Clear();
 Edit9->Clear();
  ADR=Edit2->Text.ToInt();
 MYADR=myadr;
 CMD_TYPE=0x05;
 CMD_ID=0x00;
 INFO0=0;
 INFO1=0;
 INFO2=0;
 INFO3=0;
 Senddata();
 dgtalg=2;  //express analog state
 Checktimeout=1;
 if(read==1||autoread==1) {Timer2->Enabled=true; if(read==1) read=0;}
}
//---------------------------------------------------------------------------

void __fastcall TFormMain::TimerAddDispTimer(TObject *Sender)
{             //Display the analog data and digital data as TEdit modual
 TimerAddDisp->Enabled=false;
// if(dgtalg==1)
// {dgtalg=0;
// if(rxdata[5]==0x01) Edit15->Text="开机状态";
// else if(rxdata[5]==0x02) {Edit15->Text="关机状态"; goto End;}//if it is close down,then not display other info
// if(rxdata[6]==0x01) Edit18->Text="扫描";
// else if(rxdata[6]==0x02) Edit18->Text="静止";
// if(rxdata[7]==0x01) Edit19->Text="制热";
// else if(rxdata[7]==0x02) Edit19->Text="制冷";
// else if(rxdata[7]==0x03) Edit19->Text="风扇";
// else if(rxdata[7]==0x04) Edit19->Text="除湿";
// else if(rxdata[7]==0x05) Edit19->Text="自动";
// if(rxdata[8]==0x01) Edit20->Text="自动";
// else if(rxdata[8]==0x02) Edit20->Text="大";
// else if(rxdata[8]==0x03) Edit20->Text="中";
// else if(rxdata[8]==0x04) Edit20->Text="小";
// if(rxdata[9]==0x04) Edit17->Text="E";
// else if(rxdata[9]==0x06) Edit17->Text="F";
// else if(rxdata[9]==0x08) Edit17->Text="H";
// else if(rxdata[9]==0x0c) Edit17->Text="L";
// else if(rxdata[9]==0x0e) Edit17->Text="P";
// Edit16->Text=VersionInfo;
// }
// else if(dgtalg==2)
// {dgtalg=0;
// Edit9->Text=rxdata[5];
// Edit7->Text=rxdata[6];
// Edit8->Text=rxdata[7];
// Edit14->Text=rxdata[8];
// Edit13->Text=rxdata[9];
// Edit12->Text=rxdata[10];
// Edit11->Text=rxdata[11];
// Edit10->Text=rxdata[12];
// }
       //if(getadr==1){GetAdd=0; Edit5->Text=IntToStr(rxdata[5]);Edit2->Text=Edit5->Text;
       if(GetAdd==1){GetAdd=0; Edit5->Text=IntToStr(rxdata[5]);Edit2->Text=Edit5->Text;
       TableP->First();
       for(int i=0;i<TableP->RecordCount;i++)
       {if(TableP->FieldByName("Addr")->AsString==Edit2->Text)
           {Edit27->Text=TableP->FieldByName("LocNum")->AsString;
            Edit28->Text=TableP->FieldByName("LocName")->AsString; return;}
            TableP->Next();}
 }
// End:;
// RecordData();
//            // autoread=0;  //autorun flag reset
// read=0;      //run flag reset
//  RecordData();
}
//---------------------------------------------------------------------------
//int errortime=0;
void __fastcall TFormMain::Timer1Timer(TObject *Sender)
{
Timer1->Enabled=false;
Delay(2000);
if (((timeout==1&&Checktimeout==1)||RTNError==1)||CHKSUMError==1)
 {RTNError=0;CHKSUMError=0;
 Checktimeout=0;
  StatusBar1->Panels->Items[1]->Text="连接超时";
  //StatusBar1->Panels->Items[2]->Text="";
  Memo2->Lines->Add("通信故障");
  failure=1;
  RecordData();
//  errortime++;
//  if(errortime>5) errortime=0;
//  else return;
  read=0;
//  autoread=0;
//  stopedread=1;
//  ActionStop->Execute();
 }
else {StatusBar1->Panels->Items[1]->Text="";failure=0;}
}
//---------------------------------------------------------------------------
int Bt26flag,Bt24flag;
void __fastcall TFormMain::BitBtn16Click(TObject *Sender)
{   //手动监控
  if(!Comm1->PortOpen) {ShowMessage("串口未打开!!"); return;}
 read=1;
// ReadOut=0;
 Bt26flag=0;
 Bt24flag=0;
 BitBtn26->Click();   //get switch data first then get analog data


// Timer3->Enabled=true;
// if(timeout==0)
//   BitBtn26->Click();
// RecordData();
}
//---------------------------------------------------------------------------

void __fastcall TFormMain::TimerRunTimer(TObject *Sender)
{
if(RadioButton1->Checked){
         if (degree==rundegree) {ActionStop->Execute();return;}
         else degree++;
                         }
if(RadioButton2->Checked){ ;///
                         }
if(stopedread==1)  {TimerRun->Enabled=false;stopedread=0;return;}
else
  {
   TimerRun->Enabled=false;
   Runadr();
//    BitBtn16->Click();

  }
//
}
//---------------------------------------------------------------------------


void __fastcall TFormMain::Timer3Timer(TObject *Sender)
{
 //if(GetDgt==1){
// if(rxdata[5]==0x02)  ReadOut=1;         //if it is closed state do not do any operation
// else
 //  { //Delay(500);

   Timer3->Enabled=false;
//   if(Bt26flag!=1) {Delay(500); Bt26flag=1;BitBtn26->Click();}
//   else{Bt26flag=0;
   BitBtn24->Click(); //Timer2->Enabled=true;
//   }

 //  }
}
//---------------------------------------------------------------------------


void __fastcall TFormMain::TimerStopTimer(TObject *Sender)
{
if(timerstoptime!=runtime)
 timerstoptime++;
else {TimerStop->Enabled=false;
      ActionStop->Execute();}
}
//---------------------------------------------------------------------------

void __fastcall TFormMain::Timer2Timer(TObject *Sender)
{
// Timer2->Enabled=false;
// if(readalg==1) return;        //wait for get AirCondition analog data
// else
//   timer2exe=1;
   Timer2->Enabled=false;
//   if(Bt24flag!=1) {Delay(500); Bt24flag=1;BitBtn24->Click();}
//   else{Bt24flag=0;

   ReadOut=1;
//   }
}
//---------------------------------------------------------------------------

void __fastcall TFormMain::ToolButton3Click(TObject *Sender)
{
 PageControl1->ActivePageIndex=0;
}
//---------------------------------------------------------------------------

void __fastcall TFormMain::ActionADSetExecute(TObject *Sender)
{
 PageControl1->ActivePageIndex=1;
}
//---------------------------------------------------------------------------

void __fastcall TFormMain::ActionCommExecute(TObject *Sender)
{
  if(Comm1->PortOpen) {ShowMessage("若要进行串口设置请先关闭已打开的串口!!"); return;}
 FormComm->ShowModal();              
}
//---------------------------------------------------------------------------

void __fastcall TFormMain::ActionAddExecute(TObject *Sender)
{
 TablePS->First();
 if(TablePS->RecordCount==0||TablePS->FieldByName("PassWord")->AsString=="") goto L1465;
 if(PasswordDlg->ShowModal()==1) ;
 else return;
 if(Edit16->Text=="0") return;
 else Edit16->Text="0";
L1465:;

  PageControl1->ActivePageIndex=3;
  Form2->Show();
}
//---------------------------------------------------------------------------

void __fastcall TFormMain::ActionDelExecute(TObject *Sender)
{

 TablePS->First();
 if(TablePS->RecordCount==0||TablePS->FieldByName("PassWord")->AsString=="") goto L1481;
 if(PasswordDlg->ShowModal()==1) ;
 else return;
 if(Edit16->Text=="0") return;
 else Edit16->Text="0";
L1481:;


  PageControl1->ActivePageIndex=3;
  BitBtn2->Click();
}
//---------------------------------------------------------------------------

void __fastcall TFormMain::BitBtn34Click(TObject *Sender)
{
AnsiString chara="符合条件的数据记录 ";
  AnsiString charb=" 条";
  String charc;
  charc=IntToStr(TableD->RecordCount);

ShowMessage(chara+charc+charb);
}
//---------------------------------------------------------------------------










void __fastcall TFormMain::Edit2KeyUp(TObject *Sender, WORD &Key,
      TShiftState Shift)
{

 if((Key>47&&Key<58)||Key==8||(Key>95&&Key<106))
 {if (Edit2->Text=="") {Edit2->Text='0';Edit2->SelectAll(); return;}
 else if(Edit2->Text.ToInt()>255)
 {ShowMessage("请输入0至255之间的数");Edit2->Text='0';}
 }
 else  {if(Key==13||Key==33||Key==34||Key==35||Key==36||Key==37||Key==38||Key==39
 ||Key==40||Key==46||Key==16||Key==17||Key==3318||Key==19||Key==20)  ;
        else
        {ShowMessage("请输入数字");Edit2->Text="0";}
        }
}
//---------------------------------------------------------------------------



void __fastcall TFormMain::Edit23KeyUp(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
 if((Key>47&&Key<58)||Key==8||(Key>95&&Key<106))
 {if (Edit23->Text=="") {Edit23->Text='0';Edit23->SelectAll(); return;}
 else if(Edit23->Text.ToInt()>17)
 {ShowMessage("请输入0至17之间的数");Edit23->Text='0';}
 }
 else  {if(Key==13||Key==33||Key==34||Key==35||Key==36||Key==37||Key==38||Key==39
 ||Key==40||Key==46||Key==16||Key==17||Key==3318||Key==19||Key==20)  ;
        else
        {ShowMessage("请输入数字");Edit23->Text="0";}
        }
}
//---------------------------------------------------------------------------

void __fastcall TFormMain::Edit24KeyUp(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
  if((Key>47&&Key<58)||Key==8||(Key>95&&Key<106))
 {if (Edit24->Text==""||Edit24->Text.ToInt()==0) {Edit24->Text='0';Edit24->SelectAll(); return;}
 else if(Edit24->Text.ToInt()>59)
 {ShowMessage("请输入0至59之间的数");Edit24->Text='0';}
 }
 else  {if(Key==13||Key==33||Key==34||Key==35||Key==36||Key==37||Key==38||Key==39
 ||Key==40||Key==46||Key==16||Key==17||Key==3318||Key==19||Key==20)  ;
        else
        {ShowMessage("请输入数字");Edit24->Text="0";}
        }
}
//---------------------------------------------------------------------------

void __fastcall TFormMain::Edit25KeyUp(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
   if((Key>47&&Key<58)||Key==8||(Key>95&&Key<106))
 {if (Edit25->Text==""||Edit25->Text.ToInt()==0) {Edit25->Text='0';Edit25->SelectAll(); return;}
 else if(Edit25->Text.ToInt()>59)
 {ShowMessage("请输入0至59之间的数");Edit25->Text='0';}
 }
 else  {if(Key==13||Key==33||Key==34||Key==35||Key==36||Key==37||Key==38||Key==39

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -