掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及设备访问领域,特别是涉及一种设备的访问方法及其相关组件。

背景技术

AMG(Arbitary Waveform Generator,任意波形发生器)是一种信号发生设备,能够产生复杂的时变多路信号,广泛地应用在军事和科学研究领域中。现在的AWG板卡均基于单进程的操控方式,也即AWG板卡在同一时间只能处理一个指令,若有两个及以上的进程同时访问AWG板卡时,则会导致AWG板卡失去控制,需要重新加载和初始化AWG板卡后才能恢复正常。因此,需要保证AWG板卡只能同时受到一个进程的控制。

发明内容

本发明的目的是提供一种设备的访问方法及其相关组件,能够避免多个进程同时访问设备而导致设备失去控制的现象,还能够避免其他进程自行访问设备的现象发生,保证设备只能同时受到一个进程的控制。

为解决上述技术问题,本发明提供了一种设备的访问方法,应用于服务器中的处理器,所述服务器与设备连接,所述设备的访问方法包括:

当接收到访问设备指令时,生成所述访问设备指令对应的访问进程;

判断所述服务器中是否有其他进程正在访问所述设备;

若没有其他进程正在访问所述设备,则通过所述访问进程访问所述设备;

若有其他进程正在访问所述设备,则当所述其他进程访问结束后,通过所述访问进程接入所述其他进程以访问所述设备。

优选的,在通过所述访问进程访问所述设备之前,还包括:

生成所述访问进程对应的第一实例,通过所述访问进程经过所述第一实例访问所述设备;

在通过所述访问进程访问所述设备之后,还包括:

当所述访问进程访问结束后,删除所述第一实例。

优选的,在删除所述第一实例之前,还包括:

判断是否存在新的所述其他进程需要访问所述设备;

若是,则通过新的所述其他进程经过所述第一实例访问所述设备;

若否,则进入删除所述第一实例的步骤。

优选的,判断所述服务器中是否有其他进程正在访问所述设备,包括:

判断是否存在所述第一实例;

若否,则判定没有其他进程正在访问所述设备;

若是,则判定有其他进程正在访问所述设备。

优选的,通过所述访问进程接入所述其他进程以访问所述设备,包括:

保留所述其他进程对应的第二实例;

通过所述访问进程经过所述第二实例访问所述设备;

在通过所述访问进程接入所述其他进程以访问所述设备之后,还包括:

当所述访问进程访问结束后,删除所述第二实例。

优选的,在删除所述第二实例之前,还包括:

判断是否检测到存在新的所述其他进程需要访问所述设备;

若是,则通过新的所述其他进程经过所述第二实例访问所述设备;

若否,则进入删除所述第二实例的步骤。

优选的,通过所述访问进程接入所述其他进程以访问所述设备,包括:

建立所述其他进程对应的static对象;

通过所述访问进程利用所述static对象接入所述其他进程以访问所述设备。

本申请还提供一种设备的访问装置,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述的设备的访问方法的步骤。

本申请还提供一种服务器,包括服务器本体,还包括如上述的设备的访问装置;

所述服务器本体与所述设备的访问装置连接。

本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的设备的访问方法的步骤。

本申请提供了一种设备的访问方法及其相关组件,涉及设备访问领域,应用于服务器中的处理器,服务器与设备连接,服务器在接收到访问设备指令时,生成访问设备指令对应的访问进程,然后判断服务器中是否有其他进程正在访问设备,若此时没有其他进程正在访问设备,则直接通过访问进程访问设备;若有其他进程正在访问设备,则在该其他进程访问结束后,通过访问进程接入其他进程以访问设备。当有多个进程需要访问设备时,只有在一个进程访问结束后另一个进程才能访问设备,避免了多个进程同时访问设备而导致设备失去控制的现象;此外,在进程访问结束后,通过下一个进程接入该进程的方式来访问设备,能够避免其他进程自行访问设备的现象发生,进一步避免了多个进程同时访问设备的现象出现。

附图说明

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

图1为本申请提供的一种设备的访问方法的流程图;

图2为本申请提供的一种设备的访问装置的结构示意图;

图3为本申请提供的一种服务器的结构示意图。

具体实施方式

本发明的核心是提供一种设备的访问方法及其相关组件,能够避免多个进程同时访问设备而导致设备失去控制的现象,还能够避免其他进程自行访问设备的现象发生,保证设备只能同时受到一个进程的控制。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

AWG是一种信号发生设备,能够产生复杂的时变多路信号,在军事领域能够为复杂雷达、电子侦察、敌我识别等设备的指标进行测量,提供多种数字调制信号;在科学研究领域也得到了广泛应用,尤其在量子计算测控系统中,AWG对量子芯片测控起到关键的作用。由于现阶段AWG板卡的操控是基于单进程的操控方式,两个以上的进程同时访问一块AWG板卡时会出现多个设备句柄,导致板卡控制失效,波形数据发送失败,需要重新加载和初始化板卡后才能正常操控,大大降低了研发和工作效率。

为了解决上述技术问题。请参照图1,图1为本申请提供的一种设备的访问方法的流程图,应用于服务器中的处理器,服务器与设备连接,设备的访问方法包括:

S1:当接收到访问设备指令时,生成访问设备指令对应的访问进程;

进程指的是程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。相当于是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,进程属于操作系统动态执行的基本单元,一般情况下,进程包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。此外,由于服务器上的程序是本身不会自由活动,只有服务器上的处理器在运行该程序时,程序才能成为一个活动的实体,而使其活动起来的方式则是通过进程来实现。

服务器中通常安装有多个软件,当这些软件启动之后,这些软件在执行各种动作时,都需要依靠服务器的进程来实现,此时需要服务器产生相对应的进程来提供给该软件执行该动作。基于此,当用户想要访问AWG板卡或别的设备时,用户通过在服务器中的某个软件上进行操作,会在服务器中生成访问该设备的指令,当处理器检测到该访问设备指令时,可以确定用户需要访问设备,此时生成对应于该访问设备指令的访问进程,以便后续通过该访问进程来访问该设备。

S2:判断服务器中是否有其他进程正在访问设备;

由于服务器中有多个软件,除了用户当前正在操作的软件以外,还有其他软件可能正在访问设备,该其他软件可能是因为自身业务需要而自动访问设备,也可能是用户在之前的操作中通过其他软件在持续访问设备,其他软件在访问设备时也需要一个访问进程来提供给其他软件自身来访问设备。考虑到设备是基于单进程的操作方式,若有多个进程同时访问该设备,则会导致该设备控制失效,所以可以通过判断该设备是否正在被其他进程访问的方式来确定设备当前是否可以被访问,若设备正在被其他进程访问,则本次生成的这个访问进程则不能访问设备,以避免多进程访问设备的情况发生。而对于具体的判断服务器中是否有其他进程访问设备的方法,可以通过检测该设备当前是否空闲、检测服务器的各个进程中是否有进程与设备之间存在联系、检测是否能够接收到设备因为正在被控制而反馈回来的数据信息等方式来判断。

S3:若没有其他进程正在访问设备,则通过访问进程访问设备;

若没有其他进程正在访问设备,说明服务器中此时没有任一个其他软件在访问设备,也即设备处于空闲状态,可以直接通过该访问进程来访问该设备,由于服务器此时只通过这一个访问进程来访问设备,所以不会出现多进程访问设备的情况。

S4:若有其他进程正在访问设备,则当其他进程访问结束后,通过访问进程接入其他进程以访问设备。

在有其他进程正在访问设备时,为避免多进程访问设备的情况,需要阻止本次的访问进程直接访问设备,以保证目前正在访问设备的其他进程能够正常访问设备和保证设备本身能够正常运行。当正在访问设备的其他进程结束了对设备的访问之后,考虑到本次的访问进程在等待该其他进程结束访问的过程中,还可能会生成新的其他进程需要访问设备,这些新的其他进程同样在等待正在访问设备的其他进程结束访问,为了保证能够通过本次的访问进程来访问该设备,当正在访问设备的其他进程结束了对设备的访问之后,并非通过访问进程直接访问设备,而是将访问进程接入刚结束访问的其他进程中来访问设备,相当于仍通过之前访问设备的其他进程来访问设备,由于该其他进程被访问进程接入后仍存在,新的其他进程因为检测到现在仍有进程访问设备,所以这些新的其他进程不会直接访问设备。基于此,若一直有新的进程在旧的进程结束访问之前生成,可以根据各个进程生成的时间,将最早生成的新的进程接入旧进程中,在旧的进程原来的访问任务结束之后,新的进程利用旧的进程执行新的访问任务。而对于具体的接入方式,可以是在进程对应的类中建立一个对外访问接口以提供其他进程访问。

综上,处理器在接收到访问设备指令时,生成访问设备指令对应的访问进程,然后判断服务器中是否有其他进程正在访问设备,若此时没有其他进程正在访问设备,则直接通过访问进程访问设备;若有其他进程正在访问设备,则在该其他进程访问结束后,通过访问进程接入其他进程以访问设备。当有多个进程需要访问设备时,只有在一个进程访问结束后另一个进程才能访问设备,避免了多个进程同时访问设备而导致设备失去控制的现象;此外,在进程访问结束后,通过下一个进程接入该进程的方式来访问设备,能够避免其他进程自行访问设备的现象发生,进一步避免了多个进程同时访问设备的现象出现。

在上述实施例的基础:

作为一种优选的实施例,在通过访问进程访问设备之前,还包括:

生成访问进程对应的第一实例,通过访问进程经过第一实例访问设备;

在通过访问进程访问设备之后,还包括:

当访问进程访问结束后,删除第一实例。

为了进一步避免多个进程同时访问设备,本申请中,可以采用单例模式来访问设备,单例模式是一种在内存中会且只会创建一个对象的模式,当服务器中的任何程序或进程需要使用到实例来访问设备时,都只会利用这个已经创建好的实例来访问,不会再额外创建实例,当服务器访问设备时,即使是因为错误或其他干扰原因而导致处理器无法有效阻止多个进程同时访问设备,由于访问设备的对象实例只有一个,而同一时间只能有一个进程使用该实例,所以能够保证只有一个进程访问设备。在实际应用中,当确定目前没有任何进程在访问设备时,可以生成本次的访问进程对应的一个第一实例,以便本次的访问进程利用该实例来访问设备,而在本次的访问进程访问结束后,为了不影响其他进程的访问任务,还会删除该第一实例,以便其他进程生成一个实例来访问设备。基于此,通过单例模式来访问设备,能够进一步避免发生因为多进程同时访问设备的情况,进一步保证了设备运行的稳定性。

作为一种优选的实施例,在删除第一实例之前,还包括:

判断是否存在新的其他进程需要访问设备;

若是,则通过新的其他进程经过第一实例访问设备;

若否,则进入删除第一实例的步骤。

为了避免同时生成多个实例,本申请中,考虑到可能存在多个其他进程在等待访问进程结束访问,访问进程在结束访问后,其他进程会生成自己的实例来访问设备,若其他进程的数量较多,则可能会出现意外生成额外的实例的情况出现,从而导致多进程访问设备的情况发生。基于此,若有其他进程在等待访问进程结束访问,则访问进程在结束访问之后,不会删除自身的第一实例,而是将给第一实例交给其他进程使用,也即不让其他进程生成自己的实例,而是利用第一实例作为自己的实例使用,相当于将该其他进程作为新的访问进程来访问设备,当有多个其他其他进程时,由于此时仍有且只有一个实例存在,所以其他进程不会生成自己的实例,而且能够保证只有一个进程使用这一个实例来访问设备;只有在没有其他进程等待访问进程结束访问的情况下,访问进程在结束访问之后才会删除自身的第一实例。基于此,能够避免同时生成多个实例。

其中,判断是否有第一实例,在没有第一实例时创建实例,在有第一实例时调用第一实例的具体实现过程可以有下述的代码文件实现:

作为一种优选的实施例,判断服务器中是否有其他进程正在访问设备,包括:

判断是否存在第一实例;

若否,则判定没有其他进程正在访问设备;

若是,则判定有其他进程正在访问设备。

为了简单地判断是否有进程在访问设备,本申请中,由于采用单例模式的方式来访问设备,服务器中的每个软件或进程都需要通过某个实例来访问设备,可见,第一实例相当于进程访问设备的必要介质,因此,通过判断服务器中是否存在专门用于访问设备的第一实例,存在则说明有进程正在访问设备,不存在则说明没有进程在访问设备。基于此,通过判断是否存在第一实例,能够简单地判断是否有进程访问设备。

作为一种优选的实施例,通过访问进程接入其他进程以访问设备,包括:

保留其他进程对应的第二实例;

通过访问进程经过第二实例访问设备;

在通过访问进程接入其他进程以访问设备之后,还包括:

当访问进程访问结束后,删除第二实例。

为了保证实例的唯一性,本申请中,考虑到访问进程在等待其他进程访问设备结束之前,可能存在多个进程在等待其访问结束,当其他进程结束访问后,访问进程会生成第一实例来访问设备,但是,若此时出现短期的错误或者干扰等现象,可能会导致别的进程也生成实例,从而导致多进程访问设备的情况发生。基于此,若除了访问进程以外还有别的进程在等待其他进程结束访问,则在结束访问之后,保留其他进程自身使用的第二实例,且阻止访问进程生成第一实例以及阻止别的进程生成自身对应的实例,而是利用现有的第二实例作为自己的实例使用,由于此时仍有且只有一个实例存在,能够保证只有一个进程使用这一个实例来访问设备,而访问进程访问结束之后,若此时没有别的进程需要访问设备,则删除第二实例,以便后续的其他进程生成自己对应的实例;若除了访问进程以外没有别的进程在等待其他进程结束访问,才会在其他程序结束访问后,删除第二实例,以便访问进程生成第一实例。基于此,能够保证实例的唯一性。

作为一种优选的实施例,在删除第二实例之前,还包括:

判断是否检测到存在新的其他进程需要访问设备;

若是,则通过新的其他进程经过第二实例访问设备;

若否,则进入删除第二实例的步骤。

为了保证实例的唯一性,本申请中,考虑到访问进程在使用之前的其他进程留下的第二实例来访问设备的过程中,还可能会有新的其他行程需要访问设备,也即在访问进程使用第二实例访问设备结束之前,可能会有新的需要访问设备的其他进程出现。因此,同样需要阻止新的其他进程生成实例,在访问进程访问结束之后,继续保留该第二实例,以便新的其他进程继续使用之前的其他进程留下的第二实例来访问设备,而并非生成自身对应的实例,相当于此时只有一个实例。基于此,能够保证实例的唯一性。

作为一种优选的实施例,通过访问进程接入其他进程以访问设备,包括:

建立其他进程对应的static对象;

通过访问进程利用static对象接入其他进程以访问设备。

为了避免进程接入出错,本申请中,可以在服务器中的对应于访问设备的类中自定义一个全局变量,将该全局变量作为进程接入其他进程的方式,该全局变量能够被类中的所有对象引用,在此基础上,在全局变量前增加static使该全局变量变成static对象,也即静态全局变量,此时该static对象被定义该变量的类所独享,也即被其他进程所在的类独享,如果在一个进程使用extern关键字来声明另一个进程中存在的静态全局变量,这个进程也不能够使用这个static对象。基于此,由于访问设备的各个进程处在同一类中,所以该static对象只能够由用于访问设备的进程所使用,服务器中的其他无关的进程无法使用该static对象,避免了进程错误接入的问题。

请参照图2,图2为本申请提供的一种设备的访问装置的结构示意图,包括:

存储器21,用于存储计算机程序;

处理器22,用于执行计算机程序时实现如上述的设备的访问方法的步骤。

对于本申请提供的一种设备的访问装置的详细介绍,请参照上述设备的访问方法的实施例,本申请在此不再赘述。

处理器22在接收到访问设备指令时,生成访问设备指令对应的访问进程,然后判断处理器22所在的服务器中是否有其他进程正在访问设备,若此时没有其他进程正在访问设备,则直接通过访问进程访问设备;若有其他进程正在访问设备,则在该其他进程访问结束后,通过访问进程接入其他进程以访问设备。当有多个进程需要访问设备时,只有在一个进程访问结束后另一个进程才能访问设备,避免了多个进程同时访问设备而导致设备失去控制的现象;此外,在进程访问结束后,通过下一个进程接入该进程的方式来访问设备,能够避免其他进程自行访问设备的现象发生,进一步避免了多个进程同时访问设备的现象出现。

请参照图3,图3为本申请提供的一种服务器的结构示意图,包括服务器本体31,还包括如上述的设备的访问装置32;

服务器本体31与设备的访问装置32连接。

对于本申请提供的一种服务器的详细介绍,请参照上述设备的访问方法的实施例,本申请在此不再赘述。

服务器本体31在接收到访问设备指令时,生成访问设备指令对应的访问进程,然后设备的访问装置32判断服务器本体31中是否有其他进程正在访问设备,若此时没有其他进程正在访问设备,则直接通过访问进程访问设备;若有其他进程正在访问设备,则在该其他进程访问结束后,通过访问进程接入其他进程以访问设备。当有多个进程需要访问设备时,只有在一个进程访问结束后另一个进程才能访问设备,避免了多个进程同时访问设备而导致设备失去控制的现象;此外,在进程访问结束后,通过下一个进程接入该进程的方式来访问设备,能够避免其他进程自行访问设备的现象发生,进一步避免了多个进程同时访问设备的现象出现。

本申请还提供一种计算机可读存储介质,其特征在于,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的设备的访问方法的步骤。

对于本申请提供的一种计算机可读存储介质的详细介绍,请参照上述设备的访问方法的实施例,本申请在此不再赘述。

处理器所在的服务器在接收到访问设备指令时,生成访问设备指令对应的访问进程,然后判断服务器中是否有其他进程正在访问设备,若此时没有其他进程正在访问设备,则直接通过访问进程访问设备;若有其他进程正在访问设备,则在该其他进程访问结束后,通过访问进程接入其他进程以访问设备。当有多个进程需要访问设备时,只有在一个进程访问结束后另一个进程才能访问设备,避免了多个进程同时访问设备而导致设备失去控制的现象;此外,在进程访问结束后,通过下一个进程接入该进程的方式来访问设备,能够避免其他进程自行访问设备的现象发生,进一步避免了多个进程同时访问设备的现象出现。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其他形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

技术分类

06120115632891