CN1963794B - 一种实现设备驱动的系统及方法 - Google Patents
一种实现设备驱动的系统及方法 Download PDFInfo
- Publication number
- CN1963794B CN1963794B CN2006101672463A CN200610167246A CN1963794B CN 1963794 B CN1963794 B CN 1963794B CN 2006101672463 A CN2006101672463 A CN 2006101672463A CN 200610167246 A CN200610167246 A CN 200610167246A CN 1963794 B CN1963794 B CN 1963794B
- Authority
- CN
- China
- Prior art keywords
- module
- drive module
- version
- interface
- submodule
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000000605 extraction Methods 0.000 claims abstract description 14
- 239000000284 extract Substances 0.000 claims description 22
- 238000012217 deletion Methods 0.000 claims description 20
- 230000037430 deletion Effects 0.000 claims description 20
- 230000006870 function Effects 0.000 description 38
- 230000007246 mechanism Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process 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
- 238000005516 engineering process Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种实现设备驱动的系统,包括:接口模块、管理模块和至少一个版本驱动模块,其中,管理模块,用于管理版本驱动模块;提取版本驱动模块;版本驱动模块,用于当被管理模块提取时,通过接口模块提供的统一接口对所属版本设备进行驱动;接口模块,用于为版本驱动模块提供统一的接口。此外,本发明还公开了一种实现设备驱动的方法。能够提高可维护性,并降低代码耦合性。
Description
技术领域
本发明涉及设备的驱动技术,尤其涉及一种实现设备驱动的系统及方法。
背景技术
随着技术的发展以及应用的需要,针对一类产品或设备通常有不同版本的驱动模块来驱动不同版本的设备。其中,每个驱动模块包括多个用于控制驱动的控制组件,这些不同版本的控制组件的功能相同或相近,只是各自的接口不同。
当出现新版本的设备时,需要对设备驱动进行升级。现有技术中,由于各版本设备的控制组件接口不同,因此,为了实现对新版本设备的驱动,需要在原设备驱动的基础上添加判断分支,根据该判断分支,找到该版本设备的驱动模块,通过该版本设备的驱动模块中各控制组件接口,实现对新版本设备的驱动。
可见,现有技术中,每出现一个新版本设备,便添加一个判断分支,当不同版本的设备越多时,判断分支也越多,造成结构庞大,不易管理。并且由于不同版本的控制组件的功能相同或相近,因此不同判断分支中控制组件的代码也相同或相近,不同控制组件之间存在很大的代码耦合性,当需要修改某个功能特性时,所有版本驱动模块的控制组件都需要进行修改,可维护性较差,且实现复杂。
发明内容
有鉴于此,本发明一方面提供一种实现设备驱动的系统;另一方面提供一种实现设备驱动的方法。能够提高可维护性,且实现简单。
本发明所提供的实现设备驱动的系统,包括:接口模块、管理模块和至少一个版本驱动模块,其中,
管理模块,用于通过定义工厂类并在所述工厂类中设置对应的函数来实现相应的模块以管理版本驱动模块,以及提取版本驱动模块;
版本驱动模块,用于当被管理模块提取时,基于子类对基类的继承通过接口模块提供的统一接口对所属版本设备进行驱动,若存在已有接口,基于子类对基类和已有接口的继承通过接口模块提供的统一接口采用已有接口对所属版本设备进行驱动;
接口模块,用于通过定义一个提供统一接口的基类为版本驱动模块提供统一的接口。
其中,所述管理模块包括:通过在所述工厂类中设置添加函数得到的添加子模块、通过在所述工厂类中设置创建函数得到的创建子模块、通过在所述工厂类中设置子类池得到的存储子模块和通过在所述工厂类中设置提取函数得到的提取子模块,其中,
添加子模块,用于在存储子模块中添加需要创建的版本驱动模块的编号和创建位置信息;
创建子模块,用于根据从存储子模块中获取的版本驱动模块的编号和创建位置信息,创建版本驱动模块,将创建后的版本驱动模块发送给存储子模块;
存储子模块,用于存储版本驱动模块的编号、创建位置信息以及所创建的版本驱动模块本身;
提取子模块,用于根据版本驱动模块的编号,从存储子模块中提取该版本驱动模块。
较佳地,所述管理模块进一步包括:通过在所述工厂类中设置删除函数得到的删除子模块,用于移除存储子模块中存储的版本驱动模块的编号、创建位置信息以及所创建的版本驱动模块本身。
本发明所提供的实现设备驱动的方法,包括:
通过定义一个提供统一接口的基类,设置可提供统一接口的接口模块;
基于子类对基类的继承,设置采用接口模块提供的统一接口对所属版本设备进行驱动的版本驱动模块,若存在已有接口,基于子类对基类和已有接口的继承,设置通过接口模块提供的统一接口采用已有接口对所属版本设备进行驱动的版本驱动模块;
通过定义工厂类并在所述工厂类中设置提取函数来实现提取子模块,由所述提取子模块提取所设置的版本驱动模块,所提取的版本驱动模块通过所述统一接口对所属版本设备进行驱动。
其中,所述设置版本驱动模块包括:通过定义工厂类并在所述工厂类中设置添加函数及创建函数来实现添加子模块和创建子模块,由所述添加子模块和创建子模块对版本驱动模块进行添加和创建。
较佳地,该方法进一步包括:通过定义工厂类并在所述工厂类中设置删除函数来实现删除子模块,由所述删除子模块对版本驱动模块进行删除。
其中,所述对版本驱动模块进行添加为:通过所述添加子模块添加需要创建的版本驱动模块的编号和创建位置信息;
所述对版本驱动模块进行创建为:根据所添加的版本驱动模块的编号和创建位置信息,通过所述创建子模块创建版本驱动模块,将创建后的版本驱动模块进行存储。
较佳地,该方法进一步包括:通过定义工厂类并在所述工厂类中设置删除函数来实现删除子模块,由所述删除子模块删除所存储的版本驱动模块的编号、创建位置信息以及所创建的版本驱动模块本身。
其中,所述提取版本驱动模块具体为:根据版本驱动模块的编号,由所述提取子模块提取该版本驱动模块。
上述方法中,若存在已有接口,则所述设置采用接口模块提供的统一接口对所属版本设备进行驱动的版本驱动模块为:设置采用接口模块提供的统一接口对所属版本设备进行驱动,以及通过接口模块提供的统一接口采用已有接口对所属版本设备进行驱动的设备驱动模块。
从上述方案可以看出,本发明通过设置统一的接口模块和采用该接口模块对所属版本设备进行驱动的版本驱动模块,使得所有版本驱动模块都使用相同的接口;通过对版本驱动模块进行管理,提取所需的版本驱动模块,由所提取的版本驱动模块通过接口模块提供的统一接口对所属版本设备进行驱动,使得实现设备驱动时,无需通过判断分支进行选择,不仅使结构精简,大大降低了代码的耦合性,而且实现简单,可维护性强。
此外,通过设置统一接口,并对版本驱动模块进行集中管理,从而最大限度的减少了对原有驱动代码的修改,减少了产生错误(如BUG)的几率和回归测试量。
附图说明
图1为本发明实施例中实现设备驱动的系统结构示意图;
图2为图1所示系统中管理模块的内部结构示意图;
图3为本发明实施例中实现设备驱动的方法流程图。
具体实施方式
本发明的基本思想是:设置统一的接口模块和采用该接口模块对所属版本设备进行驱动的版本驱动模块;对版本驱动模块进行集中管理,提取所需的版本驱动模块,由所提取的版本驱动模块通过接口模块提供的统一接口对所属版本设备进行驱动。
具体实现时,可设置管理模块,并将版本驱动模块存储在管理模块中设置的存储子模块中,由管理模块对版本驱动模块进行集中管理,并根据需要提取所需的版本驱动模块。
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明进一步详细说明。
参见图1,图1为本发明实施例中实现设备驱动的系统结构示意图。如图1所示,该系统包括:管理模块、接口模块、至少一个版本驱动模块和对应数量的版本设备,如图中的版本驱动模块1,......,版本驱动模块n,以及版本设备1,......,版本设备n。
其中,管理模块用于管理版本驱动模块,根据需要提取所需的版本驱动模块。
版本驱动模块,用于当被管理模块提取时,通过接口模块提供的统一接口对所属版本设备进行驱动。
接口模块,用于为版本驱动模块提供统一的接口。
具体实现时,可将版本驱动模块存储在管理模块的存储模块中,如图2所示,图2为图1所示系统中管理模块的内部结构示意图。其中,管理模块包括:添加子模块、删除子模块、创建子模块、存储子模块和提取子模块。
其中,添加子模块,用于在存储子模块中添加需要创建的版本驱动模块的编号和创建位置信息。
创建子模块,用于根据从存储子模块中获取的版本驱动模块的编号和创建位置信息,创建版本驱动模块,将创建后的版本驱动模块发送给存储子模块。
存储子模块,用于存储版本驱动模块的编号、创建位置信息以及所创建的版本驱动模块本身。
删除子模块,用于移除存储子模块中存储的版本驱动模块的编号、创建位置信息以及所创建的版本驱动模块本身。
提取子模块,用于根据版本驱动模块的编号,从存储子模块中提取该版本驱动模块。
上述系统中,根据需要,也可以去掉其中的删除子模块。
以上对本发明实施例中实现设备驱动的系统进行了详细描述,下面再对本发明实施例中实现设备驱动的方法进行详细描述。
参见图3,图3为本发明实施例中基于图1所示系统的实现设备驱动的方法流程图。如图3所示,该流程包括如下步骤:
步骤301,设置可提供统一接口的接口模块。
本步骤中,设置为版本驱动模块提供统一接口的接口模块。具体实现时,可利用C++的模板机制,定义一个提供统一接口的基类来实现接口模块的功能。并且基类中可包括实现统一功能的接口函数,该接口函数只提供接口,不实现具体功能。
例如:假设统一的功能接口为读寄存器和写寄存器等,则可设置如下基类:
class CVMInerface{
public:
ReadRegister()=0;
WriterRegister()=0;
};
其中,CVMInerface为基类名称,ReadRegister()=0为读寄存器接口函数;WriterRegister()=0为写寄存器接口函数。上述接口函数只提供了接口,没有具体实现功能。
步骤302,定义采用接口模块提供的统一接口对所属版本设备进行驱动的版本驱动模块。
本步骤中,定义采用统一的接口模块提供的统一接口对所属版本设备进行驱动的版本驱动模块。具体实现时,若利用C++的模板机制,则可通过定义继承步骤301中的基类的子类,来实现采用统一接口模块的版本驱动模块的定义。并且由于基类只提供了接口函数的接口,没有具体实现功能,因此在版本驱动模块,即继承自基类的子类中应该添加具体实现过程,以实现不同版本驱动模块驱动不同版本设备的目的,此外还需要在每个版本驱动模块中添加一个统一的创建函数,以便使用该统一的创建函数接口创建不同的版本驱动模块本身。
例如:基于步骤301中的基类CVMInerface,即接口模块,可设置如下的子类,即版本驱动模块:
class CVM321:public CVMInerface
{
public:
static CVMInerface*Creater();
ReadRegister()
{
};
WriterRegister()
{
};
};
其中,CVM321为子类名称,static CVMInerface*Creater()为创建函数。
步骤303,对版本驱动模块进行集中管理,根据需要提取所需的版本驱动模块,由提取的版本驱动模块通过接口模块提供的统一接口对所属版本设备进行驱动。
本步骤中,集中管理包括对版本驱动模块进行添加、创建等设置操作,进一步地,还可以包括对版本驱动模块进行删除等操作。其中,在步骤302中完成对版本驱动模块的定义之后,由本步骤中对版本驱动模块的添加和创建,完成对采用接口模块提供的统一接口对所属版本设备进行驱动的版本驱动模块的设置。
为了对版本驱动模块进行集中管理,以及根据需要提取所需版本驱动模块,可按照图1所示的系统设置一个管理模块,由管理模块实现对版本驱动模块进行集中管理,以及根据需要提取所需的版本驱动模块。具体实现时,可在管理模块中设置添加子模块、创建子模块、存储子模块和提取子模块。其中,需要注册新加的版本驱动模式时,由添加子模块在存储子模块中添加需要创建的版本驱动模块的编号和创建位置信息;需要创建新加的版本驱动模块时,由创建子模块根据所添加的版本驱动模块的编号和创建位置信息,创建版本驱动模块,将创建后的版本驱动模块存储在存储子模块中;需要提取版本驱动模块时,由提取子模块根据版本驱动模块的编号,从存储子模块中提取该版本驱动模块。
此外,包括删除操作时,还可以在管理模块中设置删除子模块,当需要删除已有的版本驱动模式时,由删除子模块移除存储子模块中存储的版本驱动模块的编号、创建位置信息以及所创建的版本驱动模块本身。
实际应用中,可利用C++的模板机制,定义一个工厂类来实现管理模块,并且通过在工厂类中设置添加函数来实现添加子模块,设置创建函数来实现创建子模块,设置提取函数来实现提取子模块,设置子类池来实现存储子模块,并进一步可设置删除函数来实现删除子模块。
例如,可设置如下的工厂类,即管理模块:
class CFactory
{
public:
BOOL Add(ClassID &Id,ClassCreator creator)
{
return ClassPool.insert(ClassMap::value_type(Id,creator)).second;
}
BOOL Remove(ClassID&Id)
{
return ClassPool.erase(Id);
}
BaseClass*Create(const ClassID &Id)
{ ClassMap::const_iterator i=ClassPool.find(Id)
{
If(ClassPool.end()!=i)
{
return(i->second)();
}
}
}
private:
typedef std::map<ClassID,ClassCreator>ClassMap;
ClassMap ClassPool;
};
其中,CFactory为工厂类名,ClassMap为子类池名,Id为版本驱动模块(步骤302中的子类)的编号,creator为版本驱动模块(步骤302中的子类)的创建位置信息,即步骤302中子类的创建函数指针。
其中,BOOL Add(ClassID &Id,ClassCreator creator)为添加函数,BOOLRemove(ClassID &Id)为删除函数,Create(const ClassID &Id)为创建函数,同时也实现了提取函数的功能,即Create(const ClassID &Id)实现了创建模块和提取模块的功能。
在实现由版本驱动模块通过所设置的接口模块对所属版本设备进行驱动时,可通过调用创建函数来提取所需的版本驱动模块,由所提取的驱动模块实现对所属版本设备的驱动。
例如:对于利用C++模板机制建立的工厂类、基类和子类来说,以实现读取版本设备的寄存器为例,则可通过如下的过程来实现:
P=CFactory::Create(Id);
P->ReadRegister();
以上对本发明实施例中实现设备驱动的方法进行了详细描述,其中,以利于C++模板机制为例,列举了其中的一种具体实现方法。此外,针对本发明实施例中的方法,还可以有其它的具体实现方法,并且具体实现时,也不限于图3所示流程中描述的各个模块,还可以是其它的功能模块,或者是其它的实现方法。本领域的技术人员可根据实际需要,采取相应的具体实现方法。
其中,若设备驱动中存在已有接口,则为了与已有接口进行兼容,图3所示方法流程的步骤302中,在设置采用接口模块提供的统一接口对所属版本设备进行驱动的版本驱动模块时,可设置为:采用接口模块提供的统一接口对所属版本设备进行驱动,以及通过接口模块提供的统一接口采用已有接口对所属版本设备进行驱动的设备驱动模块。若仍以C++模板机制为例,则步骤302中的子类,可设置为:
class CVM321:public CVMInerface,public CVMContrl321
{
public:
static CVMInerface*Creater();
ReadRegister();
WriterRegister();
};
其中,CVMContrl321为已有接口的名称,即子类CVM321同时继承基类和已有接口,从而实现将已有接口匹配到统一的调用接口,即接口模块(基类),避免了现有技术中由于已有接口不同,而必须添加判断分支的情况。
例如,假设有两个已有接口,接口一(VM321)和接口二(VM323),且分别包括:接口一读寄存器和接口二读寄存器。由于接口名称的不同,在按现有技术中的方法实现时,必须添加条件判断,即:
步骤1,判断接口类型,如果是接口1,调用步骤2,如果是接口2,调用步骤3;
步骤2,调用接口一(VM321)读寄存器;
步骤3,调用接口二(VM323)读寄存器。
而采用本发明实施例中的继承匹配后,则为:
步骤1,生成子类1,子类1继承自接口一(VM321)和基类;
步骤2,生成子类2,子类2继承自接口二(VM323)和基类;
步骤3,调用基类读寄存器方法,由C++的多态技术自动匹配到相应的接口进行调用。
可见,通过将子类同时继承基类和已有接口,从而实现了与已有接口的兼容,将已有接口统一到基类接口中,即将已有接口封装到接口模块中,从而可实现统一调用,精简了结构,提高了可维护性。
最后,利用C++模板机制设置工厂类时,还可以将工厂类设置为模板,即对工厂类进行泛化,使之不仅可以应用于上述示例中的情况,还可以应用于类似的应用中。如在步骤303中的工厂类示例中,在最前面添加如下语句:
template
<
class BaseClass,
typename ClassID,
typename ClassCreator
>
并且在步骤303中的工厂类示例中,将ClassMap::const_iteratori=ClassPool.find(Id)设置为typename ClassMap::const_iterator i=ClassPool.find(Id)。当将泛化后的工厂类应用于其它应用时,将提供给工厂类的模板参数改为新应用的名字即可,其中,新应用包括:新的基类和继承自新基类的子类。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种实现设备驱动的系统,其特征在于,该系统包括:接口模块、管理模块和至少一个版本驱动模块,其中,
管理模块,用于通过定义工厂类并在所述工厂类中设置对应的函数来实现相应的模块以管理版本驱动模块,以及提取版本驱动模块;
版本驱动模块,用于当被管理模块提取时,基于子类对基类的继承通过接口模块提供的统一接口对所属版本设备进行驱动,若存在已有接口,基于子类对基类和已有接口的继承通过接口模块提供的统一接口采用已有接口对所属版本设备进行驱动;
接口模块,用于通过定义一个提供统一接口的基类为版本驱动模块提供统一的接口。
2.如权利要求1所述的系统,其特征在于,所述管理模块包括:通过在所述工厂类中设置添加函数得到的添加子模块、通过在所述工厂类中设置创建函数得到的创建子模块、通过在所述工厂类中设置子类池得到的存储子模块和通过在所述工厂类中设置提取函数得到的提取子模块,其中,
添加子模块,用于在存储子模块中添加需要创建的版本驱动模块的编号和创建位置信息;
创建子模块,用于根据从存储子模块中获取的版本驱动模块的编号和创建位置信息,创建版本驱动模块,将创建后的版本驱动模块发送给存储子模块;
存储子模块,用于存储版本驱动模块的编号、创建位置信息以及所创建的版本驱动模块本身;
提取子模块,用于根据版本驱动模块的编号,从存储子模块中提取该版本驱动模块。
3.如权利要求2所述的系统,其特征在于,所述管理模块进一步包括:通过在所述工厂类中设置删除函数得到的删除子模块,用于移除存储子模块中存储的版本驱动模块的编号、创建位置信息以及所创建的版本驱动模块本身。
4.一种实现设备驱动的方法,其特征在于,该方法包括:
通过定义一个提供统一接口的基类,设置可提供统一接口的接口模块;
基于子类对基类的继承,设置采用接口模块提供的统一接口对所属版本设备进行驱动的版本驱动模块,若存在已有接口,基于子类对基类和已有接口的继承,设置通过接口模块提供的统一接口采用已有接口对所属版本设备进行驱动的版本驱动模块;
通过定义工厂类并在所述工厂类中设置提取函数来实现提取子模块,由所述提取子模块提取所设置的版本驱动模块,所提取的版本驱动模块通过所述统一接口对所属版本设备进行驱动。
5.如权利要求4所述的方法,其特征在于,所述设置版本驱动模块包括:通过定义工厂类并在所述工厂类中设置添加函数及创建函数来实现添加子模块和创建子模块,由所述添加子模块和创建子模块对版本驱动模块进行添加和创建。
6.如权利要求4或5所述的方法,其特征在于,该方法进一步包括:通过定义工厂类并在所述工厂类中设置删除函数来实现删除子模块,由所述删除子模块对版本驱动模块进行删除。
7.如权利要求5所述的方法,其特征在于,所述对版本驱动模块进行添加为:通过所述添加子模块添加需要创建的版本驱动模块的编号和创建位置信息;
所述对版本驱动模块进行创建为:根据所添加的版本驱动模块的编号和创建位置信息,通过所述创建子模块创建版本驱动模块,将创建后的版本驱动模块进行存储。
8.如权利要求7所述的方法,其特征在于,该方法进一步包括:通过定义工厂类并在所述工厂类中设置删除函数来实现删除子模块,由所述删除子模块删除所存储的版本驱动模块的编号、创建位置信息以及所创建的版本驱动模块本身。
9.如权利要求7所述的方法,其特征在于,所述提取版本驱动模块具体为:根据版本驱动模块的编号,由所述提取子模块提取该版本驱动模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006101672463A CN1963794B (zh) | 2006-12-12 | 2006-12-12 | 一种实现设备驱动的系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006101672463A CN1963794B (zh) | 2006-12-12 | 2006-12-12 | 一种实现设备驱动的系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1963794A CN1963794A (zh) | 2007-05-16 |
CN1963794B true CN1963794B (zh) | 2010-10-06 |
Family
ID=38082854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006101672463A Expired - Fee Related CN1963794B (zh) | 2006-12-12 | 2006-12-12 | 一种实现设备驱动的系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1963794B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101499009B (zh) * | 2008-02-02 | 2015-01-14 | 戴尔产品有限公司 | 安装外围软件驱动程序的方法、系统和介质 |
CN105425664B (zh) * | 2014-11-14 | 2018-06-22 | 广州擎天实业有限公司 | 一种数字量i/o控制系统和方法 |
CN110191125A (zh) * | 2019-05-30 | 2019-08-30 | 浪潮金融信息技术有限公司 | 基于检测机柜设备模块端口类型无关的通信方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1547397A (zh) * | 2003-12-08 | 2004-11-17 | 中兴通讯股份有限公司 | 一种单板版本的即插即用的管理方法 |
CN1183438C (zh) * | 1998-05-21 | 2005-01-05 | 佳能株式会社 | 信息处理设备和方法、打印驱动程序形成方法 |
-
2006
- 2006-12-12 CN CN2006101672463A patent/CN1963794B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1183438C (zh) * | 1998-05-21 | 2005-01-05 | 佳能株式会社 | 信息处理设备和方法、打印驱动程序形成方法 |
CN1547397A (zh) * | 2003-12-08 | 2004-11-17 | 中兴通讯股份有限公司 | 一种单板版本的即插即用的管理方法 |
Non-Patent Citations (1)
Title |
---|
CN 1183438 C,说明书第9页8行-12页4行. |
Also Published As
Publication number | Publication date |
---|---|
CN1963794A (zh) | 2007-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2098954B1 (en) | Systems and methods for template reverse engineering | |
CN103677921B (zh) | 一种Android系统兼容wifi芯片的方法及系统 | |
CN107506219A (zh) | 一种基于Android系统的通用版本升级方法 | |
CN109783083B (zh) | Web应用开发方法及其系统 | |
KR20020035567A (ko) | 레거시 데이터 구조용 객체 속성 메타 모델 에뮬레이터 | |
CN105302575A (zh) | 一种基础开发框架 | |
US7617483B2 (en) | Framework for managing components | |
CN111857801B (zh) | 一种移动应用的构建方法 | |
CN1963794B (zh) | 一种实现设备驱动的系统及方法 | |
JP4726519B2 (ja) | 画面定義データ差分抽出方法、装置及びプログラム | |
JP2005063449A (ja) | オブジェクトからオブジェクトへのJavaネイティブインタフェースマッピングの方法及び装置 | |
US8966437B2 (en) | Method and apparatus of specifying the concrete syntax of graphical modeling languages | |
CN104657164A (zh) | 软件升级处理方法和装置 | |
US7636912B2 (en) | Custom assembly to extend a wizard | |
CN107423075A (zh) | 驱动的注册方法以及用户终端 | |
CN114721647B (zh) | 一种基于无代码应用开发的面向对象编程方法 | |
CN102779036B (zh) | 用于自动化技术的软件工具 | |
CN107315599A (zh) | 图形库提取方法及装置 | |
CN103186388B (zh) | 软件安装方法及装置 | |
CN110990018B (zh) | 一种嵌入式系统的编译方法及编译系统 | |
CN102841918A (zh) | 二进制长对象流化数据处理装置和方法 | |
CN100517507C (zh) | 嵌入式系统闪存芯片驱动方法 | |
CN106886420B (zh) | 一种程序代码管理装置、方法及程序代码管理器 | |
CN105425664B (zh) | 一种数字量i/o控制系统和方法 | |
van der Linden et al. | Telvent |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101006 Termination date: 20111212 |