论文部分内容阅读
摘要:WinCE.net是PDA的最新操作系统,其程序开发环境已经由eVC3.0/eVB3.0变为eVC4.0和VB.net,和串口数据指令通信已经不再支MSComm CE 3.0控件,必须采用比效复杂但却功能灵活的API函数。本文在研究开发WinCE.net下PDA应用程序的基础上,以数字水准仪为例,实现了PDA和数字水准仪的串口数据通信、水准测量的自动化操控和野外使用PDA处理内业的数据处理功能。
关键词:WinCE.net,串口数据通信,PDA程序开发
中图分类号:E271文献标识码: A
一、概述:
PDA是英文Personal Digital Assistant的简称,也就是个人数字助理(俗称掌上电脑),各种类型的PDA,就是一个能帮忙我们高效完成日常杂事的小型电子设备。在测量行业,PDA的便携性和触摸屏操作的直观性很适合测量作业的外业记录、仪器操控和外业数据处理。我们熟悉的各测绘仪器厂家的操控手簿都莫不属于PDA家族。当今流行的PDA手机GPS导航系统正代表了我们测绘行业的新形象。
二、PDA操作系统及其开发工具
针对PDA上的软件开发也就是IT行业所谓的嵌入式开发,其最大的特点是开发要根据不同PDA的OS和其千差万别的硬件来进行量体裁衣的定制开发。3Com、IBM和Handspring等世界知名公司都开发或支持不同的PDA操作系统,Palm和Sybian等是早期广为流传的PDA操作系统,都有自己的Dev Kit(开发包),微软随后看到PDA的巨大市场潜力,迅速组织了自己强大的开发队伍并后来居上。微软的PDA操作系统Windows CE(简称WinCE),来势汹汹且阵容浩大,受到了康柏(Compaq)、卡西欧(Casio)和NEC等公司的青睐,其支持的硬件包括x86、MIPS和SH系列,使其很快成为当今PDA的主流。微软在PDA战略上采用一贯的边发展边市场化的特点,使WinCE的内核分别基于Windows CE 3.0和Windows CE.NET(即4.0),版本号从3.0到6.0,逐步升级,不断完善,大家常见的Pocket PC 2002是基于WinCE 3.0的平台,Pocket PC 2003和Smart Phone 2003统称为Windows Mobile 2003是基于WinCE 4.0的。
其开发工具与其操作系统的版本是对应的,WinCE3.0对应的eVB3.0和eVC3.0,但是WinCE4.0就必须使用VB.net,eVB3.0开发的程序就不能够在WinCE4.0上运行,另外.net的DEV开发支持从Framework1.0到现在的Framework2.0,功能逐渐增加,开发人员须注意这一点,否则开发的程序可能因为版本或功能的原因无法在PDA上运行而走弯路。
清晰了平台与CE之间的关系,解释平台与开发工具之间的关系就很容易了。微软提供给应用程序开发者的开发工具与Windows CE的版本号对应的,其包括:Embedded Visual Tools 3.0,其中包括Embedded Visual C++ 3.0和Embedded Visual Basic 3.0;Embedded Visual C++ 4.0和Visual Studio.NET。
用户在进行WinCE.net应用程序开发之前,必须完成以下工作:
1、安装PDA的随机附带光盘,完成ActiveSync环境的搭建工作,此时,用户只要将PDA通过USB口和计算机连接,双方将会自动建立连接,可以实现PDA和计算机的同步操作;2、安装Visual Studio.NET,该软件还包含Standard SDK for WinCE.net程序,一般选择完全安装;3、安装Pocket PC 2003 SDK软件包,并且必须安装微软提供的Pocket PC 2003模拟器补丁。
完成上述安装后,即可在Visual Studio.NET新建一个开始程序。此时用户必须选择适合PDA型号的CPU类型,程序开始编译时,必须选择合适的CPU类型。为了方便调试,微软提供了WinCE.net应用程序的模拟器,此时必须选择PDA类型,在程序调试完成后,执行编译并上载到PDA。需要注意的是,模拟器无法完成串口通信等操作,需要真机调试。
三、Windows CE下API串口通信函数的实现
串口通讯接口比较常见,其标准R-232使用率很高,多数仪器仪表都留有串口接口,我们测量使用的数字水准仪、数字经纬仪、全站仪、GPS都使用或至少留有串口接口并支持R-232标准,所以仪器和PDA之间的通讯采用串口R-232程序,开发可以采用MS CE COMM 3.0通信控件也可以采用API函数实现和全站仪的串口通信。但是在Windows CE下对MSCE COMM3.0控件(串口通信控件)的支持受到CE版本的限制,通用性较差,使用API虽然比较麻烦,但其通用性很强,PAI可以说是跨平台的,大家可以比较一下VC和VB开发平台下的程序源码,会发现API代码几乎是一样的,CE 下开发API串口的通信函数如下。
1、以独占方式打开串口
HANDLE m_hComm
m_hComm = CreateFile(_T(“COM1:”),GENERIC_READ | GENERIC_WRITE,
0,NULL, OPEN_EXISTING, 0,NULL )
2、配置串口的波特率、奇偶校验和数据位等参数
DCB commParam
commParam.BaudRate = baud
commParam.fBinary = TRUE
commParam.fParity = TRUE 支持奇偶校验
commParam.Parity = NOPARITY 校验模式
commParam.fDtrControl = DTR_CONTROL_ENABLE DTR flow control type
commParam.fRtsControl = RTS_CONTROL_ENABLE RTS flow control
commParam.fAbortOnError = FALSE 當串口发生错误,并不终止串口读写
………..串口其他参数配置
SetCommState(m_hComm, &commParam)
3、读取串口数据
TCHAR buffer[800]
DWORD dwBytesRead=800
ReadFile(pFile,buffer,800,&dwBytesRead,NULL)
4、向串口写数据
CString strPoint
WriteFile(pFile,strPoint,2*strPoint.GetLength(),&BytesWrite,NULL)
5、关闭串口
BOOL bResult=CloseHandle(pFile)
以上是在CE 4.0下利用API函数进行串口通信的基本步骤,在实际应用程序中,还必须进行串口缓冲区清空、设置端口读写超时等操作。由于CE 4.0的串口通信比较复杂,因此对API函数的串口通信进行了类的封装,在串口通信类 CCESeries中,封装了打开/关闭串口、读写串口、读写线程、设置时间超时等功能。在PDA与仪器进行串口通信时,用户只需要调用该类,即可实现串口通信。
四、软件实现主要功能
1.让PDA或PPC掌上移动设备和水准仪器通讯,发送控制指令,交换数据,实现自动操控和数据在PDA上的存储和适时处理,使内外业可适时并行进行。
2.通过手簿PDA可視化的操控界面,进行友好对话式的测量操作和数据适时检查。打开手簿按照对话提示,点击相应的按钮即可按提示进行下一步测量操作,达到傻瓜化的目的。
3.操作及错误提示:操作错误或操作步骤混乱时根据当时的状态通过消息提示告诉操作人员较合理的操作提示,使操作人员能够根据提示避免错误将操作过程正确完成。
4.以前测水准都要估计距离,大多拿皮尺测量距离,费时费工,本程序添加了自由测距功能操作者随时可以测定距离,省去皮尺测量的繁琐,发挥数字水准仪的优势,在程序工作界面上随时显示距离、标高、距离差、总距离等信息,使测量成为可视化的操作尽可能的减少人为错误出现。
5.多种方式数据存储和自动补偿及加密数据存储:根据外业操作和处理的不同习惯,把数据分别按线路、起末点、当天日期存储,以便多种形式的数据处理。加密数据可以有效防治篡改数据的事情发生,存储数据时分为可读数据和加密数据,即保证各种仪器厂家自己的数据格式,保证各个仪器厂家自带的软件可以照常使用,又便于检查组检查观测数据。水准测量如果有一站数据不完整整个测段就会受影响乃至重测,为了保证数据的完整性,如果操作人员操作失误就会使整个测段重测,自动存储就避免了丢失数据发生。
6.野外进行内业检核和处理:每段测玩后,可以直接在野外适时进行符合路线闭合差检验,检查水准路线测量数据是否符合限差,符合限差即可结束测量进行后期数据处理,超过限差当场进行重测,避免回内业导取数据、进行处理、然后再组织人员进行野外重测量,提高了工作效率。又可使用WinCE系统自带EXCEL 表格,直接在PDA上生成各种高差表和其他图表,代替传统的内业工作量,改变工作方式,提高工作效率。
五、结束语
笔者结合具体的工程实践和工程要求,实现了WinCE.net下应用程序的开发,成功实现了数字水准仪控制手簿及数据处理软件的各种功能,并为进一步开发基于WinCE.net的PDA全站仪和GPS测量应用程序奠定了基础。
参考文献
[1]刘鑫, 陈峰, 李瑾. 在WinCE下实现串口通信[J]. 通信技术, 2003,(01)
[2]何卫,王保保. GPS与PDA的串口通信研究[J]. 工业控制计算机, 2003,(11)
[3]张新房等,基于WinCE3.0的嵌入式控制器研究[J]. 计算机测量与控制, 2003,(06)
关键词:WinCE.net,串口数据通信,PDA程序开发
中图分类号:E271文献标识码: A
一、概述:
PDA是英文Personal Digital Assistant的简称,也就是个人数字助理(俗称掌上电脑),各种类型的PDA,就是一个能帮忙我们高效完成日常杂事的小型电子设备。在测量行业,PDA的便携性和触摸屏操作的直观性很适合测量作业的外业记录、仪器操控和外业数据处理。我们熟悉的各测绘仪器厂家的操控手簿都莫不属于PDA家族。当今流行的PDA手机GPS导航系统正代表了我们测绘行业的新形象。
二、PDA操作系统及其开发工具
针对PDA上的软件开发也就是IT行业所谓的嵌入式开发,其最大的特点是开发要根据不同PDA的OS和其千差万别的硬件来进行量体裁衣的定制开发。3Com、IBM和Handspring等世界知名公司都开发或支持不同的PDA操作系统,Palm和Sybian等是早期广为流传的PDA操作系统,都有自己的Dev Kit(开发包),微软随后看到PDA的巨大市场潜力,迅速组织了自己强大的开发队伍并后来居上。微软的PDA操作系统Windows CE(简称WinCE),来势汹汹且阵容浩大,受到了康柏(Compaq)、卡西欧(Casio)和NEC等公司的青睐,其支持的硬件包括x86、MIPS和SH系列,使其很快成为当今PDA的主流。微软在PDA战略上采用一贯的边发展边市场化的特点,使WinCE的内核分别基于Windows CE 3.0和Windows CE.NET(即4.0),版本号从3.0到6.0,逐步升级,不断完善,大家常见的Pocket PC 2002是基于WinCE 3.0的平台,Pocket PC 2003和Smart Phone 2003统称为Windows Mobile 2003是基于WinCE 4.0的。
其开发工具与其操作系统的版本是对应的,WinCE3.0对应的eVB3.0和eVC3.0,但是WinCE4.0就必须使用VB.net,eVB3.0开发的程序就不能够在WinCE4.0上运行,另外.net的DEV开发支持从Framework1.0到现在的Framework2.0,功能逐渐增加,开发人员须注意这一点,否则开发的程序可能因为版本或功能的原因无法在PDA上运行而走弯路。
清晰了平台与CE之间的关系,解释平台与开发工具之间的关系就很容易了。微软提供给应用程序开发者的开发工具与Windows CE的版本号对应的,其包括:Embedded Visual Tools 3.0,其中包括Embedded Visual C++ 3.0和Embedded Visual Basic 3.0;Embedded Visual C++ 4.0和Visual Studio.NET。
用户在进行WinCE.net应用程序开发之前,必须完成以下工作:
1、安装PDA的随机附带光盘,完成ActiveSync环境的搭建工作,此时,用户只要将PDA通过USB口和计算机连接,双方将会自动建立连接,可以实现PDA和计算机的同步操作;2、安装Visual Studio.NET,该软件还包含Standard SDK for WinCE.net程序,一般选择完全安装;3、安装Pocket PC 2003 SDK软件包,并且必须安装微软提供的Pocket PC 2003模拟器补丁。
完成上述安装后,即可在Visual Studio.NET新建一个开始程序。此时用户必须选择适合PDA型号的CPU类型,程序开始编译时,必须选择合适的CPU类型。为了方便调试,微软提供了WinCE.net应用程序的模拟器,此时必须选择PDA类型,在程序调试完成后,执行编译并上载到PDA。需要注意的是,模拟器无法完成串口通信等操作,需要真机调试。
三、Windows CE下API串口通信函数的实现
串口通讯接口比较常见,其标准R-232使用率很高,多数仪器仪表都留有串口接口,我们测量使用的数字水准仪、数字经纬仪、全站仪、GPS都使用或至少留有串口接口并支持R-232标准,所以仪器和PDA之间的通讯采用串口R-232程序,开发可以采用MS CE COMM 3.0通信控件也可以采用API函数实现和全站仪的串口通信。但是在Windows CE下对MSCE COMM3.0控件(串口通信控件)的支持受到CE版本的限制,通用性较差,使用API虽然比较麻烦,但其通用性很强,PAI可以说是跨平台的,大家可以比较一下VC和VB开发平台下的程序源码,会发现API代码几乎是一样的,CE 下开发API串口的通信函数如下。
1、以独占方式打开串口
HANDLE m_hComm
m_hComm = CreateFile(_T(“COM1:”),GENERIC_READ | GENERIC_WRITE,
0,NULL, OPEN_EXISTING, 0,NULL )
2、配置串口的波特率、奇偶校验和数据位等参数
DCB commParam
commParam.BaudRate = baud
commParam.fBinary = TRUE
commParam.fParity = TRUE 支持奇偶校验
commParam.Parity = NOPARITY 校验模式
commParam.fDtrControl = DTR_CONTROL_ENABLE DTR flow control type
commParam.fRtsControl = RTS_CONTROL_ENABLE RTS flow control
commParam.fAbortOnError = FALSE 當串口发生错误,并不终止串口读写
………..串口其他参数配置
SetCommState(m_hComm, &commParam)
3、读取串口数据
TCHAR buffer[800]
DWORD dwBytesRead=800
ReadFile(pFile,buffer,800,&dwBytesRead,NULL)
4、向串口写数据
CString strPoint
WriteFile(pFile,strPoint,2*strPoint.GetLength(),&BytesWrite,NULL)
5、关闭串口
BOOL bResult=CloseHandle(pFile)
以上是在CE 4.0下利用API函数进行串口通信的基本步骤,在实际应用程序中,还必须进行串口缓冲区清空、设置端口读写超时等操作。由于CE 4.0的串口通信比较复杂,因此对API函数的串口通信进行了类的封装,在串口通信类 CCESeries中,封装了打开/关闭串口、读写串口、读写线程、设置时间超时等功能。在PDA与仪器进行串口通信时,用户只需要调用该类,即可实现串口通信。
四、软件实现主要功能
1.让PDA或PPC掌上移动设备和水准仪器通讯,发送控制指令,交换数据,实现自动操控和数据在PDA上的存储和适时处理,使内外业可适时并行进行。
2.通过手簿PDA可視化的操控界面,进行友好对话式的测量操作和数据适时检查。打开手簿按照对话提示,点击相应的按钮即可按提示进行下一步测量操作,达到傻瓜化的目的。
3.操作及错误提示:操作错误或操作步骤混乱时根据当时的状态通过消息提示告诉操作人员较合理的操作提示,使操作人员能够根据提示避免错误将操作过程正确完成。
4.以前测水准都要估计距离,大多拿皮尺测量距离,费时费工,本程序添加了自由测距功能操作者随时可以测定距离,省去皮尺测量的繁琐,发挥数字水准仪的优势,在程序工作界面上随时显示距离、标高、距离差、总距离等信息,使测量成为可视化的操作尽可能的减少人为错误出现。
5.多种方式数据存储和自动补偿及加密数据存储:根据外业操作和处理的不同习惯,把数据分别按线路、起末点、当天日期存储,以便多种形式的数据处理。加密数据可以有效防治篡改数据的事情发生,存储数据时分为可读数据和加密数据,即保证各种仪器厂家自己的数据格式,保证各个仪器厂家自带的软件可以照常使用,又便于检查组检查观测数据。水准测量如果有一站数据不完整整个测段就会受影响乃至重测,为了保证数据的完整性,如果操作人员操作失误就会使整个测段重测,自动存储就避免了丢失数据发生。
6.野外进行内业检核和处理:每段测玩后,可以直接在野外适时进行符合路线闭合差检验,检查水准路线测量数据是否符合限差,符合限差即可结束测量进行后期数据处理,超过限差当场进行重测,避免回内业导取数据、进行处理、然后再组织人员进行野外重测量,提高了工作效率。又可使用WinCE系统自带EXCEL 表格,直接在PDA上生成各种高差表和其他图表,代替传统的内业工作量,改变工作方式,提高工作效率。
五、结束语
笔者结合具体的工程实践和工程要求,实现了WinCE.net下应用程序的开发,成功实现了数字水准仪控制手簿及数据处理软件的各种功能,并为进一步开发基于WinCE.net的PDA全站仪和GPS测量应用程序奠定了基础。
参考文献
[1]刘鑫, 陈峰, 李瑾. 在WinCE下实现串口通信[J]. 通信技术, 2003,(01)
[2]何卫,王保保. GPS与PDA的串口通信研究[J]. 工业控制计算机, 2003,(11)
[3]张新房等,基于WinCE3.0的嵌入式控制器研究[J]. 计算机测量与控制, 2003,(06)