【徕卡全站仪Geocom开发】开发日志#04

文章讲述了作者在开发基于Asp.NetCore的WebAPI服务,使用C#的TCPListener处理串口通信,以及利用EFCore和mySQL进行数据存储的过程中遇到的挑战。前端开发面临桌面端和移动端的自适应问题,以及协助新同事封装通讯接口。文章还讨论了设备开机异常、水平校准和棱镜识别等技术问题,提出了潜在的解决方案,并指出环境因素对测量精度的影响。
摘要由CSDN通过智能技术生成

    之前一直在学习一些后台部分的内容,因为涉及到一些业务的具体模型,因此也请教了同事应该如何设计这些内容。最近抽空来写写最近一段时间的开发过程吧。
    首先是后台的搭建,通过Asp.Net Core来创建WebAPI服务,然后通过C#自带的TcpListener来实现与串口设备的通讯,业务数据的存储通过EF Core与mySQL来实现。
    然后是前端的设计。好消息是前端这块的内容分出去了;坏消息是分出去的只有桌面端前端,网页和手机端以及小程序还得自己写;好消息是桌面端的一些控件我基本上没有使用过,对API的调用基本上一窍不通;坏消息是新同事的C#技术能力有限,很多通讯类的接口得我来帮他封装成一个个单独的方法。
    关于Asp.Net Core以及EF Core部分的内容我就不再详细地叙述了,这块的教程在CSDN上也有不少,这里放两个我自己学习用的网站:
    EFCore 从入门到精通
    Asp.Net Core框架解密-实例演示

发现的一些问题

    在实际的开发过程中还是遇到过不少的问题,我这里就简单描述一下吧。

使用开机指令开机后前两次传输的Ascii码异常

    我定义了一个GeocomCommand的类,封装了一些常用的指令,例如:

[Serializable]
public class OpenDeviceCommand : GeoCommand
{
	public OpenDeviceCommand()
	{
		this.SendCommand = "%R1Q,5011:\r\n";
	}
}

    结果在执行时,设备处于一个关机的状态,因此绘制的消息出现了两次相当长的文本:

//内容我这边暂时获取不到,等能拿到之后我这边再更新这块的内容

    貌似是开机的一些内容。因此在执行任何测量任务之前,最好是获取一次设备的基础信息,例如设备电量或者主板温度之类的消息来判断设备是否开机。
    值得一提的是,在设备关机时,发送任意消息都会让设备开机。

无法通过GeoCom来获取设备本身是否水平

    在一次测量过程中,我发现测量结果误差较大,在12月份左右居家办公的时候,我没有办法去办公室现场调试设备,后来询问同事之后得知,因为旁边另外一个设备安装时,没有足够的空间,因此稍微挪动了脚架的其中一个脚,导致设备不水平。这个在实际应用场景中非常致命,因为我们的设备长时间放置时,如果遇到一些震动或者建筑本身变形,极有可能会导致设备发生倾斜。而geocom口中没有获取仪器水平气泡的信息,无法第一时间了解到仪器的状态。当累计倾斜角超过一定数值时,会不可避免地导致仪器测量失真,因此需要人工频繁地检查仪器状态。
    如果能有一个装置,能让自动调节放置在上面的设备水平角,并且可以连入物联网来进行远程的调控以及信息获取,那这个问题可以迎刃而解。

棱镜小角度辨别问题

    在桥梁施工监控的过程中,在成桥之后需要对桥梁进行全桥测量。此时如果全站仪放置在岸边,会导致全站仪无法看到梁顶标高。因此全站仪只能放置在竖向位移偏小的桥墩处。但是这样会导致多个棱镜相对全站仪的角度偏小(如下图所示)
在这里插入图片描述在这里插入图片描述

    在这种情况下,在将仪器旋转至指定角度,并采用自动锁定时,会导致仪器锁到后面的棱镜,最终测量的结果是后面棱镜的结果。
    解决的方案并不多,其中一个是增加棱镜和仪器的高差,保证两个棱镜之间有足够的角度。但是这种方案并不能很好地解决大跨桥梁的问题,而且仪器放置的越高,对仪器本身的维护、检查会更加麻烦,同时更高的高度意味着更大的变形。
    另外一个解决方案是需要测量指定棱镜时,将其他棱镜的角度反转,从而让仪器捕捉不到其他的棱镜。但是这种方案会导致人工成本呈几何倍数的增加,需要测量的棱镜越多,需要进行操作的棱镜也就越多。
    还有一个新方案是根据桥的跨度来部署仪器。当角度小于7分时采用另外一台设备来进行测量。这种方案也同样无法解决大跨桥梁的问题,而且这种方案也意味着需要购置的设备越多。
    最好的解决方案还是,尽可能放置在岸边较高地势的位置,避免出现小角度测量多棱镜的情况;或者利用偏振片的原理来控制仪器测量指定棱镜,让仪器能够识别不同的棱镜。不过后者需要仪器设备厂商来进行调整。

其他因素的影响

    车辆的震动,地面与空气的温差(尤其是在夏天)都会导致测量结果出现较大误差。因此在进行测量时,尽可能在阴天或者清晨进行测量来避免地面热浪导致空气折射率不规律地改变;同时多次测量取平均值。另外雾霾天气也会对仪器造成很大的影响。
    另外顺便一提,徕卡在排除干扰这块做的相当不错。南方测绘的全站仪在自动识别棱镜时经常将光滑的镜面识别为棱镜,从而导致错误的锁定。而徕卡基本上不会将平面镜识别为棱镜,这对于建筑幕墙的测量相当好用 (徕卡打钱)
    徕卡成熟的技术和产品使得它在对标国内同类产品时具有更大的优势。不过国内大部分徕卡经销商提供的技术支持有限,而且很多服务以及手续比较复杂,收费也比较高,在采购具体的设备时希望能根据自身的项目情况来进行具体的挑选。

个人总结以及未来发展的方向

    个人认为,为了避免我上面所说的一些问题,自动测量机器人的项目最适合来解决跨度不大的桥梁,或者一些建筑的项目。自动测量机器人实现远程测控这块的技术栈整个流程在行业内都算是相当成熟的,涉及到的数据量也非常小,因此开发成本不算很高,更多的考虑还是设备本身以及部分服务的费用。
    感谢各位能看到这里,这应该是我最后一篇更新的徕卡geocom开发的文章了(主要是想做图传功能,结果发现单位没有购置相应的功能),之后的博客可能更多的会是一些个人的兴趣爱好方面的更新,更多的是充当一个自我学习的笔记来使用。

莱卡全站仪接口文档 1.5 1GEOCOM 5 1.1INTRODUCTION 5 1.2TPS1200 SYSTEM SOFTWARE 5 1.3PRINCIPLES OF GEOCOM OPERATION 6 2GENERAL CONCEPTS OF USING GEOCOM 7 2.1INTRODUCTION 7 2.2GENERAL CONCEPT OF OPERATION 7 2.3ASCII PROTOCOL 7 2.4FUNCTION CALL PROTOCOL - C/C++ 8 2.5FUNCTION CALL PROTOCOL - VBA 9 3FUNDAMENTALS OF PROGRAMMING GEOCOM 10 3.1INTRODUCTION 10 3.2ASCII PROTOCOL PROGRAMMING 10 3.3C/C++ - PROGRAMMING 12 3.4VBA - PROGRAMMING 14 3.5UNITS OF VALUES 16 3.6TPS1200 INSTRUMENT MODES OF OPERATION 16 3.7COMMON COMMUNICATION ERRORS 16 4REMARKS ON THE DESCRIPTION 19 4.1STRUCTURE OF DESCRIPTIONS 19 5COMMUNICATION SETTINGS 21 5.1USAGE 21 5.2CONSTANTS AND TYPES 21 5.3GENERAL GEOCOM FUNCTIONS 22 5.4CLIENT SPECIFIC GEOCOM FUNCTIONS 24 6ALT USER - AUS 38 6.1USAGE 38 6.2CONSTANTS AND TYPES 38 6.3FUNCTIONS 39 7AUTOMATION - AUT 43 7.1USAGE 43 7.2CANCELLING / ABORTING CURRENT FUNCTIONS 43 7.3CONSTANTS AND TYPES 43 7.4FUNCTIONS 45 8BASIC APPLICATIONS – BAP 69 8.1USAGE 69 8.2CONSTANTS AND TYPES 69 8.3FUNCTIONS 71 9BASIC MAN MACHINE INTERFACE – BMM 89 9.1USAGE 89 9.2CONSTANTS AND TYPES 89 9.3FUNCTIONS 90 10COMMUNICATIONS – COM 94 10.1USAGE 94 10.2CONSTANTS AND TYPES 94 10.3FUNCTIONS 95 11CENTRAL SERVICES – CSV 101 11.1INTRODUCTION 101 11.2USAGE 101 11.3CONSTANTS AND TYPES 101 11.4FUNCTIONS 103 12ELECTRONIC DISTANCE MEASUREMENT – EDM 113 12.1INTRODUCTION 113 12.2USAGE 113 12.3CONSTANTS AND TYPES 113 12.4FUNCTIONS 114 13FILE TRANSFER - FTR 117 13.1USAGE 117 13.2CONSTANTS AND TYPES 117 13.3FUNCTIONS 118 14IMAGE PROCESSING – IMG 127 14.1INTRODUCTION 127 14.2USAGE 127 14.3CONSTANTS AND TYPES 127 14.4FUNCTIONS 128 15MOTORISATION – MOT 131 15.1INTRODUCTION 131 15.2USAGE 131 15.3CONSTANTS AND TYPES 131 15.4FUNCTIONS 132 16SUPERVISOR – SUP 137 16.1USAGE 137 16.2CONSTANTS AND TYPES 137 16.3FUNCTIONS 138 17THEODOLITE MEASUREMENT AND CALCULATION – TMC 140 17.1INTRODUCTION 140 17.2USAGE 140 17.3CONSTANTS AND TYPES 141 17.4MEASUREMENT FUNCTIONS 144 17.5MEASUREMENT CONTROL FUNCTIONS 157 17.6DATA SETUP FUNCTIONS 160 17.7INFORMATION FUNCTIONS 177 17.8CONFIGURATION FUNCTIONS 179 18PORTING A TPS1100 APPLICATION 191 18.1INTRODUCTION 191 18.2RPC CHANGES 191 18.3DATA TYPES AND CONSTANTS CHANGES 193 18.4RETURN-CODES 193 19GEOCOM RELEASES 194 19.1 RELEASE 1.00 194 19.2 RELEASE 1.10 194 19.3 RELEASE 1.20 194 19.4 RELEASE 1.50 194 20APPENDIX 195 AReturn-Code names and return-code values 195 BHardware interface 201 B-1Serial Interface 201 B-2Debugging Utility 202 CProvided Samples 203 C-1 Program Frames 203 C-1.1 VBA Sample Program 203 C-1.2 C/C++ Sample Programs 203 C-1.3 TCC Image Grabber Sample Program 204 D List of Remote Procedure Calls (RPC) ....................................................................................................... D-205 D-1 rpc in Alphabetical order .................................................................................................................... D-205
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值