一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

多微波源板卡的控制方法及系统与流程

2022-03-16 05:07:21 来源:中国专利 TAG:
1.本发明涉及微波源板卡控制
技术领域
:,具体地说是多微波源板卡的控制方法及系统。
背景技术
::2.微波源是指产生微波能量的装置称为微波源。不同的应用场景,需要不同频率和不同功率的微波能量。有连续波源、也有脉冲调制波源;有用磁控管、也有用微波晶体管来产生微波振荡。对微波源的要求是输出功率和频率的稳定性。3.通常用户在windows上安装微波源设备驱动程序后,利用微波源厂商所提供的的lomoduledll.dll动态链接库,调用pxi_finddev()接口,进行微波源设备的查找,并执行lomodule_init()来进行设备的初始化,最后利用接口lomodule_setfreq()和lomodule_setpower()进行微波源功率和频率的参数设置。然而当机箱存在多个微波源板卡时,用户在应用层无法指定相应槽位的微波源进行操作,导致设备运行状态紊乱。4.如何实现多个微波源板卡的控制,是需要解决的技术问题。技术实现要素:5.本发明的技术任务是针对以上不足,提供多微波源板卡的控制方法及系统,来解决如何实现多个微波源板卡的控制的技术问题。6.第一方面,本发明的多微波源板卡的控制方法,包括如下步骤:7.基于上层软件下发的指定槽位号,通过底层库打开对应的微波源板卡,并基于所述微波源板卡的设备标识创建一个板卡号,所述板卡号作为所述微波源板卡的标识;8.基于上层软件下发的指定槽位号,通过底层库从机箱查找指定槽位号对应的微波源板卡作为目标板卡,并返回机箱的设备信息,所述设备信息包括设备数量和设备地址;9.通过底层库调用目标板卡自身的设备初始化接口,通过设备初始化接口对目标板卡进行设备初始化,包括对目标板卡的资源地址、设备句柄以及错误信息进行参数初始化,所述资源地址为所述微波源板卡的设备文件路径,所述设备句柄为设备操作参数,所述错误信息用于报错并展示错误;10.通过底层库为所述目标板卡创建一个哈希项,所述哈希项的键值为所述目标板卡的板卡号,所述哈希项的值为所述目标板卡的设备句柄,将所述哈希项插入配置于底层库的哈希表中,并将目标板卡的板卡号返回上层软件;11.基于上层软件下发的指定槽位号,通过底层库查找对应的哈希项,并获取对应的设备句柄,基于所述设备句柄对指定槽位号对应的微波源板卡进行设备设置操作。12.作为优选,所述上层软件通过web界面下发指定槽位号以及获取对应微波源板卡的板卡号。13.作为优选,所述底层库中配置有上层接口,调用所述上层接口打开指定槽位号对应的微波源板卡,并基于所述微波源板卡的设备标识创建一个板卡号;14.所述上层接口配置有open_resource()函数,参数slot为微波源板卡对应槽位号。15.作为优选,所述底层库中配置有初始化接口,通过初始化接口调用所述设备初始化接口;16.所述设备初始化接口为配置有lomodule_init函数的lomodule_init接口,由微波源板卡自身的出厂商配置;17.所述初始化接口包括python驱动的initdev接口以及c库的dll_pxi_initdev接口,所述底层库调用python驱动的initdev接口,并调用c库的dll_pxi_initdev接口,通过dll_pxi_initdev接口调用所述lomodule_init;18.lomodule_init函数中,参数datafilepath为资源地址,参数index为目标板卡的办卡号,参数lohandle为设备句柄,参数g_strerrmsg为错误信息。19.作为优选,所述动态库利用开源的uthashc代码、malloc动态创建哈希表项,并同调用接口hash_add_int()将所述哈希表项插入到哈希表中。20.作为优选,基于上层软件下发的指定槽位号,通过底层库查找对应的哈希项,并获取对应的设备句柄,基于所述设备句柄对指定槽位号对应的微波源板卡进行设备设置操作,包括如下步骤:21.通过底层库将槽位号转换为对应微波源板卡的键值;22.通过底层库的hash_find_int接口查找哈希表中所述键值对应的哈希项,并从哈希项中获取对应的设备句柄;23.通过底层库调用lomodule_setfreq接口进行输出频率设置,lomodule_setfreq接口中配置有lomodule_setfreq函数,lomodule_setfreq函数中参数lohandle为设备句柄、参数dfreqmhz为期望设置的频率大小、参数g_strerrmsg为错误信息;和/或,通过底层库调用lomodule_setpower接口进行输出功率设置,lomodule_setpower接口中配置有lomodule_setpower函数,lomodule_setpower函数中参数lohandle为设备句柄、参数dpower为期望设置的功率大小、参数g_strerrmsg为错误信息。24.作为优选,基于各个微波源板卡的办卡号,通过底层库的hash_find_int()接口返回不同的哈希表项,以切换不同微波源板卡进行设备设置操作。25.作为优选,通过设备初始化接口对目标板卡进行设备初始化之前,基于设备地址、通过底层库的check_device_exist接口对目标板卡进行匹配,所述check_device_exist接口配置有check_device_exist()函数,用于判断机箱信息返回的目标板卡的设备地址与本地存储的设备地址是否一致。26.第二方面,本发明的多微波源板卡的控制系统,通过如第一方面任一项所述的多微波源板卡的控制方法对多微波源板卡进行控制,所述控制系统包括:27.上层软件,所述上层软件用于下发槽位号;28.底层库,所述底层库中配置有设备标识模块、设备查找模块、设备匹配模块、设备初始化模块、设备入库模块、设备操作模块以及板卡切换模块,29.所述设备标识模块用于基于上层软件下发的指定槽位号,打开对应的微波源板卡,并基于所述微波源板卡的设备标识创建一个板卡号,所述板卡号作为所述微波源板卡的标识;30.所述设备查找模块用于基于上层软件下发的指定槽位号,从机箱查找指定槽位号对应的微波源板卡,并返回机箱的设备信息,所述指定槽位号对应的微波源板卡作为目标板卡,所述设备信息包括设备数量以及设备地址;31.所述设备匹配模块用于基于设备地址对目标板卡进行匹配,判断返回的设备信息得到的目标板卡的设备地址与本地存储的设备地址是否一致;32.所述设备初始化模块用于调用目标板卡自身的设备初始化接口,通过设备初始化接口对目标板卡进行设备初始化,包括对目标板卡的资源地址、设备句柄以及错误信息进行参数初始化,所述资源地址为所述微波源板卡的设备文件路径,所述设备句柄为设备操作参数,所述错误信息用于报错并查看错误信息;33.所述设备插入模块用于为所述目标板卡创建一个哈希项,所述哈希项的键值为所述目标板卡的板卡号,所述哈希项的值为所述目标板卡的设备句柄,将所述哈希项插入配置于底层库的哈希表中,并将目标板卡的板卡号返回上层软件;34.所述设备操作模块用于基于上层软件下发的指定槽位号,通过底层库查找对应的哈希项,并获取对应的设备句柄,基于所述设备句柄对指定槽位号对应的微波源板卡进行设备设置操作,所述设备设置操作包括进行输出频率设置以及进行输出功率设置;35.所述板卡切换模块用于基于板卡号返回不同的哈希表项,以切换不同微波源板卡进行设备设置操作。36.作为优选,所述上层软件通过web界面对外交互,用于下发指定槽位号以及获取对应的板卡号;37.所述设备操作模块用于通过如下步骤进行微波源板卡进行设置操作:38.将槽位号转换为对应微波源板卡的键值;39.通过底层库的hash_find_int接口查找哈希表中所述键值对应的哈希项,并从哈希项中获取对应的设备句柄;40.通过底层库调用lomodule_setfreq接口进行输出频率设置,lomodule_setfreq接口中配置有lomodule_setfreq函数,lomodule_setfreq函数中参数lohandle为设备句柄、参数dfreqmhz为期望设置的频率大小、参数g_strerrmsg为错误信息;和/或,通过底层库调用lomodule_setpower接口进行输出功率设置,lomodule_setpower接口中配置有lomodule_setpower函数,lomodule_setpower函数中参数lohandle为设备句柄、参数dpower为期望设置的功率大小、参数g_strerrmsg为错误信息。41.本发明的多微波源板卡的控制方法及系统具有以下优点:42.1、根据指定槽位号识别对应的微波源板卡并创建板卡号,并对该微波源板卡进行设备初始化,初始化微波源板卡的设备句柄,并基于办卡号和设备句柄创建对应的哈希项并将哈希项插入哈希表中,当需要对指定槽位的微波源板卡进行操作时,通过办卡号从哈希表中找到对应的设备句柄,从而对该微波源板卡进行设置操作,实现了机箱上同时插入多块板卡的正常控制;43.2、通过底层库的hash_find_int()接口、基于板卡号返回不同的哈希表项,以实现不同微波源板卡之间的切换操作,实现了不同微波源板卡的切换操作。附图说明44.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。45.下面结合附图对本发明进一步说明。46.图1为实施例1多微波源板卡的控制方法的流程框图。具体实施方式47.下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。48.本发明实施例提供多微波源板卡的控制方法及系统,用于解决如何实现多个微波源板卡的控制的技术问题。49.实施例1:50.本发明多微波源板卡的控制方法,包括如下步骤:51.s100、基于上层软件下发的指定槽位号,通过底层库打开对应的微波源板卡,并基于微波源板卡的设备标识创建一个板卡号,板卡号作为微波源板卡的标识;52.s200、基于上层软件下发的指定槽位号,通过底层库从机箱查找指定槽位号对应的微波源板卡,并返回机箱的设备信息,指定槽位号对应的微波源板卡作为目标板卡,设备信息包括设备数量以及设备地址;53.s300、通过底层库调用目标板卡自身的设备初始化接口,通过设备初始化接口对目标板卡进行设备初始化,包括对目标板卡的资源地址、设备句柄以及错误信息进行参数初始化,资源地址为所述微波源板卡的设备文件路径,设备句柄为设备操作参数,错误信息用于报错并查看错误信息;54.s400、通过底层库为目标板卡创建一个哈希项,哈希项的键值为目标板卡的板卡号,哈希项的值为所述目标板卡的设备句柄,将哈希项插入配置于底层库的哈希表中,并将目标板卡的板卡号返回上层软件;55.s500、基于上层软件下发的指定槽位号,通过底层库查找对应的哈希项,并获取对应的设备句柄,基于设备句柄对指定槽位号对应的微波源板卡进行设置操作。56.本实施例中上层软件通过web界面下发指定槽位号并获取对应微波源板卡的办卡号,其中上层软件为anaconda,在步骤s100中,需要安装上层软件anaconda,创建工作环境,执行命令condaactivateawg,jupyternotebook即可打开上层web的应用界面。57.底层库中配置有上层接口,该上层接口为配置有open_resource()函数的上层接口,该函数中参数slot为该微波源板卡对应槽位号。通过所述上层接口打开指定槽位号对应的微波源板卡,该微波源板卡作为目标板卡,并返回该目标板卡的设备标识module_id,根据该设备标识module_id创建一个对应的办卡号module_id。58.步骤s200进行设备查找并返回机箱的设备信息,具体的利用底层库中配置有pxi_finddev()函数的pxi_finddev接口进行设备(微波源板卡)的查找,pxi_finddev()函数中参数loindex为设备号数组,此处loindex[0]为1,即槽位1上的设备地址loindex[1]为2,即槽位2上的设备地址,参数dev_num为设备的数量,参数g_strerrmsg为错误信息。[0059]查找设备的代码如下:[0060][0061]步骤s300对目标板卡进行设备初始化,具体的,通过底层库调用python驱动的initdev接口,调用c库的dll_pxi_initdev接口进行设备的初始化操作,在初始操作过程中,dll_pxi_initdev接口调用配置有lomodule_init函数的lomodule_init接口进行设备初始化,lomodule_init函数中参数datafilepath为资源地址(与设备号绑定的数据文件路径,以设备1为例此时为powcaldata\1\localdata_14db.txt),参数index即为想要初始化设备的设备号,参数lohandle即为设备控制句柄,后续对于设备的操作均需使用该参数,参数g_strerrmsg为错误信息。[0062]步骤s400实现目标微波源的插入,具体的,利用开源的uthashc代码,malloc动态创建哈希表项map_item,并且将map_item的键设置为板卡编号module_id,map_item的值设置为板卡的设备句柄lohandle;然后使用配置有hash_add_int()函数的hash_add_int()接口,将新创建的哈希表项map_item插入到map_table中,完成微波源设备的插入;并将设备标识module_id返回到上层。map_table配置于动态库中。[0063]初始化设备初始化设备并进行设备句柄的存储的代码如下:[0064][0065]步骤s500进行设备设置操作,当用户需要对指定槽位号的微波源进行操作时,例如设置微波源的输出频率,只需指定对应槽位号,动态库首先会接收到上层软件传入的槽位号参数,并将该槽位号转换为与该板卡所对应的键值,使用hash_find_int接口,查找哈希表map_table中,该键值所对应的哈希表项map_item,然后即可获取该槽位的设备句柄lohandle;调用配置有当用户需要对指定槽位号的微波源进行操作时,例如设置微波源的输出频率,只需指定对应槽位号,底层代码首先会接收到上层传入的槽位号参数,并将该槽位号转换为与该板卡所对应的键值,使用hash_find_int接口,查找哈希表map_table中,该键值所对应的哈希表项map_item,然后即可获取该槽位的设备句柄lohandle;调用接口lomodule_setfreq进行输出频率设置,参数lohandle为刚获取到的设备句柄,参数dfreqmhz为期望设置的频率大小,参数g_strerrmsg为错误信息函数的lomodule_setfreq接口进行输出频率设置,lomodule_setfreq函数中参数lohandle为刚获取到的设备句柄,参数dfreqmhz为期望设置的频率大小,参数g_strerrmsg为错误信息。[0066]设置输出频率的代码如下:[0067][0068]该步骤还涉及输出功率设置,当需要设置微波源的输出频率时,只需指定对应槽位号,调用配置有lomodule_setpower函数的lomodule_setpower接口进行输出功率设置,lomodule_setpower函数中参数lohandle为刚获取到的设备句柄,参数dpower为期望设置的功率大小,参数g_strerrmsg为错误信息。[0069]设置输出功率的代码如下:[0070][0071][0072]当切换不同槽位的微波源时,动态库调用hash_find_int()接口通过板卡编号module_id,能够返回不同的哈希表项map_item,当再次对微波源进行频率或功率设置操作时,此时设备句柄已经成功更新为期望控制的微波源板卡,即可成功实现多个微波源板卡的控制。[0073]作为该实施例的改进,在对目标板卡进行识别初始化之前,动态库调用check_device_exist()接口,检测步骤s200获得的设备地址是否跟本地设备文件内容相匹配;若匹配成功,调用lomodule_init接口进行设备初始化。[0074]实施例2:[0075]本发明的多微波源板卡的控制系统,通过实施例1公开的多微波源板卡的控制方法对多微波源板卡进行控制,该控制系统包括上层软件和动态库,上层软件用于下发槽位号,动态库配置有设备标识模块、设备查找模块、设备匹配模块、设备初始化模块、设备入库模块、设备操作模块以及板卡切换模块。[0076]本实施例中上层软件通过web界面下发槽位号。具体的,上层软件为anaconda,在步骤s100中,需要安装上层软件anaconda,创建工作环境,执行命令condaactivateawg,jupyternotebook即可打开上层web的应用界面。[0077]设备标识模块用于基于上层软件下发的指定槽位号,打开对应的微波源板卡,并基于所述微波源板卡的设备标识创建一个板卡号,板卡号作为所述微波源板卡的标识。本实施例中,设备标识模块配置有上层接口,该上层接口为配置有open_resource()函数的上层接口,该函数中参数slot为该微波源板卡对应槽位号。通过上层接口打开指定槽位号对应的微波源板卡,该微波源板卡作为目标板卡,并返回该目标板卡的设备标识module_id,根据该设备标识module_id创建一个对应的办卡号module_id。[0078]设备查找模块用于基于上层软件下发的指定槽位号,从机箱查找指定槽位号对应的微波源板卡,并返回机箱的设备信息,指定槽位号对应的微波源板卡作为目标板卡,设备信息包括设备数量以及设备地址。本实施例中,设备查找模块中配置有pxi_finddev接口,该pxi_finddev接口配置有pxi_finddev()函数以进行设备(微波源板卡)的查找,pxi_finddev()函数中参数loindex为设备号数组,此处loindex[0]为1,即槽位1上的设备地址loindex[1]为2,即槽位2上的设备地址,参数dev_num为设备的数量,参数g_strerrmsg为错误信息。[0079]设备匹配模块用于基于设备地址对目标板卡进行匹配,判断返回的设备信息得到的目标板卡的设备地址与本地存储的设备地址是否一致。设备匹配模块中配置有check_device_exist()接口,设备匹配模块调用check_device_exist()接口,检测返回的设备信息中设备地址是否跟本地设备文件内容相匹配;若匹配成功,则进行设备初始化。[0080]设备初始化模块用于调用目标板卡自身的设备初始化接口,通过设备初始化接口对目标板卡进行设备初始化,包括对目标板卡的资源地址、设备句柄以及错误信息进行参数初始化,资源地址为所述微波源板卡的设备文件路径,设备句柄为设备操作参数,错误信息用于报错并查看错误信息。本实施例中设备初始化模块调用python驱动的initdev接口,调用c库的dll_pxi_initdev接口进行设备的初始化操作,在初始操作过程中,dll_pxi_initdev接口调用配置有lomodule_init函数的lomodule_init接口进行设备初始化,lomodule_init函数中参数datafilepath为资源地址(与设备号绑定的数据文件路径,以设备1为例此时为powcaldata\1\localdata_14db.txt),参数index即为想要初始化设备的设备号,参数lohandle即为设备控制句柄,后续对于设备的操作均需使用该参数,参数g_strerrmsg为错误信息。[0081]设备插入模块用于为目标板卡创建一个哈希项,哈希项的键值为目标板卡的板卡号,所述哈希项的值为所述目标板卡的设备句柄,将哈希项插入配置于底层库的哈希表中,并将目标板卡的板卡号返回上层软件;设备操作模块用于基于上层软件下发的指定槽位号,通过底层库查找对应的哈希项,并获取对应的设备句柄,基于设备句柄对指定槽位号对应的微波源板卡进行设备设置操作,设备设置操作包括进行输出频率设置以及进行输出功率设置。本实施例中,设备插入模块利用开源的uthashc代码,malloc动态创建哈希表项map_item,并且将map_item的键设置为板卡编号module_id,map_item的值设置为板卡的设备句柄lohandle;然后使用配置有hash_add_int()函数的hash_add_int()接口,将新创建的哈希表项map_item插入到map_table中,完成微波源设备的插入;并将设备标识module_id返回到上层。map_table配置于动态库中。[0082]设备操作模块用于基于上层软件下发的指定槽位号,通过底层库查找对应的哈希项,并获取对应的设备句柄,基于设备句柄对指定槽位号对应的微波源板卡进行设备设置操作,设备设置操作包括进行输出频率设置以及进行输出功率设置。本实施例中,本实施例中,设备操作模块配置有lomodule_setfreq接口和lomodule_setpower接口。lomodule_setfreq接口中配置有lomodule_setfreq接口函数,lomodule_setfreq函数中参数lohandle为设备句柄、参数dfreqmhz为期望设置的频率大小、参数g_strerrmsg为错误信息,调用lomodule_setfreq接口进行输出频率设置。lomodule_setpower接口中配置有lomodule_setpower函数,lomodule_setpower函数中参数lohandle为设备句柄、参数dpower为期望设置的功率大小、参数g_strerrmsg为错误信息,调用lomodule_setpower接口进行输出功率设置。[0083]板卡切换模块用于基于板卡号返回不同的哈希表项,以切换不同微波源板卡进行设备设置操作。板卡切换模块中配置有hash_find_int()接口,当切换不同槽位的微波源时,板卡切换模块调用hash_find_int()接口通过板卡编号module_id,能够返回不同的哈希表项map_item,当再次对微波源进行频率或功率设置操作时,此时设备句柄已经成功更新为期望控制的微波源板卡,即可成功实现多个微波源板卡的控制。[0084]上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献