用Visual C++与全站仪通讯

来源 :高校教育研究 | 被引量 : 0次 | 上传用户:RHLOK007
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘要】 本文针对TOPCON系列通讯软件不能传输大量数据的情况,用Visual C++编写了无数量限制的通讯程序,此方法不但适用于TOPCON、NIKKOR、LECIA系列全站仪,而且适用于所有采用串行通讯的全站仪和类似设备。
  【关键词】 MFC;全站仪;串口通讯
  【中图分类号】:G623.58【文献标识码】:B 【文章编号】:1009-9646(2008)04-0095-01
  
  TOPCON系列全站仪的官方通讯软件为T_Com,从其1.0到现在的最新版本1.5均存在不能传输大量数据的问题(坐标数据大于约1300条或测量数据大于约510条)。这样要传输大于这一限制的记录,只能在逐条删除其前面的记录后,才能进行,这一bug严重影响了全站仪的充分使用。而且,NIKKOR系列软件也存在这一问题,针对以上情况,再考虑到串行通讯的广泛性,以及Visual C++对通讯端口读写和数据通讯的良好封装和强大功能,选用了该方法。
  
  1 实现原理
  
  为了实现比较完善的数据通讯功能,需要了解以下概念:
  1.1 端口配置。全站仪大多采用串行通讯,串口包括常见的COM口和USB口,串口与其它磁盘文件相对而言,其读写函数并无多大区别,实际上将读写操作转化为串口或并口的工作是由硬件驱动程序完成的。并不需要普通编程人员的控制,需要注意的只是串行通讯需要设置有关的串行通信参数,这包括波特率、数据位、校验位、停止位和数据传输延迟。
  在Visuaul C++中,可以采用Windows API中的SetCommState()函数来设置串口的通讯参数,也可以采用下面的方式配置:
  DCB dcb;
  ::GetCommState(file.m_hFile,&dcb);
  dcb.BaudRate=2400;//设置波特率
  dcb.ByteSize=7; //设置数据位
  dcb.StopBits=1; //设置停止位
  dcb.Parity=0; //设置奇偶校验
  ::setCommState(file.m_hFile,&dcb);
  还需要设置串口的超时通讯时间:可以采用::SetCommTimeouts()函数实现(详细参数参见VC帮助)。
  1.2 数据通信。端口配置好后,就可以采用套接字(在MFC中封装为CSocket类)技术进行数据通信,Windows套接字允许两个或者两个以上的应用程序相互通讯,其通讯平台可以在非Windows平台之上,这样程序就可以使用在采用不同的操作系统的全站仪上。套接字的通讯过程如下:
  1.2.1 应用程序A创建一个“监听”套接字,然后使用CSocket::Listen()函数查询想与他对话的应用程序请求。
  1.2.2 应用程序B创建一个套接字然后使用CSocket::Connect()试图与应用程序A连接。
  1.2.3 应用程序A通过创建一个新的套接字并将它传送到CSocket::Accept(),以此在CSocket:OnAccept()中接受应用程序B的请求。
  1.2.4 此后两个应用程序之间使用CSoket::Receive()和CSocket::Send()便可以进行通信。
  


  1.3 数据处理。数据处理部分完成对接收数据的存储、编辑、转换,可以根据工作的需要以特定的格式存储,如将由全站仪采集的数据直接以文本格式记录在磁盘文件中,也可以进行数据的预处理,转换为其它软件可以直接读取的格式,如转换为逗号分隔的CSV文件,可以直接由Excel直接读取等等。
  1.4 其他要点。数据传输采用报文机制,建议将报文在端口的接收和对报文的具体处理分开,这样更有利于程序编写,每传输一条记录寄送一条消息,当传输时寄送传输消息,当传输结束时寄送结束消息。在端口通讯类中实现连接的建立、解除和串口的读写,在应用程序类实现对数据的预处理和转存。
  为了编写一个健壮的读写程序,建议采用多线程技术创建一个独立的线程负责数据的传输,这样可以不影响其他数据的处理,确保数据的稳定传输。
  
  2 结语
  
  基于以上思路,作者在VC6.0、.Net2002和.Net2005上实现了所有功能,程序运行稳定可靠,不受数量限制,完全可以替代官方軟件。采用了较多的技术元素,包括套接字类CSocket,多线程,自定义消息等技术,这些技术可以将传输的各个环节有机的组织和封装起来,便于扩展和错误检查,所以程序的健壮性较高。以上功能可以集成到所有需要与全站仪等通讯的软件中,如一体化测图软件,在传输过程中进行预处理,一次性完成数据的传输、编辑、输出工作,具有很高的实用价值。
  
  参考文献
  [1] 伍红兵编著.Visual C++ 编程深入引导[M].北京:中国水利水电出版社,2002.
  [2] 张军等译.MicroSoft MFC类库大全[M],北京:清华大学出版社,1995.
  [3] John E.Swanke, VC++MFC by Example[M].前导工作室译.北京:机械工业出版社,2000.
  收稿日期:2008-3-29
其他文献
【摘要】 学风建设是高校的一项基础性的工作,是高等教育改革和发展的永恒主题。本文通过调查总结了目前存在的不良学风现象,分析了当前不良学风产生的原因,通过“老师对你学习的作用”的调查,考查了高校教师,包括任课教师、辅导员和班导师等对大学生在大学期间提高学习成绩方面的作用,为进一步做好高校学风建设工作提供一定的参考依据。  【关键词】 高校教师;学风建设;作用  【中图分类号】:G641【文献标识码】
期刊
【摘要】 目的:探讨心理健康教育对2型糖尿病住院患者生存质量的影响。方法:采用病例对照研究,将于2007年6月到10月期间在山西省人民医院住院的2型糖尿病患者随机分为干预组和对照组,在院内常规治疗下,对干预组进行团体训练形式的心理健康教育后测查干预前后症状自评量表(SCL-90)的差异。结果:干预组在治疗前后SCL-90总分、抑郁、焦虑、敌对维度评分降低明显,且差异有統计学显著性(P<0.05);
期刊
【摘要】 助学贷款是党中央、国务院在社会主义市场经济条件下,利用金融手段资助家庭经济困难在校学生的重要手段。本文通过介绍现存的助学贷款模式,对制约助学贷款发展的主要问题进行分析,并在此基础上提出相应发展对策。  【关键词】 助学贷款;模式;问题;对策    The Analysis on the Current Style and Problems on the Student Loan in C
期刊
【摘要】 本文通过对我国物流创新人才现状的分析,明确了培养创新人才的途径,并对相关问题给出了培养策略和对策建议。   【关键词】 物流;创新  【中图分类号】:G808.22【文献标识码】:B 【文章编号】:1009-9646(2008)04-0001-03    1 我国物流创新人才培养现状    随着世界经济的高速发展和经济全球化趋势的日益突出,现代物流理论和技术已在发达国家中得到了空前的应用
期刊
【摘要】 作为“MRSD教学模式”的重要组成部分,“研究型-开放式-动态性”社会实践模式的构建,基于“中国近现代史纲要”的非专业共同课和思想政治理论课定位。构建的原则,是因材施教、定性与定量相结合、柔性的自律和钢性的他律相统一、课内理论知识和课外鲜活经验相结合等。运行的方式,以假期为主,以学生的家乡为调研基地,通过实地考察、当事者访谈、图片对比、问卷调查、数据分析等方法,形成描述性、解释性、探索性
期刊
【摘要】 本文介绍了“411”人才培养模式的主要特色和在高职教育中的具体实践以及取得的成效。按照职业技能的形成规律,要有效地培养高素质的技能型人才可通过多层次的技能培养方案进行,并重点强化项目化教学。项目化教学可培养学生的综合能力,项目的来源包括企业的项目、教师开发的项目、学生开发的项目等。  【关键词】 育人模式;探索与实践;多层次培养;项目实训  【中图分类号】:G71【文献标识码】:A 【文
期刊
【摘要】 翻译是将一种语言文化承载的意义转换到另一种语言文化中的跨语言、跨文化的交际活动。语言与文化的共性使翻译成为可能,语言与文化的个性给翻译带来重重障碍。本文试以文化负载词的英译为切入点,从语言与文化,语言与翻译及文化与翻译三个方面来阐述翻译实际上是翻译文化这一概念。  【关键词】 翻译;语言;文化;文化负载词  【中图分类号】:G04【文献标识码】:B 【文章编号】:1009-9646(20
期刊
【摘要】 二维动画与三维动画制作技术的相互渗透,三维建模与三维材质相结合使用的动画制作新手法的出现。这一手法使三维动画制作打破了原先那种强调写实、强调场景恢弘、强调高科技的固有思维模式的局限,使三维动画不再只是单纯的三维电脑技术堆砌的产物。三维、二维两者相互结合,发挥其优势、互补其各自局限,使动画片显得形式清新、内容亲切、层次丰富,趣味昂然的同时也带给了你三维动画的全新视觉感受。  【关键词】 三
期刊
【摘要】 自从有了数字图形技术以来,游戏就成了无限风光的产业,它作为一种现代新兴的娱乐方式,经历了几十年不断的更新,日趋成熟,己经融入于现实社会当中,成为人们生活中不可缺少的一部分。本文先简述一下游戏的发展,游戏的表现形式从传统的二维到三维的转变。然后写游戏中空间感的形成和表现,三维技术介入游戏突破了传统的二维游戏中固定视觉的表现操作方式俱体说明三维游戏对于空间感的表现,多视觉,虚拟真实空间。最后
期刊
【摘要】 随着计算机应用地不断深入,对高职教育提出了新的要求,要求高职院校培养的学生不仅要有一定的理论知识,而且更重要的是要有一定的实际操作能力和熟练的技能,因此高职C语言教学主要目的是培养学生两方面的能力:分析程序和设计程序的能力。  【关键词】 C语言;程序设计;能力;软件工程  【中图分类号】:G434【文献标识码】:A 【文章编号】:1009-9646(2008)04-0096-02   
期刊