所有子器件的ALMemory默认关键码
(致动器与传感器具有相同的关键码)
- Value(浮点)
子器件通常有一个主值。
传感器的值是传感器的返回值,致动器的值是(由DCM)发送至致动器的最后一个命令。
例如,一个关节(至少)有2个子器件:致动器(需要达到的角度)和传感器(目前所处的角度,取决于传感器的精度)。
其值具有一个最后更新时间 (由ALMemory自动完成)。
该值通常为一个整数(8位、16位等,有符号或无符号),由电路板收发,由DCM(使用增益“Gain”和偏移“Offset”)转换为浮点或作为浮点读取。致动器首先转化为整型值(int),然后应用定时命令算法,在ALMemory里设定最后的值。这就是为什么如果您使用定时命令,要求一个发光二极管的浮点值为0.4时,最后发送到ALMemory里的值可能是0.398。
要获得ALMemory里的子器件值时,只需在子器件名中添加“baseName”和“/Value”,如:“Device/SubDeviceList//HeadPitch/Position/Actuator/Value”。
使用“/Value”来获得该值。
- “Gain”和“Offset”(浮点)
“Gain”(增益)和“Offset”(偏移)应用于器件的返回/发送值。
当传感器返回一个值时(通常为整数),会自动乘以增益值,加上偏移值。
当向致动器发送一个命令时,首先扣除偏移值,然后除以增益值。之后,(应用定时命令计算后)所得的值发送至致动器。
使用“/Gain”和“/Offset”关键码来获得这些值。
正常使用时,您无需改变这些关键码。
- “ACK”和“NACK”(整型)
每个子器件都有一个“ACK”(器件已应答)值 和一个“NACK”(器件未应答)值,它们只是简单的计数器,是所有接收到的“ACK”和“NACK”的整数增量。
每当一条信息成功地发送或接收至(次)器件时,“ACK”就会增加。每当在(次)器件出现信息交流错误(或无返回)时,“NACK”就会增加。如果没有信息交流,“ACK”和“NACK”就不会增加。
请注意,可能会返回 负值或0。在这里,上层也可以使用最后更新时间。
除特殊功能外,“NACK”意味着器件至少目前可能丢失或不存在(这有可能 仅仅是某一个信息交流的问题)。
使用“/Ack”和“/Nack”关键码来读取这些值。
注释: 目前,只有器件才具有“ACK”和“NACK”信息,而且接收到的有关某一器件的 “ACK”或“NACK”不会转发至其子器件。因此,您必须查看器件的相关信息。
- Error
每个器件、子器件都有一个错误列表。 每条错误信息中都有一个时间值、一个0至7的错误程度编码和一个字符串。 每个值都有30秒的时限,因此,如果出现错误的话,只会保留30秒内的错误信息。
错误程度编码为:
7 严重错误,无法使用(同“NACK”) 6 严重错误,但仍可勉强使用 5 对主要性能有不良影响的错误 4 错误 3 警告 2 轻微警告 1 注释 0 一切正常 > 使用“/Error”关键码来读取该值。
注释: 目前尚未使用。只有电机电路板器件的错误信息,其值是一个特殊的8位整型(见下一章)。
- “Min”和“Max”
还有强制性的“Min”(最小值)和“Max”(最大值)。
每个发送到致动器的定时命令都会经最小和最大值进行增、减调整。
对传感器来说,这个两个值的含义取决于子器件的类型。针对某些致动器,它们也会有特定的用途。
使用“/Min”和 “/Max”关键码来读取这些值。
请勿更改这两个值。
- 其它配置值包括“Type”,“Device”和“SubDeviceNumber”
“Type”是一个字符串,说明子器件的类型。
“Device”也是一个字符串,是控制这个子器件的器件名。
“SubDeviceNumber”是一个整型,以1开始,是 这个子器件的编号。
请勿更改这些值。
这些仅是强制性的关键码。根据类型不同,子器件可能会有其它“information”(信息)(诸如改变的传感器值),或“configuration”(配置)的关键码。
在以下的章节中会详细介绍所有的关键码。