新闻中心

EEPW首页>模拟技术>设计应用> 串口调试助手源程序

串口调试助手源程序

作者: 时间:2012-04-25 来源:网络 收藏
T-TRANSFORM: none; COLOR: rgb(95,95,95); TEXT-INDENT: 0px; PADDING-TOP: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BACKGROUND-COLOR: rgb(255,255,255); orphans: 2; widows: 2; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">

void CSCommTestDlg::OnTimer(UINT nIDEvent)
{
// TOD Add your message handler code here and/or call default
OnButtonManualsend();
CDialog::OnTimer(nIDEvent);
}

再在在主对话框中加入一个复选接钮,ID为IDC_CHECK_AUTOSEND Caption: 自动发送(周期1秒),再利用ClassWizard为其添加BN_CLICK消息处理函数void CSCommTestDlg::OnCheckAutosend():

void CSCommTestDlg::OnCheckAutosend()
{
// TOD Add your control notification handler code here
m_bAutoSend=!m_bAutoSend;
if(m_bAutoSend)
{
SetTimer(1,1000,NULL);//时间为1000毫秒
}
else
{
KillTimer(1); //取消定时
}
}

其中:m_bAutoSend为BOOL型变量,在CLASSVIEW中为CSCommTestDlg类加入,并在构造函数中初始化:

m_bAutoSen=FALSE;
现在可以运行程序测试了。

11.什么是VARIANT数据类型?如何使用VARIANT数据类型?

不知如何使用VARIANT数据类型, 有不少朋友对VARIANT这个新的数据类型大感头疼。SetOutput()函数中 需要的VARIANT参数还可以使用COleVariant类的构造函数简单生成,现在GetInput()函数的返回值也成了VARIANT类型,那么如何从返回的值中提取有用的内容。 VARIANT及由之而派生出的COleVariant类主要用于在OLE自动化中传递数据。实际上VARIANT也只不过是一个新定义的结构罢了,它的主要成员包括一个联合体及一个变量。该联合体由各种类型的数据成员构成, 而该变量则用来指明联合体中目前起作用的数据类型。我们所关心的接收到的数据就存储在该联合体的某个数据成员中。 该联合体中包含的数据类型很多,从一些简单的变量到非常复杂的数组和指针。由于通过接收到的内容常常是一个字节串,我们将使用其中的某个数组或指针来访问接收到的数据。这里推荐给大家的是指向一个SAFEARRAY(COleSafeArray)类型变量。新的数据类型SAFEARRAY正如其名字一样,是一个“安全数组”,它能根据系统环境自动调整其16位或32 位的定义,并且不会被OLE改变(某些类型如BSTR在16位或32位应用程序间传递时会被OLE翻译从而破坏其中的二进制数据)。大家无须了解SAFEARRAY的具体定义,只要知道它是另外一个结构,其中包含一个 (void *)类型的指针pvData,其指向的内存就是存放有用数据的地方。 简而言之,从GetInput()函数返回的VARIANT类型变量中,找出parray 指针,再从该指针指向的SAFEARRAY变量中找出pvData指针,就可以向访问数组一样取得所接收到的数据了。具体应用请参见void CSCommTestDlg::OnComm()函数。

大概我现在也说不清这个问题,我自己从第一次接触这个东西,到现在还是给别人讲不清。


上一页 1 2 3 下一页

关键词:串口调试源程序

评论


相关推荐

技术专区

关闭