CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
m_ctrlcomm.SetCommPort(1);
m_ctrlcomm.SetInputMode(1);
m_ctrlcomm.SetInBufferSize(1024);
m_ctrlcomm.SetOutBufferSize(512);
m_ctrlcomm.SetSettings("9600,n,8,1");
if(!m_ctrlcomm.GetPortOpen())
m_ctrlcomm.SetPortOpen(true);
m_ctrlcomm.SetRThreshold(1);
m_ctrlcomm.SetInputLen(0);
m_ctrlcomm.GetInput();
return TRUE; // return TRUE unless you set the focus to a control
}
void CRs232Dlg::OnComm()
{
// TODO: Add your control notification handler code here
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048];
CString strtemp;
if(m_ctrlcomm.GetCommEvent()==2)
{
variant_inp=m_ctrlcomm.GetInput();
safearray_inp=variant_inp;
len=safearray_inp.GetOneDimSize();
for(k=0;k<len;k++)
safearray_inp.GetElement(&k,rxdata+k);
for(k=0;k<len;k++)
{
BYTE bt=*(char*)(rxdata+k);
strtemp.Format("%c",bt);
m_rxdata+=strtemp;
}
}
UpdateData(FALSE);
}
void CRs232Dlg::OnButtonSend()
{
// TODO: Add your control notification handler code here
UpdateData(true);
m_ctrlcomm.SetOutput(COleVariant(m_txdata));
}