`
去年的时候,做了某个项目,从单片机到PC端控制和显示一整套,都是自己一个人瞎折腾搞的,最后很不容易的完成了领导的任务。 项目比较简单,就是单片机接收GPS信息,然后通过单片机解析后,通过无线数传发送给PC端,PC端在地图上显示实时轨迹,并回传控制。其实这就类似无人机系统很类似。但是无人机那套太复杂,用不了太多功能,加上项目比较急用,所以后面自己DIY简化一下。 为了方便,又因为额外可能需要现场临时增加很多功能,所以就用labview做了主要工作。电子地图那块,本身网上百度了下,有调用Gmap.net的,无奈在有的电脑上使用LabVIEW调用那个.NET没问题,换其他电脑有的却有问题(大概是电脑端.NET的版本,不过已经过去了就不再讨论第三方调用的事了)。因此,电子地图那块,自己用C#写的。利用虚拟串口,将LabVIEW解析的经纬度坐标传递给C#, C#里面效果就是本章开始的动态图。
GPS是通过串口发数据发给单片机,单片机通过串口发数据给无线数传模块发送端,无线数传接收端通过串口发送给LabVIEW,LabVIEW通过串口发给C#写的电子地图。总而言之,对我而言,就是LabVIEW的串口通信。后来又将C#的界面嵌入到LabVIEW中,看上去似乎就完美了。 我写这篇文章的重点,在于把第三方的软件界面,嵌入到LabVIEW,类似子面板形式。 之前也看过群里一些人在问这个问题,以前不以为意。所以,刚好自己刚好做过,就终结一下。下面是一个示意图,地图是最开始的版本(后面的和这个不一样),比较丑,如果隐去多余控件,嵌入到LabVIEW就很完美。
用到的,当然是调用dll,函数FindWindow SetParent之类,相关的程序框图比较简单,如下图所示。下图的Monitor System那个软件就是我自己用C#写的软件的标题。
当然,内嵌入记事本也是可以的。大家在自己电脑上打开一个记事本,注意看它的标题栏名称,像我默认打开的就是 无标题 - 记事本。 那么就是下面的界面。
估计有小伙伴看到代码截图很感到很熟悉,没错,如果对VC比较熟悉,会知道这个是使用子窗口和父窗口的API,但是,那些都是子窗口,不是像子面板一样嵌在软件界面中。
虽然贴了截图,最后还是传下代码,版本2013,亲测可用。 链接:https://share.weiyun.com/5vwxfvB 密码:4b4gts 本william hill官网
下载地址:
另外,关于前面提到的电子地图,网上资料很多,有调用百度地图的,有调用谷歌地图的,地图还有火星地图转化坐标的,网上资料一大堆,都不是今天的重点。
注意,需要先运行第三方软件,然后再将第三方软件标题写入到程序中才可以看到效果。
`
|