发明内容
基于此,有必要针对上述技术问题,提供一种基于串口通讯的嵌入式设备适配方法、装置、计算机设备和计算机可读存储介质。
第一方面,本申请提供了一种基于串口通讯的嵌入式设备适配方法。所述方法包括:
确定嵌入式设备的当前通讯串口;所述嵌入式设备部署有多个软件板卡,每个软件板卡具有对应的通讯串口,所述当前通讯串口为所述多个软件板卡中的一软件板卡对应的通讯串口;
在当前通讯串口未接收到与当前通讯串口的通讯格式匹配的串口通讯请求的情况下,切换至所述嵌入式设备其他软件板卡对应的通讯串口,直到获取到所述串口通讯请求;
获取所述串口通讯请求携带的软件板卡信息,并根据所述串口通讯请求携带的软件板卡信息和目标软件板卡对应的软件板卡信息,确定所述目标软件板卡的匹配结果;所述目标软件板卡为当前通讯串口对应的软件板卡;
在所述匹配结果指示匹配成功的情况下,锁定所述目标软件板卡,并运行锁定的所述目标软件板卡中的软件板卡程序。
在其中一个实施例中,所述根据所述串口通讯请求携带的软件板卡信息和目标软件板卡对应的软件板卡信息,确定所述目标软件板卡的匹配结果,包括:
将所述串口通讯请求携带的软件板卡信息与所述目标软件板卡对应的软件板卡信息进行比对,得到比对结果;
根据所述比对结果确定所述目标软件板卡的匹配结果。
在其中一个实施例中,在所述获取到所述串口通讯请求之后,还包括:
确定当前通讯串口对应的第一串口属性信息;
所述根据所述比对结果确定所述目标软件板卡的匹配结果,包括:
在所述比对结果指示所述串口通讯请求携带的软件板卡信息与所述目标软件板卡对应的软件板卡信息匹配的情况下,基于软件板卡信息与串口属性信息的预设对应关系,确定所述串口通讯请求携带的软件板卡信息所对应的第二串口属性信息;
若所述第一串口属性信息与所述第二串口属性信息匹配,则确定所述目标软件板卡匹配成功。
在其中一个实施例中,所述确定嵌入式设备的当前通讯串口之后,还包括:
通过当前通讯串口接收上位机发送的串口通讯请求,并确定所述串口通讯请求的报文格式;
若所述串口通讯请求的报文格式符合预设报文格式,则确定接收到与当前通讯串口的通讯格式匹配的串口通讯请求。
在其中一个实施例中,在所述确定嵌入式设备的当前通讯串口之前,还包括:
读取存储单元预设存储地址中的存储数据,并对所述存储数据进行解析得到解析结果;
若所述解析结果指示嵌入式设备中存在已锁定的目标软件板卡,则运行所述目标软件板卡中的软件板卡程序;
若所述解析结果指示嵌入式设备中不存在已锁定的所述目标软件板卡,则执行所述确定嵌入式设备的当前通讯串口的步骤。
在其中一个实施例中,所述锁定所述目标软件板卡,包括:
将所述目标软件板卡的软件板卡信息存储到所述存储单元中的预设存储地址。
第二方面,本申请还提供了一种基于串口通讯的嵌入式设备适配装置。所述装置包括:
串口确定模块,用于确定嵌入式设备的当前通讯串口;所述嵌入式设备部署有多个软件板卡,每个软件板卡具有对应的通讯串口,所述当前通讯串口为所述多个软件板卡中的一软件板卡对应的通讯串口;
串口匹配模块,用于在当前通讯串口未接收到与当前通讯串口的通讯格式匹配的串口通讯请求的情况下,切换至所述嵌入式设备其他软件板卡对应的通讯串口,直到获取到所述串口通讯请求;
软件板卡匹配模块,用于获取所述串口通讯请求携带的软件板卡信息,并根据所述串口通讯请求携带的软件板卡信息和目标软件板卡对应的软件板卡信息,确定所述目标软件板卡的匹配结果;所述目标软件板卡为当前通讯串口对应的软件板卡;
软件板卡锁定模块,用于在所述匹配结果指示匹配成功的情况下,锁定所述目标软件板卡,并运行锁定的所述目标软件板卡中的软件板卡程序。
在其中一个实施例中,所述软件板卡匹配模块,用于:
将所述串口通讯请求携带的软件板卡信息与所述目标软件板卡对应的软件板卡信息进行比对,得到比对结果;
根据所述比对结果确定所述目标软件板卡的匹配结果。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
确定嵌入式设备的当前通讯串口;所述嵌入式设备部署有多个软件板卡,每个软件板卡具有对应的通讯串口,所述当前通讯串口为所述多个软件板卡中的一软件板卡对应的通讯串口;
在当前通讯串口未接收到与当前通讯串口的通讯格式匹配的串口通讯请求的情况下,切换至所述嵌入式设备其他软件板卡对应的通讯串口,直到获取到所述串口通讯请求;
获取所述串口通讯请求携带的软件板卡信息,并根据所述串口通讯请求携带的软件板卡信息和目标软件板卡对应的软件板卡信息,确定所述目标软件板卡的匹配结果;所述目标软件板卡为当前通讯串口对应的软件板卡;
在所述匹配结果指示匹配成功的情况下,锁定所述目标软件板卡,并运行锁定的所述目标软件板卡中的软件板卡程序。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
确定嵌入式设备的当前通讯串口;所述嵌入式设备部署有多个软件板卡,每个软件板卡具有对应的通讯串口,所述当前通讯串口为所述多个软件板卡中的一软件板卡对应的通讯串口;
在当前通讯串口未接收到与当前通讯串口的通讯格式匹配的串口通讯请求的情况下,切换至所述嵌入式设备其他软件板卡对应的通讯串口,直到获取到所述串口通讯请求;
获取所述串口通讯请求携带的软件板卡信息,并根据所述串口通讯请求携带的软件板卡信息和目标软件板卡对应的软件板卡信息,确定所述目标软件板卡的匹配结果;所述目标软件板卡为当前通讯串口对应的软件板卡;
在所述匹配结果指示匹配成功的情况下,锁定所述目标软件板卡,并运行锁定的所述目标软件板卡中的软件板卡程序。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
确定嵌入式设备的当前通讯串口;所述嵌入式设备部署有多个软件板卡,每个软件板卡具有对应的通讯串口,所述当前通讯串口为所述多个软件板卡中的一软件板卡对应的通讯串口;
在当前通讯串口未接收到与当前通讯串口的通讯格式匹配的串口通讯请求的情况下,切换至所述嵌入式设备其他软件板卡对应的通讯串口,直到获取到所述串口通讯请求;
获取所述串口通讯请求携带的软件板卡信息,并根据所述串口通讯请求携带的软件板卡信息和目标软件板卡对应的软件板卡信息,确定所述目标软件板卡的匹配结果;所述目标软件板卡为当前通讯串口对应的软件板卡;
在所述匹配结果指示匹配成功的情况下,锁定所述目标软件板卡,并运行锁定的所述目标软件板卡中的软件板卡程序。
上述基于串口通讯的嵌入式设备适配方法、装置、计算机设备和存储介质,嵌入式设备可以确定嵌入式设备的当前通讯串口,其中嵌入式设备部署有多个软件板卡,每个软件板卡具有对应的通讯串口,当前通讯串口为多个软件板卡中的一软件板卡对应的通讯串口;在当前通讯串口未接收到与当前通讯串口的通讯格式匹配的串口通讯请求的情况下,可以切换至嵌入式设备其他软件板卡对应的通讯串口,直到获取到串口通讯请求,然后,可以获取串口通讯请求携带的软件板卡信息,并根据串口通讯请求携带的软件板卡信息和目标软件板卡对应的软件板卡信息,确定目标软件板卡的匹配结果,目标软件板卡为当前通讯串口对应的软件板卡;在匹配结果指示匹配成功的情况下,嵌入式设备可以锁定目标软件板卡,并运行锁定的目标软件板卡中的软件板卡程序。在本申请中,一方面,可以通过一个程序兼容多个嵌入式设备,当有嵌入式设备需要配置对应的软件时,只需要运行该程序并从模块化的多个软件板卡中,确定出目标软件板卡进行配置即可,无需对多个嵌入式设备分别配置程序,减少开发人员需要进行软件维护,另一方面,在配置目标软件板卡的过程中,通过对通讯串口的通讯格式以及软件板卡的软件板卡信息进行匹配,既可以实现硬件上的兼容和适配,也保证了可以在嵌入式设备中配置正确的目标软件板卡,从而可以有效提高嵌入式设备的配置效率。
实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
随着人工智能的发展和物联网时代的到来,人们的生活得到了极大地便利,品质得到了巨大的提升,而嵌入式设备作为人工智能和物联网实现的基石,在其中起到了不可或缺的作用。
嵌入式系统是以应用为中心,以现代计算机技术为基础,能够根据用户需求灵活裁剪软硬件模块的专用计算机系统,由硬件和软件组成,其软件内容包括软件运行环境及其操作系统;硬件内容包括信号处理器、存储器、通信模块等在内的多方面的内容。
嵌入式设备是实现嵌入式系统的基本支撑,嵌入式系统的快速发展要求嵌入式软件的快速开发,以适应硬件发展的快节奏。而由于嵌入式设备自身的复杂,以及平台相关软件固有的复杂性,导致了软件开发难度的增加。在这种矛盾下,一定程度的软件开发自动化,尤其是硬件相关软件(如设备驱动程序)开发的自动化显得重要而有意义,多样化的架构和多样化的设备交织起来,形成了更加多样化的嵌入式系统。
不同的嵌入式设备往往具有不同的产品功能,为实现不同嵌入式设备的不同产品功能,可以针对每个嵌入式设备分别配置独立的程序,并在后续进行相应维护。
但是,在上述方式中,一方面,如果每个产品都配置一个单独的程序并分别进行维护,若程序存在相同的软件错误或者程序需要升级时,则每种嵌入式设备的程序都需要去进行相应的配置更新,这样无疑会耗费开发者大量的时间和精力,也容易造成升级混乱的情况,归纳存档也极其复杂。
基于此,有必要针对上述技术问题,提供一种基于串口通讯的嵌入式设备适配方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
本申请实施例提供的一种基于串口通讯的嵌入式设备适配方法,可以应用于如图1所示的应用环境中,该应用环境中可以包括上位机和至少一台嵌入式设备。在一种可选的实施例中,上位机可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑;嵌入式设备可以包括但不限于物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。
在一个实施例中,如图2所示,提供了一种基于串口通讯的嵌入式设备适配方法,以该方法应用于图1中的嵌入式设备为例进行说明,包括以下步骤:
S201,确定嵌入式设备的当前通讯串口;嵌入式设备部署有多个软件板卡,每个软件板卡具有对应的通讯串口,当前通讯串口为多个软件板卡中的一软件板卡对应的通讯串口。
具体实现中,嵌入式设备所使用的芯片如果是同型号或者相近型号的芯片,那么相关软件在程序开发时所用到的软件底层驱动库都是兼容的,只是应用程序上稍有偏差,对此,本申请提出了一种基于串口通讯的嵌入式设备适配方法,针对使用同型号的芯片或者关联型号的芯片(例如相似芯片)的嵌入式设备,可将多个软件驱动程序融合为一个,在程序里进行模块化的切分,使用时只需要利用通讯串口与上位机通讯连接,由上位机进行相应配置即可。
在本实施例中,嵌入式设备可以预先设置由多个软件驱动程序融合而成的预设软件,预设软件可以模块化地划分为多个软件板卡,每个软件板卡对应于一个软件驱动程序,其中,多个软件板卡所用到的软件底层驱动库或底层逻辑框架(或架构)可以是相同或关联的(例如相似的软件底层驱动库或底层逻辑框架),每个软件板卡可以具有对应的通讯串口,嵌入式设备在配置软件板卡时,可以通过软件板卡对应的通讯串口与上位机进行通讯。
在本步骤中,嵌入式设备可以通过预设的接口与上位机进行交互,在交互时,嵌入式可以从多个软件板卡对应的通讯串口中,选择一软件板卡的通讯串口,作为当前与上位机进行通讯的当前通讯串口,其中,软件板卡对应的通讯串口为软件板卡中提供串口通讯功能的串口通讯单元(软件形式),嵌入式设备可以选定软件板卡中的该单元,通过物理接口与上位机交互,不同软件板卡中串口通讯单元所使用的通讯串口类型可以相同,也可以不相同,例如不同软件板卡可以使用同一类型的通讯串口与上位机进行通讯。串口通讯作为一种简单、常用的通信方式广泛应用于各种通讯设备交互,可以通过有线或无线与PC端和设备连接。
在一可选的实施例中,嵌入式设备与上位机的连接方式可以采用有线连接,比如基于嵌入式设备预设的物理接口,并通过串口通讯线、网线或者CAN线等与上位机连接并通讯;在其他实施例中,可根据实际情况选择无线连接等其他连接方式,比如WIFI、蓝牙、移动通信(2G、3G、4G、5G)等,或者也可以选择其他的通讯方式,例如IIC、SPI、USB、网口等通讯方式。
S202,在当前通讯串口未接收到与当前通讯串口的通讯格式匹配的串口通讯请求的情况下,切换至嵌入式设备其他软件板卡对应的通讯串口,直到获取到串口通讯请求。
具体地,在通过上位机对嵌入式设备中的软件板卡进行配置时,响应于用户在上位机选中的目标软件板卡,上位机可以通过目标软件板卡对应的通讯串口与嵌入式设备进行通信,在其中一个实施例中,上位机可以按照目标软件板卡对应的通讯串口的通讯格式,生成串口通讯请求,例如按照目标软件板卡对应的通讯串口的传输协议(或报文格式)生成探测报文,作为串口通讯请求,进而可以按照预设时间间隔,周期性地向嵌入式设备发送搞串口通讯请求。
另一方面,嵌入式设备可以尝试通过当前通讯串口与上位机进行通讯,在嵌入式设备的当前通讯串口与上位机当前使用的通讯串口不匹配的情况下,嵌入式设备将不能正常接收到串口通讯请求或者在接收到该请求后无法解析,在此情况下,嵌入式设备可以进行通讯串口的切换,将嵌入式设备其他软件板卡对应的通讯串口作为当前通讯串口,直到在切换到一软件板卡对应的通讯串口后,可以成功获取到串口通讯请求。其中,嵌入式设备在切换通讯串口时,可以仅对各软件板卡中的串口通讯单元进行切换,即不对嵌入式设备中的整个软件板卡进行切换,而仅切换不同软件板卡中的串口通讯单元,从而可以避免在切换通讯串口的过程中启用软件板卡的其他功能单元,降低设备资源消耗。
可以理解,在实际应用中,不同嵌入式设备的通讯串口存在差异,本步骤中通过将用于配置软件板卡的串口通讯请求的通讯格式,与嵌入式设备当前通讯串口的通讯格式进行比对,并进行通讯串口的切换,使得上位机可以与具有不同通讯串口的嵌入式设备通讯交互,并进行后续的软件板卡配置,实现硬件上的兼容和适配。
S203,获取串口通讯请求携带的软件板卡信息,并根据串口通讯请求携带的软件板卡信息和目标软件板卡对应的软件板卡信息,确定目标软件板卡的匹配结果;目标软件板卡为当前通讯串口对应的软件板卡。
实际应用中,在嵌入式设备通过当前通讯串口获取到串口通讯请求后,嵌入式设备可以按照当前通讯串口的通讯格式对串口通讯请求进行解析,得到软件板卡信息;此外,嵌入式设备还可以将当前通讯串口对应的软件板卡作为目标软件板卡,并获取目标软件板卡对应的软件板卡信息。
进而,可以对串口通讯请求携带的软件板卡信息和目标软件板卡对应的软件板卡信息,确定目标软件板卡的匹配结果,其中,目标软件板卡的匹配结果可以指示目标软件板卡是否配置成功,或者,可以理解为该匹配结果指示嵌入式设备的软件板卡是否确定配置为目标软件板卡。
S204,在匹配结果指示匹配成功的情况下,锁定目标软件板卡,并运行锁定的目标软件板卡中的软件板卡程序。
在匹配结果指示匹配成功的情况下,可以确定将嵌入式设备中的软件板卡配置为目标软件板卡,进而可以将目标软件板卡锁定,并运行锁定后的目标软件板卡中的软件板卡程序,目标软件板卡中的软件板卡程序可以是与用于实现当前嵌入式设备的设备功能的程序。
在本实施例中,嵌入式设备可以确定嵌入式设备的当前通讯串口,其中嵌入式设备部署有多个软件板卡,每个软件板卡具有对应的通讯串口,当前通讯串口为多个软件板卡中的一软件板卡对应的通讯串口;在当前通讯串口未接收到与当前通讯串口的通讯格式匹配的串口通讯请求的情况下,可以切换至嵌入式设备其他软件板卡对应的通讯串口,直到获取到串口通讯请求,然后,可以获取串口通讯请求携带的软件板卡信息,并根据串口通讯请求携带的软件板卡信息和目标软件板卡对应的软件板卡信息,确定目标软件板卡的匹配结果,目标软件板卡为当前通讯串口对应的软件板卡;在匹配结果指示匹配成功的情况下,嵌入式设备可以锁定目标软件板卡,并运行锁定的目标软件板卡中的软件板卡程序。在本申请中,一方面,可以通过一个程序兼容多个嵌入式设备,当有嵌入式设备需要配置对应的软件时,只需要运行该程序并从模块化的多个软件板卡中,确定出目标软件板卡进行配置即可,无需对多个嵌入式设备分别配置程序,减少开发人员需要进行软件维护,另一方面,在配置目标软件板卡的过程中,通过对通讯串口的通讯格式以及软件板卡的软件板卡信息进行匹配,既可以实现硬件上的兼容和适配,也保证了可以在嵌入式设备中配置正确的目标软件板卡,从而可以有效提高嵌入式设备的配置效率。
并且,本实施例的方案,使得开发人员在程序维护方面得到了极大的便利,减少了工作量,也使得售后与技术服务人员归纳存档和工作更加高效,并且对目标软件板卡校验的过程使得适配结果更加准确,提高开发效率。
在一个实施例中,确定嵌入式设备的当前通讯串口之后,还可以包括如下步骤:
通过当前通讯串口接收上位机发送的串口通讯请求,并确定串口通讯请求的报文格式;若串口通讯请求的报文格式符合预设报文格式,则确定接收到与当前通讯串口的通讯格式匹配的串口通讯请求。
具体地,嵌入式设备可以通过当前通讯串口接收上位机提供的串口通讯请求,确定该请求的报文格式;并且,可以获取当前通讯串口对应的报文格式作为预设报文格式。
进而,可以将串口通讯请求的报文格式与预设报文格式进行比对,确定两者是否匹配,若是则可以确定串口通讯请求符合预设报文格式,可以确定接收到了与当前通讯串口的通讯格式匹配的串口通讯请求,嵌入式设备可以基于预设报文格式,实现对串口通讯请求的正确接收和解析。在一个可选的实施例中,若串口通讯请求的报文格式与预设报文格式不匹配,则嵌入式设备可以向上位机返回匹配失败的信息,并继续对当前通讯串口进行切换。
如图3所示,上位机可以同时与多个嵌入式设备通讯,并分别向多个嵌入式设备发送相同的串口通讯请求,在本示例中,以嵌入式设备包括设备A、设备B、设备C共三个设备为例,进行说明。其中,设备A、设备B、设备C待配置的软件板卡对应的软件板卡标识分别为:0X01、0X10、0X12,各设备在配置软件板卡时使用的通讯串口分别为USART1、USART2、USART2(不同的设备可以使用不同的通讯串口,两个功能相近或关联的设备也可能使用相同的通讯串口)。
换句话说,设备A、设备B、设备C在配置软件板卡时,会将通讯串口切换到USART1、USART2、USART2。例如,针对设备A,设备A可以同时配置有多个软件板卡,每个软件板卡具有对应的通讯串口,其中包括了通讯串口USART1,当用户在上位机中选择对设备A配置0X01软件板卡时,设备A可以多次切换不同软件板卡对应的通讯串口作为当前通讯串口,直到将通讯串口切换到USART1,实现与上位机的通讯。
在本实施例中,通过将串口通讯请求的报文格式与当前通讯串口的预设报文格式进行比对,能够避免接收到非法的串口通讯请求,例如在上位机同时与多个嵌入式设备进行通信时,通过本实施例的方式可以将与本设备无关的串口通讯请求滤除,保证串口通讯请求的正确接收,减少软件开发中不必要的麻烦和错误。
在一个实施例中,如图4所示,S203根据串口通讯请求携带的软件板卡信息和目标软件板卡对应的软件板卡信息,确定目标软件板卡的匹配结果,可以包括如下步骤:
S401,将串口通讯请求携带的软件板卡信息与目标软件板卡对应的软件板卡信息进行比对,得到比对结果。
作为一示例,软件板卡信息可以是软件板卡的属性信息,例如软件板卡标识或者软件板卡格式。
在本步骤中,在得到串口通讯请求携带的软件板卡信息后,可以将该软件板卡信息与目标软件板卡对应的软件板卡信息进行比对,确定两者是否一致,得到比对结果。
S402,根据比对结果确定目标软件板卡的匹配结果。
若比对结果一致,则可以确定上位机当前选择配置的软件板卡,确实是当前通讯串口对应的软件板卡,通过当前通讯串口进行配置的软件板卡为可进行配置的合法的软件板卡;若比对结果指示不一致,则可以确定上位机当前配置的软件板卡为非法的软件板卡。进而,在获取到比对结果后,可以根据比对结果确定目标软件板卡的匹配结果。
在本实施例中,通过将串口通讯请求携带的软件板卡信息与目标软件板卡对应的软件板卡信息进行比对,可以避免将不合法的软件板卡配置到嵌入式设备中,同时,在上位机同时与多个嵌入式设备进行软件板卡配置时,通过本实施例的方案也可以避免选错其他嵌入式设备的软件板卡。
例如,上位机同时与设备B和设备C通信,设备B和设备C的当前通讯串口都为USART2,即设备B和设备C当前切换到的软件板卡中的串口通讯单元都使用USART2类型的串口,而上位机发送的串口通讯请求的通讯格式是与USART2匹配的,则设备B和设备C都能成功获取串口通讯请求,而此时上位机下发的串口通讯请求用于指示设备B配置0X10软件板卡,而设备C的USART2串口则是对应于0X12软件板卡,通过将串口通讯请求携带的软件板卡信息与目标软件板卡对应的软件板卡信息进行比对,能够避免在使用相同的通讯串口进行通信时,错选其他嵌入式设备的软件板卡进行配置。
在一个实施例中,在获取到串口通讯请求之后,还包括:
确定当前通讯串口对应的第一串口属性信息。
在当前通讯串口成功接收到串口通讯请求后,嵌入式设备可以记录当前通讯串口对应的第一串口属性信息,示例性,第一串口属性信息可以是串口标识(也可以称为串口序号)。
进而,S402根据比对结果确定目标软件板卡的匹配结果,可以包括如下步骤:
在比对结果指示串口通讯请求携带的软件板卡信息与目标软件板卡对应的软件板卡信息匹配的情况下,基于软件板卡信息与串口属性信息的预设对应关系,确定串口通讯请求携带的软件板卡信息所对应的第二串口属性信息;若第一串口属性信息与第二串口属性信息匹配,则确定目标软件板卡匹配成功。
具体实现中,还可以进一步获取软件板卡信息与串口属性信息的预设对应关系,该对应关系可以记录有用于配置每个软件板卡时嵌入式设备所使用的通讯串口以及通讯串口对应的串口属性信息。
在软件板卡信息匹配后,可以基于预设对应关系,确定出串口通讯请求携带的软件板卡信息所对应的第二串口属性信息,即针对上位机下发的软件板卡信息所指示的软件板卡,可以确定该软件板卡对应的通讯串口,并将通讯串口对应的串口属性信息确定为第二串口属性信息。
然后可以将第二串口属性信息与第一串口属性信息进行比对,判断上位机以及嵌入式设备在配置当前目标软件板卡时,是否利用对应的通讯串口进行通信。若是,则可以确定当前配置合规,进而可以确定目标软件板卡匹配成功;若否,则确定当前软件板卡不合规,停止对目标软件板卡的配置。
在本实施例中,先校验目标软件板卡信息是否正确,再校验对应的串口属性信息与记录的串口属性信息是否一致,双重校验可以避免选择不合法的软件板卡和选错成其他与上位机通讯连接的设备的软件板卡。如果目标软件板卡信息不正确,则由上位机重新选择,保证采用一个程序适配多个设备的过程中各个环节准确无误,提高该程序的兼容性和适配性。
在一个实施例中,在确定嵌入式设备的当前通讯串口之前,还包括:
读取存储单元预设存储地址中的存储数据,并对存储数据进行解析得到解析结果;若解析结果指示嵌入式设备中存在已锁定的目标软件板卡,则运行目标软件板卡中的软件板卡程序;若解析结果指示嵌入式设备中不存在已锁定的目标软件板卡,则执行确定嵌入式设备的当前通讯串口的步骤。
在实际应用中,嵌入式设备在安装程序并启动后,程序可以从存储单元(例如Flash内存)的预设存储地址中,读取数据并进行解析,该预设存储地址可以存储有当前嵌入式设备是否已配置目标软件板卡的信息。
在获取到解析结果后,若解析结果指示嵌入式设备中存在已锁定的目标软件板卡,则可以运行目标软件板卡中的软件板卡程序。若解析结果指示嵌入式设备中不存在已锁定或已配置的目标软件板卡,则可以触发执行确定嵌入式设备的当前通讯串口的步骤。通过本实施例,可以准确触发目标软件板卡的配置,避免在嵌入式设别已配置目标软件板卡的情况下,重复配置,节省计算资源。
在一个实施例中,锁定目标软件板卡,可以包括如下步骤:
将目标软件板卡的软件板卡信息存储到存储单元中的预设存储地址。
具体而言,嵌入式设备的程序里会设置有预设类型的变量,针对该预设类型的变量,可以从存储单元中分配相应的内存,当确定目标软件板卡后,可以将目标软件板卡的软件板卡信息按照预设规则,在分配的内存中写入对应数据并且锁存起来,然后进行软件重启。当程序再次启动开始读取预设类型的变量对应的变量数据,即可知嵌入式设备当前配置的软件板卡,如果程序读取的变量数据全部不合法,则认为等待读入软件板卡,此时程序只执行底层串口初始化程序(即对嵌入式设备的当前通讯串口进行初始化)和报文解析程序,待程序录入软件板卡后执行其他驱动程序以及应用程序。
在本实施例中,在确定通过将目标软件板卡的软件板卡信息存储到预设存储地址,能够便于后续查验嵌入式设备是否已经配置目标软件板卡。
为了使本领域技术人员能够更好地理解上述步骤,以下通过一个例子对本申请实施例加以示例性说明,但应当理解的是,本申请实施例并不限于此。
如图5所示,嵌入式设备可以安装有预设程序,该程序中包括多个模块化的软件板卡。在嵌入式设备开启后,程序可以首先从Flash内存的预设存储地址中获取的数据,进行解析。
在解析后,可以根据解析结果确定嵌入式设备当前是否有锁定的目标软件板卡。若是,则可以运行锁定的目标软件板卡对应的软件板卡程序;若否,即当前没有锁定的目标软件板卡,则可以通过上位机与嵌入式设备的通讯串口进行通讯,进入串口探测阶段,接收上位机的探测请求并配置目标软件板卡。
当上位机下发软件板卡的软件板卡信息后,嵌入式设备中的程序可以进行相应判断,确定上位机下发的软件板卡信息是否合法,例如查表判断该软件板卡信息与程序里写入的软件板卡信息是否匹配。
在软件板卡信息合法的情况下,可以将对应的软件板卡作为目标软件板卡,并由程序将目标软件程序板卡锁存到Flash内存中的预设存储地址,以便下次程序运行使用及用户查看。
其中,如图6所示,在程序进入到串口探测阶段时,程序可以设置一个默认的与上位机通讯的初始通讯串口(某一软件板卡相应的通讯串口)作为当前通讯串口。以程序划分为三个软件板卡为例,每个软件板卡具有对应的通讯串口,初始通讯串口可以为A软件板卡的通讯串口,可以将A软件板卡的通讯串口作为当前通讯串口。
上位机开始发送探测命令(即上文的串口通讯请求),程序内通过A软件板卡的通讯串口获取缓存数据进行解析;若在预设时间内(如5s内)未接收到数据或者未接收到合法的探测命令,则由程序切换到B软件板卡的通讯串口,并通过B软件板卡的通讯串口获取缓存数据进行解析。以此规律进行轮询接收判断直到某个软件板卡的通讯串口响应为止。
此时,程序先初步锁定当前通讯串口对应的软件板卡,并记录当前通讯串口的串口序号。而上位机会发送软件板卡号(软件板卡信息之一),程序接收到软件板卡号后,首先查表判断软件板卡号与程序中预先写入的软件板卡号是否匹配(例如该软件板卡号与当前初步锁定的软件板卡对应的软件板卡号是否匹配),确定该软件板卡的合法性,当判断接收到的软件板卡号合法后,再获取上位机当前配置的软件板卡对应的通讯串口的串口序号,并将该串口序号与记录下的当前通讯串口的串口序号进行比对,在确认两者匹配后,将下发的软件板卡的相关软件板卡信息锁存到Flash,以供程序下次启动查询;最后软件重启,开放其他驱动权限。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的基于串口通讯的嵌入式设备适配方法的基于串口通讯的嵌入式设备适配装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个基于串口通讯的嵌入式设备适配装置实施例中的具体限定可以参见上文中对于基于串口通讯的嵌入式设备适配方法的限定,在此不再赘述。
在一个实施例中,如图7所示,提供了一种基于串口通讯的嵌入式设备适配装置,包括:
串口确定模块701,用于确定嵌入式设备的当前通讯串口;所述嵌入式设备部署有多个软件板卡,每个软件板卡具有对应的通讯串口,所述当前通讯串口为所述多个软件板卡中的一软件板卡对应的通讯串口;
串口匹配模块702,用于在当前通讯串口未接收到与当前通讯串口的通讯格式匹配的串口通讯请求的情况下,切换至所述嵌入式设备其他软件板卡对应的通讯串口,直到获取到所述串口通讯请求;
软件板卡匹配模块703,用于获取所述串口通讯请求携带的软件板卡信息,并根据所述串口通讯请求携带的软件板卡信息和目标软件板卡对应的软件板卡信息,确定所述目标软件板卡的匹配结果;所述目标软件板卡为当前通讯串口对应的软件板卡;
软件板卡锁定模块704,用于在所述匹配结果指示匹配成功的情况下,锁定所述目标软件板卡,并运行锁定的所述目标软件板卡中的软件板卡程序。
在一个实施例中,所述软件板卡匹配模块703,用于:
将所述串口通讯请求携带的软件板卡信息与所述目标软件板卡对应的软件板卡信息进行比对,得到比对结果;
根据所述比对结果确定所述目标软件板卡的匹配结果。
在一个实施例中,所述串口匹配模块702,还用于:
确定当前通讯串口对应的第一串口属性信息;
所述软件板卡匹配模块703,用于:
在所述比对结果指示所述串口通讯请求携带的软件板卡信息与所述目标软件板卡对应的软件板卡信息匹配的情况下,基于软件板卡信息与串口属性信息的预设对应关系,确定所述串口通讯请求携带的软件板卡信息所对应的第二串口属性信息;
若所述第一串口属性信息与所述第二串口属性信息匹配,则确定所述目标软件板卡匹配成功。
在一个实施例中,所述装置还包括:
报文格式确定模块,用于通过当前通讯串口接收上位机发送的串口通讯请求,并确定所述串口通讯请求的报文格式;
报文格式匹配模块,用于若所述串口通讯请求的报文格式符合预设报文格式,则确定接收到与当前通讯串口的通讯格式匹配的串口通讯请求。
在一个实施例中,所述装置还包括:
存储数据读取模块,用于读取存储单元预设存储地址中的存储数据,并对所述存储数据进行解析得到解析结果;
目标软件板查找模块,用于若所述解析结果指示嵌入式设备中存在已锁定的目标软件板卡,则运行所述目标软件板卡中的软件板卡程序;
板卡配置触发模块,用于若所述解析结果指示嵌入式设备中不存在已锁定的所述目标软件板卡,则执行所述确定嵌入式设备的当前通讯串口的步骤。
在一个实施例中,所述软件板卡锁定模块704,用于:
将所述目标软件板卡的软件板卡信息存储到所述存储单元中的预设存储地址。
上述基于串口通讯的嵌入式设备适配装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图8所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种基于串口通讯的嵌入式设备适配方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置。显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
确定嵌入式设备的当前通讯串口;所述嵌入式设备部署有多个软件板卡,每个软件板卡具有对应的通讯串口,所述当前通讯串口为所述多个软件板卡中的一软件板卡对应的通讯串口;
在当前通讯串口未接收到与当前通讯串口的通讯格式匹配的串口通讯请求的情况下,切换至所述嵌入式设备其他软件板卡对应的通讯串口,直到获取到所述串口通讯请求;
获取所述串口通讯请求携带的软件板卡信息,并根据所述串口通讯请求携带的软件板卡信息和目标软件板卡对应的软件板卡信息,确定所述目标软件板卡的匹配结果;所述目标软件板卡为当前通讯串口对应的软件板卡;
在所述匹配结果指示匹配成功的情况下,锁定所述目标软件板卡,并运行锁定的所述目标软件板卡中的软件板卡程序。
在一个实施例中,处理器执行计算机程序时还实现上述其他实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
确定嵌入式设备的当前通讯串口;所述嵌入式设备部署有多个软件板卡,每个软件板卡具有对应的通讯串口,所述当前通讯串口为所述多个软件板卡中的一软件板卡对应的通讯串口;
在当前通讯串口未接收到与当前通讯串口的通讯格式匹配的串口通讯请求的情况下,切换至所述嵌入式设备其他软件板卡对应的通讯串口,直到获取到所述串口通讯请求;
获取所述串口通讯请求携带的软件板卡信息,并根据所述串口通讯请求携带的软件板卡信息和目标软件板卡对应的软件板卡信息,确定所述目标软件板卡的匹配结果;所述目标软件板卡为当前通讯串口对应的软件板卡;
在所述匹配结果指示匹配成功的情况下,锁定所述目标软件板卡,并运行锁定的所述目标软件板卡中的软件板卡程序。
在一个实施例中,计算机程序被处理器执行时还实现上述其他实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
确定嵌入式设备的当前通讯串口;所述嵌入式设备部署有多个软件板卡,每个软件板卡具有对应的通讯串口,所述当前通讯串口为所述多个软件板卡中的一软件板卡对应的通讯串口;
在当前通讯串口未接收到与当前通讯串口的通讯格式匹配的串口通讯请求的情况下,切换至所述嵌入式设备其他软件板卡对应的通讯串口,直到获取到所述串口通讯请求;
获取所述串口通讯请求携带的软件板卡信息,并根据所述串口通讯请求携带的软件板卡信息和目标软件板卡对应的软件板卡信息,确定所述目标软件板卡的匹配结果;所述目标软件板卡为当前通讯串口对应的软件板卡;
在所述匹配结果指示匹配成功的情况下,锁定所述目标软件板卡,并运行锁定的所述目标软件板卡中的软件板卡程序。
在一个实施例中,计算机程序被处理器执行时还实现上述其他实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。