求教各位大哥:我这程序怎么捕捉不到发给串口的触发消息啊?
在我的程序的基于CFormView的视图类中,拖入MSComm串口通讯控件,自动生成相关类CMSComm,再在classwisuard中为此控件添加变量:CMSComm m_Com; 然后为此控件添加一消息处理函数:
ImageRecogView.h中:
.....
afx_msg void OnCommMscomm1();
DECLARE_EVENTSINK_MAP()
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
ImageRecogView.cpp中:
BEGIN_EVENTSINK_MAP(CImageRecogView, CFormView)
//{{AFX_EVENTSINK_MAP(CImageRecogView)
ON_EVENT(CImageRecogView, IDC_MSCOMM1, 1 /* OnComm */, OnCommMscomm1, VTS_NONE)
//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()
......
void CImageRecogView::OnCommMscomm1()
{
AfxMessageBox( "A Dumping Test---");
int nEvent;
nEvent=m_Com.GetCommEvent();
switch(nEvent)
{
case 2: //收到>=RThresshold 个字符
AfxMessageBox( "A Dumping Test---");
break;
case 3: //CTS状态线发生变化
AfxMessageBox( "A Dumping Test---");
break;
case 4: //DSR状态线发生变化
AfxMessageBox( "A Dumping Test---");
break;
case 5: //CD状态线发生变化
AfxMessageBox( "A Dumping Test---");
break;
case 6: //Ring Indicator状态线发生变化(引脚9)
AfxMessageBox( "A Dumping Test---");
break;
}
UpdateData(FALSE);
}
我的问题是:
当我用连在计算机串口上的触发器(就是最简单的形式,只给串口的几个引脚送高低电平),为什么相应引脚的状态值改变之后上面的消息处理函数捕捉不到呢?
我的触发器是这样的:内置的公公端接线和引脚4相连(有什么用啊?),外面的四个开关可分别给1、6、8、9引脚传送信号。
希望各位高手不吝赐教,谢谢啦!