论不同厂商串口RS232设备之间怎样通信--思路决定出路(好事多磨)

在我前段时间所负责的一个关于视频会议系统项目的实施过程中,甲方有一套六年前安装好的话筒和会议主机设备要利旧,我们安装好新的功放、调音台、摄像头、视频终端、MCU等设备后,和老的话筒设备之间传输音频信号没有任何问题,但是要实现话筒讲话时摄像头自动跟踪到讲话者这个功能时出现了麻烦。

图中黄圈内的摄像头要根据桌面上哪个话筒开启就自动跟踪拍摄到哪个话筒位置。

问题就是出在话筒是六年前的,而且和视频会议设备的厂商不是同一家,造成话筒的信号通过会议主机串口发出来后,视频会议厂商的设备识别不了,也就无法实现自动跟踪的功能。

图中黄框内是某厂商的会议主机(话筒通过手拉手线缆连接到它的卡侬母接口上),其它为某某厂商视频会议系统设备。

当时我们认为都是串口出来的信号应该是遵循RS232协议,两个厂商设备之间连接应该没问题,但我们用9针串口线把某厂商的会议主机后的RS232接口和某某厂商的中央控制主机后的RS232接口相连后,信号无法传输,也就无法达到摄像头自动跟踪话筒的功能。

过程一:出问题后我们就给某厂商打了电话,询问解决方法。某厂商技术人员回答说他们的设备要用专用软件解码后才能通信,意思就是要money。在多次沟通后我们只有付了几千money后,软件总算是到手了。

过程二:如果你认为这时问题解决了,那你就错了。软件到手在提取了会议主机发送的话筒开关代码后,还是无法和某某厂商的中央控制主机联动。问题又出在哪儿呢?经过和某厂商多次询问,甚至还花钱请某厂商技术到现场调试,最后某厂商技术员说我们的设备信号是通过串口9针传输的,需某某厂商的设备是只使用串口其中3针传输,两个设备串口不兼容。

过程三:两个月过去了,这时甲方也急了,说再解决不了就不会付工程款,甚至要我们把新设备拆走,我们这些集成商苦B呀。一再的和两个厂商的技术员沟通后,他们得出的结论是1、把利旧的设备更换,全部换成一个品牌。(这个成本太大,还在重新在会议桌上开孔)。2、再采购一台串口转换设备(但这台设备哪里去找呢,市场上没卖的)。3、某某厂商说把某厂商的会议主机拆下来,发到它们研发部去研究研究(唉,我现在哪还有时间给你们拿去研究研究)。

过程四:在这解决问题的过程我也在想,两个厂商的技术人员都想不出法子,我还能有啥好办法呢。就在我陪同某某厂商技术在调试的过程中:1、我发现技术员在使用USB转串口线(分别连接会议主机串口和电脑USB口),再用串口调试助手软件是能够提取到话筒开关代码的(一组16进制数字)。2、然后技术员使用USB转串口线(分别连接电脑USB口和中央控制主机串口),再用串口调试助手把这组代码发送出去,就可以带动摄像头跟踪了(成功了一半)。

过程五:我当时就和某某厂商的技术员说,如果能手动提取代码,也能成功发送代码,那能不能找个软件安装在电脑上自动转发数据,这不就能够起到自动跟踪的功能了吗。可惜该技术员说这个软件不是你说有就有的,而且还要编程很麻烦的。反正把我当业余人士看,直接否定的我的想法。

上图就是我根据自己的想法画的拓扑图

过程六:我也没气馁,我自己觉得这个理论应该是没问题的,只是缺少个软件。于是晚上回家我就上网查找相关软件,还别说真的被我找到四、五个相关软件。第二天,我先就到电脑城去购买了两根USB转串口线缆,然后到现场按照上面的拓扑图把两台设备都连接好。开始把软件一个个安装到电脑里,开始调试,一连试了几个都不行,我也有些没信心了。当我试到最后一个串口网络通道转发工具这个软件时,还真的成功拉,当按下话筒开关时,摄像头真的自动跟踪了过来。我当时成功的喜悦充满了大脑,当我告诉厂商人员时,他们都不相信,还以为我是在开玩笑。

虽然我的解决方法还有不完善的地方,比如把电脑重启后,还得再把软件重新开启设置一遍。但是和厂商技术员提出的方案对比,这是成本最少、代价最低、时间最快的方法了。这件事情也提醒我们这些做技术的,不要盲信厂商的技术员,虽说他们对自己的设备是很熟悉,但他们只站在自己厂商设备的角度去看问题。所以我们做为集成商的技术员要从另一外角度去发现问题,说不定能起到更好的效果。觉得自己的思路是正确的,那就坚定的走下去,努力是会有回报的!!!

时间: 2024-10-12 22:08:45

论不同厂商串口RS232设备之间怎样通信--思路决定出路(好事多磨)的相关文章

YS端对端之间SSL通信安全问题

1.简介:          传统的互联网,SSL通信主要基于客户端和服务器之间,在物联网时代,端和端之间的加密通信将变得很普遍,在YS业务中主要的端和端通信为: (1).客户端(移动APP,YS工作室和web)和设备之间的双向通信. (2).设备和设备之间的双向通信. 为保障用户通信安全,端和端之间的通信实施SSL通信. 注:实际上是基于客户端的hik的SDK和设备之间的通信,使用了hik SDK的客户端都可以和hik的设备进行通信. 主要的场景图如下:   2.业务需求:         

Delphi与各种装置设备之间的开发整合及应用实例

 优酷视频专辑: 使用 Delphi整合行动装置应用的十大最佳影片,介绍 Delphi与各种装置设备之间的开发整合及应用实例,欢迎大家观赏影片. http://www.youku.com/playlist_show/id_25897228.html ? 版权声明:本文为博主原创文章,未经博主允许不得转载.

思科设备三层交换机实践不同vlan之间的通信

思科设备三层交换机实践不同vlan之间的通信 先准备四台PC机.四台二层交换机.一台三层交换机.一台路由器.一台服务器 PC1 PC2 PC3 PC4 计算机 SWI SW2 SW3 SW4 交换机 MSW1 多层交换机 第一步:先配置四台PC机iP 给PC机划分VLAN ip地址: PC1:192.168.10.1 子网掩码: 255.255.255.0网关地址: 192.168.10.254pc2 :192.168.20.1255.255.255.0192.168.20.254pc3 : 1

玩转GNS3——实现两台路由设备与两台PC设备之间互联

之前博主介绍了虚拟软件GNS3的详细安装流程,以及做了CPU占用率的部分优化.既然准备工作都已经做好了,那咱们就来实际玩一玩,用GNS3来实现两台路由设备与两台PC设备之间的互通互联. 首先,我们双击这只呆萌的变色龙 进入GNS3的界面之后,我们选择两个路由设备与PC设备,分别拖放到拓扑操作区中 为了实现路由互通互联的功能,R1和R2设备都要设置一下 R1和R2设备要设置一下硬盘空间 下一步开始连线,点PC设备会提示选择网卡 连接R1设备的接口我用的是f0/0 R1接口可用的只有f0/1 连接到

基于OPC技术的上位机与PLC之间的通信

分享一下我老师大神的人工智能教程吧.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net 1 引言现代工业控制系统通常以PC机为上位机,通过与现场工控设备如PLC的数据交换与处理,实现对生产过程的自动控制.对于小型控制系统,采用专门的组态软件成本太高,用VB设计监控系统则可以降低成本,但首先要解决上位机与PLC之间通信问题.以往使用较多的进程间通信方式是DDE(动态数据交换)方式,随着OPC技术的发展和普及,它已成为工业

VC中利用多线程技术实现线程之间的通信

文章来源:[url]http://www.programfan.com/article/showarticle.asp?id=2951[/url] 当前流行的Windows操作系统能同时运行几个程序(独立运行的程序又称之为进程),对于同一个程序,它又可以分成若干个独立的执行流,我们称之为线程,线程提供了多任务处理的能力.用进程和线程的观点来研究软件是当今普遍采用的方法,进程和线程的概念的出现,对提高软件的并行性有着重要的意义.现在的大型应用软件无一不是多线程多任务处理,单线程的软件是不可想象的.

VLAN基础(三)在GNS3 1.3.10中使用三层交换完成不同VLAN之间的通信

VLAN基础(三)在GNS3 1.3.10中使用三层交换完成不同VLAN之间的通信 简介: 三层交换技术就是:二层交换技术+三层转发技术.它解决了局域网中网段划分之后,网段中子网必须依赖路由器进行管理的局面,解决了传统路由器低速.复杂所造成的网络瓶颈问题.每个VLAN对应一个IP网段.在二层上,VLAN之间是隔离的,这点跟二层交换机中交换引擎的功能是一模一样的.不同IP网段之间的访问要跨越VLAN,要使用三层转发引擎提供的VLAN间路由功能.在使用二层交换机和路由器的组网中,每个需要与其他IP网

线程之间的通信

1.1.线程之间的通信方法 多个线程在处理统一资源,但是任务却不同,这时候就需要线程间通信.    等待/唤醒机制涉及的方法:    1. wait():让线程处于冻结状态,被wait的线程会被存储到线程池中.    2. notify():唤醒线程池中的一个线程(任何一个都有可能).    3. notifyAll():唤醒线程池中的所有线程.  备注    1.这些方法都必须定义在同步中,因为这些方法是用于操作线程状态的方法.    2.必须要明确到底操作的是哪个锁上的线程!    3.wa

Android - Fragment (三)不同Fragment之间的通信

在Fragment的java文件中,可以使用getActivity()来获得调用它的activity, 然后再找到另一个Fragment,进行通信 getActivity().getFragmentManager().findFragmentById(R.id.fragment_list); 但这样做耦合度太高,不方便后续的修改操作 Fragment与其附着的Activity之间的通信,都应该由Activity来完成 不能是多个Fragment之间直接通信 Fragment与其附着的Activi