#include
# pragma hdrstop
# include "Unit1. H"
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
# pragma package (smart_init)
# pragma resource "*. DFM
"HANDLE hComm;
TForm1 * Form1;
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
__fastcall TForm1: : TForm1 (TComponent * Owner)
: TForm (the Owner)
{
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Void __fastcall TForm1: : Button2Click (TObject * Sender)
{
If (hComm!=INVALID_HANDLE_VALUE) CloseHandle (hComm);
The exit (EXIT_SUCCESS);
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Void __fastcall TForm1: : Button1Click (TObject * Sender)
{
Char * ComNo;
DCB DCB.
String Temp;
//to open communication end
Temp="COM3";
//transition to pointer type char
ComNo=Temp. C_str ();
HComm=CreateFile (ComNo, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, 0).
If (hComm==INVALID_HANDLE_VALUE)//if there is no open communication port
{
Error MessageBox (0, "open communication port!! Comn ", "Error", MB_OK);
return;
}//DCBD address into, in order to obtain the communication parameter
The else MessageBox (0, "open communication port is successful,", "Comn connect", MB_OK);
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
CodePudding user response:
Could it be the name of the com, try:\ \. \ COM3
CodePudding user response:
How to define class inside to seeCodePudding user response:
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --# # ifndef CommH
# define CommH
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
#include
The class CComm
{
Private:
HANDLE hComm;
Bool InitComm (int iBaudRate);
Bool SendMsg (Byte * bteMsg);
Public:
CComm ();
~ CComm ();
Bool Initialize (int iComPort, int iBaudRate);
Bool Initialize (AnsiString sComm, DCB dcbComm);
Void CloseComm ();
Bool SendMsg (Byte * buf, dwords iCount);
Bool ReadMsg (BYTE * buf, dwords & amp; DwCount);
Bool ClearInBuf ();
};
# endif
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Comm. CPP
Realization of serial communication class for sending and receiving binary data
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
# pragma hdrstop
H # include "Comm."
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
# pragma package (smart_init)
CComm: : CComm ()
{
HComm=NULL;
}
CComm: : ~ CComm ()
{
If (hComm) CloseHandle (hComm);
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Function: :
Open the serial port, and set the communication parameters, if failed, close a serial port
Input:
IComm: effectively serial port, such as COM1 is enter 1
IBaudRate: effective baud rate
Operate:
1, open the serial port, a successful continues to initialize the serial port,
2, if the failure to close a serial port
Output:
Successful return true, otherwise it returns FALSE
Public Value:
HComm
GodAndDog 2003-5-8
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
Bool CComm: : Initialize (int iComPort, int iBaudRate)
{
AnsiString strComm;
StrComm="COM" + IntToStr (iComPort);
HComm=CreateFile (strComm c_str (), GENERIC_READ | GENERIC_WRITE
, 0, NULL, OPEN_EXISTING, 0, NULL);
If (hComm)
{
If (InitComm (iBaudRate))
{
Return true;
}
}
If (hComm)
{
CloseComm ();
}
Return false;
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Function: :
To open the serial port communication parameter
Input:
IBaudRate: effective baud rate
Operate:
Set iBaudRate, 8, n, 1, binary mode
Output:
Successful return true, otherwise it returns FALSE
Public:
None
GodAndDog 2003-5-8
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
Bool CComm: : InitComm (int iBaudRate)
{
//==============================
DCB dcbComm;
//==============================
ZeroMemory (& amp; DcbComm, sizeof (dcbComm));
DcbComm. DCBlength=sizeof (dcbComm);
DcbComm. FBinary=true;
DcbComm. BaudRate=iBaudRate;
DcbComm. ByteSize=8;
DcbComm. Parity=NOPARITY;
DcbComm. StopBits=ONESTOPBIT;
Return (SetCommState (hComm, & amp; DcbComm));
}
Bool CComm: : Initialize (AnsiString sComm, DCB dcbComm)
{
HComm=CreateFile (sComm c_str (), GENERIC_READ | GENERIC_WRITE
, 0, NULL, OPEN_EXISTING, 0, NULL);
If (hComm)
{
If (SetCommState (hComm, & amp; DcbComm))
{
Return true;
}
}
If (hComm)
{
The CloseHandle (hComm);
}
Return false; nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull