📄 main.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Main.h"
#include <Math.hpp>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "MSCommLib_OCX"
#pragma resource "*.dfm"
TMainForm *MainForm;
//---------------------------------------------------------------------------
__fastcall TMainForm::TMainForm(TComponent* Owner)
: TForm(Owner)
{
if(MSComm->PortOpen == true)
{
Open->Enabled=false;
Close->Enabled=true;
Send->Enabled=true;
Save->Enabled=true;
Shape1->Brush->Color=clGreen;
}
else
{
Open->Enabled=true;
Close->Enabled=false;
Send->Enabled=false;
Save->Enabled=false;
Shape1->Brush->Color=clRed;
}
}
AnsiString HexToStr(Byte byte,int Digits)
{
Byte high = byte / 16;
Byte low = byte % 16;
if(Digits == 1)
{
return AnsiString(char(low + '0'));
}else if(Digits == 2)
{
return AnsiString(char(high + '0')) + AnsiString(char(low + '0'));
}else
{
return "";
}
}
Byte CRC(AnsiString string)
{
Byte byte = 0;
for(int i =1;i<= string.Length();i++)
{
byte ^= string[i];
}
return byte;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::OpenClick(TObject *Sender)
{
if(MSComm->PortOpen!=true)
{
MSComm->CommPort = StrToInt(Com->Text);
MSComm->Settings=
BotRat->Text+","+Check->Text+","+
DataSet->Text+","+StopSet->Text;
MSComm->InputMode = 0;
MSComm->PortOpen = true;
Open->Enabled=false;
Close->Enabled=true;
Send->Enabled=true;
Save->Enabled=true;
Shape1->Brush->Color=clGreen;
}
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::CloseClick(TObject *Sender)
{
if(MSComm->PortOpen!=false)
{
MSComm->PortOpen=false;
Open->Enabled=true;
Close->Enabled=false;
Send->Enabled=false;
Save->Enabled=false;
Shape1->Brush->Color=clRed;
}
else
{
Open->Enabled=false;
Close->Enabled=true;
Shape1->Brush->Color=clRed;
}
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::SendClick(TObject *Sender)
{
/*AnsiString cmd = AnsiString("#") + Edit1->Text + Edit2->Text;
cmd += Edit3->Text + Edit4->Text +Edit5->Text +Edit6->Text;
cmd += HexToStr(CRC(cmd.SubString(2,cmd.Length() -1)),2) + AnsiString(char(0x0d));
MemoSend->Text = cmd; */
//char aaa[2] = {0xc0,0x00};
MemoSend->Text = AnsiString((char)0xc0);//aaa;//.sprintf("%c",aaa[1]);
MSComm->Output=StringToOleStr(MemoSend->Text);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::MSCommComm(TObject *Sender)
{
AnsiString str;
OleVariant s;
if(MSComm->CommEvent == comEvReceive)
{
if(MSComm->InBufferCount)
{
s = MSComm->Input;
str = s.AsType(varString);
MemoReceive->Text = MemoReceive->Text+str;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::SaveClick(TObject *Sender)
{
AnsiString filename1;
SaveDialog1->Filter="Text files(*.txt)|*.txt|All files(*.*)|*.*";
SaveDialog1->FilterIndex = 2;
if(SaveDialog1->Execute())
{
filename1 = SaveDialog1->FileName;
MemoReceive->Lines->SaveToFile(filename1);
}
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::FormCreate(TObject *Sender)
{
MemoSend->Clear();
MemoReceive->Clear();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::MemoSendDblClick(TObject *Sender)
{
MemoSend->Clear();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::MemoReceiveDblClick(TObject *Sender)
{
MemoReceive->Clear();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::FormClose(TObject *Sender, TCloseAction &Action)
{
if(MSComm->PortOpen == true)
MSComm->PortOpen = false;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -