29 Dec 2015
Reading data from multiple COM serial ports part II
Remain part of reading data from multiple serial ports is as follows.
Handler.h file
#include "SerialCom.h" class Handler { private: CSerialCom port; BYTE data; DWORD BaudRate; BYTE byteSize; DWORD fparity; BYTE parity; BYTE stopBit; public: Handler(void); void setPortDetail(DWORD BaudRate,BYTE byteSize,DWORD fparity,BYTE parity, BYTE stopBit); void COMListen(); void listenCOM(); ~Handler(void); };
Handler.cpp class
#include "Handler.h" #include#include #include Handler::Handler(void) {} void Handler::setPortDetail(DWORD BaudRate,BYTE byteSize,DWORD fparity,BYTE parity){ this->BaudRate= BaudRate; this->byteSize = byteSize; this->fparity= fparity; this->parity = parity; this->stopBit= stopBit; } void Handler::COMListen(){ //start thread to handle multiple COM serial port thread t(&Handler::listenCOM,this); //detach to separate thread from main thread. t.detach(); } void Handler::listenCOM(){ if(!(this->port.OpenPort(p.c_str()))){ printf("Cannot open Communication Port.Please \n quit the application & re-start your PC"); } else{ cout< Now, create multiple objects of handler class, set configurations and call COMListen method to read data as example given below.
Handler h; Handler h2; h.setPortDetail("COM3",115200,8,0,NOPARITY ,ONESTOPBIT,&cam); h2.setPortDetail("COM4",115200,8,0,NOPARITY ,ONESTOPBIT,&cam); h.COMListen(); h2.COMListen();