基于苏标Adas协议的主动安全平台搭建

阅读: 评论:0

基于苏标Adas协议的主动安全平台搭建

基于苏标Adas协议的主动安全平台搭建

之前说过基于1078的视频监控平台,下面我们聊聊基于苏标Adas协议的主动安全平台。

苏标协议是对部标808协议的一种拓展,如果我们需要搭建苏标Adas主动安全平台,必须要先了解部标808的协议。了解过苏标协议的肯定明白,苏标是有个附件服务器的概念,其实这个附件服务器就是一个808的网关,然后根据苏标协议进行解析得到对应的报警图片,报警视频以及其他报警信息。

这个就是1078视频监控的实现效果截图(这块的知识点用到搭建1078部标流媒体服务器),测试环境并非是实际运行车辆,是自己在卡座上架的一台服务器。不用在意视频内容细节。

苏标Adas附件服务器就相对简单些。

当我们的808通讯网关接收到带有附件的报警或者事件信息后,需要向终端下发消息ID为:0x9208的附件上传指令,这个时候我们根据协议格式将附件服务器的IP与端后组包后发给设备,设备接收到0x9208的指令后就会同附件服务器建立tcp通讯,然后开始向附件服务器发送报警附件(图片,视频,bin文件等等)。

附件服务器就是一个需要加入苏标协议定义的消息ID的808网关。下面我将整个通讯流程用一个简单的图片描述出来:

虽然流程很粗糙,通讯机制大概就是这个意思。

界面效果展示:

除此之外还有最操蛋的报警配置(消息ID:0x8103),高级驾驶辅助系统报警参数都有几十个,这个指令组包的时候还是需要认真对待的,稍有不慎就可能漏掉些信息。

下面是我组包的部分代码,之前有对808其他指令组包,所以很多方法都是通用的:

 /// <summary>/// 主动安全Adas配置指令组装/// </summary>/// <param name="fAssetID"></param>/// <param name="adas"></param>/// <returns></returns>public string getAdasAlarmConfig(string fAssetID, MT_Combine_AdasAlarmADAS adas){string fContent = string.Empty;fContent += "010000F364";fContent += "38";fContent += Convert.ToString(adas.FAlarmSpeed, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FAlarmVoice, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FProactive, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FAPTime, 16).ToString().PadLeft(4, '0');fContent += Convert.ToString(adas.FAPDistance, 16).ToString().PadLeft(4, '0');fContent += Convert.ToString(adas.FSAPNumber, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FSAPTime, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FPResolution, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FVResolution, 16).ToString().PadLeft(2, '0');fContent += string.Format("{0:X}", Convert.ToInt32(adas.FAlarmID, 2)).PadLeft(8, '0');fContent += string.Format("{0:X}", Convert.ToInt32(adas.FEventID, 2)).PadLeft(8, '0');fContent += "00";//预留字段#region 障碍物报警配置fContent += Convert.ToString(adas.FOADistance, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FOACSpeed, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FOAVTime, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FOAPNumber, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FOAPTime, 16).ToString().PadLeft(2, '0');#endregion#region 频繁变道报警配置fContent += Convert.ToString(adas.FFLCTime, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FFLCCount, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FFLCSpeed, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FFLCVTime, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FFLCPNumber, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FFLCPTime, 16).ToString().PadLeft(2, '0');#endregion#region 车道偏离报警配置fContent += Convert.ToString(adas.FLDSpeed, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FLDVTime, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FLDPNumber, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FLDPTime, 16).ToString().PadLeft(2, '0');#endregion#region 前向碰撞报警配置fContent += Convert.ToString(adas.FFCTime, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FFCSpeed, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FFCVTime, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FFCPNumber, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FFCPTime, 16).ToString().PadLeft(2, '0');#endregion#region 前向碰撞报警配置fContent += Convert.ToString(adas.FFCTime, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FFCSpeed, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FFCVTime, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FFCPNumber, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FFCPTime, 16).ToString().PadLeft(2, '0');#endregion#region 行人碰撞报警配置fContent += Convert.ToString(adas.FPCTime, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FPCSpeed, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FPCVTime, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FPCPNumber, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FPCPTime, 16).ToString().PadLeft(2, '0');#endregion#region 车距监控报警配置fContent += Convert.ToString(adas.FVDMDistance, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FVDMSpeed, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FVDMVTime, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FVDMPNumber, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FVDMPTime, 16).ToString().PadLeft(2, '0');#endregion#region 道路标志识别配置fContent += Convert.ToString(adas.FRSPNumber, 16).ToString().PadLeft(2, '0');fContent += Convert.ToString(adas.FRSPTime, 16).ToString().PadLeft(2, '0');#endregionfContent += "00000000";//预留字段return combineInsContent(fContent.Length / 2, fAssetID, fContent, "8103");}

整个1078的视频+苏标Adas的集成历时两个多月,其中视频流媒体这块最麻烦也是最耗时的地方。目前算是整体功能性的东西已经完成。

本文发布于:2024-02-05 03:23:06,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170722891362593.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:主动   协议   平台   Adas
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23