版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MiniARM M3350UM01010101V1.00Date: 2013/01/09类别内容UDP、epcTCPIP摘 要介绍User ManualMiniARM M3350修订历史2013 Guangzhou ZHIYUAN Electronics CO.,.i版本日期原因V1.002013/02/09创建文档MiniARM M3350目录1.示例11.11.2示例目标1示例步骤1建立和配置工程1框的绘制4添加代码51.2.11.2.21.2.32008 Guangzhou ZHIYUAN Electronics CO.,.1MiniARM M33501.示例本节举例说明如何使用 epc
2、TCPIP示例目标包,进行 UDP 通信应用程序开发。1.1MINIARM M3350 工控机主板提供了 Windows Embedded Compact 7 操作系统中的epcTCPIP包。本应用开发示例通过使用 VS2008 编写一个运行于 MINIARM M3350 上面的 WindowsEmbedded Compact 7 操作系统中的应用程序。此应用程序通过使用 epcTCPIP包来实现UDP 的通讯。此应用程序可以通过 MINIARM M3350 上的以太网适配器,跟以太网中的任何一台终端进行 UDP 通讯。MINIARM M3350 工控机主板上提供的 epcTCPIP包的使用见
3、epcTCPIP包使用说明。1.2示例步骤下面详细说明本示例的建立、代码编写、运行等过程。1.2.1建立和配置工程(1)在 VS2008 里面新建一个 MFC 智能设备应用程序的工程,工程名 udp,SDK类型为“M3350_SDK”。应用程序类型为“基于国)”,点击“下一步”按钮进入下一步。框”,资源语言选择“中文(中图 1.1 新建工程向导2013 Guangzhou ZHIYUAN Electronics CO.,.1MiniARM M3350(2)在图 1.2输入框标题为“UDP客户端通讯”。在图 1.3中选择此应用程序包含“Windows套接字”,点击“Finish”按钮完成工程的建
4、立。图 1.2添加标题图 1.3 选择应用程序所包含的特性(3)添加epcTCPIP包到当前工程,包里面的epcTCPIP.h和epcTCPIP.lib到工作区,如图 1.4所示。2013 Guangzhou ZHIYUAN Electronics CO.,.2MiniARM M3350图 1.4包的文件到工程目录下面添加epcTCPIP.h文件到工程,点击菜单栏“项目”“添加现有项”,如图 1.5所示。然后在工程目录下面选择epcTCPIP.h添加到工程。(4)图 1.5 添加 epcTCPIP.h 文件到工程(5)设置项目属性。点击菜单“项目(P)” “属性(P)”,会弹出udp属性页窗口
5、,如图 1.6所示,在“配置(C):”栏中选择“所有配置”,在窗口左边选定“配置属性” “器” “输入”,在“附加依赖项”内输入“epcTCPIP.lib”,然后点击“确定”按钮。2013 Guangzhou ZHIYUAN Electronics CO.,.3MiniARM M3350图 1.6 设置工程静态属性1.2.2(1)框的绘制框资源下面绘制框,如图 1.7所示。在资源视图里面的图 1.7框模型(2)更改相关控件ID。框上面的控件命名如表 1.1所示。表 1.1 各控件属性列表2013 Guangzhou ZHIYUAN Electronics CO.,.4控件名称标题ID说明下拉列
6、表框(Edit Box)BO_localip本地IP 地址列表编辑框(Edit Box)IDC_EDIT_localport本地端MiniARM M3350(3)框各控件添加成员变量。添加完的框各控件成员变量如表 1.2所示。给表 1.2添加成员变量列表添加代码头文件的配置在 udpDlg.h 文件包含头文件 epcTCPIP.h。在 udpDlg.h 文件开始,宏定义用户接收数据缓冲区大小,注意,此宏定义应该小于 1460。然后在“CudpDlg”类中添加公有属性,如程序1.1所示。2013 Guangzhou ZHIYUAN Electronics CO.,.5#define RX_BUF
7、_SIZE100变量类型ID变量名CComboBoxBO_localipm_localipIDC_EDIT_localportm_localportIDC_EDIT_remotipm_remoteipCEditIDC_EDIT_remoteportm_remoteportCEditIDC_EDIT_rxm_rxCEditIDC_EDIT_txm_txCButtonIDC_BUTTON_openm_open编辑框(Edit Box)IDC_EDIT_remotipIP 地址编辑框(Edit Box)IDC_EDIT_remoteport端编辑框(Edit Box)IDC_EDIT_rx数据接收窗
8、口编辑框(Edit Box)IDC_EDIT_tx数据发送窗口按钮(Button)打开IDC_BUTTON_open打开本地端口按钮(Button)停止IDC_BUTTON_close关闭此次连接按钮(Button)清空IDC_BUTTON_rxclr清空数据接收窗口按钮(Button)清空IDC_BUTTON_txclr清空数据发送窗口按钮(Button)发送IDC_BUTTON_send发送数据MiniARM M3350程序1.1 在框类中添加的属性程序程序程序1.1 (1):定义一个TCP/IP服务的句柄;1.1 (2):定义一个用户接收数据缓冲区;1.1 (3):定义用户接收数据缓冲区
9、游标。(2)编写用户接收数据回调函数。如程序1.2所示。程序1.2用户接收数据回调函数2013 Guangzhou ZHIYUAN Electronics CO.,.6void mytcpipReceivedata (void*pvOutput,unsigned longulIpaddr,unsigned shortulPort,char*pcData,unsigned shortusDatalength)CUdpDlg*cupdlgTmp = (CUdpDlg*)pvOutput;(1)iTmp;iTmp = ulIpaddr;(2)iTmp = ulPort;if (usDatalengt
10、h = TCP_CONNECTED ) (3)return;if (usDatalength = TCP_TERMINATE ) (4)MessageBox(NULL,_T(Remote connection was terminated!),_T(Information), MB_ICONHAND);return;if (usDatalength = ERR_RX_THREAD ) (5)MessageBox(NULL,_T(Remote connection was error!),_T(Error), MB_ICONHAND);return;public:HANDLEctcpipLoca
11、l;(1)unsigned shortpusRxbufRX_BUF_SIZE;(2)unsigned shortusIndex;(3)MiniARM M3350程序1.2 (1):转换用户指针参数pvOutput的数据类型为当前窗口的指针。以前对窗口进行操作;1.2 (2):1.2 (3):防止编译警告。因为在客户机模式下,IP地址和端程序程序成功;程序止;程序不需要;如果接收到数据的长度为宏“ TCP_CONNECTED”,表示连接建立1.2 (4):如果接收到数据的长度为宏“ TCP_TERMINATE”,表示连接已经终1.2 (5):如果接收到数据的长度为宏“ ERR_RX_THREAD
12、”,表示epcTCPIP包里面的接收线程出错,然后弹出错误框;程序1.2 (6):判断用户接收缓冲区是否溢出。如果是,弹出警告框,丢掉接收到的数据;1.2 (7):程序示;程序常;程序程序将接收到的数据从字节型换为宽字符类型,以便用户界面能够正确显1.2 (8):让接收到数据的最后一个半字节为 0,以便字符串显示的时候比较正1.2 (9):1.2 (10):在框的“数据接收窗口”显示从以太网接收到的数据;移动用户接收数据的缓冲区游标。(3)在此框的初始化方法OnInitDialog()中添加如程序1.3所示代码。程序1.3 初始化框方法2013 Guangzhou ZHIYUAN Electr
13、onics CO.,.7BOOL CUdpDlg:OnInitDialog()CDialog:OnInitDialog();if (cupdlgTmp-usIndex + usDatalength) RX_BUF_SIZE) (6) MessageBox(NULL3_T(Receive Buf is Full!),_T(Warning), MB_ICONHAND);return;MultiByteToWideChar(CP_ACP,0,pcData, usDatalength,&cupdlgTmp-pusRxbufcupdlgTmp-usIndex,usDatalength);(7)cupdl
14、gTmp-pusRxbufcupdlgTmp-usIndex+usDatalength = 0;(8)cupdlgTmp-m_rx.SetWindowText(cupdlgTmp-pusRxbuf);(9)cupdlgTmp-usIndex = (unsigned short)(cupdlgTmp-usIndex + usDatalength);(10)MiniARM M33501.3 (1):1.3 (2):本地IP地址列表缓冲区;程序程序调用epcTCPIP包的服务初始化函数,初始化本地TCP/IP服务。传递用户接收数据缓冲区大小和回调含函数指针到此epcTCPIP表;包中,得到本地IP地
15、址列2013 Guangzhou ZHIYUAN Electronics CO.,.8/ Set the icon for this dialog. The framework does this automatically/ when the applications main window is not a dialog SetIcon(m_hIcon, TRUE); / Set big icon SetIcon(m_hIcon, FALSE);/ Set small iconCenterWindow(GetDesktopWindow();unsigned longulLocalip5;(
16、1)iIpnum;ctcpipLocal = epcProtocolInit(ulLocalip,&iIpnum, RX_BUF_SIZE,mytcpipReceivedata,this);(2)if (ctcpipLocal = NULL) (3)epcProtocolExit(ctcpipLocal); return 0;i;CString csTmpstr;for (i=0; i 8) & 0 xff, (ulLocalipi 16) & 0 xff,(ulLocalipi 24) & 0 xff);(4)this-m_localip.AddString(csTmpstr);(5)thi
17、s-m_localip.SetCurSel(0);this-usIndex = 0;(6)this-m_localport = 1024;(7)this-m_remoteport = 1024;(8)this-m_remoteip.SetWindowText(_T(192.168.0.230);(9) UpdateData(false);return TRUE; / return TRUE unless you set the focus to a controlMiniARM M3350程序1.3 (3):如果构造函数返回本地IP地址列表为NULL,说明构造函数执行失败。删除此对象,错误返回
18、;1.3 (4):1.3 (5):将 32 位的IP地址转换为点分式的IP地址格式;程序程序添加得到的IP地址列表到框的“本地IP地址”的下拉列表框;程序清单 1.3 (6):初始化用户接收数据缓冲区游标;程序程序程序1.3 (7):1.3 (8):1.3 (9):默认显示本地端为 1024;为 1024;默认显示默认显示端IP地址为 192.168.0.230。(4)给“打开”按钮添加单击事件码,其代码如程序1.4所示。程序1.4 “打开”按钮单击事件代码2013 Guangzhou ZHIYUAN Electronics CO.,.9void CUdpDlg:OnBUTTONopen()u
19、nsigned shortpusTmpip16;usTmplen = 0;charpcTmpip16; unsigned longulTmplocalip = 0; unsigned longulTmpremoteip = 0; boolbTmpret = false;usTmplen = this-m_localip.GetWindowText(pusTmpip, 16);(1) WideCharToMultiByte(CP_ACP,0,pusTmpip, usTmplen, pcTmpip, usTmplen, NULL,NULL);(2)pcTmpipusTmplen = 0;ulTmp
20、localip = inet_addr(pcTmpip);(3)usTmplen = this-m_remoteip.GetWindowText(pusTmpip, 16);(4) WideCharToMultiByte(CP_ACP,0,pusTmpip, usTmplen, pcTmpip, usTmplen, NULL,NULL);(5)pcTmpipusTmplen = 0;MiniARM M33501.4 (1):1.4 (2):1.4 (3):1.4 (4):1.4 (5):1.4 (6):1.4 (7):从框得到用户选择的本地IP地址; 从把宽字符串转换为字符串类型的数组;从将点
21、分式的IP地址类型转换为 32 位的IP地址类型;程序程序程序程序程序程序程序框得到IP地址;从从从把宽字符串转换为字符串类型的数组;从将点分式的IP地址类型转换为 32 位的IP地址类型;从epcTCPIP包的服务启动函数epcProtocolStartup (),以UDP客户机的方式启动服务。程序程序程序程序程序程序1.4 (8):1.4 (9):1.4 (10):1.4 (11):1.4 (12):1.4 (13):从如果协议启动成功,禁用框相关控件;从禁用从禁用从禁用从禁用从禁用框“打开”按钮;框“框“IP地址”编辑框;端口”编辑框;框“本地IP地址”下拉框;框“端口”编辑框。(5)给
22、“停止”按钮添加单击事件,其代码如程序1.5所示。程序1.5 “停止”按钮单击事件代码2013 Guangzhou ZHIYUAN Electronics CO.,.10void CUdpDlg:OnBUTTONclose()epcProtocolExit(ctcpipLocal);(1)ulTmpremoteip = inet_addr(pcTmpip);(6)UpdateDrue);bTmpret = epcProtocolStartup(ctcpipLocal, PT_UDP,ulTmplocalip,(unsigned short)this-m_localport, ulTmpremo
23、teip,(unsigned short)this-m_remoteport, MODE_CNT);(7)if (bTmpret) (8)this-m_open.EnableWindow(false);(9)this-m_remoteip.EnableWindow(false);(10)CEdit * ceditTmp = (CEdit *)GetDlgItem(IDC_EDIT_remoteport);ceditTmp-EnableWindow(false);(11)this-m_localip.EnableWindow(false);(12)ceditTmp = (CEdit *)GetD
24、lgItem(IDC_EDIT_localport);ceditTmp-EnableWindow(false);(13)MiniARM M33501.5 (1):1.5 (2):1.5 (3):1.5 (4):1.5 (5):1.5 (6):退出TCP/IP服务;程序程序程序程序程序程序启用启用启用启用启用框“打开”按钮;框“框“IP地址”编辑框;端口”编辑框;框“本地IP地址”下拉框;框“本地端口”编辑框。(6)1.6所示。给接收窗口的“清空”按钮添加单击事件,其代码如下程序程序1.6 接收窗口“清空”按钮单击事件代码程序程序1.6 (1):1.6 (2):复位用户接收数据缓冲区游标;清空框
25、数据接收窗口的显示区域。(7)给发送窗口的“清空”按钮添加单击事件,其代码如下程序1.7所示。程序1.7 发送窗口“清空”按钮单击事件代码程序1.7 (1):清空框的数据发送窗口的显示数据。(8)给“发送”按钮添加单击事件,其代码如程序1.8所示。2013 Guangzhou ZHIYUAN Electronics CO.,.11void CUdpDlg:OnBUTTONtxclr()this-m_tx.SetWindowText(_T();(1)void CUdpDlg:OnBUTTONrxclr()this-usIndex = 0;(1)this-m_rx.SetWindowText(_T
26、();(2)this-m_open.EnableWindow(true);(2)this-m_remoteip.EnableWindow(true);(3)CEdit * ceditTmp = (CEdit *)GetDlgItem(IDC_EDIT_remoteport);ceditTmp-EnableWindow(true);(4)this-m_localip.EnableWindow(true);(5)ceditTmp = (CEdit *)GetDlgItem(IDC_EDIT_localport);ceditTmp-EnableWindow(true);(6)this-EndDial
27、og(0);MiniARM M3350程序1.8 “发送”按钮单击事件代码程序程序程序程序1.8 (1):1.8 (2):1.8 (3):1.8 (4):从框得到IP地址;转换宽字符类型为字符串类型;转换点分式的IP地址为 32 位的IP地址格式;定义用户发送数据缓冲区;2013 Guangzhou ZHIYUAN Electronics CO.,.12void CUdpDlg:OnBUTTONsend()unsigned shortpusTmpip16;usTmplen = 0;char pcTmpip16; unsigned longulTmpRemoteip;usTmplen = thi
28、s-m_remoteip.GetWindowText(pusTmpip, 16);(1) WideCharToMultiByte(CP_ACP,0,pusTmpip, usTmplen, pcTmpip, usTmplen, NULL,NULL);(2)pcTmpipusTmplen = 0;ulTmpRemoteip = inet_addr(pcTmpip);(3)charpcTmpsendbufRX_BUF_SIZE;(4)unsigned short pusTmpsendbufRX_BUF_SIZE;(5)usTmplen = this-m_tx.GetWindowText(pusTmpsendbuf, RX_BUF_SIZE);(6) WideCharToMultiByte(CP_ACP,0,pusTmpsendbuf, us
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年图书发行销售宣传渠道合约条款
- 2025年AR技术转让协议
- 2025年夜间城市观光合同
- 2025年出口信用保险保险合同(签名版)
- 二零二五版校园食堂食品安全合作协议3篇
- 2025版专业房产行纪委托买卖合同细则3篇
- 2024离婚涉及的竞业限制合同
- 2025年度高层建筑石材钢架施工安全防护与质量保证合同4篇
- 2024起诉离婚后子女抚养权及监护权纠纷调解服务协议3篇
- 二零二五年度租赁房屋租赁合同登记备案协议
- 服务器报价表
- 2025年高考化学试题分析及复习策略讲座
- 世界近代史-对接选择性必修 课件-高考统编版历史一轮复习
- 2024-2029年中国制浆系统行业市场现状分析及竞争格局与投资发展研究报告
- 大门封条模板
- 【“凡尔赛”网络流行语的形成及传播研究11000字(论文)】
- ppr管件注塑工艺
- 液化气站其他危险和有害因素辨识及分析
- 高中语文教学课例《劝学》课程思政核心素养教学设计及总结反思
- 中国农业银行小微企业信贷业务贷后管理办法规定
- 市政道路建设工程竣工验收质量自评报告
评论
0/150
提交评论