we have a project to transmit and receive data on serial port (i modify it
from VCTERM on MSDN). To transmit text byte I use :
void CMainFrame::TxS tring(CString str)
{
CString s;
VARIANT vCommOut;
vCommOut.vt = VT_BSTR;
vCommOut.bstrVa l = str.AllocSysStr ing();
mCommCtrl.SetOu tBufferCount(0) ;
mCommCtrl.SetOu tput(vCommOut);
SysFreeString(v CommOut.bstrVal );
while(mCommCtrl .GetOutBufferCo unt()>0)
DoEvents();
}
it run OK, unless the byte that has value 0x00.
to resolve that, I use :
void CMainFrame::TxB yte(unsigned char ch)
{
VARIANT vCommOut;
vCommOut.vt = VT_UI1;
vCommOut.bVal = ch;
mCommCtrl.SetOu tBufferCount(0) ;
mCommCtrl.SetOu tput(vCommOut);
while(mCommCtrl .GetOutBufferCo unt()>0)
DoEvents();
}
when I run it, system gives error message "invalid value" at line:
mCommCtrl.SetOu tput(vCommOut);
Please give me a solution to transmit binary byte.
Thank regard !
from VCTERM on MSDN). To transmit text byte I use :
void CMainFrame::TxS tring(CString str)
{
CString s;
VARIANT vCommOut;
vCommOut.vt = VT_BSTR;
vCommOut.bstrVa l = str.AllocSysStr ing();
mCommCtrl.SetOu tBufferCount(0) ;
mCommCtrl.SetOu tput(vCommOut);
SysFreeString(v CommOut.bstrVal );
while(mCommCtrl .GetOutBufferCo unt()>0)
DoEvents();
}
it run OK, unless the byte that has value 0x00.
to resolve that, I use :
void CMainFrame::TxB yte(unsigned char ch)
{
VARIANT vCommOut;
vCommOut.vt = VT_UI1;
vCommOut.bVal = ch;
mCommCtrl.SetOu tBufferCount(0) ;
mCommCtrl.SetOu tput(vCommOut);
while(mCommCtrl .GetOutBufferCo unt()>0)
DoEvents();
}
when I run it, system gives error message "invalid value" at line:
mCommCtrl.SetOu tput(vCommOut);
Please give me a solution to transmit binary byte.
Thank regard !