
不管听起来多么陈旧,在二十一世纪,卡车不仅将货物从A点运输到B点,而且是通过网络连接的复杂组件系统。 从这些组件收集信息,再加上可以通过GPS系统确定其位置并具有移动通信功能的现代移动设备的功能,为优化运输,车队管理以及某种程度上甚至驾驶员的行为提供了巨大的机会。 所有这些都称为“传输远程信息处理”,本文专门针对此问题。
我必须警告您,过去25年来我没有太多使用俄语,因此,如果句子结构或使用的单词看起来很奇怪,请不要感到惊讶。
我在运输远程信息处理领域已经工作了13年,帮助监视垃圾收集器工作了5年,为加油车工作了8年。 这两个选项有很多共同点,但也有很多不同之处。
首先,关于一般
第一个也是主要功能是GPS跟踪。 您可以看到卡车经过的地方,可以几乎实时地确定失去位置的地方以及再次发现的地方。
如果没有与服务器的连接,则该曲目将记录在车载计算机的内存中。 在没有GPS接收的情况下,可以通过GSM塔的位置进行间接监视。 一次,我们与OpenCellId建立了合作关系-OpenGSMId是GSM基站位置的开放数据库(有关详细信息,请参见
此处 ),我每周在该位置上载约一百万个坐标,但不幸的是,当OpenCellId出售给一家提供服务的印度公司时,该合作关系结束了甚至为助手付钱-但是我们的系统只提供了他们收到的所有坐标的四分之一。
脱机时,数据不会丢失,只是减少了写入频率,因此内部存储器不会太满。 跟踪数据的数量还取决于卡车的行驶速度。 通常,数据收集的频率与速度成比例地增加,因此地图上的轨迹看起来更平滑,但是一些客户对汽车高速行驶的数据不感兴趣-在这种情况下,汽车通常位于高速公路上,无论如何都不会发生有趣的事情。
第二个主要功能通常与第一个主要功能分开实现,以至于要为此使用额外的熨斗,因此第二个主要功能通常直接与驱动程序一起使用。 平板电脑的屏幕显示了驾驶员的任务列表,其中列出了他应该去的客户地址。 通常,驾驶员必须从列表中选择一项任务,“开始”该任务,并且在执行“完成”任务时,可以输入其他数据。
因此,可以在办公室中实时看到驾驶员开始工作,完成工作时特别忙的事情。 有了这个机会,就有可能在办公室计算出驾驶员实际工作了多少,以及这次特殊旅行给公司带来了多少费用。 同时,所有之前仅在纸上的必要信息会立即自动发送到计算机系统。 对于这项额外的工作,为驾驶员提供了一些便利,例如:自动打开目标导航或立即打印所有必要纸张的能力,而不是填写表格。
接下来是FMS和各种传感器的监视。 现代卡车具有相当复杂的数字电动机控制系统,为了促进此类车载计算机的信息收集,七家欧洲卡车制造商共同创建了FMS(车队管理系统)格式,这是用于(只读)连接到电动机控制系统的标准化接口通过CAN总线,实时显示卡车的主要参数,例如特定标准格式的速度,里程,油耗。
基本上,这些信息可用来验证驾驶员的工作质量-驾驶员在经济上的驾驶方式,但是很有可能会抓住小偷。 例如,如果油箱中的燃油油位下降速度比平时快,尤其是此时卡车处于站立状态,那么情况就很明确了。
另外,一些信息来自数字行驶记录仪,数字行驶记录仪是欧盟的一种强制性手段,可以记录驾驶员的工作时间和车辆的速度。 因此,无需连接至行车记录仪,您就可以直接找出特定驾驶员何时驶过方向盘或完成工作。 通常,不同的传感器是数字输入,因此您可以检查其中的位置(大灯,安全带等)。 这种传感器的一个基本示例是车载计算机,该计算机监视手刹,并且只有当制动器打开时,它才会停止阻塞电话-许多运载危险物品的公司禁止驾驶员在驾驶时在电话上交谈。
由于GSM调制解调器用于远程信息处理设备,这意味着原则上它们可以用作移动电话,因此,驾驶员无需提供通信方式。 同时,您可以控制此通信工具的使用方式-我在上面写过的带有手刹的电话锁,家庭网络之外的电话锁,仅允许拨打某些号码的权限。
短信也会被接收和发送,这就是为什么您有时不得不聆听经常在边境附近的驾驶员的抱怨-关税不断上涨,这导致了两难境地-没有额外的黑名单,您只能完全关闭短信接收功能(只需从中删除短信表即可)数据库),但根本不会收到任何消息。
GSM调制解调器的使用还有另一个有用的功能-当从事件数据记录器(EDR)接收到信号时,车载计算机可以自动拨打特定的电话号码。
现在介绍一下差异
对于垃圾车,最主要的是去哪里以及要捡多少东西。 因此,一个相当重要的任务是连接内置在垃圾容器电梯中的秤,并在提升时自动称重它们。 对于这种重量,企业客户需要支付工作费用。
反过来,可以为驾驶员提供快速工作的奖励,因此您需要知道摇晃容器所需的时间,以及垃圾车到达目的地后容器被捡起的速度。
为此,必须将电梯控制操纵杆连接到数字输入,这并不总是像计划阶段那样简单。 一旦技术人员深入卡车的电子设备,以至于驾驶员厌倦了等待,他就回家了,我和技术人员留下了。 一切都已连接,似乎可以正常工作,并且信号消失了,但是如果没有驱动程序,我们将无法进行全面扫描。
第二天早上,我们在等待与客户的巨大隔离-技术人员做错了什么,电梯将集装箱抬起的高度仅为所需高度的一半。 还有一次卡车的电子设备出现问题,必须从其中引出一根保险丝。 此后,卡车完全忽略了点火钥匙,根本没有熄火,并怠速运转,直到油箱中的柴油用完为止。
由于有大量的垃圾车附加组件制造商,因此,电梯中内置的秤具有大量相应的不同协议,而我们每个人都必须编写单独的功能。 在某些规模上,根本没有用于远程信息处理的接口,唯一的信息输出是通过RS232到其专用打印机。 在这里,我们已经必须焊接Y型电缆并从打印机的数据流中提取必要的信息。
检查重量还有一项任务是培训尚不知道路线的新驾驶员。 这样做的方法是:有经验的驾驶员沿着最佳路线行驶,记录他的GPS轨迹,针对点数进行手动优化,然后发送给初学者导航系统。
当时,导航员没有机会下载记录的曲目,因此我们不得不“手动”设置每个点,监视导航系统,当只剩下几米时,将其替换为下一个,这样导航员就没有时间高兴地宣布目标的实现。 但是可以在导航器上挂出一个包含信息的窗口,该窗口用于注释,驾驶员可以在其中查看目标的功能-最方便的致电方式,索取文件的人等。
加油车还有其他要求,重点更多是驾驶员有偷燃油的不良倾向。 如果在西欧,这种情况更可能发生在独行者身上,那么在东部,汽油盗窃是由整个帮派进行的,这些帮派将他们的司机送往运输公司。
开展这项业务是不可能的,因此大多数防盗功能都是为了在犯罪现场捕捉小偷而设计的。 主要工具是地理围栏。 一种简单的方法-在地图上在允许某些操作的地方绘制圆圈。 如果这些操作在指定位置之外发生,则会向管理员发送通知。
接下来是对这些动作的监视,这可能很多。 披露了水箱排水系统的挡板,水箱中的液体排出,安全带打开,甚至是停止时间超过5分钟的信息。 监视排水系统通常还会捕获想要以他人为代价获利的驾驶员:几天来,不断有通知表明燃油正在从地理围栏中排出。 赛道显示,驾驶员根本不会在他花过李子的地方。 第二天,警察在那儿等他。
另一个选择是储气罐,它在关闭时会发出连续的信号。 如果信号消失-汽油箱打开,或信号线断开-这意味着在驾驶员睡觉时某人正在缓慢地想排放燃油。 系统触发蜂鸣声,驾驶员在这种母亲的帮助下唤醒并驱动小偷。
关于使用的技术
Aplicom F系列当我从2003年开始从事远程信息处理工作时,市场上几乎没有适合我编写程序的合适的,相对通用的设备。 当时的选择基本上仅限于Aplicom C系列/ F系列和Owasys Owa2x。
第一款设备是由诺基亚本地人制造的,可以在自己的操作系统(OS95A)上运行,该操作系统是旧诺基亚手机的OS变体,即使是具有两行文本屏幕的手机也是如此。 该开发是由CodeWarrior ARM编译器在C99上进行的,由于过时的编译器和相当原始的操作系统(实际上是使用我为该设备编写的程序进行编译的),因此相当不便。
第二台设备是由爱立信西班牙分公司的移民制造的,处理器速度稍快,但一个RS232端口少了,并且可以在相当古老的Linux下工作。 开发工作是由同一个古老的GCC(2.95.3)进行的,其结果是所有错误(错误,无法运行的语言功能,坦率地说对C ++的支持以及糟糕的代码优化)。
Aplicom随后将Linux移植到他们的计算机上,但那时已经为时已晚。 Aplicom设备的最大缺点是缺少文件系统,有必要或多或少直接在单元中写入闪存,实际上,制造商通常根本不建议写入此存储器。
另一方面,Owa2x具有一个很大的优势-Linux-以及大量缺点-仅两个RS232端口,这甚至使得通过控制台(有问题的CAN-Bus控制器)进行调试更加困难,该控制台经常挂起,使用一个内部RS232端口作为GPS对于使用多路复用器的GSM,它在GSM启动或停止时导致GPS冻结,文件系统在每次启动时都被解压缩到RAM磁盘中,这使得无法永久替换任何系统文件,并且甜点,码头 entatsiya,其使用比卫生纸的低。
当我参观制造商的办公室并向他们展示所有这些问题(他们后来没有解决,只是说他们正在制造新的硬件-Owa3x,一切都会变得更好)时,我留下了Aplikom文档作为示例(示例在他们已经生产出下一代产品(Owa4x)的大约6年后开始使用。
闪烁的Owa2x当Owa3x出来时,起初我很高兴。 有一个较新的编译器(GCC 4.3),一个快速处理器,三个RS232端口以及一个microSD卡插槽。 现在可以将程序放在卡上,以便以后可以替换它(如果有的话)。 但是,我很高兴。
仍然存在体系结构错误,例如未压缩的文件系统以及用于GPS和GSM的相同多路复用器,并且第一个错误变得更加严重-固件变得更大,并且调制解调器继续仅支持GPRS,带有UMTS支持的版本更加昂贵,这就是2011年。
人们像过去一样制造铁。 事实证明,如果您定期在MicroSD卡上写入数据,则它们正在流式传输。 他们生活了大约一年,然后死亡,该计划停止了。 最初,他们试图在卡上制作几个部分,一个则是程序是只读的。 它没有帮助,而且适得其反-卡控制器并非为这种变态而设计。
现在,程序位于设备的内部存储器中,并且卡上只有数据,因此,如果卡停止工作,只需对其进行更改。 我以前没有做过,因为内部存储器的文件系统经常出现问题,文件经常损坏,制造商最终可以使用固件进行修复。
Owa3x两年前,我决定进行认真的重构并重写程序的一部分,因为在此之前,它只是非系统地获取了各种功能。 同时,我决定摆脱对boost的依赖,因为boost对源代码和二进制文件的影响都很大,并标准化了解决问题的方法,或者我们经常使用boost函数,c ++函数或C语言的经典函数来达到相同的效果。
通过重写C ++ 11的程序来摆脱提升是最容易的,这同时会简化许多其他事情-只是基于范围而不是公里迭代器。
事实证明,在GCC 4.3下对C ++ 11的支持是绝对歪曲的,即使使用STL的最小程序也尚未编译。 制造商提供了一个官方的答案,即不支持此硬件上的其他编译器,但是如果加载相应的libstdc ++,则4.7.3可以非正式地运行,但实际上或多或少都可以,但是不现实。
然后,我已经不得不用刺猬把它越过-我拿了GCC 4.8.3(4.9无法工作,他们在ABI中进行了更改),将GCC 4.3中的libstdc ++放入其中,然后依次复制了系统包含文件,其中包含错误,从那里开始,直到开始编译为止。 奇怪的是,整个设计都可行,而且还不错。
一段时间以来,库和包含库的混合结果甚至可以在clang中使用,但是二进制文件不是最佳的,并且存在更多错误-clang有时会编译对旧库根本不具备的某些函数的调用,但至少以这种方式GCC原谅了一些样式错误。
篝火故事
- 当我开始在这一领域工作时,我是一个绝对的绿色学生实习生。 我找到工作的公司基本上卖了PowerPoint演示文稿,我立即被派往这家公司。
显然,我的新雇主并没有认真对待这一切,尽管事实上,客户将不得不在三个月内接受该计划,而在我辞职之前,受训的人开始编写该计划。
然后,我根本不知道如何用C编程,在此之前,我只为Turbo Pascal写了dos程序,主要是供稿库。 C语言给我留下了深刻的印象-有多少机会让自己陷入困境!
一段时间后,事情开始了,尽管该程序编写得很歪,但仍能正常工作,但我毫不客气地迟到了。 那时我很幸运,就在那时引入了一种新的德国道路支付系统,该系统总体上也具有相同的车辆监控功能,其开发商TollCollect也很晚,成为了整个国家的笑柄。 在这种背景下,客户花了我们几个月的谅解时间。
- 想象一下,车载计算机在更新通过手机下载的程序时死了。 根本无法执行任何操作,计算机停止加载。 无需执行任何操作,您必须去卡车上,通过串行端口手动安装更新。
客户代表将我带到卡车站立的基地,她从那儿拿到钥匙。但是,事实证明,她没有底座内门的钥匙,而且已经是傍晚的时间,每个人都回家了。当我站在一个skheher上时,她从一叠纸上拉了几个回形针,试图把锁打开。最后,什么也没发生,一名车手不得不打电话给基地,但这次尝试肯定算在内。
- - , , . , , — , , , . , , , , , FIFO .
- , , . , , — Renault Kerax, , .
, 20 , - , , , . .
- . , . , , - . , , .
Owa3x结论
这种用于运输远程信息处理的专用车载计算机的时代正在逐渐结束-它们非常特殊,是小批量生产的,因此,它们在技术上远远落后于现代移动设备-手机和平板电脑,在这些设备中,不仅处理器速度更快,内存更多,而且成本已经降低大量的程序块,否则,您必须自己编写-甚至包括简单的连接到移动Internet的基本操作。毫无疑问,现代平板电脑上的应用程序开发更加方便。但是,它们将无法完全取代传统的运输远程信息处理设备,因此,要收集最大的信息量,您需要大量的输入/输出端口-从普通的串行RS232类型到专用的CAN-Bus类型。要将所有这些连接到Android上的常规平板电脑,您需要大量的外围设备或价格不菲的小型且高度专业化的平板电脑,但是即使这样的设备也有一个严重的缺点-驱动程序可以很容易地将其关闭,并且整个信息收集将停止。, , , ( , ) .
hdablin .