一种针对硬件设备环境问题自主选择最优解的系统及方法与流程

文档序号:16007019发布日期:2018-11-20 20:11阅读:205来源:国知局

本发明涉及计算机技术领域,具体地说是一种针对硬件设备环境问题自主选择最优解的系统及方法。



背景技术:

在目前的物联网环境中,存在着大量接入的硬件设备,如摄像头、读卡器、检化验设备等,其不仅有厂家之分,其型号也经常更迭。智能设备更是随着厂商设备升级、操作系统升级、浏览器版本升级、兼容立旧设备等各方面因素,导致系统中SDK支持库版本日渐增多。而SDK版本与设备型号分布范围较广,在实际使用过程中无法做到统一汇总、自动匹配,从而在访问硬件设备时因SDK资源版本、与环境信息、设备型号等不匹配而导致无法使用设备相关功能或者抛出异常等常见问题。



技术实现要素:

本发明的技术任务是针对以上不足之处,提供一种针对硬件设备环境问题自主选择最优解的系统及方法。

一种针对硬件设备环境问题自主选择最优解的系统,包括:

服务端,即服务器端,存储有SDK资源库、有效资源库、设备问题库,其中SDK资源库种按照设备类型、更新时间、适用的操作系统版本的顺序规则存储SDK资源;有效资源库中存储硬件设备成功连接时的信息;设备问题库中存储硬件设备连接失败时的信息;

客户端,连接上述服务端,集成有若干与SDK资源库中SDK资源对应的控件,用于连接硬件设备并在连接不成功时从服务端下载硬件设备对应的SDK资源。

所述有效资源库中存储环境信息、设备信息、动态链接库资源,其中,

环境信息是指硬件设备成功连接时的PC环境信息,该PC端的环境包括:Windows版本信息、系统类型信息、IE浏览器信息、.net Framework信息、Mac地址信息、CPU0序列号信息以及JRE信息;

设备信息包括设备编号、设备通信参数,设备编号是硬件设备的唯一标识;设备通信参数包括网络通信参数、串口通信参数;

动态链接库资源是指硬件设备成功链接的SDK资源信息,动态链接库资源跟设备的具体型号、PC端环境相对应,当出现客户端调用硬件设备失败的情况时,客户端自动从服务端下载按厂商SDK更新时间逆序排列的动态链接库资源,然后以迭代的方式进行自动的匹配性验证。

所述设备问题库中存储环境信息、设备信息,其中,

环境信息是指硬件设备连接失败时的PC环境信息,该PC端的环境包括:Windows版本信息、系统类型信息、IE浏览器信息、.net Framework信息、Mac地址信息、CPU0序列号信息以及JRE信息;

设备信息包括设备编号、设备通信参数,设备编号是硬件设备的唯一标识;设备通信参数包括网络通信参数、串口通信参数。

所述客户端在访问硬件设备,出现访问失败时,客户端自动从服务端下载SDK资源库中信息并迭代匹配,当匹配成功后,停止迭代,并将存储环境信息、设备信息、动态链接库资源存放到有效资源库中;当迭代完所有的SDK资源,都失败时,将设备信息、环境信息存放到设备问题库中。

一种针对硬件设备环境问题自主选择最优解的方法,其实现过程为:

一、首先将厂商的SDK资源库按照设备类型、更新时间、适用的操作系统版本的规则进行存储,存放在服务器上;

二、配置集成有若干控件的客户端,该客户端连接服务端,即上述存储服务器,然后通过该客户端访问接入的硬件设备;

三、当出现访问失败时,客户端自动从服务端下载按时间逆序排列的SDK资源库中信息,然后进行迭代匹配;

四、当匹配成功后,停止迭代,同时在服务器上创建有效资源库并将[环境信息,设备信息,动态链接库资源]存放到有效资源库中;

五、当迭代完所有的SDK资源,都失败,创建设备问题库并将设备信息、环境信息存放到设备问题库中;

六、当再次访问硬件设备时,顺序从有效资源库、设备问题库中查找SDK资源文件,当无法找到有效的SDK资源时,返回步骤三,直至找到有效的SDK资源,完成最优解选择。

所述SDK资源库、有效资源库及设备问题库中均存储以下设备信息:设备编号、设备通信参数,其中设备编号是硬件设备的唯一标识;设备通信参数包括网络通信参数、串口通信参数。

所述有效资源库、设备问题库中存放的环境信息是指调用端PC环境信息,该PC端的环境包括:Windows版本信息、系统类型信息、IE浏览器信息、.net Framework信息、Mac地址信息、CPU0序列号信息以及JRE信息。

所述有效资源库中动态链接库资源是指当前设备链接的SDK资源信息,动态链接库资源跟设备的具体型号、PC端环境相对应,当出现客户端调用硬件设备失败的情况时,自动从服务端下载按厂商SDK更新时间逆序排列的动态链接库资源,然后以迭代的方式进行自动的匹配性验证。

所述步骤六中,当其它客户端访问硬件设备时,从有效资源库中查找SDK资源文件的过程为:首先从有效资源库中检索对应的资源文件进行匹配,当有效资源库中不存在对应的资源文件,再判断设备是否属于问题库。

所述步骤六中,判断设备是否属于问题库的过程为:

当有效资源库中不存在最优解,则继续去设备问题库中验证:当前设备、环境是否属于问题库,如果属于,则给出相关提示指导信息;如果不属于,则继续从服务器迭代下载不同版本的SDK资源文件进行匹配,当匹配成功时,停止迭代,将相关信息进行存储形成有效的资源库;当迭代完毕,都没匹配成功,则将设备匹配失败的异常情况进行存储形成设备问题库。

本发明的一种针对硬件设备环境问题自主选择最优解的系统及方法和现有技术相比,具有以下有益效果:

本发明的一种针对硬件设备环境问题自主选择最优解的系统及方法,基于当前PC端的环境基础上,快速从大量的SDK资源版本库中自主搜索出当前设备型号所需要的最匹配的资源文件,解决了在硬件厂商、设备类型、设备型号、厂商提供的SDK版本日益增多,系统通过动态链接库调用对应设备出现的各种问题,及时、有效地提高了软件系统对硬件设备的使用效率,实用性强,适用范围广泛,易于推广。

附图说明

为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

附图1为本发明系统的实现示例图。

附图2为本发明方法的实现流程图。

具体实施方式

为了使本技术领域的人员更好地理解本发明的方案,下面结合具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如附图1所示,一种针对硬件设备环境问题自主选择最优解的系统,包括:

服务端,即服务器端,存储有SDK资源库、有效资源库、设备问题库,其中SDK资源库种按照设备类型、更新时间、适用的操作系统版本的顺序规则存储SDK资源;有效资源库中存储硬件设备成功连接时的信息;设备问题库中存储硬件设备连接失败时的信息;

客户端,连接上述服务端,集成有若干与SDK资源库中SDK资源对应的控件,用于连接硬件设备并在连接不成功时从服务端下载硬件设备对应的SDK资源。

所述集成控件是指基于一种开发语言开发的支持多厂商同一类型的设备(如大华、海康、天地伟业网络摄像机)的集成控件,如applet控件或activex控件。

所述有效资源库中存储环境信息、设备信息、动态链接库资源,其中,

环境信息是指硬件设备成功连接时的PC环境信息,该PC端的环境包括:Windows版本信息、系统类型信息、IE浏览器信息、.net Framework信息、Mac地址信息、CPU0序列号信息以及JRE信息;

设备信息包括设备编号、设备通信参数,设备编号是硬件设备的唯一标识;设备通信参数包括网络通信参数、串口通信参数;

动态链接库资源是指硬件设备成功链接的SDK资源信息,动态链接库资源跟设备的具体型号、PC端环境相对应,当出现客户端调用硬件设备失败的情况时,客户端自动从服务端下载按厂商SDK更新时间逆序排列的动态链接库资源,然后以迭代的方式进行自动的匹配性验证。

所述设备问题库中存储环境信息、设备信息,其中,

环境信息是指硬件设备连接失败时的PC环境信息,该PC端的环境包括:Windows版本信息、系统类型信息、IE浏览器信息、.net Framework信息、Mac地址信息、CPU0序列号信息以及JRE信息;

设备信息包括设备编号、设备通信参数,设备编号是硬件设备的唯一标识;设备通信参数包括网络通信参数、串口通信参数。

所述客户端在访问硬件设备,出现访问失败时,客户端自动从服务端下载SDK资源库中信息并迭代匹配,当匹配成功后,停止迭代,并将存储环境信息、设备信息、动态链接库资源存放到有效资源库中;当迭代完所有的SDK资源,都失败时,将设备信息、环境信息存放到设备问题库中。

如附图2所示,一种针对硬件设备环境问题自主选择最优解的方法,其实现过程为:

一、首先将厂商的SDK资源库按照设备类型、更新时间、适用的操作系统版本的规则进行存储,存放在服务器上;

二、配置集成有若干控件的客户端,该客户端连接服务端,即上述存储服务器,然后通过该客户端访问接入的硬件设备;

三、当出现访问失败时,客户端自动从服务端下载按时间逆序排列的SDK资源库中信息,然后进行迭代匹配;

四、当匹配成功后,停止迭代,同时在服务器上创建有效资源库并将[环境信息,设备信息,动态链接库资源]存放到有效资源库中;

五、当迭代完所有的SDK资源,都失败,创建设备问题库并将设备信息、环境信息存放到设备问题库中;

六、当再次访问硬件设备时,顺序从有效资源库、设备问题库中查找SDK资源文件,当无法找到有效的SDK资源时,返回步骤三,直至找到有效的SDK资源,完成最优解选择。

所述SDK资源库、有效资源库及设备问题库中均存储以下设备信息:设备编号、设备通信参数,其中设备编号是硬件设备的唯一标识;设备通信参数包括网络通信参数、串口通信参数。

所述有效资源库、设备问题库中存放的环境信息是指调用端PC环境信息,该PC端的环境包括:Windows版本信息、系统类型信息、IE浏览器信息、.net Framework信息、Mac地址信息、CPU0序列号信息以及JRE信息。

所述有效资源库中动态链接库资源是指当前设备链接的SDK资源信息,动态链接库资源跟设备的具体型号、PC端环境相对应,当出现客户端调用硬件设备失败的情况时,自动从服务端下载按厂商SDK更新时间逆序排列的动态链接库资源,然后以迭代的方式进行自动的匹配性验证。

所述步骤六中,当其它客户端访问硬件设备时,从有效资源库中查找SDK资源文件的过程为:首先从有效资源库中检索对应的资源文件进行匹配,当有效资源库中不存在对应的资源文件,再判断设备是否属于问题库。

所述步骤六中,判断设备是否属于问题库的过程为:

当有效资源库中不存在最优解,则继续去设备问题库中验证:当前设备、环境是否属于问题库,如果属于,则给出相关提示指导信息;如果不属于,则继续从服务器迭代下载不同版本的SDK资源文件进行匹配,当匹配成功时,停止迭代,将相关信息进行存储形成有效的资源库;当迭代完毕,都没匹配成功,则将设备匹配失败的异常情况进行存储形成设备问题库。

同一集成控件访问不同的设备,会加载不同的动态链接库,而动态链接库跟设备的具体型号、PC端环境有关,会出现调用失败的情况,这时会自动从服务端下载按厂商SDK更新时间逆序排列的动态链接库资源,然后以迭代的方式进行自动的匹配性验证。

基于上述步骤,本发明的实现代码如下:

/**

* 自主匹配SDK文件的方法

* @param deviceBH 设备编号

* @param connetInfo 设备通信参数

* @param obj 环境问题对象

*/

public void CommenExecute(String deviceBH,Object obj,String connetInfo){

//获取服务端获取设备对应的SDK资源数进行遍历

int iloops = getSDKnumFromServer(deviceBH);

for(int i = 0;i<iloops;i++){

//从服务器下载对应的SDK资源

List<String> SDKlist = getSDKFromServer(deviceBH);

//连接设备

int code = connectDevice(deviceBH,connetInfo);

if(0 == code){//连接成功

//保存相关信息,形成有效资源库

saveEffectiveRes(deviceBH,obj,SDKlist);

System.out.println("连接成功");

break;

}else if(1== code){//SDK资源部匹配失败

if(i == (iloops-1)){//已遍历完所有的SDK资源,依旧匹配失败

//保存设备问题资源库

saveProplemRes(deviceBH,obj);

System.out.println("当前设备不存在匹配的资源库,请联系相关技术人员协助检查!");

}

//如果未迭代完SDK资源,则继续迭代

}else if(2 == code){

//通信参数有误

System.out.println("设备通信参数配置错误,请检查!");

}else{

//其他

}

}

}

/**

* 自主获取最优解的方法

* @param deviceBH 设备编号,是硬件设备的唯一标识

* @param connetInfo 设备通信参数,如果是网络通信:"0@ip_channel@port@user@password"

*如果是串口通信:"1@portid@baud@databit@parity@stop"

*/

public void autoGetSolution(String deviceBH,String connetInfo){

//获取客户端基本环境,如操作系统、系统类型、Mac地址、CPU0序列号等

Object obj = getEnvironment();

//首次访问硬件设备

if(bFirst){

//调用自主匹配SDK的方法

CommenExecute(deviceBH,obj,connetInfo);

}else{ //非首次访问

//判断当前设备及环境是否属于有效资源库中

Boolean flag = isInEffectiveRes(deviceBH,obj);

if(flag){//属于

//获取有效资源库中对用的SDK资源

getEffectiveRes(deviceBH,obj);

//连接设备

int code = connectDevice(deviceBH,connetInfo);

if(0 == code){

System.out.println("连接成功");

}

}else{//不属于

//判断当前设备及环境是否属于设备问题库

Boolean flag2 = isInProplemRes(deviceBH,obj);

if(flag2){//属于

System.out.println("当前设备不存在匹配的资源库,请联系相关技术人员协助检查!");

}else{//不属于

//调用自主匹配SDK的方法

CommenExecute(deviceBH,obj,connetInfo);

}

}

}

}。

通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。

除说明书所述的技术特征外,均为本专业技术人员的已知技术。

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