CN107015827B - 嵌入式***及其自动运行第三方扩展程序的方法 - Google Patents
嵌入式***及其自动运行第三方扩展程序的方法 Download PDFInfo
- Publication number
- CN107015827B CN107015827B CN201710166331.6A CN201710166331A CN107015827B CN 107015827 B CN107015827 B CN 107015827B CN 201710166331 A CN201710166331 A CN 201710166331A CN 107015827 B CN107015827 B CN 107015827B
- Authority
- CN
- China
- Prior art keywords
- program
- storage area
- script
- script program
- party extension
- 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
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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种嵌入式***及其自动运行第三方扩展程序的方法,包括为第三方扩展程序的脚本程序和根据所述脚本程序自动启动的源程序在读写存储区分配存储区域,在***的启动配置文件中,将所述存储区域挂载到所述读写存储区,在***的启动配置文件中,判断所述存储区域是否存在所述脚本程序,若是,运行所述脚本程序,若否,从所述第三方扩展程序的云端服务器中下载所述脚本程序;在启动配置文件中,将为第三方扩展程序分配的存储区域挂载在读写存储区,并判断该存储区域是否存在该第三方扩展程序的脚本程序,根据判断的结果运行该脚本程序,进而启动对应的第三方扩展程序,实现第三方扩展程序的自动加载和运行。
Description
技术领域
本发明涉及应用程序的运行领域,特别是涉及一种嵌入式***及其自动运行第三方扩展程序的方法。
背景技术
随着科技的发展,客户对电子产品的需求也越来越多,越来越独特,在某些嵌入式电子产品中,除了要满足客户的基本需求外,还需要在产品中运行第三方的扩展程序以实现更多功能,但是,目前的嵌入式电子产品一般不具备这个功能。
发明内容
基于此,有必要提供一种嵌入式***及其自动运行第三方扩展程序的方法,可以实现第三方扩展程序在嵌入式***中的自动加载和运行。
一方面,本发明提出一种嵌入式***自动运行第三方扩展程序的方法,包括:
为第三方扩展程序的脚本程序和根据所述脚本程序自动启动的源程序在读写存储区分配存储区域;
在***的启动配置文件中,将所述存储区域挂载到所述读写存储区;
在***的启动配置文件中,判断所述存储区域是否存在所述脚本程序,若是,运行所述脚本程序,若否,从所述第三方扩展程序的云端服务器中下载所述脚本程序。
上述自动运行第三方扩展程序的方法,包括为第三方扩展程序的脚本程序和根据所述脚本程序自动启动的源程序在读写存储区分配存储区域,在***的启动配置文件中,将所述存储区域挂载到所述读写存储区,在***的启动配置文件中,判断所述存储区域是否存在所述脚本程序,若是,运行所述脚本程序,若否,从所述第三方扩展程序的云端服务器中下载所述脚本程序;在启动配置文件中,将为第三方扩展程序分配的存储区域挂载在读写存储区,并判断该存储区域是否存在该第三方扩展程序的脚本程序,根据判断的结果运行该脚本程序,进而启动对应的第三方扩展程序,实现第三方扩展程序的自动加载和运行。
在其中一个实施例中,所述从所述第三方扩展程序的云端服务器中下载所述脚本程序的步骤之前,还包括:
定时检测所述***所在的设备是否连接网络。
在其中一个实施例中,所述在***的启动配置文件中,将所述存储区域挂载到所述读写存储区的步骤之前还包括:
建立所述***所在的设备与所述云端服务器之间的数据通信连接。
在其中一个实施例中,所述从所述第三方扩展程序的云端服务器中下载所述脚本程序的步骤之后还包括:
对所述脚本程序进行校验,若校验通过,所述脚本程序正确;若校验未通过,返回定时检测所述***所在的设备是否连接网络的步骤。
在其中一个实施例中,所述若校验通过,所述脚本程序正确的步骤之后还包括:
停止定时检测所述***所在的设备是否连接网络,并运行所述脚本程序。
在其中一个实施例中,所述运行所述脚本程序的步骤之后,还包括:
根据所述脚本程序启动所述第三方扩展程序的源程序。
另一方面,本发明提出一种自动运行第三方扩展程序的嵌入式***,包括:
存储区域分配模块,用于为第三方扩展程序的脚本程序和根据所述脚本程序自动启动的源程序在读写存储区分配存储区域;
存储区域挂载模块,用于在***的启动配置文件中,将所述存储区域挂载到所述读写存储区;
脚本程序判断模块,用于在***的启动配置文件中,判断所述存储区域是否存在所述脚本程序,若是,运行所述脚本程序,若否,从所述第三方扩展程序的云端服务器中下载所述脚本程序。
在其中一个实施例中,还包括:
监测模块,用于定时检测所述***所在的设备是否连接网络。
在其中一个实施例中,还包括:
通讯连接建立模块,用于建立所述***所在的设备与所述云端服务器之间的数据通信连接。
在其中一个实施例中,还包括:
校验模块,用于对所述脚本程序进行校验,若校验通过,所述脚本程序正确;若校验未通过,返回定时检测所述***所在的设备是否连接网络的步骤;
定时结束模块,用于在所述校验模块对所述脚本程序的校验通过时,停止定时检测所述***所在的设备是否连接网络,并运行所述脚本程序;
程序启动模块,用于根据所述脚本程序启动所述第三方扩展程序的源程序。
附图说明
图1为一实施例中嵌入式***自动运行第三方扩展程序的方法的方法流程图;
图2为另一实施例中嵌入式***自动运行第三方扩展程序的方法的方法流程图;
图3为一实施例中自动运行第三方扩展程序的嵌入式***的***方框图;
图4为另一实施例中自动运行第三方扩展程序的嵌入式***的***方框图。
具体实施方式
参见图1,图1为一实施例中嵌入式***自动运行第三方扩展程序的方法的方法流程图。
在本实施例中,该嵌入式***自动运行第三方扩展程序的方法包括:
S101,为第三方扩展程序的脚本程序和根据所述脚本程序自动启动的源程序在读写存储区分配存储区域。
在嵌入式设备的开发阶段,在读写存储区,如闪存中划分一个数据存储区,用于存放第三方扩展程序的脚本程序和根据所述脚本程序自动启动的源程序。如在闪存的第四块mtdblock4中划出一个分区作为该数据存储区,该分区的大小为512KB,不限于512KB。
闪存为是一种长寿命的非易失性(在断电情况下仍能保持所存储的数据信息)的存储器,电子可擦除。存储在闪存中的第三方扩展程序可以长久保存,同时也可以删除。
S102,在***的启动配置文件中,将所述存储区域挂载到所述读写存储区。
该***为Linux(嵌入式)操作***,该操作***中设置有启动配置文件etc/init.d/rcS。在设备启动时,会自动运行该启动配置文件,该启动配置文件中设置有若干条指令,设备启动后将自动顺序执行这些指令,将设备运行起来。
在设备的开发阶段,在***的启动配置文件etc/init.d/rcS目录下,通过挂载指令将上述用于存放脚本程序和源程序的存储区域挂载到闪存的分区上,该指令可以为mount-t jffs2/dev/mtdblock4/data。在设备启动时,通过该挂载指令可以访问该存储区域。
该设备采用的***不限于Linux(嵌入式)操作***。
S103,在***的启动配置文件中,判断所述存储区域是否存在所述脚本程序,若是,进入步骤S104,若否,进入步骤S105。
在设备的开发阶段,在***的启动配置文件中,设置相应的指令判断用于存放脚本程序和源程序的存储区域是否存在该脚本程序。
S104,运行所述脚本程序。
S105,从所述第三方扩展程序的云端服务器中下载所述脚本程序。
设备启动后,启动配置文件自动运行,顺序执行文件内的指令,通过上述挂载指令访问用于存放脚本程序和源程序的存储区域,判断该存储区域是否存在该脚本程序,若存在,运行该脚本程序,进而启动对应的第三方扩展程序的源程序;若不存在,从第三方扩展程序的云端服务器中下载该脚本程序。
当设备首次启动时,自动从云端服务器中将需要下载的第三方扩展程序,包括脚本程序和源程序下载下来,其中需要下载的第三方扩展程序的名称在设备的开发阶段通过指令的形式存储在设备中,该名称和第三方扩展程序在云端服务器中的名称一致。如设备中的脚本程序的名称和云端服务器中的脚本程序的名称均命名为bootstrap.sh,在设备启动后,通过一致的名称从云端服务器中找到对应的脚本程序并下载,下载后存储在上述存储区域。
当设备再次启动时,启动配置文件自动运行,检测到上述存储区域已经存在需要下载的第三方扩展程序的脚本程序,直接运行该脚本程序并启动对应的源程序,不需要再次下载,节省了启动时间,加快了启动速度。
该设备包括所有需要运行第三方扩展程序的嵌入式电子产品,如路由器、智能工控设备、POS/ATM机等。
上述嵌入式***自动运行第三方扩展程序的方法,在启动配置文件中,将为第三方扩展程序分配的存储区域挂载在读写存储区,并判断该存储区域是否存在该第三方扩展程序的脚本程序,根据判断的结果运行该脚本程序,进而启动对应的第三方扩展程序,实现第三方扩展程序的自动加载和运行,当设备再次启动时,第三方扩展程序的相关文件已经下载在了上述存储区域中,无需再次下载,节省了启动时间,加快了启动速度。
参见图2,图2为另一实施例中嵌入式***自动运行第三方扩展程序的方法的方法流程图。
在本实施例中,该嵌入式***自动运行第三方扩展程序的方法包括:
S201,为第三方扩展程序的脚本程序和根据所述脚本程序自动启动的源程序在读写存储区分配存储区域。
S202,建立***所在的设备与所述云端服务器之间的数据通信连接。
在设备的开发阶段,该设备为读写存储区所在的设备,同时也为承载***的设备,通过开源代码实现Wget命令及产品的CMD接口。Wget是一个从网络上自动下载文件的自由工具,用于远程下载,CMD接口用于与产品进行数据交互。通过该设置可以实现设备与云端服务器之间的数据通信连接。
S203,在***的启启动配置文件中,将所述存储区域挂载到所述读写存储区。
S204,在***的启动配置文件中,判断所述存储区域是否存在所述脚本程序,若是,进入步骤S205,若否,进入步骤S207。
S205,运行所述脚本程序。
S206,根据所述脚本程序启动所述第三方扩展程序的源程序。
S207,定时检测所述***所在的设备是否连接网络,若是,进入步骤S208,若否,回到步骤S207。
S208,从所述第三方扩展程序的云端服务器中下载所述脚本程序。
若检测到存储区域不存在需要下载的第三方扩展程序的脚本程序,启动监测程序,首先检测设备是否连接网络,若否,启动定时器进行定时检测,当检测到网络正常连接之后,设备与第三方扩展程序的云端服务器可以进行数据通信,从该云端服务器中下载对应的脚本程序。
S209,对所述脚本程序进行校验,若校验通过,进入步骤S210,若校验未通过,回到步骤S207。
下载第三方扩展程序的脚本程序之后对其进行CRC(Cyclic Redundancy Check,循环冗余校验),验证该脚本程序是否正确,若正确,表明下载成功,运行该脚本程序并启动对应的源程序,第三方扩展程序开始运行;若不正确,重新回到上述监测过程,并在网络正常连接时,重新下载该脚本程序。
S210,停止定时检测所述***所在的设备是否连接网络,并回到步骤S205。
脚本程序下载成功之后,停止上述监测过程,运行该脚本程序,启动所述第三方扩展程序的源程序。
当第三方扩展程序更新升级时,只需要通过设备与其云端服务器之间的数据通信连接获取其更新通知,重新从其云端服务器中下载新的脚本程序和对应的源程序,触发更新升级的行为由第三方扩展程序来决策,无需设备自带的***进行干预,如果第三放扩展程序出现异常,也不会对***中的宿主程序造成影响。
上述嵌入式***自动运行第三方扩展程序的方法,建立设备和第三方扩展程序的云端服务器之间的数据通信连接,当设备首次启动时,***的启动配置文件自动运行,在该文件中判断用于存储第三方扩展程序的脚本程序和源程序的存储区域是否存在该脚本程序,若不存在,定时检测设备是否连接网络,若是,从该云端服务器中下载该脚本程序并运行,进而启动对应的源程序,第三方扩展程序开始运行;当设备再次启动时,存储区域已经存在该脚本程序,直接运行并启动对应的源程序,第三方扩展程序开始运行,无需再次下载,节省了启动时间,加快了启动速度。
参见图3,图3为一实施例中自动运行第三方扩展程序的嵌入式***的***方框图。
在本实施例中,该自动运行第三方扩展程序的嵌入式***包括:
存储区域分配模块10,用于为第三方扩展程序的脚本程序和根据所述脚本程序自动启动的源程序在读写存储区分配存储区域。
存储区域挂载模块11,用于在***的启动配置文件中,将所述存储区域挂载到所述读写存储区。
脚本程序判断模块12,用于在***的启动配置文件中,判断所述存储区域是否存在所述脚本程序,若是,运行所述脚本程序,若否,从所述第三方扩展程序的云端服务器中下载所述脚本程序。
参见图4,在其中一个实施例中,该自动运行第三方扩展程序的嵌入式***还包括:
监测模块13,用于定时检测所述***所在的设备是否连接网络。
在其中一个实施例中,该***还包括:
通讯连接建立模块14,用于建立所述***所在的设备与所述云端服务器之间的数据通信连接。
在其中一个实施例中,该***还包括:
校验模块15,用于对所述脚本程序进行校验,若校验通过,所述脚本程序正确;若校验未通过,返回从所述第三方扩展程序的云端服务器中下载所述脚本程序的步骤。
在其中一个实施例中,该***还包括:
定时结束模块16,用于在所述校验模块15对所述脚本程序的校验通过时,停止定时检测所述***所在的设备是否连接网络,并运行所述脚本程序。
程序启动模块17,用于根据所述脚本程序启动所述第三方扩展程序的源程序。
上述自动运行第三方扩展程序的嵌入式***,建立设备和第三方扩展程序的云端服务器之间的数据通信连接,当设备首次启动时,***的启动配置文件自动运行,在该文件中判断用于存储第三方扩展程序的脚本程序和源程序的存储区域是否存在该脚本程序,若不存在,定时检测设备是否连接网络,若是,从该云端服务器中下载该脚本程序并运行,进而启动对应的源程序,第三方扩展程序开始运行;当设备再次启动时,存储区域已经存在该脚本程序,直接运行并启动对应的源程序,第三方扩展程序开始运行,无需再次下载,节省了启动时间,加快了启动速度。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种嵌入式***自动运行第三方扩展程序的方法,其特征在于,包括:
为第三方扩展程序的脚本程序和根据所述脚本程序自动启动的源程序在读写存储区分配存储区域;
在***的启动配置文件中,将所述存储区域挂载到所述读写存储区;
在***的启动配置文件中,判断所述存储区域是否存在所述脚本程序,若是,运行所述脚本程序,若否,从所述第三方扩展程序的云端服务器中下载所述脚本程序;
其中,需要下载的第三方扩展程序包括脚本程序和源程序,需要下载的第三方扩展程序的名称在设备的开发阶段通过指令的形式存储在设备中,该名称和第三方扩展程序在云端服务器中的名称一致。
2.根据权利要求1所述的方法,其特征在于,所述从所述第三方扩展程序的云端服务器中下载所述脚本程序的步骤之前,还包括:
定时检测所述***所在的设备是否连接网络。
3.根据权利要求1所述的方法,其特征在于,所述在***的启动配置文件中,将所述存储区域挂载到所述读写存储区的步骤之前还包括:
建立所述***所在的设备与所述云端服务器之间的数据通信连接。
4.根据权利要求2所述的方法,其特征在于,所述从所述第三方扩展程序的云端服务器中下载所述脚本程序的步骤之后还包括:
对所述脚本程序进行校验,若校验通过,所述脚本程序正确;若校验未通过,返回定时检测所述***所在的设备是否连接网络的步骤。
5.根据权利要求4所述的方法,其特征在于,所述若校验通过,所述脚本程序正确的步骤之后还包括:
停止定时检测所述***所在的设备是否连接网络,并运行所述脚本程序。
6.根据权利要求1所述的方法,其特征在于,所述运行所述脚本程序的步骤之后,还包括:
根据所述脚本程序启动所述第三方扩展程序的源程序。
7.一种自动运行第三方扩展程序的嵌入式***,其特征在于,包括:
存储区域分配模块,用于为第三方扩展程序的脚本程序和根据所述脚本程序自动启动的源程序在读写存储区分配存储区域;
存储区域挂载模块,用于在***的启动配置文件中,将所述存储区域挂载到所述读写存储区;
脚本程序判断模块,用于在***的启动配置文件中,判断所述存储区域是否存在所述脚本程序,若是,运行所述脚本程序,若否,从所述第三方扩展程序的云端服务器中下载所述脚本程序;
其中,需要下载的第三方扩展程序包括脚本程序和源程序,需要下载的第三方扩展程序的名称在设备的开发阶段通过指令的形式存储在设备中,该名称和第三方扩展程序在云端服务器中的名称一致。
8.根据权利要求7所述的嵌入式***,其特征在于,还包括:
监测模块,用于定时检测所述***所在的设备是否连接网络。
9.根据权利要求7所述的嵌入式***,其特征在于,还包括:
通讯连接建立模块,用于建立所述***所在的设备与所述云端服务器之间的数据通信连接。
10.根据权利要求8所述的嵌入式***,其特征在于,还包括:
校验模块,用于对所述脚本程序进行校验,若校验通过,所述脚本程序正确;若校验未通过,返回定时检测所述***所在的设备是否连接网络的步骤;
定时结束模块,用于在所述校验模块对所述脚本程序的校验通过时,停止定时检测所述***所在的设备是否连接网络,并运行所述脚本程序;
程序启动模块,用于根据所述脚本程序启动所述第三方扩展程序的源程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710166331.6A CN107015827B (zh) | 2017-03-20 | 2017-03-20 | 嵌入式***及其自动运行第三方扩展程序的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710166331.6A CN107015827B (zh) | 2017-03-20 | 2017-03-20 | 嵌入式***及其自动运行第三方扩展程序的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107015827A CN107015827A (zh) | 2017-08-04 |
CN107015827B true CN107015827B (zh) | 2020-06-16 |
Family
ID=59440044
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710166331.6A Active CN107015827B (zh) | 2017-03-20 | 2017-03-20 | 嵌入式***及其自动运行第三方扩展程序的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107015827B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109634687A (zh) * | 2018-12-19 | 2019-04-16 | 恒为科技(上海)股份有限公司 | 一种嵌入式Linux***中应用软件的启动方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101122783A (zh) * | 2007-09-20 | 2008-02-13 | 成都方程式电子有限公司 | 单片机存储*** |
CN103020010A (zh) * | 2012-12-21 | 2013-04-03 | 中颖电子股份有限公司 | 嵌入式***存储架构 |
CN203164710U (zh) * | 2013-03-12 | 2013-08-28 | 北汽银翔汽车有限公司 | 一种汽车用扩展功能套件 |
CN104239015A (zh) * | 2013-06-18 | 2014-12-24 | 上海斐讯数据通信技术有限公司 | 脚本语言的扩展方法 |
CN104461594A (zh) * | 2013-09-22 | 2015-03-25 | 杭州海康威视数字技术股份有限公司 | 嵌入式操作***的升级方法及装置 |
-
2017
- 2017-03-20 CN CN201710166331.6A patent/CN107015827B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101122783A (zh) * | 2007-09-20 | 2008-02-13 | 成都方程式电子有限公司 | 单片机存储*** |
CN103020010A (zh) * | 2012-12-21 | 2013-04-03 | 中颖电子股份有限公司 | 嵌入式***存储架构 |
CN203164710U (zh) * | 2013-03-12 | 2013-08-28 | 北汽银翔汽车有限公司 | 一种汽车用扩展功能套件 |
CN104239015A (zh) * | 2013-06-18 | 2014-12-24 | 上海斐讯数据通信技术有限公司 | 脚本语言的扩展方法 |
CN104461594A (zh) * | 2013-09-22 | 2015-03-25 | 杭州海康威视数字技术股份有限公司 | 嵌入式操作***的升级方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107015827A (zh) | 2017-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106250192B (zh) | 上位机的软件升级方法及*** | |
CN110045991B (zh) | 服务器的raid配置方法、装置、计算机设备和存储介质 | |
CN106325929B (zh) | 一种固件升级方法、固件升级装置、冰箱和服务端 | |
CN101004691A (zh) | 一种固件程序升级的方法与装置 | |
CN105094927A (zh) | 一种设备固件升级方法和装置 | |
CN104834547A (zh) | 一种Squashfs只读根文件***的远程升级方法及*** | |
CN106020861A (zh) | 一种智能手表的fota升级方法及*** | |
CN112612524A (zh) | Linux***启动的方法、装置、设备及存储介质 | |
CN101807152B (zh) | 自我验证选择只读存储器的基本输出入***及其验证方法 | |
CN112416406A (zh) | 终端设备升级方法、装置、终端设备和介质 | |
CN106843192B (zh) | 控制器的***启动方法及装置 | |
CN106843947B (zh) | 代码缺陷的处理方法和装置 | |
CN106775674B (zh) | 一种基于通用引导加载程序的设备及其启动方法 | |
CN110908681A (zh) | 一种软件升级的方法和装置 | |
CN108897646B (zh) | 一种bios芯片的切换方法及基板管理控制器 | |
CN111371610A (zh) | 一种网卡固件批量刷新方法、***、终端及存储介质 | |
CN110597545A (zh) | 一种基于ota组件的热补丁智能升级方法及*** | |
CN115756561A (zh) | 软件升级方法、装置、计算机设备以及存储介质 | |
CN115237647A (zh) | 固件异常修复方法、装置、电子设备及计算机存储介质 | |
CN107015827B (zh) | 嵌入式***及其自动运行第三方扩展程序的方法 | |
CN105183580A (zh) | 一种引导程序的存储方法、故障恢复方法及设备 | |
CN106528155B (zh) | 一种验钞控制器的固件启动的***、方法及装置 | |
CN112214413A (zh) | 一种应用程序的测试方法、装置、设备及存储介质 | |
CN108595292B (zh) | 一种***的优化方法、移动终端及计算机存储介质 | |
CN115437674A (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 |