CN1372404A - 数字家庭网络中信息家电的控制和相互访问的方法 - Google Patents
数字家庭网络中信息家电的控制和相互访问的方法 Download PDFInfo
- Publication number
- CN1372404A CN1372404A CN 02103816 CN02103816A CN1372404A CN 1372404 A CN1372404 A CN 1372404A CN 02103816 CN02103816 CN 02103816 CN 02103816 A CN02103816 A CN 02103816A CN 1372404 A CN1372404 A CN 1372404A
- Authority
- CN
- China
- Prior art keywords
- type
- word
- territory
- icon
- pointer
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种数字家庭网络中信息家电控制和相互访问的方法。本发明的目的在于提供一种使数字家庭网络中信息家电保持通用性,使不同厂商生产的信息家电可以无缝加入数字家庭网络,并使产品具有添加新功能的能力,同时信息家电之间可以进行互相访问的数字家庭网络中信息家电的控制和相互访问的方法。
Description
技术领域
本发明涉及一种数字家庭网络中信息家电控制和相互访问的方法。
背景技术
数字家庭网络是一套利用了信息家电、无线通信和网络技术等多项技术的综合系统。系统中主要包括网络控制终端、便携控制终端和信息家电三个部分。
其中的信息家电不同于传统意义上的家电,除了具备传统家电的功能外,最大的特点是具有信息沟通的能力,信息家电可以通过它的网络通讯模块,以无线或有线的方式,同其他设备进行信息的交换,例如可以接收便携控制终端发送的控制指令,向控制终端发送家电的当前状态,或者通过网络控制终端实现远程的控制与查询。
网络控制终端的作用是建立本系统同外部网络的连接,用户可以通过Internet远程控制家中的电器,并查询家电的状态,家电设备的报警信息也可以通过Internet或PSTN向用户报告。
便携控制终端是用户在家中使用的、通用的、低功耗的便携控制设备。它改变了目前不同电器使用不同遥控器的方式,通过一个便携控制终端就可以对家中所有电器设备进行控制。同时它提供了友好的用户交互界面,以图形化的方式显示出当前的全部电器设备,用户通过键盘可以在个电器设备之间浏览,对电器设备进行控制并查询电器设备的状态。
本系统还具有新设备添加的能力。用户购买了一台新的信息家电后,通过在便携控制终端或网络控制终端上执行一个简单的命令,就可以将新的家电设备加入到本系统中,用户不需要在硬件或软件上作任何改动就可以实现对新的家电设备的控制。
发明内容
本发明的目的在于提供一种使数字家庭网络中信息家电保持通用性,使不同厂商生产的信息家电可以无缝加入数字家庭网络,并使产品具有添加新功能的能力,同时信息家电之间可以进行互相访问的数字家庭网络中信息家电的控制和相互访问的方法。
数字家庭网络中信息家电的控制的方法,其特点在于:
本方法包括如下步骤:
(1)在每台信息家电中保存一份描述自身功能和命令的设备文件;
(2)当新设备加入到数字家庭网络中时,信息家电接收到便携控制终端或网络控制终端发送的设备文件请求命令后,将自身的设备文件发送给便携控制终端或网络控制终端;
(3)便携控制终端或网络控制终端中保存着每台信息家电的设备文件,便携控制终端或网络控制终端根据设备文件来显示系统中有哪些信息家电;
(4)便携控制终端或网络控制终端通过设备文件实现对信息家电的控制。
数字家庭网络中信息家电相互访问的方法,其特点在于:
本方法包括如下步骤:
(1)应用程序从本机保存的该信息家电的设备文件中查到对应的命令码格式和回码格式;
(2)应用程序使用UDCP中应用控制方法,用控制码格式将数据发给该信息家电;
(3)该信息家电接受命令并执行后,使用UDCP中应用控制方法,用回码格式将回码数据返回;
(4)UDCP层只要在限定时间内接到了控制命令信宿机的响应,从报头可以判断这是一个回码,则本机的UDCP层认为一次通讯结束,将回码交给应用程序;
(5)应用程序从UDCP返回的数据与先前发出的控制命令相较,从其设备文件判断这次设置是否成功;
(6)如果应用程序认为不成功,它可以再发起一次设置动作。
本发明的有益效果在于:为了保持移动控制终端和网络控制终端的通用性,并使系统具有添加新设备的能力,采用了被称为设备文件(DeviceFile)的数据结构来描述家电设备。每台信息家电设备都保存一份描述自身功能和命令的设备文件,当新设备加入到系统中时,家电设备接收到移动控制终端或网络控制终端发送的设备文件请求命令后,将自身的设备文件发送给移动控制终端或网络控制终端。移动控制终端或网络控制终端中保存着每个电器设备的设备文件,移动控制终端根据设备文件来显示系统中有哪些电器设备,显示出某个设备具有哪些功能,同时还可以对设备进行控制,并且设备文件还提供了查询并显示设备状态的功能。
移动控制终端所显示的图标和文字、不同功能的控制命令及状态回码信息都是从设备文件中得到。为了能适应不同信息家电,设备文件在保持通用的同时,还要保证完备,能满足不同设备状态显示的多种需求。此外,为了降低电器设备、移动控制终端和网络控制终端的存储器开销,满足设备文件以无线或有线方式在信息家电和移动控制终端或网络控制终端之间传输的要求,设备文件还应该尽可能的简单。因此设备文件在设计中综合考虑了通用性、完备性和简洁性。
在设备文件中不仅包含了设备的厂家信息,还包含了对设备的操作描述、每个操作对应的命令、设备的状态回码结构等信息。因此通过设备文件不但能了解设备具有那些功能,发送命令实现某一功能,而且能从状态回码中得到设备的当前状态,并以图形化的方式显示。正是通过设备文件才使得移动控制终端和网络控制终端摆脱了对设备的依赖,从而显示了设备文件的智能化、个性化和人性化
对于设备厂商,可以利用可视化的工具软件来生成设备文件。设备文件保存在设备的存储器中。当用户增添一台新设备时,只要在移动控制终端和网络控制终端上执行一次添加操作,就可以实现对新设备的控制。
附图说明图1 指针操作图2 第一回调类型图3 第二回调类型图4 第三回调类型图5 第四回调类型图6 第五回调类型图7 字符资源结构图8 16x16点阵的图标映像图9 16x32和32x32点阵的图标映像图10显示系统中所有设备图11显示“洗碗”菜单下的选项图12显示“电源”菜单下的选项图13显示“洗衣机”菜单下的选项
具体实施方式
为了保持移动控制终端和网络控制终端的通用性,并使系统具有添加新设备的能力,采用了被称为设备文件(DeviceFile)的数据结构来描述家电设备。每台信息家电设备都保存一份描述自身功能和命令的设备文件,当新设备加入到系统中时,家电设备接收到移动控制终端或网络控制终端发送的设备文件请求命令后,将自身的设备文件发送给移动控制终端或网络控制终端。移动控制终端或网络控制终端中保存着每个电器设备的设备文件,移动控制终端根据设备文件来显示系统中有哪些电器设备,显示出某个设备具有哪些功能,同时还可以对设备进行控制,并且设备文件还提供了查询并显示设备状态的功能。
移动控制终端所显示的图标和文字、不同功能的控制命令及状态回码信息都是从设备文件中得到。为了能适应不同信息家电,设备文件在保持通用的同时,还要保证完备,能满足不同设备状态显示的多种需求。此外,为了降低电器设备、移动控制终端和网络控制终端的存储器开销,满足设备文件以无线或有线方式在信息家电和移动控制终端或网络控制终端之间传输的要求,设备文件还应该尽可能的简单。因此设备文件在设计中综合考虑了通用性、完备性和简洁性。
在设备文件中不仅包含了设备的厂家信息,还包含了对设备的操作描述、每个操作对应的命令、设备的状态回码结构等信息。因此通过设备文件不但能了解设备具有那些功能,发送命令实现某一功能,而且能从状态回码中得到设备的当前状态,并以图形化的方式显示。正是通过设备文件才使得移动控制终端和网络控制终端摆脱了对设备的依赖,从而显示了设备文件的智能化、个性化和人性化
对于设备厂商,可以利用可视化的工具软件来生成设备文件。设备文件保存在设备的存储器中。当用户增添一台新设备时,只要在移动控制终端和网络控制终端上执行一次添加操作,就可以实现对新设备的控制。
在整个数字家庭网络系统中,每一个信息家电应有自己的空间来存储本身的设备文件,在网络控制终端和移动控制终端中要有足够的空间来存储当前数字家庭网络中的各个信息家电的设备文件,以便能控制此数字家庭网络中的所有信息家电。
在数字家庭网络系统中,传输设备文件的途径有两种:有线方式和无线方式。网络控制终端和移动控制终端通过这两种方式与各个信息家电的通讯模块之间进行通讯,并按数字家庭网络传输协议的格式把设备文件传输给各个控制终端。
当网络控制终端和移动控制终端接收到某一个信息家电的设备文件后,对其进行相应的分析与处理,生成此信息家电的控制信息,通过无线方式和有线方式对此信息家电进行相应的控制。
因此,在数字家庭网络系统中至少要有一个控制终端,和信息家电的通讯模块通过有线方式和无线方式进行相互通讯,实现数字家庭网络系统的集中管理和集中控制。
当在数字家庭网络中增添了一个新的信息家电设备,当前数字家庭网络中的各个控制终端如果要控制此信息家电设备,必须先从此信息家电设备中取得此信息家电设备的设备文件,对其进行分析与处理,得到相应的控制信息和数据信息,这个设备描述文件必须符合设备文件的设备描述协议规范,才能被各个控制终端所接受,并解释成想要的数据信息。
设备文件是一种对本单元系统进行描述的信息表格文件,它的内容主要包括系统的主要控制功能的描述信息、系统控制语言的描述信息、系统状态的描述信息,这些描述信息汇成一张表格文件储存在各个信息家电设备的固定储存单元中。
当控制终端需要此描述信息的时候,就要给家电设备发送一个请求设备文件的信息帧,此信息帧必须符合数字家庭网络系统的通讯格式。
信息家电设备文件的添加:
在数字家庭网络系统中,当网络控制终端或移动控制终端向新增加的信息家电设备请求此信息家电的设备文件时,按上面的通讯格式发送一帧请求设备文件的信息帧,此信息帧的内容为:
信息帧的头内容为长度反码和长度,新增加信息家电的唯一ID号,控制终端的唯一ID号,接下来为:
(1)如果帧号为0000数据,命令为FFFF数据,则表示要设备文件总共有多少的信息量。
(2)如果帧号不是为0000数据,命令为FFFF数据,则表示要设备文件中某一数据信息。
当此家电设备接收到此第一种类型的信息帧后,对其进行所发送来的设备帧号(ID号)进行存储,作为自己的网络唯一识别号,因为新增加的信息家电设备本身的硬件信息锁的标志位是打开的,当接收到此设备的帧号并存储后,就关闭硬件信息锁的标志位,然后按此信息帧所包含控制终端的唯一ID号,发送一个设备文件的总量数据帧给此控制终端,并且存储这个控制终端的ID识别号,表示此控制终端可以对此家电设备进行控制。
当控制终端接收到此信息家电返回的设备文件信息总量的数据帧后,然后发送第二种信息帧,因为设备文件的数据量大,而且为了保证传输时准确无误,控制终端在设备文件的传输过程中,按数据总量把设备文件按一定的传输数据量分成若干个数据包,按照帧号的不同向信息家电请求不同段的数据信息,当信息家电接收到控制终端发送的此类型的信息帧后,根据帧号来判断控制终端所请求的信息位于设备文件固定储存单元的位置,并把此单元的信息取出来,放到预定的位置,并通过通讯模块发送给控制终端。当控制终端接到信息家电传输来的信息数据帧,判断无误后,把此信息帧的有效内容存储到固定的位置,再要下一帧的内容,当所有设备文件传输完毕后,在控制终端的一个存储单元中存放这整个信息家电的设备文件,控制终端对此信息家电的设备文件进行处理分析,在显示界面上显示出此信息家电的图标、名称及各种参数。
当在设备文件的信息帧传输过程中,控制终端对此信息家电传输来的数据进行核对,如果不正确的话,就按上次的帧号进行重传,当重传的次数超过一定的次数后,就认为此次设备传输失败。对信息家电重新置位,重新进行传输。
信息家电设备文件的删除:
当一个信息家电已经不能使用或是不想用某一控制终端控制的时候,需要在此控制终端上删除此信息家电的设备文件,选择控制终端上的删除选项,在删除的菜单栏中找到此信息家电的显示选项,对其进行删除操作,当控制终端接收到此删除命令后,到存储单元中找到此信息家电的设备文件的存储位置,对其所有数据进行删除。并更新显示界面,不再显示此信息家电的图标、名称及各种参数。
下面将对设备文件的组织结构以及其中用到的各种自定义的数据结构给出详细的说明。
文件结构:设备文件主要包括四部分:文件头、结构数据、字符资源和图标资源,如下表所示:
文件头 |
结构数据 |
字符资源 |
图标资源 |
其中:
文件头部分主要包含设备厂家、设备文件大小等信息;结构数据部分是设备文件中最主要的部分,它描述整个设备文件的组成结构;字符资源部分包含了在设备文件中要显示的全部字符;图标资源部分包含了设备文件中要显示的全部图标。
下面说明在文件头和结构数据中经常用到了一些基本的自定义结构:
在本说明书中以0x表示16进制数,如0x0010表示16进制的10,也就是十进制的16。
本说明书中提到的指针是相对于结构数据起始地址的偏移,该偏移以字为单位,0x0000表示无效指针。具体的指针操作参见图1:
在文件头和结构数据中还经常用到了一些基本的自定义结构,这些基本的自定义结构类型主要包括:属性类型(Specific)、位置类型(Position)、状态位类型(StatusBit)、状态域类型(StatusField)、入口类型(Entry)。
属性类型(Specific):在设备文件中以多叉树的形式来描述设备,属性类型用于表示树中的节点(Item)和状态图子项(ImageItem)的基本属性,其大小为一个16位的字,具体结构如下:15 1211 87 0
其中类型域:位于该字的高4位,表示节点和状态图子项的类型,如1为静态图标,3为静态文本。
类型域 | 尺寸域 | 索引域 |
尺寸域:位于该子的第8位至第11位,当节点或状态图子项需要一个图标时,尺寸域用来表示图标的大小,1为16x16点阵,2为16x32点阵,3为32x32点阵。
索引域:表示图标的索引值,利用该值可以在图标资源中找到该图标的数据。
位置类型(Position)用于表示状态图子项在状态图上的位置,该类型为1个字大小,其结构如下:
15 87 0
y | x |
其中
y:位于该字的高8位,表示状态图子项位于状态图的第几行,每行为1个像素高。
x:位于该字的低8位,表示状态图子项位于状态图的第几列,每列为1个像素宽。
状态位类型(StatusBit)用于表示设备的状态数据在状态回码中的位置。当设备返回的状态只有一位时,状态位表示该位的位置;当设备返回的状态有多位时,状态位表示状态数据最低位的位置。该类型为1个字大小,其结构如下:
15 87 0
起始字域 | 起始位域 |
其中
起始字域:位于该字的高8位,表示状态位位于状态回码的第几个字。
起始位域:位于该字的低8位,表示状态位位于该字的第几位。
状态域类型(StatusField)用于表示设备的状态数据在状态回码中的位置。当设备返回的状态有多位时,利用状态域可以得到状态数据。该类型为2个字大小,其结构如下:
其中状态起始域:位于该结构的第0个字,为状态位类型,表示状态数据最低位的位置。状态位长域:位于该结构的第1个字,表示状态数据的位数。入口类型(Entry)用于表示各节点的入口部分,具体结构如下:
状态起始域 |
状态位长域 |
父节点指针域 |
查询命令域 |
节点数目域 |
指向节点0的指针 |
指向节点1的指针 |
… |
其中:
父节点指针域:位于该结构的第0个字,表示指向父节点的指针,对于根节点该指针为0x0000。
查询命令域:位于该结构的第1个字,表示查询状态的指令。当进入某些节点时,需要查询设备的状态,该字表示查询状态的指令,若不需要查询设备状态时,该字为0x0000。
节点数目域:位于该结构的第2个字,表示该节点下的子节点数目。
接着为指向各个节点的指针。
下面详细描述文件头定义:
文件头的结构如下:
文件规范版本 | 文件类型 | 文件大小 | 文件头大小 | 国家代码 | 厂商代码 | 文件版本号 | 设备类型号 | 产品型号 | 设备图标属性 | 扩展资源指针 |
1 3 2 1 1 7 1 2 2 2 2其中文件规范版本:该域占1字节,表示该文件所依照的标准规范的版本。文件类型:该域占3字节,“CNA”。
文件大小:该域占2字节,表示整个文件的大小,以字为单位。
文件头大小:该域占1个字节,表示文件头的大小,以字为单位。
国家代码:该域占1个字节,国家地区代码。
厂商代码:该域占7个字节,表示具体厂商的代码。
文件版本号:该域占1个字节,表示该文件的版本。
设备类型号:该域占2个字节,指向设备类型号的字符指针。
产品型号:该域占2个字节,指向产品型号的字符指针。
设备图标属性:该域占2个字节,为属性类型,用于表示该设备对应的图标的属性。设备图标为静态图标,并且大小为16x16点阵,因此类型域位1,尺寸域为1。
扩展资源指针:该域占2个字节,指向图标资源的指针。
下面详细描述结构数据定义:
结构数据主要包括两个部分:根节点入口部分和各个子节点的数据。
根节点入口部分为一个入口类型,其内容包含了其下的子节点数目和子节点指针。接下为各个节点的结构数据。每个子节点的结构数据随节点类型的不同而不同。
根节点入口 |
子节点0结构数据 |
子节点1结构数据 |
子节点2结构数据 |
… |
对于每个子节点,其类型共有4种可能,分别为:子目录类型(SubDir)、命令类型(Command)、状态图类型(Image)和回调类型(CallBack)。不同类型的子节点其节点类型域不同,利用节点类型域可以确定子节点的类型,各种类型的子节点对应的节点类型域值参见下表:
子目录类型(SubDir)为5个字大小,其结构如下:
子节点类型 | 节点类型域 |
子目录 | 0x53AA |
命令 | 0x3555 |
状态图 | 0x55A5 |
回调 | 0x5457 |
节点类型域 |
节点名称指针域 |
图标属性域 |
回码状态域 |
入口指针域 |
其中:
节点类型域:节点类型,位于该结构的第0个字,0x53AA表示该节点为子目录。
节点名称指针域:指向节点名的指针,位于该结构的第1个字。该指针指向一个字符串,表示出该节点的名称,如电源、温度等。
图标属性域:节点图标的属性,位于该结构的第2个字,该域为属性类型。
回码状态域:位于该结构的第3个字,该域为状态域类型。对于子目录类型该域未使用。
入口指针域:指向该子目录的入口的指针,位于该结构的第5个字。
命令类型(Command)共有三种可能的类型:标志命令类型(FlgCmd)、标志反显命令类型(FlagInvCmd)和特征值命令类型(ValSpecCmd),分别对应于回码状态为1位和多位的情形,两种类型通过命令类型的命令图标属性域的类型域不同来区别。
标志命令类型应用于回码状态为1位的情况,当该位为1时,命令图标以反显形式显示,否则命令图标正常显示。其结构如下:
节点类型域 |
节点名称指针域 |
图标属性域 |
回码状态域 |
命令指令域 |
状态指令域 |
其中:
节点类型域:位于该类型的第0个字,表示该的节点类型,0x3555表示该节点为命令类型。
节点名称指针域:指向节点名的指针,位于该类型的第1个字。
图标属性域:位于该类型的第2个字,表示节点图标的属性,该域为属性类型,其类型域为2表示为标志命令类型。
回码状态域:位于该类型的第3个字,该域为状态域类型。在状态回码中用来提取命令执行后的状态。
命令指令域:位于该类型的第5个字,表示向设备发送的指令。
状态指令域:位于该类型的第6个字。设备返回状态回码时,回码的指令域应与该字相同。
标志反显命令类型也应用于回码状态为1位的情况,与标志命令类型不同的是:当该位为0时,命令图标以反显形式显示,否则命令图标正常显示。标志反显命令类型的结构定义与标志命令类型一致,只是图标属性域的类型域为3表示为标志反显命令类型。
特征值命令类型应用于回码状态为多位的情况,设备接收到状态回码后,利用回码状态域将这些位都提取出来,并与给定的值比较,若相同则图标以反显形式显示,否则图标正常显示。其结构如下:
节点类型域 |
节点名称指针域 |
图标属性域 |
回码状态域 |
命令指令域 |
状态指令域 |
状态特征值域 |
其中:
节点类型域:位于该类型的第0个字,表示该的节点类型,0x3555表示该节点为命令类型。
图标属性域:位于该类型的第2个字,表示节点图标的属性,该域为属性类型,其类型域为5表示为特征值命令类型。
回码状态域:位于该类型的第3个字,该域为状态域类型。在状态回码中用来提取命令执行后的状态。
命令指令域:位于该类型的第5个字,表示向设备发送的指令。
状态指令域:位于该类型的第6个字。设备返回状态回码时,回码的指令域应与该字相同。
状态特征值域:位于该类型的第7个字。从状态回码中提取出状态值后,与此值比较,若相同则图标反显,否则以正常方式显示。
状态图类型(Image)用于同时查询和显示设备的多个状态。一个状态图类型包含有多个状态图子项(ImageItem),其中每个状态图子项对应于设备的一项状态,如电源开关、模式设定等。状态图类型的结构如下:
节点类型域 |
节点名称指针域 |
图标属性域 |
回码状态域 |
状态图入口指针域 |
其中:
节点类型域:位于该类型的第0个字,表示该的节点类型,0x55A5表示该节点为状态图类型。
节点名称指针域:指向节点名的指针,位于该类型的第1个字。
图标属性域:位于该类型的第2个字,表示节点图标的属性,该域为属性类型。
回码状态域:位于该类型的第3个字,该域为状态域类型。在状态图类型中该域未使用。
状态图入口指针域:指向状态图入口的指针,位于该类型的第5个字。在状态图入口中包含了状态图中子项的数目和指向各个子项的指针。
状态图入口的结构如下:
父节点指针域 |
查询命令域 |
状态图子项数目域 |
指向状态图子项0的指针 |
指向状态图子项1的指针 |
… |
其中:
父节点指针域:位于该结构的第0个字,指向其父状态图。
查询命令域:位于该结构的第1个字,表示查询状态的指令。
状态图子项数目域:位于该结构的第2个字,表示该状态图中子项的个数。
接着为指向各个子项的指针。
状态图中的每个子项(ImageItem)对应于设备的一个状态,由于设备状态回码的格式有多种形式,因此在状态图子项中也包括多种子类型,每个状态图子项可能为以下的某一类型:静态文本类型、标志图标类型、标志文本类型、数字类型、进度条类型、特征图标类型、特征文本类型、反显文本类型、反显图标类型、枚举图标类型或枚举数字类型。每个状态图子项都包含一个类型为属性类型的子项属性域。根据子项属性域的类型域可以确定出该状态图子项的类型,各种状态图子项的类型域的域值参见下表:
状态图子项类型 | 子项属性域的类型域 |
静态文本类型 | 3 |
标志图标类型 | 2 |
标志文本类型 | 4 |
数字类型 | 5 |
进度条类型 | 7:表示方框形式的进度条 |
8:表示箭头形式的进度条 | |
特征图标类型 | 9 |
特征文本类型 | 0x0A |
反显文本类型 | 0x0B |
反显图标类型 | 0x0C |
枚举图标类型 | 0x0D |
枚举数字类型 | 0x0E |
下面对各类型进行详细的介绍。
静态文本类型(StaticText)为一个静态字符串,用于表示设备的生产厂家、设备类型等信息。
静态文本类型的结构如下:
子项属性域 |
子项位置域 |
文本指针域 |
其中:
子项属性域:位于该结构的第0个字,表示该子项的属性。该域为属性类型,对于静态文本类型,子项属性域的类型域为3。
子项位置域:位于该结构的第1个字,表示该子项的位置,该域为位置类型。
文本指针域:指向字符串的指针,位于该结构的第2个字。
标志图标类型(FlagIcon)表示一个可随状态改变的图标。当设备的状态在状态回码中用1位表示时,该位为1则显示为图标1,该位为0则显示为图标0。
标志图标类型的结构如下:
子项属性域 |
子项位置域 |
回码状态域 |
图标指针0 |
图标指针1 |
其中:
子项属性域:位于该结构的第0个字,表示该子项的属性。该域为属性类型,对于标志图标类型,子项属性域的类型域为2。
子项位置域:位于该结构的第1个字,表示该子项的位置,该域为位置类型。
回码状态域:位于该结构的第2个字,表示状态在状态回码中的位置,该域为状态位类型。
图标指针0:指向图标0的指针,位于该结构的第3个字。
图标指针1:指向图标1的指针,位于该结构的第4个字。
标志文本类型(FlagText)表示一个可随状态改变的字符串。当设备的状态在状态回码中用1位表示时,该位为1则显示为字符串1,该位为0则显示为字符串0。
标志文本类型的结构如下:
子项属性域 |
子项位置域 |
回码状态域 |
文本指针0 |
文本指针1 |
其中:
子项属性域:位于该结构的第0个字,表示该子项的属性。该域为属性类型,对于标志文本类型,子项属性域的类型域为4。
子项位置域:位于该结构的第1个字,表示该子项的位置,该域为位置类型。
回码状态域:位于该结构的第2个字,表示状态在状态回码中的位置,该域为状态位类型。
文本指针0:指向字符串0的指针,位于该结构的第3个字。
文本指针1:指向字符串1的指针,位于该结构的第4个字。
数字类型(DigiNumber)用于显示一个数字。由于设备的状态回码有16进制数、BCD码和ASCII等几种形式,为了保证设备文件的简洁性,减少设备文件的开销,在数字类型结构中对属性类型的尺寸域进行了复用,利用尺寸域的不同来区分不同的回码类型。推荐用户采用16进制数得回码格式。
对于某些设备的状态回码,需要进行变换才能得到真实的设备状态,例如在某型号冰箱的状态回码中,0x00~0x0A表示测量温度为-10℃~-20℃,因此在数字类型结构中提供了两个修正系数k和c,从设备的状态回码中得到回码x后,所显示的数字为经过变换后的k*x+c。
数字类型的结构如下:
子项属性域 |
子项位置域 |
回码状态域 |
修正系数k |
修正系数c |
其中:
子项属性域:位于该结构的第0个字,表示该子项的属性。该域为属性类型,对于数字类型,子项属性域的类型域为5。尺寸域为0表示回码为16进制数,尺寸域为1表示回码为压缩BCD码,尺寸域为2表示回码为ASCII码
子项位置域:位于该结构的第1个字,表示该子项的位置,该域为位置类型。
回码状态域:位于该结构的第2个字,表示状态在状态回码中的位置,该域为状态域类型。
修正系数k:位于该结构的第4个字。
修正系数c:位于该结构的第5个字。
进度条类型(ProgressBar)
进度条类型用于显示一个进度条。在进度条类型结构中也对属性类型的尺寸域进行了复用,并提供了修正系数k和c。
进度条类型的结构如下:
子项属性域 |
子项位置域 |
回码状态域 |
进度条范围 |
修正系数k |
修正系数c |
其中:
子项属性域:位于该结构的第0个字,表示该子项的属性。该域为属性类型,在子项属性域中,类型域为7则进度条以方框形式表示;类型域为8则进度条以箭头形式表示。尺寸域为0表示回码为16进制数,尺寸域为1表示回码为压缩BCD码,尺寸域为2表示回码为ASCII码。
子项位置域:位于该结构的第1个字,表示该子项的位置,该域为位置类型。
回码状态域:位于该结构的第2个字,表示状态在状态回码中的位置,该域为状态域类型。
进度条范围:位于该结构的第4个字,表示进度条的最大值。
修正系数k:位于该结构的第5个字。
修正系数c:位于该结构的第6个字。
反显图标类型(FlagInvIcon)表示一个可反显的图标。当设备的状态在状态回码中用1位表示时,该位为0则图标以正常方式显示,该位为1则图标反显。
反显图标类型的结构如下:
子项属性域 |
子项位置域 |
回码状态域 |
图标指针 |
其中:
子项属性域:位于该结构的第0个字,表示该子项的属性。该域为属性类型,对于反显图标类型,子项属性域的类型域为0x0b。
子项位置域:位于该结构的第1个字,表示该子项的位置,该域为位置类型。
回码状态域:位于该结构的第2个字,表示状态在状态回码中的位置,该域为状态位类型。
图标指针:指向图标的指针,位于该结构的第3个字。
反显文本类型(FlagInvText)表示一个可反显的字符串。当设备的状态在状态回码中用1位表示时,该位为0则字符串以正常方式显示,该位为1则字符串反显。
反显文本类型的结构如下:
子项属性域 |
子项位置域 |
回码状态域 |
文本指针 |
其中:
子项属性域:位于该结构的第0个字,表示该子项的属性。该域为属性类型,对于反显文本类型,子项属性域的类型域为0x0c。
子项位置域:位于该结构的第1个字,表示该子项的位置,该域为位置类型。
回码状态域:位于该结构的第2个字,表示状态在状态回码中的位置,该域为状态位类型。
文本指针:指向字符串的指针,位于该结构的第3个字。
特征图标类型(ValSpecIcon)显示一个图标。在状态回码中得到设备的状态值后,检索该状态值是否在特征值数组中,如在则显示该特征值对应的图标,否则显示缺省图标。
特征图标类型的结构如下:
子项属性域 |
子项位置域 |
回码状态域 |
缺省图标指针 |
图标个数域 |
图标指针数组 |
特征指数组 |
其中:
子项属性域:位于该结构的第0个字,表示该子项的属性。该域为属性类型,对于特征图标类型,子项属性域的类型域为9。
子项位置域:位于该结构的第1个字,表示该子项的位置,该域为位置类型。
回码状态域:位于该结构的第2个字,表示状态在状态回码中的位置,该域为状态域类型。
缺省图标指针:指向缺省图标的指针,位于该结构的第4个字。
图标个数域:位于该结构的第5个字,表示在该结构中图标的个数(不包括缺省图标)。
图标指针数组:该域位一个指针数组,数组中的每一个元素为指向图标的指针,图标指针的个数由图标个数域决定。
特征值数组:该域为一个数组,数组中每个元素占1个字大小,表示一个特征值,特征值的总个数由图标个数域决定。
特征文本类型(ValSpecText)显示一个字符串。在状态回码中得到设备的状态值后,检索该状态值是否在特征值数组中,如在则显示该特征值对应的字符串,否则显示缺省字符串。
特征文本类型的结构如下:
子项属性域 |
子项位置域 |
回码状态域 |
缺省文本指针 |
文本个数域 |
文本指针数组 |
特征值数组 |
其中:
子项属性域:位于该结构的第0个字,表示该子项的属性。该域为属性类型,对于特征图标类型,子项属性域的类型域为0x0A。
子项位置域:位于该结构的第1个字,表示该子项的位置,该域为位置类型。
回码状态域:位于该结构的第2个字,表示状态在状态回码中的位置,该域为状态域类型。
缺省文本指针:指向缺省字符串的指针,位于该结构的第4个字。
文本个数域:位于该结构的第5个字,表示在该结构中字符串的个数(不包括缺省字符串)。
文本指针数组:该域位一个指针数组,数组中的每一个元素为指向字符串的指针,字符串指针的个数由文本个数域决定。
特征值数组:该域为一个数组,数组中每个元素占1个字大小,表示一个特征值,特征值的总个数由文本个数域决定。
枚举图标类型(ValEnumIcon)
枚举图标类型用于显示随状态改变的图标。在设备状态回码中可以得到需要显示图标的索引值,利用索引值在图标指针数组中得到相应的图标,若索引值非法则显示缺省图标。
枚举图标类型的结构如下:
子项属性域 |
子项位置域 |
回码状态域 |
图标个数域 |
图标指针数组 |
缺省图标指针 |
其中:
子项属性域:位于该结构的第0个字,表示该子项的属性。该域为属性类型,对于枚举图标类型,子项属性域的类型域为0x0D。
子项位置域:位于该结构的第1个字,表示该子项的位置,该域为位置类型。
回码状态域:位于该结构的第2个字,表示状态在状态回码中的位置,该域为状态域类型。
图标个数域:位于该结构的第4个字,表示在该结构中图标的个数(不包括缺省图标)。
图标指针数组:该域为一个指针数组,数组中的每一个元素为指向图标的指针,图标指针的个数由图标个数域决定。
缺省图标指针:指向缺省图标的指针。
枚举数字类型(ValEnumDigiNum)
枚举数字类型用于显示数字。在设备的状态回码中可以得到需要显示数字的索引值,再根据索引值在枚举数字数组中得到要显示的数字。
枚举数字类型的定义如下:
其中:
子项属性域 |
子项位置域 |
回码状态域 |
枚举数字个数 |
枚举数字数组 |
子项属性域:位于该结构的第0个字,表示该子项的属性。该域为属性类型,对于枚举数字类型,子项属性域的类型域为0x0E。
子项位置域:位于该结构的第1个字,表示该子项的位置,该域为位置类型。
回码状态域:位于该结构的第2个字,表示状态在状态回码中的位置,该域为状态域类型。
枚举数字个数:位于该结构的第4个字,表示枚举数字数组中的元素个数,
枚举数字数组:每个元素为1个字。
回调类型(CallBack):所谓CallBack是针对于需要命令参数的设备命令,如设置温度、时间等操作,便携控制终端或网络控制终端为用户提供了几种标准的图形化的输入/输出界面,在该界面中能显示出设备的当前状态,同时用户还可以选择新的状态,并对设备进行设置。
回调类型的结构如下:
节点类型域 |
节点名称指针 |
图标属性 |
回调实体指针 |
其中:
节点类型域:位于该结构的第0个字,表示该节点类型,0x5457表示该节点为回调类型。
节点名称指针:指向该节点名称的指针,位于该结构的第1个字。
图标属性:位于该结构的第2个字,表示该节点图标的属性,该域为属性类型。
回调实体指针:指向回调实体的指针,位于该结构的第3个字。
回调实体中提供了在回调类型的处理中用到的其他数据。
回调实体为实现不同功能有多种不同类型。在回调实体中使用了一个回调属性类型(CallBackSpec)区分不同的功能。回调属性类型的结构如下:15 87 0
回码类型域 | 功能号域 |
其中
回码类型域:表示状态回码及命令参数的编码形式。
回码类型域为0表示编码为16进制
回码类型域为1表示编码为压缩BCD码
回码类型域为2表示编码为ASCII码
功能号域:表示CallBack的功能类型,不同功能的CallBack的功能号域不同。
第一回调类型(CallBackOne)
第一回调类型提供了如下的处理功能:用户可以指定一个标题和一个单位,如图3中的“设定温度”和“℃”,同时用户还可以利用滚动条选择指定范围内的数字。
其结构如下:
其中:父指针域:指向父节点指针,位于该结构的第0个字。
父指针域 |
回调属性域 |
命令指令域 |
状态指令域 |
回码状态域 |
滚动条步距 |
滚动条最小值 |
滚动条最大值 |
标题指针域 |
单位指针域 |
修正系数k |
修正系数c |
回调属性域:该域为回调属性类型,位于该结构的第1个字。表示该回调结构的属性,对于第一回调类型,其功能号域为1。
命令指令域:位于该结构的第2个字,表示向设备发送的指令。
状态指令域:位于该结构的第3个字。设备发送状态回码时,回码的指令域应与该字相同。
回码状态域:位于该结构的第4个字。需要该域来提取设备状态。该域为状态域类型。
滚动条步距:位于该结构的第6个字,表示滚动条上的滑块每次移动的距离。
滚动条最小值:位于该结构的第7个字,表示滑块在滚动条最左端对应的值。
滚动条最大值:位于该结构的第8个字,表示滑块在滚动条最右端对应的值。
标题指针域:指向标题字符的指针。位于该结构的第9个字。
单位指针域:指向单位字符的指针。位于该结构的第10个字。
修正系数k:位于该结构的第11个字。
修正系数c:位于该结构的第12个字。得到状态回码x后做k*x+c的修正。
第二回调类型(CallBackTwo)
第二回调类型提供了如下的处理功能:用户可以指定一个标题,如图4中的“设定过程”,同时用户还可以利用滚动条在多个字符串之中进行选择。其结构如下:
父指针域 |
回调属性域 |
命令指令域 |
状态指令域 |
回码状态域 |
滚动条步距(Span) |
滚动条最小值(Min) |
滚动条最大值(Max) |
标题指针域 |
文本指针数组 |
其中:
父指针域:指向父节点指针,位于该结构的第0个字。
回调属性域:该域为回调属性类型,位于该结构的第1个字。表示该回调结构的属性,对于第二回调类型,其功能号域为2。
命令指令域:位于该结构的第2个字,表示向设备发送的指令。
状态指令域:位于该结构的第3个字。设备发送状态回码时,回码的指令域应与该字相同。
回码状态域:位于该结构的第4个字。需要该域来提取设备状态。该域为状态域类型。
滚动条步距:位于该结构的第6个字,表示滚动条上的滑块每次移动的距离。
滚动条最小值:位于该结构的第7个字,表示滑块在滚动条最左端对应的值。
滚动条最大值:位于该结构的第8个字,表示滑块在滚动条最右端对应的值。
标题指针域:指向标题字符的指针。位于该结构的第9个字。
文本指针数组:指向字符串的指针数组,每个指针为1个字,共有(Max-Min)/Span个指针。
第三回调类型(CallBackThree)
第三回调类型提供了对时间进行设定的功能。从设备的状态回码中得到小时和分钟两个参数,显示在图5的界面中,用户可以对小时或分钟进行修改,并将新的时间设定发送给设备。
其结构:
父指针域 |
回调属性域 |
命令指令域 |
状态指令域 |
小时状态域 |
分钟状态域 |
标题指针域 |
其中:
父指针域:指向父节点指针,位于该结构的第0个字。
回调属性域:该域为回调属性类型,位于该结构的第1个字。表示该回调结构的属性,对于第三回调类型,其功能号域为3。
命令指令域:位于该结构的第2个字,表示向设备发送的指令。
状态指令域:位于该结构的第3个字。设备发送状态回码时,回码的指令域应与该字相同。
小时状态域:位于该结构的第4个字,该域为状态域类型。需要该域来提取小时信息。
分钟状态域:位于该结构的第6个字,该域为状态域类型。需要该域来提取分钟信息。
标题指针域:指向标题字符的指针。位于该结构的第8个字。
第四回调类型(CallBackFour)
对于某些家电设备,如烤箱、微波炉等设置时间时需要精确到秒钟,第四回调类型提供了精确到秒钟的时间设定功能。参见图6。
其结构:
其中:父指针域:指向父节点指针,位于该结构的第0个字。回调属性域:该域为回调属性类型,位于该结构的第1个字。表示该回调结构的属性,对于第四回调类型,其功能号域为4。
父指针域 |
回调属性域 |
命令指令域 |
状态指令域 |
小时状态域 |
分钟状态域 |
秒钟状态域 |
标题指针域 |
命令指令域:位于该结构的第2个字,表示向设备发送的指令。
状态指令域:位于该结构的第3个字。设备发送状态回码时,回码的指令域应该字相同。
小时状态域:位于该结构的第4个字,该域为状态域类型。需要该域来提取小时信息。
分钟状态域:位于该结构的第6个字,该域为状态域类型。需要该域来提取分钟信息。
秒钟状态域:位于该结构的第8个字,该域为状态域类型。需要该域来提取秒钟信息。
标题指针域:指向标题字符的指针。位于该结构的第10个字。
第五回调类型(CallBackFive)
第五回调类型提供了设置日期的功能。从设备回码中得到当前的日期并显示在屏幕下方,用户可以输入新的日期,并将新设置的日期发送给设备。参见图7。
其结构:
父指针域 |
回调属性域 |
命令指令域 |
状态指令域 |
年份状态域 |
月份状态域 |
日期状态域 |
标题指针域 |
其中:
父指针域:指向父节点指针,位于该结构的第0个字。
回调属性域:该域为回调属性类型,位于该结构的第1个字。表示该回调结构的属性,对于第五回调类型,其功能号域为5。
命令指令域:位于该结构的第2个字,表示向设备发送的指令。
状态指令域:位于该结构的第3个字。设备发送状态回码时,回码的指令域应与该字相同。
年份状态域:位于该结构的第4个字,该域为状态域类型。需要该域来提取年份信息。
月份状态域:位于该结构的第6个字,该域为状态域类型。需要该域来提取月份信息。
日期状态域:位于该结构的第8个字,该域为状态域类型。需要该域来提取日期信息。
标题指针域:指向标题字符的指针。位于该结构的第10个字。
字符资源定义
整个字符资源由一些字符串组成,每个字符串由一个字数组构成,该数组的每一个元素表示一个汉字的国标码,高8位为区码,低8位为位码,数组的最后一个元素为0x0000表示字符串结尾。参见图8
图标资源定义
图标资源中包含了整个设备文件中用到的全部图标。
从前面结构数据的定义中可以看到,对图标的访问有两种方式:通过Index值访问和通过指针访问。其中通过Index值访问的图标也可以通过指针来访问,这些图标的大小统一为16x16点阵,并且位于图标资源的前部;而只能通过指针来访问的图标可以有16x16、16x32和32x32三种大小,其数据位于通过Index值访问的图标数据之后。
不同尺寸的图标的数据长度也不相同,其中:16x16点阵的图标数据长度为16个字、16x32点阵的图标数据长度为32个字、32x32点阵的图标数据长度为64个字。
整个图标资源的组织结构如下:
图标1(Index=1,16x16点阵) |
图标2(Index=2,16x16点阵) |
………………… |
图标n(Index=n,16x16点阵) |
图标n+1 |
图标n+2 |
………………… |
图9为16x16点阵的图标映像,可以看出其对应的二进制数据为:
0x3FF0 0x4018 0xA388 0xC548 0xAAA8 0xCD68 0xAAA8 0x4568
0x23F8 0x2038 0x201C 0x200E 0x200F 0x3FFB 0x1FF0 0x0000
16x32和32x32点阵的图标映像参见图10。
设备文件的使用方法:
打开网络控制终端和移动控制终端进入主界面,进入某一个信息家电的菜单选项,逐级进入子菜单,直到最后的控制选项,发出命令指令,得到回码状态,显示此信息家电的当前状态。这些数据信息都由设备文件来提供。例如:在移动控制终端上进行相应操作。
当接收到一个新的信息家电的设备文件后,先对此设备文件的文件头进行分析和处理。从头文件中得到设备文件的版本号,版本号是为以后升级所用。根据设备类型、设备名称、图标资源、图标类型等来显示出图标名称,例如:洗碗(如图11)。
当查到有0x0000的字内容的时候,表示头文件已经显示完毕。如果想要进入下一级菜单,按确认键进入“洗碗”,“洗碗”为一个根目录。
以下为“洗碗”的示例流程,每个部分为不同的数据结构的使用方法。
子目录数据结构的使用方法:
第一,在设备文件中查到在根目录下有几个要显示的节点图标和节点名称,在设备文件中相应的位置中取出相应节点的图标和节点名称,并将其显示出来,其下可以是任何数据结构。例如显示“电源”选项,首先在设备文件中根据根目录的偏移指针查到“电源”的数据结构的文件类型为0x53aa,表明为一个子目录数据结构,然后向下继续找到节点名称为“电源”,此节点名称是用字符资源定义的。再找到节点图标为一个“钥匙”,此节点图标是用图标资源定义的,查找完毕。其它的显示以此类推。“洗碗”下的选项如图12。
第二,如果我们进入到电源这个选项中,在设备文件中偏移指针已经在此位置上了,因为光标移到何处,偏移指针移到何处,根据此选项的数据结构,进入下一级目录中。首先,此节点的结构数据定义的第一个字为上一级目录的地址,接下来为此节点的要发给此信息家电的查询命令,接下来为在此目录下应该显示几个选项,然后为每个选项的指针地址。按指针地址所指向的位置找到相应的显示选项。例如:进入“电源”目录,当进入电源目录的时候,首先是它的上一级目录的地址指针,然后为它对“洗碗”所发送的查询状态命令。当查询状态命令发出后,等待返回当前“洗碗”的状态信息,根据命令显示这级目录的各个选项的状态,如果没有有效信息返回,则此菜单栏中没有当前状态的显示,如图13。
此画面显示了当返回信息返回后,用图标反显得方法表示“洗碗”当前状态为关机状态,光标的位置指在开机的位置上。当进入此级目录后,根据子节点指针的地址,找到这个目录的各个选项,例如:显示“开机”命令的有效数据。
命令数据结构的使用方法
第三,当根据“开机”的地址指针找到“开机”的数据结构定义后,查到在设备文件中“开机”的数据结构的第一个字为0x3555,表示此节点为一个命令结构,接下来为节点名称的字符资源定义,将其显示出来,接下来为节点图标的图标资源定义,将其显示出来。接下来为状态回码域,表示在某一个固定位置来查到此时“洗碗”的开关机状态。此时这级目录界面显示完毕。
第四,当如果要使“洗碗”开机的话,则把光标移到“开机”的选项上面,按键盘上的确认键,当确认键动作后,这时偏移指针指在“开机”命令的命令指令上,取出它的命令指令,按“数字家庭网络系统的通讯格式”打包发出,来控制“洗碗”。当“洗碗”返回信息后,并按其“数字家庭网络系统的通讯格式”检查返回状态命令指令是否与此“开机”的状态指令相符,如相符,则表示可以查此状态信息,如不符,则表示不是有效返回信息。
状态图数据结构的使用方法
第五,如果要察看此信息家电的各种状态,则用到状态图数据结构。当在“洗碗”中进入“状态”这一节点,则在子目录级显示时,显示“状态”选项,在设备文件中查到状态节点的第一个字为0x55a5,表示为状态图数据结构,在此目录中显示节点名称和节点图标,然后找到“状态”数据结构中的元素指针,找到“状态”的结构数据定义。进入“状态”目录,当进入状态目录的时候,首先是它的上一级目录的地址指针,然后为它对“洗碗”所发送的查询状态命令。当查询状态命令发出后,等待返回当前“洗碗”的状态信息,根据命令显示这级目录的各个选项的状态,如果没有有效信息返回,则此菜单栏中没有当前状态的显示,如图14。
第六,如果要显示图14中的各个图标,则需要通过“状态”结构数据定义的数据指针来找到各个图标的图标资源定义。首先,第一个字表示图标的类型,接下来第二个字表示图标在显示界面上的位置,接下来第三、四个字表示图标按进入此目录时的返回信息来显示状态,然后是缺省时显示的图标,接下来是图标的个数、各个图标的地址指针、和特征值的地址指针。根据此这些地址指针可以显示图标,如果特征数组的话,根据特征数组的值来确定第几个图标指针,通过图标指针所指的地址为图标资源,根据这些资源数据显示图标,特征数组只要是为了解决数据不连贯的返回状态而设置的。
回调数据结构的使用方法
第七,如果用户进入有回调数据结构的目录中,首先,在设备文件中查到节点的第一个字为0x5457,表示为回调数据结构,接下来为节点名称和节点图标,接下来表示所对应的回调类型,回调数据结构分五种结构类型,一般每个类型的第一个字表示上一级目录的地址指针,接下来表示回调的结构类型,接下来为回调结构的命令指令,用来发送命令给此信息家电的,接下来为状态指令用来比较返回信息中的状态指令,接下来为回码状态域用来表示此信息家电的当前状态,接下来为每个设定数据之间的间隔值、设定数据的最小值、设定数据的最大值、标题字符等等。根据不同类型其后的数组指针也不同。
第八,当设置到某一个位置之后,按确认键则发送命令指令,当接收到返回信息并检测无误后,进度条的滑块固定在此位置上。否则返回上一个设定值的位置上。文件头的示例:FileStart .word 0x01 ;标准规范版本
.word 0x43,0x4e,0x41 ;文件类型“CNA”
.word(FileEnd-FileStart) ;文件大小
.word ;文件头大小
.word 0x01 ;国家代码
.word 0x01,0x02,0x03,0x04,0x05,0x06,0x07 ;厂商代码
.word 0x05 ;文件版本号
.word(DevType_s-Root) ;设备类型
.word(ProductType_s-Root) ;产品类型
.word 0x1100 ;图标属性
.word(IconsData-Root) ;图标资源指针结构数据示例:Root .word 0x0000 ;上一级目录地址指针
.word 0x0000 ;询问命令
.word 0x0004 ;选项个数
.word(Procedure-Root) ;以下四项为根目录所要显示的选项
.word(Run-Root)
.word(Power-Root)
.word(Status-Root)子目录数据示例Power
.word 0x53aa ;为子目录数据结构类型
.word(dianyuan_s-Root) ;节点名称“电源”
.word 0x1109 ;为第九个图标
.word 0x0000,0x0000 ;状态回码为“无”
.word 0x3555 ;为命令数据结构类型
.word(Kai_s-Root) ;节点名称“开机”
.word 0x210a ;节点图标属性
.word 0x040c ;状态回码的位置
.word 0x0001 ;状态回码的长度
.word 0x4d0a ;命令指令
.word 0x490a ;状态指令状态图数据结构示例Status
.word 0x55a5 ;为状态图数据结构类型
.word(zhuangtai_s-Root) ;节点名称
.word 0x110c ;节点图标
.word 0x0000
.word 0x0000
.word(DirStatus-Root) ;各个显示选项的指针DirStatus
.word 0x0000 ;为结构数据定义
.word 0x510c
.word 0x0008
.word (Haier_txt-Root) ;为各个选项的图标指针
.word(Program_img-Root)
.word(Progress_img-Root)
.word(Run_ img-Root)
.word(Washing_img-Root)
.word(Sterilize_img-Root)
.word(Dry_img-Root)
.word(Time_val-Root)Haier_txt
.word 0x3000,0x0101,(haier_s-Root)Program_img
.word 0x9100 ;为图标数据结构类型的第九种
.word 0x4001 ;表示图标在显示界面上的位置
.word 0x0408 ;状态回码的位置
.word 0x0004 ;状态回码的长度
.word(Error_icon-Root) ;缺省图标号
.word 0x0004 ;图标的数量
.word(FludWash_icon-Root) ;指向图标的数组指针
.word(GlassWash_icon-Root)
.word(StdWash_icon-Root)
.word(StrongWash_icon-Root)
.word 0x8001,0x8002,0x8004,0x8008 ;特征数组指针其它图标的数据结构以此类推。Progress_img
.word 0x8000,0x0202,0x0008,0x0008,0x0005Run_img
.word 0x9100,0x6001,0x0408,0x0008
.word (Error_icon-Root)
.word 0x0009
.word (Off_icon-Root)
.word (RelayError_icon-Root)
.word (SensorError_icon-Root)
.word (DrainError_icon-Root)
.word (FeedError_icon-Root)
.word (DoorError_icon-Root)
.word (On_icon-Root)
.word (Pause_icon-Root)
.word(Run_icon-Root)
.word 0x8000,0x8003,0x8006,0x800b,0x800e,0x800f,0x8010,0x8011,0x8012回调数据结构示例Progress
.word 0x5457 ;为回调数据结构类型
.word (guocheng_s-Root) ;节点名称
.word 0x1106 ;节点图标
.word(SetProgressCallback-Root) ;回调实体指针SetProgressCallback
.word 0x0000 ;上一级目录指针
.word 0x0002 ;回调结构中的第2个类型
.word 0x4d06 ;命令指令
.word 0x4906 ;状态指令
.word 0x0000 ;状态回码域
.word 0x0008 ;回码长度
.word 0x0001 ;滚动步距
.word 0x0000 ;滚动最小值
.word 0x0003 ;滚动最大值
.word(shedingguocheng_s-Root) ;标题字符
.word(quan_s-Root) ;设定选项的数组指针
.word(duo_s-Root)
.word(ban_s-Root)
.word(dan_s-Root)………………FileEnd
为了对整个网络中设备进行添加、删除、状态查询、参数配置等系统管理,及根据设备文件进行应用控制,需要使用应用层协议:统一设备管理协议UDCP(UniversalDevice Control Protocol)。UDCP采用client/server类结构,client为网络中的主控器(如手持、网关),server为各电器设备。UDCP利用设备文件的数据库来读取被管理设备的相应信息,以便为各种家电的管理和控制提供统一接口。
UDCP报文的通用格式为:(长度单位:字节)
1 0-XXX
Head | Nfield |
“Head”域标示本报文的一些基本属性,“Nfield”域根据“Head”值的不同而有不同的结构和取值。
其中“Head”域定义如下:7 4 5 4 2 0
“Function”标示“Nfield”包含的数据类型,其对应值如下:
“Retry”值为1时表示本报文为重传报文。“ACK”报文为应答报文。“Nfield”域格式:作系统管理时,“Nfield”域长度为1字节,其取值和含义如下:
作应用控制时“Nfield”域格式如下:(长度单位:字节)1 1-XXX
当Type取值为00H时,Data为控制码。当Type取值为55H时,Data为回码。
Function | Retry | reserved |
Function值 | Nfield数据类型 |
1 | 系统管理 |
2 | 应用控制 |
3 | 数据传送 |
4 | ACK |
其它 | 保留 |
Nfield取值 | 本报文含义 |
0 | 申请操作成功 |
1 | 申请操作失败 |
2 | 准备发送数据 |
3 | 可以接收数据 |
4 | 数据发送完毕 |
5 | 申请注册 |
6 | 申请注销 |
7 | 网关申请注册 |
8 | 网关申请注销 |
9 | 申请AT禁写 |
10 | 申请AT写允许 |
11 | 申请下载AT |
12 | 申请清除AT |
13 | 申请下载设备文件 |
其它 | 保留 |
Type | Data |
作数据传送时,“Nfield”域格式如下:(长度单位:字节)1-XXX
Data:本次发送的数据。
Data |
ACK报文没有“Nfield”域。
针对每个UDCP报文的传输(无论是系统管理、数据传送还是应用控制),都有ACK机制保证正确接收。接收方正确接收后要给出ACK帧作为回应,发送方在发送后RT1时间后仍未收到ACK,则重发一次。重发最多可进行RN1次。RT1、RN1的值可以在一定范围内配置。
鉴权,即对访问对象的访问权限的认定。UDCP协议包含鉴权功能,它对访问权限的判断是基于UDS,称为“基于UDS的信任”。网络中的一个站点只要经过一次成功的注册,即可拥有合法的访问权限。以上的机制其关键就在于一个授权UDS表AT中。
网络中的每一个站点均维护一个授权UDS表AT(Authentic Table),表中存有具有访问本站点的权限的设备的UDS。当本站点接收到一个UDCP报文后,只有其信源UDS在自己的AT中可以搜索到时,才接受此报文。
本系统中站点的联入其它网络是通过网关进行的,一个站点只能对应一个网关。因此AT中要为网关的UDS留一个(且只有一个)空间,至于具体位置可自行定义。
UDCP的系统管理命令集中有多个与AT有关的命令:申请注册、申请注销、网关申请注册、网关申请注销、申请下载AT、申请AT禁写、申请AT写允许、申请下载AT、申请清除AT。这些命令都是由网络管理者发给网中站点的。
网络管理者可以通过注册来取得对一个站点的访问权,并通过下载其设备文件来掌握其控制功能。由于注册的过程仅在一个站点加入以此管理者为核心的网络时才进行,并非经常性工作,已注册的合法管理者可以通过“申请AT禁写”命令来禁止其它站点非法取得访问权;还可以通过“申请下载AT”命令来查询当前注册情况;以及通过“申请清除AT”命令来取消非法访问者的访问权。
DHN(数字家庭网络)中的注册即DHN(数字家庭网络)中的一方取得另一方的信任关系,使得以后对方可以合法地接受自己发出的应用控制报文。注册是相互的,即信任关系是相互且对等的。注册的过程中设备分为申请方和应答方,前者是注册的主动发起者,后者是被动响应者。注册的过程描述如下:
1.申请方发出系统管理命令中的“申请注册”命令。
2.应答方接到上述命令后,如此时其UDS表AT可写且未满,则在自己的AT中添加对方的UDS后返回“申请操作成功”命令,否则返回“申请操作失败”命令。
3.申请方如接到“申请操作成功”命令,则表示注册成功,否则为失败。
注册的过程中设备分为申请方和应答方,前者是注册的主动发起者,后者是被动响应者。注册的过程描述如下:
申请方发出系统管理命令中的“申请注销”命令。
应答方接到上述命令后,如此时其UDS表AT可写,则在自己的AT中删除对方的UDS后返回“申请操作成功”命令,否则返回“申请操作失败”命令。
申请方如接到“申请操作成功”命令,则表示注销成功,否则为失败。
在DHN中,子网网关有着特殊的作用,它是连接子网间的枢纽,是网络层寻径的关键,子网中每台设备都要对应一台且只有一台本子网网关。
为了适应网关的特殊地位,除上述一般的注册工作以外,在UDCP中特别为它设定了一套专门的注册和注销机制。
网关注册的过程中申请方为网关,应答方本子网中其它设备。网关注册的过程描述如下:
1.申请方发出系统管理命令中的“网关申请注册”命令。
2.应答方接到上述命令后,如此时其UDS表AT可写且自身对应的子网网关为空,则在自己的AT中“子网网关”一项中添加对方的UDS及其物理地址后返回“申请操作成功”命令,否则返回“申请操作失败”命令。
3.申请方如接到“申请操作成功”命令,则表示注册成功,否则为失败。
网关注销的过程中申请方为网关,应答方本子网中其它设备。网关注销的过程描述如下:
1.申请方发出系统管理命令中的“网关申请注销”命令。
2.应答方接到上述命令后,如此时其UDS表AT可写,则删除自己的AT中“子网网关”一项中的UDS及其物理地址后返回“申请操作成功”命令,否则返回“申请操作失败”命令。
3.申请方如接到“申请操作成功”命令,则表示注销成功,否则为失败。
网关的注册和注销与一般设备的注册和注销的不同之处就在于申请接受方对前者不但要记录其UDS,还要记录其物理地址(详见“网络传输协议NTP”中关于地址解析和寻径的介绍)。另外,更重要的是,每台设备只能接受一台网关的注册申请。
数字家庭网络中已注册的双方中的任何一方都可以向对方要求将其完整的AT或设备文件传送给自己,从而获知对方的详细控制信息。
如前所述,UDCP在进行绝大部分的系统管理和应用控制工作时使用的报文类型都是很单一的。但在涉及到数据传输的AT和设备文件的下载过程中就要交替使用系统管理和数据传送类报文,其中前者起到信令的作用。
在AT和设备文件的下载大致按如下流程进行:(提出申请的一方称为甲方,接受申请的为乙方)
1.甲方提出请求指令(“申请下载AT”或“申请下载设备文件”)
2.乙方如接受此请求,则返回“准备发送数据”的指令
3.甲方发出“可以接收数据”指令
4.乙方以数据传送类报文返回总共要发送的数据字节数
5.甲方端提交“可以接收数据”指令
6.乙方以数据传送类报文发送一组数据
7.甲方提交“可以接收数据”指令
8.甲方、乙方重复6、7步骤直到甲方接到乙方发出的“数据发送完毕”指令表示此次工作结束。
数字家庭网络中已注册的双方中任何一方都可以通过“应用控制”报文向对方发送控制命令。具体的控制命令码由应用程序按需要从已下载的对方的设备文件中查出并填入报文中。
数字家庭网络中应用控制模式下控制码和回码是一一对应的,在正常情况下,控制码的接收方正确接收控制码后要给出回码作为回应,发送方在发送后RT2时间后仍未收到ACK,则重发一次。重发最多可进行RN2次。RT2、RN2的值可以在一定范围内配置。
如前所述,UDCP中控制码和回码使用的是不同的报文格式。虽然一个控制码有其特定的回码相对应,但从UDCP的角度来看,其具体数值是无关紧要的,本层协议所负责的仅是:努力保证本机在向信宿机发出一个使用了控制码的报文后要在规定时间内收到对方的回码报文。至于回码正确与否,则交由应用程序判断处理。
甲方中的应用程序要设置一台空调(乙方),使其定时关机。应用程序从本机保存的此空调的设备文件中查到对应的命令码格式为:4D21+HH+MM,其回码为4921+HH+MM。下面应用程序使用UDCP中应用控制方法,用控制码格式将上述数据(4D21+HH+MM)发给空调。空调接受命令并执行后,使用UDCP中应用控制方法,用回码格式将回码数据(4921+HH+MM)返回。甲方中的UDCP层只要在限定时间内接到了控制命令信宿机的响应,从报头可以判断这是一个回码,则本机的UDCP层认为一次通讯结束,将回码交给应用程序。应用程序从UDCP返回的数据(4921+HH+MM)与先前发出的控制命令相较,从其设备文件可知这次设置是成功的。如果应用程序认为不成功,它可以再发起一次设置动作。
甲方中的应用程序要查询一台空调(乙方)当前的时间。应用程序从本机保存的此空调的设备文件中查到对应的命令码格式为:4D28,其回码为4928+HH+MM。下面应用程序使用UDCP中应用控制方法,用控制码格式将上述数据(4D28)发给空调。空调接受命令并执行后,使用UDCP中应用控制方法,用回码格式将回码数据(4928+HH+MM)返回。甲方中的UDCP层只要在限定时间内接到了控制命令信宿机的响应,从报头可以判断这是一个回码,则本机的UDCP层认为一次通讯结束,将回码交给应用程序。应用程序从UDCP返回的数据(4928+HH+MM)与先前发出的控制命令相较,从其设备文件可知这次查询是成功的。如果应用程序认为不成功,它可以再发起一次查询动作。
Claims (10)
1、数字家庭网络中信息家电的控制的方法,其特征在于:
本方法包括如下步骤:
(1)在每台信息家电中保存一份描述自身功能和命令的设备文件;
(2)当新设备加入到数字家庭网络中时,信息家电接收到便携控制终端或网络控制终端发送的设备文件请求命令后,将自身的设备文件发送给便携控制终端或网络控制终端;
(3)便携控制终端或网络控制终端中保存着每台信息家电的设备文件,便携控制终端或网络控制终端根据设备文件来显示系统中有哪些信息家电;
(4)便携控制终端或网络控制终端通过设备文件实现对信息家电的控制。
2.如权利要求1所述的数字家庭网络中信息家电的控制的方法,其特征在于:
所述设备文件包括文件头、结构数据、字符资源和图标资源四部分;其中,文件头部分主要包含设备厂家、设备文件大小等信息;结构数据部分描述的是整个设备文件的组成结构;字符资源部分包含了在设备文件中要显示的全部字符;图标资源部分包含了设备文件中要显示的全部图标。
3、如权利要求2所述的数字家庭网络中信息家电的控制的方法,其特征在于:
所述文件头包括以下信息:文件规范版本;文件类型;文件大小;文件头大小;国家代码;厂商代码;文件版本号;设备类型号;产品型号;设备图标属性;扩展资源指针。
4、如权利要求2所述的数字家庭网络中信息家电的控制的方法,其特征在于:
所述数据结构包括根节点入口部分和各个子节点的数据;所述子节点分为子目录类型、命令类型、状态图类型和回调类型。
5、如权利要求4所述的数字家庭网络中信息家电的控制的方法,其特征在于:
所述子目录类型的子节点,其结构包括:节点类型域、节点名称指针域、图标属性域、回码状态域、入口指针域。
6、如权利要求4所述的数字家庭网络中信息家电的控制的方法,其特征在于:
所述命令类型包括标志命令类型、标志反显命令类型和特征值命令类型。
7、如权利要求4所述的数字家庭网络中信息家电的控制的方法,其特征在于:
所述状态图类型的结构包括节点类型域、节点名称指针域、图标属性域、回码状态域、状态图入口指针域。
8、如权利要求4所述的数字家庭网络中信息家电的控制的方法,其特征在于:
所述回调类型的结构包括节点类型域:节点名称指针、图标属性、回调实体指针。
9、如权利要求2所述的数字家庭网络中信息家电的控制的方法,其特征在于:
所述字符资源由字符串组成,每个字符串包括一个字数组,该数组的每一个元素表示一个汉字的国标码,数组的最后一个元素为0x0000表示字符串结尾。
10、数字家庭网络中信息家电相互访问的方法,其特征在于:
本方法包括如下步骤:
(1)应用程序从本机保存的该信息家电的设备文件中查到对应的命令码格式和回码格式;
(2)应用程序使用UDCP中应用控制方法,用控制码格式将数据发给该信息家电;
(3)该信息家电接受命令并执行后,使用UDCP中应用控制方法,用回码格式将回码数据返回;
(4)UDCP层只要在限定时间内接到了控制命令信宿机的响应,从报头可以判断这是一个回码,则本机的UDCP层认为一次通讯结束,将回码交给应用程序;
(5)应用程序从UDCP返回的数据与先前发出的控制命令相较,从其设备文件判断这次设置是否成功;
(6)如果应用程序认为不成功,它可以再发起一次设置动作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02103816 CN1372404A (zh) | 2002-03-27 | 2002-03-27 | 数字家庭网络中信息家电的控制和相互访问的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02103816 CN1372404A (zh) | 2002-03-27 | 2002-03-27 | 数字家庭网络中信息家电的控制和相互访问的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1372404A true CN1372404A (zh) | 2002-10-02 |
Family
ID=4739909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 02103816 Pending CN1372404A (zh) | 2002-03-27 | 2002-03-27 | 数字家庭网络中信息家电的控制和相互访问的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1372404A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004025899A1 (fr) * | 2002-09-16 | 2004-03-25 | Legend (Beijing) Limited | Procede de connexion de dispositifs dans une mise en reseaux de type dynamique |
CN100399755C (zh) * | 2003-05-13 | 2008-07-02 | 乐金电子(天津)电器有限公司 | 家庭网络的网络管理装置指定方法 |
CN100502305C (zh) * | 2005-12-22 | 2009-06-17 | 中山大学 | 一种家庭网络设备的管理系统及管理方法 |
CN100546270C (zh) * | 2003-08-28 | 2009-09-30 | 株式会社东芝 | 通信控制设备、通信系统和通信控制方法 |
CN101159584B (zh) * | 2007-11-07 | 2010-08-04 | 华为技术有限公司 | 网管系统、网络设备及对二进制操作指令进行授权的方法 |
CN101536535B (zh) * | 2006-01-27 | 2012-07-18 | Lg电子株式会社 | 远程控制设备 |
CN109727438A (zh) * | 2018-12-26 | 2019-05-07 | 浙江西盈科技股份有限公司 | 一种遥控器与主机之间序列号交互的方法 |
CN111083021A (zh) * | 2018-10-19 | 2020-04-28 | 佛山市顺德区美的饮水机制造有限公司 | 显示终端及显示系统 |
-
2002
- 2002-03-27 CN CN 02103816 patent/CN1372404A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004025899A1 (fr) * | 2002-09-16 | 2004-03-25 | Legend (Beijing) Limited | Procede de connexion de dispositifs dans une mise en reseaux de type dynamique |
CN100399755C (zh) * | 2003-05-13 | 2008-07-02 | 乐金电子(天津)电器有限公司 | 家庭网络的网络管理装置指定方法 |
CN100546270C (zh) * | 2003-08-28 | 2009-09-30 | 株式会社东芝 | 通信控制设备、通信系统和通信控制方法 |
CN100502305C (zh) * | 2005-12-22 | 2009-06-17 | 中山大学 | 一种家庭网络设备的管理系统及管理方法 |
CN101536535B (zh) * | 2006-01-27 | 2012-07-18 | Lg电子株式会社 | 远程控制设备 |
CN101159584B (zh) * | 2007-11-07 | 2010-08-04 | 华为技术有限公司 | 网管系统、网络设备及对二进制操作指令进行授权的方法 |
CN111083021A (zh) * | 2018-10-19 | 2020-04-28 | 佛山市顺德区美的饮水机制造有限公司 | 显示终端及显示系统 |
CN109727438A (zh) * | 2018-12-26 | 2019-05-07 | 浙江西盈科技股份有限公司 | 一种遥控器与主机之间序列号交互的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1845505A (zh) | 一种家庭网络设备的控制方法及设备管理装置 | |
CN1302233C (zh) | 微波炉系统、微波炉、中继装置、信息处理装置、主机 | |
CN1304952C (zh) | 使数据同步的系统、用于该系统的装置和数据同步方法 | |
CN1296858C (zh) | 信息处理系统 | |
CN1206578C (zh) | 控制用服务器装置、控制用终端装置及控制系统 | |
CN1163837C (zh) | 网络访问管理系统和方法 | |
CN1301470C (zh) | 服务提供系统和服务提供方法 | |
CN1783884A (zh) | 信息处理系统、信息提供和处理设备及方法、记录介质及程序 | |
CN1703701A (zh) | 用于管理门户服务器中的门户构件集合的方法和装置 | |
CN1533538A (zh) | 信息处理系统及信息处理装置和方法 | |
CN1276575A (zh) | 数据库存取系统 | |
CN1773545A (zh) | 域名购买的基于消息的网络配置 | |
CN1703921A (zh) | 使用短消息服务的电子商务消息的方法与装置 | |
CN1949763A (zh) | 共享信息服务器系统 | |
CN1692358A (zh) | 使用商业规则或用户角色而在环球网门户中选择小门户的方法和装置 | |
CN1703699A (zh) | 从门户服务器传递会话信息的方法和装置 | |
CN1783083A (zh) | 动态概要模块 | |
CN1656468A (zh) | 用于同步不同数据存储器中数据存储方式的方法和设备 | |
CN1474976A (zh) | 支持多个客户数据交换协议的工业过程控制数据访问服务器 | |
CN1599344A (zh) | 一种家庭网络系统体系结构和实现方法 | |
CN1539250A (zh) | 机器控制装置及机器控制系统 | |
CN1667575A (zh) | 非集成工具的集成体系结构 | |
CN1428033A (zh) | 语义信息网络 | |
CN1692354A (zh) | 信息管理系统、信息处理设备、信息处理方法、信息处理程序、和存储介质 | |
CN1507238A (zh) | 信息处理设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |