快速初始化诊断仪的方法、终端及计算机可读存储介质与流程

文档序号:12905706阅读:197来源:国知局
快速初始化诊断仪的方法、终端及计算机可读存储介质与流程

本发明涉及汽车诊断技术领域,尤其涉及快速初始化诊断仪的方法、终端及计算机可读存储介质。



背景技术:

随着经济的发展,导致了人们的出行方式发生了改变,如今,汽车已经成为许多人的代步工具,在汽车的使用过程中,难免要对汽车进行保养和维修。在对汽车进行保养和维修时,诊断仪是经常被使用的工具。现有的诊断仪需要进入工作模式才能够进行诊断工作,需要pc端(personalcomputer个人计算机)的应用软件通过串口发送命令给诊断仪使得诊断仪进入工作模式。但是,诊断仪在进入工作模式前,存在关闭串口的过程,pc端的应用程序无法知道串口何时准备好,只能盲目等待一定时间(一般为10秒)才能使诊断仪进入工作模式,现有技术存在诊断仪进入工作模式太慢、等待时间太久的问题,从而在很大程度上不利于用户的使用体验感受。



技术实现要素:

本发明的主要目的在于提供一种快速初始化诊断仪的方法、终端及计算机可读存储介质,旨在解决现有技术中诊断仪进入工作模式太慢、等待时间太久的技术问题。

为实现上述目的,本发明提供一种快速初始化诊断仪的方法,所述快速初始化诊断仪的方法应用于终端,所述快速初始化诊断仪的方法包括:

建立与诊断仪的通信连接;

接收用户发起的诊断请求;

根据所述诊断请求确定阶段标识,并发送预置复位命令至所述诊断仪;

根据接收到的设备状态改变信息判断所述诊断仪是否完成复位;

若完成复位,则根据所述阶段标识判断是否进入校验阶段;

若否,则验证所述诊断仪是否进入工作模式;

若验证所述诊断仪进入工作模式,则完成初始化,控制所述诊断仪进行诊断。

优选地,所述诊断请求包含车辆标识信息;所述根据所述诊断请求确定阶段标识,具体为:

判断本次诊断请求发起之前的预设时间内是否存在具有所述车辆标识信息的历史诊断记录;

若存在,则确定阶段标识为非校验阶段;

若不存在,则确定阶段标识为校验阶段。

优选地,所述根据所述阶段标识判断是否进入校验阶段,具体包括:

当所述阶段标识为非校验阶段时,则判断所述诊断仪不进入校验阶段;

当所述阶段标识为校验阶段时,则判断所述诊断仪进入校验阶段。

优选地,所述根据接收到的设备状态改变信息判断所述诊断仪是否完成复位,具体包括:

在接收到所述设备状态改变信息后,读取所述诊断仪的串口状态信息;

判断所述串口状态是否处于开启通信状态,若处于开启通信状态则判断所述诊断仪完成复位。

优选地,所述根据所述阶段标识判断是否进入校验阶段之后,还包括:

若根据阶段标识判断进入校验阶段,控制所述诊断仪执行校验步骤;

完成校验后,发送进入工作模式的指令至所述诊断仪,并重置阶段标识为非校验阶段;

根据再次接收到的设备状态改变信息判断所述诊断仪的串口是否处于开启通信状态;

若处于开启通信状态,则执行验证所述诊断仪是否进入工作模式,并在验证所述诊断仪进入工作模式后完成初始化,控制所述诊断仪进行诊断。

此外,为实现上述目的,本发明还提供一种终端,所述终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的快速初始化诊断仪程序,所述快速初始化诊断仪程序被所述处理器执行时实现如下步骤:

建立与诊断仪的通信连接;

接收用户发起的诊断请求;

根据所述诊断请求确定阶段标识,并发送预置复位命令至所述诊断仪;

根据接收到的设备状态改变信息判断所述诊断仪是否完成复位;

若完成复位,则根据所述阶段标识判断是否进入校验阶段;

若否,则验证所述诊断仪是否进入工作模式;

若验证所述诊断仪进入工作模式,则完成初始化,控制所述诊断仪进行诊断。

优选地,所述快速初始化诊断仪程序被所述处理器执行时还实现如下步骤:

判断本次诊断请求发起之前的预设时间内是否存在具有所述车辆标识信息的历史诊断记录;

若存在,则确定阶段标识为非校验阶段;

若不存在,则确定阶段标识为校验阶段。

优选地,所述快速初始化诊断仪程序被所述处理器执行时还实现如下步骤:

当所述阶段标识为非校验阶段时,则判断所述诊断仪不进入校验阶段;

当所述阶段标识为校验阶段时,则判断所述诊断仪进入校验阶段。

优选地,所述快速初始化诊断仪程序被所述处理器执行时还实现如下步骤:

在接收到所述设备状态改变信息后,读取所述诊断仪的串口状态信息;

判断所述串口状态是否处于开启通信状态,若处于开启通信状态则判断所述诊断仪完成复位。

优选地,所述快速初始化诊断仪程序被所述处理器执行时还实现如下步骤:

若根据阶段标识判断进入校验阶段,控制所述诊断仪执行校验步骤;

完成校验后,发送进入工作模式的指令至所述诊断仪,并重置阶段标识为非校验阶段;

根据再次接收到的设备状态改变信息判断所述诊断仪的串口是否处于开启通信状态;

若处于开启通信状态,则执行验证所述诊断仪是否进入工作模式,并在验证所述诊断仪进入工作模式后完成初始化,控制所述诊断仪进行诊断。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有快速初始化诊断仪程序,所述快速初始化诊断仪程序被处理器执行时实现如下步骤:

建立与诊断仪的通信连接;

接收用户发起的诊断请求;

根据所述诊断请求确定阶段标识,并发送预置复位命令至所述诊断仪;

根据接收到的设备状态改变信息判断所述诊断仪是否完成复位;

若完成复位,则根据所述阶段标识判断是否进入校验阶段;

若否,则验证所述诊断仪是否进入工作模式;

若验证所述诊断仪进入工作模式,则完成初始化,控制所述诊断仪进行诊断。

优选地,所述快速初始化诊断仪程序被所述处理器执行时还实现如下步骤:

判断本次诊断请求发起之前的预设时间内是否存在具有所述车辆标识信息的历史诊断记录;

若存在,则确定阶段标识为非校验阶段;

若不存在,则确定阶段标识为校验阶段。

优选地,所述快速初始化诊断仪程序被所述处理器执行时还实现如下步骤:

当所述阶段标识为非校验阶段时,则判断所述诊断仪不进入校验阶段;

当所述阶段标识为校验阶段时,则判断所述诊断仪进入校验阶段。

优选地,所述快速初始化诊断仪程序被所述处理器执行时还实现如下步骤:

在接收到所述设备状态改变信息后,读取所述诊断仪的串口状态信息;

判断所述串口状态是否处于开启通信状态,若处于开启通信状态则判断所述诊断仪完成复位。

优选地,所述快速初始化诊断仪程序被所述处理器执行时还实现如下步骤:

若根据阶段标识判断进入校验阶段,控制所述诊断仪执行校验步骤;

完成校验后,发送进入工作模式的指令至所述诊断仪,并重置阶段标识为非校验阶段;

根据再次接收到的设备状态改变信息判断所述诊断仪的串口是否处于开启通信状态;

若处于开启通信状态,则执行验证所述诊断仪是否进入工作模式,并在验证所述诊断仪进入工作模式后完成初始化,控制所述诊断仪进行诊断。

本发明中,终端在与诊断仪建立通讯连接后,接收基于用户操作触发的诊断请求,根据诊断请求确定阶段标识,并将复位命令发送至诊断仪,若接收到设备状态改变信息,则判断诊断仪复位是否完成,若诊断仪复位完成则根据阶段标识判断是否进入校验阶段,若不为进入校验阶段,则验证诊断仪是否进入工作模式,若是,则表明诊断仪初始化完成,控制诊断仪进行诊断。通过本发明,大大缩短了诊断仪初始化的时间,极大提升了用户的使用感受。

附图说明

图1为本发明快速初始化诊断仪的方法第一实施例的流程示意图;

图2为本发明快速初始化诊断仪的方法第二实施例的流程示意图;

图3是本发明实施例方案涉及的硬件运行环境的终端结构示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如下各实施例中本发明快速初始化诊断仪的方法应用于终端,终端可以是计算机、移动终端、车载终端、个人数字助理(pda)、平板电脑等,终端的操作系统可以为windows、linux、android、ios等,终端的操作系统能检测i/o设备关闭、打开事件。

参照图1,图1为本发明快速初始化诊断仪的方法第一实施例的流程示意图。

在一实施例中,快速初始化诊断仪的方法应用于终端,快速初始化诊断仪的方法包括:

步骤s10,建立与诊断仪的通信连接;

步骤s20,接收用户发起的诊断请求;

步骤s30,根据所述诊断请求确定阶段标识,并发送预置复位命令至所述诊断仪;

步骤s40,根据接收到的设备状态改变信息判断所述诊断仪是否完成复位;

步骤s50,若完成复位,则根据所述阶段标识判断是否进入校验阶段;

步骤s60,若否,则验证所述诊断仪是否进入工作模式;

步骤s70,若验证所述诊断仪进入工作模式,则完成初始化,控制所述诊断仪进行诊断。

本实施例中,终端与诊断仪建立通信连接的方式可以是通过usb线进行连接,usb线一端接入终端的串行通讯接口(串口),另一端接入诊断仪端口,还可以是蓝牙通信连接。本实施例以usb数据线连接为例进行说明。

本实施例中,诊断仪可以为汽车诊断仪。

例如,在一实施例中,以汽车诊断仪为例子进行说明。用户需要使用诊断仪对车辆进行检测,在建立终端与诊断仪的通讯连接后,用户在终端上操作,终端接收基于用户操作触发的诊断请求,根据诊断请求中包含的车辆标识信息(例如,当前需要汽车诊断仪诊断的车辆的型号信息、车辆vin码信息等,在此不作限制,具体根据实际情况进行设置),确定阶段标识。例如,若检测到本次诊断请求发起之前,汽车诊断仪同终端保持连接的一段时间内(例如15分钟,该值可根据实际情况进行设置),存在与此次诊断请求包含的车辆型号信息相同的诊断记录,则将当前阶段设置为非校验阶段,否则设置为校验阶段。如本次需要使用汽车诊断仪对“丰田”车系进行测试,在将诊断请求发送至终端后,检测到接收到该诊断请求前该汽车诊断仪同终端建立通讯连接的15分钟内存在对“丰田”车系的测车记录,则确定阶段标识为非校验阶段。

接收到诊断请求后,终端将封装好的复位命令通过串口发送给诊断盒。诊断盒接受到复位命令后,开始进行复位,此时串口会关闭又打开。终端操作系统(此处以windows操作系统进行说明)检测到i/o设备关闭、打开事件发生,windows系统向终端的操作界面发送wm_devicechange消息,通知i/o设备状态改变,由于i/o设备状态改变可能是由于其他事件引起的,例如,由于pc上的i/o设备如鼠标、键盘、u盘的插拔都能触发wm_devicechange消息,所以,此时需要检测终端同诊断仪连接的串口的状态,即判断是否能够读取到诊断仪的串口信息、是否能够通过串口进行通信,若能,则排除其他i/o设备如鼠标、键盘、u盘的插拔触发wm_devicechange消息,判定此次wm_devicechange消息的产生是由于串口的关闭、打开引起的,则表示诊断仪复位完成。在具体的实际操作过程中,上述过程可以在终端上通过诊断软件客户端(即诊断app)完成。具体过程如下:接收到诊断请求后,诊断app将封装好的复位命令通过串口发送给诊断盒。诊断盒接受到复位命令后,开始进行复位,此时串口会关闭又打开。终端操作系统(此处以windows操作系统进行说明)检测到i/o设备关闭、打开事件发生,windows系统向诊断app的主窗口发送wm_devicechange消息,通知i/o设备状态改变,由于i/o设备状态改变可能是由于其他事件引起的,例如,由于pc上的i/o设备如鼠标、键盘、u盘的插拔都能触发wm_devicechange消息,所以,此时需要检测终端同诊断仪连接的串口的状态,即判断是否能够读取到诊断仪的串口信息、是否能够通过串口进行通信,若能,则排除其他i/o设备如鼠标、键盘、u盘的插拔触发wm_devicechange消息,判定此次wm_devicechange消息的产生是由于串口的关闭、打开引起的,则表示诊断仪复位完成。

复位完成后,根据确定的阶段标识,例如确定当前为非校验阶段,则发送验证命令至诊断仪,用以验证诊断仪是否已经成功进入工作模式。例如,向诊断仪发送一请求,请求获取诊断仪状态信息,在接收到诊断仪反馈的状态信息后,若状态信息表明诊断仪已进入工作模式,则确认当前诊断仪已经成功进入工作模式,则可以进行对车辆的诊断工作。若状态信息表明诊断仪未进入工作模式,则发出告警消息,例如警告声、灯光闪烁、在用户界面显示对话框,提示用户,诊断仪进入工作模式失败,需要用户重新操作,以供重启上述流程(步骤s10至s70)。

在本发明另一可选实施例中,复位完成后,根据确定的阶段标识,若确定当前为校验阶段,则发送校验命令至诊断仪,在接收到诊断仪的反馈信息后发送进入工作模式的指令至诊断仪。此处终端发送校验命令,接收反馈信息的过程即握手协议。握手协议指通讯设备之间任何实际应用信息的传送总是伴随着一些控制信息的传递,它们按照既定的通讯协议工作,将应用信息安全、可靠、高效地传送到目的地。握手协议就是两个设备在通信之前,要互相的认识一下,然后才能互相传送。诊断仪在接收到进入工作模式的指令后,此时串口会先关闭再打开。终端操作系统(此处以windows操作系统进行说明)检测到i/o(输入/输出接口)设备关闭、打开事件发生,windows系统向终端的操作界面发送wm_devicechange消息,通知i/o设备状态改变。在具体的实际操作过程中,上述过程可以在终端上通过诊断软件客户端(即诊断app)完成。具体过程如下:终端操作系统(此处以windows操作系统进行说明)检测到i/o(输入/输出接口)设备关闭、打开事件发生,windows系统向诊断app的主窗口发送wm_devicechange消息,通知i/o设备状态改变。

由于i/o设备状态改变可能是由于其他事件引起的,例如,由于pc上的i/o设备如鼠标、键盘、u盘的插拔都能触发wm_devicechange消息,所以,此时需要检测终端同诊断仪连接的串口的状态,即判断是否能够读取到诊断仪的串口信息、是否能够通过串口进行通信,若能,则排除其他i/o设备如鼠标、键盘、u盘的插拔触发wm_devicechange消息,判定此次wm_devicechange消息的产生是由于串口的关闭、打开引起的,则表示诊断仪已进入工作模式,并标记阶段标记为非校验阶段,接下来则发送验证命令至诊断仪,用以验证诊断仪是否已经成功进入工作模式。例如,向诊断仪发送一请求,请求获取诊断仪状态信息,在接收到诊断仪反馈的状态信息后,若状态信息表明诊断仪已进入工作模式,则确认当前诊断仪已经成功进入工作模式,则可以进行对车辆的诊断工作。若状态信息表明诊断仪未进入工作模式,则发出告警消息,例如警告声、灯光闪烁、在用户界面显示对话框,提示用户,诊断仪进入工作模式失败,需要用户重新操作,以供重启上述流程(步骤s10至s70)。

本发明中,终端在与诊断仪建立通讯连接后,接收基于用户操作触发的诊断请求,根据诊断请求确定阶段标识,并将复位命令发送至诊断仪,若接收到设备状态改变信息,则判断诊断仪复位是否完成,若诊断仪复位完成则根据阶段标识判断是否进入校验阶段,若不为进入校验阶段,则验证诊断仪是否进入工作模式,若是,则表明诊断仪初始化完成,控制诊断仪进行诊断。通过本发明,大大缩短了诊断仪初始化的时间,极大提升了用户的使用感受。

进一步的,在本发明另一可选实施例中,诊断请求中包含车辆标识信息,根据诊断请求确定阶段标识包括:

判断本次诊断请求发起之前的预设时间内是否存在具有所述车辆标识信息的历史诊断记录;

若存在,则确定阶段标识为非校验阶段;

若不存在,则确定阶段标识为校验阶段。

本实施例中,预设时间指诊断仪与终端保持通讯连接的一段时间(时长可人为设置)。例如,在15:00终端接收到基于用户操作触发的诊断请求,诊断请求中包含了车辆标识信息,车辆标识信息指待诊断的车辆车系信息,如“丰田”,还可以是待诊断车辆vin码信息,在此不作限制,具体根据实际需要而定。终端检测到在14:50时存在“丰田”车系的诊断记录,且14:50~15:00时间段内,诊断仪保持与终端的通信连接。则确定阶段标识为非校验阶段,例如,在系统进程中将标识变量设置为“2”,代表阶段为非校验阶段,诊断仪复位完成后不需要进行校验,而是直接发送验证命令,以供验证诊断仪是否进入工作模式,并在验证诊断仪进入工作模式后完成初始化并控制诊断仪进行诊断;若接收到诊断请求时,检测到不存在诊断请求中车辆标识信息对应的历史诊断记录,则确定当前标识为校验阶段,例如在系统进程中将标识变量设置为“1”,代表阶段为校验阶段,诊断仪复位完成后,终端发送校验命令至诊断仪,在接收到诊断仪的反馈信息后,发送进入工作模式的指令至诊断仪,以供诊断仪进入工作模式。

本实施例中,根据诊断请求中包含的车辆标识信息,检测本次诊断请求发起之前的预设时间内是否存在该车辆标识信息对应的历史诊断记录,若存在,则确定阶段为非校验阶段,在诊断仪复位完成后不需要进行校验,而是直接发送验证命令至诊断仪,以供验证诊断仪是否进入工作模式,并在验证诊断仪进入工作模式后完成初始化并控制诊断仪进行诊断。通过本实施例,加快了诊断仪初始化过程。

进一步的,在一实施例中,根据阶段标识判断是否进入校验阶段包括:

当所述阶段标识为非校验阶段时,则判断所述诊断仪不进入校验阶段;

当所述阶段标识为校验阶段时,则判断所述诊断仪进入校验阶段。

本实施例中,当阶段标识可在系统进程中通过添加标志位进行设置。例如,当阶段标识为非校验阶段,则将标志位为设置为“2”,表示诊断仪在复位完成后不进入校验阶段,而是发送验证命令至诊断仪,以供验证诊断仪是否进入工作模式,并在验证诊断仪进入工作模式后完成初始化并控制诊断仪进行诊断;当阶段标识为校验阶段,则将标志位设置为“1”,表示诊断仪在复位完成后为进入校验阶段,则发送校验命令至诊断仪,在接收到诊断仪的反馈信息后发送进入工作模式的指令至诊断仪,以供诊断仪进入工作模式。此处终端发送校验命令,接收反馈信息的过程即握手协议。握手协议指通讯设备之间任何实际应用信息的传送总是伴随着一些控制信息的传递,它们按照既定的通讯协议工作,将应用信息安全、可靠、高效地传送到目的地。握手协议就是两个设备在通信之前,要互相的认识一下,然后才能互相传送。在诊断仪进入工作模式后,再将标志位更新为“2”,接下来发送验证命令至诊断仪,以供验证诊断仪是否进入工作模式。

本实施例中,根据诊断请求中包含的车辆标识信息,检测本次诊断请求发起之前的预设时间内是否存在该车辆标识信息对应的历史诊断记录,若存在,则确定阶段为非校验阶段,在诊断仪复位完成后不需要进行校验,而是直接发送验证命令至诊断仪,以供验证诊断仪是否进入工作模式,并在验证诊断仪进入工作模式后完成初始化并控制诊断仪进行诊断。通过本实施例,加快了诊断仪初始化过程。

进一步的,在本发明另一可选实施例中,步骤s40包括:

在接收到所述设备状态改变信息后,读取所述诊断仪的串口状态信息;

判断所述串口状态是否处于开启通信状态,若处于开启通信状态则判断所述诊断仪完成复位。

本实施例中,接收到诊断请求后,应用程序将封装好的复位命令通过串口发送给诊断盒。诊断盒接受到复位命令后,开始进行复位,此时串口会关闭又打开。终端操作系统(此处以windows操作系统进行说明)检测到i/o设备关闭、打开事件发生,windows系统向终端的操作界面发送wm_devicechange消息(设备状态改变信息),通知i/o设备状态改变。在具体的实际操作过程中,上述过程可以在终端上通过诊断软件客户端(即诊断app)完成。具体过程如下:终端操作系统(此处以windows操作系统进行说明)检测到i/o(输入/输出接口)设备关闭、打开事件发生,windows系统向诊断app的主窗口发送wm_devicechange消息,通知i/o设备状态改变。由于i/o设备状态改变可能是由于其他事件引起的,例如,由于pc上的i/o设备如鼠标、键盘、u盘的插拔都能触发wm_devicechange消息,所以,此时需要检测终端同诊断仪连接的串口的状态,即判断是否能够读取到诊断仪的串口信息、是否能够通过串口进行通信,若能,则排除其他i/o设备如鼠标、键盘、u盘的插拔触发wm_devicechange消息,判定此次wm_devicechange消息的产生是由于串口的关闭、打开引起的,则表示诊断仪复位完成。

在本实施例中,终端上运行的操作系统能够检测输入/输出接口状态的改变(i/o设备关闭、打开事件)。例如,以windows操作系统的消息机制为例,当i/o设备关闭、打开事件发生时,会触发wm_devicechange消息。由于i/o设备状态改变可能是由于其他事件引起的,例如,由于pc上的i/o设备如鼠标、键盘、u盘的插拔都能触发wm_devicechange消息,所以,此时需要检测终端同诊断仪连接的串口的状态,例如,发一个测试命令至诊断仪,如果能够接收到诊断仪基于该测试命令发出的反馈,则证明此次i/o设备状态改变是由串口状态改变引起的。

在本实施例中,当i/o设备状态改变时,进一步检测是否能与诊断仪进行通信,只有在检测到能与诊断仪进行通信后,才进行下一步,避免了pc上的i/o设备如鼠标、键盘、u盘的插拔都能触发wm_devicechange消息对本发明方案的错误影响。

进一步的,参照图2,图2为本发明快速初始化诊断仪的方法第二实施例的流程示意图。

在本发明另一可选实施例中,步骤s50之后还包括:

步骤s80,若根据阶段标识判断进入校验阶段,控制所述诊断仪执行校验步骤;

步骤s90,完成校验后,发送进入工作模式的指令至所述诊断仪,并重置阶段标识为非校验阶段;

步骤s100,根据再次接收到的设备状态改变信息判断所述诊断仪的串口是否处于开启通信状态;

步骤s110,若处于开启通信状态,则执行验证所述诊断仪是否进入工作模式,并在验证所述诊断仪进入工作模式后完成初始化,控制所述诊断仪进行诊断。

在本实施例中,复位完成后,根据确定的阶段标识,若确定当前为校验阶段,则发送校验命令至诊断仪,在接收到诊断仪的反馈信息后发送进入工作模式的指令至诊断仪,以供诊断仪进入工作模式。此处终端发送校验命令,接收反馈信息的过程即握手协议。握手协议指通讯设备之间任何实际应用信息的传送总是伴随着一些控制信息的传递,它们按照既定的通讯协议工作,将应用信息安全、可靠、高效地传送到目的地。握手协议就是两个设备在通信之前,要互相的认识一下,然后才能互相传送。同时将阶段标记重置为非校验阶段。诊断仪在接收到进入工作模式的指令后,会进入工作模式,此时串口会先关闭再打开。终端操作系统(此处以windows操作系统进行说明)检测到i/o(输入/输出接口)设备关闭、打开事件发生,windows系统向终端的操作界面发送wm_devicechange消息,通知i/o设备状态改变。在具体的实际操作过程中,上述过程可以在终端上通过诊断软件客户端(即诊断app)完成。具体过程如下:终端操作系统(此处以windows操作系统进行说明)检测到i/o(输入/输出接口)设备关闭、打开事件发生,windows系统向诊断app的主窗口发送wm_devicechange消息,通知i/o设备状态改变。由于i/o设备状态改变可能是由于其他事件引起的,例如,由于pc上的i/o设备如鼠标、键盘、u盘的插拔都能触发wm_devicechange消息,所以,此时需要检测终端同诊断仪连接的串口的状态,即判断是否能够读取到诊断仪的串口信息、是否能够通过串口进行通信,若能,则排除其他i/o设备如鼠标、键盘、u盘的插拔触发wm_devicechange消息,判定此次wm_devicechange消息的产生是由于串口的关闭、打开引起的,并根据当前阶段标记,当前阶段标记为非校验阶段,接下来则发送验证命令至诊断仪,用以验证诊断仪是否已经成功进入工作模式。例如,向诊断仪发送一请求,请求获取诊断仪状态信息,在接收到诊断仪反馈的状态信息后,若状态信息表明诊断仪已进入工作模式,则确认当前诊断仪已经成功进入工作模式,则可以进行对车辆的诊断工作。若状态信息表明诊断仪未进入工作模式,则发出告警消息,例如警告声、灯光闪烁、在用户界面显示对话框,提示用户,诊断仪进入工作模式失败,需要用户重新操作,以供重启上述流程(步骤s10至s70)。

本实施例中,终端在与诊断仪建立通讯连接后,接收基于用户操作触发的诊断请求,根据诊断请求确定阶段标识,并将复位命令发送至诊断仪,若接收到设备状态改变消息,则判断诊断仪复位是否完整,若诊断仪复位完成则根据阶段标识判断是否进入校验阶段,若为进入校验阶段,则发送校验命令至诊断仪,在接收到诊断仪的反馈信息后发送进入工作模式的指令至诊断仪,以供诊断仪进入工作模式,若接收到设备状态改变消息,则判断诊断仪的串口是否处于开启通信状态,若串口处于开启通信状态则验证诊断仪是否进入工作模式,若是,则表明诊断仪初始化完成,控制诊断仪进行诊断。通过本发明,大大缩短了诊断仪初始化的时间,极大提升了用户的使用感受。

此外,本发明实施例还提出一种终端。

如图3所示,图3是本发明实施例方案涉及的硬件运行环境的终端结构示意图。

本发明实施例终端(本文中,终端即为终端)可以是计算机、移动终端、车载终端、个人数字助理(pda)、平板电脑等,终端的操作系统可以为windows、linux、android、ios等,终端的操作系统能检测i/o设备关闭、打开事件。

如图3所示,该终端可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图3中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图3所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及快速初始化诊断仪程序。

在图3所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的快速初始化诊断仪程序,并执行以下操作:

建立与诊断仪的通信连接;

接收用户发起的诊断请求;

根据所述诊断请求确定阶段标识,并发送预置复位命令至所述诊断仪;

根据接收到的设备状态改变信息判断所述诊断仪是否完成复位;

若完成复位,则根据所述阶段标识判断是否进入校验阶段;

若否,则验证所述诊断仪是否进入工作模式;

若验证所述诊断仪进入工作模式,则完成初始化,控制所述诊断仪进行诊断。

本实施例中,终端与诊断仪建立通信连接的方式可以是通过usb线进行连接,usb线一端接入终端的串行通讯接口(串口),另一端接入诊断仪端口,还可以是蓝牙通信连接。本实施例以usb数据线连接为例进行说明。

本实施例中,诊断仪可以为汽车诊断仪。

例如,在一实施例中,以汽车诊断仪为例子进行说明。用户需要使用诊断仪对车辆进行检测,在建立终端与诊断仪的通讯连接后,用户在终端上操作,终端接收基于用户操作触发的诊断请求,根据诊断请求中包含的车辆标识信息(例如,当前需要汽车诊断仪诊断的车辆的型号信息、车辆vin码信息等,在此不作限制,具体根据实际情况进行设置),确定阶段标识。例如,若检测到本次诊断请求发起之前,汽车诊断仪同终端保持连接的一段时间内(例如15分钟,该值可根据实际情况进行设置),存在与此次诊断请求包含的车辆型号信息相同的诊断记录,则将当前阶段设置为非校验阶段,否则设置为校验阶段。如本次需要使用汽车诊断仪对“丰田”车系进行测试,在将诊断请求发送至终端后,检测到接收到该诊断请求前该汽车诊断仪同终端建立通讯连接的15分钟内存在对“丰田”车系的测车记录,则确定阶段标识为非校验阶段。

接收到诊断请求后,终端将封装好的复位命令通过串口发送给诊断盒。诊断盒接受到复位命令后,开始进行复位,此时串口会关闭又打开。终端操作系统(此处以windows操作系统进行说明)检测到i/o设备关闭、打开事件发生,windows系统向终端的操作界面发送wm_devicechange消息,通知i/o设备状态改变,由于i/o设备状态改变可能是由于其他事件引起的,例如,由于pc上的i/o设备如鼠标、键盘、u盘的插拔都能触发wm_devicechange消息,所以,此时需要检测终端同诊断仪连接的串口的状态,即判断是否能够读取到诊断仪的串口信息、是否能够通过串口进行通信,若能,则排除其他i/o设备如鼠标、键盘、u盘的插拔触发wm_devicechange消息,判定此次wm_devicechange消息的产生是由于串口的关闭、打开引起的,则表示诊断仪复位完成。在具体的实际操作过程中,上述过程可以在终端上通过诊断软件客户端(即诊断app)完成。具体过程如下:接收到诊断请求后,诊断app将封装好的复位命令通过串口发送给诊断盒。诊断盒接受到复位命令后,开始进行复位,此时串口会关闭又打开。终端操作系统(此处以windows操作系统进行说明)检测到i/o设备关闭、打开事件发生,windows系统向诊断app的主窗口发送wm_devicechange消息,通知i/o设备状态改变,由于i/o设备状态改变可能是由于其他事件引起的,例如,由于pc上的i/o设备如鼠标、键盘、u盘的插拔都能触发wm_devicechange消息,所以,此时需要检测终端同诊断仪连接的串口的状态,即判断是否能够读取到诊断仪的串口信息、是否能够通过串口进行通信,若能,则排除其他i/o设备如鼠标、键盘、u盘的插拔触发wm_devicechange消息,判定此次wm_devicechange消息的产生是由于串口的关闭、打开引起的,则表示诊断仪复位完成。

复位完成后,根据确定的阶段标识,例如确定当前为非校验阶段,则发送验证命令至诊断仪,用以验证诊断仪是否已经成功进入工作模式。例如,向诊断仪发送一请求,请求获取诊断仪状态信息,在接收到诊断仪反馈的状态信息后,若状态信息表明诊断仪已进入工作模式,则确认当前诊断仪已经成功进入工作模式,则可以进行对车辆的诊断工作。若状态信息表明诊断仪未进入工作模式,则发出告警消息,例如警告声、灯光闪烁、在用户界面显示对话框,提示用户,诊断仪进入工作模式失败,需要用户重新操作,以供重启上述流程。

在本发明另一可选实施例中,复位完成后,根据确定的阶段标识,若确定当前为校验阶段,则发送校验命令至诊断仪,在接收到诊断仪的反馈信息后发送进入工作模式的指令至诊断仪。此处终端发送校验命令,接收反馈信息的过程即握手协议。握手协议指通讯设备之间任何实际应用信息的传送总是伴随着一些控制信息的传递,它们按照既定的通讯协议工作,将应用信息安全、可靠、高效地传送到目的地。握手协议就是两个设备在通信之前,要互相的认识一下,然后才能互相传送。诊断仪在接收到进入工作模式的指令后,此时串口会先关闭再打开。终端操作系统(此处以windows操作系统进行说明)检测到i/o(输入/输出接口)设备关闭、打开事件发生,windows系统向终端的操作界面发送wm_devicechange消息,通知i/o设备状态改变。在具体的实际操作过程中,上述过程可以在终端上通过诊断软件客户端(即诊断app)完成。具体过程如下:终端操作系统(此处以windows操作系统进行说明)检测到i/o(输入/输出接口)设备关闭、打开事件发生,windows系统向诊断app的主窗口发送wm_devicechange消息,通知i/o设备状态改变。由于i/o设备状态改变可能是由于其他事件引起的,例如,由于pc上的i/o设备如鼠标、键盘、u盘的插拔都能触发wm_devicechange消息,所以,此时需要检测终端同诊断仪连接的串口的状态,即判断是否能够读取到诊断仪的串口信息、是否能够通过串口进行通信,若能,则排除其他i/o设备如鼠标、键盘、u盘的插拔触发wm_devicechange消息,判定此次wm_devicechange消息的产生是由于串口的关闭、打开引起的,则表示诊断仪已进入工作模式,并标记阶段标记为非校验阶段,接下来则发送验证命令至诊断仪,用以验证诊断仪是否已经成功进入工作模式。例如,向诊断仪发送一请求,请求获取诊断仪状态信息,在接收到诊断仪反馈的状态信息后,若状态信息表明诊断仪已进入工作模式,则确认当前诊断仪已经成功进入工作模式,则可以进行对车辆的诊断工作。若状态信息表明诊断仪未进入工作模式,则发出告警消息,例如警告声、灯光闪烁、在用户界面显示对话框,提示用户,诊断仪进入工作模式失败,需要用户重新操作,以供重启上述流程。

本发明中,终端在与诊断仪建立通讯连接后,接收基于用户操作触发的诊断请求,根据诊断请求确定阶段标识,并将复位命令发送至诊断仪,若接收到设备状态改变信息,则判断诊断仪复位是否完成,若诊断仪复位完成则根据阶段标识判断是否进入校验阶段,若不为进入校验阶段,则验证诊断仪是否进入工作模式,若是,则表明诊断仪初始化完成,控制诊断仪进行诊断。通过本发明,大大缩短了诊断仪初始化的时间,极大提升了用户的使用感受。

进一步地,处理器1001可以调用存储器1005中存储的快速初始化诊断仪程序,还执行以下操作:

判断本次诊断请求发起之前的预设时间内是否存在具有所述车辆标识信息的历史诊断记录;

若存在,则确定阶段标识为非校验阶段;

若不存在,则确定阶段标识为校验阶段。

本实施例中,预设时间指诊断仪与终端保持通讯连接的一段时间(时长可人为设置)。例如,在15:00终端接收到基于用户操作触发的诊断请求,诊断请求中包含了车辆标识信息,车辆标识信息指待诊断的车辆车系信息,如“丰田”,还可以是待诊断车辆vin码信息,在此不作限制,具体根据实际需要而定。终端检测到在14:50时存在“丰田”车系的诊断记录,且14:50~15:00时间段内,诊断仪保持与终端的通信连接。则确定阶段标识为非校验阶段,例如,在系统进程中将标识变量设置为“2”,代表阶段为非校验阶段,诊断仪复位完成后不需要进行校验,而是直接发送验证命令,以供验证诊断仪是否进入工作模式,并在验证诊断仪进入工作模式后完成初始化并控制诊断仪进行诊断;若接收到诊断请求时,检测到不存在诊断请求中车辆标识信息对应的历史诊断记录,则确定当前标识为校验阶段,例如在系统进程中将标识变量设置为“1”,代表阶段为校验阶段,诊断仪复位完成后,终端发送校验命令至诊断仪,在接收到诊断仪的反馈信息后,发送进入工作模式的指令至诊断仪,以供诊断仪进入工作模式。

本实施例中,根据诊断请求中包含的车辆标识信息,检测本次诊断请求发起之前的预设时间内是否存在该车辆标识信息对应的历史诊断记录,若存在,则确定阶段为非校验阶段,在诊断仪复位完成后不需要进行校验,而是直接发送验证命令至诊断仪,以供验证诊断仪是否进入工作模式,并在验证诊断仪进入工作模式后完成初始化并控制诊断仪进行诊断。通过本实施例,加快了诊断仪初始化过程。

进一步地,处理器1001可以调用存储器1005中存储的快速初始化诊断仪程序,还执行以下操作:

当所述阶段标识为非校验阶段时,则判断所述诊断仪不进入校验阶段;

当所述阶段标识为校验阶段时,则判断所述诊断仪进入校验阶段。

本实施例中,当阶段标识可在系统进程中通过添加标志位进行设置。例如,当阶段标识为非校验阶段,则将标志位为设置为“2”,表示诊断仪在复位完成后不进入校验阶段,而是发送验证命令至诊断仪,以供验证诊断仪是否进入工作模式,并在验证诊断仪进入工作模式后完成初始化并控制诊断仪进行诊断;当阶段标识为校验阶段,则将标志位设置为“1”,表示诊断仪在复位完成后为进入校验阶段,则发送校验命令至诊断仪,在接收到诊断仪的反馈信息后发送进入工作模式的指令至诊断仪,以供诊断仪进入工作模式。此处终端发送校验命令,接收反馈信息的过程即握手协议。握手协议指通讯设备之间任何实际应用信息的传送总是伴随着一些控制信息的传递,它们按照既定的通讯协议工作,将应用信息安全、可靠、高效地传送到目的地。握手协议就是两个设备在通信之前,要互相的认识一下,然后才能互相传送。在诊断仪进入工作模式后,再将标志位更新为“2”,接下来发送验证命令至诊断仪,以供验证诊断仪是否进入工作模式。

本实施例中,根据诊断请求中包含的车辆标识信息,检测本次诊断请求发起之前的预设时间内是否存在该车辆标识信息对应的历史诊断记录,若存在,则确定阶段为非校验阶段,在诊断仪复位完成后不需要进行校验,而是直接发送验证命令至诊断仪,以供验证诊断仪是否进入工作模式,并在验证诊断仪进入工作模式后完成初始化并控制诊断仪进行诊断。通过本实施例,加快了诊断仪初始化过程。

进一步地,处理器1001可以调用存储器1005中存储的快速初始化诊断仪程序,还执行以下操作:

在接收到所述设备状态改变信息后,读取所述诊断仪的串口状态信息;

判断所述串口状态是否处于开启通信状态,若处于开启通信状态则判断所述诊断仪完成复位。

本实施例中,接收到诊断请求后,应用程序将封装好的复位命令通过串口发送给诊断盒。诊断盒接受到复位命令后,开始进行复位,此时串口会关闭又打开。终端操作系统(此处以windows操作系统进行说明)检测到i/o设备关闭、打开事件发生,windows系统向终端的操作界面发送wm_devicechange消息(设备状态改变信息),通知i/o设备状态改变。在具体的实际操作过程中,上述过程可以在终端上通过诊断软件客户端(即诊断app)完成。具体过程如下:终端操作系统(此处以windows操作系统进行说明)检测到i/o(输入/输出接口)设备关闭、打开事件发生,windows系统向诊断app的主窗口发送wm_devicechange消息,通知i/o设备状态改变。由于i/o设备状态改变可能是由于其他事件引起的,例如,由于pc上的i/o设备如鼠标、键盘、u盘的插拔都能触发wm_devicechange消息,所以,此时需要检测终端同诊断仪连接的串口的状态,即判断是否能够读取到诊断仪的串口信息、是否能够通过串口进行通信,若能,则排除其他i/o设备如鼠标、键盘、u盘的插拔触发wm_devicechange消息,判定此次wm_devicechange消息的产生是由于串口的关闭、打开引起的,则表示诊断仪复位完成。

在本实施例中,终端上运行的操作系统能够检测输入/输出接口状态的改变(i/o设备关闭、打开事件)。例如,以windows操作系统的消息机制为例,当i/o设备关闭、打开事件发生时,会触发wm_devicechange消息。由于i/o设备状态改变可能是由于其他事件引起的,例如,由于pc上的i/o设备如鼠标、键盘、u盘的插拔都能触发wm_devicechange消息,所以,此时需要检测终端同诊断仪连接的串口的状态,例如,发一个测试命令至诊断仪,如果能够接收到诊断仪基于该测试命令发出的反馈,则证明此次i/o设备状态改变是由串口状态改变引起的。

在本实施例中,当i/o设备状态改变时,进一步检测是否能与诊断仪进行通信,只有在检测到能与诊断仪进行通信后,才进行下一步,避免了pc上的i/o设备如鼠标、键盘、u盘的插拔都能触发wm_devicechange消息对本发明方案的错误影响。

进一步地,处理器1001可以调用存储器1005中存储的快速初始化诊断仪程序,还执行以下操作:

若根据阶段标识判断进入校验阶段,控制所述诊断仪执行校验步骤;

完成校验后,发送进入工作模式的指令至所述诊断仪,并重置阶段标识为非校验阶段;

根据再次接收到的设备状态改变信息判断所述诊断仪的串口是否处于开启通信状态;

若处于开启通信状态,则执行验证所述诊断仪是否进入工作模式,并在验证所述诊断仪进入工作模式后完成初始化,控制所述诊断仪进行诊断。

在本实施例中,复位完成后,根据确定的阶段标识,若确定当前为校验阶段,则发送校验命令至诊断仪,在接收到诊断仪的反馈信息后发送进入工作模式的指令至诊断仪,以供诊断仪进入工作模式。此处终端发送校验命令,接收反馈信息的过程即握手协议。握手协议指通讯设备之间任何实际应用信息的传送总是伴随着一些控制信息的传递,它们按照既定的通讯协议工作,将应用信息安全、可靠、高效地传送到目的地。握手协议就是两个设备在通信之前,要互相的认识一下,然后才能互相传送。同时将阶段标记重置为非校验阶段。诊断仪在接收到进入工作模式的指令后,会进入工作模式,此时串口会先关闭再打开。终端操作系统(此处以windows操作系统进行说明)检测到i/o(输入/输出接口)设备关闭、打开事件发生,windows系统向终端的操作界面发送wm_devicechange消息,通知i/o设备状态改变。在具体的实际操作过程中,上述过程可以在终端上通过诊断软件客户端(即诊断app)完成。具体过程如下:终端操作系统(此处以windows操作系统进行说明)检测到i/o(输入/输出接口)设备关闭、打开事件发生,windows系统向诊断app的主窗口发送wm_devicechange消息,通知i/o设备状态改变。由于i/o设备状态改变可能是由于其他事件引起的,例如,由于pc上的i/o设备如鼠标、键盘、u盘的插拔都能触发wm_devicechange消息,所以,此时需要检测终端同诊断仪连接的串口的状态,即判断是否能够读取到诊断仪的串口信息、是否能够通过串口进行通信,若能,则排除其他i/o设备如鼠标、键盘、u盘的插拔触发wm_devicechange消息,判定此次wm_devicechange消息的产生是由于串口的关闭、打开引起的,并根据当前阶段标记,当前阶段标记为非校验阶段,接下来则发送验证命令至诊断仪,用以验证诊断仪是否已经成功进入工作模式。例如,向诊断仪发送一请求,请求获取诊断仪状态信息,在接收到诊断仪反馈的状态信息后,若状态信息表明诊断仪已进入工作模式,则确认当前诊断仪已经成功进入工作模式,则可以进行对车辆的诊断工作。若状态信息表明诊断仪未进入工作模式,则发出告警消息,例如警告声、灯光闪烁、在用户界面显示对话框,提示用户,诊断仪进入工作模式失败,需要用户重新操作,以供重启上述流程(步骤s10至s70)。

本实施例中,终端在与诊断仪建立通讯连接后,接收基于用户操作触发的诊断请求,根据诊断请求确定阶段标识,并将复位命令发送至诊断仪,若接收到设备状态改变消息,则判断诊断仪复位是否完整,若诊断仪复位完成则根据阶段标识判断是否进入校验阶段,若为进入校验阶段,则发送校验命令至诊断仪,在接收到诊断仪的反馈信息后发送进入工作模式的指令至诊断仪,以供诊断仪进入工作模式,若接收到设备状态改变消息,则判断诊断仪的串口是否处于开启通信状态,若串口处于开启通信状态则验证诊断仪是否进入工作模式,若是,则表明诊断仪初始化完成,控制诊断仪进行诊断。通过本发明,大大缩短了诊断仪初始化的时间,极大提升了用户的使用感受。

此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有快速初始化诊断仪程序,所述快速初始化诊断仪程序被处理器执行时实现如上述所述的快速初始化诊断仪的方法的步骤。

本发明计算机可读存储介质具体实施例同上述快速初始化诊断仪的方法的具体实施例大致相同,在此不做赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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