CN104699518B - 一种基于微内核插件的万用抄表机适配器及其实现方法 - Google Patents

一种基于微内核插件的万用抄表机适配器及其实现方法 Download PDF

Info

Publication number
CN104699518B
CN104699518B CN201510120407.2A CN201510120407A CN104699518B CN 104699518 B CN104699518 B CN 104699518B CN 201510120407 A CN201510120407 A CN 201510120407A CN 104699518 B CN104699518 B CN 104699518B
Authority
CN
China
Prior art keywords
interface
meter reader
layer
micro
kernel
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
Application number
CN201510120407.2A
Other languages
English (en)
Other versions
CN104699518A (zh
Inventor
李锐
尹书伟
郇长武
聂斌
刘刚
徐煜
张建杰
梁熠超
王霞
刘玉军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
YANTAI HAIYI SOFTWARE CO Ltd
Original Assignee
YANTAI HAIYI SOFTWARE CO Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by YANTAI HAIYI SOFTWARE CO Ltd filed Critical YANTAI HAIYI SOFTWARE CO Ltd
Priority to CN201510120407.2A priority Critical patent/CN104699518B/zh
Publication of CN104699518A publication Critical patent/CN104699518A/zh
Application granted granted Critical
Publication of CN104699518B publication Critical patent/CN104699518B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明涉及仪表领域,具体为一种基于微内核插件的万用抄表机适配器及其实现方法。一种基于微内核插件的万用抄表机适配器,根据不同种类抄表机提供的驱动程序进行标准化适配器接口封装,通过三层标准化接口对外提供统一的抄表机调用接口,供应用层调用;本发明还提出一种基于微内核插件的万用抄表机适配器实现方法,步骤一、从不同种类抄表机的专有接口中抽象出微内核中的标准适配器接口;步骤二、对抽象出的标准适配器接口提供对外的标准接口;步骤三、基于对外的标准接口,为应用层调用提供语义一致的调用接口。本发明为抄表机驱动开发提供标准化的语法一致的接口,解决抄表机跨浏览器调用问题,新增抄表机类型无需修改已有程序。

Description

一种基于微内核插件的万用抄表机适配器及其实现方法
技术领域
本发明涉及仪表领域,具体为一种基于微内核插件的万用抄表机适配器及其实现方法。
背景技术
目前,在我国电力、燃气等行业,普遍使用抄表机设备,但是不同厂商提供的抄表机和抄表系统也各不相同。比如,各抄表机厂商拥有不同型号的抄表机、每个型号对应的驱动程序以及调用接口通常也各不相同,这样就造成在使用抄表机时,需要根据不同的抄表机接口调用不同的语法,并且也存在语义上的差别。在读取抄表机数据时,传统的做法一般是要做一定的封装,试图提供一个一致的标准接口。然而,由于语法、语义均有较大差异,调用时,不同厂商传输的参数也不相同,封装难度较大。传统的封装往往局限于单一的一点,顾此失彼,总是需要针对不同的厂商做特殊处理,简单的业务逻辑混杂了太多的判断语句,调用者并没有获得针对不同厂商的完全一致的接口。如果加上跨浏览器要求,那么情况会变得更加复杂。这种不彻底的封装,不仅使封装本身变得混乱,调用者的代码也混乱不堪,增加新的厂商,所有的代码均需要改动。因此,急需提出一种解决该问题的可行技术,来解决传统的单一的、扁平的封装所存在的封装不彻底的问题。
发明内容
本发明的目的在于提供一种基于微内核插件的万用抄表机适配器,用以解决现有抄表机中无统一标准接口、不能满足跨浏览器需求、封装不彻底等技术问题。
为达到上述目的,本发明采用如下技术方案实现的:
一种基于微内核插件的万用抄表机适配器,其特殊之处在于:微内核的程序应用是基于插件来实现即插即用的,根据各个厂商的不同种类抄表机提供的驱动程序进行标准化适配器接口封装,设置三层标准化接口对外提供统一的抄表机调用接口,供应用层调用;
所述微内核包括第一层、第二层,所述第一层用于从各个厂商的不同种类抄表机的专有接口中抽象出微内核中的标准适配器接口,第二层用于对微内核中的标准适配器接口提供对外的标准接口;
第三层为高级应用接口,是基于微内核提供的对外标准接口而设定的调用接口,用来进一步屏蔽各厂商抄表机语义和缓冲参数的差异,为应用层调用提供语义一致的调用接口。
进一步地,所述第一层还用于对抄表机厂商提供的驱动程序进行封装形成动态链接库。
再进一步地,所述第二层还用于对动态链接库采用Activex封装实现各抄表机接口在IE浏览器下的调用支持或采用QtBrowerPlugin封装实现各抄表机接口非IE浏览器下的调用支持。
更进一步地,所述高级应用接口层,用于采用javascript技术屏蔽各厂商抄表机语义和缓冲参数的差异。
本发明还提供一种基于微内核插件的万用抄表机适配器的实现方法,在所述实现方法中微内核的程序应用是基于插件来实现即插即用的,根据各个厂商的不同种类抄表机提供的驱动程序进行标准化适配器接口封装,设置三层标准化接口对外提供统一的抄表机调用接口,供应用层调用,所述三层标准化接口的实现步骤如下;在微内核分两层进行接口封装,
步骤一、在第一层内从各个厂商的不同种类抄表机的专有接口中抽象出微内核中的标准适配器接口;
步骤二、在第二层内对第一层抽象出的标准适配器接口提供对外的标准接口;
步骤三、在第三层,即高级应用接口,基于第二层提供的对外标准接口,进一步屏蔽各厂商抄表机语义和缓冲参数的差异,为应用层调用提供语义一致的调用接口。
进一步地,步骤一中,在所述第一层内对抄表机厂商提供的驱动程序进行封装形成动态链接库。
再进一步地,步骤二中,在所述第二层对动态链接库采用Activex封装实现各抄表机接口在IE浏览器下的调用支持或采用QtBrowerPlugin封装实现各抄表机接口非IE浏览器下的调用支持。
更进一步地,在步骤三中,所述高级应用接口层采用javascript技术屏蔽各厂商抄表机接口调用的语义和缓冲参数的差异,为应用层业务调用提供语义一致的调用接口。
本发明提供的基于微内核插件的万用抄表机适配器及其实现方法解决了如下技术问题:
1、为抄表机驱动开发提供标准化的语法一致的接口;
2、为抄表机应用软件提供针对不同抄表机厂商的统一的、标准的、语法和语义完全一致的调用方式;
3、解决抄表机跨浏览器调用问题;
4、新增抄表机类型无需修改已有程序。
附图说明
图1为本发明的基于微内核插件的万用抄表机适配器系统图;
图2为本发明的基于微内核插件的万用抄表机适配器封装流程图;
图3为本发明的基于微内核插件的万用抄表机适配器内部调用的流程图。
具体实施方式
以下结合图1至图3,对本发明的技术方案做进一步的说明。
本发明是基于组件技术实现即插即用的微内核抄表机适配器,提供标准化的接口和调用方式。提供了三层的标准接口设计,第一层和第二层解决了语法不一致问题,第三层解决了语义和具体输入参数不一致问题。第一层和第二层属于微内核,核心思想是从各个厂商的不同种类抄表机的专有接口中抽象出一个微内核中的标准的适配器接口,该接口跟设备紧密相关,仅仅提供设备最基本的原始操作,可针对不同的设备编写接口一致的适配器,这是第一层。第二层提供微内核驱动适配器对外提供一个对外的标准接口,该接口可以采用不同的技术,如ActiveX或QtBrowserPlugin等技术,第二层提供了跨浏览器的扩展能力。在编写业务时,对不同厂商的抄表机需要在计算机上配置不同的目录作为数据的缓冲区,不同抄表机厂商的抄表机接口语义存在细微差别,且一项具体功能需要多次调用抄表机接口的原始方法组合实现,因此,编写业务时,如果直接利用内核层的接口编写,仍然会陷入针对不同抄表设备区别对待的泥潭。为了解决这个问题,本发明提供了基于内核层标准接口的第三层高级应用接口,组合原始方法,屏蔽了语义和缓冲参数的不同,为业务层提供了一个真正意义上的一致的简洁的接口。
实施例1:
图1、图2详细地说明了本发明的基于微内核插件的万用抄表机适配器内部示意图,微内核的程序应用是基于插件来实现即插即用的,根据各个厂商的不同种类抄表机提供的驱动程序进行标准化适配器接口封装,设置三层标准化接口对外提供统一的抄表机调用接口,供应用层调用,具体如下:
所述微内核包括第一层、第二层,所述第一层用于从各个厂商的不同种类抄表机的专有接口中抽象出微内核中的标准适配器接口,第二层用于对微内核中的标准适配器接口提供对外的标准接口;
第三层为高级应用接口,是基于微内核提供的对外标准接口而设定的调用接口,用来进一步屏蔽各厂商抄表机语义和缓冲参数的差异,为应用层调用提供语义一致的调用接口。
第一层和第二层解决了语法不一致问题,第一层用于对抄表机厂商提供的驱动程序进行封装形成动态链接库,接口定制的原则为,将各种抄表机通用的操作抽取出来,参数返回值统一约定,比如上传文件或者下载文件可以分别作为一个接口函数,参数为文件名,返回值为调用抄表机的错误代码。第一层的实现方式为:从各个厂商的不同种类抄表机的专有接口中抽象出一个内核中的标准的适配器接口(类HCD_Driver),该接口跟设备紧密相关,提供设备最基本的原始操作:抄表机发送文件(方法send File To PC),向抄表机发送文件(方法send File To HC),向抄表机发送程序(方法send Program To HC),向抄表机发送系统时间(方法send Date Time To HC)等。
第二层提供微内核驱动适配器对外提供一个对外的标准接口(类CMeterReaderCtrl),该接口采用了两种技术实现:ActiveX和QtBrowserPlugin,这一层提供了跨浏览器的扩展能力。
类CMeterReaderCtrl的定义如下,
class ATL_NO_VTABLE CMeterReaderCtrl :
public CComObjectRootEx<CComSingleThreadModel>,
public IDispatchImpl<IMeterReaderCtrl, &IID_IMeterReaderCtrl, &LIBID_NWMeterReaderLib, /*wMajor =*/ 1, /*wMinor =*/ 0>,
public IOleControlImpl<CMeterReaderCtrl>,
public IOleObjectImpl<CMeterReaderCtrl>,
public IOleInPlaceActiveObjectImpl<CMeterReaderCtrl>,
public IViewObjectExImpl<CMeterReaderCtrl>,
public IOleInPlaceObjectWindowlessImpl<CMeterReaderCtrl>,
public ISupportErrorInfo,
public IQuickActivateImpl<CMeterReaderCtrl>,
#ifndef _WIN32_WCE
public IDataObjectImpl<CMeterReaderCtrl>,
#endif
public IProvideClassInfo2Impl<&CLSID_MeterReaderCtrl, NULL, &LIBID_NWMeterReaderLib>,
public IObjectSafetyImpl<CMeterReaderCtrl, INTERFACESAFE_FOR_UNTRUSTED_CALLER>,
public CComCoClass<CMeterReaderCtrl, &CLSID_MeterReaderCtrl>,
public CComControl<CMeterReaderCtrl>
{}
在编写业务时,对不同厂商的抄表机需要在计算机上配置不同的目录作为数据的缓冲区,不同抄表机厂商的抄表机接口语义存在细微差别,且一项具体功能需要多次调用抄表机接口的原始方法组合实现,因此,编写业务时,如果直接利用内核层接口编写,仍然会陷入针对不同抄表设备区别对待的泥潭。
为了解决这个问题,提供了基于内核层标准接口的第三层高级应用接口。第二层类CMeterReaderCtrl与第三层定义的接口名称为MeterReaderCtrl,这个接口在第三层使用javascript语言进一步封装,为各家抄表机调用:
<html>
<head>
<OBJECT ID="MeterReaderCtrl" CLASSID="CLSID:1A553B3D-C423-42A2-98F9-14262A33C7CE"></OBJECT>
<script>
为各种抄表机调用组合第二层实现的原始方法,屏蔽了语义和缓冲参数的不同,为业务层提供了一致的简洁的接口。
本发明是通过在三个不同层次的技术当中分别封装,最终才达到了简单、一致、快速、互不干扰的对外提供标准接口的目的。
实施例2:
图2、图3给出了本发明具体实现方法,在本实施例中微内核的程序应用是基于插件来实现即插即用的,根据各个厂商的不同种类抄表机提供的驱动程序进行标准化适配器接口封装,设置三层标准化接口对外提供统一的抄表机调用接口,供应用层调用,所述三层标准化接口的实现步骤如下;在微内核分两层进行接口封装,
步骤一、在第一层内从各个厂商的不同种类抄表机的专有接口中抽象出微内核中的标准适配器接口;第一层用于对抄表机厂商提供的驱动程序进行封装形成动态链接库,接口定制的原则为,将各种抄表机通用的操作抽取出来,参数返回值统一约定,比如上传文件或者下载文件可以分别作为一个接口函数,参数为文件名,返回值为调用抄表机的错误代码。对特定抄表机厂商提供的驱动程序(动态链接库dll形式)进行标准化适配器接口封装。封装代码以类的形式,继承统一接口类HCD_Driver,实现抄表机发送文件(方法sendFileToPC),向抄表机发送文件(方法sendFileToHC),向抄表机发送程序(方法sendProgramToHC)等功能,然后编译成适配器动态链接库,对上层提供类HCD_Driver定义的统一方法。
步骤二、在第二层内对第一层抽象出的标准适配器接口提供对外的标准接口;采用微软的ActiveX技术,对步骤一提供的抄表机适配器动态链接库进行进一步封装(sendFileToPC、sendFileToHC、sendProgramToHC等方法)与管理,实现抄表机接口在IE浏览器下采用javascript的调用支持。定义类CMeterReaderCtrl,该类对步骤一提供的抄表机适配器提供的每个方法进一步封装,为上层调用,并提供了对抄表机适配器的加载方法useDriver和释放方法unuseDriver等进行管理。
步骤三、在第三层,即高级应用接口,基于第二层提供的对外标准接口,进一步屏蔽各厂商抄表机语义和缓冲参数的差异,为应用层调用提供语义一致的调用接口。
利用javascript技术为应用程序提供统一的抄表机调用接口,这层的封装也采用了和步骤一类似的适配器实现方法,提供统一调用OBJECT,名称为MeterReaderCtrl,将步骤二封装的接口提供的各种方法进行第三次封装为各种functinon:sendFileToPC、sendFileToHC、sendDataAndProgramToHC等。比如抄表机在传送文件时一般会有对钟的操作但不同的抄表机在这方面的处理不一样,有的抄表机直接将操作实现为单独的接口而有的抄表机会在传送文件的接口中内置对钟的操作,因此有必要在这个层面对这种操作进行统一。
本发明提供的适配器在内部调用时也可采用以下步骤:
其中步骤一中对微内核层第一层的封装以及步骤三与实施例2相同不予赘述。
在微内核层第二层对内核中的标准的适配器接口提供对外的标准接口的方式有所改变,采用Qt的跨浏览器框架QtBrowerPlugin技术对第一步封装的适配器动态库进行处理,实现各抄表机接口在非IE浏览器下的调用支持,封装的时候需要额外考虑各种型号的抄表机适配器dll的加载和释放;
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

Claims (6)

1.一种基于微内核插件的万用抄表机适配器,其特征在于:微内核的程序应用是基于插件来实现即插即用的,根据各个厂商的不同种类抄表机提供的驱动程序进行标准化适配器接口封装,设置三层标准化接口对外提供统一的抄表机调用接口,供应用层调用;
所述微内核包括第一层、第二层,
所述第一层用于从各个厂商的不同种类抄表机的专有接口中抽象出微内核中的标准适配器接口,第二层用于对微内核中的标准适配器接口提供对外的标准接口;
所述第二层用于对动态链接库采用Activex封装实现各抄表机接口在IE浏览器下的调用支持或采用QtBrowerPlugin封装实现各抄表机接口非IE浏览器下的调用支持;
第三层为高级应用接口,是基于微内核提供的对外标准接口而设定的调用接口,用来进一步屏蔽各厂商抄表机语义和缓冲参数的差异,为应用层调用提供语义一致的调用接口。
2.如权利要求1所述的一种基于微内核插件的万用抄表机适配器,其特征在于:所述第一层用于对抄表机厂商提供的驱动程序进行封装形成动态链接库。
3.如权利要求1-2任一项所述的一种基于微内核插件的万用抄表机适配器,其特征在于:所述高级应用接口,用于采用javascript技术屏蔽各厂商抄表机语义和缓冲参数的差异。
4.一种基于微内核插件的万用抄表机适配器的实现方法,在所述实现方法中微内核的程序应用是基于插件来实现即插即用的,根据各个厂商的不同种类抄表机提供的驱动程序进行标准化适配器接口封装,设置三层标准化接口对外提供统一的抄表机调用接口,供应用层调用,所述三层标准化接口的实现步骤如下;在微内核分两层进行接口封装,
步骤一、在第一层内从各个厂商的不同种类抄表机的专有接口中抽象出微内核中的标准适配器接口;
步骤二、在第二层内对第一层抽象出的标准适配器接口提供对外的标准接口;在所述第二层对动态链接库采用Activex封装实现各抄表机接口在IE浏览器下的调用支持或采用QtBrowerPlugin封装实现各抄表机接口非IE浏览器下的调用支持;
步骤三、在第三层,即高级应用接口,基于第二层提供的对外标准接口,进一步屏蔽各厂商抄表机语义和缓冲参数的差异,为应用层调用提供语义一致的调用接口。
5.如权利要求4所述的一种基于微内核插件的万用抄表机适配器的实现方法,其特征在于:步骤一中,在所述第一层内对抄表机厂商提供的驱动程序进行封装形成动态链接库。
6.如权利要求4-5任一项所述的一种基于微内核插件的万用抄表机适配器的实现方法,其特征在于:在步骤三中,所述高级应用接口层采用javascript技术屏蔽各厂商抄表机接口调用的语义和缓冲参数的差异,为应用层业务调用提供语义一致的调用接口。
CN201510120407.2A 2015-03-19 2015-03-19 一种基于微内核插件的万用抄表机适配器及其实现方法 Active CN104699518B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510120407.2A CN104699518B (zh) 2015-03-19 2015-03-19 一种基于微内核插件的万用抄表机适配器及其实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510120407.2A CN104699518B (zh) 2015-03-19 2015-03-19 一种基于微内核插件的万用抄表机适配器及其实现方法

Publications (2)

Publication Number Publication Date
CN104699518A CN104699518A (zh) 2015-06-10
CN104699518B true CN104699518B (zh) 2018-04-06

Family

ID=53346684

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510120407.2A Active CN104699518B (zh) 2015-03-19 2015-03-19 一种基于微内核插件的万用抄表机适配器及其实现方法

Country Status (1)

Country Link
CN (1) CN104699518B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105045616B (zh) * 2015-07-03 2018-02-23 浪潮软件集团有限公司 一种调用驱动的方法及装置
CN106817247A (zh) * 2016-12-17 2017-06-09 福建瑞之付微电子有限公司 一种适应于多种通讯链路的统一的数据通讯软件框架
CN111541743B (zh) * 2020-04-08 2021-04-20 北京智能工场科技有限公司 一种多api集成整合的方法
CN113220349B (zh) * 2021-03-22 2022-09-02 重庆邮电大学 一种基于语义本体模型的仪表异构外设的适配方法
CN113157335B (zh) * 2021-03-31 2023-06-06 北京临近空间飞行器系统工程研究所 一种可扩展插件化体系架构的软件系统设计方法
CN113268275B (zh) * 2021-07-19 2021-09-28 成都菁蓉联创科技有限公司 一种基于微内核的硬件设备驱动系统及其驱动方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7738612B2 (en) * 2006-11-13 2010-06-15 Main.Net Communications Ltd. Systems and methods for implementing advanced power line services
CN101895669A (zh) * 2010-07-20 2010-11-24 深圳市茁壮网络股份有限公司 一种通用数字电视中间件适配层系统
CN101901539A (zh) * 2010-07-01 2010-12-01 深圳市科陆电子科技股份有限公司 一种基于配置文件定制抄表内容的电能表抄读方法
CN102663295A (zh) * 2012-03-30 2012-09-12 东华大学 一种e-drm通用适配器系统
CN104333808A (zh) * 2014-11-14 2015-02-04 复旦大学 用于Android及Linux智能电视机上的通用播放器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7738612B2 (en) * 2006-11-13 2010-06-15 Main.Net Communications Ltd. Systems and methods for implementing advanced power line services
CN101901539A (zh) * 2010-07-01 2010-12-01 深圳市科陆电子科技股份有限公司 一种基于配置文件定制抄表内容的电能表抄读方法
CN101895669A (zh) * 2010-07-20 2010-11-24 深圳市茁壮网络股份有限公司 一种通用数字电视中间件适配层系统
CN102663295A (zh) * 2012-03-30 2012-09-12 东华大学 一种e-drm通用适配器系统
CN104333808A (zh) * 2014-11-14 2015-02-04 复旦大学 用于Android及Linux智能电视机上的通用播放器

Also Published As

Publication number Publication date
CN104699518A (zh) 2015-06-10

Similar Documents

Publication Publication Date Title
CN104699518B (zh) 一种基于微内核插件的万用抄表机适配器及其实现方法
US8943452B2 (en) Hierarchical power map for low power design
CN102542002B (zh) 一种卫星遥测数据处理系统以及其实现方法
Edwards Languages for Digital Embedded Systems
CN100593156C (zh) 用于二次开发平台的基于控件的插件管理系统及方法
CN103092594B (zh) 模型转换方法及装置
CN107807878A (zh) 基于关键字的自动化测试引擎
US8977531B1 (en) Apparatus and methods for importing hardware design and generating circuit interfaces
US20080244541A1 (en) Code translator and method of automatically translating modeling language code to hardware language code
CN102810057A (zh) 一种记录日志的方法
CN102495735A (zh) web 端UI组件应用框架系统
TW521210B (en) Modular computer system and related method
CN102902839A (zh) 管理集成电路设计的装置和方法
Emilio Embedded systems design for high-speed data acquisition and control
CN102043622A (zh) 一种电子控制器基础软件通用配置器
US8176468B2 (en) Multivariable transfer functions
CN102012954A (zh) 用于系统芯片集成设计的子系统集成方法及其子系统集成系统
US20230353626A1 (en) System and Method to Standardize and Improve Implementation Efficiency of User Interface Content
White et al. Tincr—A custom CAD tool framework for Vivado
Linehan et al. An aspect-oriented, model-driven approach to functional hardware verification
CN104063209A (zh) 一种面向区域医疗的异构信息系统集成方法和装置
CN115935872A (zh) 一种可扩展的fpga仿真验证自动化方法
CN110795067A (zh) 一种需求原型可复用方法
US9383972B2 (en) Methods and arrangements for processing and presentation of information
CN108227573B (zh) 一种基于opc-ua实现运动控制器轴信息配置的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information

Inventor after: Li Rui

Inventor after: Liu Yujun

Inventor after: Yin Shuwei

Inventor after: Huan Changwu

Inventor after: Nie Bin

Inventor after: Liu Gang

Inventor after: Xu Yu

Inventor after: Zhang Jianjie

Inventor after: Liang Yichao

Inventor after: Wang Xia

Inventor before: Yin Shuwei

Inventor before: Nie Bin

Inventor before: Li Rui

Inventor before: Liu Gang

Inventor before: Xu Yu

Inventor before: Liang Yichao

Inventor before: Wang Xia

Inventor before: Liu Yujun

CB03 Change of inventor or designer information
CB02 Change of applicant information

Address after: 264006 Zhujianglu Road 32 (III-5 District), Yantai Development Zone, Shandong Province

Applicant after: Yantai Haiyi Software Co., Ltd.

Address before: 264000 Airport Road, Zhifu, Shandong, No. 2, No.

Applicant before: Yantai Haiyi Software Co., Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant