CN113127227B - 模组通信的指令处理方法、装置、微控制器和介质 - Google Patents
模组通信的指令处理方法、装置、微控制器和介质 Download PDFInfo
- Publication number
- CN113127227B CN113127227B CN202110297615.5A CN202110297615A CN113127227B CN 113127227 B CN113127227 B CN 113127227B CN 202110297615 A CN202110297615 A CN 202110297615A CN 113127227 B CN113127227 B CN 113127227B
- Authority
- CN
- China
- Prior art keywords
- action instruction
- instruction
- processing function
- current action
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000006854 communication Effects 0.000 title claims abstract description 38
- 238000004891 communication Methods 0.000 title claims abstract description 37
- 238000003672 processing method Methods 0.000 title claims abstract description 12
- 230000009471 action Effects 0.000 claims abstract description 302
- 238000012545 processing Methods 0.000 claims abstract description 229
- 238000000034 method Methods 0.000 claims abstract description 39
- 230000006870 function Effects 0.000 claims description 234
- 230000005540 biological transmission Effects 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 8
- 230000007246 mechanism Effects 0.000 claims description 8
- 230000000875 corresponding effect Effects 0.000 description 56
- 230000008569 process Effects 0.000 description 13
- 230000001960 triggered effect Effects 0.000 description 9
- 238000011161 development Methods 0.000 description 5
- 238000003780 insertion Methods 0.000 description 5
- 230000037431 insertion Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008571 general function Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种模组通信的指令处理方法、装置、微控制器和介质。其中方法应用于存储有预设的动作指令表的微控制器,预设的动作指令表包括预先定义的多个动作指令,一个动作指令中包括与其对应的正确处理函数和错误处理函数,该方法包括:获取当前动作指令,所述当前动作指令是指所述动作指令表中的当前要执行的一个动作指令;向模组发送所述当前动作指令指定的发送信息;获取来自所述模组的第一接收数据;当预设的通用处理函数表中不存在与所述第一接收数据匹配的通用处理函数时,判断所述第一接收数据是否与当前动作指令匹配;若匹配,执行所述当前动作指令中的正确处理函数。
Description
技术领域
本发明涉及通信技术领域,尤其是涉及一种模组通信的指令处理方法、装置、微控制器和介质。
背景技术
随着物联网技术的飞速发展,越来越多的厂商选择把相应的技术方案作为模组提供给二级客户进行方案开发,而模组间的通信协议,基本选择的是AT指令协议。AT指令协议作为连接微控制器(Microcontroller Unit,MCU)和模组之间的桥梁,对项目功能实现起着决定性的作用。
但是由于模组厂商太多,各自的AT指令协议虽然大体相同,但或多或少都有着不同的差异。这时常导致使用不同的模组时,需要进行几乎要重新配置,开发工作量大,导致一个MCU可应用的模组受限。并且微控制器在与模组的指令通信过程中,一般可能接收到其他信息而不是当前需要的模组返回的信息,这些信息会被当成错误信息去处理,容易出现问题或故障。
发明内容
本申请提供了一种模组通信的指令处理方法、装置、微控制器和介质。
第一方面,提供了一种模组通信的指令处理方法,应用于微控制器,所述微控制器存储有预设的动作指令表,所述预设的动作指令表包括预先定义的多个动作指令,一个动作指令中包括与所述一个动作指令对应的正确处理函数和错误处理函数,所述正确处理函数为当成功接收到所述动作指令的正确回复时,需要执行的处理函数,所述错误处理函数为当接收到所述动作指令的错误回复时,需要执行的处理函数;所述方法包括:
获取当前动作指令,所述当前动作指令是指所述动作指令表中的当前要执行的一个动作指令;
向模组发送所述当前动作指令指定的发送信息;
获取来自所述模组的第一接收数据;
当预设的通用处理函数表中不存在与所述第一接收数据匹配的通用处理函数时,判断所述第一接收数据是否与当前动作指令匹配;
若匹配,执行所述当前动作指令中的正确处理函数。
第二方面,提供了一种模组通信的指令处理装置,所述装置存储有预设的动作指令表,所述预设的动作指令表包括预先定义的多个动作指令,一个动作指令中包括与所述一个动作指令对应的正确处理函数和错误处理函数,所述正确处理函数为当成功接收到所述动作指令的正确回复时,需要执行的处理函数,所述错误处理函数为当接收到所述动作指令的错误回复时,需要执行的处理函数;
所述装置包括:
指令执行模块,用于获取当前动作指令,所述当前动作指令是指所述动作指令表中的当前要执行的一个动作指令;
传输模块,用于向模组发送所述当前动作指令指定的发送信息;
所述传输模块还用于,获取来自所述模组的第一接收数据;
所述指令执行模块还用于:
当预设的通用处理函数表中不存在与所述第一接收数据匹配的通用处理函数时,判断所述第一接收数据是否与当前动作指令匹配,若匹配,执行所述当前动作指令中的正确处理函数。
第三方面,提供了一种微控制器,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如第一方面及其任一种可能的实现方式的步骤。
第四方面,提供了一种计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由处理器加载并执行如上述第一方面及其任一种可能的实现方式的步骤。
本申请实施例中,微控制器存储有预设的动作指令表,包括预先定义的多个动作指令,一个动作指令中包括与其对应的正确处理函数和错误处理函数,正确处理函数为当成功接收到动作指令的正确回复时,需要执行的处理函数,错误处理函数为当接收到所述动作指令的错误回复时,需要执行的处理函数;获取当前动作指令,所述当前动作指令是指所述动作指令表中的当前要执行的一个动作指令,向模组发送所述当前动作指令指定的发送信息,之后获取来自所述模组的第一接收数据,当预设的通用处理函数表中不存在与所述第一接收数据匹配的通用处理函数时,判断所述第一接收数据是否与当前动作指令匹配,若匹配,执行所述当前动作指令中的正确处理函数。一般微控制器收到的模组发送的数据可能不是需要的特定信息,会被当成错误信息去处理,可能出现逻辑错误,设置通用处理函数先对这类信息进行筛选处理,若不是通用处理函数处理的数据,则通过预先定义的动作指令处理;通过通用处理函数能够单独处理完成正常功能的指令回复之外的数据,或者由于轮询产生回复的数据,减少了数据处理错误的情况,并且预设的通用处理函数表和动作指令表编辑简单,在指令配置时简化了开发工作量,使其可以灵活用于不同模组的指令通信场景。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1为本申请实施例提供的一种模组通信的指令处理方法的流程示意图;
图2为本申请实施例提供的一种opt判断处理流程示意图;
图3为本申请实施例提供的一种数据发送流程示意图;
图4为本申请实施例提供的一种模组通信的指令处理装置的结构示意图;
图5为本申请实施例提供的一种微控制器的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请实施例中涉及到的微控制器即微控制单元(Microcontroller Unit;MCU),又称单片微型计算机(Single Chip Microcomputer)或者单片机,是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。诸如手机、PC外围、遥控器,至汽车电子、工业上的步进马达、机器手臂的控制等。
本申请实施例中涉及到的模组(Module)指的是,把某种特定软硬件功能通过集成芯片的方式提供给客户开发的硬件产品。上述微控制器可以与模组进行通信,从而实现对各个电子产品功能模块的控制。
下面结合本申请实施例中的附图对本申请实施例进行描述。
请参阅图1,图1是本申请实施例提供的一种模组通信的指令处理方法的流程示意图。该方法可包括:
101、获取当前动作指令,上述当前动作指令是指上述动作指令表中的当前要执行的一个动作指令。
本申请实施例的执行主体可以为一种模组通信的指令处理装置,可以为微控制器,可以与模组进行通信。
本申请实施例中可以根据需要设置动作指令表,以通过微控制器实现对特定模组的功能控制。上述预设的动作指令表可以包括预先定义的多个动作指令,通常一个动作指令中包括一个正确处理函数和一个错误处理函数。具体的,动作指令的功能首先是向模组发送特定的发送信息,比如查询某个数据的请求,模组会返回对应的响应数据。因此在执行当前动作指令时,微控制器对模组发来的数据进行验证,主要是根据当前动作指令中预先定义的验证格式进行判断,确定接收的该数据是否为当前动作指令的正确回复,若该数据符合当前动作指令中预先定义的验证格式,则确定该数据为当前动作指令的正确回复,若该数据不符合当前动作指令中预先定义的验证格式,则确定该数据为当前动作指令的错误回复。进而当成功接收到模组对该动作指令的正确回复时,执行上述正确处理函数,当接收到模组对该动作指令的错误回复时,可执行上述错误处理函数,可以根据需要预先定义动作指令中所使用的正确处理函数和错误处理函数。其中,上述回复指的是与该微控制器进行通信的模组,在接收到本申请实施例中的正确处理函数、错误处理函数等函数,都可以根据实际情况进行修改,以执行特定逻辑功能,不一定要使用默认处理函数。
可选的,在定义的动作指令中所写入的函数可以为AT指令形式。AT指令是应用于终端设备与PC应用之间的连接与通信的指令,本申请实施例中应用于微控制器与模组之间的通信。AT即Attention,其中每个指令执行成功与否都有相应的返回。其他的一些非预期的信息,模组将有对应的一些信息提示,微控制器作为接收端可做相应的处理。模组商在出厂时就规定了模组进行通信所用的AT指令集,制定了该AT指令集中各个AT指令的功能,模组可以对来自微控制器的AT指令进行识别处理,比如执行对应功能,并返回处理结果。一般可通过微控制器发送字符串“at+xxx”,模组回复“xxx”指令对应的数据,实现对控制模组,进行对应指令功能处理。
动作指令表中的动作指令可以按顺序执行。为了实现特定的功能,可以指定从哪一条动作指令开始执行,在一个时间只能执行一条动作指令,结束后可以执行下一条。上述当前动作指令即为该动作指令表中的当前执行的一个动作指令,当前动作指令可以通过正确处理函数或错误处理函数触发指定的下一条动作指令执行。可以基于程序中的指针确定执行哪一条动作指令,即当前指针指向的动作指令为当前动作指令。动作指令中不同的正确处理函数或错误处理函数具有不同的处理逻辑,一个正确处理函数或错误处理函数在定义时可以定义以下功能:修改当前动作指令指针,指向下一动作指令,此处的“下一动作指令”可以根据需要进行设置。具体举例来讲,可以包括以下定义:
at_opt_current=&at_opt_map_table[ATI];//修改当前opt指针,指向下一指令“ATI”
从而,在触发该处理函数时,根据预先定义跳转到指定的动作指令。
本申请实施例中提到的opt数据结构,主要用于定义函数执行中需要用到的数据内容,opt数据结构中保存了需要发送的命令、数据、超时时间等等,本申请实施例中动作指令具体可以通过opt数据结构来定义。
举例来讲,opt数据结构体,定义可如下:
通过上述opt数据结构定义动作指令中的处理函数使用,因此该处理函数可称为opt函数,动作指令可以被称为opt指令。
一个opt指令只有一个与之对应的正确处理函数、错误处理函数、超时处理函数,在opt指令定义时确定关系。其中,每种处理函数(不管是正确、错误、超时),都可以通过修改当前opt数据结构的方式去修改对应opt指令的具体动作。一种处理函数可以对应多个opt数据结构,比如default相关的函数,可以让多个opt数据结构调用。
102、向模组发送上述当前动作指令指定的发送信息。
在当前动作指令被执行时,首先可以向模组发送当前动作指令指定的发送信息。每个动作指令在定义时指定了需要向模组发送的发送信息,该发送信息可以是对模组的控制信息或者数据获取请求,在不同功能场景下可以为不同格式、不同作用的信息。
103、获取来自上述模组的第一接收数据。
模组在接收到微控制器发送的发送信息之后,可以响应于该发送信息,向微控制器发送对应的反馈数据。在一种可选的实施方式中,在发送信息为数据获取请求的情况下,模组可以发送微控制器请求获取的数据;在发送信息为控制信息的情况下,模组也可以执行对应的操作,并返回指示相应操作结果的数据到微控制器。
需要注意的是,在步骤103之后,微控制器接收到的来自模组的第一接收数据,不一定是模组响应于发送信息后反馈的数据,模组在一些特定情况下也会向微控制器发送信息,比如4G模组由于网络信号不好,导致消息传输协议层断开连接,模组会向微控制器发送通知,即此时微控制器接收到的第一接收数据可能为该模组自动发送的字符串“CMQTTCONNLOST:0,3”,微控制器中的通用函数列表中添加该字符串对应的通用处理函数,则可以直接调用该通用处理函数进行处理。因此在步骤103之后,可以先对第一接收数据进行判断,即可执行步骤104。
104、确定预设的通用处理函数表中是否存在与上述第一接收数据匹配的通用处理函数。
本申请实施例中提到的通用处理函数,指的是处理不同模组数据时,针对模组可能出现不在特定动作指令响应中的数据而专门定制的处理函数,专门用于处理微控制器意外接收到的来自模组的数据。
具体的,微控制器中可以根据需要设置通用处理函数表,预设的通用处理函数表中可包括多个通用处理函数,可以便捷地进行编辑。
比如,对于4G模组,需要定时的查询模组信号质量,那么微控制器可以使用AT+csq进行查询,会定时收到模组对csq的回复数据,在此情况下通用处理函数列表中需要有处理对csq的回复数据的通用函数1;
另外,4G模组可能会由于网络信号不好,导致消息传输协议层断开连接,微控制器可能会突然之间收到模组发送的对应数据:“CMQTTCONNLOST:0,3”,在此情况下通用处理函数列表中需要添加该字符串对应的通用处理函数2;
又如,微控制器可能会突然收到4G模组发送的消息传输协议层信息(mqtt信息),那么就需要添加相应的mqtt信息接收函数处理,作为通用处理函数3。
在一种可选的实施方式中,可以把对应的通用处理函数放到一个通用函数数组中,以便于更改顺序或者修改函数都方便。以下为一个定义的通用函数数组:
其中包括三个预先定义的通用处理函数:updatecsq、receiveMqttData、receiveMqttDisconnect,分别用于csq、mqtt接收和mqtt断开情况的处理。比如接收到模组发送的表示mqtt断开的数据,可以查找到并调用receiveMqttDisconnect函数进行处理。
可以在通用处理函数表中查找与第一接收数据相同的字符串,若未查找到与该第一接收数据相同的字符串,确定不存在与第一接收数据匹配的通用处理函数;若查找到相同字符串,则存在与该第一接收数据匹配的通用处理函数。
具体的,通用处理函数表包括设定的多个通用处理函数,而每个通用处理函数的定义包括对应的用于接收数据匹配的字符串,即在接收到模组发送的相同字符串时触发该通用处理函数对应的操作。
通过遍历预设的通用函数表实现判断是否有与第一接收数据匹配的通用处理函数,若有,可以触发步骤105;当预设的通用处理函数表中不存在与第一接收数据匹配的通用处理函数时,可以触发步骤106。即先执行通用处理函数,后执行opt函数。
举例来讲,前述提到模组发送的数据“CMQTTCONNLOST:0,3”,receiveMqttDisconnect函数是用于该数据的通用处理函数,其定义可以为:
预设的通用处理函数表包括上述定义功能的receiveMqttDisconnect函数,则可以通过对接收数据"CMQTTCONNLOST:0,3"的匹配,在通用处理函数表中查找到该函数用于执行对应的处理逻辑。
105、执行上述与上述第一接收数据匹配的通用处理函数。
106、判断上述第一接收数据是否与当前动作指令匹配。
判断第一接收数据是否与当前动作指令匹配,即判断该第一接收数据是否是当前动作指令所需要的模组反馈数据。
在一种实施方式中,上述步骤106可包括:
获取上述当前动作指令的类型;
根据预设的动作指令的类型与参考字符串的对应关系,确定上述当前动作指令的类型所对应的参考字符串;
获取上述第一接收数据中预设字段的字符串;
将上述第一接收数据中预设字段的字符串与上述参考字符串进行比对,确定上述第一接收数据中预设字段的字符串是否与上述参考字符串一致;
若一致,确定上述第一接收数据与上述当前动作指令匹配;
若不一致,确定上述第一接收数据与上述当前动作指令不匹配。
具体的,在定义动作指令时可以预先设置动作指令的类型,此处称为type类型,不同的type类型预先设定了对应的参考字符串,即微控制器中存储了预设的动作指令的类型与参考字符串的对应关系,可以在动作指令匹配时使用。
根据当前动作指令的type类型,和预设的动作指令的类型与参考字符串的对应关系,可以确定当前动作指令的类型所对应的参考字符串,再将第一接收数据中预设字段的字符串与该参考字符串进行比对,若一致,确定第一接收数据与当前动作指令匹配,说明在当前动作指令下接收到了正确的模组返回数据,可以执行步骤107;若不一致,确定第一接收数据与当前动作指令不匹配,说明在当前动作指令下未接收到正确的模组返回数据,可以执行步骤108。
具体可以参见图2所示的一种opt判断处理流程示意图,如图2所示,opt判断处理流程根据当前动作指令对应的type类型,对当前接收到的来自模组的数据进行相应判断。其中动作指令的类型包括1,2,3,N共4种,每种type类型用于匹配判断的参考字符串可以不同,如type N所示可以设置不同的判断规则,开发者可以根据需要自行扩展定义。
图2中预设字段的字符串包括了字符串的开头和字符串的结尾两种情况,比如,当前动作指令的type类型为1,则判断接收数据是否以字符串“\r\nOK\r\n”结尾,若是,则调用当前动作指令对应的正确处理函数;若否,则调用当前动作指令对应的错误处理函数。本申请实施例中动作指令的type类型可以根据需要扩展定义。通过对动作指令设置type类型和对应的判断规则,可以对执行动作指令时接收到的来自模组的数据进行判断,以确定是否收到当前动作指令所需的回复,从而判断动作指令是否执行成功,以便执行对应的后续操作。
107、执行上述当前动作指令中的正确处理函数。
前述已经提到,正确处理函数可以根据需要进行设置,比如结束当前动作指令,还可以继续触发下一条动作指令的执行。
在一种可选的实施方式中,当上述当前动作指令中的正确处理函数用于触发下一条待执行的动作指令时,获取上述下一条待执行的动作指令作为当前动作指令,执行上述当前动作指令。
比如,atDefaultRecOk是默认的正确处理函数,默认设置下一条动作指令的执行,下一条动作指令可以是该动作指令表中当前动作指令后面的第一条指令。可选的,可以根据需要定义正确处理函数,通过正确处理函数指向该动作指令表中需要继续执行的下一条动作指令(不一定按照列表中排列的先后顺序执行)。
一个正确处理函数在定义时可以定义如何修改当前动作指令指针,以指向下一动作指令,此处的“下一动作指令”可以根据需要进行设置。具体举例来讲,假设执行当前opt指令中的正确处理函数atRecOk:
从而,在触发该处理函数时,可以根据预先定义跳转到指定的动作指令。另外,可以使用默认的正确处理函数atDefaultRecOk,其默认设置下一条opt指令处理,即执行当前动作指令中的atDefaultRecOk函数时,其功能为按照动作指令表中的顺序,跳转到当前动作指令的下一条指令执行。
108、执行上述当前动作指令中的错误处理函数。
前述已经提到,错误处理函数可以根据需要进行设置,比如触发下一条待执行的动作指令或者指示重发。
可选的,当上述错误处理函数用于指示重发时,在上述当前动作指令的重发剩余次数不为零的情况下,按照上述错误处理函数定义的重发机制,向模组重新发送上述发送信息;
在上述重发剩余次数为零时,停止执行上述错误处理函数。
动作指令中可以预先定义重发机制,用于对指定的发送信息进行重发。具体的,第一接收数据与当前动作指令不匹配时,表示微控制器并未接收到来自模组的所需要的数据,因此通过该错误处理函数,向模组重发该发送数据,即可以重复执行上述步骤101-步骤106,直到确定接收到所需要的数据。
其中,触发剩余次数初始值可以在定义动作指令时设置,在当前动作指令执行时可以更新重发剩余次数,即每次执行重发之后,记录重发剩余次数-1。当重发剩余次数为零时,可以停止执行上述错误处理函数,不再重发。可选的,还可以通过预先设置其他处理函数,在重发剩余次数为零时触发其他操作,比如输出提示信息,此处不做限制。
可选的,当上述错误处理函数用于指示触发目标动作指令时,将上述目标动作指令作为当前动作指令,并执行上述当前动作指令。
在一些场景中,需要使用多条动作指令来实现一个模组控制功能,因此,当前动作指令可以是上述多条动作指令中的一条且非第一条,在此情况下,上述目标动作指令可以为当前动作指令之前的一条动作指令,比如第一条,可以根据需要预先设置。当前动作指令匹配失败,即此时模组发送来的数据与当前动作指令不匹配,可以跳到前面执行过的目标动作指令重新执行,才能正确完成整个指令控制流程。
在一种可选的实施方式中,上述动作指令中还包括:超时处理函数、超时时间信息、负载信息、执行重发的最大次数;其中:
上述超时处理函数为当上述动作指令单次执行超时时,需要执行的处理函数;
上述负载信息为在发送上述发送信息之后需要被发送的信息;
上述超时时间信息用于指示上述动作指令的单次执行超时的时间。
上述超时处理函数、负载信息和超时时间信息可以根据需要在定义动作指令时设置,本申请实施例对此不做限制。
动作指令的单次执行的时间超过超时时间信息规定的时间则认为超时,可以触发超时处理函数。比如,atDefaultTimeout为默认的超时处理函数,用于该动作指令的发送信息重发超时之后的处理。举例来讲,可以是在当前动作指令执行超时时,控制模组重启。
在一些情况下,需要发送两条指令才能构成某种功能,第一条指令是告诉模组,准备接收某种数据,第二条指令是具体的数据,上述负载信息则为该情况下的第二条指令,具体看情况设置。一般网络相关的指令会比较容易出现这样的情况,比如第一条指令at+mqttsub,告诉模组准备定义某个mqtt的topic,那么负载信息即为具体的topic,从而将具体的topic发送给模组。
本申请实施例中可以通过DECLARE_AT_MAP声明一条对应AT指令的动作指令的内容。具体定义以以下指令为例:
DECLARE_AT_MAP(AT,atRecOk,atDefaultRecErr,atDefaultTimeout,"AT\r\n",NULL,AT_1S_TIMEOUT,AT_MIN_RETRY,0)
其中:
1、AT代表了该动作指令的执行编号以及其标示;可以通过该编号来指定触发该条指令的执行。
2、atRecOk代表了当接收到该动作指令的正确回复时,需要执行的正确处理函数;
3、atDefaultRecErr表示当接收到该指令错误回复时,需要执行的错误处理函数;
4、atDefaultTimeout表示当重发次数达到该动作指令指定的最大次数时,需要执行的重发超时处理函数;
5、"AT\r\n"表示执行该动作指令时需要发送的发送信息;
6、NULL表示该动作指令不需要负载信息;
7、AT_1S_TIMEOUT代表该动作指令的单次执行超时时间;
8、AT_MIN_RETRY表示该动作指令的执行重发的最大次数;
9、0表示该动作指令的type类型,用于前述对接收数据的匹配,此处不再赘述。
本申请实施例中涉及插入数据指令,指的是在顺序执行的AT指令中,由于某种外部触发或者轮询机制,需要加入的某些特定的数据指令。插入数据的优先级比opt数据要高,是AT指令之外需要根据特定情况发送的数据,对应的重发机制由opt指令之外实现,具体由开发者设计。可选的,在检测到插入数据指令请求发送的情况下,微控制器可以暂停当前动作指令对应的发送请求,优先执行对上述插入数据指令的发送,将插入数据指令发送给模组后再继续执行当前动作指令。通过插入发送机制可以灵活的实现,非功能的动作指令之外的轮询机制。
本申请实施例中通用处理函数一般用于处理模组主动发送的数据,通常较少,更多的把指令处理放到opt处理函数中处理。本申请中涉及到的方法主要分为数据发送和数据接收处理。下面对发送过程进行描述。
具体可以参见图3所示的一种数据发送流程示意图,如图3所示,微控制器中对模组的数据发送以上述动作指令(opt指令)的形式执行为主,opt指令中的发送信息即为opt数据,在重发次数不为0的情况下,当前opt指令可以根据错误处理函数执行对应的超时重发,若重发次数已为0,则可调用当前opt指令的超时处理函数执行相应处理。当有插入数据需要发送时,优先处理插入数据且停止opt数据的发送,根据插入数据指令,获取对应的插入数据并发送。在此之后可以重新执行该opt指令,以发送opt数据。
一般的指令控制方案中,微控制器需要根据所选择功能对预定AT指令集进行检索,然后发送到模组再接收回复。由功能检索容易出现数据同时发送的冲突。可以达到错开opt数据和插入数据发送的效果,避免执行冲突。通过动作指令执行顺序发送的处理,也可以减少通讯的拥挤和提高响应速度。
在一种实施方式中,本申请实施例中的模组通信的指令处理方法,微控制器侧的整体流程具体可如下:
(1)、通过DECLARE_AT_MAP声明一个想要实现特定功能的opt指令表;
(2)、定义好opt指令表中相关的正确处理函数、错误处理函数以及超时处理函数;
(3)、定义好opt指令表中相关的发送和超时信息;
(4)、定义好需要用到的通用处理函数表atCommonFuncTable;
(5)、设定好opt判断处理流程;上述opt判断处理流程即为opt指令中,判断来自模组的接收数据是否与当前opt指令匹配的规则,可以根据需要的接收数据类型设置用于验证接收数据的参考字符串,此处不再赘述。
(6)、初始化第一条opt指令;主要由人工指定第一条opt指令的执行,前述提到opt指令具有对应的编号,可以通过指向特定编号的指令,获取对应的opt指令作为当前动作指令处理。通常在模组控制功能中的第一条opt指令,是先检测模组与微控制器间的通信是否正常,因此上述初始化可以理解为,该opt指令的功能:在正式开启指令通信之前,从微控制器先向模组发送一个测试指令,在接收到指定的返回数据时判断通信正常,可以继续执行下一条opt指令。
(7)、开始进行与模组之间的指令通讯。
由于不同模组间的AT指令集,基本无法完全兼容,而且所需开发功能也不一定相同,因此通过本申请实施例中的模组通信的指令处理方法,可以根据选择的模组类型以及要实现的功能,具体定义对应的动作指令,其中各个动作指令中所涉及到的函数可以根据实际情况进行进行灵活的设置或修改,可以自行定义函数功能,实现对模组的不同控制功能,操作简便。
具体的,本申请通过动作指令表可以快速修改对应动作指令的处理函数以及相关发送超时信息;通过添加不同的通用处理函数,可以快速实现异常情况的处理,比如模组临时发送的一些数据;通过添加动作指令对应的不同type类型,将模组发送来的数据与当前动作指令进行匹配判断,可以通过动作指令中的错误处理函数实现模组回复信息不兼容的处理;通过动作指令中的正确处理函数,可以实现灵活的配置下一动作指令,实现各种逻辑的处理。
为了更清楚地介绍本申请实施例中的模组通信的指令处理方法,下面以其中一种举例加以详细说明。
1、通过DECLARE_AT_MAP声明一个实现特定功能的opt指令表。例如所需功能包括:模组上电判断指令通讯是否正常,正常则修改波特率,并查询相关版本,卡信息,以及网络信息。具体opt指令表如下所示,其中包括多条opt指令:
2、定义相关处理函数。该举例所以定义的函数包括atRecOk、atDefaultRecOk、atDefaultRecErr、atDefaultTimeout、atCregQuryRecOk几个处理函数,以及相应的默认超时和发送信息,在上述举例的动作指令中,使用了atRecOk、atDefaultRecOk和atCregQuryRecOk作为正确处理函数,atDefaultRecErr作为错误处理函数,atDefaultTimeout作为超时处理函数。比如上述ATCEREG指令中的正确处理函数为atCregQuryRecOk,错误处理函数为atDefaultRecErr,超时处理函数为atDefaultTimeout。
其中:atRecOk主要实现触发下一条待执行的动作指令。该举例中具体用于触发ATIPR指令以发送下一条发送信息,该发送信息即为ATIPR指令指定的内容,具体为波特率参数,则获取当前波特率参数如921600,即发送信息"AT+IPR=%d\r\n"变为"AT+IPR=921600\r\n",向模组发送。
atDefaultRecOk是默认的正确处理函数,默认设置下一条opt处理。比如当ATIPR处理成功后,会默认设置并执行ATE0指令。
atDefaultRecErr是默认的错误处理函数,可以使用默认的重发处理机制,向模组重发相应的发送信息。
atDefaultTimeout默认的超时处理函数,处理相关动作指令重发超时之后的处理,比如若判断超时则控制重启。
atCregQuryRecOk可处理查询网络,当网络连接成功之后,根据网络信号强度处理其他事情。具体的,使用该函数作为正确处理函数的动作指令,在收到模组的正确回复后就调用atCregQuryRecOk表示网络查询成功,这时候就可以触发在atCregQuryRecOk设置的下一条opt指令继续执行。
需要注意的是,上述opt指令表中的最后一条ATEND指令可以理解为结束指令,当执行到ATEND指令时整个opt处理流程就会停止,直到开始下次调用(不是ATEND的动作指令)。
3、定义需要用到的通用处理函数表atCommonFuncTable。在该举例中只需要更新csq值的处理函数。具体可如下:
static pReceiveFunc atCommonFuncTable[]=
{
updatecsq,//处理csq
};
4、设定好opt判断处理流程。在该举例中每条动作指令中最后的“0”表示type类型,具体可以参见图2对应的描述,此处不再赘述。
5、设定第一条动作指令为前述动作指令表中的opt指令“AT”,开始与模组进行通信。该指令“AT”通过前述提到的声明定义:
DECLARE_AT_MAP(AT,atRecOk,atDefaultRecErr,atDefaultTimeout,"AT\r\n",NULL,AT_1S_TIMEOUT,AT_MIN_RETRY,0)
可以通过设置当前opt的指针来执行对应的opt指令,即通过以下指针指向指令“AT”:
at_opt_current=&at_opt_map_table[AT]。
本申请可以根据不同的模组进行灵活的配置,使得绝大部分模组都可以通过微控制器控制实现对应功能。并且,可以方便地通过预设的动作指令表,按照设定逻辑进行下一指令处理,同时也可以通过动作指令中的正确处理函数和错误处理函数分开执行正确或错误时的对应处理,使整个控制逻辑更清晰,数据处理更稳定。
基于上述模组通信的指令处理方法实施例的描述,本申请实施例还公开了一种模组通信的指令处理装置,可以存储有预设的动作指令表,该预设的动作指令表包括预先定义的多个动作指令,一个动作指令中包括与上述一个动作指令对应的正确处理函数和错误处理函数,其中正确处理函数为当成功接收到所述动作指令的正确回复时,需要执行的处理函数,上述错误处理函数为当接收到上述动作指令的错误回复时,需要执行的处理函数。请参见图4,模组通信的指令处理装置400包括:
指令执行模块410,用于获取当前动作指令,上述当前动作指令是指上述动作指令表中的当前要执行的一个动作指令;
传输模块420,用于向模组发送上述当前动作指令指定的发送信息;
上述传输模块420还用于,获取来自上述模组的第一接收数据;
上述指令执行模块410还用于:
当预设的通用处理函数表中不存在与上述第一接收数据匹配的通用处理函数时,判断上述第一接收数据是否与当前动作指令匹配,若匹配,执行上述当前动作指令中的正确处理函数。
根据本申请的一个实施例,图1-图3所示的方法所涉及的各个步骤均可以是由图4所示的模组通信的指令处理装置400中的各个模块执行的,此处不再赘述。
本申请实施例中的模组通信的指令处理装置400,可以获取当前动作指令,所述当前动作指令是指所述动作指令表中的当前要执行的一个动作指令,向模组发送所述当前动作指令指定的发送信息,之后获取来自所述模组的第一接收数据,当预设的通用处理函数表中不存在与所述第一接收数据匹配的通用处理函数时,判断所述第一接收数据是否与当前动作指令匹配,若匹配,执行所述当前动作指令中的正确处理函数。一般模组通信的指令处理装置收到的模组发送的数据可能不是需要的特定信息,会被当成错误信息去处理,可能出现逻辑错误,设置通用处理函数先对这类进行筛选处理,若不是通用处理函数处理的数据,则通过预先定义的动作指令处理;通过通用处理函数能够单独处理完成正常功能的指令回复之外的数据,或者由于轮询产生回复的数据,减少了数据处理错误的情况,并且预设的通用处理函数表和动作指令表编辑简单,在指令配置时简化了开发工作量,使其可以灵活用于不同模组的指令通信场景。
基于上述方法实施例以及装置实施例的描述,本申请实施例还提供一种微控制器。请参见图5,该微控制器500至少包括处理器501、存储器502以及输入/输出单元503。上述处理器501可以为中央处理器(central processing unit,CPU),作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。
计算机存储介质可以存储在微控制器500的存储器502中,上述计算机存储介质用于存储计算机程序,上述计算机程序包括程序指令,上述处理器501可以执行上述存储器502存储的程序指令。本申请实施例中的预设的动作指令表、通用处理函数表等也可以存储在上述存储器502中。
在一个实施例中,本申请实施例上述的微控制器500可以用于进行一系列的处理,包括如图1-图3所示任一实施例中方法等等。
本申请实施例还提供了一种计算机存储介质(Memory),上述计算机存储介质是电子设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机存储介质既可以包括电子设备中的内置存储介质,当然也可以包括电子设备所支持的扩展存储介质。计算机存储介质提供存储空间,该存储空间存储了电子设备的操作系统。并且,在该存储空间中还存放了适于被处理器加载并执行的一条或多条的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的计算机存储介质。
在一个实施例中,可由处理器加载并执行计算机存储介质中存放的一条或多条指令,以实现上述实施例中的相应步骤;具体实现中,计算机存储介质中的一条或多条指令可以由处理器加载并执行图1-图3中方法的任意步骤,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所显示或讨论的相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者通过该计算机可读存储介质进行传输。该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是只读存储器(read-onlymemory,ROM),或随机存储存储器(random access memory,RAM),或磁性介质,例如,软盘、硬盘、磁带、磁碟、或光介质,例如,数字通用光盘(digital versatile disc,DVD)、或者半导体介质,例如,固态硬盘(solid state disk,SSD)等。
Claims (9)
1.一种模组通信的指令处理方法,应用于微控制器,其特征在于,所述微控制器存储有预设的动作指令表,所述预设的动作指令表包括预先定义的多个动作指令,一个动作指令中包括与所述一个动作指令对应的正确处理函数和错误处理函数,所述正确处理函数为当成功接收到所述动作指令的正确回复时,需要执行的处理函数,所述错误处理函数为当接收到所述动作指令的错误回复时,需要执行的处理函数;所述方法包括:
获取当前动作指令,所述当前动作指令是指所述动作指令表中的当前要执行的一个动作指令;
向模组发送所述当前动作指令指定的发送信息;
获取来自所述模组的第一接收数据;
当预设的通用处理函数表中不存在与所述第一接收数据匹配的通用处理函数时,判断所述第一接收数据是否与当前动作指令匹配;
若匹配,执行所述当前动作指令中的正确处理函数;
所述判断所述第一接收数据是否与当前动作指令匹配,包括:
获取所述当前动作指令的类型;
根据预设的动作指令的类型与参考字符串的对应关系,确定所述当前动作指令的类型所对应的参考字符串;
获取所述第一接收数据中预设字段的字符串;
将所述第一接收数据中预设字段的字符串与所述参考字符串进行比对,确定所述第一接收数据中预设字段的字符串是否与所述参考字符串一致;
若一致,确定所述第一接收数据与所述当前动作指令匹配;
若不一致,确定所述第一接收数据与所述当前动作指令不匹配。
2.根据权利要求1所述的模组通信的指令处理方法,其特征在于,所述执行所述当前动作指令中的所述正确处理函数,包括:
当所述当前动作指令中的正确处理函数用于触发下一条待执行的动作指令时,获取所述下一条待执行的动作指令作为当前动作指令,执行所述当前动作指令。
3.根据权利要求1所述的模组通信的指令处理方法,其特征在于,所述方法还包括:
在所述第一接收数据与所述动作指令不匹配的情况下,执行所述当前动作指令中的错误处理函数。
4.根据权利要求3所述的模组通信的指令处理方法,其特征在于,所述执行所述当前动作指令中的所述错误处理函数,包括:
当所述错误处理函数用于指示重发时,在所述当前动作指令的重发剩余次数不为零的情况下,按照所述错误处理函数定义的重发机制,向模组重新发送所述发送信息;
在所述重发剩余次数为零时,停止执行所述错误处理函数。
5.根据权利要求3所述的模组通信的指令处理方法,其特征在于,所述执行所述当前动作指令中的所述错误处理函数,包括:
当所述错误处理函数用于指示触发目标动作指令时,将所述目标动作指令作为当前动作指令,并执行所述当前动作指令。
6.根据权利要求4所述的模组通信的指令处理方法,其特征在于,所述动作指令中还包括:超时处理函数、超时时间信息、负载信息、执行重发的最大次数;其中:
所述超时处理函数为当所述动作指令单次执行超时时,需要执行的处理函数;
所述负载信息为在发送所述发送信息之后需要被发送的信息;
所述超时时间信息用于指示所述动作指令的单次执行超时的时间。
7.一种模组通信的指令处理装置,其特征在于,所述装置存储有预设的动作指令表,所述预设的动作指令表包括预先定义的多个动作指令,一个动作指令中包括与所述一个动作指令对应的正确处理函数和错误处理函数,所述正确处理函数为当成功接收到所述动作指令的正确回复时,需要执行的处理函数,所述错误处理函数为当接收到所述动作指令的错误回复时,需要执行的处理函数;
所述装置包括:
指令执行模块,用于获取当前动作指令,所述当前动作指令是指所述动作指令表中的当前要执行的一个动作指令;
传输模块,用于向模组发送所述当前动作指令指定的发送信息;
所述传输模块还用于,获取来自所述模组的第一接收数据;
所述指令执行模块还用于:
当预设的通用处理函数表中不存在与所述第一接收数据匹配的通用处理函数时,判断所述第一接收数据是否与当前动作指令匹配,若匹配,执行所述当前动作指令中的正确处理函数;
所述判断所述第一接收数据是否与当前动作指令匹配,包括:
获取所述当前动作指令的类型;
根据预设的动作指令的类型与参考字符串的对应关系,确定所述当前动作指令的类型所对应的参考字符串;
获取所述第一接收数据中预设字段的字符串;
将所述第一接收数据中预设字段的字符串与所述参考字符串进行比对,确定所述第一接收数据中预设字段的字符串是否与所述参考字符串一致;
若一致,确定所述第一接收数据与所述当前动作指令匹配;
若不一致,确定所述第一接收数据与所述当前动作指令不匹配。
8.一种微控制器,其特征在于,包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述微控制器执行如权利要求1至6中任一项所述的模组通信的指令处理方法的步骤。
9.一种计算机可读存储介质,其特征在于,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至6中任一项所述的模组通信的指令处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110297615.5A CN113127227B (zh) | 2021-03-19 | 2021-03-19 | 模组通信的指令处理方法、装置、微控制器和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110297615.5A CN113127227B (zh) | 2021-03-19 | 2021-03-19 | 模组通信的指令处理方法、装置、微控制器和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113127227A CN113127227A (zh) | 2021-07-16 |
CN113127227B true CN113127227B (zh) | 2023-03-21 |
Family
ID=76773616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110297615.5A Active CN113127227B (zh) | 2021-03-19 | 2021-03-19 | 模组通信的指令处理方法、装置、微控制器和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113127227B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114158001B (zh) * | 2021-10-27 | 2023-08-25 | 上海金智晟东电力科技有限公司 | 一种基于智能物联网设备软件算法的无线自适应通信方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013134543A (ja) * | 2011-12-26 | 2013-07-08 | Mizuho Corporate Bank Ltd | 情報処理装置、情報処理方法及び情報処理プログラム |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6629142B1 (en) * | 1999-09-24 | 2003-09-30 | Sun Microsystems, Inc. | Mechanism for optimizing processing of client requests |
US7502916B2 (en) * | 2005-12-02 | 2009-03-10 | Infineon Technologies Flash Gmbh & Co. Kg | Processing arrangement, memory card device and method for operating and manufacturing a processing arrangement |
US20070174679A1 (en) * | 2006-01-26 | 2007-07-26 | Ibm Corporation | Method and apparatus for processing error information and injecting errors in a processor system |
US10769092B2 (en) * | 2018-12-20 | 2020-09-08 | Dell Products, L.P. | Apparatus and method for reducing latency of input/output transactions in an information handling system using no-response commands |
-
2021
- 2021-03-19 CN CN202110297615.5A patent/CN113127227B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013134543A (ja) * | 2011-12-26 | 2013-07-08 | Mizuho Corporate Bank Ltd | 情報処理装置、情報処理方法及び情報処理プログラム |
Also Published As
Publication number | Publication date |
---|---|
CN113127227A (zh) | 2021-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8443096B2 (en) | Accessory identification for mobile computing devices | |
US4809217A (en) | Remote I/O port for transfer of I/O data in a programmable controller | |
US7865351B2 (en) | Device and method for automatically launching applications residing on USB flash drives | |
CN107926075B (zh) | 支持异构环境下的数据通信的系统和方法 | |
CN107357595B (zh) | 一种基于总线的多驱动器固件在线更新系统 | |
US10338911B2 (en) | Method and device for downloading software version, and storage medium | |
US10908894B2 (en) | Method for upgrading firmware of adapter, mobile terminal, and adapter thereof | |
CN113127227B (zh) | 模组通信的指令处理方法、装置、微控制器和介质 | |
CN103580942A (zh) | 一种模拟串口测试方法和装置 | |
CN109408090B (zh) | 设备软件的升级方法、数据转化器及可读存储介质 | |
CN111857748A (zh) | 一种多通道芯片烧录方法、系统 | |
CN110990044A (zh) | 在应用编程方法、计算机可读取的存储介质 | |
CN105045671A (zh) | 一种智能终端的系统升级方法及装置 | |
CN107332589B (zh) | 一种基于蓝牙的固件升级装置 | |
CN112817883A (zh) | 接口平台的适配方法、设备、系统及计算机可读存储介质 | |
JPH11143730A (ja) | コンピュータシステム装置の試験方法 | |
CN109445806B (zh) | 基于Ble的多设备升级方法、装置、系统及终端 | |
CN109445698B (zh) | 查询多片flash状态的方法、装置及计算机可读存储介质 | |
CN110908733A (zh) | 工作模式确定方法及装置、控制方法及装置 | |
US20030154288A1 (en) | Server-client system and data transfer method used in the same system | |
JP2005202518A (ja) | アダプタ | |
CN113760577B (zh) | 一种动态连接答题装置及处理方法、控制装置、存储介质 | |
KR101261022B1 (ko) | 데이터 처리 장치 및 이의 프로그램 데이터 셋팅 방법 | |
CN115185553A (zh) | 更新用户的设备固件的方法及其相关设备 | |
CN112748943A (zh) | 一种非智能交互电子白板的升级方法及升级系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |