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

基于嵌入式Linux系统的接口资源操作方法及系统

文献发布时间:2024-04-18 20:01:23


基于嵌入式Linux系统的接口资源操作方法及系统

技术领域

本发明涉及信息技术领域,特别涉及一种基于嵌入式Linux系统的接口资源操作方法及系统。

背景技术

嵌入式Linux系统是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统,接口是实现Linux系统通信的串口。

目前,基于嵌入式Linux系统大多采用原生接口,但是原生接口在将嵌入式Linux系统与设备进行通信时,需要开发人员针对不同的设备进行开放,开放人员要求高,工作量也多,因此,本发明提出一种基于嵌入式Linux系统的接口资源操作方法及系统,将嵌入式Linux系统的接口虚拟化,采用了统一的流程与编程风格,能够基于同一框架针对不同设备适用,降低了开发人员的学习难度,减少了工作量。

发明内容

本发明的目的在于提供一种基于嵌入式Linux系统的接口资源操作方法及系统,以解决上述背景技术中提出的问题。

为实现上述目的,本发明提供如下技术方案:一种基于嵌入式Linux系统的接口资源操作方法,包括:

接收设备连接请求;

根据设备连接请求针对设备进行接口目标信息配置,确定目标初始化函数,并基于目标初始化函数确定虚函数;

将目标初始化函数结合虚函数进行初始化处理,并创建连接设置,实现设备与接口连接;

读写接口数据,获取设备操作请求,并针对设备操作请求形成待处理队列;

按照待处理队列控制接口进行设备操作请求响应。

进一步地,根据设备连接请求针对设备进行接口配置时,获取设备信息根据设备信息匹配设备在信息存储数据模块中进行接口目标信息匹配,其中,信息存储模块中存储预先创建的所有设备的基类和成员函数。

进一步地,所述虚函数是目标初始函数中的内调函数,基于目标初始化函数确定虚函数时,包括:

根据目标初始函数确定目标初始函数的内调函数,并将内调函数作为虚函数;

结合目标初始函数针对虚函数进行分析判断,得到虚函数分析判断结果,根据目标初始函数中的隐藏指针的指向判断虚函数的地址是否被重写,从而得到虚函数分析判断结果;

按照虚函数分析判断结果,在虚函数的地址被重写时,将重写的虚函数的地址添加到虚函数表中。

进一步地,创建连接设置时,启动所述目标初始化函数,在目标初始化函数中针对设备填充工作内容,从而创建连接设置,其中,创建连接设置包括:创建超时定时器、创建连接和设置连接参数。

进一步地,所述创建连接,包括:

创建连接链接;

基于连接链接到远程主机上进行连接,确定连接关系;

针对连接关系进行检测,获取连接检测信息;

根据连接检测信息分析连接关系是否存在异常,得到连接检测结果;

按照连接检测结果,在连接关系存在异常时进行异常处理。

进一步地,所述读写接口数据,获取设备操作请求时,基于设备与接口的连接关系针对设备进行设备操作请求监测,获取设备操作请求,并分析设备操作请求的数目,当设备操作请求的数目不唯一时,根据设备操作请求的获取时间按照先后顺序导入待处理队列,形成待处理队列。

进一步地,基于设备与接口的连接关系针对设备进行设备操作请求监测时,还根据连接设置针对连接关系进行关闭连接、停止重连定时器、停止超时定时器和取消发送队列。

进一步地,读写接口数据时,采用读写函数进行设备操作请求获取,包括:

针对接口进行数据读取,获取读取信息;

根据读取信息进行分析,确定读取信息中是否存在设备操作请求,得到第一分析结果;

按照第一分析结果在读取信息中存在设备操作请求时,分析设备操作请求是否完整,当设备操作请求完整时,接口接收设备操作请求成功,否则接口接收设备操作请求失败,得到第二分析结果;

基于第二分析结果通过接口向所述设备进行接收反馈。

进一步地,按照待处理队列控制接口进行设备操作请求响应之后还通过接口将设备操作响应结果发送至所述设备,并获取发送结果,当发送结果为发送成功时,完成发送,当发送结果为发送失败时,针对设备操作响应结果按照预设模式进行拆解,得到拆解后的设备操作响应结果,然后将拆解后的设备操作响应结果发送至所述设备,并基于拆解后的设备操作响应结果进行组合,在设备端得到设备操作响应结果。

一种基于嵌入式Linux系统的接口资源操作系统,包括:接收模块、配置模块、连接模块、监测模块和处理模块;

所述接收模块,用于接收设备连接请求;

所述配置模块,用于根据设备连接请求针对设备进行接口目标信息配置,确定目标初始化函数,并基于目标初始化函数确定虚函数;

所述连接模块,用于将目标初始化函数结合虚函数进行初始化处理,并创建连接设置,实现设备与接口连接;

所述监测模块,用于读写接口数据,获取设备操作请求,并针对设备操作请求形成待处理队列;

所述处理模块,用于按照待处理队列控制接口进行设备操作请求响应。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在申请文件中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1为本发明所述的一种基于嵌入式Linux系统的接口资源操作方法的步骤示意图;

图2为本发明所述的一种基于嵌入式Linux系统的接口资源操作方法中步骤二的步骤示意图;

图3为本发明所述的一种基于嵌入式Linux系统的接口资源操作方法中步骤三的步骤示意图;

图4为本发明所述的一种基于嵌入式Linux系统的接口资源操作方法中步骤四的步骤示意图;

图5为本发明所述的一种基于嵌入式Linux系统的接口资源操作系统的示意图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

如图1所示,本发明实施例提供了一种基于嵌入式Linux系统的接口资源操作方法,包括:

步骤一、接收设备连接请求;

步骤二、根据设备连接请求针对设备进行接口目标信息配置,确定目标初始化函数,并基于目标初始化函数确定虚函数;

步骤三、将目标初始化函数结合虚函数进行初始化处理,并创建连接设置,实现设备与接口连接;

步骤四、读写接口数据,获取设备操作请求,并针对设备操作请求形成待处理队列;

步骤五、按照待处理队列控制接口进行设备操作请求响应。

上述技术方案中,初始化函数式是基类Object中的成员函数void run(),虚函数是函数内调virtual void on_run()函数。

上述技术方案中,根据设备连接请求针对设备进行接口目标信息配置时,创建串口与设备通信接口的代码,包括:创建并初始化串口通信,bit、校验位、停止位等使用默认值,亦可传入其他值。

上述技术方案实现了接口虚拟化操作,使得设备在与嵌入式Linux系统连接时无需必须使用Linux原始接口,提高了嵌入式Linux系统的应用灵活性,而且在嵌入式Linux系统的虚拟化接口中隐藏了不同设备的配置信息,从而使得嵌入式Linux系统在连接不同设备时都能够实现目标信息的配置,进而降低接口资源操作的难度,并且嵌入式Linux系统的虚拟化接口采用了统一的流程与编程风格,能够基于同一框架针对不同设备适用,降低了开发人员的学习难度,减少了工作量。

本发明提供的一个实施例中,根据设备连接请求针对设备进行接口配置时,获取设备信息,并根据设备信息匹配设备在信息存储数据模块中进行接口目标信息匹配,其中,信息存储模块中存储预先创建的所有设备的基类和成员函数。

上述技术方案中,设备与基类和成员函数之间存在映射关系。

上述技术方案中,所有的设备派生于object基类,以树状结构组织成完整系统,每个设备节点可通过std::shared_ptrparent(const std::string&name)函数访问父节点,可以通过std::shared_ptrget(const std::string&name)函数获取子节点。

上述技术方案通过根据设备信息匹配设备在信息存储数据模块中进行接口目标信息匹配从而实现嵌入式Linux系统的接口对设备的适配,使得设备与嵌入式Linux系统的接口之间能够进行通信,而且预先创建的所有设备的基类和成员函数存储在信息存储模块中,不仅方便调取匹配,信息存储模块中的信息还能够重复使用,使得开发人员能够直接进行调用,有效节省开发时间,同时也能够使得后续开发人员直接应用,降低了开发人员的学习难度。

如图2所示,本发明提供的一个实施例中,所述虚函数是目标初始函数中的内调函数,基于目标初始化函数确定虚函数时,包括:

A1、根据目标初始函数确定目标初始函数的内调函数,并将内调函数作为虚函数;

A2、结合目标初始函数针对虚函数进行分析判断,得到虚函数分析判断结果,根据目标初始函数中的隐藏指针的指向判断虚函数的地址是否被重写,从而得到虚函数分析判断结果;

A3、按照虚函数分析判断结果,在虚函数的地址被重写时,将重写的虚函数的地址添加到虚函数表中。

上述技术方案中,将内调函数作为虚函数时,将函数内调virtual void on_run()函数作为虚函数。

上述技术方案中,编译器处理虚函数时,编译器会给类的每个实例(对象)设置一个隐藏成员,该隐藏成员中保存的内容是一个指向地址数组的指针,这个地址数组即为虚函数表。

上述技术方案中,根据目标初始函数中的隐藏指针的指向判断虚函数的地址是否被重写时,目标初始函数中的隐藏指针指向的虚函数地址表中该虚函数的地址进行分析,如果隐藏指针成员指向的虚函数地址表中该虚函数的地址被重写为新定义的虚函数地址,则虚函数进行了重新定义,虚函数的地址被重写,如果隐藏指针成员指向的虚函数地址表中该虚函数的地址未被重写为新定义的虚函数地址,则虚函数未进行重新定义,虚函数的地址未被重写。

上述技术方案中,在虚函数的地址未被重写时,无需针对虚函数表进行更新。

上述技术方案通过确定虚函数使得在将目标初始化函数结合虚函数进行初始化处理时,利用虚函数实现运行时多态,从而使得基于嵌入式Linux系统的接口资源操作方法能够适用于多种设备,进而提高嵌入式Linux系统的接口的应用范围。

本发明提供的一个实施例中,创建连接设置时,启动所述目标初始化函数,在目标初始化函数中针对设备填充工作内容,从而创建连接设置,其中,创建连接设置包括:创建超时定时器、创建连接和设置连接参数。

上述技术方案中,启动所述目标初始化函数时,创建并初始嵌入式Linux系统的接口和设备通信接口,例如,针对嵌入式Linux系统的接口通过“1./*创建并初始化串口通信,bit、校验位、停止位等使用默认值,亦可传入其他值*/;

2.object_root->create(“user com 0”,串口号,波特率)->run();”进行处理;针对TCP通信接口通过“3./*创建并初始化TCP通信*/;

4.object_root->create(“user tcp 0”,IP地址,重连时间,超时时间)->run();”进行处理。

上述技术方案中,在目标初始化函数中针对设备填充工作内容时,通过填充函数进行填充内容填充,填充函数包括:on_run、on_halt、async_write和on_recv,不同设备填充函数填充内容不同,例如:在接口中,on_run填充内容为打开、初始化串口设备,初始化定时器,on_halt填充内容为关闭串口设备,关闭定时器,async_write填充内容为发送数据,on_recv填充内容为接收数据,并调用用户回调函数;在音频设备中,on_run填充内容为打开音频接口,初始化解码器、配置功放,on_halt填充内容为关闭功放、关闭解码器,关闭音频设备,async_write填充内容为打开并加载音频文件,开启帧循环,on_recv无此功能,保持为空;在扫码枪中,on_run填充内容为打开、初始化设备,on_halt填充内容为关闭设备,async_write无此功能,保持为空,on_recv填充内容为接收扫码数据;在GPIO中,on_run填充内容为初始化对应引脚,on_halt填充内容为关闭对应引脚,async_write填充内容为写入引脚状态,on_recv填充内容为读取引脚状态。

上述技术方案通过创建连接设置为设备与接口之间的通信提供前提,使得嵌入式Linux系统在与设备进行接口通信时能够更好的进行信息交互。

如图3所示,本发明提供的一个实施例中,所述创建连接,包括:

S1、创建连接链接;

S2、基于连接链接到远程主机上进行连接,确定连接关系;

S3、针对连接关系进行检测,获取连接检测信息;

S4、根据连接检测信息分析连接关系是否存在异常,得到连接检测结果;

S5、按照连接检测结果,在连接关系存在异常时进行异常处理。

上述技术方案中,在连接检测结果为连接关系不存在异常时,完成连接链接的连接。

上述技术方案中,根据连接检测信息分析连接关系是否存在异常时,将连接检测信息按照预设监测节点进行拆分,得到监测节点的连接检测信息,然后按照监测节点的顺序针对最后一个监测节点进行连接检测信息分析,判断最后一个监测节点的连接检测信息是否异常,得到连接检测结果,如果最后一个监测节点的连接检测信息异常,连接检测结果为连接关系存在异常,如果最后一个监测节点的连接检测信息不异常,连接检测结果为连接关系不存在异常。

上述技术方案中,按照连接检测结果,在连接关系存在异常时进行异常处理,包括:调取监测节点的连接检测信息,并针对监测节点依次进行连接检测信息分析,将监测节点的连接检测信息与监测节点的理想状态信息进行比较,从而确定连接检测信息异常的首个监测节点,得到出现异常的位置,然后基于出现异常的位置进行异常原因匹配,确定出现异常的位置的异常原因,接着,根据异常原因进行调整,然后基于调整后的连接关系重新进行检测,获得新的连接检测信息,进而针对新的连接检测信息重新进行连接检测结果确定,在连接结果仍然为连接关系存在异常时继续进行异常处理,直至新的连接检测结果为连接关系不存在异常,即可完成连接链接的连接。

上述技术方案通过针对连接关系进行检测发现连接关系的异常,从而确保连接关系能够实现设备的接口与嵌入式Linux系统的接口之间能够正常进行通信,避免连接关系异常导致嵌入式Linux系统的接口资源无法与设备进行通信,同时也保障了创建的连接链接的有效性。此外,在根据连接检测信息分析连接关系是否存在异常时时,通过针对最后一个监测节点进行连接检测信息分析能够在较短时间内确定连接检测结果,提高连接检测结果的确定效率,使得能够在连接关系存在异常时及时进行异常处理,并且在进行异常处理时,以监测节点为单元依次进行异常分析,从而使得在存在多个异常位置时也能够逐步解决异常,保障了异常处理的有序性,进而异常处理的全面性,使得最终得到连接关系是不存在任何异常的。

本发明提供的一个实施例中,所述读写接口数据,获取设备操作请求时,基于设备与接口的连接关系针对设备进行设备操作请求监测,获取设备操作请求,并分析设备操作请求的数目,当设备操作请求的数目不唯一时,根据设备操作请求的获取时间按照先后顺序导入待处理队列,形成待处理队列。

上述技术方案中,基于设备与接口的连接关系针对设备进行设备操作请求监测时,针对设备进行实时监测,获取连续的监测信号,根据监测信号进行分析确定是否产生了设备操作请求的输送,从而得到设备操作请求。

上述技术方案中,当设备操作请求的数目唯一时,之间将设备操作请求进行响应。

上述技术方案通过基于设备与接口的连接关系针对设备进行设备操作请求监测,使得能够在出现设备操作请求时能够及时发现,从而及时针对设备操作请求进行响应,而且通过分析设备操作请求的数目,使得在连续得到多个设备操作请求时,能够按照设备操作请求的顺序在待处理队列中依次进行响应,避免出现接口堵塞影响接口的正常运行。

本发明提供的一个实施例中,基于设备与接口的连接关系针对设备进行设备操作请求监测时,还根据连接设置针对连接关系进行关闭连接、停止重连定时器、停止超时定时器和取消发送队列。

上述技术方案中,通过停止函数void on_halt()针对基于连接关系正在进行操作进行关闭连接、停止重连定时器、停止超时定时器和取消发送队列等处理。

上述技术方案在基于设备与接口的连接关系进行接口资源操作过程中能够进行关闭连接、停止重连定时器、停止超时定时器和取消发送队列等处理,提高了接口资源操作的灵活性,方便在面对突发状况时针对正在进行资源操作的接口进行干预。

如图4所示,本发明提供的一个实施例中,读写接口数据时,采用读写函数进行设备操作请求获取,包括:

C1、针对接口进行数据读取,获取读取信息;

C2、根据读取信息进行分析,确定读取信息中是否存在设备操作请求,得到第一分析结果;

C3、按照第一分析结果在读取信息中存在设备操作请求时,分析设备操作请求是否完整,当设备操作请求完整时,接口接收设备操作请求成功,否则接口接收设备操作请求失败,得到第二分析结果;

C4、基于第二分析结果通过接口向所述设备进行接收反馈。

上述技术方案中,读写函数采用回调方式。

上述技术方案中,当设备操作请求不完整时,针对读取信息进行持续分析,直至设备操作请求完整,在针对读取信息进行持续分析时,针对持续分析过程进行时间计量,如果在预设时间界值内,设备操作请求依然不完整,则停止持续分析,将该设备操作请求的第二分析结果判断为接口接收设备操作请求失败。

上述技术方案中,基于第二分析结果通过接口向所述设备进行接收反馈时,如果第二分析结果为接口接收设备操作请求成功,则将接口接收设备操作请求成功反馈至对应的设备,如果第二分析结果为接口接收设备操作请求失败,则分析是否在针对读取信息进行持续分析过程中得到的第二分析结果,如果是,则暂时进行等待,如果不是,则将接口接收设备操作请求失败反馈至对应的设备。

上述技术方案通过第一分析结果和第二分析结果实现对读取信息的进一步分析,避免针对无效的读取信息进行分析造成资源浪费,同时也能够实现对读取信息的筛序,只在读取信息中提取设备操作请求,减少无关信息的赘余,进而降低根据读取信息进行分析的复杂程度,并且通过基于第二分析结果通过接口向所述设备进行接收反馈,借助回调方式使得设备能够知晓嵌入式Linux系统的接口是否收到设备操作请求,避免设备操作请求丢失使得设备无法得到嵌入式Linux系统的接口针对设备操作请求的响应。

本发明提供的一个实施例中,按照待处理队列控制接口进行设备操作请求响应之后还通过接口将设备操作响应结果发送至所述设备,并获取发送结果,当发送结果为发送成功时,完成发送,当发送结果为发送失败时,针对设备操作响应结果按照预设模式进行拆解,得到拆解后的设备操作响应结果,然后将拆解后的设备操作响应结果发送至所述设备,并基于拆解后的设备操作响应结果进行组合,在设备端得到设备操作响应结果。

上述技术方案中,预设模式是根据传输情况确定的拆解规则。

上述技术方案中,拆解后的设备操作响应结果包括:设备操作响应结果片段、设备操作响应结果片段之间的关系和进行自动组合的控制信息。

上述技术方案中,在嵌入式Linux系统的接口和设备的接口分别采用填充发送函数auto async_write(MessageType&&msg__,CompletionToken token__)与接收函数voidon_recv(const char*p__,size_t len__,std::functiontoken__)进行发送和接收。

上述技术方案只有在设备操作响应结果发送结果失败时才针对设备操作响应结果按照预设模式进行拆解,使得针对设备操作响应结果在不必要时能够直接进行发送从而完成发送,提高了发送效率,减少不必要的麻烦,而在设备操作响应结果发送结果失败时,通过针对设备操作响应结果按照预设模式进行拆解,使得无法整体发送的设备操作响应结果也能够通过处理实现成功发送。

本发明实施例提供了一种基于嵌入式Linux系统的接口资源操作系统,包括:接收模块、配置模块、连接模块、监测模块和处理模块;

所述接收模块,用于接收设备连接请求;

所述配置模块,用于根据设备连接请求针对设备进行接口目标信息配置,确定目标初始化函数,并基于目标初始化函数确定虚函数;

所述连接模块,用于将目标初始化函数结合虚函数进行初始化处理,并创建连接设置,实现设备与接口连接;

所述监测模块,用于读写接口数据,获取设备操作请求,并针对设备操作请求形成待处理队列;

所述处理模块,用于按照待处理队列控制接口进行设备操作请求响应。

如图5所示,上述技术方案中,接收模块、配置模块、连接模块、监测模块和处理模块依次连接。

上述技术方案中,基于嵌入式Linux系统的接口资源操作系统与基于嵌入式Linux系统的接口资源操作方法是对应的。

上述技术方案实现了接口虚拟化操作,使得设备在与嵌入式Linux系统连接时无需必须使用Linux原始接口,提高了嵌入式Linux系统的应用灵活性,而且在配置模块中引入信息存储模块,使得嵌入式Linux系统的虚拟化接口中隐藏了不同设备的配置信息,从而使得嵌入式Linux系统在连接不同设备时都能够实现目标信息的配置,进而降低接口资源操作的难度,并且嵌入式Linux系统的虚拟化接口采用了统一的流程与编程风格,能够基于同一框架针对不同设备适用,降低了开发人员的学习难度,减少了工作量。

本领域技术人员应当理解的是,本发明中的第一、第二仅仅指的是不同应用阶段而已。

本领域技术客户员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

相关技术
  • 一种功能化离子液体/沸石咪唑酯骨架复合材料及其制备方法和应用
  • 一种环糊精-聚合离子液体功能化石墨烯复合材料及其制备方法和应用
  • 一种夹层氧化石墨烯/二元离子液体复合润滑薄膜及其制备方法
  • 磁性纳米磷钨杂多酸离子液体负载二氧化硅复合材料的制备方法及其应用
  • 一种盐酸利多卡因-离子液体复合局麻药及其制备方法和应用
  • 一种苯扎氯铵-盐酸利多卡因无菌溶液及其制备方法和应用
技术分类

06120116547560