|
안녕하세요...
제가 또 질문을 하게 되네요... 워낙 실력이 없어서..ㅡㅡ;;
시리얼 통신하는데.. DCB 설정에서 자꾸 걸리네요...
SetCommState() 했는뎅.. 계속 false 만 return 하네요..
Set 하기 전에 값을 바꿔서 해 보기도 하구.. 제가 해 볼수 있는 방법은
다 해본거 같습니다.
최종결론.. SOS~~~
아래 쏘스 봐주시구 답변 부탁 드립니다.
참고: Baud Rate, Start Bit, DataSize,
DCB dcb = {0};
dcb.DCBlength = sizeof( DCB ) ;
GetCommState(this->m_hComm[Index],&dcb);
dcb.BaudRate = (DWORD)this->m_BaudList[this->m_BaudRate[Index]].ToDouble(); //m_BaudList 에 값들이 들어있음... 안에 있는건 ComboBox List 되어 있는것에 선택한 Item Index 가 들어있는 변수
dcb.fBinary = true;
dcb.fParity = true;
dcb.fOutxCtsFlow = DlgMain->m_fOutxCtsFlow[Index] ; //Check Box 값이 들어있는 변수..
dcb.fOutxDsrFlow = DlgMain->m_fOutxDsrFlow[Index] ; //Check Box 값이 들어있는 변수..
dcb.fDtrControl = DlgMain->m_fDtrControl[Index] ; //Combo 에 ItemIndex 값
dcb.fDsrSensitivity = DlgMain->m_fDsrSensitivity[Index] ; //Check Box 값
dcb.fTXContinueOnXoff = DlgMain->m_fTXContinueOnXoff[Index] ;
dcb.fOutX = DlgMain->m_fOutX[Index] ;
dcb.fInX = DlgMain->m_fInX[Index] ;
dcb.fRtsControl = (DWORD)this->m_fRtsControl[Index] ;
dcb.XonLim = DlgMain->m_XonLim[Index];
dcb.XoffLim = DlgMain->m_XoffLim[Index];
dcb.ByteSize = (BYTE)this->m_DataBitList[this->m_ByteSize[Index]].ToDouble();
dcb.Parity = (BYTE)this->m_Parity[Index];
dcb.StopBits = (BYTE)this->m_StopBitList[this->m_StopBits[Index]].ToDouble();
dcb.XonChar = DlgMain->m_XonChar[Index];
dcb.XoffChar = DlgMain->m_XoffChar[Index];
if(!SetCommState(this->m_hComm[Index],&dcb)) return false;
return true;
//** 각각 변수 type 은 다 맞음..
뭐 이런 식으로 되어 있습니다. 저두 이거 해깔려서.. 제대로 주석을 못 적었습니다.
양해 바라며 답변 부탁드립니다.
|