CN105573728A - 基于android系统的充电器探测及上报方法 - Google Patents
基于android系统的充电器探测及上报方法 Download PDFInfo
- Publication number
- CN105573728A CN105573728A CN201410538904.XA CN201410538904A CN105573728A CN 105573728 A CN105573728 A CN 105573728A CN 201410538904 A CN201410538904 A CN 201410538904A CN 105573728 A CN105573728 A CN 105573728A
- Authority
- CN
- China
- Prior art keywords
- kernel
- charger
- android
- android system
- mode
- 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.)
- Granted
Links
Landscapes
- Charge And Discharge Circuits For Batteries Or The Like (AREA)
Abstract
本发明公开了基于android系统的充电器探测及上报方法,属于充电器探测领域,包括以下步骤:在系统引导程序bootloader中获取充电器状态信息;把探测到的充电器状态信息传递给内核kernel;内核kernel启动后加载android系统;在android系统启动过程中通过读取内核kernel的启动参数,获取充电器相关状态信息,并且将状态信息作为系统属性值保存起来;通过对系统属性值的判断确定进入正常工作模式还是充电模式。该方法解决了android系统关机后外接电源情况下正常进入充电模式的问题,实现简单,可靠性高,对系统影响小,即能充分利用android系统现有资源又增加了系统稳定性。<!-- 2 -->
Description
技术领域
本发明涉及充电器探测技术领域,具体涉及基于android系统的充电器探测及上报方法。
背景技术
Android系统作为一款功能强大的移动式操作系统得到了国内外广大厂商和用户的青睐,其应用范围不断扩大,市场占有率持续提高。在android系统开发过程中,经常会碰到系统关机后,通过miniusb口外接充电器无法正常进入充电模式显示充电界面的问题,尤其是在一些行业用嵌入式处理器平台上移植android4.0以下版本系统时,这个问题尤为突出。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于android系统的充电器探测及上报方法,解决android系统关机后外接电源情况下不能正常进入充电模式的问题。
依据本发明的一个方面,提供了基于android系统的充电器探测及上报方法,包括嵌入式处理器和充电芯片,外部电源通过所述充电芯片同电池建立充电关系,所述android系统包括系统引导程序bootloader、内核kernel和android文件系统,包括以下步骤:
在所述系统引导程序bootloader中获取充电器状态信息;
把探测到的充电器状态信息传递给所述内核kernel;
所述内核kernel启动后加载所述android系统;
在所述android系统启动过程中通过读取所述内核kernel的启动参数,获取所述充电器相关状态信息,并且将所述状态信息作为系统属性值保存起来;
通过对所述系统属性值的判断确定进入正常工作模式还是充电模式。
进一步地,所述android文件系统包括uramdisk.img和android_root.img。
进一步地,所述android系统的启动顺序依次为所述系统引导程序bootloader、所述内核kernel和所述android文件系统。
进一步地,所述把探测到的充电器状态信息传递给所述内核kernel步骤中,是以bootargs启动参数的形式传递给所述内核kernel的。
更进一步地,所述充电芯片的VINSENSE和CHRG两个管脚分别跟所述嵌入式处理器的GPIO1和GPIO2连接在一起。
更进一步地,在所述系统引导程序bootloader中获取充电器状态信息步骤中,具体包括:
在所述系统引导程序bootloader中初始化所述GPIO1和GPIO2,并将其设置为输入状态;
读取所述GPIO1和GPIO2的电平值;
如果GPIO1为高电平,外部充电器插入;
如果同时GPIO2为低电平,外部充电器正在给电池充电,设置环境变量androidboot.mode=charger;反之,设置所述环境变量参数为空。
更进一步地,所述把探测到的充电器状态信息传递给所述内核kernel步骤,具体包括:借助所述系统引导程序bootloader中的bootargs向内核传递参数,将androidboot.mode的信息传递给所述内核kernel的cmdline作为内核参数。
更进一步地,在所述android系统启动过程中通过读取所述内核kernel的启动参数,获取所述充电器相关状态信息,并且将所述状态信息作为系统属性值保存起来的步骤中,具体包括:
Uramdis.img挂载后在所述android系统的第一个进程init执行过程中读取所述内核kernel的启动参数并进行解析;
将androidboot.mode=charger的信息解析后保存到bootmode变量中。
更进一步地,所述通过对所述系统属性值的判断确定进入正常工作模式还是充电模式步骤,具体包括:
如果bootmode的值为charger,则所述android系统进入充电模式并显示充电界面;
反之,所述android系统进入正常启动模式。
本发明充分利用android系统拥有的强大功能和自身具有的丰富系统资源,解决了android系统关机后外接电源情况下不能正常进入充电模式的问题,简单易于实现,性能可靠,成本低,性价比高。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。说明书附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。显而易见地,下面描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明实施例一的基于android系统的充电器探测及上报方法整体框架图;
图2示出了根据本发明实施例二的基于android系统的充电器探测及上报方法流程图;
图3示出了根据本发明实施例三的基于android系统的充电器探测及上报方法流程图。
图4示出了根据本发明实施例四的基于android系统的充电器探测及上报装置示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
需要说明的是,在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可以理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名词的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”或“包括”为一开放式用语,故应解释成“包含但不限定于”。说明书及权利要求中提及的“GPIO1”和“GPIO2”中的“1”和“2”只是为了说明的便利,实质上可以是嵌入式处理器中的任意通用GPIO接口,并没有什么不同,也可以用“第一GPIO”“第二GPIO”来称呼。说明书后续描述为实施本发明的较佳实施方式,然所述描述乃以说明书的一般原则为目的,并非用以限定本发明的范围。本发明的保护范围当视所附权利要求所界定者为准。
为了解决上述android系统关机后外接电源情况下不能正常进入充电模式的问题,本发明提出了基于android系统的充电器探测及上报方法。
为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个附图并不构成对本发明实施例的限定。
实施例一、基于android系统的充电器探测及上报方法的整体框架。
下面结合图1对本实施例一的方法进行详细说明。
图1为本发明实施例一的基于android系统的充电器探测及上报方法整体框架图,如图1所示,本发明实施例一个完整的android系统通常包括系统引导程序bootloader、内核kernel和android文件系统三个部分,其中所述android文件系统包括uramdisk.Img和android_root.img,启动顺序依次为:
步骤S101、所述系统引导程序bootloader;
步骤S102、所述内核kernel;
步骤S103、所述android文件系统中的uramdisk.img;
步骤S104、所述android文件系统中的android_root.img。
实施例二、基于android系统的充电器探测及上报方法。
下面结合图2对本实施例的方法进行详细说明。
图2为本发明实施例二的基于android系统的充电器探测及上报方法的流程示意图,如图2所示,本实施例的方法包括:嵌入式处理器和充电芯片,外部电源通过所述充电芯片同电池建立充电关系,所述android系统包括系统引导程序bootloader、内核kernel和android文件系统。具体的,所述android文件系统包括uramdisk.img和android_root.img。所述android系统的启动顺序依次为所述系统引导程序bootloader、所述内核kernel和所述android文件系统。所述充电芯片的VINSENSE和CHRG两个管脚分别跟所述嵌入式处理器的GPIO1和GPIO2连接在一起。
在嵌入式操作系统中,bootloader是在操作系统内核运行之前运行的,可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像BIOS(BasicInputOutputSystem,基本输入输出系统)那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由bootloader来完成。
本实施例的方法包括以下步骤:
步骤S201、在所述系统引导程序bootloader中获取充电器状态信息。
具体的,在所述系统引导程序bootloader中初始化所述GPIO1和GPIO2,并将其设置为输入状态;
读取所述GPIO1和GPIO2的电平值;
如果GPIO1为高电平,外部充电器插入;
如果同时GPIO2为低电平,外部充电器正在给电池充电,设置环境变量androidboot.mode=charger;反之,设置所述环境变量参数为空。
步骤S202、把探测到的充电器状态信息传递给所述内核kernel。
具体的,上述步骤S202中是以bootargs启动参数的形式传递给所述内核kernel的。
具体的,借助所述系统引导程序bootloader中的bootargs向内核传递参数,将androidboot.mode的信息传递给所述内核kernel的cmdline作为内核参数。
下面举一个具体的bootloader中代码的例子,通过探测充电芯片充电管脚状态,如果管脚为高电平,则充电器插入正在充电,设置bootargs,添加androidboot.mode参数,否则参数为空。
charger_gpio_init();val=charger_mode_detect();
if(val)
setenv("bootargs","androidboot.mode=charger");
else
setenv("bootargs","");
步骤S203、所述内核kernel启动后加载所述android系统。
步骤S204、在所述android系统启动过程中通过读取所述内核kernel的启动参数,获取所述充电器相关状态信息,并且将所述状态信息作为系统属性值保存起来。
具体的,所述uramdis.img挂载后在所述android系统的第一个进程init执行过程中读取所述内核kernel的启动参数并进行解析;
将androidboot.mode=charger的信息解析后保存到bootmode变量中。
步骤S205、通过对所述系统属性值的判断确定进入正常工作模式还是充电模式。
具体的,如果bootmode的值为charger,则所述android系统进入充电模式并显示充电界面;
反之,所述android系统进入正常启动模式。
本实施例充分挖掘系统引导程序bootloader和内核kernel的潜能,充分利用android系统拥有的强大功能和自身具有的丰富系统资源,以简单、可靠、易于实现的方式,解决android系统关机后外接电源情况下能正常进入充电模式的问题。
实施例三、基于android系统的充电器探测及上报方法。
步骤S301、uboot启动。
步骤S302、bootloader中初始化GPIO1和GPIO2,并将其设置为输入状态。
步骤S303、读取所述GPIO1和GPIO2的电平值。
步骤S304、判断所述GPIO1是否为高电平;如果为高电平则进入下一步;反之跳转到步骤S308。
步骤S305、判断出外部充电器插入所述android系统。
步骤S306、判断所述GPIO1为高电平同时所述GPIO2为低电平;如果是,则进入下一步;反之,跳转到步骤S308。
步骤S307、外部充电器正在给电池充电,此时设置环境变量androidboot.mode=charger。
步骤S308、说明外部充电器没有插入所述android系统,此时设置环境变量androidboot.mode=null。
步骤S309、将androidboot.mode信息传递给所述内核kernel的cmdline作为内核参数。
步骤S310、所述内核kernel启动后加载所述android文件系统,uramdisk.img挂载。
步骤S311、所述系统第一个进程init执行过程中,读取所述内核kernel的启动参数,并进行解析。
步骤S312、将androidboot.mode=charger的信息解析后保持到bootmode变量中。
步骤S313、判断所述bootmode变量是否等于charger;如果是,则跳转到步骤S315;反之进入下一步。
步骤S314、进入充电模式并显示充电界面。
步骤S315、进入正常启动模式。
步骤S316、启动android_root.img。
具体的,在本实施例中,一个完整的android系统通常包括系统引导程序bootloader、内核kernel和android文件系统三个部分,启动顺序依次为bootloader->kernel->android文件系统,其中android文件系统包括uramdisk.img和android_root.img。在系统引导程序bootloader中获取充电器状态信息,然后把探测到的充电器状态信息以bootars启动参数的形式传递给kernel,
具体代码如下:
charger_gpio_init();val=charger_mode_detect();
if(val)
setenv("bootargs","androidboot.mode=charger");
else
setenv("bootargs","");
kernel启动后加载android系统,在android系统启动过程中通过读取kernel的启动参数,获取充电器相关状态信息,并将该信息作为系统属性值保存起来,完成充电器信息向android系统的上报工作,android系统启动过程中通过对该属性值的判断确定是进入正常工作模式还是进入充电模式。如图2所示,在bootloader中初始化GPIO1和GPIO2并将其设置为输入状态,然后读取GPIO1和GPIO2的电平值,如果GPIO1为高电平,外部充电器插入,同时GPIO2为低电平,外部充电器正在给电池充电,此时设置环境变量ndroidboot.mode=charger,借助bootloader中的bootargs能向内核传递参数这条渠道,将androidboot.mode的信息传递给内核kernel的cmdline做为内核参数,内核kernel启动后加载android文件系统,uramdisk.img挂载(在windows操作系统中,挂载通常是指给磁盘分区(包括被虚拟出来的磁盘分区)分配一个盘符。第三方软件,如磁盘分区管理软件、虚拟磁盘软件等,通常也附带挂载功能。在linux操作系统中,挂载是指将一个设备(通常是存储设备)挂接到一个已存在的目录上。要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上,然后通过访问这个目录来访问存储设备)后在系统第一个进程init执行过程中读取kernel的启动参数并进行解析,将androidboot.Mode=charger的信息解析后保存到bootmode变量中,如果bootmode的值为charger,android系统进入充电模式并显示充电界面,否则android系统进入正常启动模式。
本实施例通过对充电芯片的充电器探测管脚和充电状态管脚工作状态的检测来获取充电相关信息,包括充电器的插入、拔出,以及是否正在充电,解决了android系统关机后外接电源情况下能正常进入充电模式的问题。充分挖掘系统引导程序bootloader和内核kernel的潜能,利用android系统拥有的强大功能和自身具有的丰富系统资源,该方法实现简单,可靠性高,对系统影响小,即能充分利用android系统现有资源又增加了系统稳定性。
实施例四、基于android系统的充电器探测及上报装置。
如图4所示,本实施例硬件上以处理器401和充电芯片402为核心,外部电源403通过充电芯片402同电池404建立起充电关系,所述充电芯片402的VINSENSE和CHRG两个管脚分别跟所述处理器401的GPIO1和GPIO2连接在一起。
具体的,本实施例的处理器选用了freescale的imx515处理器,充电芯片选用了LTC4001EUF。选择该款处理器是项目的需要,选择该款充电芯片主要是它的充电电流能达到2A,满足实际项目需要。但实际上,选择一般嵌入式处理器都可以实现本发明的目的,充电芯片也是可以替代的,一般充电芯片都有充电器和充电状态这两个管脚。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1.基于android系统的充电器探测及上报方法,包括嵌入式处理器和充电芯片,外部电源通过所述充电芯片同电池建立充电关系,其中所述android系统包括系统引导程序bootloader、内核kernel和android文件系统,其特征在于,包括以下步骤:
在所述系统引导程序bootloader中获取充电器状态信息;
把探测到的充电器状态信息传递给所述内核kernel;
所述内核kernel启动后加载所述android系统;
在所述android系统启动过程中通过读取所述内核kernel的启动参数,获取所述充电器相关状态信息,并且将所述状态信息作为系统属性值保存起来;
通过对所述系统属性值的判断确定进入正常工作模式还是充电模式。
2.根据权利要求1所述的充电器探测及上报方法,其特征在于:所述android文件系统包括uramdisk.img和android_root.img。
3.根据权利要求1或2所述的充电器探测及上报方法,其特征在于:所述android系统的启动顺序依次为所述系统引导程序bootloader、所述内核kernel和所述android文件系统。
4.根据权利要求1至3任一所述的充电器探测及上报方法,其特征在于:所述把探测到的充电器状态信息传递给所述内核kernel步骤中,是以bootargs启动参数的形式传递给所述内核kernel的。
5.根据权利要求1至4任一所述的充电器探测及上报方法,其特征在于:所述充电芯片的VINSENSE和CHRG两个管脚分别跟所述嵌入式处理器的GPIO1和GPIO2连接在一起。
6.根据权利要求5所述的充电器探测及上报方法,其特征在于:在所述系统引导程序bootloader中获取充电器状态信息步骤中,具体包括:
在所述系统引导程序bootloader中初始化所述GPIO1和GPIO2,并将其设置为输入状态;
读取所述GPIO1和GPIO2的电平值;
如果GPIO1为高电平,外部充电器插入;
如果同时GPIO2为低电平,外部充电器正在给电池充电,设置环境变量androidboot.mode=charger;反之,设置所述环境变量参数为空。
7.根据权利要求6所述的充电器探测及上报方法,其特征在于:所述把探测到的充电器状态信息传递给所述内核kernel步骤,具体包括:借助所述系统引导程序bootloader中的bootargs向内核传递参数,将androidboot.mode的信息传递给所述内核kernel的cmdline作为内核参数。
8.根据权利要求6或7所述的充电器探测及上报方法,其特征在于:在所述android系统启动过程中通过读取所述内核kernel的启动参数,获取所述充电器相关状态信息,并且将所述状态信息作为系统属性值保存起来的步骤中,具体包括:
Uramdis.img挂载后在所述android系统的第一个进程init执行过程中读取所述内核kernel的启动参数并进行解析;
将androidboot.mode=charger的信息解析后保存到bootmode变量中。
9.根据权利要求8所述的充电器探测及上报方法,其特征在于:所述通过对所述系统属性值的判断确定进入正常工作模式还是充电模式步骤,具体包括:
如果bootmode的值为charger,则所述android系统进入充电模式并显示充电界面;
反之,所述android系统进入正常启动模式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410538904.XA CN105573728B (zh) | 2014-10-13 | 2014-10-13 | 基于android系统的充电器探测及上报方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410538904.XA CN105573728B (zh) | 2014-10-13 | 2014-10-13 | 基于android系统的充电器探测及上报方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105573728A true CN105573728A (zh) | 2016-05-11 |
CN105573728B CN105573728B (zh) | 2019-04-23 |
Family
ID=55883907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410538904.XA Active CN105573728B (zh) | 2014-10-13 | 2014-10-13 | 基于android系统的充电器探测及上报方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105573728B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111708688A (zh) * | 2020-06-19 | 2020-09-25 | 广东小天才科技有限公司 | 一种协助分析关机充电异常的方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101431241A (zh) * | 2007-11-06 | 2009-05-13 | 希姆通信息技术(上海)有限公司 | 双核手机关机状态下充电及充电导致开机处理方法及装置 |
CN103136015A (zh) * | 2011-12-05 | 2013-06-05 | 深圳长城开发科技股份有限公司 | 控制Uboot进入下载操作模式的方法及系统 |
CN103853584A (zh) * | 2014-01-17 | 2014-06-11 | 深圳市同洲电子股份有限公司 | 一种主系统恢复方法及终端 |
-
2014
- 2014-10-13 CN CN201410538904.XA patent/CN105573728B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101431241A (zh) * | 2007-11-06 | 2009-05-13 | 希姆通信息技术(上海)有限公司 | 双核手机关机状态下充电及充电导致开机处理方法及装置 |
CN103136015A (zh) * | 2011-12-05 | 2013-06-05 | 深圳长城开发科技股份有限公司 | 控制Uboot进入下载操作模式的方法及系统 |
CN103853584A (zh) * | 2014-01-17 | 2014-06-11 | 深圳市同洲电子股份有限公司 | 一种主系统恢复方法及终端 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111708688A (zh) * | 2020-06-19 | 2020-09-25 | 广东小天才科技有限公司 | 一种协助分析关机充电异常的方法和装置 |
CN111708688B (zh) * | 2020-06-19 | 2023-05-23 | 广东小天才科技有限公司 | 一种协助分析关机充电异常的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105573728B (zh) | 2019-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9304788B2 (en) | Electronic device, configurable component and configuration information storage method thereof | |
CN103853586B (zh) | 一种在uefi层实现无线网卡驱动的方法 | |
CN103491248B (zh) | 一种低电量开机的方法及用户设备 | |
US20080040596A1 (en) | Embedded system and boot code auto-copy method thereof | |
US20060190933A1 (en) | Method and apparatus for quickly developing an embedded operating system through utilizing an automated building framework | |
CN102362241A (zh) | 用于多功能设备枚举的系统和方法 | |
CN104281479A (zh) | 一种固件升级方法及装置 | |
CN104951328A (zh) | 嵌入式设备及其启动方法 | |
CN110413230A (zh) | 一种嵌入式系统构建方法及存储介质 | |
CN103593281A (zh) | 测试系统及测试方法 | |
CN112631625B (zh) | 嵌入式设备的系统升级方法、装置及嵌入式设备 | |
US20060265581A1 (en) | Method for switching booting devices of a computer | |
CN103577201A (zh) | 嵌入式双系统的更新方法及系统 | |
CN102646046A (zh) | 一种升级方法和终端 | |
CN102073514A (zh) | 基本输入输出系统的更新方法 | |
CN104714885A (zh) | 栈溢出位置的检测方法及装置 | |
CN103514014A (zh) | 一种嵌入式终端设备引导系统的设计方法 | |
CN109426527B (zh) | 在uefi固件及作业系统间分享蓝牙数据的电脑系统及其方法 | |
CN109800032A (zh) | Bootrom多核加载方法及装置 | |
CN104156234A (zh) | 启动多核处理器、bootloader大小端模式自适应的方法及装置 | |
CN102122258A (zh) | 嵌入式设备文件系统受损的修复方法 | |
CN102446101A (zh) | 固件强制升级的系统及其固件的强制升级方法 | |
CN103455750B (zh) | 一种嵌入式设备的高安验证方法及装置 | |
CN105573728A (zh) | 基于android系统的充电器探测及上报方法 | |
CN108829442B (zh) | 程序启动方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |