与家用电器内的至少一个部件通信以及对其进行管理的软件体系系统和方法

文档序号:6568415阅读:174来源:国知局

专利名称::与家用电器内的至少一个部件通信以及对其进行管理的软件体系系统和方法
技术领域
:本发明涉及包括一个或多个支持与家用电器内的至少一个部件通信以;M"其进行管理的应用编程接口的软件体系。
背景技术
:家用电器通常包括导致该电气的机电操作、电热操作和电气化学操作的一个或多个部件。例如,炉子可以包括具有在其上带有存储器的印刷电路板(PCB)的电器管理部件,以及用户接口部件,诸如由用户向炉子电器发布命令的控制面板或键区。由于部件的多样性以及相应的实施选择的多样性,通常很难设计、开发、测试、诊断、控制和调试基本电器模型。该多样性是创建可协同工作、可重复使用、增值的部件的障碍。近年来逐渐已知通过能够发送和接收用于控制电器内部部件之间交互的控制消息的内部通信网络将电器部件互连,这与使用多个分立电路相反,在使用多个分立电路的情况下,每个分立电路负责相关部件之间的、通过这些部件之间的硬连线带状缆线或其它连接器或导线实施的单独通信。该内部网络在连接电器内部部件方面提供了一定程度的通用性,但是,每个部件通常需要由其微处理器以及相邻硬件电路内的软件支持,以实现网络参与。家用电器内所使用的这种内部网络的一个例子是本申请的受让人Whirlpool,Inc.所创建的WIDE网络协议。
发明内容本发明涉及在电器上实现并且通过电器上的内部通信网络通信的软件体系,该内部通信网络连接电器的各个物理部件。软件体系执行多种功能识别对应于网络节点的每个部件;识别所识别的到网络的部件的能力或功能;识别到网络的部件的状态;为每个部件提供适当限定的命令接口;提供内部软件成分和不属于该软件体系的外部软件成分之间的通信。通过这种方式,软件体系用于向网络上的所有节点通报其它节点的存在、能力和状态,并允许这些节点相互发送和接收命令消息的功能。图1^!表示具有将多个部件互连的内部通信网络的家用电器的示意图,其中每个部件具有根据本发明内嵌于其中的软件体系,家用电器还具有表示用于与外部客户机的各种实施方式建立通信的各种网络接口卡(NIC)的外部通信连接。图2是图1的内部通信网络的示意图,显示了根据本发明的软件体系(SA)设置在内部通信网络和家用电器内部物理部件的各软件成分之间。图3是图1的内部通信网络的示意图,示出了内部通信网络用作驻留在两个部件(代表网络物理层且不直接与SA关联的较低层以及代表对分组结构的支持且直接作为SA的元件的较高层)上的SA的物理支持,其中SA被部件用于通过信息交换通信、并且与操作驻留在部件上层的其它软件交互,以根据本发明根据部件之间交换的信息而实现结果。图4是用于图1所示家用电器的内部通信网络的分组结构的示意图,该分组结构具有有效载荷部分,该有效栽荷部分包括用于根据本发明的软件体系的应用分组结构。图5是驻留在电器的控制器上的SA(控制器SA)和驻留用于创建相对于控制器上SA的客户机关系的部件上的SA(客户机SA)之间的通信的示意图,其中各变量和事件在控制器SA和客户机SA之间传送。图5A是类似于图5的示意图,示出了客户机作为外部客户机以顾客呼叫支持中心的形式位于远程位置上,以说明用于执行电器远程诊断的数据的交换。图6是类似于图5所示的示意图,示出了根据本发明包含在图1的软件体系中的发现技术。图7是在作为洗^4几示出的家用电器的部件内通常在如图3所示的控制逻辑元件内运行的软件运行环境的各种示例状态的示意图。图8的示意图示出了控制器SA基于家用电器的状态以及控制器SA的内部状态,对于由其它SA设施发布和接收的命令的形式的各种信息交换的响应,以發汪或拒绝那些命令。图9的示意图示出了4吏用绑定来链接多个数据交换,以形成客户机SA和控制器SA之间的单个命令和/或更新。图IO是示出涉及部件的整体软件环境的SA的示意图,其中软件环境包括各软件运行层,软件体系包括命令处理程序、更新处理程序和用于将SA互连到家用电器内部通信网络的内部通信网络层接口。图11是示出驻留在主控制器上的监管调度器(MAIN)调用控制器SA的示意图,该监管调度器还调用用于展示网络上客户机SA的功能的子例程调用。图12是示出图11所示的内部电器应用逻辑和软件体系之间的接口的示意图,包括回叫部分。图13是图11所示的软件体系的示例性实施方式的示意图,包括电器初始化部分。图14是一对软件运行环境的示意图,每个软件运行环境对应于具有自己的SA、且通过内部通信网络连接的不同部件。图15示意地显示了经由网络14暴露给Parrot(模拟器)电器内其它部件、且支持根据本发明的图1的软件体系10的分组结构28的持久节点。图16示意地显示了用于将外部命令翻译为键按压以测试家用电器功能性的现有技术方法。图17示意地显示了用户启动的键按压的交互,外部输入的软件命令作为变量被传送到SA,以向家用电器发布命令,用于例如测试家用电器功能性和/或改变家用电器机器的状态。图18是示出在电器背侧所形成的凹陷中安装NIC的示意图。图19的示意图示出了将NIC安装到电器前侧,以及从网洛接口卡的安装位置延伸到电器背侧的电线管道。图20是包括安全屏障(safetybarrier)的电器的示意图,其中安全屏障允许来自位于电器中的RFPCB的通信并防止人员接触过量的热和/或电。图21的示意图示出了维护模块的4吏用,其中维护模块从电器获得诊断数据并通过个人计算机经由外部网络上栽诊断数据。图21A是图21的维护模块的体系的示意图。图22是类似于图21的示意图,其中维护模块经由电话线上载诊断数据。图22A是图22的维护模块的体系的示意图。图23是冰箱形式的电器的示意图,其配备有气象站模块形式的示例性附属模块,形成具有使气象站模块能够在没有手动配置的情况下运行的客户机SA的部件。图24是图1所示的家用电器的内部通信网络的分段式分组结构(fragmentationpacketstructure)的示意图,具有用于处理分段分组完整性(fragmentedpacketintegrity)的协+义,该协i义在必须将一条消息分解为多条消息时代替图4所示的协议。图25示出代表以图2所示形式传送的一系列分段消息的分组序列,该分组序列通过接收SA被重新形成为由分组发送者所创建的原始内聚数据集(cohesivedataset)。图26A示意地示出中心位置、诸如主控制器PC板处可变映射信息的位置,然后可变映射信息被传递到其它部件板。图26B示意地示出了部件的控制器上可变映射信息的位置,其净皮从网络上的其它部件收集。图27是示出消息M情形的UML序列图,其中为复制事件请求分配可变地址,以允许两个请求驻留在网络中。图28是示出表示禁止和重新使能实现事件请求的标准格式的UML序列图。图29是SA内被确认的事件的UML序列图,其中控制器SA在处理下一事件之前等待来自客户机SA的确认消息一段预定的时间。图30是示出本发明所提供的安全模式和防火墙的标准格式的UML状态图。图31是示出在应用消息能够被完全处理之前必须与图30的防火墙协商的客户机之间的交互方法的UML序列图。图32是示出SA能够实施的标准公用接口的UML类图。图33示出SA的优选实施方式的UML类图。图34示出SA的源代码文件的优选组织。图35示出相互关联的UML状态图的集合,其示出了3个主状态(COMM一IDLE,COMM一EXPECTING一ACK,和COMM_PENDING),其中每个主状态可能具有多个子状态。图36示出相互关联的UML状态图的集合,其示出了4个主状态(READY,TRANSMITSNAPSHOT,UPDATES_BLOCKED,和PROCESS一DAQ一EVENTS)。图37示出了表示两个主状态(MSG一READY和MSG—PROCESS)的相互关联的UML状态图的集合。图38的UML序列图示出了为了由SA在内部网络上产生网络消息,执行部件之间内部消息的有序集合。图39的UML序列图示出了执行软件运行环境的图33中类的消息的有序集合。图40的UML序列图示出了软件运行环境的图33中类的消息的有序集合。图41的UML序列图示出了为了处理樣户机22/16从WIDE总线14所输入的消息所需要的消息H,其除了发送输入消息的成功或者失败理由的响应(ACK或APIID=1,OpCode=l的NAK)之外不需要包含有意义数据的响应。图42的UML序列图示出了为了处理^1户机22/16从WIDE总线14输入的消息所需要的消息M,其除了发送输入消息的成功或失败理由的响应(ACK或APIID=1,OpCode=l的NAK)之外还需要发送多个包含有意义数据的响应。图43的UML序列图示出了为了处理>^户机22/16从WIDE总线14输入的消息所需要的消息M,其除了发送输入消息的成功或失败理由的响应(ACK或APIID-l,OpCode-1的NAK)之外还需要一个包含有意义数据的响应。图44示意性示出了利用归类数据集(taxonomydataset)来控制电器内一个或多个部件的操作而不需要直接了解该部件的功能的归类控制(taxonomycontrol)。图45示意性示出了由包括分层结构的选项和数据输入的归类数据集填充的用户接口,其中该用户接口引导用户选择选项和数据输入,以产生适当形成的命令。图46示意性示出可用于顶圾逸项的相关数据输入。图47示意性示出可用于具有相关数据输入的子级选项选择的相关数据输入。具体实施例方式在检视本发明的多个方面之前,筒要地概述本发明是有益的。本发明涉及一种在电器上实施并且通过电器上的内部通信网络通信的软件体系("SA"),其中内部通信网络连接电器的各物理部件。一些物理部件具有相应的控制器(主控制器、电机控制器、用户接口等),其中控制器可以是安装在印刷电路板上的简单微处理器。其它部件没有控制器。通常,具有控制器的部件(而且如果存在不止一个,则这些部件通常还支持网络)通过网络消息收发或其它形式的数据传输协作,以直接地或者通过其它部件间接地控制所有这些部件及其包含或附属的装置的操作,从而实现电器的操作或循环。该SA可以(但不是必须)驻留在具有控制器的每个部件上。具有该SA或与该SA兼容的SA变形(通过发送、接收和处理分组的能力确定的兼容性)的那些部件形成网络上能够与其它节点通信的节点。SA执行多种功能识别对应于网络节点的每个部件;识别所识别到网络部件的能力或功能;识别网络部件的状态;为每个部件提供适当限定的命令接口;提供内部软件成分和不是SA—部分的外部软件成分之间的通信;提供不同物理部件上非SA软件成分之间的通信。通过这种方式,SA用于向网络上的所有节点通报其它节点的存在、能力和状态。SA包括多个模块,每个模块具有不同功能。模块的各种组合或所有模块可以驻留在每个部件上。一个具有本发明基本或核心功能的模块驻留在所有部件上。在一种预期的配置中,所有模块至少驻留在主控制器上,这4吏主控制器作为主SA或控制器SA工作,而其它节点以控制器SA的客户机关系工作。在这种配置下,所有节点通过控制器SA通信。SA足够健壮,以至于其可以允许没有控制器SA或具有多个控制器SA的配置。不管配置如何,任何具有驻留SA的部件都可以相对于其他部件作为客户机工作。内部通信可以被直接或者通过外部网络连接到一个或多个外部部件。外部部件也可以驻留有一个、一些或全部SA模块。从图1开始,现在描迷本发明的具体内容。图I是示出软件体系IO的一个环境的示意图,(体现在此所迷的系统和方法以及本领域技术人员乂^p的内容),形式为具有将多个部件16互连的内部通信网络14的家用电器12,其中软件体系10驻留在至少一个部件16上,,以使能该部件,并且优选地,每个附加部件16具有驻留在其中的软件体系10,或者能够协同工作的替换物。家用电器12还具有所示的互连到各网^口装置20的内部/外部通信连接18,用于与各种实施方式的外部客户机22通信。外部客户机通常包括能够与软件体系10交互的联网硬件和软件以及计算硬件和软件。这可以通过包括外部客户机的实施例中的软件体系10的全部或一部分或者能够与软件体系10通信以及完全或部分交互的软件体系10的替换物来实现。已经实现了很多能够与软件体系10完全交互的替换部件(Cdll,VisualBasicDriver,JavaDriver和ActiveXdriver)。对于本专利申请的文本并且考虑到本申请文本的附图,应当理解,缩写"SA"是指本申请中用附图标记10描述的"软件体系"。此外,术语"客户机,,被用于表示其上驻留全部或部分SA、并且完全或部分使能部件功能的部件。该部件可以是内部部件或外部部件。尽管客户机主要被用于描述由SA使能的部件,但是客户机也被用于描述由能够在内部通信网络14上成功地交换消息并与SA通信的替换软件使能的部件。一般地,在谈到节点的软件方面而非硬件方面时,使用术语"客户机"。部件16可以包括一个或多个装置。因此,本申请中所使用的术语"装置"可以指部件或装置。装置可以是共同地形成部件或者经由电路(例如线束)、可以执行逻辑的物理部件和具有存储器的物理部件被连接到具有控制器的部件的任何电子元件、电热元件以及电气化学元件。如在此所述,电器12可以是本领域技术人员公知的各种公知电器中的任何一种。例如,电器12可以是洗衣机、甩干机、微波炉、洗碗机、冰箱、冰箱/冷冻箱组合、单独的冷冻箱、加热柜、冷冻柜、炉子、炉灶面和炉子的组合、灶面等等。虽然所描述的发明环境是电器环境,但是本发明可应用于具有联网部件的任何类型的机器。如在此所述,内部通信网络14可以是任何公知的互连管道、线路和/或导线或适于将家用电器12的各内部部件16互连的无线系统。如本申请背景部分所述,WIDE网络是适于提供对于支持本发明的软件体系10所必需的内部通信的内部通信网络14。对于本领域的技术人员来说,软件体系10显然可以在任何合适的内部网络上运行,而且在此所提供的示例性例子(即WIDE网络)只是合适的内部通信网络14的一个示例。如前所述,部件16是家用电器12的任何基于处理器的部件或子部件。适于接收和安装根据本发明的软件体系10的部件16的例子包括但不限于电机控制微处理器、微处理器使能的键区控制器、LCD用户接口控制器和其它通常包含在家用电器12内的装置控制。内部/外部接口连接器或槽18适于连接多种类型的装置20,这些装置能够在内部通信网络14以及诸如RS-232系列、各种形式的无线网络(Zigbee、Wi-Fi等)、USB或有线以太网等的至少一个其它网络上通信。装置20的功能可以被严格限制为协议和物理层转换,或者可以被扩展为除了其基本协i义桥接功負fe(baseprotocolbridgingfunction)之外还支持增值服务。软件体系10允许家用电器12连接到的外部客户机22的例子包括但不限于基于个人计算机的控制开发件、工厂测试应用程序、诊断应用程序、现场测试应用程序以及与所连接的家用环境的接口。与相邻于或远离电器12的外部环境的这种连接使得增值应用程序可以与电器12通信。一些例子是自动化工厂测试能量管理应用程序工程开发工具电器维护和诊断工具电子控制制造功能性验证测试消费者应用程序等。系统级体系(参与以实现家用电器的有用目的的机械的、电的以及软件的元件)包括软件体系10和与软件体系10分离的软件元件。在此,系统体系的部件的微处理器内的软件元件集合(包括但不限于软件体系10)被称为软件运行环境16A。软件体系10由3个部分组成核心实施、应用协议定义、一个或多个应用程序接口(在此称为"API,,或"多个API")。核心实施软件体系的核心实施是在电器控制微处理器中运行的软件模块的集合(在图3的示例是SACore、SADiscovery、SADAQ、SAPortMeiriory、SAPoHVariable)。如图11所示,核心实施优选在电器控制微处理器的主(MAIN)循环中执行,这对本领域技术人员来说是显而易见的。该核心通过内部通信网络14提供通用应用消息收发层,并且基于能开发交叉平台连接应用的灵活设计。作为核心实施的一部分,存在在每个电器上统一实施的核心API。此外,在统一实施不实际的地方,可以4吏用发现机制(discoverymechanism),以允许客户才几适应该非统一性。应用协议定义协议是用于调节网络中节点之间的数据传输的标准程序。消息用数据的一个或多个分组在内部通信网络中发送,这些数据分组随后集合起来形成已通告的消息。关于软件体系IO存在两种可应用的定义领域。1.分组定义是针对组成分组的字节集合内的每个字节或者其中一个字节内的位或位区间的预定义含义。图4和图24及其伴随的描述代表软件体系10的分组定义。2.消息次序和消息收发规则协议的定义通常超过了分组定义(1)而包括管理消息的期望有序集合的规则,该消息是完成特定有用事物所需要的。具有消息规则的有序消息(事物)的示例在图6、9、27、29、31中示出。应用编程接口API是一种通信和消息收发的契约,其规定一个网络节点如何与其它节点通信。这通过定义可获得的功能调用、每个功能调用的变量、每个变量的数据类型以及在某些情况下每个变量的有效值来完成。在很多情况下,API特定于应用或电器12,因此不认为是API核心(标准组)的软件体系10集合的一部分;软件体系IO核心可以启动多个API并将这些API暴露给客户机16、22和可能20。系统级别的体系软件体系IO被设计为随着时间完成若干目标。1.在现有控制体系的约束内的业务生产力。2.通过启动和实现新控制体系的业务生产力。3.支持和更好地启动核心业务功能"创新"、"制造能力"、"质量"和"维护能力"。4.通过启动具有软件体系10的制造电器启动新的成长机会,该软件体系10除了连接器18之外还产生"可连接的,,电器。该策略通过具体化联网电子装置的成本而将连接的风险和成本降至最低。为了实现该体系的全部潜能,可以在电器12上提供简单的连接器,使得可以将网络卡插入该电器中。参见图1和18-22中的连接到电器12的合适外部NIC20的示例。由于电器12已经为其内部目的而具有内部的低成本网络14,因此用于通过内部/外部接口18将内部通信网络14与外部NIC20连接的其它连线降至最少,而且可以按照公知方式完成,例如通过三线串行电缆、外部连接器和安装固定设备。软件体系10优选可以驻留在家用电器控制系统的所有部件16上。但是,在禁止成本或其它约束的地方,软件体系可以驻留在家用电器的控制系统内的部件16的子集上。该"可连接,,体系的示例性优点包括但不限于外部NIC20可以在交易之后添加,从而降低电器12的基础成本。NIC20可以是已开发好的支持多网g术,由于软件体系10所呈现的标准接口应用和NIC可以是交叉平台和通用的,内部低成本网络(如WIDE网络示例)用作标准,API框架和发现允许很多增值命令,软件体系10使用受约束的事件来保持状态和有效利用带宽,软件体系10被设计为在运行时接受配置,从而给程序开发员一个更为灵活的、可以缩短市场化时间的体系。图2是图1的内部通信网络14的示意图,示出根据本发明设置在内部通信网络14和部件16内部的软件运行环境16A中的各种软件成分16B之间的软件体系10,该部件16组成家用电器12的控制系统。图2的部件16代表在电器12中找到的典型部件,如电器管理器(主板或母板)以及其它部件如电机控制和控制面板或键区接口,通常称为用户接口。图2中的"Energy"和"Diag"标记是通过软件体系执行的典型非核心功能的示例,如能量和功率管理("Energy")和故障查找或诊断("Diag")。未在图2中示出的是由软件体系执行并通过标记10代表的核心功能(API1-7和10)。此外,软件体系10可以扩展到很多期望通过对等通信交换数据的其它类型的系统体系。这些系统体系包括多节点系统,其中多个PCB如电机控制、电器控制和智能传感器板利用软件体系10在电器12内通信。图6所示的(以及后面所描述的)软件体系10发现协议可用于使部件16产生新的行为或性能或向消费者提供新的功能,该部件16的存在促使其它部件16适应它们的控制功能。图2的部件体系(结构化模型)以及图6的发现行为和APIID、类型、版本的部件标识(参见APIID-3)是体现为10的本发明实现具有新动态和智能系统体系的电器的图3是图1的内部通信网络14的示意图,示出通过家用电器12的内部通信网络14交换消息的典型电器控制部件16,包括下层协议,WIDE是该协议的一个示例,该下层协议负责OSI层一PHY、LINK和部分网络层的功能,以及由根据软件体系10支持的上层协议(负责OSI层一应用层、传输层和部分网络层的功能)。下层协议用作与软件体系10关联的高层和电器中的部件之间的物理和链接层。通过这种方式,软件体系10使用下层协议与实现控制器16相对于客户机22的控制逻辑的第一软件运行层17通信,也使用第二软件层19来绕过该控制逻辑并直接控制与控制16关联的装置。图3的装置是代表控制部件16的功能性的物理元件。图3从软件/协议堆栈的角度示出控制体系10。此外,图3提供了通过软件体系10启动的两种运行模式的示意图,这些模式控制软件体系10暴露的网络消息和内部RAM、EE和其他形式的非易失存储器16A以及输出装置层之间的访问和干预级别,输出装置层是低级别的软件运行层16B,驻留在16A之内并提供对电连接到部件的装置的直接控制。直接控制装置的输出装置层16B通过直接访问微处理器端口地址存储器来进行直接控制,该微处理器端口地址存储器又映射到微处理器的物理管脚,该微处理器又通过各种电设备连接到电机械装置。图3的软件运行层1代表特定于电器的软件成分16B,其将软件体系10接收的网络消息连接到应用控制逻辑,从而导致应用控制逻辑采取某种动作。如果电器处于开发状态(图3中用A标记的开关),则附加的软件运行层2(由API5(下层API)和API7(存储器/端口API)及其实施和替换逻辑)使得API5和API7的网络消息可以改变物理存储器16A和装置的状态。通过这种方式,可以与通常根据软件运行层1的运行循环控制装置和存储器的应用软件无关地控制该装置和存储器。该直接控制允许该装置的每个功能都得到独立的控制,这在开发或诊断过程中是非常有利的。软件运行层2可以通过由软件体系10暴露的特殊的网络消息和为电器的各种状态定制的附加逻辑来进行状态改变(图7所示的例子)。在开发状态期间,优选在用户通过图3的用户接口与电器交互时,软件运行层1不会接收有关的用户接口输入。而是由软件运行层2接收来自用户接口的输入。接着,软件运行层2可以与图3的替换逻辑交互。替换逻辑又可以对软件运行层1的控制逻辑进行功能调用,更改存储器中的值,或者更改所连接的多个装置的状态。但是,在开发状态期间软件运行层1不能实现用户接口(LED、灯、蜂鸣器、文本和图形显示器等)的状态。开发状态促使软件运行层1的控制逻辑无效,除非从软件运行层2调用。在开发状态期间,API5和7的实施逻辑以及替换逻辑完全控制电器12及其关联部件。当接收到特殊的网络消息时,开发状态返回到(图7的)空闲状态。此外,预计一系列键按压中的至少一个预定键按压还可能导致从开发状态转换为空闲状态。软件运行层1与运行层2是否启动无关i4it行。开发状态的目的是允许和实现事先没有想到的运行循环。该途径的优点是在图1中示出了一些的电器的实施和配置不需要对电器的任何部件16进行新的软件修改,因为电器具有通过软件体系10来支持任何想到的实施或配置的能力。这种能力有很多用途。该用途包括但不限于1.可以向用软件体系10启动的电器添加新的功能部件,从而不需要修改事先存在的功能部件就能完成新的行为特性和运行循环。这样的例子包括a.向洗衣才几、甩干机、炉子和微波炉添加流控制b.向电器添加能量和其他资源管理部件c.添加除了内部网络14之外还能连接到外部网络的联网部件d.向商业电器添加读卡器以产生有偿使用使用模型。e.添加包括用于由客户机节点或电器或与用户界面交互的用户选择和调用的附加运行循环的存储装置。2.执行诊断测试,该诊断测试可以通过促使每个输出顺序地验证所期望的结果来完成(示例加热器通电一观察到温度上升,进料阀通电一观察到水平面上升,冰碾碎电;^~观察到碾碎装置的旋转)3.执行自动的成批测试4.执行自动的性能测试和DOE实施5.执行自动的寿命测试6.执行部件16单位测试和自动的回归测试7.执行自动的ECM测试8.执行其他形式的特殊调试和测试9.促使替换客户机装置(例如PC)控制电器12,以允许使用替换的软件运行环境16A将可选择的运行循环域开发和测试为通常在最后生产内嵌计算部件16上所需要的,该替换软件运行环境16A提供生产力更高的编程环境,从而导致新电器模型的上市时间缩短。图4是用于图1所示的家用电器12的内部通信网络14的分组结构24的示意图,该分组结构具有有效栽荷部分26,包括用于根据本发明的软件体系10的应用分组结构28。分组结构28代表软件体系10可以创建并发送给其它部件16和22(具有软件体系IO或者设计为可用分组结构28运行的软件体系10的变形)以用于有意义的数据交换的良好形成的消息。分组结构28占据分组结构24内的位置26,但是分组结构28可以在分组结构24的变形中占据替换位置。28A代表在28内才艮据分组结构28的APIId和Op代码定义的分组结构。在网络协议中,分组(有时也称为消息)是顺序发送的字节的集合,代表一条完整消息的全部或一部分。通常,分组由包括路由信息的标题、作为数据的主体(也称为"有效栽荷")和有时包含校验和(即CRC和)或结束符如"结束"标志的尾部。有效栽荷是包含在分组内的字节的集合。有效载荷是在两个节点16的应用层之间传送的数据。网络和协议的功能是将有效载荷从一个节点运送到另一个节点。有时一个协议就作为另一个协议的有效栽荷发送,按照这种方式协议可以嵌套或形成堆栈。变量称为具有相关值的存储器位置。一个或多个变量可以包括该有效载荷。事物是代表多个节点之间的完整数据交换的一系列消息或分组。分组和有效载荷之间的关系可以对可获得带宽的有效使用产生影响。要考虑的权衡是在应用层要求的上下文中将有效栽荷从一个节点传送到另一个节点所需要的开销量。协议分组结构24作为例如标识为oxED的第一标题字节,接着是具有4个部分的地址字节。地址字节的第一部分包括第0、1、2位的目标部分(D)。地址字节的第二部分包括第3位的广播部分(B)。地址字节的第三部分包括第4、5、6位的源部分(S)。地址字节的第四部分包括第7位的保留部分(R)。地址字节的后面是由包括0-3位的维护数据单元长度(SDU-L)和包括4-7位的SAP标识符组成的标识字节。SAP标识符定义所附有效栽荷26的结构。SAP4表示所附的SDU26由与软件体系10关联的分组结构28定义。标识字节后面是维护数据单元,其通常称为协议分组结构24的"有效栽荷"并且通常由附图标记26表示。有效载荷26后面是标准有效字节,如高字节、低字节组合,或被本领域的技术人员统称为CRC16-CCITT。应用分组结构28由协议分组结构24的有效载荷部分26形成。在该应用分组结构28内执行由软件体系10允许的通信协议和数据交换。应用分组结构28的第一字节包含由应用分組结构28的特定实例携带的标识符(APIID),是1-255的整数。应用分组结构28的第二字节在操作码中(在此缩写为op码)包含1-31中的一个整数在位0-4,后面是位5的命令或反馈(Cmd/Fb)标志、位6的分区(Flag)标志,以及位7中的更多消息等待(MMP)标志。应用分組结构28的字节3-15包括应用分组结构28的特定实例的有效载荷(即消息数据)。基本上,软件体系10使用内部通信网络14的网络分组结构24的两个字节的有效载荷26来用于附加协议。APIID是组织为功能单元的Op码集合的唯一标识符。0xFF(255)和0x01(l)优选是保留的。Op码是API内的唯一ID,其定义和标识单个的命令或反馈消息。每个API是有关的类型(两个字节)和版本(两个字节),从而允许随着时间创建可识别、功能上相关的消息(op码)组的大型库。优选的,xlF(31)是用于Op码的保留值。Cmd/Fb标志表示该消息被分类为命令还M馈。命令是要求采取行为的某种消息,而反馈是只包含信息(确认,事件数据等)的某种消息。优选的,Cmd/Fb标志对命令是0,对反馈是l。Frag标志指明所接收的消息是否被发送者因为下层协议SDU26的大小限制而分为多个消息(片段)。该消息的笫一片段采用图4的结构。该消息的所有随后的片段采用图24的结构。Frag标志优选一直置位到分段的消息结束为止。MMP标志表示事件作为单个消息发送但是通过协议约束在一起,从而客户机可以将事件分组在一起作为微控制器的一次扫描的完整快照。MMP标志优选一直置位到快照的最后一条消息发送出去为止。图9以及伴随的讨论提供了关于约束消息的更多细节。MMP标志向软件体系10提供了将电器12的状态表达为在快照中约束在一起的独立含义的反馈变量的函数的能力。当电器12的内部状态改变时,可能发送多个事件,这些事件合起来描述电器12的新状态。描述状态变化所需要的事件数量是特定于电器12的状态的。因此,使用特殊协议分隔符来允许数量特定于实施方式的反馈变量与特定的电器状态变化关联。由于这些事件是有独立含义的,因此该途径是优选的,因为事件(数据)集合的所有排列可以通过使用MMP来创建。这导致标识命名空间(APIId和Op码)的有效使用,因为在客户机要求发送新的数据组合时不需要新的标识符。总的来说,MMP及其有关规则允许动态和虚拟的数据集合,从而消除了对特定于特殊应用情况的解决方案的需要。在图9中,示出MMP标志的净效应。MMP标志还为内嵌的实施提供了抑制无效瞬时条件的能力。作为电器状态转换,一组相关变量可以非常快速地变化几次。当电器状态用作为单独的事件发送的独立反馈变量(反馈消息)表达而没有结合机制时,可能发生模糊或无效的瞬时状态。此外,如果客户机在无效瞬时状态期间执行业务逻辑,则逻辑错误可能导致不正确的控制或用户显示行为。因此参照称为"状态完整性,,的这一节来获得关于异步数据收集如何是在微处理器的每次扫描内同步收集并且在MMP启动的快照内传送的数据的次等途径的示例。此外,消息结合可以用于将独立的命令调用组合在一起,从而可以批量处理这些命令调用。应用协议28还管理进入的消息。总的来说,网络允许异步过程通信,从而通过在短的时间窗内发送过多请求为一个网络接点产生超过另一个网络节点的处理能力的潜力。为了防止消息超出限度,根据本发明,采用允许发送者在发送第二个消息之前等待确认的协议。该特征允许软件体系IO基于软件体系10的执行状态8为该确认使用枚举。通过这种方式,描述消息成功或失败的必要信息只用很少的消息传达。命令发送者对发送的每条命令都接收枚举的确认。最普遍的是积极的ACK,这表示该节点准备好接收下一条命令。所有其它枚举都是故障的形式。故障的特征是确认字节的剩下254个可能的值。在该254个值的范围内,一些得到标准化,一些保留给特定于应用的故障码。Frag和MMP允许软件体系10的用户在设计应用消息^策略时具有灵活性。如果开发人员选择使用非常大的消息,则可以使用Frag,从而可以通过将原始的大数据组作为结构28的多个分组内的多个较小的数据组来发送大于有效载荷28A的消息(即在此所示的示例性应用分组结构28内的13个字节)。通过相同的令牌,如果开发人员选择使用较小的消息(情况通常如此)但是期望将这些消息组合在一起,则可以使用MMP。例如,如果3个字节的10条消息分別需要作为一个组发送从而客户机应用可以知道这些消息与微控制器的同一次扫描有关,则前面的9个消息具有被置位的MMP,后面的消息组具有MMP=0。下面给出为软件体系10定义的API的总结,然后详细描述每一个命令和反馈消息。该途径的优点是允许开发人员选择软件体系10内是用于开发的当前阶段的模块(即单元测试、工程测试、产生等)。此外,编辑某些模块使得开发者可以在禁止RAM/ROM资源的情况下使用部分软件体系10。API用它们当前选择的应用程序接口标识符(APIID)来描述,但是可以釆用任何标识符而不会脱离本发明的范围。由该特定API实现的有关功能在每个API下面列举出来。圆点功能("")是从软件体系10发送给客户机(例如内部客户机16或外部客户机22)的反馈消息,非圆点功能是M户机(16,22)发送给软件体系10的命令。注意到在本申请中使用了约定俗成。"扩展"是指一个API可以建立在基本级别API的功能之上的能力。扩展关键字表示当APIx"扩展"APIy时,APIx=APIx+APIy。该注解简化了记录保存和API存档的任务。换句话说,APIx还包括在APIy中规定的功能。如果APIx和APIy分别指定具有相同Op码的功能,则APIx实施的实现可优先进行。下面的表格描述核心API(APIID=1):*消息确^人_*公布Heartbeat_*设置Heartbeat阶段_*新的Heartbeat阶段_,读取存储器_參公布存储器数据_*读取EE_*公布EE数据_发送事件_參公布事件_下面的表格描述了基本数据获取API(基本DAQ,APIID=2,类型-l):创建数字事件_,创建字节事件*清除事件_,公布清除的事件_參复位SA_,公布复位的SA_參置位外部接通_">布外部接通_*置位外部断开_">布外部断开_下面的表格描述扩展的数据获取API(扩展的DAQ,APIID=2,类型-2):扩展的DAQ包括运行时的基本DAQ。,获得事件数据_,公布数字事件数据_,公布字节事件数据_,建立远程数字事件_,建立远程字节事件_*获得远程变量数据_"^布远程变量数据_下面的表格描JaL义现API(APIID=3):,找到节点_公布节点_*获得API_公布API_获得API信息_,公布API信息_,获得实例信息_*公布实例信息_下面的^^^描述核心调试API(APIID-4):公布饱和_*饱和消息的寄存_下面的表格描述下层API(APIID-5):,置位开发状态_公布状态TBD(特定于电器)_下面的表4^描述核心键按压API(APIID-6):*按压鍵(鍵索引)_,公布键按压(鍵索引)_下面的表格描述核心存储器/端口API(APIID=7):<table>tableseeoriginaldocumentpage42</column></row><table>能量管理API是APIID-8。与其他API—样,能量API由Op码的集合组成,每个Op码代表涉及能量管理的有用功能,并且具有是达到这些功能的合适l^t的关联字节集合。下面的表格描述轮询变量API(APIID=10):读取轮询变量_7>布轮询变量_核心API(在此APIID=1)是可以部署的软件体系10的最小子集。但是,可以想到开发与分组结构28兼容的其他实施例。规定设计参照图5的两个硬编码的数据获#制。在核心API中,一种协议机制即图5的发送事件允许客户机(16,22)请求事件源发送所有事件或发送一套特定的事件。通过这种方式,在事件体系的框架内实现轮询类型而无需单独的消息定义或实施结构和逻辑。此外,该机制实现了文件的系统启动条件。例如如果所有网络节点在系统通电时同时发送所有事件,在客户机16或22的软件内更可能发生误操作,其中在此的软件成分由于通电条件而不能准确处理多个消息。DAQAPI(APIID=2)代表由软件体系10实现的用于部件16的动态机制查询。该特征允许客户机16/22配置内嵌的软件引擎(一种结构阵列,该阵列的元素实例化和存储在动态存储器堆(heap)参见图33的DynamicMemoryHeap,包含NVOEvent结构的集合),该软件引擎将一部分微处理器存储器与事件操作码(描述在下面的表格中)和变量关联。指向存储器的指针、存储器的值、事件操作码和操作码变量存储在存储器堆的结构阵列中(图33包含NVOEvent结构的Heap[)。如图5所示,DAQ引擎可以用两种方式配置1.驻留在相同微处理器中并与软件体系IO分离的应用软件可以按照图5的箭头所示从DAQInit()软件成分来配置DAQ30。2.其次,外部客户机可以使用DAQAPI(在此所述的)从网络14配置DAQ。每一种DAQ配置方法的有理数分为3段讨论。如在图36的处理DAQ时间状态图中所示,在执行DAQ引擎时,DAQ引擎对每个事件结构迭代,从而针对事件操作符和变量检查关联的存储器位置。如果事件条件估计是真,则消息緩冲器在内部存储器内构成从而反映与该事件条件关联的数据。如果迭代完成,则产生通才艮消息并优选广播给网络。替换的,通报消息可以发送给特定的部件16,如果分配附加的存储器来存储最初请求或配置该事件的部件的网络标识符。开发人员可使用几个事件操作符。例子包括正在改变(onchange),大于,小于,等于,死带(deadband),位掩码等。提供DAQAPI的几个Op码用于在运行时控制存储器堆,如清除事件,添加事件,外部通报接通/关闭,获得事件,获得事件数据等。总之,软件体系10支持用于数据收集的4个机制(所有机制都在图5中示出)。如上所述的4个机制中的两个机制取决于DAQ。另外两个机制也在上面简要描述过,是硬编码的。每个机制可以共存在软件体系10内。每个机制以消耗其它资源为代价提供某种优化。1.在客户机配置的数据获取机制中,产生动态事件。如果微处理电器有足够的RAM/ROM容量则可以使用该方法,而且如果客户机是PC应用时该方法用得最普遍。利用DAQAPI,开发人员可以再使用代码,需要更少的引擎时间,平衡已证明可再使用的事件模块,很灵活(例如可以在运行时配置),而且存在网络带宽的优化。但是,该方法比硬编码方法需要更多的RAM/ROM,而且内嵌的客户机不能在运行时访问所需要的数据文件。在客户机配置的数据获#制中,DAQ引擎30必须具有存储器位置以便,观察事件。对于变量映射,在客户机是如图26所示的PC应用时这是很实际的。但是,当客户机例如是实施软件体系10的其他控制板时,访问变量映射是不实际的。因此,本发明为位于实施软件体系10的节点的存储器中的内嵌变量映射提供了功能。该变量映射将API和Op码与如图26B所示的变量地址连接起来。因为为了在所述节点上注册事件,该客户机只需要知道该变量的API和Op码,而不是具体的存储器地址。利用内嵌在由客户机配置的数据获取机制中的变量映射,可能出现限制特定客户机创建事件的情况,因为相关的API和Op码对已经由其它节点注册。在这种情况下,本发明向该节点提供请求关于该内嵌的变量映射的信息的功能。在该信息中包含了变量的存储器地址。利用该信息,客户机节点可以采用该变量的地址和不同于事先尝试的API与Op代码对来注册同一变量的事件(参见图27)。2.由客户机配置的DAQ是自配置的DAQ。在这种情况下,内部逻辑使用DAQ引擎在图33的DynamicMemoryHeap中创建NVOEvent结构。这在要实现的事件在设计时是固定的且已知的,而且存在足够的RAM和ROM资源来再使用DAQ30的不同引擎(包含在DAQ30内的逻辑)时是一种有用的机制。因此该方法具有与由客户机配置的动态事件机制相同的优点,而且比(下面描述的)硬编码方法需要更多的RAM/ROM。3.在硬编码事件模块中,开发人员可以优化网络带宽,优化RAM/ROM的使用以及适应DAQAPI,但是,该机制需要定制编码的解决方案来产生事件,而且不依赖于图36所示的DAQ30的软件和逻辑。4.利用核心API提供的硬编码的轮询方法,开发人员可以通过创建定制编码的解决方案来优化RAM/ROM的使用。轮询一般是浪费网络带宽的,但有时候也因为其简单性而使用。图5示出每种类型的潜在数据获取方法的一个示例。软件体系10的安装可以支持这4中方法中的一种、一些或全部。安装10和客户机16分别可以具有在它们上面初始化的DAQAPI。软件体系IO可以具有一个或多个硬编码的轮询变量、一个或多个硬编码的事件、和/或所述的DAQ引擎30。各种变量和事件在主软件体系安装和客户机^间传输。例如,各种硬编码的轮询变量在软件体系10和客户机16之间通过读取轮询变量和y^布轮询变量方法来交换。各种硬编码的事件在软件体系10和客户机16之间通过发送事件和公布事件方法来交换。创建事件方法由发送给DAQ引擎30的DAQInit引擎调用,该DAQ引擎30又与客户机16通过发送事件和公布事件方法来交换产生的事件。软件体系10中的DAQ引擎30还可以创建通过^户机16接收的创建事件方法所接收的事件。图5A是示出安装了根据本发明的软件体系10的家用电器12和位于远处的客户机16之间的通信的示意图,该客户机16例如是如图5A所示的顾客呼叫支持中心。电器12具有连接到其内部网络14的接口18,和能使电器12与外部客户机12通信的网,口20.图5A的示意图示出顾客服务中心,其使用DAQ引擎5创建事件功能建立起变量监视并诊断家用电器12的毛病而不需要向住地发出服务车。软件体系10可以定制为考虑不同实施平台的需要。RAM和ROM空间和时间的复杂性是可以管理的,对存储器位置的访问以及断开时间也是可以管理的。所有这些都位于预定的参数文件中。应当理解这些参数可以重新命名、更改、重新打字、添加或删除而不会脱离本发明的范围。发现API(APIID=3)实现了"Plug,nPlay(即插即用)"体系的概念。发现API暗示物理网络节点或客户机16可以获得n个功能,每个功能都由〃>知的、具有唯一ID、类型和版本的API封装。这些API是便携式的(意味着他们代表功能而且与微处理器、软件语言和网络拓朴结构无关)而且可在其它可应用其中的功能的部件上重新使用。发现协议(在图6的API3中描述)允许客户机学习部件16和部件16包含的功能组(API)之间的关联。图6示出典型的发现API序列。由于在存储器中没有代表其它由软件体系IO启动的部件的结构,客户机16、22发送命令以找到电器内由软件体系启动的部件16(通过发布"找到节点"的命令)。启动的部件回答说它们确实已经启动(通过发布广播的"公布节点"命令)。然后,客户机16发送命令以识别在每个启动的节点上存在什么样的API(通过发布"找到API"命令)。每个已启动的节点用包含其APIID的有界消息回答(通过用"公布API"消息来回答)。然后,客户机16、22发布命令以识别关于在每个已启动的节点上找到的各API的信息(通过发布"获得API信息,,命令)。每个已启动的节点用包含关于该节点具有的API的信息的有界消息(该消息的目的和结构在图9中描述)来回应。该消息可以包括特定APIId的类型、版本和发生次数(或实例个数)。在一个部件16内的特定API的实例个数超过1的情况下(意味着有多个相同的API安装在部件16上,例如可能使用多个炉子控制API的一个多灶炉子的情况),客户机16发布命令以获得关于每个API实例的信息(通过发布"获得实例信息"命令)。软件体系10用请求的信息来响应(通过"公布实例信息"命令)。多个相同的实例由软件体系用伪APIID自动编号。此外,当由软件体系10启动并具有软件体系10的子部件即APIId-3的Discovery的部件16初始化时,该部件16自动发送宣布自己的消息(API点-3,Op码-2publishSANode())。而且,如果软件体系的用户这样选择,则图6的Discovery序列可以通过省略消息1和2(Op码分别是1和2)来更改。该方法是有效的,因为客户机可能通过发布Opma-3消息,即导致由软件体系10启动的所有部件都响应的getSAAPI(collection)来初始化发现,因此在大多数情况下避免了对消息1和2的需要。还想到缩写的消息序列可以达到与上U现序列相同的结果。在缩写的发现序列中,每个节点在通电之后发布在一条消息内包含在上U现序列中的全部信息的消息。接收该消息的每个节点用关于其自身的相同信息答复,从而向刚刚通电的节点提供来自所有已经通电的节点的可发现信息。发现API协议机制允许客户机16在运行时找到本地实体而不需要事先的编译时间编程。此外,该机制允许客户机16确定所期望的部件是存在还是没有。根振这样的知识,客户机可以配置自身和/或向用户提#^适的推断的功能。下层API(APIID=5)通过网络14暴露允许客户机控制(激活)电连接到包含部件16的输出装置以及提供对代表电连接的输入装置的当前状态和可能的状态历史记录的数值进行读取和/或写入访问的功能。典型的输出示例是阀门、继电器、可控硅开关元件、LED、灯、蜂鸣器等等。典型的输入示例是按下键、开关、传感器(例如压力、温度和超温度)等。在优选实施例中,下层API以及存储器-端口API只在电器12的软件体系10的图3的"开发状态"下才可获得。"开发状态"只能从图7的示例性电器状态图的电器12的"空闲状态"iiX。而且在该优选实施例中,如果任何用户接口行为是在"开发状态,,期间通过键区、LCD或电器12的其他用户接口装置初始化的,则电器12可以回到图7的"空闲状态",并设置每个输出返回其未激活状态。用于初始化"开发状态"的消息可以在下层API的消息定义规范中找到。(参见API5,Op码2)。该网络消息定义为允许电器12进入开发状态。在开发状态下,启动特殊的API并暴露给网络14,该API允许客户机16直接控制电器12的电子输出。在开发状态下,面向生产的业^N见则如确认被绕过,从而给予客户机16对电子子系统的完全控制。下层API可用于实施电器的非标准操作,因为电器可以按照不;l才艮据由驻留在主控制器上的电器软件运行层实施的预定运行循环之一的方式iMl行。通过这种方式,下层API可以认为是启动附加的运行循环。附加运行循环的一些示例包括示范循环;开发循环;检错循环;诊断循环;减少预定运行循环之一的至少一个时间步骤的时间的循环;绕过预定运行循环之一的至少一个运行步骤的循环;代替响应预定运行循环之一的事件的步骤的定时步骤的循环;以及将下层API暴露给网络的循环。键按下API(API6)允许客户机16按下虚拟键。这提供了用于了练习和测试软件的等价方法而无需物理键区的机械或人工激活。注意在本申请中使用的约定俗成。"扩展"是指一个API可以建立在基本级别API的功能之上的能力,扩展关键字表示当APIx"扩展"APIy时,APIx=APIx+APIy。该注解简化了记录保存和API存档的任务。换句话说,APIx还包括在APIy中规定的功能。如果APIx和APIy分别指定具有相同Op码的功能,则APIx实施的实现可优先进行。家用电器的内部通信网络所釆用的分组结构的有效载荷部分的示例性应用分组如下所示。该应用分组根据API分组。核心API:APIID-1(类型3,版本1)。下面的应用分组代表从软件体系10指向客户机10的用于发布确认的消息(发布确认)。该消息由软件体系10发送给前一消息的发送者。该消息包含代表由软件体系10处理的前一命令的结果的列举值。一般来说,确认的接)M^示发送者可以初始化下一条消息。<table>tableseeoriginaldocumentpage48</column></row><table>注意事先接收的命令(正在确认的命令)的API和op码包含在有效载荷的字节4和字节5中。这向确认的接收者(发送原始命令的部件16)提供关于事先发送的命令正在得到确认的确定性。(事先发送的命令具有APIId和Op码的唯一标识符)。应当注意在附图和说明书中,一般假定ACK而且该ACK不连续重复或存档,上述应用分组的原因代码的列^H直在下面的表格中示出。<table>tableseeoriginaldocumentpage49</column></row><table>*0-3保留给软件体系10使用下面的应用分组代表从软件体系10向客户机(16或22)的用于公布heartbeat的广播消息(公布heartbeat)。该消息定期地由软件体系10发送。这使得注册了事件的节点可以在事件源中保持信心。换句话说,heartbeat保证连接的完整性。可替换的,客户机(16或22)可以确定,在软件体系10相信与产生和发送事件关联的事务结束之前,由软件体系10发送的每个事件或一些事件应当接收由客户机发送给软件体系10的确认。如果特定的事件是用根据消息说明API2,Op码-l,2,12或13的"确认,,的分类符创建的,则在接收到根据由APIIdl和Op码1指定的消息的确认消息时,软件体系10定义与产生和发送该事件关联的事务已经完成。公布Heartbeat在软件体系10接收到命令之后才会发送。这可以用于防止在通电期间的通信量阻塞。(通信量阻塞是指客户机16或22的软件内的误操作,其中客户机16或22内的软件成分不能准确地处理由于通电条件而产生的多个消息)。公布Heartbeat将被暂停到接收了复位SA消息之后,该复位SA消息将在下面针对核心DAQAPI和Op码8描述,但是公布Heartbeat会在下一M令之后恢复。这M馈消息。<table>tableseeoriginaldocumentpage50</column></row><table>下面的应用分组代表从客户机指向软件体系10的用于设置heartbeat周期的消息(设置Heartbeat周期),该消息设置软件体系10发送heartbeat消息的频率。示例性的频率范围从0秒(不发送)到3600秒(1个小时)。<table>tableseeoriginaldocumentpage50</column></row><table>下面的应用分组代表从软件体系10到客户机的用于发布heartbeat周期的消息(发布Heartbeat周期)。该消息是对设置Heartbeat周期的响应。该消息是必要的,因此如果第二客户机更改了该heartbeat周期,将通知第一客户机。需要不变的heartbeat周期的客户机应当是用DAQAPI来建立具有恒定广播操作符的事件,参见DAQAPIId=2,Op码l,字节9=4,5或6(参见更改操作符表格)。<table>tableseeoriginaldocumentpage51</column></row><table>下面的应用分组代表^户机到软件体系10的用于读取存储器尤其是RAM的消息(读取存储器)。该消息发送给软件体系10,并导致"公布存储器数据"的响应,该消息在下面示出(Op码4)并且包含在下面分组的字节3-7中指定的值。<table>tableseeoriginaldocumentpage51</column></row><table>节下面的应用分组代表4户机导向软件体系10的用于读M储器的消息(读取)。该消息发送给软件体系10并且导致"公布数据"的响应(Op码-8),该消息在下面示出并且包含在下面的读取分组、字节3-7中指定的值。<table>tableseeoriginaldocumentpage51</column></row><table>下面的应用分组代表从软件体系10指向客户机的用于>^布存储器数据的消息(公布存储器数据),并且是读W!"储器的响应。<table>tableseeoriginaldocumentpage52</column></row><table>下面的应用分组代表从软件体系10指向客户机的用于公布EE存储器数据的消息(公布EE数据),并且是读取EE的响应。<table>tableseeoriginaldocumentpage52</column></row><table>下面的应用分组代表M户机指向软件体系10的用于发送事件的消息(发送事件)。该消息指示软件体系10发送指定的事件而不考虑事件触发判断标准。注意事件Id是与Op码同义使用的。在描述作为API—部分的事件时,事件Id是用于Op码的更具说明性的术语。_<table>tableseeoriginaldocumentpage52</column></row><table>注意下面使用的注释在本文件中通篇重复并只在这里描述。如果字节3包含保留值OxFF,则软件体系10将字节3解释为代表所有APIId。否则,字节3就指定特定的APIId。类似的,如果字节4包含0xFF,则软件体系10将字节4解释为代表在字节3中指定的一个或多个API的所有事件。否则,字节4就包含一个事件Id。字节5到字节n包含一个事件Id。下面的申请分组代表从软件体系10指向客户机的用于发布时间的广播消息(发布事件),并且是上述发送事件消息的响应。替换的,如果正在使用DAQ引擎,则当满足事件触发判断标准时发送该消息。下面,APIId和Op码注释为"由客户机定义"。这是指APIID和Op码由DAQAPI(APIId-2)的createEvevt命令(由客户机发送)分配,具体在Op码1和2的字节7和8以及Op码12和13的字节3和4中。APIIDOp码字节3字节4字节5字节6字节7字节8-字节F由客户机定义由客户机定义数据MSB数据数据…数据LSB核心DAQAPI:APIID-2(类型3,版本1)。下面的应用分组代表^户机指向软件体系10的用于创建数值事件的消息(创建数值事件)。通过APIId=2和Op码=1或2标识的该消息允许客户机创建和配置>11馈变量[图33的NVOEvent结构。字节7和8用于分配将用于在事件^H吏得事件消息得以产生时填满公布事件消息(APIId1)中的字段的标识符(APIId和Op码)。所产生的事件消息是在前面对核心API的描述中找到的形式,其中对消息分组标以"公布事件"。标识符APIId和Op码分别位于公布事件消息的字节1和2中。在这些字节中找到的值可以通过下面为DAQAPI、Op码1和2定义的消息分配。字节3-5包含软件运行环境的存储器中的地址,该软件运行环境将用于通过作为估计规则的列举的字节9以及作为估计规则的变量的字节A和B代表的事件条件作估计。字节6指定应当相对于字节9、A和B被估计为单个数值的相邻字节的数量。<table>tableseeoriginaldocumentpage54</column></row><table>在该节示例性应用分组之后将详细讨论与上述应用分组的字节9关联的事件操作符,并且在标明在创建基于数字的事件时可获得的事件操作符的表格中示出。另外,字节C还对应于导致确认事件或未确认事件(下面讨论)的分类。参见图29中确认事件的操作的例子。<table>tableseeoriginaldocumentpage54</column></row><table>下面的应用分组代表M户机指向软件体系10的用于创建字节事件的消息(创建字节事件)。通过APIId-2和Op码-l或2标识的消息定义允许客户机创建和配置反馈变量(事件)。Op码2的消息规格的目的是类似的,但是具有为某些应用使用情况提供用途的不同的实施方式。APIId2和Op码2在功能上与API1和Op码1的不同之处在于,依据字节A的值确定是通过字节3-5和字节6指定的范围内的仅一个字节还是所有字节都基于字节9的更改操作符和字节B的更改值来估计。而在Op码1的情况下,所指定的直接被估计为一个数字。在Op码2的情况下,根据在字节A中指定的值,每个字节或仅一个字节将根据字节9中指定的更改操作符和字节B中指定的更改值来独立地估计。在该节示例性应用分组之后将详细讨论与上述应用分组的字节8关联的事件操作符,并且在标明在创建基于字节的事件时可获得的事件操作符的表格中示出。另外,字节C还对应于导致确认事件或未确认事件(下面讨论)的分类。参见图29中确认事件的操作的例子。下面的应用分组代表4户机指向软件体系10的用于清除事件的消息(清除事件)。清除事件消息允许客户机清除事先用创建事件Op码(1或2,如上所述)创建的事件定义。如果需要在多*令之间进行同步,客户机可以用MMP标志向软件体系10发送多个清除事件命令。<table>tableseeoriginaldocumentpage55</column></row><table>下面的应用分组代表从软件体系10到客户机的用于公布事件被清除的广播消息(公布事件被清除),并且是清除事件的响应。该消息通知软件体系10的客户机何时从现有的软件体系节点接口中去除Op码或API。<table>tableseeoriginaldocumentpage56</column></row><table>下面的应用分组代表^户机到软件体系10的用于复位软件体系10的消息(复位SA)。复位SA命令指示软件体系10重新初始化到好4象刚开始通电时。<table>tableseeoriginaldocumentpage56</column></row><table>下面的应用分组代表来自软件体系10的广播消息,用于通知软件体系10已经复位(公布SA复位),该消息是复位SA的响应。<table>tableseeoriginaldocumentpage56</column></row><table>下面的应用分组代表从客户机到软件体系10的用于打开针对指定事件的外部通告的消息(接通外部)。该命令指示软件体系10向外部向客户机通告该事件。参见图28中使用该命令的示例。<table>tableseeoriginaldocumentpage56</column></row><table>下面的应用分组代表来自软件体系10的用于通知指定事件的外部通告已经打开的广播消息(向外部公布打开),并且是接通外部的响应。参见28中该命令的结果的示例。<table>tableseeoriginaldocumentpage56</column></row><table>下面的应用分组代表从客户机指向软件体系10的用于关闭指定事件的外部通告的消息(关闭外部)。该命令指示软件体系不向外不向客户机通告该事件。APIIDOp码字节3字节4字节5字节6字节n2U:setExternalEventOffAPIIdOpCodeOpCodeOpCodeOpCode下面的应用分組代表来自软件体系10的用于通知指定事件的外部通告已经关闭的广播消息(向外部公布关闭),并且是关闭外部的响应。APIIDOp码字节3字节4字节5字节6字节n210:publishExternalOffAPIIdOpCodeOpCodeOpCodeOpCode核心DAQAPI:APIID=2(类型4,版本l-扩展类型3,版本1)。下面的应用分组代表从客户机指向软件体系10的用于获取事件数据的消息(获取事件数据)。获取事件数据指示软件体系IO发送指定数据的定义。该定义是在创建事件Op码消息中发送的数据的镜像,该消息在上面作为核心DAQAPI的Op码1或2示出。软件体系10用公布事件数据消息的集合响应,这些消息如下所示。APIOp码字节3字节4字节5字节6字节7字节ID8-字节F25:getEventDataAPIidEventld#Eventld#Eventld#Eventld#(0xFF=(0xFF=全部)全部)下面的应用分组代表从软件体系10指向客户机的用于公布数字事件数据的消息(公布数字事件数据),并且是获得事件数据的响应。每个事件定义都在分离的内部网络消息中才艮告,并且通过与图4的28的MMP标志关联的快照规则管理。事件定义包含关于在创建数字事件中的事件的信息。<table>tableseeoriginaldocumentpage58</column></row><table>在该节示例性应用分组之后将详细讨论与上述应用分组的字节8关联的事件操作符,并且在标明在创建基于数字的事件时可获得的事件搮作符的表格中示出。下面的应用分组代表从软件体系10指向客户机的用于公布字节事件数据的消息(公布字节事件数据),并且是获得事件数据的响应。每个事件定义都在分离的内部网络消息中报告,并且通过与图4的28的MMP标志关联的快照规则管理。事件定义包含关于在创建字节事件中的事件的信息。<table>tableseeoriginaldocumentpage58</column></row><table>在该节示例性应用分组之后将详细讨论与上述应用分组的字节8关联的事件操作符,并且在标明在创建基于字节的事件时可获得的事件操作符的表格中示出。下面的应用分组代表^户机指向软件体系10的用于创建远程数字事件的消息(创建远程数字事件)。该消息允许客户机或内嵌系统中的其它模块使用内嵌变量映射来配置与现有的API和Op码关联的反馈变量。尽管数量可以是4个字节,更改值可限制为两个字节。图26B示出内嵌的变量映射。图27定义3个网络节点之间的交互,其中节点A在节点B上成功创建远程数字事件。节点C试着进行相同的工作,但是通过与节点B的交互,这可以完成该请求的目的而不需要复制标识符(API和Op码)。其完成的原因是因为节点C可以向节点B查询存储器中初始标识符的地址,从而可以选择替换(非复制的)的标识符。然后将该替换的标识符用于通过向具有原始存储器地址和替换标识符的节点B发送(参见图27中的消息8)新消息来创建远程数字事件。<table>tableseeoriginaldocumentpage59</column></row><table>图26B示出内嵌的变量映射。图27定义3个网络节点之间的交互,其中节点A在节点B上成功创建远程数字事件。节点C试着进行相同的工作,但是通过与节点B的交互,这可以完成该请求的目的而不需要复制标识符(API和Op码)。其完成的原因是因为节点C可以向节点B查询存储器中初始标识符的地址,从而可以选择替换(非复制的)的标识符。然后将该替换的标识符用于通过向具有原始存储器地址和替换标识符的节点B发送(参见图27中的消息8)新消息来创建远程数字事件。下面的应用分组代表^户机指向软件体系10的用于创建远程字节事件的消息(创建远程字节事件)。该消息允许客户机或内嵌系统中的其它模块使用内嵌变量映射来配置与现有的API和Op码关联的反馈变量。<table>tableseeoriginaldocumentpage60</column></row><table><table>tableseeoriginaldocumentpage60</column></row><table>图26B示出内嵌的变量映射。图27定义3个网络节点之间的交互,其中节点A在节点B上成功创建远程数字事件。节点C试着进行相同的工作,但是通过与节点B的交互,这可以完成该请求的目的而不需要复制标识符(API和Op码)。其完成的原因是因为节点C可以向节点B查询存储器中初始标识符的地址,从而可以选择替换(非复制的)的标识符。然后将该替换的标识符用于通过向具有原始存储器地址和替换标识符的节点B发送(参见图27中的消息8)新消息来创建远程数字事件。下面的应用分组代表^:户机向软件体系io发送的用于从内嵌的变量映射中获得远程变量数据的消息(获得远程变量数据)。该消息指示软件体系公布涉及存在于内嵌的变量映射中的数据的信息。参见图27中使用该命令的示例。<table>tableseeoriginaldocumentpage61</column></row><table>下面的应用分组代表从软件体系10发送给客户机的用于公布远程变量数据的消息(公布远程变量数据),而且是获得远程变量数据的响应。该消息才艮告来自内嵌的变量映射的数据,如API、Op码、大小和地址。<table>tableseeoriginaldocumentpage61</column></row><table>核心发现API:APIID-3(类型3,版本1)。参照图6,下面的应用分組代表来自客户机的用于找到软件体系10的节点的广播消息(找到节点)。该广播消息使得节点可以找到软件体系10的其它节点。<table>tableseeoriginaldocumentpage61</column></row><table>下面的应用分组代表来自软件体系10的允许软件体系向其它参与14的部件爿>告其存在的广播消息(发布节点)。该消息是在軟件体系10的节点通电或复位时发送,或者作为对找到节点的响应而发送。另外,该消息可以在软件体系10的节点通过第二发现过程(给自己)添加API或向现有的API添加Op码时发送。当客户机动态地向软件体系10添加API或Op码(通过DAQOpl,2,12,13)时不发ilL^布节点。反馈消息的有效载荷包含防火墙密码,该密码由软件体系10的防火墙安全特征使用(参见图31中该特征的示例)。这使得该消息的发送者成为网络14中"受信"的节点。APIIDOp码字节3字节432:publishSANode防火墙密码MSB防火墙密码LSB下面的应用分组代表可以从客户机发送或广播给软件体系10的用于荻得软件体系10的API的消息(获得API)。该定向消息允许客户机发现由软件体系10的具体节点支持的API。APIId在电器内必须是唯一的。APIIDOp码字节3-字节F33:getAPIs下面的应用分组代表从软件体系10到客户机的用于发布软件体系10的API的广播消息(发布API)。该消息是获得API的响应,而且是允许客户机发现由软件体系10的发送节点支持的API的定向消息。APIIDOp码字节3字节4字节5字节n字节7-字节F34:publishAPIsAPI#API#API#APIn下面的应用分组代表可以^:户机发送或广播给软件体系io的用于获得API信息的消息(获得API信息)。该定向消息允许客户机发现关于指定API的版本和类型信息。cOp码字节3字节4字节5字节n字节7-字节F35:getAPIInfoAPI#(0xFF-全部)API#API#APIn下面的应用分组代表从软件体系10到客户机的用于发布API信息的定向消息(公布API信息),并且是获得API信息的响应。该定相信息允许客户机发现关于指定API的版本和类型信息。每个API都有一个消息,而且这些消息利用图4的MMP标志约束。<table>tableseeoriginaldocumentpage63</column></row><table>字节4和5代表可以用作API的特定子分类的指示的API类型。类型的值可用于确定子部件(API)之间的兼容性考虑。字节6和7代表(特定类型的)API的版本。该值可用于表示对功能的调试定位或更改。对于类型,其启动了运行时兼容性检查,该检查可以告知客户机该版本是否兼容。可替换的,字节407可与字节3结^来用于形成5字节类标识符,其中类是指类库中的类定义(本领域技术人员可以理解)。利用替换的方法,字节3(APIId)是运行时对象处理程序,字节3-7在数值上链接地形成类id。与字节8关联的实例个数向客户机标明API具有多个实例。客户机可以跟随下面描述的获得实例信息来找到属于该API的实例Id。DescrChar1-DescrCharn是可以有助于开发者的可选特征。描述性的文本可用于注释APIId。例如,"上"或"下"可用于双炉灶的两个灶穴。下面的应用分组代表M户机到软件体系10的用于获得实例信息的定向消息(获得实例信息)。该定向消息允许客户机发现报告API的多于一个实例的API的实例Id。任何API的第一实例都使用APIId作为其实例Id。如果在相同的可寻址节点上存在具有一个APIId的多个实例,则向随后的实例动态地分配实例Id。当一个物理网络节点上存在一个API的多个实例时,这些动态分配的Id可以代替APIId使用。<table>tableseeoriginaldocumentpage64</column></row><table>下面的应用分组代表从软件体系10到客户机的用于发布实例信息的广播消息(发布实例信息),并且是获得实例信息的响应。该定向消息允许客户机发现实例Id。任何API的第一实例都使用APIId作为其实例Id。如果在相同的可寻址节点上存在具有一个APIId的多个实例,则向随后的实例动态地分配实例Id。这些动态分配的Id通过上述公布API信息消息通信。为统一起见,公布API信息是为第一实例发送的(即当APIId=实例Id时)。对API实例存在一个消息,该消息使用MMP标志来约束。当一个物理网络节点上存在一个API的多个实例时,实例Id的值可以代替APIId使用。<table>tableseeoriginaldocumentpage64</column></row><table>1允许API子分类或专门化。例如,APIId可以指洗礼机API,类型可以指定特定的洗^漠型。2启动版本控制(即对功能性的调试固定或更改)。启动运行时兼容性检查,该检查可以通才^户机这些版本是否兼容。3允许客户机将实例Id与其物理功能关联。例如"上,,或"下"可用于双炉灶的两个灶穴。优选地,DescrChar1-DescrCharn允许客户机将实例Id与其物理功能关联。例如,"上"或"下"可用于双炉灶的两个灶穴。但是,软件体系10的用户可以使用DescrChar1_DescrCharn用于任何有用的目的。核心DebugAPI:APIID=4(类型1,版本1)。下面的应用分组代表从软件体系到客户机的用于发布饱和的广播消息(发布饱和)。饱和发生在内部网络14的支持层不能运送软件体系10已经放入WIDE14A的发送队列中的数据时。AallO没有队列;如果WIDE14A不能维护该发送数据,则软件体系lO发i!Ul布饱和消息。<table>tableseeoriginaldocumentpage65</column></row><table>示例性的机器状态列举值在下面的表格中给出。根据本发明的实施例,运行状态包括在内。但是在某些情况下,运行状态有些模糊,附加的阶段变量必须暴露,从而可以写入恰当的客户机端的业务逻辑。在替换实施例中,消除运行状态以有利于更精细和确定性的状态机,其中每个状态的每一阶段正确存档。在该实施例中,在用于附加列举的字节中存在足够的地址空间。才几器状态列举空闲1运行编程3默认4开发循环结束6暂停保留8保留9保留10特定于电器11-255下面的应用分组代表从客户机到软件体系10的用于在开发状态和空闲状态之间拨动用于管理图7的状态的家用电器12软件运行环境16的定向消息。注意开发状态未在图7中示出,但是本领域的技术人员可以想到开发状态只能从空闲状态进入而且在退出时返回到空闲状态。APIIDOp码字节3-字节F字节4-字节F52:setDevelopmentState1=打开2=关闭核心键按下API:APIID=6(类型1,版本1)。下面的应用分组代表4户机到软件体系10的用于按下键的定向消息(^^按下)。该定向消息允许客户机发送虚拟的键按下。键索引由于在内嵌处理器中使用的编码技术而不能被发现;因此,键索引可以手动地或通过其它自动机制从源代码文件中提取。APIIDOp码字节3-字节F字节4-字节F6l:pressKey键索引下面的应用分组代表从软件体系10到客户机的用于公布键按下的广播消息(公布键按下)。<table>tableseeoriginaldocumentpage67</column></row><table>示例性的键按下索引列#在下面的表格中给出。<table>tableseeoriginaldocumentpage67</column></row><table>存储器/端口API:APIID=7(类型3,版本1)。下面的应用分组代表M户机到软件体系10的用于写入存储器的定向消息(写入存储器)。存储器/端口API通过图3的开发状态启动,关联的交互类似于上面描述的图3的开发状态和下层API(APIID=7)之间的关联。该定向消息允许客户机写入指定的RAM位置。写入到指定的RAM位置只限于单个分组。在目前的实施例中,这是28的28A中示出的13个字节。(28的)MMP-1对该消息无效。<table>tableseeoriginaldocumentpage67</column></row><table>下面的应用分组代表M户机到软件体系10的用于写入存储器的定向消息(写入)。写入到指定的RAM位置只限于单个分组。在目前的实施例中,这是28的28A中示出的13个字节。(28的)MMP-1对该消息无效。<table>tableseeoriginaldocumentpage67</column></row><table>轮询变量API:APIID-10(类型1,版本l)。参照图5,下面的应用分组代表^1户机到软件体系10的用于读取轮询变量的定向消息(读取轮询变量)。该消息指示软件体系10发送下面示出的公布轮询变量消息,以针对只用于轮询的变量。轮询变量可以是由开发人员为具体应用硬编码的,而且可以在RAM/ROM资源不允许使用DAQAPI时使用。<table>tableseeoriginaldocumentpage68</column></row><table>下面的应用分组代表从软件体系10到客户机的用于公布轮询变量的定向消息(公布轮询变量),并且是读取轮询变量的响应。对在初始化读,询变量消息中指定的每个轮询变量索引存在一条消息。<table>tableseeoriginaldocumentpage68</column></row><table>上面在DAQAPI—节中讨论了事件操作符的注释。创建事件数字和字节消息(DAQAPIOp码1和2)的字节9以及CreateNumRemoteEvent和CreateByteRemoteEvent(DAQAPIOp码12和13)的字节5是在图33的NVOEventStructure中示出的事件更改操作符。操作符是向软件体系IO描述软件体系IO应当产生事件消息的数学条件的指示。下面的表格描述了事件操作符的例子。事件操作符的变量取决于正在创建的事件的类型(叩码分别为1和2的基于数字或基于字节)。事件操作符是具有两个变量的DAQAPI的一部分基本(类型l)和扩展(类型2)。注意该表格中的第五列,其指明每个事件操作符对于DAQAPI的多个修订版本(4)的可获得性。下面的表格给出可在创建基于数字的事件(APIID2,Op码1和12)时使用的事件操作符<table>tableseeoriginaldocumentpage69</column></row><table>下面的表格给出可在创逸基于字节的事件(APIID2,Op码2和13)时使用的事件操作符<table>tableseeoriginaldocumentpage69</column></row><table>BIND操作符允许客户机16由一个事件触发产生多个存储事件。换句话说,一旦分配了事件ID,就可以创建将在最初的主事件被触发时自动发送出去的后续事件。在用改变中操作符建立起基于字节的事件(叩码=3)之后,字节9中的值255将指示软件体系IO对通过地址和大小变量指定的范围内的所有字节都进行更改检测。位掩码操作符实现了监视字节内的位转换的功能。掩码值应当i殳置为^f吏得位-l表示"关心",位=0表示"不关心"。如果设置为"不关心",则在该比特位上的值变换不会导致事件的产生。AallO没有提供针对时间同步的明确的解决方案,但是提供了启动机制。远程客户机16、22创建被周期性广播的事件的能力使得远程客户机16、22可以保持与电器同步的日时钟时间。由于软件体系10可能不会向API明确地暴露日时钟时间,因此客户机16、22可以存储存有日时间的地址。AallO核心具有一些设计考虑,这些考虑可以用来产生在此所述的本发明的替换实施例。下面的项目可在确定软件体系10的核心实施的替换实施例时考虑*消息体系有效载荷结构或消息大小*多个有效载荷消息完整性检查*状态察觉消息M*APl版;M定-发现*连接完整性*流量控制和确认消息o返回无效o返回有效o发出參状态完整性*键按下vs.逻辑API多节点网络o多个节点o多个客户机o同一网络上的多个API实施o同一网络节点上的多个API实施o使用相同Op码的API—命名空间〇SAP分配oSAP发现消息体系消息体系是主要的设计元素,其解决方案具有很多非独立的设计结果。内部通信网络14协议28与以前的网络相反为由事件驱动的消息提供了新的可能性。要考虑的要素是如果节点注册了通知消息它们是否要彼此轮询。轮询是节点定期地向请求更新值的数据持有人发送消息的一种实践(例如,连续地每100ms请求一次数据)。轮询通常实施得更为简单而且使用更为普遍,并且可以保持通过每个请求验证的连接完整性。但是,在轮询时客户机必须连续不断地请求信息。网络带宽被不变的数据占满(带宽是在给定时间段内可以通过通信信道的数据量,存在一些影响带宽的因素,例如网络上的节点数量,发送频率(波特率),协议开销(CRC,确认,源/目的ID等),传输协议硬件,而且电缆连接控制带宽的限度,但是应用协议负责使可用的带宽得到最大效率的使用)。轮询体系不会伸缩当节点增多时消息的数量指数增长。假定在每个节点上存在其他每个节点都需要的信息消息数量=1^2-11。数据通常不与控制的存储器同步,消息延迟可能达到轮询率的两倍。产生事件是在特定条件下用新的数据值通知注册为数据持有人的节点的一种实践。数据持有人接着负责在数据满足最初在注册期间规定的判断标准时向观测节点发送消息。(例如仅在数据改变时发送数据)。在产生事件的模型中,由于数据仅在其改变时才被发送,因此带宽使用得到了优化。该模型良好地随着消息流量而伸缩,并且将延迟降至最4氐。数据与控制同步。但是需要连接确认(heartbeat)。否则客户机可能不知道事件源何时离线。替换的,产生事件模型中的连接确认可以利用作为从时间观测者返回事件源的附加消息的确认来完成。当事件源发送事件消息时,在接收到确认消息之前事件源不会认为该事务已完成。在超时时间过去之后,事件源可能重新发送该事件。该过程可以重复确认事件发送重试的可配置次数。在产生事件体系中,可能需要图9中由28的MMP管理的消息结合。这是一种用于将根据微控制器的同一次"扫描"产生的事件分组的机制。在这种情况下,优选实施例是产生事件模型,因为产生事件具有上述优点而且针对产生事件的缺点的补救措施比较简单。连接确认利用heartbeat和/或确认事件来解决。在使用heartbeat时,事件源定期发送事件,从而该节点的所有事件监听者可以知道该事件源是健康的。类似的,将heartbeat实施为其频率是可编程的还可用于通报所有事件定购者该事件源是健康的,Heartbeat周期可从网络配置。在此详细描述的确认事件是一种替换方法,可以附加于heartbeat或可编程heartbeat使用以保证连接的完整性。消息结合由每个消息分组28的有效载荷中的消息分界位来解决。这使得软件体系10驱动器可以收集对应于同一次微控制器扫描的消息,并将这些消息一起提交给应用层。采用本发明的作为DAQ30了解的子部件,软件体系允许客户机16通过内部通信网络14动态地注册到电器控制部件16(由软件体系10启动并包括软件体系DAQ30的可选子部件),以便接收在指定存储器位置处的值何时相对于指定条件变化的通知。这将电器控制16从具有硬编码的反馈变量中解放出来,并允许实时反馈来根据电器而改变,从而不需要客户机的轮询(基于事件的更新按照需要准确广播)。采用图33的动态存储器堆,即保留给运行时可配置反馈消息的存储器,其中该存储器堆的大小可在编译时配置。已经发现每个反馈事件变量需要大约10字节的RAM。在该存储器堆中记录的事件(图33的NVOEvent)可以通过由客户机发布给由软件体系启动的部件的内部通信网络14命令来添加或复位,该软件体系也安装了可选的子部件DAQ30。有效载荷结构28A有效栽荷结构的一个示例是由成组的多个变量一起构成(在i殳计时)的静态复合有效栽荷,从而对于一个事务来说客户机可以向电器12内的部件发送完整的命令,或接收该部件的完整状态。在命令的情况下,客户机可能不想要改变有效栽荷中的每个变量,因此需要必要的状态更新来对命令有效栽荷填充不打算改变的变量的当前状态。此外,改变的变量可能无法字节映射为一个有效栽荷定义,从而导致包含散布的、已更改和未更改的数据的多个消息,在简单的有效载荷结构中,只有一个变量可以存在于有效载荷中。该有效载荷具有更为简单和容易的实施,而且可以近似于动态复合有效栽荷(下面将描述)。但是,由于消息开销与数据的比例更大带宽没有得到优化,而且作为变量需要的消息结合是单独发送的。在动态复合有效载荷结构中,有效栽荷不是在设计时静态定义的,而是由发送节点动态建立的。在这种情况下,有效栽荷的长度由发送者希望发送的数据确定,此外,在有效载荷中必须包含标识符和可能的分隔符,这使得接收方的分析器可以分解有效栽荷的组成部分。重申一次,接收节点必须具有复杂到足以将多个变量有效载荷分成其组成部分的分析器。该有效载荷结构优化了带宽,但是由于分析器所需要的复杂性可能增大ROM需要。对应用协议也增加了一些开销,因为动态复合有效载荷必须嵌入叩码长度作为消息的一部分,需要由接收部件进行额外的分析,而且可能难以理解和实施。本发明的优选实施例是对应用协议采用简单的有效载荷结构。动态复合有效栽荷的复杂度可能难以对软件体系10中采用的消息进行成本效益分析。为了最大化軟件体系10的使用,优选接口的复杂度应当被最小化。通过使用复合有效载荷,由于其复杂特性,可能妨碍了软件体系10的使用,尤其是对于内嵌的客户机。简单的有效栽荷是对动态复合有效载荷的良好近似,尽管可能有额外的消息开销(即,对每个内部通信网络14的消息存在5个字节的开销)。还有另外两个字节的开销用于支持软件体系10应用协议28。这为每个内部通信网络14消息协iiC24留下13个字节用于在某些特定于应用条件下的数据。使用静态的复合有效栽荷可能不灵活和比较浪费。图9的消息结合是用在每个消息分组的有效载荷中使用MMP位来解决的。这使得软件体系10驱动器可以收集对应于同一次微处理器扫描的消息,并将这些消息一起提交给应用层。状态察觉命令相对于电器12的用户接口,电器12就像个状态机。当按下键时,该状态机从一个状态转换到另一个状态。对于每个状态都知道对下一次推动哪些键是有效的候选键。类似的,还知道对下一次推动哪些键是无效的。总的来说,当按下无效的键时,电器12产生声音警报以告诉用户该电器处于不适于该键的状态。相同的概念也适用于希望发送有效命令的外部客户机,虽然该客户机可能不发送键按下。一般来说,对于电器控制开发出两种类型的状态机键按下状态机(如上所述)和过程状态机。典型的过程状态机的例子在图7示出。图7是示出家用电器12的各种状态的示意图,该家用电器在图7中例如是洗衣机,而且从软件体系10的交互到各种状态32以及默认故障模式34。示例性洗衣机的各种状态32在图7示为空闲、洗衣、漂洗、旋转和暂停。该示例电器12的其他状态以及不同电器12的状态是可以想到的,图7所示的例子只是举例而已。过程状态机的状态可以才艮告给外部客户机16.但是在检查时,可以看见图7的过程状态机不针对来自所有可能的用户输入的事件(即时钟设置、旋转速度选择、负荷大小选项等)。一般来说,电器控制中的逻辑具有最终其它条款以处理没有预定的所有其他情况。假定希望客户机16理解管理控制的状态变化的规则,从而可以避免客户机16发送无效命令。考虑到客户机16不会发送键按下这个事实,设计者必须理解无法得到允许客户机一方确认的文档或数据结构(即在发送请求之前确认)。最后,这可能导致可能发送命令的客户机应用,接收部件由于其基于图7的示例性状态的确认逻辑而不运行。该解决方案不仅对带宽使用有影响,而且对应用的总体稳健性以及终端用户的满意度也有影响。从带宽的角度来说,可以说消息不会导致期望的行动,而是错误代码或重试是带宽的浪费(假定可以防止)。用用户满意度的角度,防止用户出错的应用通常被认为比允许用户出错然后用对话框解释发生了什么事的应用更为"友好,,。根据本发明设想了状态合适命令的各种实施例。采用客户机编码的规则部分,状态信息的子集用于为了防止无效请求而开发情况逻辑或控制状态的仿真。该模型通常不更改控制体系,但是可以让客户机和控制很容易不同步。该规则和逻辑开发可以基于反复试验(例如编码、测试、重新编码)。客户机设计可能快速展开,从而产生设计不好的程序代码。采用设计时基于状态的API数据模型,开发出数据模型,从而客户机可以解释该数据模型而且防止无效请求。实际上,状态和有效叩码之间存在相关(op码是消息标识符)。其优点是Op码或API的开发者也负责向客户机的开发者发布信息(在设计时),从而允许设计者在客户机上仿真状态机。该仿真的状态机使得客户机应用不会发送无效请求。控制需要暴露在API数据模型中定义的每个状态。设计时的数据模型要求控制开发者负责交流管理Op码实用的状态规则。客户机和控制可能很容易失去同步,因为数据在运行时无法使用。必须创lt^映写入代码的文档。该文档必须维护和/>布。该文档必须分析或转换到客户才几端的逻辑,并且不会在所有时候工作。电器状态可以在命令刚被发送时改变,从而导致无效命令。采用运行时基于状态的API数据模型,该解决方案与前一解决方案相同,只是该数据模型不是在设计时在开发者之间共享,而是在运行时在客户机和控制之间共享。对于要从控制告知的数据需要一些额外的消息收发。在该运行时数据模型中,控制的开发者必须负责通报管理Op码使用的状态规则。客户机可以在运行时发现Op码/状态相关的定义。客户机和控制总是同步,而且客户机和开发者的活动是优化的一无需手动翻译为文档/从文档手动翻译过来。需要额外的代码(ROM)(—次性写入)用于排列和分解Op码/状态相关的定义。需要将一些网络带宽用于传输数据,而且由于传输数据产生一定的启动延迟。这不会在所有时候都产生。状态可以在命令正仗义送时改变,从而导致无效命令。采用后命令确认列举模型,上面的三个选择具有防止客户机发布该命令以控制在无效状态的目的。该解决方案没有尝试这种预清空。而是允许客户机应用随时发送任何命令。如果该命令无效,则产生确认,从而客户机可以采取合适的行动。该确认可以包括或不包括列举的原因代码。在后命令原因代码模型中,不改变控制体系,而是客户机更可能发送将会遭到拒绝的命令。客户机开发者必须设计一种策略来应付拒绝确认,由于被拒绝命令消息的频率而导致终端用户经验可能不是很令人愉快。釆用组合了设计和运行时数据模型的设计时命令传统和源代码分析模型,对内嵌代码的结构具有最小的影响,并且传达了期望的运行时功能。这通过产生客户机一端的分析器来完成,该分析器可以分析内嵌的源代码,并确定要为每个外部Op码监控的变量。对该解决方案的要求是(1)每个非诊断外部命令(Op码)具有关联的单个布尔变量,该变量代表执行所需要的允许状态;(2)釆用命名传统,使得分析器可以将每个允许变量与对应的外部Op码关联。在源代码分析模型中,控制的开发者负责通报管理Op码使用的状态规则。客户机16可以在运行时发现等待确定恰当版本的Op码/状态相关定义,并且客户机和控制总是与恰当的版本同步。不需要额外的参考文档,但是对于编码实践、每次扫描要执行的附加逻辑、所需要的很小的额外RAM和ROM存在并非不重要的改变,而且只有高级的客户机才能够分析源代码。采用学习客户M型,该解决方案不需要更改内嵌式系统。在这种情况下,客户机会在每个遭到拒绝的命令之后"学习",并且建立会随着时间完成期望的运行时行为的客户机一端的允许映射。在学习客户枳厲型中,不改变控制体系,但是其假定是在拒绝时估计正确的状态变量。如果没有观测到状态变量,这客户机不能了解是什么导致了该拒绝。已经发现这些选项的一些是优选的实施例。现在,主要的优选实施例是运行时API数据模型。该设计的示例性优点是家庭控制应用。但是该模型需要额外的内嵌设计。由于当前的商业环境没有产生对该实施例的需要,因此一直采用后命令确认,直到采用运行时API数据模型(也称为分类引擎)的成本效益变得更有利时为止。AallO的挑战之一是要提供功能而不影响电器12的生产计划。AallO可以实施确认的请求模型。NVORecipeStatus(APIID=1,Op码=1)是优选的、由软件体系10在接收到每个消息之后发送的确认消息。API版M定一图6的发现尽管软件体系10的核心与任何API无关,但是软件体系10的目的是要暴露多个API。期望API将随着时间不断添加到软件体系10中更为实际。想到这一点,就需要考虑API发现和版本确定。还可以想到随着软件体系10应用增长,微处理器资源将不足以同时支持所有的软件体系IOAPI和功能。通过采用编译器的指示,软件体系10可以配置为使得在机器的开发寿命期间API将会为同一个模型出现和再出现。发现是软件体系10的长期成功的关键。AallO的基本目的是在客户机16和控制部件16之间扮演中间件的角色。假定下面描述的情形,客户机16就需要查询控制以发现当前的功能是什么。如果不存在某些功能(即编译时判断),则期望应用能够体面地停止运行并通知用户该应用的支持目前没有编译到电器控制软件中。存在很多客户机实施以及很多交叉平台和特定于平台的API。编译器指示可以被开发为包括或不包括软件体系10的某些功能。在控制上可能不会允许软件体系10的所有可能的功能同时存在于微处理器上。在此涉及API的版本确定和发现方法的本发明的各种实施例都没有脱离本法明的范围。采用基于模型号的发现模型,客户机负责理解控制的功能。这可以采用基于客户机的数据结构、远程数据库、或者类似OSGi的运行时代码运送工具来完成,这种运行时代码运送工具包括所有关于电器12的特定模型号的相关信息。在基于模型号的发现模型中,对电器控制没有额外的要求。但是,模型号通常不是在产品开发周期开始时分配的,因此在早期软件开发中不能获得该模型号。模型号由于颜色机制、商标和其它枝节因素可能变化。不同的API由于编译器指示可以驻留在同一模型上。可能需要客户机负责在发现后获得功能定义或等价代码。采用基于APIID的发现模型,基于API的发现一点也不取决于模型号,而是将任何产品都定义为精心定义的接口的集合。该技术允:^午相同的API驻留在多个产品上,从而导致某种再利用。在基于APIID的发现模型中,对APIID的参考补偿了基于模型号方法的缺点。该模型允许多个产品共享相同的编译器指示和相同的API定义,并且能够促进软件体系10的子功能再利用。但是,客户机可以负责在发现后获取功能定义或等价代码,可能需要额外的管理开销以维持和分配唯一的API,而且可能需要来自控制微处理器的额外资源来支持发现Op码(即额外的消息^).采用功能发现模型(也称为分类引擎),该模型将API发现作为附加的步骤。除了API的ID之外,客户机还请求和获得对应于该API的数据定义。换句话说,客户机发现每个功能调用,每个功能调用变量,以及每个变量的有效值。在功能发现模型中,不需要第二查找来获取功能定义。该模型接近UPnP或Web服务类型概念,并为转换到可由数据驱动的LCD屏幕用户接口设置了基础。但是,这一概念在用于低富裕机械键区和执行器时可能有成本缺陷。而且为了利用该技术的优点,客户机16必须开发该功能定义的解释器,该解释器可能需要软件体系10子功能开发者更多的建模努力以及来自控制微处理器的明显更多的资源o.已经发现,在准备该应用时,基于APIID的发现模型是优选的实施例。除了APIID之外,每个API可以具有类型和版本,从而API的很多不同置换可以长时间存在。这使得协议更为灵活(例如对特定电器12如甩干机可以有很多类型的API,以及每种类型存在不同的版本厄干机API,水平甩干机类型,版本l)。根据本发明,发现可以通过很多方式启动。在通电时,用软件体系10启动的每个节点在内部通信网络14上广播称为公布节点的消息。其次,节点随时可以在内部通信网络14上广播称为找到节点的消息。该消息将导致所有节点用公布节点的消息响应。该API已参照图5和发现API详细讨论。由于发现是软件体系10的关键,因此版本确定是成功发现的关键。用于调整API发现的相同道理可用于API版本确定。版本确定允许客户机找出更多关于已经发现的API的信息。在API发现期间,API版本和类型要在与APIID相同的数据结构内净艮告。例如,可以采用简单的号码冲撞方法。此外,可以想到APIID和版本号具有一或两个字节或n个字节的数据结构。连接完整性在产生事件体系中,连接完整性是个问题;而在轮询体系中,连接完整性是固有的。在产生事件体系中,客户机16可以成功注册以收听反馈(例如针对温度读取)。一旦注册完成,客户机就依赖控制来通报温度的变化。这样,客户机将网络问题解释为恒定的温度。相比较而言,在轮询体系中,客户机不断向控制查询温度反馈,其响应或缺乏将立即表明连接的完整性。采用可选的heartbeat模型来执行连接完整性,客户机必须注册用于基于网络的heartbeat,采用自动的heartbeat模型,软件体系10在通知寄存緩冲器不满时自动产生heartbeat.Heartbeat可以是广播消息或指向特定节点的消息。在可选的heartbeat模型中,如果存在不需要该模型的实例,则可以取消heartbeat,在需要该模型的实例中,客户机必须配置软件体系10以产生heartbeat。在自动的heartbeat模型中,不需要期望的功能一软件体系10本身就很稳健。在广播heartbeat中,只需发送更少的消息,定制的heartbeat可以通过基于时间的事件更新来完成,而且定制heartbeat具有更简单的实施。但是,这可以导致从不参与软件体系10协作的其它网络节点来处理消息。而且,没有正确处理广播消息的节点可能误解释了到来的消息。在定向的heartbeat模型中,只有启动的节点需要处理软件体系IO应用协议。但是可以釆用定向的heartbeat模型发送更多的消息。对于本发明,已经发现优选的实施例是用于连接完整性的heartbeat,具体地说,广播消息可以用于heartbeat.不喜欢该广播heartbeat速率的客户机可以替换地使用基于周期时间的NVO事件更新。使heartbeat自动化可以减轻客户机的负担。相对于包含在软件体系10中的API来^L,下面的功能作为核心API(Id-1)的一部分受到支持heartbeat消息,设置heartbeat周期。Heartbeat优选在从客户机16接收到第一消息时以默认周期自动启动。用于连接完整性的另外可选的优选方法可以引入到软件体系10中。已经发现随着软件体系的应用增长,确定需要额外的连接完整性的方法。采用用于连接完整性的heartbeat方法对很多应用情形都是适用的。选择该方法是因为它代表了带宽利用和事件源的置信水平之间良好的平衡。但是,由软件体系10发送的事件消息可能无法由计划的事件定购者处理,即使该事件定购者没有检测到遗漏的heartbeat,在这种情况下,时间定购者不能检测故障,因此不能采Wt正措施。在检测到遗漏的heartbeat的情况下,该校正措施是事件定购者可能请求事件源重新发送(所有)事件的(全部或子集),从而该事件定购者具有最新的数据。为了解决可能的未检测到的故障模式,通过软件体系10提供了连接完整性的第二种方法。该方法作为经过确认的事件公知,其允许每个事件消息的完整性得到单独的管理。图29示出经过确认的事件的功能。在图29的说明中描述了涉及经过确认的事件的更多细节。流量(流)控制可配置的异步过程是强大的,但是在配置超过其物理处理和带宽限制时就可能出现故障。引入了用于在4种公知故障情形中防止饱和的机构返回无效请求,返回有效请求,发出消息事件,以及通电条件。返回无效请求一它像是客户机格式化和发送无法被控制正确分析和理解或者可能通过控制的状态而无效的请求。返回有效请求一无需考虑,客户机可以请求控制在该控制能够处理第一任务之前完成第二任务。在緩冲模型中,可以使用接收緩冲器,从而允许客户机发送很多请求而不考虑控制服务这些请求的能力。在该模型中,客户机没有责任,即使该模型的实施更为简单。但是緩冲没有解决流控制的问题;它只是延迟了这个问题,或使得这个问题更不容易或更少发生,而且緩冲需要更多的RAM。在流控制模型中,可以使用消息收发,从而客户机在发送第二请求之前需要等到控制准备好为止。在流控制模型中,流控制问题得到了非常稳健的解决,故障模式被消除。但是客户机必须实施流控制协议。在经过确认的请求模型中,控制向每个客户机请求提供积极或否定的响应。在经过确认的请求模型中,该模型允许客户机16开发简单的重试或发现情形。但是,该模型需要更多的带宽用于确认,而且需要额外的ROM和i殳计,在未确认请求模型中,客户机请求是未经确认的一客户机必须使用状态信息来确定该命令是否成功。在未确认请求模型中,利用了更少的带宽和ROM。但是,应用用户经历可能不好,客户机应用不指明所发布的命令是否成功,因此不能自动启动重试,用户注意到未成功的命令并需要手动重复该命令行为。已经确定本发明的优选实施例是具有经过确认的命令模型的流控制协议。此外,确认可以列举,从而客户机过程可以开发尽可能稳健的恢复情形。由于本发明中前面提到的确认消息为经过确认的命令提供了API和Op码,因此客户机可以识别得到响应的命令。这防止在多个控制板网络中的沖突,其中位于电器内的多个控制板全都使用软件体系10。流控制和命令确认是允许客户机尽可能快速地发送数据而不会使控制饱和的技术。优点是非常灵敏的应用而不会引入不需要的延迟或不期望的应用错误。流控制的优点是利用公布确认,API点=1,Op码l来达到的。每个命令都用公布确认响应来确认。新的命令仅在接收了READY(就绪)或UNSUPPORTED(不支持)的公布确认值之后才允许。公布确认使状态机用于如图8所示的命令流控制。图8是示出图1的软件体系10如何根据本发明与到来的命令交户并基于家用电器的状态确认或拒绝该命令的示意图。在图8中用附图标记36示出各种流控制状态指示符,如基于各种命令38和发布的响应40的POWER一UP,READY,BUSY,REJECTED,UN一SUPPORTED。发出消息事件(反馈)。在微控制器的每次扫描期间,软件体系10的DAQ30收集代表必须在总线上发送出去的事件的字节阵列(参见图36的处理DAQ事件状态)。AallO的DAQ30可以如图5所示配置,因此客户机可以配置软件体系10以传送比通信总线的带宽所允许的更多的数据(即过配置)。为了防止这一点,可以采用配置限制模型来限制客户机16配置软件体系IO的能力以避免该问题。在緩冲模型中,软件体系IO可以配备发送緩冲器。在饱和消息模型中,软件体系10检测何时向传输层提交了太多的数据从而该数据可能无法发送给客户机。在要求重新启动模型中,事件发布暂停,事件饱和消息发送出去和/或广播。一旦接收到SendEvents(例如255=全部)消息就重新开始产生事件。在不重新启动模型中,发送和/或广播饱和消息,然后软件体系10继续产生事件。在发送緩冲器模型中,客户机没有责任,客户机实施更为简单。但是,緩冲没有解决问题;它只是延緩或使得该问题更不可能或更少频率地发生,并需要更多的RAM。在配置限制模型中,该模型会防止问题,从而不需要恢复过程,不可能推导出配置限制,该限制基于相对于软件体系10处于随机特性的机器状态变换。在饱和消息模型中,客户机可以检测软件体系10在至少一次扫描中无法向内部通信网络14提交新的数据。客户机无法确定该数据是否丟失,饱和消息也不一定意味着存在故障,只是可能丢失了数据。在不重新启动模型中,客户机没有责任,但是不强迫客户机的开发者实施饱和恢复过程,客户机的开发者无法觉察到事件可能由于软件体系10的过配置而丢失。这种类型的故障不是灾难性的,因此客户才几应用可能忘记数据的丢失。在要求重新启动模型中,客户机的开发者必须考虑饱和故障及其对应用的暗示,这防止找到漏洞的临时努力,而且故障模式是灾难性的和/或明显的。但是,客户机必须实施饱和恢复过程,而且在要求重新启动过程期间可能存在暂时的延迟。在什么也不做模型中,避免了不需要的工作,但是可能出现无法预见的状况,从而导致客户机的开发者花时间去解决可能按程序诊断的问题。确定不要求通过编译器指示提供重新启动的饱和消息是本发明的优选实施例。饱和消息必须在其它事件进入传输层发送緩冲器之前成功发送出去。下面的消息收发功能作为软件体系10调试API(APIId=4)的一部分受到支持获得饱和和注册饱和消息。作为如图4所示的分组结构28,软件体系10的所有分组采用可能导致命令空间冲突的Cmb/Fb标志。因此可以使用用于区别的Cmb/Fb标志在相同的API下重叠Op码。通电条件。如果软件体系10节点经历电力的短暂缺失或者微复位,客户机可能具有针对软件体系10模块变量的不正确快照。为了实现稳健的运行,软件体系10可以通知其客户机前面输出的变量不再被认为是有效的。在考虑短暂的条件时,软件体系10的配置可能存储在非易失存储器中,这使得可以进行通信的自动恢复。在广播消息模型中,软件体系10发送特殊的广播消息,以通知所有客户机在通电时"清空其緩存"。可以理解客户机16的一些应用可能不需要考虑该故障模式,因此不会使用该特殊消息。还已知软件体系的软件运行环境会在heartbeat周期内经历故障(导致其内部存储器的复位)和恢复。由于只有heartbeat作为检测装置,该快速恢复会产生这样的可能性客户机16存储器所保存的来自软件体系的软件运行环境的存储器的特定值的副本不再对应于该软件运行环境的存储器内的当前值。为了解决该故障情况,通电消息可以包含在软件体系10中。该消息与heartbeat无关,并且向任何客户机16表明软件体系10的软件运行环境的存储器的任何以前保存的值很可能无效,而且客户机应当通过使用API1Op码7的sendEvent消息来重新获取当前值。还要理解,或计算,"l到重新获得i前值;止。、、''—"、在丢失heartbeat模型中,软件体系10可以停止其heartbeat,使得客户机可以确定恰当的故障模式行为。但是如上所述,heartbeat模型的丢失不会覆盖所有的故障情况。这在使用自动恢复模型时尤其如此。在自动恢复模型中,软件体系10可以在通电或复位之后从最后的已知状态中自动恢复正常运行。在自动恢复模型中,客户机可能将接收的信息误解释为不会发生的状态变化。换句话说,对于在复位或通电之前存在的状态A以及初始通电状态一状态B;不需要另外指明代表通电或复位的状态I,客户机可以将状态A到状态B的变化解释为不通过状态I。在要求重新启动模型中,客户机的开发者必须考虑上面的段落及其对应用的实施。则可以防止暂时的难以找到漏洞,因为故障是灾难性的而且容易识别和定位。但是,客户机必须实施暂时的恢复过程,而且在重新定购/数据重新获取过程期间可能存在瞬时延迟。已确定在通电/复位之后需要重新定购的heartbeat模型是本发明的优选实施方式。指明初始条件的状态的特殊广播消息的优点也被理解为在软件运行环境中的资源允许这种附加特征时是有用的指示。即使通过使heartbeat的暂停时间很小而使得heartbeat机制近似于通电消息机制的使用,当软件运行系统的资源约束不是禁止性的时,优选解决方案还是包括通电消息。为此,作为可选特征,软件体系IO支持APIId=3,Op码-2的通电消息,即publishSANode。可能需要重新定购,因为动态事件触发器存储在RAM中而且会在通电时丟失。优选地,软件体系10模块除了可选的通电消息publishSANode之外不发送任何消息,直到该模块检测到客户机为止。通过接收到有效命令来检测到客户机。一JS^r测到客户机,可配置的heartbeat消息开始广播,然后软件体系10准备好正常运行。因此,如果用于软件体系10的主微处理器经历了通电/复位,则客户机通过检测到heartbeat消息(参见APIId-1Op码-2)的缺乏和可选地通过检测到消息publishSANode(参见APIId-3Op码-2)来得到通报。状态完整性Aal10的图5的DAQ30提供了优于市面上买到的DAQ系统的一些区别优点。Aal10可以暴露微处理器存储器中的任何变量。一般来说也包括感兴趣的I/O信号。现有技术的DAQ不能做到这一点。Aal10还可以通过一个3线插座提供给生产机器,而现有技术的DAQ仿真器需要更多的布线或硬件。现有4支术的DAQ在消费者领域测试的范围内是不实际的。Aal10可以部署在生产系统上。与调制解调器耦合的Aal10可以提供远程监控。使得软件体系10不同于现有技术装置的最为基本的方面是,软件体系10作为模块化子例程(图36和图11的SA_ProcessOutgoingEvents)由微处理器的main()函数同时调用。这保证在微处理器的执行引擎扫描微处理器存储器时,客户机可以具有微处理器存储器的完整的逐次扫描的快照(在网络带宽的限制内)。这开启了从低成本仿真到使用软件体系10的混合算法开发的很多感兴趣的可能性,从而实现PC辅助的与生产电子装置的协处理。现在描述异步数据收集和同步数据收集方法的比较。在异步收集中1.假定A和B是电器控制存储器内的变量。2.假定C在客户机中计算为A和B的乘积的变量。3.假定A=23,B-67。4.客户才緣询A:A-23。5.A和B改变。A=56,B=77。6.客户才緣询B:B=77。7.客户机计算C:C=A*B=23*77(A和B的这种组合绝不会在微处理器上发生)。8.客户机将C的无效值提交给顾客或应用的终端用户,大多数应用用异步数据收集工作。它简单和一目了然。但是,与异步收集关联的问题对于调试和识别来说特别花时间。在同步收集中,客户机用軟件体系10定义或注册A和B。这使得软件体系IO可以在每次扫描时维持A和B的坐标值。1.客户机注册A和B。2.客户机请求发送全部。3.A和B的当前值由控制发送给客户机。4.A和B改变。A=56,B=77。5.控制发送包含A=56和B=77的有界事件。6.客户机不计算C直到达到该界P艮或结束分隔符位为止。7.客户机计算C:C=23*77。8.客户机提交正确的C值,对于同步数据收集,数据收集是稳健而且虚拟地防弹的。它实现了还没有概念化的应用,而且允许生产软件的"实时"调试w/o对生产电子装置的特殊编码。但是,在控制上需要额外的RAM以维持"关心"变量或属性列表的客户机的快照。已经确定软件体系10优选可以支持和促进同步数据收集技术。但是,异步存储器轮询可在核心API(APIID=1)中提供。对于采用的同步数据收集技术,应当讨论有界更新的概念。有界更新是作为在主微处理器的Main()循环执行的同一扫描期间获得的电器状态的快照而分组在一起的事件。电器控制主循环允许用DAQAPI注册的反馈变量的迭代更新(例如每25ms)。监视每个注册的变量,而且只有根据它们的存储器监视器更改操作符改变值的变量才作为更新广播给客户机。当更新正在被广播时,不允许新的更新,以及时保存快照。釆用如图4的应用协议28中所示的软件体系10标题的字节2中的MMP标志向客户机通报快照。当图4的28的MMP为真时,更多的消息等待该快照。当MMP为假时,当前消息是快照中最后的消息。因此如果快照的第一消息是该快照中的唯一消息,则MMP是餘溪的。图9的示例示出具有确认的有界命令(循环+温度+MMP),后面是两个连续的有界更新。有界是指协议的元素向接收者表明更多的消息结构28内的协议的有^R旨示符(MMP位7)表明事务完成为止,在该事务时由应用逻辑进行的数据处理得到允许。有界命令通过附图标记42示出,两个连续的有界更新分别通过附图标记44、46示出。注意在有界命令执行完成之前更新没有开始,这为客户机提供了滤除暂时的反馈数据的能力。有界命令由相同的机制,即28中找到的MMP作为有界更新提供,以便向应用提供更大水平的控制。图9的示例是概念性的。实际的机制是在28中找到的MMP。但是为了图解的目的,有界命令以初始的"开始,,命令引发符(MMP置位)开始,并包括用于将洗衣机循环设置为洗衣,配方状态为就绪,水温为适中,配方状态再次为就绪的命令,最后是循环开始指示符,接着是命令结束符(MMP未置位)。可以注意到,在图9中更新(例如通过产生事件)被禁止,以防止更新在有界命令结束之前发生。此外,"处理命令,,指示符在电器12的整个有界命令处理期间周期性地出现,以说明从客户机16通过内部通信网络14发布的命令的某些部分正在接受处理。在有界更新44中,该更新又一次启动(因为该更新在有界命令42开始时遭到禁止),以允许电器12向客户机16报告其具的状态。在有界更新44所示的例子中,示出确认状态为就绪,循环报告为洗衣,该状态报告为正在运行,洗衣桶报告为满的,水泵报告是开着的,温度报告是适中的。开始和结束指示符又围住有界更新44。这些开始和结束指示符可以利用如在图4中讨论的应用分组结构28中的标志MMP报告,或者利用网络协议领域的技术人员公知的其它方法报告。在有界更新46中,洗衣桶报告为摇晃,水泵报告是关着的,电动机报告是开着的。开始和结束指示符(MMP)又围住有界更新44。API策略(鍵按下vs.逻辑API)在几乎所有情况中,电器12由集成的键区控制。内嵌的软件处理由键区所产生的键按下或用户事件,并采取动作。实际上,键按下处理功能是用于电器的API。在这一节要考虑的问题是该API是否是最佳方法,或者是否应当为外部客户机16、22开发第二API。在键按下模型中,为了使用键按下API,外部客户机22必须创建虚拟键按下并将其通过网络发送。必须在了解集成键区的情况下设计外部客户机22,从而可以正确产生这些键按下,而且为了产生键按下,需要外部网^口卡。在该模型中,不需要修改底层键区编程。但是,客户机22必须监视当前键区状态,以确定达到所期望的状态所需要的键按下。如果键区的设计改变,而不是机器能力改变,则客户机API必须改变。该体系通it^中间层(middletier)和持久层(persistencetier)之间设置表现层(presentationtier),从而打破了软件开发的最佳实践。对于在基本键区接口中不存在的能量管理、维护和诊断、测试等等将需要扩展的命令。必须有一种方法将逻辑API以及杠杆作用(leverage)和尽可能多的确认码与键按下处理例程关联,而不需要复制代码。相比之下,在逻辑API模型中,逻辑API是#器功能的抽象而不是键区的设计中开发而来。例如,使用鍵按下在欧洲炉子上的烘烤可能需要客户机读取循环刻度盘的编码器位置,并通过编程改变编码器以对应于烘烤设置。如果使用逻辑API,客户机只需要发送用于设置循环的Op码以及针对烘烤的列^Hi:{0x01,0x01}(setCycle(Bake))。在逻辑API模型中,客户机16不需要关心键区状态、键区设计或键按下处理例程。API与键区设计的更改无关,允许扩展的命令,并且是工业上的最佳实践'已经确定软件体系10使用集成了键按下处理例程的逻辑API。逻辑API暴露了很多扩展命令,这些扩展命令启动了各种增值应用。在电器控制中,如果在用户接口上按下一个键或者发布外部命令,它作为普通的进入点而直接映射为逻辑API函数调用(例如如果按下洗衣键或者发布外部的洗衣网络命令,则调用安装了软件体系10的洗衣机中的SetCycle(WASH))。逻辑API函数致力于按照参数化方式描述一组功能,从而该函数可以再利用。例如,温度的非逻辑专门函数可以是IncrementTemp()或DecrementTemp(),这些函数无法轻易地用于将温度设置为任何值。但是逻辑API函数可以是SetTemperature(newTemp,ortemp++,ortemp—)。键按下和夕卜部命令都可以使用后一个函数。AallO的命令处理程序可以包括使内嵌软件响应逻辑命令(例如setCycle(Bake))或键按下(例如在炉子电器12上按下"烘烤,,按钮)的方法。该方法翻译输入的键按下,并导致对逻辑API内的合适函数的调用。在该逻辑API函数中存在尽可能多的确认和基于状态的逻辑,从而外部命令与键按下获得一样的处理并且执行相同的代码。该API可以在无需对电器控制软件进行大的重新设计的条件下实施。只有顾客接口管理器软件必须重新组织和分组以作为针对每个键按下命令的进入点来调用API函数。但是这不是软件体系10的要求。AallO只用于最小化必须写入的代码量。如果逻辑API函数的一个集合不能提供给外部命令引擎,则散布在电器控制中的确认和状态逻辑必须针对每个外部命令重复,从而导致更大的代码量和增加了错误的概率。标识多节点问题上面关于API版本确定和发现的讨论建立了用于发现驻留在任何安装了软件体系10的节点上的API的机制的优点。对于下个步骤存在另外的考虑1.多个节点2.多个客户机3.实施同一API的多个安装的节点4.具有多个复制的API的单一节点5.使用同一Op码的多个API6.SAP分配7.客户机发现支持软件体系10协议的节点多个节点。有可能网络上的多个部件都要实施软件体系10。因此,应当考虑具有多个实施软件体系10的部件的网络。在正面模式模型中,正面模式用于产生对一个对象集合的简单访问。这通过产生设置在客户机和各种目标对象之间的软件层来完成,从而客户机具有与单一对象连接的简单接口。该单一源由此负责将请求传递给合适的目标对象。在正面模式模型中,更容易管理该模型,因为API是集中定义的。在大多数应用中,正面向客户机呈现更为简单的接口。但是,该模型要求编译时间设计将其它节点的API包含在正面节点中。正面需要额外的RAM/ROM以处理请求并将请求传递给目标节点。而且,如果两节点对彼此来说是客户机,则正面模式会创建不需要的处理,因为正面节点首先只通过自己的正面请求以便将该请求传递给目标节点。在分布式服务模型中,该方法使用发现协议作为让客户机找到目标对象的方法。客户机负责与每个目标对象之间的独立交互。换句话说,客户机将发现软件体系10节点,然后查询每个节点它们支持什么样的API,在分布式服务模型中,该模型伸缩自如,从而部件可以在运行时插在一起。但是,该模型可能需要多个文档来管理网络变量定义(API)。已经确定软件体系10使用分布式服务模型来管理在网络14上启动的多个节点。正面方法可能不太好,因为对目标对象API的更改需要更改正面(更改,编译,下载,测试)。而在由良好的重新要素分解工具支持的一次编译时间环境中,正面可能是很好的选择。在分布式环境中,更为灵活的分布式服务模型将允许更快的开发和灵活的配置。但是,在一些情况下在系统的每个微处理器上可能没有足够的资源来支持软件体系10。在另一些情况下,可能存在继承协议,而且不希望对遗传板进行修改。在这些情况下,正面可能是分布式服务模型的好的替代卩口O多个客户机。如图l所示,网络14上的多个节点或客户机16实施软件体系10。因此,应当考虑多次发生10的网络。一个主要的考虑是时间注册和通报。如果多个客户机用软件体系10注册事件,则软件体系IO应当可以管理事件发布。利用节点ID指导的消息事件产生模型,软件体系10存储每个事件请求者的节点ID,使得在触发该事件时,会向请求节点发送定向消息。在该模型中,消息只发送给关心事件的节点。但是,该模型要求对每个消息有一个字节来存储节点ID,并且需要更多的RAM来为每个请求节点产生附加的存储器结构。在具有APIID标识符的节点ID指导的消息事件产生中,利用该方法,软件体系10存储每个事件请求者的节点ID,使得在触发该事件时,会向请求节点发送定向消息。此外,主节点的APIID包含在该事件中。该模型允许客户机传输层更好地在内部路由消息。但是,该模型还要求对每个消息有一个字节来存储节点ID,并且需要更多的RAM来为每个请求节点产生附加的存储器结构。在广播消息事件产生模型中,利用该方法,软件体系10不跟踪事件请求者的节点ID。在触发该事件时,软件体系10发送广播消息。在该模型中,软件体系10的实施更为简单和更小,不需要为每个消息花费一个字节来存储节点ID。但是,广播可能产生由其它节点处理的不需要的事件。第四种混合方法,也是优选的方法,包括将广播消息用于消除存储节点ID的需要的模型。但是,客户机要在DAQ的事件产生消息中包含APIID和Op码(APIId2,Op码l,2,12,13),使得他们能被动态分配(如下面讨论的)。利用该方法,所产生的事件消息将包含分配的APIID和Op码(如在APIId=l的publishEvent消息中所示)。在该消息(publishEvent)中,图4的28的字节1和字节2的APIID和Op码是由客户机16利用事件产生消息(上面引用的)分配的。已经确定在此描述的软件体系10使用包括APIID和Op码的广播消息M模型。这将提供通过用APIID存储来换取节点ID存储进4亍的路由的优点。假定下面是对SAP讨论,广播消息收发的风险大大减小。尽管一定数量的处理将由节点用于丢弃与节点无关的消息,但是这仍然比定向消息优越,因为定向消息最终会导致网络的饱和以及软件体系10的饱和。包括APIID使得客户机可以用动态API来配置控制,这将在未来刺激更好的模块化设计。在多个节点上使用相同的API。有可能一些可选的网络部件将实施与UI或电器管理器板(即维护/诊断或能量)相同的API。这4吏得可选的网络部件16可以向外部客户机22表明自己。因此,软件体系10可以允许客户机16、22与两个物理节点交互一每个节点都实施相同的API。该设计的考虑在于几个其它节点的交集,类似的,其分辨能力是事先存在的设计解决方案的组合。可选节点可以通过动态的成员资格实现。客户机可以通itiC现API(参见图6)找出哪些节点支持协议28。也可以通过发现查询每个节点以找出支持什么样的API。Op码不是全局唯一的,但是与APIID和Op码耦合的内部通信网络14节点id是唯一的。APIID内嵌在每个事件中。总结一下,客户机首先可以发现软件体系10节点,然后发现每个节点的支持API。客户机然后可以启动与每个节点的每个API的交互。由于每个分组24包括节点ID和APIID,因此客户机和目标都可以避免命名空间的冲突,并将消息路由到合适的应用空间。在同一网络节点上的多个API实例。存在这样的电器12设计,该设计将自身出借给在同一微处理器上的API再利用。示例包括双灶炉子(即两个单独受控的烘烤室)或者两格子的冷冻箱。换句话说,在一些情况下,存在多个炉灶执行相同功能并且因此能通it^目同API受控。针对这种情况的设计方法已经讨论过。在唯一功能名称模型中,设计者针对每个命令或变量创建具有唯一Op码的APIID,而不考虑再利用该定义。换句话i兌,Op码10-下炉灶设置温度,Op码11-上炉灶设置温度。在该唯一功能名称模型中,在发现期间的消息收发更少,但是该模型不能促进模块化设计和代码的再利用。在多个APIID模型中,设计者使用相同的Op码定义,但是为每个API实例分配唯一的APIID。在该才莫型中,在发现期间的消息M更少,而且该模型促进模块化设计和再利用。但是该模型导致以更快的速率消耗可获得的APIID。在实例ID模型中,软件体系10动态地向每个API实例分配APIID,但第一实例除外。API的第一实例由全局APIID知识库标识。为了做到这一点,软件体系IO指定APIID(例如246-255)作为保留的API以动态分配给API实例。该模型促进模块化设计和代码的再利用,并且不消耗APIID。但是在发现期间存在更多的消息收发。AallO是设计为以稳健方式允许对象发现并彼此合作的面相对象的协议。这些要求的基础是(1)合作实体必须可以唯一的寻址,从而可以恰当地在网络上路由消息,(2)合作实体必须可唯一识别,从而他们的消息收发合约、交互的规则以及兼容性考虑可以得到理解。在单一的运行时环境中,编译器可以强迫执行第(2)项。在联网或分布式环境中,内嵌的编译器通常不解决第(2)项。合作实体(对象或API)寻址的唯一性通it^合3位节点ID(在图4的24的地址字段中找到)和8位的API或实例ID(在图4的28的字节1中找到)来管理。任何包含这两个信息的网络消息都可以被正确路由。这为每个网络节点提供了255个唯一的合作实体(或对象)。实体标识通过8位APIID(例如类标识符)、两字节类型ID(即子类或规范说明)以及两字节版本ID(即类型ID意味着目的,版本ID意味着兼容性)来定义。这种两层的方法与标识的唯一性分离地识别寻址的唯一性。这种分离通过从每个分组中去掉4个字节的标识信息提供了对带宽更有效的利用。反过来客户机必须緩存标识信息,并且按照地扯的总共11位来索引该标识信息。已经确定实例ID模型是本发明的优选实施例。发现API(APIID-3)支持消息中的实例ID、公布API信息、获得实例信息和公布实例信息。实例化是非常有力的概念,可以通过在协议中的使用来举例说明。API-Op码命名空间。串行网络上的消息通常具有ASCII或数字标识符,以允许消息的接收者将包含在消息中的数据路由给合适的内部函数。该函数接着对有效载荷中的剩余数据进行运算。有效载荷中的剩余数据是在文档中在运行时定义的。该文档描述了有效栽荷中每一位和/或每一字节的含义。根据该文档,特定于每个有效栽荷定义开发了内部软件消息处理程序。因此通常对每个唯一的Op码和Cmb/Fb对存在一个消息处理程序。正常情况下,如果存在多个共享相同Op码的独立有效载荷定义而没有任何额外的识别机制,则接收者不可能将该消息路由给合适的消息处理程序。但是,本发明提供了Cmb/Fb标志来支持叠加或Op码使用,该标识用于区分。因此,本发明提供了重叠使用相同Op码的命令及其对应的反馈消息的功能。这一节讨论了可用于向消息有效载荷定义提供唯一标识的技术。在全局唯一的Op码模型中,利用该方法,Op码必须是全局唯一的。换句话说,必须向每个平台或API开发者分配一个Op码范围内(例如350-385),该范围一定不能与任何其他项目的Op码范围重叠。该模型由于要求多余ID的范围分配而是低效的。此外,API开发者不能控制其Op码标号机制,而且该模型要求一定数量级的更多合作的确定(信息传递)。在全局唯一的APIID模型中,利用该方法Op码被分组为形成API的逻辑集合。为API分配由APIID、类型和版本组成的全局唯一的ID。因此,在此的Op码只需要在该API中是唯一。在这种模型中,不需要分配多余的ID,API开发者可以在Op码-l时开始,该模型只需要很少的信息协作来itiL命名空间的冲突。已经发现本发明采用全局唯一的APIID策略作为优选实施例。作为软件体系10核心API—部分的某些固定Op码,回复到共同的开始号码(1),而且优选可以向核心API分配为1的APIID。SAP分配。在24中的SAP识别Wide有效载荷或SDU26的结构。它与前面描述的APIID的概念相同。SAP的优点也相同,因为输入的消息需要被识别和路由给正确的内部处理程序(或快速丢弃)。在这里讨论的WIDE网络14中,存在16个可获得的SAP。AallO为SAP成员资格定制判断标准在这种情况中,内部通信网络14管理员可以批准软件体系IO应用协议并向软件体系IO分配官方SAP。也可以想出协议24的其它网络标识符而不会脱离本发明的范围。例如,可以在内部网络14上向软件体系10分配为1的默认SAP。SAP(或其他子协议标识符)允许内部通信网络14节点参与软件体系IO和非体系10的消息M。AallOSAP适合全局体系,并且向软件体系10添加了更多的范围。内部通信网络14SAP是来自技术和实践观点的可靠的概念。保证特定于网络14的ID为软件体系10提供了全局可见性和官方可接受性,这可以有助于增加其使用并促进它成为全球标准。图5的软件体系10发现。在上一节中,建立了软件体系10的APIID类似于内部通信网络14的SAP,类似的,在上一节中,建立了软件体系客户机16通过查询发现API的优点,API驻留在软件体系10的每个物理节点上。类似的问题和/或解决方案可以呈现给软件体系10发现。如果维护工具希望动态地发现所有的软件体系10API,首先就需要发现支持软件体系10协议的内部通信网络14节点的节点ID。这可以通itiL送软件体系10节点会响应的广播命令的广播消息模型来完成。在该模型中,软件体系10可以广播添加到软件体系10中新的API,或者可以广播添加了实施软件体系10的新网络14节点。图6的发现API用作软件体系10发现的机制。轮询发现消息和简单的广播消息都可以获得而且将在发现API(APIID=3)中讨论。多有效载荷消息的完整性AallO标题中的Frag,即字节2的位6,使得软件体系10协议可以发送大于底层协议(即内部通信网络4的有效载荷)的有效载荷。如果Frag置位,接收者应当意识到当前的消息将分段成多个分组或片段。在消息片段id模型中,分段的消息的第一片段使用如图4所述的标准分组结构。该初始片段提供消息的API、Op码和Cmd/Fb标识。该消息的所有后续片段优选具有图24所述的分段消息结构。在该结构中,Frag标志仍然存在(与MMP标志一起)以增强数据。但是,字节2现在在位5中包含更多片段未决标志(MFP)、位3-4中包含消息id(MID)、在位0-2中包含片段id(FID)。MFP标志告知接收者应当期待当前消息的至少另一个片段。MFP从1转变为0告知接收者当前分组是当前消息的最后一个分组。MID提供了每一个消息的一个2位标识符。因此,向每个分段的消息(一组片段)分配MID,该MID然后对每个随后的分段消息(一组片段)都增加。MID增加到3,接着回滚到0。FID为消息内的每个片段提供一个3位的标识符。因此对于特定的消息,总是向第一片段分配为0的FID。对于该消息的每个后续片段,FID将增加。FID增加到7,接着回滚到0。通过本发明提供的片段协议允许接M检查分段消息的完整性。通过监视Frag和MFP标志,接JM"可以保证分段消息没有4^内容。通过检查MID没有在接收单个分段消息时更改,接收者可以保证两个分离的分段消息不会融合(也许由于丢失的片段)。通过检查FID随着每个片段正确地增加,接收者可以保证消息内没有丢失片段(或没有按照顺序接收)。参见图25中消息片段id模型的示例。在和CRC模型中,该解决方案利用了公知的现有循环冗余校验和(CRC)的概念。额外的两字节CRC可以添加到多有效载荷消息的最后一个有效载荷的后面。CRC是连接为一个组合的有效栽荷的所有有效载荷字节的CRC代表。发送者产生该CRC。接M根据公知方法验证该CRC。在和CRC模型中,该解决方案重利用已经建立和公知的CRC算法,但是CRC算法比帧计数器更复杂,而且CRC可能不容易由第三方携带。因此,已经确定消息片段id模型是根据本发明确定软件体系10中的多有效载荷消息的完整性的优选实施例。消息片段id才莫型更容易由第三方实施,而且更容易添加到现有体系10中。软件组织针对软件体系io,下面借助图10讨论代码组织和实施文件。图10是示出根据本发明的图1的软件体系10与包含各种软件成分16B的部件16的软件运行环境16A的关系的示意图,其中软件体系10包括命令处理程序50、更新处理程序48,和用于将软件体系IO连接到内部通信网络软件运行层14A的内部通信网络层接口52,该内部通信网络软件运行层14A创建数据并通过家用电器12的通信网络14发送该数据。而且还示出软件运行环境16A中的其他软件成分16B如何调用和与软件体系IO的部件(50,52,48)交互的例子。为了产生软件运行环境16A的更通用的实施,去掉UI管理器(软件运行环境16A内的几个软件成分16B之一)之间的相关性。在该实施中,软件运行环境16A的主执行循环11调用50。以前相信以前的实施由于与涉及UI_Managerl6B的执行时序关联的时序细节提供软件体系10的更为精确和稳健的性能。为了定义软件体系10的第一层细节,示出3个主软件成分(子部件)更新处理程序48,命令处理程序50,内部通信网络层接口52。更新处理程序48与DAQ引擎30交互以识别标志DAQ运行中的更新的信息,从而内部通信网络层接口52可以处理所述信息,从而导致与内部通信网络软件运行层14A的交互,从而导致分组结构24传送到网络14上。命令处理程序50*和处理从内部通信网络层接口52输入的命令,从而根据分组结构28的标识符APIId和Op码值调用合适的软件运行函数。内部通信网络层接口52打算解除软件体系10的特定部分与内部通信网络软件运行层14A、图1的网络14和图4的分组结构24的耦合(尽可能实际)。内部通信网络层接口52与内部通信网络软件运行层14A连接,后者根据图4的定义产生数据并通过家用电器12的通信网络14发送数据。图1所示的软件体系10的软件运行层子部件48、50、52—起协作来管理与其他也具有软件体系10的部件16或22或者能够与分组结构24交互的替换物的通信。图34示出用于本发明的几种实施文件。SA_prm.h。软件体系10包括可配置M和命令列举。SACore.c.h。该用于软件体系10核心软件的文件包含用于处理命令、管理流控制反馈和产生动态更新的电器数据的快照的更新处理程序48和命令处理程序50。SAAppSpecific.c/.h。该用于软件体系10核心软件的文件包含用于驱动特定类型的电器12的特定于电器的命令处理程序和命令实施(例如具体指导管理洗衣机和与该洗衣机通信的文件)。不是通用于所有电器12的任何命令都在该函数中实施。这些命令列举在SA_prm.h中,而且由命令处理程序调用。SAWideComm.c/.h。该文件包含内部通信网络14应用层52,其提供与内部通信网络14协议连接的接口,并控制消息结合为快照、控制对iiA命令的分析,并且控制对更新标志的处理以发送更新消息。SADaq.c/.h。这些文件包含DAQ引擎30的全部功能。由此,涉及更新处理程序48和事件产生的所有功能都包含在此。SADiscovery.c/.h。这些文件包含实施软件体系10的节点的所有功能,用于发现实施软件体系10的其它节点(以及其它节点的对应功能)。SAVaiableMap.h。该文件包含内嵌的变量映射,其使得可以通过外部客户机产生事件而无需知道存储的变量地址。图11示出软件体系10与电器控制之间的示例接口,其中根据本发明图1的软件体系10由管理调度器(MAIN)调用3次。还示出MAIN调用WIDE.WideExec()。WIDE.WideExec()^根据图33调用软件体系10,其中软件体系10的部件WideComraHandler暴露了函数SA_AcceptData()和SA一BuildData()。还示出MAIN调用SA_WideComm()(也是由软件体系10的部件暴露的函数),这最终导致如图33所示调用软件运行环境16A的部件WIDE的函数WIDE,QueucMsg()。图13是图11所示的软件体系的示例性实施,包括电器初始化部分。初始化函数在进入图11所示的主执行循环之前从初始化例程调用SA一Init()。下面的表格示出如何管理API的文档例子,包括用于控制通过软件体系10的API暴露的功能的部署的编译器指示机制。<table>tableseeoriginaldocumentpage100</column></row><table>情况下使用。他们意欲赋予设计者在期望再利用最小的应用中使用软件体系10的灵活性。在这种情况下,这会消除为预计是"离线"的消息集合开发特定APIId和类型的需要。这些Id还可以用作还没有接收到官方ID的候选标准API。此外在上面的表格中,RAM和ROM估计是使用MotorolaHC08CosmicCompiler版本4.3f来进行的,其中软件体系10配置为允许30个动态事件(即存储器堆大小=300字节)、定义7个API和15字节的最大命令大小。图14是组合了根据本发明的图1的软件体系的虚拟路由器的示意图,其示出一对软件体系实施之间的映射。图14的虚拟路由器是封装软件体系10的API实施(对象,参见图4的路由器的每一侧的API1—8)的软件设计,使得内嵌客户机(应用逻辑、算法、逼和循环、定序器和状态机)和内嵌部件(软件体系10API实施诸如除霜器、加热器、温度传感器、阀门等对象)之间的协作同一和一致,而不考虑实体是通过网络协作还是共享运行时环境。图14示出这样标出的6个唯一的协作示例,其示出存在于分离的硬件部件16上并且通过网络14连接的一对软件运行环境16A如何使用软件运行环境16A的各种软件成分16B来产生右手和左手软件运行环境的运行逻辑59和软件成分16B之间的透明访问。在描述协作示例之前,描述图14的结构将有助于理解该协作示例。每个软件运行环境16A包含所包含的有用软件运行部件(16B)的子集的代表,包括软件体系10,内部通信网络层接口14A,DAQ30,硬件提取层80。硬件提取层80包括用于封装所连接的电路的特定固定地址的机制,软件运行层80将运行在在该电路上;按照以下形式(之一)封装16B出现的软间接口(28,28A或82):28是通过软件体系10交换的消息的分组表示(字节的有序集合),28A是通过软件体系10交换的消息的分组表示(字节的有序集合),其只代表由软件运行部件84或86期望的应用有效载荷28A(有效数据变量),82是28或28A的替换表示,其中目的和数据值和产生的行为在功能上相同,但是不是字节的有序集合的形式。82是具有通过单独命名的变量代表的变量的唯一软件功能的形式,该变量的值从28A导出或者通过从28A导出的字节的有序集合代表。应用GDM84(全局设计模块)是作为全局设计模块公知的16B的变形,这是经过了标准开发过程的标准软件运行部件,包括函数和非函数要求、测试、存档和实施指导。特定于电器的应用GDM地址涉及例如除霜器、加热器、闭门器。应用GDM可以分为至少两种变形。变形1包含与59不同的特定于应用的逻辑,用于管理行为和从包括多个其他84和86在内的其他软件运行部件集合收集信息。变形2包含不同于59的特定于应用的逻辑,用于管理行为和从具体的电子机械装置或传感器如加热器、电梯、发动机、岡门、螺线管、继电器、压力和温度传感器收集信息。变形2可以配置为解决通过该装置的具体制造商变形、通过装置的基于通过应用要求确定的使用模式的具体配置,或者通过产生未在此提到的具体问题的因素集合而变得重要的具体问题。基础结构GDM86解决与图1的软件体系的应用无关的连续发生的具体问题。它们可以在多个电器如水箱、炉灶面、洗碗机、甩干机、洗礼^等等之间再利用。基础结构GDM可以分为至少两种变形。变形1与电部件或电约束的连续组合而导致的具体问题关联。一些例子包括制造接口约束,装置占空因数,电负荷特征,其例子包括涌入电流限制和稳定状态电流限制,或者其他约束如模拟到数字的转换模式,其例子包括4_20mA电流循环vs.O一5V直流模拟电压反馈。变形2与电器和作为效用函数公知的独立于应用的软件成分关联。它们提供了由包括59和80的其它16B部件使用的逻辑。变形2可以包含或使用对86的变形1的参照。例子包括定时器,跨0检测,和其他有用的软件成分,这些软件成分的目的比通过应用或电M要求驱动更为实用。内嵌的虚拟路由器70提供封装层,通过该封装层(部件16的软件运行层16A的)应用逻辑59和硬件提取层80包括的部件、DAQ30、应用逻辑59的其它实例或应用逻辑59中的部件或其他任何有用部件16B之间的体系依赖性(由通过14连接的至少两个软件运行环境内部或之间的其它16B访问或暴露给其它16B的一个部件16B的方法[16B的例子是30,84,86)最小或被消除。由其他软件成分16B用于获得对任何其它软件成分16B的参照的软件成分72存在于(其中获得的16B可以是软件运行环境16A的一部分)相同的石更件部件16,通过14连接的不同的硬件部件16,通过包括14在内的网络段的组合连接的不同硬件部件22,或者通过14连接的不同电器12的不同硬件部件16,第一电器12的两次发生12、14之间的不同网络段的组合。软件成分72还为驻留在相同的软件运行环境16A内的其他软件成分提供用于公布必要的标识和/或路由信息到72的存储器中从而启动72的上述列举的用途的机制。标识和路由信息可以与驻留在相同的软件运行环境内的部件关联,或者标识和路由信息可以涉及与驻留在相同的软件运行环境内的部件分离的部件,但是通过驻留在相同的软件运行环境内的部件知道.70的存储器中的结构74可以接收消息或者提供用于调用消息的函数,并且可以发送消息或者提供用于发布信息的调回函数。这些具有28、28A或82的访问定义的结构对应于诸如80、59内的部件的软件成分或位于上述列举72中的任何其他有用软件成分的发生,以及将信息路由给该软件成分或者路由给具有74的相同或类似目的的合适中间软件成分的功能。现在查看可能的协作示例,期望基于发现查询产生和填充70的结构74,该发现查询包含访问既可以识别又可以路由的具体软件成分16B的请求,表明所述访问的调用,或者通过能够代表自己或其他部件16B调用70的软件成分16B产生和填充70的结构74,从而导致结构74的产生和填充。协作1:命令通过右手软件运行环境16A的软件成分59发布,并通过包含在74的集合中的软件成分接收,其中在相同软件运行环境的部件70内具有API1标识符。釆用包含在70内的标识和路由信息,通过API1识别的部件通过其它局部软件运行层10和14A发送所接收的信息,而且最后通过14发送和通过左手软件运行环境的14A接收。然后该消息通过10处理,并且路由到左手软件运行环境的74内的合适部件。使用包含在相同软件运行部件70内的标识和路由信息的合适左手软件运行部件74接着调用包含在左手软件运行环境硬件提取层80中的API1的实施或向其发送消息。由此右手软件运行环境的软件成分59内的应用逻辑调用时是在左手软件运行环境中的函数,而无需包含在其中用于实现所述调用的信息。因此,图14表明的设计的值是应用逻辑59可以相对于其他软件运行部件16B的位置再利用,该其他软件运行部件16B位于通过网络14或者可能包括14的多个网络段连接的多个软件运行环境16A内。协作2:在这种情况下,消息的初始化从左手软件运行环境16A的59开始。示出最后调用在相同軟件运行环境内使用在协作l中详细描述的相同方法的软件成分(在这种情况下是API2)的情况。因此,在协作2中,示出设置在应用逻辑59发生到某个其他有用软件成分(硬件提取层80的API2)之间的替换体系对任何一种的实施没有影响。此外,软件成分70的目的是提供这种功能,软件成分70可以符合通过软件体系IO设置的标识和接口要求。协作3-6示出内嵌虚拟路由器70的其它用途。用于完成这些变形的机制与在协作1和2中描述的相同。包括他们是为了示出该设计的有用性以及涉及DAQ30可获得的期望的其它消息模式。应用逻辑59的本地事件监听者(3)和远程事件监听者(4)都具有与DAQ引擎30的代表的互连,该互连不仅提供与本地软件运行环境中的DAQ的连接,还提供与驻留在远程运行环境中的DAQ的连接。基于DAQ事件的发生而由DAQ产生的消息可以通过70中可获得的机制传送给本地(6)和远方(5)。图15是采用12的体系建立的非典型电器的示意图,该电器包括作为部件组合的永久节点54,该部件包括根据本发明的图1的软件体系10。现有技术的内嵌系统是为了提供PCB本地的数据持久性,而根据本发明的永久节点通过软件体系10的机制和/或内嵌虛拟路由器70提供暴露给部件16和22的永久服务。在每个客户机的通过内部网络彼此通信的部件内,示出每个部件16、电器12和永久节点54上的连接器和协议(RS-232,无线的,WIDE等)的各种示例。总的来说,永久节点54是可被共享网络14、20或运行时连接的所有部件16发现和使用的逻辑实体。该实体提供读取、写入和存储信息所需要的服务和协议机制。如上所讨论的,电器12是"状态,,驱动的机器,通常具有用户接口,用户使用该用户接口可以改变电器12的状态(例如将洗衣机从空闲状态变为"洗衣"状态)。由于开发了需要与电器12进行外部通信的应用(例如测试,诊断,远程控制等),因此存在3种可能的技术来执行该接口(1)将外部命令翻译为键按下(参见图16和讨论);(2)采用定制软件来执行更改状态的命令(参见图16及讨论);或者(3)简单地将键按下翻译为逻辑API(参见图17及讨论)。图16是现有技术方法的示意图,通过该方法外部命令翻译为键按下以测试家用电器的功能。在该现有技术方法中,用户通过一个或多个键按下56以更改电器的状态(该电器在图16中称为"状态机,,12)从而影响电器的功能58来启动电器12。为了测试电器的功能58,用户准备外部命令60,并且(1)将外部命令60翻译成键按下56;或者(2)准备定制软件62,该定制软件仿真状态机电器12以尝试复制电器功能58。这可能很困难和容易出错。在一种运行和测试电器的新方法中,图17是由用户启动的键按下56和外部馈入的软件命令60(通常来自客户机)的交互的示意图,该键按下56和外部馈入的软件命令60都作为变量传递给根据本发明的图1的软件体系10用于向家用电器12发布命令,以例如测试家用电器的功能58和/或更改家用电器12的状态(即实际运行)。参照图17讨论的方法是新颖的,因为不是翻译外部消息,将电器12作为封闭系统来对待,而是与消息是作为外部键按下还是电器12本地或远程的软件命令接收无关地暴露电器12的功能。消息(命令)通过软件体系10的API(现在与现有技术的"封闭"系统相反是开放式系统)处理,同时给用户保留键按下g和反馈。当前,电器控制软件不是建立来验证和执行外部命令。为了弥补这一点,电器API定义为包括用户功能以及下层机器控制命令。在正常运行期间,在按下键或者发布外部命令时,该键按下或命令作为共用进入点而直接映射为用户功能API函数调用(例如,在用户接口[键区I上按下洗衣键或者发布外部的洗衣命令都会导致立即调用setCycle(WASH)函数,而不管电器12的状态如何)。所有验证和基于状态的行为都存在于该函数内部,从而外部命令与键按下56得到相同的对待,而且执行相同的代码。该API可以不对电器控制软件进行主要的重新设计就实施。只需要识别用户接口软件以作为任何命令的iiX点而调用API函数,而不是只是对状态机12内部的键按下进行反应。使用图17的方法使得电器12的制造商可以分开地测试和诊断键区/用户接口。这节省了在电器开发、诊断和测试时的事件和精力。这也消除了对复杂机械键区启动装置以及传统上要用于测试用户接口和电器功能的机械执行硬件的需要。此外,电器12API含有用于将电器i^诊断或工厂测试模式的命令。在该模式中,所有基于状态的行为和命令验证代码都无效,以允许下层API。在该模式中的API命令可以访问和控制电器12的下层部件,如读取和写入EEPROM、按下键(56)、读取传感器值、写入循环M、执行转接和其他执行器等。参照软件体系10讨论的API接口是面向对象的软件分组,其在一个对象(电器功能)具有多个需要与该对象交互的客户机(例如键按下56和外部命令60)是高效的。这是一种新的方法,因为电器目前不包含面向对象的软件,而且通常被视为是封闭系统并只具有一个客户机用户接口键。本发明设想电器12通过引入内部通信总线(即网络14)和外部连接20而具有多个客户机。这些客户机可以包括网页应用、诊断工具、测试工具和家庭自动化系统等。具有在此所述的API软件体系的电器12是"将来验证"的,并且可用于顾客可能需要的很多高级远程应用。这些应用可以包括能量管理、改进的维护和诊断工具以及远程控制和监视。此外,由于API是ii^所有电器功能的i^A点,顾客可以受益于电器12的改进的自动化开发测试和工厂测试。AallO还设想虛拟装置模型可以觉察物理装置(电器12)的当前功能。例如,如果炉子在烘烤,则电器时钟不能修改。功能的同步是一种打算允许虚拟模型基于装置的状态识别装置功能的变化的通用解决方案。目前,该目的通过为每个电器12写入的代码实现。包含在软件体系10中的解决方案用通用的解决方案代替特定于装置的代码。该解决方案包括附加消息,其中软件体系10广播包含无效命令的当前集合(API和Op码)。该信息在运行时考虑,从而可以按照用户可能只能修改可被修改的装置特性的方式来表达用户接口,从而没有给予顾客机会来修改目前由实际装置指示是不变的装置特征。AallO是应用和工具的交叉乘积系统。这些应用有助于增加在产品开发过程中的质量和乾故市场的速度。这通过与存储在电器12内的存储器中的数据交互来完成。为了保持灵活性、可配置姓和通用性,应用通过规定需要的数值存储器位置(地址)来与电器交互。但每次当电器中的软件改变时,存储器中的这些位置可以移来移去,并具有非常不同的含义。为了解决该问题,创建了变量映射文件标准和发生器.变量映射文件发生器提取写入代码的软件名称(文本描述)并将该名称与该数据的数值地址和大小关联。然后该发生器按照标准文件格式输出该信息。这在每次改变和编译代码时执行。该标准文件中的信息提供与编译器和数据位于存储器中什么位置无关的独立性。然后通过任何希望与基于软件体系10的电器12交互的任何应用读取变量映射文件。应用是对照数据的有意义的文本名称而不是数据的数值地址来编码的,这大大简化了应用的开发。变量映射文件格式和使用过程描i^E下面的表格中。<table>tableseeoriginaldocumentpage108</column></row><table><table>tableseeoriginaldocumentpage108</column></row><table>采用变量映射工作的方法示例包括以下步骤。1.工程师建立对照位于电器控制中的有意义的数据的文本描述名称而编码的应用。2.电器控制代码变化,从而导致有意义的应用数据具有新的位置。3.工程师编译新的电器代码,这也自动产生关联的变量映射文件。新的代码和变量映射文件一起部署。4.当应用是对照新代码运行时,只要该应用具有恰当的变量映射文件,该应用就不需要改变。5.如果应用需要新的数据,则可以从变量映射文件中很容易识别或检索出该数据。因此如上所述,开发工程师只需要记得上面表格中"变量名称"列,不需要不断查找在"地址"栏中不断变化的地址值。现在参照图18,为了举例的目的而示作炉子的家用电器12具有内部通信总线200,而且该家用电器12可以通过类似于上述网洛接口连接器20的网洛接口卡(NIC)204耦合到外部网络202。NIC是用于将计算机或其他客户机连接到网络的公知装置,任何合适的NIC都可用于电器12。根据本发明的实施例,NIC204电连接到内部通信总线200,并将内部通信总线协议适应于标准通信协议,如TCP/IP和GSM,从而电器12可以通过外部网络202如局域网(LAN)和/或广域网(WAN)与外部客户机(未示出)通信。因此,外部客户机可以与涉及电器12驻留在内部网络14上的各种内部部件的软件体系10通信。例如,图18中的电器12示作包括用户接口(UI)208和传感器-执行器板210,每一个都包括印刷电路板(PCB)和对应的软件体系10,而且外部客户机可以通过NIC204与软件体系10通信。NIC204可以通过任何合适的安装装置安装到电器12的优选从外部设置的通信总线200上,这在计算机网络领域中是公知的。根据本发明的实施例,通信总线200位于限定与电器12的器壁齐平的开口214的凹陷212中,该器壁例如是后壁216,如图18所示。当通信总线200位于凹陷212中时,通信总线200和NIC204(在安装到通信总线200之后)受到防止在运输电器12过程中可能发生的损坏的保护。NIC204可以在制造时与电器12—起提供,或者可以作为附件与电器12分开购买。因此,顾客可以选择购买没有连接到外部网络202的功能的电器12,并在以后升级该电器12以添加连接,如果需要的话。NIC204可以通过有线连接或无线地与外部网络202通信。例如,NIC204可以通过无线红外(IR)通信或其他短程无线装置与外部网络202通信。在这种情况中,NIC204优选安装在电器12的正面218以推动稳健的通信。根据本发明的实施例,NIC204可以安装在电器的正面218上的凹陷220中,如图19针对炉子所示,如果安装到电器的正面218,则NIC204可以通过设置在线路管道224中的导线连接到电器的背部222,该线路管道224从正面218的安装凹陷220)€伸到电器12的背部222,在背部电线i^A电器12。有线通信的另一个例子是射频(RF)通信例如,RF印刷电路板(PCB)226可以位于电器12内部,这需要RFPCB226和外部安装的天线之间的连接。可替换的,RFPCB226可以安装在电器12外部,但是该配置需要RFPCB226和电器控制电落t间的电连接,而且安装者必须在安装RFPCB226期间打开电器12的内部或内箱228。根据本发明的实施例,RFPCB226安装在电器12内部,而且热和电的不良导体一非金属保险隔板作为电器内箱228的一部分提供。示例性的保险隔板230是塑料窗,如Plexiglas窗,与电器内箱228集成在一起,如图20为说明目的针对炉子形式的电器12所示。保险隔板230允许RF与内部安装的RFPCB226通信而无需外部天线,并防止人员接触过多的热量或触电。现在参照图21,电器12可以用硬件配置以有助于电器12的维护和诊断。在一个实施例中,配置适用于可消除地与电器12上的标准通信总线连接的维护模块232以记录诊断数据,例如通过与内部网络14上的软件体系10通信。维护模块可以很容易连接到内部网络14。维护模块232与电器12的连接通过图21的步骤1来代表。接着维护模块232从电器12去掉并连接到个人计算机234,例如通过USB端口或其他合适的标准通信总线。维护模块232与计算机234的连接通过图21的步骤2代表。在维护模块232连接到计算机234之后,维护模块232优选自动连接到互联网,并将诊断数据加载到远程客户机(未示出)上,如图21的步骤3所示。远程客户机处理诊断数据以识别电器问题或故障,并潜在地防止维修电话,如果该问题或故障需要维修电话的话,从而优化维修电话的效果和效率。可选的,维护模块232可以基于诊断数据下载定制测试脚本,以便在电器12上运行测试以进一步诊断或消除该问题或故障。图21中的步骤4表示维护模块232与电器12重新连接以执行该测试脚本。维护模块232的示例性体系在图21A中示出。维护模块232包括一对通信总线,如外部串行总线。根据所示出的实施例,维护模块在一端包括USB236用于连接到个人计算机,而在对立的一端具有RS-232(EIA-232)总线238用于连接到电器12,尤其是连接到驻留在电器内部网络14的各个节点上的软件体系10。维护模块232还包括存储器240,如闪存,用于存储诊断数据、测试脚本和其他数据。闪存240与控制维护模块232的运行的维护逻辑242通信。图22示出用于维护和诊断电器12的替换硬件体系。该体系类似于图21所示出的体系,只是个人计算机234被电话线244代替,维护模块232适用于连接到电话线244。由此,图22的替换体系更适于没有个人计算机或者个人计算机没有连接到互联网的电器用户。用于获得诊断数据的过程与参照图21所述的相同;但是,不是将维护模块232连接到个人计算机234,用户将维护模块232连接到标准电话插座246,维护模块232通过电话线244自动连接到互联网。下面参照图22A,用于图22的系统的维护模块232类似于图21A示出的维护模块232,只是USB236被电话线插座248代替,如RJ11插座,该电话线插座用于将维护模块232的调制解调器250与电话线244连接以建立与互联网的连接。上述维护模块232可以在制造时与电器12—起提供,或在电器12销售期间或售后作为附件销售。其它各种附件模块的类型可以随着电器12—起提供,或者由顾客以后购买以升级电器12。示例性的附件模块可以包括可操作地连接到内部网络14和外部网络202而且可以在安装到电器12上时让用户看到的显示器。显示器可以向用户通报各种数据,包括但不限于诸如运行状态的数据,涉及电器并通过内部网络14上的软件体系10获得的数据,或者通过外部网络202从互联网下栽的信息。示例性的附件模块是气象站模块252,其在图23中示出安装在以水箱的形式示出的电器12上。除了显示与天气有关的信息或可从外部网络202下栽的其他信息之外,气象站模块252的显示器还可以包括具有选择区域254的一个或多个触摸板或触摸屏256,用于控制水箱的各种操作,如控制水分配和灯,用于访问水箱的设置如温度。图24示出分段消息的优选分组结构。这种分组结构优选通才艮消息有效载荷何时大于底层协议的有效栽荷,该分段分组结构前面已经在涉及多有效栽荷消息的完整性中描述过;但是在此简要总结如下。在分段消息中,图4所述的标准分组结构优选用在第一片段中。所有后续片段优选使用图24所述的分组结构。这些协议之间的区别在于字节2。为了分段消息的完整性,Frag标志应当置位。MFP标志(更多的片段)应当置位到分段消息的最后一个片段为止。MID(消息id)为每个分段消息一个处理程序或id,从而防止分开的分段消息融合。FID(片段id)基于分段消息的每个片段一个处理程序或id,从而允许检测丢失的片段。更为深入的解释可以在多有效栽荷消息的完整性中找到。图25提供在图24中讨论的分段协议的示例性操作。该协议的解释可以在多有效栽荷消息的完整性中找到。图26A和26B代表用于查找地址和标识符信息的替换体系,4吏得可以建立很好形成的消息并发送给图10的软件体系,从而导致在图5的DAQ30中产生事件。如前所述,DAQ引擎30要求变量的存储器地址用于事件注册。图26A示出利用由客户机配置的数据获取机制的例子,其中客户机(计算机或其它客户机)保存将变量名与其存储器位置关联的当前存储器映射。除了标识符(APIId和Op码)之外,该存储器地址也用于构建良好成型的消息,该消息发送给DAQ从而导致DAQ事件的产生。图26示出使用客户机配置的数据获g制的示例,其中客户机(即另一个控制板)不知道期望的事件变量的存储器地址。在这种情况下,客户机可以利用本发明的内嵌式变量映射功能。由此,客户机只需要提供APIId和Op码,而且不需要在将要发送给DAQ的良好成型的消息中包括变量的存储器地址。因为在这种情况下,DAQ的软件执行获取通过标识符指定的变量的存储器位置的附加任务。一旦获得该存储器位置,DAQ就4吏用在图26A的前一种情况中引用的相同的函数调用来创建包含在DAQ存储器堆中的DAQ的事件结构阵列的事件结构。图26A的变量映射信息将变量符号名称与它们在16A的存储器中的地址关联。图26A将变量标识符(APIId和Op码)与它们在16的存储器中的地址关联。替换体系的合理性在于它们支持与可能发现用符号名称(符号名称趋向于有意义,而且传达变量的有用性)工作是有利的人员的交互,以及与软件体系10的其它实例或一些部件16或22或可以与软件体系10交互的其它软件成分交互。在基于软件的交互(非人员交户)中,有利的是不使用符号名称,因为它们的存储器来存储,更多的带宽来发送,以及更多的计算循环来处理。相反可以用数字标识符来代替符号名称。AallO使用数字标识符APIID和Op码作为符号名称的数字替代符。额外的数字标识可用于APIId的任何有效发生。前一个数字标识足以为驻留在网络14上的每一个部件16提供唯一的索引,后一个数字标识,即额外的标识信息可以利用需要前一个数字标识APIId部分的第二查询来获得。然后组合在一起,APIId和额外的数字标识(后一个)提供了可以表示在软件体系10内的可能软件成分全体中唯一的标识。图27提供了采用内嵌变量映射的由客户机配置的数据获取机制的使用示例。在此,节点A使用公开知道的APIX和Op码Y在节点B上注册链接到期望的事件变量的事件。接着,节点尝试利用APIX和Op码Y注册相同事件。由于该APIID和Op码对以前曾由节点A注册过,因此节点C的请求找到拒绝。但是,接着节点C用获得远程变量数据命令从远程(内嵌的)变量映射请求数据。节点B用信息响应,包括期望的变量的存储器地址。节点C接着使用该存储器地址注册事件,但这一次是用不同的APIID和Op码对。图27还可以被认为是公开了两个涉及在图26B中建议的事件产生的消息情形。第一情形描述了节点A和节点B之间的消息^,这两个节点都通过内部通信网络14通信,节点B与软件体系10兼容。在第一种情况中,节点B可能同意来自节点A的请求。第二种情形描述了节点A和节点B之间的消息收发,这两个节点都通过内部通信网络14通信而且与软件体系10兼容。在这种情况下,节点B无法同意来自节点C的请求,因为消息3中的APIID和Op码已经由前一个请求分配。在这种情况下,节点B适当响应,导致来自节点C的查询(5),从而导致来自节点B的网络消息(6),其包含允许节点C重新产生图33的相同NVOEvent存储器结构所需要的信息,以及节点B的软件体系10的图33的DynamicMemoryHeap唯一的APIID和Op码。图28示出由本发明提供的可配置事件通知功能。优选地,事件在默认触发时只通知外部客户机。但是,可能期望该外部通知在有些时候"沉默,,而实际上不从DAQ引擎30中去掉事件。此外,可能期望在事件发生时通知软件体系10内的内部应用。由此,本发明提供了这样的功能。如前所述,可以采用DAQAPI内的设置外部事件开/关命令来更改外部通知。此外,软件体系10优选提供内部功能来打开和关闭内部通知。图28示出在可能的配置下的事件通知示例。通过这种方式,本发明可以禁止和重新启动图33的NVOEvent在内部通信网络14上的实现。此外,还可以禁止和重新启动图33的NVOEvent实现为发送给软件体系10的相同软件运行环境16A内的软件成分16B的内部消息。图29示出本发明中经过确认的事件的功能。在经过确定的事件中,软件体系等待来自客户机的确认消息一段预定的时间,直到处理下个事件为止。如果预定的时间段结束,则执行预定次数的重试。优选地,假定所有事件默认情况下都是未确认。因此,在向客户机发送事件之后,DAQ引擎30立即处理下个事件。但是,一些应用需要确认这些事件以保证消息被事件请求者接收。采用该技术,发送者可以在未接收到确认时重新发送该事件。该确认证明请求者已经接收到该事件。提供经过确认的事件的选择的优选实施例的优点在于,由请求者根据应用需要决定是否需要确认。因此,当请求者在与DAQ30连接的接口中采用由软件体系10提供的机制来产生事件,消息28A包含了提供该事件是得到确认还是未被确认的进一步分类。如图29中的示例所示,在发生确认事件时,软件体系阻断所有其他事件,同时等待来自客户机的确认。如果没有接收到确认,则软件体系10在可配置的时间量之后重新发送该事件。该重试序列将发生可配置的次数,直到最后软件体系停止尝试发送该事件并通过失败的回叫功能通知该应用。图30示出在本发明中提供的安全特征。由于外部节点执行关键功能可以通过前面描述的协议进行,因此本发明提供了防火墙机制来限制对命令执行的访问。认为是对安全性很关键的命令可以在编译前表格中列出,优选在文件SAVariableMap.h中。命令可以具体列出(具有APIID和Op码)或作为全部API(具有具体的API和Op码-0xFF)列出。在该表格中列出的命令要求在防火墙之后。如图30所示,发明提供了3级安全访问拒绝访问,授权访问,临时授权访问。优选地,所有节点默认状态下都以拒绝访问的访问级别开始。在该访问级别中,只允许该节点执行防火墙前面的命令。由此不允许执行防火墙之后的命令(或者在防火墙表格中列出的)。在成功提交永久密码(在公布节点反馈消息的有效载荷中)之后,节点被提升至授权访问的安全级别。在该访问级别中,允许该节点执行防火墙之前以及之后的所有命令。为了进行防火墙之后的临时访问,节点可以成功地提交临时的访问密码(在公布节点反馈消息的有效载荷中)。在该访问级别中,节点访问防火墻之前以及之后的所有命令一段可配置的时间。该时间结束之后,该节点的访问级别回复到其以前的状态。具体地说,图30设想两个密码,每个密码代表通过命令防火墙的逻辑识别的安全级别。当广播DAQAPI的消息即公布SA节点消息时,密码由部件或客户机发送。(参见字节3和4或Op码2)。一个密码代表对认为是在防火墙之后的所有特殊命令进行永久访问,第二密码向认为是在防火墙之后的所有特殊命令授予临时访问。无需密码,客户机可以访问认为是在防火墙之前的所有命令。负责将软件体系10安装到家用电器12的部件16上的工程师确定哪些命令在图30的防火墙之前,哪些命令在该防火墙之后。图31示出由本发明提供并在图30中示出的防火墙安全的运行的示例。默认的,节点不能访问防火墙之后的命令。由此如图所示,如果不能访问的节点试图执行受到防护的命令,则遭到拒绝。在提交错误的密码之后,受到防护的命令还是被拒绝。只有在成功提交密码之后,才允许该节点执行受到防护的命令。图32示出软件体系10可以实施的标准公共接口。示出的是AppIicationSpecificAPI,其还由设计者根据该应用的需要配置的有用的功能。还示出与软件运行环境的其它软件成分的关联,软件体系10就与该软件运行环境关联。图33示出软件体系10的优选实施。示出执行和支持通过图32表示的功能所需要的内部函数和存储器分配。还示出辅助类(CommandHandler,DynamicMemoryHeap,UpdateHandler,NVOEvent,TimeHandler,WIDECommHandler,MessageParser和AppSpecificCommandHandler),其示出所需要的内部函数和存储器分配的功能分组。还示出辅助类之间的关联。图34软件体系10的源代码文件的优选组织。图35示出3个主要状态(COMM_IDLE,COMM_EXPEXTING_ACK和COMM_PENDING)相互之间相关的状态图的集合,每个状态可能具有多个子状态等。在此所代表的功能涉及图33所示的协作关联。其调用也在图11中参照为从软件运行系统的MAIN执行循环调用到软件体系IO上的标准接口函数。软件运行环境6A的MAIN函数(在图33和图11中示出)调用SA类定义中示出的SA_WideComm()(其中SA及其聚合功能是软件体系10)。该函数调用的结果在图35中示出。如图11所示,MAIN在软件运行系统执行时定期调用SA一WideComm()。图35示出与MAIN的第二次间接交互,这是MAIN对WIDE函数WIDE一EXE()调用的结果。该协作在图11和图35中示出。在这种情况下,WIDE一EXE()函数调用内的WIDE軟件运行层14A调用WIDE.BuildData(),后者又调用52中的SA.WMeCommHandler.SA_BuildData()。在图35中,该调用在COMM_PENDING状态中示出。该执行路径在当前一状态COMM_IDLE中COMM_IDLE的子状态内的逻辑导致针对WIDE网络14的未决外发消息时进行。如图33所示,该状态变化通过调用函数WIDE.QueueMessage()来实现,该调用导致调用图35的COMM_PENDING状态内包含的逻辑。图35的COMM—EXPEXTING_ACK状态是最初利用表明所需要的确认的特殊指示符创建的外发事件的结果。如果正在COMM—PENDING状态中运行的事件(也称为更新)需要确认,状态从COMM_PENDING变为COMM_EXPEXTING_ACK。在这种情况下,通过重新iiACOMM_PENDING状态来重新发送该事件,如果暂停时间结束而又没有接收到期望的确认消息的话。该过程要一直重复到接收到确认或者超过可配置的重试参数(MAX—EVEVT—RETRY,每次重新发送事件时该^lfc都增加)为止。图36示出相互之间相关的状态图的集合。示出4个主要状态(READY,TRANSMITSNAPSHOT,UPDATES—BLOCKED,PROCESS—DAQ—EVENTS)。在此表示的功能涉及图33所示的协作关联。其调用也在图11中引用为从软件运行环境的MAIN执行循环11调用到软件体系IO上的标准接口函数之一。图36表示的功能的目的是估计图33的结构(NVOEvent)31,以确定是否发生了发送事件的条件,收集该条件,并设置合适的标志(Updates—Pending和BoundedUpdates),从而在35的状态机执行时,由DAQ30检测到的事件条件实现为到WIDE总线14上的WIDE分组24.图37示出两个主要状态(MSG—READY和MSG—PROCESS)。在此代表的功能涉及图33所示的协作关联,其中WIDE调用SA.WideCommHandler.SA.AcceptData()。调用这些状态机也在图11中引用为从软件运行环境的MAIN执行循环11调用到软件体系10上的函数,其中MAIN调用SA.SA_ProcessIncomingEventsO。这些相互之间相关的状态机管理到来命令的执行,响应请求,和处理事件。图38示出执行软件运行环境的图33中的类的消息的有序集合。这些消息代表针对在图39、40、41和42中标记为"发送WIDE消息"的共用逻辑集的执行逻辑。从MAIN和WIDE(通过WIDE_WXE0)的调用在图11示出。图39示出执行软件运行环境的图33中的类的消息的有序集合。这些消息代表在包含软件体系10的软件运行环境内的交互。来自MAIN的调用在图11中示出。该图示出向DynamicMemoryHeap添加良好成型的NVOEvent存储器结构所需要的消息HUC。图40示出软件运行环境的图33中的类的消息的有序集合。这些消息代表在包含软件体系10的软件运行环境内的交互。该图示出图37的消息执行。来自MAIN的调用在图11中示出。由该图代表的功能的目的是估计在DynamicMemoryHeap内获得的NVOEvent存储器结构,收集这些存储器结构及其事件触发判断标准得到满足的合适的数据值,并保证为了通知其他客户机16/22满足该触发器判断标准的NVOEvent和关联的数据值的目的,分组24实现到内部通信网络14上。图41、42、43为了处理来自网络14的到来命令(NVO)的目的示出软件运行环境的图33中的类的消息的有序集合。这些消息代表包含在软件体系10的软件运行环境中的交互。从MAIN和WIDE(通过WIDE一WXE())的调用在图11示出。在下面各段中单独描述的图代表用于执行的替换路径的3种情况。图41示出处理来自客户机22/16的从内部通信网络14到来的消息所需要的消息收发,该客户机不需要包含有意义数据的响应[Command-NotReponse,而包含发送到来消息的成功或失败原因的响应(APIID-1,Op码-l的ACK或NAK)。图42示出处理来自客户机22/16的从WIDE总线14到来的消息所需要的消息收发,该客户机需要多个包含有意义数据的响应消息[Commmand-MultipleResponseRequiredl以及发送到来消息的成功或失败原因的响应(APIID=1,Op码-l的ACK或NAK)。图43示出处理来自客户机22/16的从内部通信网络14到来的消息所需要的消息收发,该客户机需要一个包含有意义数据的响应消息[Commmand-SingleResponseRequired以及发送到来消息的成功或失败原因的响应(APIID=1,Op码-l的ACK或NAK)。分类控制是用新的控制装置来控制电器的典型现有技术方法是使该新控制装置的软件部件复制电器控制器的逻辑,4吏得新的控制装置不会疏忽地请求电器控制器的软件部件执行不能进行的操作。该现有技术方法还需要电器和新控制装置之间涉及电器的当前状态的通信。该现有技术方法是低效的,因为它要求复制新控制和装置和电器控制器上的逻辑。此外,该现有技术方法要求每次将电器控制器引入新的控制装置中时都必须写入新软件。控制分类的目的是要避免要求复制控制装置和受控电器中的两个交互软件部件之间的软件逻辑(通常称为业务逻辑)。具体地说,这允许控制装置中的命令发生器很容易控制电器而除了控制分类本身之外不需要任何关于正在受到控制的电器的信息。这可以实现"通用"控制装置的引入以控制新的电器,将控制装置适用于新提供的循环或加入电器中的功能,并让电器在提供不同的运行循环或功能的运行模式之间切换。还控制电器更容易让用户使用,因为只需要向用户展现当前可由该电器提供的选择。本发明使用结构化的分类数据集来有效地告知控制装置控制装置所需要的信息,以便为电器产生格式良好的(wellformed)命令。在此使用的格式良好的命令是有意义而且可由电器执行的命令。数据集传送的信息包括执行该格式良好的命令所需要的选项和数据输入的分层结构。在优选实施例中,还包括语义或上下文信息,用于以文字或图标的形式通报可获得的选项,从而用户可以理解可获得的选择并输入合适的数据。这优选通过与任意或非用户友好的标识元素关联的数据集内的标记来完成。这使得必须解释和处理分类的软件部件的逻辑与分类在用户接口上的呈现分离(如外语,标签,单位)。参照图44,其概括性地示出本发明的改进的控制结构和方法,受控的电器12具有软件部件216B,该软件部件包括电器控制器和状态发生器。用于控制电器的控制装置16、22具有软件部件116B,该软件部件包括命令发生器、选择创建器和状态解释器。控制装置16、22可以是可编程用户接口如pda、web写字板、小区电话、连接到电器或客户机装置的LCD。设置在电器控制器16和逻辑中的分类体系可替换的设置在远程位置,如设置在控制装置或互联网上。分类体系包括分类发生器、分类引擎、分类翻译器和分类结构。分类体系产生定义分类能力的分类数据集,其有助于通过软件部件1产生格式良好的命令,该命令可以通过分类引擎和可选的通过分类翻译器转换为由软件部件2执行的其他格式良好的命令;通过软件部件1产生用户接口内容;在呈现给用户接口之前mt状态信息。每个部件及其相互关系都在下面详细描述。分类数据集的产生分类数据集从电器控制器16的运行功能中产生,该电器控制器16按照允许软件部件1中的命令发生器解释该数据集以完成几种结果的方式构成。具体地说,分类引擎有时使用分类结构和状态察觉信息来产生反映可由电器提供给当前可由电器获得的命令的统一选项的子集的分类数据集。例如,分类数据集描述由软件部件16B支持的可获得函数,每个函数变量,以及数据结构中每个变量的有效值。此外,分类数据集定义反馈变量的有效值。由于这在数据结构中,因此它可以按照需要发送和重新发送给客户机16或22。由于运行循环A艮和可获得的命令或者该命令的变量的有效值改变,分类数据集发生改变。此外,当运行循环从Idle(空闲)开始t艮时,额外的命令可以提供出来或者变得无效。具体地说,选择创建器注册分类管理器以接收给予新分类引擎的通知。为了响应,分类管理器将对所有已知分类引擎的引用发回选择创建器。然后选择创建器从每个分类引擎请求分类功能数据集。分类引擎评估包括软件部件2的控制器逻辑分类结构或可替换地评估用于产生分类功能数据集的文档。然后选择创建器配备适用于应用结束点(应用结束点的示例是用于控制或维护或其他中间应用层如能量控制器或家庭自动化模式如休假或晚安的用户接口)的一组伪命令结构,这些命令是选项的分层结构,并且将这些结构传递给应用结束点,从而允许应用结束点得到配置。替换的,选择创建器可以直接配置应用结束点。数据集的通信和使用当控制装置与电器联网时,分类管理器在软件部件1和分类体系之间建立关系,以允许命令发生器查询分类数据集是否存在,向软件体系1提供对分类数据集的访问,并允许命令发生器和状态解释器定购分类数据集更新。分类翻译器是可选的部件,如果软件部件1和2没有,皮设计为与分类数据集的相同实施例共同使用,则分类翻译器就在软件部件1和2之间翻译分类数据集。将分类数据集传送给软件部件2的控制器以及软件部件1的选择创建器。可选的,分类翻译器将分类数据集翻译为命令发生器的不同的示意定义,命令发生器使用分类数据集来建立和填充一组可由用户接口或其它客户机应用选择的命令结构,包括一组有效命令、该命令的有效变量、每个变量的有效值。具体地说,命令发生器使用分类数据集建立一个或多个格式良好的命令,然后可以将该命令发送给控制器。由于分类数据集可以在不同的时刻由分类引擎复位并发送,或者该数据集可以通过来自分类引擎的修改而更新,因此软件部件1可以具有当前的命令结构组,然后该命令结构组可由用户接口或其他客户机应用选择。由此实际上通过釆用分类体系,软件部件2或其代理(分类引擎)向软件部件1通报可以由软件部件1解释的规则集,从而软件部件1不请求软件部件2的其自身无法供给的东西,并且不对设置为无效值的状态变量进行操作。在应用结束点可以开始执行之前,应用结束点用状态解释器请求或注册状态更新。这将使得在执行逻辑之前以及在用户接口部件交^f寸之前,应用结束点可以具有来自状态发生器的有效状态变量。状态解释器将处理分类正确的状态数据集,并根据分类功能数据集验证这些数据集。状态解释器通过分类引擎请求或注册来自软件部件2的状态发生器的状态更新。在接收到分类正确的状态时,状态解释器向应用结束点提供新的状态值。应用结束点执行,从而导致软件部件2的当前状态的提交以及可选择的伪命令结构的提交。每次从伪命令结构中选择时,选择创建器都填充在分类功能数据集中找到的一组有效的子命令,这组子命令适用于由应用结束点进一步选择。在结束选择时,包含所有伪命令的结构被传递#令发生器。命令发生器建立分类正确的格式良好的命令并且可选地通过分类翻译器,通过分类引擎在软件部件2的控制器上调用该命令。执行将格式良好的命令传送给电器的控制器并由电器执行。典型的,该命令将导致软件部件2的有关存储器发生状态变化,该状态变化会触发由状态发生器创建的状态更新,并导致应用结束点的新的状态提交。状态的变化导致新的功能分类或者可以替代原始功能分类的一部分的部分功能分类。新的功能分类导致一组不同的有效选择用于控制软件部件2的运行循环。状态解释器使用分类数据集从状态发生器验证由分类引擎或翻译器发送的状态更新。此外,作为分类数据集的来源的分类结构,允许控制器根据该结构完全验证到来的命令,而无需数据集之外的附加逻辑。例如,分类结构可以在概念上认为是一个或多个判决树,分类的每一级形成不同的判决分支或一组判决分支,每个选项和/或数据输入可以形成不同的级别。电器的运行循环要求用户在形成格式良好的命令时选择该选项和/或数据输入。这些选择可以与判决树相比较以确认每个循环、循环属性或循环选项都在判决树的合适分支内。如果期望的运行循环、属性和选项没有在该命令中,则表明该命令含有错误。分类结构由此用于向用户接口填充可用的、针对电器的给定状态的选项和数据输入,而且也用作验证所产生的命令的逻辑。分类数据集是作为对象或软件结构的分类结构的数据代表。分类数据集包含所有针对电器当前状态的可用的命令、选项和设置,以及当前状态时的所有有效状态值。例如,电器包括通过内部网络互连的多个部件。每个部件可以具有一个或多个装置。每个装置具有一个或多个功能,每个功能具有一个或多个设置。所有装置的所有功能都不必在电器的每个状态时可用。这样,分类数据集包括针对当前可用的所有装置的所有选项和数据输入。图45-48示出在微波炉的用户接口16、22的环境中的分类控制的示例,该分类控制具有表明电器12当前状态下可用的功能的分类数据集。用户可以从该数据集的参数中选择以形成格式良好的命令,该命令将枕t布以用于控制电器12的操作。图45示出选项和数据输入的可用分层结构。该分层结构的顶M循环100开始,其示出具有煮、解冻、煮马铃薯、蒸煮、自动重新加热和餐盘作为示例。用户必须从顶级中选择一个选项。一旦用户从顶级中进行了选择,该分层结构的基于顶级选择的下一级就呈献给用户。在图46中,用户选择了"煮"选项,用户接口然后以时间102和功率电平104的形式显示可用于该选项而且是形成格式良好的命令所需要的数据输入。图47示出顶级的选择暴露了子集的选项。在图47中,选择解冻,这呈现出子集类型"肉"106.用户必须选择合适的肉选项来完成格式良好的命令。数据输入以重量108和解冻电平110的形式呈现,而且必须选择以完成格式良好的命令。一旦用户从用户接口可访问的分类数据集中选择了这些选项和数据输入,命令发生器就形成格式良好的命令并发送给电器的部件上的软件部件2以便于实行。这仅在格式良好的命令经历了验证过程之后才进行。软件部件2的控制器和逻辑使用该格式良好的命令控制装置的操作以实行该格式良好的命令。分类数据集和格式良好命令的创建证明是有用的。图45的微波炉的公开了多个烹饪循环的分类数据集的创建是由选择创建器根据分类功能数据集建立的,该分类功能数据集用XML显示如下<deviceid="microwave"label-"MicrowaveOven"><deviceid-"ovenCavity"labe="MicrowaveOven"><charname-"cyde"labd="Cyde"default="timedCook"><settingname-"timeclCook"labeH'COOK"/><charname-"turntable"label="Tiirntable"defaut="on"><settingname-"on"label="ON"/><settingname="off,label-,,OFF"/></char>〈rangename="duration,'label=',Duration"default="30',units="seconds"max="6039,,min="60"inc-"l"/><rangename="power"label="PowerLevel"default="100units="%"max-"lOO"min="50"inc-"10"/></setting><settingname-"jetdefrost"label-"JetDefrost7><charname-foodTypelabel="FoodType"/><settingname="poultry"label-"POULTRY"/><settingnaoie-"meat"label-"MEAT"/><settingname-"fish"label="FISH"/></char></setting>etc</char></device></device>如果图45的微波炉的用户选择用"转盘打开,,在卯%功率时"煮,,30秒,分类计划的格式良好命令将可选地传送给分类翻译器和分类。命令形式为<commandid="microwave"><deviceid="ovenCavity"><s6qu6nce><stepid-"21"><charname-"cycle"settbg="bake7><charname-"power"setting="90"/><charname-"duration"setting="30"/><charname="turntable"settmg="on'V></step></scqusnc6></ckvice></command>分类引擎接着穿越分类结构以便将分类计划的格式良好命令转换为分组结构28的软件部件2的控制器的格式良好命令。分类结构是分类功能数据集的超集。对于上述每个可指明的命令要素(即,循环,功率,持续时间和转盘),都在分类结构内关联形成有效载荷28A所需要的附加的关键字和值的集合。这些关键字包括APIId,Op码,以及有效载荷28A中的位置索引,其中位置索引可以是字节偏移量或位偏移量。分类数据集可以建立为直接代表软件体系10的API的可能命令领域,从而为维修、工厂或实验室工程师或技师提供有用功能。虽然结合具体的实施例描述了本发明,可以理解这只是举例而不是限制,所附权利要求的范围应当与现有技术允许的范围一样宽。权利要求1.一种系统,包括由有用软件动态产生的存储器堆,其中所述存储器堆包括多个事件结构,每个事件结构包括至少一个指向该事件结构外部的存储器的指针、至少一个事件运算符和至少一个变量,和数据获取引擎,被配置为查找存储器堆,基于所述至少一个指针、至少一个操作符和至少一个变量估计事件条件是真还是假,并在发现真条件时产生通知消息。2.根据权利要求1所述的系统,包括与所述存储器堆关联的存储器,并且所述存储器堆在编译时被分配在相关联的存储器中。3.才艮据权利要求2所述的系统,包括在运行时产生事件结构的软件体系.4.根据权利要求3所述的系统,其中软件体系产生每个具有唯一标识的事件结构。5.根据权利要求3所述的系统,其中软件体系驻留在与相关联的存储器通信的通信网络上,并且软件体系产生消息并将该消息通过该通信网络发送到该相关联的存储器以形成事件结构。6.根据权利要求5所述的系统,其中软件体系包括产生消息的应用程序接口(API),7.根据权利要求6所述的系统,其中通信网络包括多个节点,其中API驻留在至少一个节点上。8.根据权利要求7所述的系统,其中通信网络包括到电器的内部通信网络。9.根据权利要求8所述的系统,其中节点包括驻留有API的电器的部件。10.根据权利要求8所述的系统,其中通信网络包括电器外部的节点。11.根据权利要求1所述的系统,其中每个事件结构具有唯一的标识。12.根据权利要求10所述的系统,包括控制軟件,被配置为通过一系列步骤控制装置系统,以执行有用运行循环,其中该控制软件产生事件结构。13.根据权利要求12所述的系统,其中通知消息更改控制程序的运行。14.根据权利要求1所述的系统,还包括具有多个节点的网络,其中存储器堆与网络相关联。15.根据权利要求14所述的系统,其中所述网络包括用于电器的内部通信网络,并且实现对电器操作的控制。16.根据权利要求15所述的系统,其中所述网络包括内部通信网络外部的节点,而且通知消息波t送到该网络上的节点。17.根据权利要求16所述的系统,其中通知消息在回叫功能中净皮调用。18.根据权利要求14所述的系统,其中存储器堆驻留在一个节点上,并且数据获取引擎驻留在另一节点上。19.根据权利要求18所述的系统,其中至少一个节点通过网络发送配置消息,以在存储器堆中创建事件结构。20.根据权利要求19所述的系统,其中所述配置消息使得节点能够在接收到通知消息后发送确认消息。21,根据权利要求1所迷的系统,其中数据获取引擎被配置为使得通知消息可以被选择性地置于禁用状态或使能状态。22.根据权利要求21所述的系统,其中在通知消息的状态变化时,相应的通知消息被发送到网络上。23.根据权利要求1所述的系统,其中事件运算符包括以下中至少一个大于,小于,等于,正在改变,死带,位掩码。24.根据权利要求1所述的系统,其中数据获取引擎被配置为响应于至少一个所述事件条件产生通知消息。25.根据权利要求24所述的系统,其中数据获取引擎被配置为响应于多个事件条件产生通知消息。26.根据权利要求1所述的系统,其中数据获取引擎在产生通知消息之前评估所有事件结构。27.根据权利要求1所述的系统,还包括观察者引擎,用于评估由数据获取引擎所产生的通知消息,以确定不止一个事件的累积效应。28.—种控制系统,包括控制软件,被配置为通过一系列步骤控制装置系统,以执行有用运行循环,由该控制软件动态产生的存储器堆,该存储器堆包括多个事件结构,每个事件结构包括至少一个指向该事件结构外部的存储器的指针、至少一个事件运算符和至少一个变量,和数据获取引擎,适于在控制软件运行时查找存储器堆,并被配置为基于所述至少一个指针、至少一个操作符和至少一个变量来估计事件条件是真还是假,并在发现真条件时产生可配置的通知消息。29.根据权利要求28所述的控制系统,包括与所述存储器堆关联的存储器,并且所述控制软件在控制软件编译时在相关联的存储器中分配存储器堆。30.根据权利要求28所述的控制系统,其中控制软件包括产生事件结构的应用程序接口(API).31.根据权利要求30所述的控制系统,其中每个事件结构具有由控制软件在运行时分配的唯一标识。32.根据权利要求28所述的控制系统,其中响应于可配置的通知消息改变控制软件的运行。33.才艮据权利要求32所述的控制系统,其中响应于多个事件条件产生至少一个通知消息。34.—种数据获取方法,包括查找具有至少一个存储器指针、事件运算符和变量的条件参数的事件结构的存储器堆;通过为事件结构评估条件M,识别评估为真的事件条件;和在发现真条件时,产生通知消息。35.根据权利要求34所述的方法,其中在编译时分配存储器堆。36.根据权利要求34所述的方法,其中在运行时,根据至少一个网络消息创建事件结构。37.根据权利要求34所述的方法,其中存储器堆与具有内部网络的电器的控制程序相关联。38.根据权利要求37所述的方法,其中通过与控制程序相关联的应用程序接口产生事件结构。39.根据权利要求37所述的方法,其中响应于通知消息改变控制程序的运行。40.根据权利要求37所述的方法,其中通知消息通过内部网络^t^送到外部网络。41.根据权利要求34所述的方法,其中每个事件结构具有唯一标识符。42.根据权利要求34所述的方法,其中通知消息通过具有多个节点的网络收良送。43.根据权利要求42所述的方法,其中通知消息通过所述网络^Jl送到所述多个节点中的一个节点。44.根据权利要求34所述的方法,其中通知消息在回叫功能上被调用。45.根据权利要求34所述的方法,并且选择性地使能和禁用通知消息的产生。46.根据权利要求45所述的方法,在选择性地使能和禁用通知消息时,发送所述通知消息。47.根据权利要求34所述的方法,其中^^的评估包括应用从以下列表中所选择的事件运算符大于,小于,等于,正在改变,死带,位掩码。48.根据权利要求34所述的方法,其中在为多个事件结构评估MM之后进行通知消息的产生。49.根据权利要求34所述的方法,包括评估多个通知消息,以确定多个事件结构的累积效应。50.—种通过一系列步骤控制装置系统以执行有用运行循环的方法,该方法包括以下步骤运行控制程序,以通过一系列步骤指示装置的运行,在控制程序运行期间动态地产生存储器堆,该存储器堆包括多个事件结构,每个事件结构具有包括与事件相关的至少一个指向该事件结构的外部存储器指针、至少一个事件运算符和至少一个变量的^HM^,通过在控制软件运行期间查找结枸的存储器堆,并为事件结构评估^N^t,识别被估计为真的事件条件,和在发现真条件时产生可配置的通知消息。51.根据权利要求50所述的方法,包括在控制程序运行期间向每个事件结构分配唯一的标识符。52.根据权利要求50所述的方法,包括响应于通知消息,更改控制程序的运行。53.根据权利要求50所述的方法,选择性地使能和禁用通知消息的产生。54.根据权利要求50所述的方法,包括评估多个通知消息,以确定多个事件结构的累积效应。55.—种网络系统,包括定义通信网络的多个互连节点,其中至少一个节点被配置为通过该通信网络发送消息,并且至少一个节点被配置为通过该通信网络接收消息;来自预定的标识符组的至少一个标识符与每个节点相关联,并只标识可用于该节点的功能性;其中至少一个节点通过经该通信网络发送的消息来传送所述至少一个标识符,用于由至少一个节点接收,由此通过该通信网络公布功能性。56.根据权利要求55所述的网络系统,其中节点包括从包括以下内容的列表中所选择的部件传感器、分配器、光、过滤器、电机、除霜器、加热器、电梯、螺线管、继电器、冷却器、电机控制器、键区控制器和用户接口。57.根据权利要求55所述的网络系统,其中通信网络被配置为与其它网络通信。58.根据权利要求55所述的网络系统,其中所述预定的标识符组是可配置的。59.根据权利要求55所述的网络系统,其中可用于标识符的功能性是可配置的。60.根据权利要求59所述的网络系统,其中可通过为标识符分配新功能来配置功能性。61.根据权利要求59所述的网络系统,其中可动态配置功能性。62.根据权利要求55所述的网络系统,其中标识符除了功能性之外还表明含义。63.根据权利要求62所述的网络系统,其中含义可以被重新分配。64.根据权利要求62所述的网络系统,其中含义可以根据网络而变化。65.根据权利要求62所述的网络系统,其中标识符的含义在节点之间变化。66.根据权利要求55所述的网络系统,其中至少一个节点通it^网络上公布的标识符阵列而确定自己的身份。67.根据权利要求66所述的网络系统,其中标识符阵列被存储在与该至少一个节点相关联的存储器中。68.根据权利要求55所述的网络系统,其中至少一些标识符包括关于标识符的唯一信息。69.根据权利要求68所述的网络系统,其中唯一信息在整个网络上唯一地标识标识符。70.根据权利要求68所述的网络系统,其中唯一的信息在整个网络上唯一地标识节点。71.根据权利要求68所述的网络系统,其中唯一信息在整个标识符组上唯一地标识标识符。72.根据权利要求55所述的网络系统,还包括同一节点上标识符的多个实例,其中每个实例包括用于唯一地标识每个实例的唯一信息。73.根据权利要求72所述的网络系统,其中附加标识符是被产生和分配的标识符。74.根据权利要求55所述的网络系统,其中与被配置为接收消息的节点的功能性相关联的标识符被用于寻址用于接收消息的节点。75.根据权利要求55所述的网络系统,其中消息从包括以下内容的列表中选择使用功能性的命令,对与功能性相关的信息的请求,对请求消息的响应,接收到命令的确认。76.根据权利要求75所述的网络系统,其中对信息的请求包括请求标识符的请求消息。77.根据权利要求76所述的网络系统,还包括响应于请求消息的响应消息,用于确i^至少一个标识符与至少一个节点的相关性。78.根据权利要求77所述的网络系统,其中包含所请求的标识符的响应消息包括所请求的标识符的实例的数量。79.根据权利要求74所述的网络系统,其中对信息的请求寻找以下中至少一个指定标识符的相关性的确认,与至少一个节点相关的多个标识符的识别,与指定节点相关的所有标识符的识别。80.—种用于可操作地协作地执行有用运行循环的装置系统的网络系统,该网络系统包括多个节点,其中每个节点与至少一个装置相关联,至少两个所迷节点适于发送消息,并且至少两个节点适于接收消息;预定的标识符范围;来自所述预定的标识符范围的与每个节点相关联的至少一个标识符,用于标识哪些功能性可用于与该节点相关联的装置。81.根据权利要求80所述的网络系统,其中多个装置的集合包括电器。82,根据权利要求80所述的网络系统,其中多个装置的集合包括多个联网电器。83.—种识别具有多个节点的网络中的节点的方法,其中每个节点具有预定标识符组中至少一个标识符,每个标识符标识可用于该节点的至少一个功能性,该方法包括至少一个节点通过该网络发送配置为查询该预定标识符组中至少一个标识符是否存在的消息,至少一个其它节点发送确认在该至少一个其它节点上存在该至少一个标识符的反馈消息。84.根据权利要求83所述的方法,其中节点忽略查询不可用标识符是否存在的消息。85.根据权利要求84所述的方法,其中所述节点通过不响应于所述消息发送反馈消息来忽略所述消息。86.根据权利要求83所述的方法,其中消息可以被广播到所述节点中一个、一些或^p。87.根据权利要求86所述的方法,其中消息针对特定节点。88.才艮据权利要求86所述的方法,其中如果查询不可用标识符的消息被广播到不止一个节点,则节点忽略该消息。89.根据权利要求83所述的方法,其中所述消息是请求信息的发现查询,所述反馈消息是包含该发现查询所请求的信息的网络消息。90.根据权利要求89所述的方法,其中反馈消息仗良送到所述节点中的一个、一些或全部。91.根据权利要求卯所述的方法,其中反馈消息指向发送发现查询的节点。92.根据权利要求83所述的方法,其中反馈消息涉及估计网络完整性、使能动态网络行为、配置节点之间交互中至少一个。93.根据权利要求83所述的方法,其中每个标识符代表一组/>共功能性。94.根据权利要求93所述的方法,其中所述消息可以请求涉及标识符的至少一个功能性的信息以及关于该标识符的信息。95.根据权利要求94所迷的方法,其中标识符通过驻留在节点上的软件模块来实施,所述消息请求关于该软件模块的功能性以及该软件模块的身份的信息。96.根据权利要求83所述的方法,其中通过新节点广播节点活动消息而启动消息的发送。97.根据权利要求83所述的方法,其中节点可以发送向任何其它节点请求以下至少一项的消息所支持的功能标识符中一个、一些或全部,和唯一的标识符信息。98.根据权利要求83所述的方法,其中反馈消息包括所请求的标识符存在的实例的数量。99.根据权利要求98所述的方法,其中发送消息的节点可以响应于反馈消息发送复文消息,以请求用于唯一地识别节点处标识符的重复实例的附加标识信息。100.—种识别具有形成通信网络的多个互连节点的电器中的节点的方法,其中至少一些所述节点具有对应的部件,其中所述部件可操作地通过通信网络耦接以协作地执行有用运行循环,每个节点具有预定标识符组中的至少一个标识符,每个标识符标识可用于对应部件的至少一个功能性,该方法包括至少一个节点通过该网络发送被配置为查询该预定标识符组中至少一个标识符是否存在的命令,至少一个其它节点发送确认在该至少一个其它节点上存在该至少一个标识符的反馈消息。101.根据权利要求100所述的方法,其中消息可以被广播到所述节点中的一个、一些或全部。102.根据权利要求100所述的方法,其中所述命令是请求信息的发现查询,所述反馈消息是包含该发现查询所请求的信息的网络消息。103.根据权利要求100所述的方法,其中反馈消息涉及估计网络完整性、使能动态网络行为、配置节点之间交互中至少一个。104.根据权利要求100所述的方法,其中标识符通过驻留在部件上的软件模块实施,所述命令向该软件模块请求该部件的功能性的信息以及该软件模块的身份。105.根据权利要求100所述的方法,其中通过新节点广播节点活动消息而启动命令的发送。106.根据权利要求100所述的方法,其中节点可以发送向任何其它节点查询以下至少一项的命令所支持的功能标识符的一个、一些或全部,以及唯一标识符信息。107.根据权利要求100所述的方法,其中反馈消息包括所请求的标识符存在的实例的数量。108.根据权利要求100所述的方法,其中发送命令的节点可以响应于反馈消息发送复文命令,以请求用于唯一地标识节点处标识符的重复实例的附加标识信息。109.—种用于控制具有至少两个运行模式并通过通信网络连接以形成协作节点网络的多个装置的系统,该系统包括第一软件运行层,被配置为响应于在网络上发送的消息,在第一运行模式下控制至少一个装置的运行,第二软件运行层,被配置为响应于在网络上发送的消息,在第二运行模式下控制至少一个装置的运行,其中第二运行层与第一运行层提供消息与装置运行之间不同级别的干预。110.根据权利要求109所述的系统,其中第一和第二软件运行层允许通过消息对装置进行不同级别的控制,以提供不同级别的干预。111.根据权利要求110所述的系统,其中第二软件运行层允许至少一个装置在第一运行层阻止该装置运行的条件下运行。112.根据权利要求111所述的系统,其中第一软件运行层在第二軟件运行程允许直接控制该装置时不允许直接控制所述多个装置中的至少一个装置。113.根据权利要求109所述的系统,其中第一软件运行层只允许所述装置按照执,定运行循环的方式运行。114.根据权利要求113所述的系统,其中第二软件运行层允许装置在至少一个附加运行循环下运行。115.根据权利要求114所述的系统,其中附加运行循环是以下中至少一个演示循环;开发循环;检错循环;诊断循环;减小一个预定运行循环的至少一个定时步骤的时间的循环;绕过一个预定运行循环的至少一个可操作步骤的循环;用定时步骤替换对一个预定运行循环的事件进行响应的步骤的循环;将下层API暴露给网络的循环。116.根据权利要求109所述的系统,还包括至少一个内部和外部客户机,其被配置为产生用于在第一和第二运行模式之间改变运行模式的消息。117.根据权利要求109所述的系统,其中第一和第二软件运行层中至少一个执行装置的协作运行,以完成一系列相关步骤来完成预定操作。118.根据权利要求117所述的系统,其中装置是从包括传感器、分配器、过滤器、电机、加热器和冷却器的列表中选择的。119.根据权利要求117所述的系统,其中所述多个装置中至少一个子集全都位于一个电器中。120.根据权利要求117所述的系统,其中所述多个装置包括多个联网的电器。121.根据权利要求109所述的系统,其中网络包括内部网络和外部网络中至少一个。122.根据权利要求121所述的系统,其中第二运行模式将第一软件运行层暴露给外部网络。123.根据权利要求109所述的系统,其中第一和第二运行模式中的一个包括本地运行模式,第一和第二运行模式中另一个包括远程运行模式。124.—种用于控制通过通信网络连接的多个装置以定义可操作地在运行循环中执行一系列步骤的机器的控制系统,该控制系统包括用户接口,被配置为从用户接收用于从多个运行循环中选择一个运行循环的输入;与网络隔离的第一系统元件,被配置为控制该机器以实施所选择的运行循环,以定义第一控制状态;暴露给网络的第二系统元件,被配置为通过网络控制该机器以实施所选择的运行循环,从而定义第二控制状态。125.根据权利要求124所述的控制系统,其中网络包括具有多个节点的内部网络,至少一个节点具有一个或多个功能单元,每个功能单元代表一组/>共功能性。126.根据权利要求125所述的控制系统,其中至少一个功能单元实行对所述多个装置中至少一个装置的下层电输入和输出中的至少一个的控制。127.根据权利要求124所述的控制系统,其中第二系统元件包括驻留在至少一个装置上的软件引擎,而且该软件引擎暴露通过网络发送的网络消息以实行第二控制状态。128.根据权利要求127所述的控制系统,其中软件引擎暴露封装在网络消息中的命令,其中该命令用于实行第二控制状态。129.根据权利要求124所述的控制系统,其中绕过至少一个!HiE和安全校验,以便向第二系统元件提供对至少一些所述装置的下层功能性的控制。130.根据权利要求124所述的控制系统,其中第二系统元件可以响应于网络消息而将该机器从第二控制状态中移除。131.—种控制系统运行的方法,包括产生代表格式良好命令组的分类数据集;利用分类数据集,从该格式良好命令组中产生格式良好命令;响应于所产生的格式良好命令,控制系统的运行。132.根据权利要求131所述的方法,其中通过与系统相关联的网络上的至少一个节点完成产生分类数据集和产生格式良好命令中至少一个。133.根据权利要求132所述的方法,其中至少一个节点是多个用于形成机器的内部网络的互连节点中的一个。134.根据权利要求131所述的方法,其中控制系统的运行包括由从以下中所选择的控制器控制系统节点上的控制器,系统网络内且内部网络外部的控制器,外部控制器。135.根据权利要求134所述的方法,还包括向控制器发送格式良好命令的步骤。136.根据权利要求131所述的方法,其中分类数据集指示从可允许用于控制系统的命令与控制系统所需要的命令中所选择的命令。137.根据权利要求131所述的方法,其中分类数据集通过多个分类级别定义,其中至少一个分类级别指示至少一个所需要的判定。138.根据权利要求137所述的方法,其中判定是以下中至少一个选项的选择或拒绝,输入值设置,从多个可能的选项中选择一个选项。139.根据权利要求138所述的方法,其中选项选自一组可用于系统的运行循环的选项。140.根据权利要求131所述的方法,其中通过用于控制系统的至少一部分运行的控制器产生分类数据集。141.根据权利要求140所述的方法,其中控制器基于以下因素中至少一个产生分类数据集当前运行的类型,当前运行的状态,当前运行的任何可操作限制。142.根据权利要求140所述的方法,其中控制器根据以下中至少一个产生分类数据当前可应用的资源限制,当前可应用的安全限制,用户偏好,时间限制。143.根据权利要求131所述的方法,还包括向至少一个命令发生器发送分类数据集。144.根据权利要求143所述的方法,还包括向多个命令发生器发送分类数据集。145.根据权利要求144所述的方法,其中控制系统运行的步骤包括从所述多个命令发生器中至少一个控制系统。146.根据权利要求145所述的方法,其中系统包括内部网络,至少第一命令发生器位于内部网络内,第二命令发生器位于内部网络之外。147.根据权利要求143所述的方法,其中至少一个命令发生器选自控制面板上的用户接口,外部用户接口,用户接口,资源管理系统,家庭自动化系统,共享资源的其他系统,执行相关操作的其它系统。148.根据权利要求143所述的方法,其中命令发生器发送运行至少两个系统的命令。149.根据权利要求143所述的方法,其中分类数据集作为多个消息^!^L送到命令发生器。150.根据权利要求131所述的方法,还包括步骤向提供用于引导用户产生格式良好命令的用户反馈的用户接口装置发送分类数据集。151.根据权利要求150所述的方法,其中用户反馈包括通知用户选项不可用。152.根据权利要求131所述的方法,其中重复执行产生分类数据集的步骤。153.根据权利要求131所述的方法,还包括周期地产生分类修改消息的步骤。154.根据权利要求131所述的方法,还包括a^t格式良好命令的步骤。155.根据权利要求154所述的方法,其中!HiE格式良好命令的步骤选自aHiL命令的接收,JiHi命令是格式良好的,to命令的执行。156.根据权利要求131所述的方法,其中分类数据集的产生包括集合多个可允许用于格式良好命令的命令分量。157.根据权利要求156所述的方法,其中格式良好命令的产生包括将命令分量集合成格式良好命令。158.—种用于使可编程命令发生器能够产生用于控制运行的格式良好命令的分类数据集,该数据集包括多个在格式良好命令内可允许的命令分量,概述用于选择产生格式良好命令的命令分量的分类结构的命令分类的分类,其中分类在选择至少一个命令分量时为该至少一个命令分量指示形成格式良好命令所需要的任何附加的命令分量。159.根据权利要求158所述的方法,其中分类结构包括多个分类级别,其中至少一个分类级别指示至少一个所需要的判定。160.根据权利要求159所述的方法,其中所需要的判定选自选项的选择或拒绝,输入值设置,从多个可能的选项中选择一个选项。161.根据权利要求158所述的方法,其中分类数据集阐明从可允许用于控制系统的命令和控制系统所需要的命令中选择的命令。162.根据权利要求158所述的方法,其中至少一个命令分量反映状态信息。163.根据权利要求162所述的方法,其中状态信息选自传感器状态信息,循环状态信息,环境状态信息,资源信息,用户偏好信息,历史运行信息,网^息,控制运行模式信息,运行状态信息。164.—种用于控制有用系统的运行的控制系统,包括至少一个控制器,被配置为响应于来自一组格式良好命令中的格式良好命令,控制该有用系统的运行;至少一个分类引擎,适于产生用于建立该组格式良好命令的分类数据集;至少一个命令发生器,适于使用该分类数据集产生格式良好命令;其中分类引擎被配置为向命令发生器传送分类数据集,命令发生器被配置为向控制器传送格式良好命令。165.根据权利要求164所述的控制系统,包括多个控制器,其中该至少一个分类引擎4皮配置为产生对应于每个控制器的分类数据集。166.根据权利要求165所述的控制系统,包括多个命令发生器,其中每个命令发生器可以产生用于该多个控制器中任何控制器的格式良好命令。167.根据权利要求164所述的控制系统,包括多个命令发生器,其中每一个被配置为为该控制器产生良好结构化命令。168.根据权利要求164所述的控制系统,其中电器中的有用系统和受控的运行是电器的运行,其中该电器具有包括多个节点的内部网络,控制器选自一个节点上的控制器,内部网络外部的控制器,外部控制器。169.根据权利要求164所述的控制系统,其中分类数据集阐明从可允许用于控制系统的命令和控制系统所需要的命令中选择的命令。170.根据权利要求164所述的控制系统,其中分类数据集通过多个分类级别定义,其中至少一个分类级别指示至少一个所需要的判定,其中判定选自选项的选择或拒绝,输入值设置,从多个可能的选项中选择一个选项。171.根据权利要求164所述的控制系统,其中控制器根据以下中至少一个产生分类数据集当前运行的类型,当前运行的状态,当前运行的任何可操作限制。172.根据权利要求164所述的控制系统,其中控制器根据以下中至少一个产生分类数据集当前可应用的资源限制,当前可应用的安全限制,用户偏好,时间限制。173.根据权利要求164所述的控制系统,其中命令发生器选自控制面板上的用户接口,外部用户接口,用户接口,资源管理系统,家庭自动化系统,共享资源的其他系统,执行相关操作的其它系统。174.根据权利要求164所述的控制系统,其中命令发生器是可编程的用户接口装置,其向用户提供用于引导用户产生格式良好命令的反馈。175.—种网络控制系统,包括响应多个函数调用的软件运行层,能够直接产生至少一些所述函数调用的物理用户接口,被配置为调用至少一些所迷函数调用的虚拟用户接口。176.根据权利要求175所述的网络控制系统,其中虛拟用户接口被配置为调用至少一些物理用户接口不能直接产生的函数调用。177.根据权利要求175所述的网络控制系统,还包括互连节点的网络,软件运行层响应于所述函数调用控制每个节点以实施运行,其中虚拟用户接口被配置为调用函数调用,以独立于软件运行层地直接控制节点。178.根据权利要求177所述的网络控制系统,还包括驻留在至少一个节点上的软件引擎,用于通过网络实施虛拟用户接口。179.根据权利要求i78所述的网络控制系统,其中软件引擎至少驻留在那些可以被虚拟用户接口直接控制的节点上。180.根据权利要求179所述的网络控制系统,还包括网络外部的节点,该节点被配置为与互连节点的网络通信,其中软件引擎驻留在网络外部的节点上。181.根据权利要求177所述的网络控制系统,其中虚拟用户接口在网络外部而且与网络通信,从而从远离网络的地方通过网络执行对节点的控制。182.根据权利要求177所述的网络控制系统,其中虚拟用户接口在网络内部。183.根据权利要求182所述的网络控制系统,其中网络限定电器的内部通信网络。184.根据权利要求183所述的网络控制系统,其中虛拟用户接口与物理用户接口位于不同节点。185.根据权利要求177所述的网络控制系统,其中网络上每个节点具有一个或多个功能单元,其中每个功能单元代表一组公共功能性。186.根据权利要求175所述的网络控制系统,其中虚拟用户接口产自替换的软件运行层。187.根据权利要求175所述的网络控制系统,其中替换的命令发生器响应于事件的检测。188.根据权利要求187所述的网络控制系统,其中事件选自默认,状态事件,传感器输出,软件运行层所触发的事件,网络消息。189.根据权利要求175所述的网络控制系统,还包括具有多个装置的网络,至少一个函数调用与和至少一个装置相关的活动相关联。.190.根据权利要求175所述的网络控制系统,其中基于规定的优先权执行源自物理用户接口的函数调用和源自虛拟用户接口的函数调用。191.根据权利要求l卯所述的网络控制系统,其中规定的优先权选自至少一个函数调用可以至少临时使来自另一源的函数调用无效;源自物理用户接口的函数调用和源自虛拟用户接口的函数调用,皮批量地处理;函数调用可以被组合,使得在执行其它函数调用或逻辑相关的函数调用组之前完成逻辑相关的调用組;源自物理用户接口的函数调用和源自外部的函数调用被顺序地执行。192.根据权利要求175所述的网络控制系统,其中物理用户接口包括自包含数据处理和网络装置。193.根据权利要求192所述的网络控制系统,其中物理用户接口选自包括蜂窝电话,计算机,网络写字板,PDA,麦克风,虛拟键盘所组成的组。194.一种网络控制系统,包括响应多个函数调用的软件运行层,具有多个UI动作的物理用户接口,其中每个UI动作直接产生一个所述函数调用,至少一个UI动作产生数据,虚拟用户接口,适于调用至少一些由UI动作所产生的函数调用,以及调用至少一个不能由UI动作产生的函数调用。195.根据权利要求194所述的网络控制系统,其中每个UI动作具有一个相关联的函数调用。196.根据权利要求194所述的网络控制系统,其中每个函数调用与一个或多个UI动作关联。197.根据权利要求194所述的网络控制系统,其中至少一个UI动作与函数调用关联。198.根据权利要求194所述的网络控制系统,其中至少一个UI动作与数据输入关联。199.根据权利要求194所述的网络控制系统包括具有多个键的键区。200.根据权利要求199所述的网络控制系统的函数调用关联。201.根据权利要求199所述的网络控制系统,至少一个相关的函数调用关联。202.根据权利要求199所述的网络控制系统数据输入关联。203.根据权利要求194所述的网络控制系统,被配置为传送包括至少一个函数调用的虚拟键按下,拟键按下指示接收网络节点执行相关功能性。204.根据权利要求203所述的网络控制系统,现以下中至少一项测试相关软件;软件的远程执行;软件重新使用;键按下函数调用的重新编程。205.根据权利要求204所述的网络控制系统,键按下调用多个函数调用。206.根据权利要求205所述的网络控制系统,至少一个序列调用至少一个函数调用。207.根据权利要求194所述的网络控制系统,其中软件至少具有第一运行层和第二运行层,其中至少一个在第一运行层中不可用的函数调用在第二运行层可用。208.根据权利要求194所述的网络控制系统,其中网络包括具有多个节点的电器,而且由发送给支持该函数调用的网络节点的网络消息封装键区的虚拟键按下。209.根据权利要求194所述的网络控制系统,还包括互连节点的,其中物理用户接口,其中每个鍵与相关,其中至少一个键与,其中至少一个键与,其中虚拟用户接口,由此该至少一个虚,其中虚拟键按下实其中至少一个虚拟其中虚拟键按下的网络,软件运行层响应于所述函数调用控制每个所述节点以实施运行,其中虛拟用户接口被配置为调用不能由UI动作产生的函数调用,以独立于软件运行层直接控制所述节点。210.根据权利要求209所述的网络控制系统,还包括驻留在至少一个节点上的软件引擎,用于通过网络实施虚拟用户接口。211.根据权利要求210所迷的网络控制系统,其中软件引擎至少驻留在那些可以由虛拟用户接口直接控制的节点上。全文摘要本发明涉及实施在电器的内部通信网络上并通过该内部通信网络通信的软件体系,该内部通信网络连接电器的各个物理部件。软件体系执行多个功能识别对应于网络节点的每个部件;识别该部件的功能;识别部件的状态;提供格式良好命令接口;提供内部和外部软件部件之间的通信。通过这种方式,SA用于向网络上的所有节点告知其它节点的存在、功能和状态。文档编号G06F11/34GK101305350SQ200680028022公开日2008年11月12日申请日期2006年6月8日优先权日2005年6月9日发明者丹尼尔·M·普特纳姆,亚历山大·S·格罗斯,安德鲁·D·威普,帕翠克·J·格劳兹巴赫,戴维·J·科迈特,朱迪瑟·G·科克莱特尔,理查德·A·麦克考伊,约书哈·P·卡罗尔,罗伯特·J·菲尔德布鲁戈,蒂莫斯·M·内兹克,马修·P·艾布罗姆,马克·E·格劳兹巴赫申请人:惠而浦公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1