一种终端设备的即时通信系统及方法与流程

文档序号:17548193发布日期:2019-04-30 18:00阅读:192来源:国知局
一种终端设备的即时通信系统及方法与流程

本发明属于即时通信技术领域,更具体地,涉及一种终端设备的即时通信系统及方法。



背景技术:

液晶模组信号发生器是一种液晶模块测试设备,可提供液晶模块测试所需的lvds信号、v-by-one信号、vdd/vbl电源及检测pattern图像;使用者可通过pc端的应用软件自行编辑各式不同的时序参数及图像信号,这些信号由pc端发送至信号发生器后,在信号发生器上做自动循环测试或手动控制单键操作,快速切换pattern模式,其简易方便的操作方式搭配复合式按键功能使用,可广泛应用于生产/研发/品保/质量验证/售服/业务等液晶模块相关测试领域;为保证信号的快速响应、数据传输可靠性,以及人机交互的便捷性、提升用户体验,需要在液晶模组信号发生器与pc端之间实现即时通信。

现有的液晶模组信号发生器中的即时通信系统是基于tcp协议的进程间通信,通过创建父子进程对客户端发送的消息任务进行处理,父进程对消息任务进行解析并将解析结果通知子进程,子进程根据父进程发送的解析结果对信号发生器的硬件进行操作。其中,父进程用epoll处理并发送网络请求、连接线程池,线程下发任务到共享内存区,再通过共享内存区域发送任务到消息队列中;子进程对消息队列中的数据进行相关硬件响应并把处理结果上报给客户端。这种进程间通信会导致系统响应速度慢,并且需要不断创建新进程,导致资源占有率高、系统稳定性差;另外,整个过程未对通信过程中的错误进行处理,可能导致系统宕机。由于采用tcp协议进行通信,tcp粘包问题导致无法即时通讯,tcp建立连接时间过长也会降低响应速度。



技术实现要素:

针对现有技术的至少一个缺陷或改进需求,本发明提供了一种终端设备的即时通信系统及方法,其目的在于解决现有的通信方式存在的响应速度慢、资源占有率高、系统稳定性差的问题。

为实现上述目的,按照本发明的一个方面,提供了一种终端设备的即时通信系统,包括通讯适配单元、注册单元、消息体管理单元、任务处理单元;

所述通讯适配单元用于建立客户端与终端设备之间的通讯通道;

所述注册单元用于根据不同的任务类型注册对象消息体,所述对象消息体具有与任务类型对应的唯一的消息码;

所述消息体管理单元用于通过所述通讯通道接收客户端下发的任务,根据该任务中携带的消息码将其分发给对应的对象消息体;

所述任务处理单元用于获取所述对象消息体中的任务并对其进行解析,得到操作指令;将所述操作指令发送至终端设备中对应的底层接口,并将该底层接口反馈的执行结果通过所述通讯通道反馈给客户端。

优选的,上述即时通信系统,其注册单元还用于根据任务类型注册不同的处理函数,所述处理函数具有与任务类型对应的唯一的消息码。

优选的,上述即时通信系统,其任务处理单元包括任务管理模块和任务调度模块;

所述任务管理模块根据通讯适配单元接收的任务中携带的消息码调用对应的处理函数生成线程,并通过所述线程访问对象消息体以获取任务并对其进行解析;

所述任务调度模块用于将所述操作指令发送至终端设备中对应的底层接口,并监听所述底层接口以获取该底层接口反馈的执行结果。

优选的,上述即时通信系统,还包括错误处理单元;

所述错误处理单元用于接收任务管理模块在任务解析过程中产生的错误信息,对所述错误信息进行处理或将其上报给客户端。

优选的,上述即时通信系统,其通讯适配单元支持tcp、udp和串口通讯方式。

按照本发明的另一个方面,还提供了一种即时通信方法,包括以下步骤:

s1:建立客户端与终端设备之间的通讯通道;

s2:根据不同的任务类型注册对象消息体,所述对象消息体具有与任务类型对应的唯一的消息码;

s3:通过所述通讯通道接收客户端下发的任务,根据该任务中携带的消息码将其分发给对应的对象消息体;

s4:获取所述对象消息体中的任务并对其进行解析,得到操作指令;将所述操作指令发送至终端设备中对应的底层接口,并将该底层接口反馈的执行结果通过所述通讯通道反馈给客户端。

优选的,上述即时通信方法,其步骤s2中还包括:

根据任务类型注册不同的处理函数,所述处理函数具有与任务类型对应的唯一的消息码。

优选的,上述即时通信方法,其步骤s3中包括:

s31:根据接收的任务中携带的消息码调用对应的处理函数生成线程,并通过所述线程访问对象消息体以获取任务并对其进行解析;

s32:将所述操作指令发送至终端设备中对应的底层接口,并监听所述底层接口以获取该底层接口反馈的执行结果。

优选的,上述即时通信方法,其步骤s4中还包括:接收任务解析过程中产生的错误信息,对所述错误信息进行处理或将其上报给客户端。

优选的,上述即时通信方法,其通讯通道支持tcp、udp和串口通讯方式。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:

(1)本发明提供的一种终端设备的即时通信系统及方法,注册单元在初始化阶段实现各任务的注册,根据任务类型建立不同的对象消息体和处理函数,并通过唯一的消息码确保任务、对象消息体、处理函数之间的对应关系;任务分发准确且快速,使各任务在执行过程中互不冲突,提高处理效率,缩短整个通信过程的时长,实现对客户端的快速响应;

(2)本发明提供的一种终端设备的即时通信系统及方法,错误处理单元对通信过程中出现的错误信息进行处理,或者将错误信息反馈给客户端处理,确保系统不被产生错误信息的任务阻塞或死机。

附图说明

图1是本发明实施例提供的即时通信系统的逻辑框图;

图2是本发明实施例提供的即时通信方法的流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

本实施例所提供的一种终端设备的即时通信系统,用于实现客户端与液晶模组信号发生器之间的即时通信;该客户端包括pc、控制盒和命令行(commandline,cli)等;该即时通信系统作为信号发生器中的一个通信子系统,用于接收客户端发送的任务信息,并通过与信号发生器的主控模块进行交互以实现任务解析,进而驱动信号发生器中的硬件执行任务,并将执行结果实时反馈给客户端。

该即时通信系统包括通讯适配单元、注册单元、消息体管理单元、任务处理单元;

其中,通讯适配单元用于建立客户端与信号发生器之间的通讯通道;本实施例中,通讯适配单元支持tcp、udp和串口通讯方式,通讯适配单元采用udp协议与客户端通信,实现可靠、快速的信息交互,并通过udp+应答回包机制来确保交互数据的可靠性;通过串口实现与信号发生器的底层硬件之间的通讯功能。

注册单元用于根据不同的任务类型注册对象消息体并将其存储在消息体管理单元中,该对象消息体具有与任务类型对应的唯一的消息码;客户端与信号发生器之间交互的任务类型多种多样,如hello包、自动上电命令、设置模组测试文件命令等,在系统初始化阶段,注册单元对不同类型的任务消息进行注册,并为不同的任务创建对应的对象消息体,任务与对象消息体之间通过唯一的消息标识码来确保两者具有正确的对应关系;

消息体管理单元用于通过通讯通道接收客户端下发的任务,客户端下发的任务中包括消息码、报文方向、管理器id(用于区分不同的客户端)、设备类型(表示设备的型号)、应答方式(需要应答或者不需要应答)、执行结果(成功、失败)、报文长度(除协议头以外的有效数据长度)和有效数据内容;消息体管理单元将根据该任务中携带的消息码将其分发给对应的对象消息体,相比现有的进程间通信,减少了建立共享内存,从用户空间到内核空间、内核空间到用户空间的数据拷贝过程,因此任务分发准确且快速;并且直接通过回调预先注册的对象消息体的形式进行处理,不需要连接线程池、从线程池中取线程执行下发任务,因此任务分发处理流程响应速度快,能够有效缩短整个即时通信的时间。

任务处理单元用于获取对象消息体中的任务并对任务进行解析,得到操作指令将其发送至终端设备中对应的底层接口;在任务的解析过程中可能需要查询并调用数据库文件,因此在系统初始化时需要对数据库模块入口进行初始化,以打开数据库文件,供任务处理单元调取使用;任务处理单元对任务进行解析后生成信号发生器可执行的操作指令,驱动底层接口执行该操作指令,并将该底层接口反馈的执行结果通过通讯通道反馈给客户端。

作为本实施例的一个优选,在系统初始化时,注册单元还用于根据任务类型注册不同的处理函数,处理函数具有与任务类型对应的唯一的消息码,一个处理函数对应一个任务。

作为本实施例的一个优选,该任务处理单元包括任务管理模块和任务调度模块;

任务管理模块根据通讯适配单元接收的任务中携带的消息码调用对应的处理函数生成线程,并通过该线程访问对象消息体以获取任务并对其进行解析;当某一任务的解析工作量较大时,任务管理模块将根据一个处理函数生成多个线程,以实现对任务的并行解析处理,加快处理速度,缩短整个通信时长;相比预先创建包括多个处理线程的线程池,本实施例采用根据接收的任务类型调用处理函数生成对应的处理线程,不同的处理线程处理对应的任务而不会占用其他任务的资源,这种方式能够避免线程阻塞或死锁导致的通信延时或中断。

任务调度模块用于将解析得到的操作指令发送至信号发生器中对应的底层接口,通过用open函数打开设备驱动,对设备进行初始化读写操作;并监听底层接口以获取该底层接口反馈的执行结果,经该执行结果通过通讯通道反馈给客户端。

作为本实施例的一个优选,该即时通信系统还包括错误处理单元,用于对通信过程中出现的错误信息进行处理;或者将该错误信息反馈给客户端,通知客户端进行处理;

任务管理模块在对任务进行解析的过程中,可能会出现内存不足、操作值超出有效范围、打开数据库连接错误、解析得到的操作数据不正确等故障信息,这些错误信息若不及时处理,很可能导致系统死机;例如,任务管理模块在对任务解析后生成了操作指令,若该操作指令为设置模组测试文件,但是该测试文件数据的大小超过了信号处理器内部ddr的内存,则错误处理单元临时将数据存入缓冲区并将“文件数量过多导致内存不足”的错误信息上报给客户端;若客户端下发给数字模拟转换器的数据超过或者小于数字模拟转换器的临界值,错误处理单元将以默认的最大值或者最小值对操作指令中的数据进行处理并将处理情况上报给客户端;

若打开数据库连接失败,错误处理单元直接将该错误信息上报给客户端,由客户端检查数据库文件是否损坏或者加密;若解析得到的操作数据不正确,错误处理单元通过crc校验算法对错误的操作数据进行还原处理。

本实施例还提供了一种即时通信方法,包括以下步骤:

s1:建立客户端与终端设备之间的通讯通道;

s2:根据不同的任务类型注册对象消息体,所述对象消息体具有与任务类型对应的唯一的消息码;

s3:通过所述通讯通道接收客户端下发的任务,根据该任务中携带的消息码将其分发给对应的对象消息体;

s4:获取所述对象消息体中的任务并对其进行解析,得到操作指令;将所述操作指令发送至终端设备中对应的底层接口,并将该底层接口反馈的执行结果通过所述通讯通道反馈给客户端。

作为本实施例的一个优选,该即时通信方法的步骤s2中还包括:根据任务类型注册不同的处理函数,该处理函数具有与任务类型对应的唯一的消息码。

作为本实施例的一个优选,该即时通信方法的步骤s3中包括:

s31:根据接收的任务中携带的消息码调用对应的处理函数生成线程,并通过所述线程访问对象消息体以获取任务并对其进行解析;

s32:将所述操作指令发送至终端设备中对应的底层接口,并监听所述底层接口以获取该底层接口反馈的执行结果。

作为本实施例的一个优选,该即时通信方法的步骤s4中还包括:接收任务解析过程中产生的错误信息,对错误信息进行处理或将该错误信息上报给客户端。

先比现有的即时通信系统,本发明提供的一种终端设备的即时通信系统及方法,在初始化阶段实现各任务的注册,根据任务类型建立不同的对象消息体和处理函数,并通过唯一的消息码确保任务、对象消息体、处理函数之间的对应关系;任务分发准确且快速,使各任务在执行过程中互不冲突,提高处理效率,缩短整个通信过程的时长,实现对客户端的快速响应。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1