//function for opening COM-port
void COMOpen(portname)
{
DCB dcb;
COMMTIMEOUTS timeouts; //structure for timeouts
//open COM-port!
COMport = CreateFile(portname.c_str(),GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL);
if(COMport == INVALID_HANDLE_VALUE) { //if error
return;
}
}
//function for closing COM-port
void COMClose()
{
CloseHandle(COMport);
COMport=0;
handle=0;
}
on_pushButton_clicked() // function send pulse on button click
{
COMOpen(portname); //initialized and open port
int i;
EscapeCommFunction(COMport, SETDTR); //set hight level DTR
ui->label->setText("Sending pulse to com-port..."); //sign about sending pulse
i=0;
while (i<3000000) { // wait a little, pulse should have a duration
i++;
Application->ProcessMessages();
}
EscapeCommFunction(COMport, CLRDTR); // free DTR pin
ui->label->setText(""); //pulse finished, so remove label
COMClose(portname); //close COM-port
}
//function for opening COM-port
void COMOpen(portname)
{
DCB dcb;
COMMTIMEOUTS timeouts; //structure for timeouts
//open COM-port!
COMport = CreateFile(portname.c_str(),GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL);
if(COMport == INVALID_HANDLE_VALUE) { //if error
QMessageBox::warning(this, "Error", "No such COM!");
return;
}
}
//function for closing COM-port
void COMClose()
{
CloseHandle(COMport);
COMport=0;
handle=0;
}
on_pushButton_clicked() // function send pulse on button click
{
COMOpen(portname); //initialized and open port
int i;
EscapeCommFunction(COMport, SETDTR); //set hight level DTR
ui->label->setText("Sending pulse to com-port..."); //sign about sending pulse
i=0;
while (i<3000000) { // wait a little, pulse should have a duration
i++;
Application->ProcessMessages();
}
EscapeCommFunction(COMport, CLRDTR); // free DTR pin
ui->label->setText(""); //pulse finished, so remove label
COMClose(portname); //close COM-port
}
To copy to clipboard, switch view to plain text mode
Bookmarks