Cluster DEVICE

Este cluster, se ocupa de todo lo relativo a la identificación del propio dispositivo, gestionando también su modo de operación como un sistema unitario. Su implementación es obligatoria,  en tanto en cuanto, gracias a él, los restantes dispositivos y sistemas del AmI, pueden ser conscientes de las características del dispositivo.

Los comandos de este cluster son:

  • GET_TYPE – 0x00.(OBL)
    • Descripción: Se solicita al dispositivo la lista de los endpoints activos que implementa. Esta información permite transmitir vía CCP una idea de las capacidades del dispositivo consultado.
    • Parámetros: Ninguno.
    • Respuesta: DEV_TYPE, DEV_ERROR.
  • GET_CLUSTER – 0x01. (OPC) – Discontinuado.
  •  PING – 0x02. (OBL)
    • Descripción: Se solicita al dispositivo un mensaje ACK de respuesta. Se trata de un comando orientado a realizar acciones de verificación de las comunicaciones con el dispositivo y de su estado.
    • Parámetros: Ninguno
    • Respuesta: DEV_ACK, DEV_ERROR.
  • RESET – 0x03.(OBL)
    • Descripción: Reinicia el dispositivo de modo remoto. El comportamiento tras el reinicio dependerá de las características del dispositivo. Frecuentemente, tras la ejecución de una rutina de reinicio el dispositivo, deje de operar del mismo modo al que lo estaba haciendo.
    • Parámetros: Ninguno
    • Respuesta: DEV_ACK, DEV_ERROR.
  • ECHO – 0x04. (OPC) – Discontinuado.
  • GET_MODE – 0x05.(OBL)
    • Descripción: En el caso de que el dispositivo disponga de varios modos de funcionamiento o perfiles, solicita el modo de funcionamiento del dispositivo. Si sólo existe un modo posible, la respuesta siempre será (0x00).
    • Parámetros: Ninguno
    • Respuesta: DEV_MODE, DEV_ERROR.
  • SET_MODE – 0x06.(OBL)
    • Descripción: En el caso de que el dispositivo disponga de varios modos de funcionamiento o perfiles, define el modo de funcionamiento del dispositivo. Si el dispositivo sólo tiene un modo de operación posible, el intento de ejecución de este comando generará el error de comando no soportado
    • Parámetros: 1 byte. Modo de operación o perfil de funcionamiento del dispositivo. La documentación técnica del dispositivo deberá indicar de manera inequívoca las características de los diferentes modos en los que pueda operar.
      • deviceMode: 1 byte.
    • Respuesta: DEV_ACK, DEV_ERROR.
  • GET_ID – 0x07.(OBL)
    • Descripción: Solicita el valor del identificador del dispositivo.
    • Parámetros: Ninguno
    • Respuesta: DEV_ID, DEV_ERROR.
  • SET_ID – 0x08.(OBL)
    • Descripción: Define el valor del identificador del dispositivo.
    • Parámetros: 8 bytes. Identificador del dispositivo, preferiblemente orientado al almacenamiento de valores hexadecimales.
      • deviceID: 8 bytes.
    • Respuesta: DEV_ACK, DEV_ERROR.
  • GET_DESCRIPTION – 0x09.(OBL)
    • Descripción: Consulta el valor del descriptor del dispositivo (etiqueta tipo ASCII).
    • Parámetros: Ninguno.
    • Respuesta: DEV_DESCRIPTION, DEV_ERROR.
  • SET_DESCRIPTION – 0x0A.(OBL)
    • Descripción: Define el valor del descriptor del dispositivo.
    • Parámetros: 20 bytes. Descriptor del dispositivo, preferiblemente orientado al almacenamiento de valores de tipo carácter.
      • deviceDescription: 20 bytes.
    • Respuesta: DEV_ACK, DEV_ERROR.
  • GET_04A_END_POINTS – 0x0B.(N/A)
    • Descripción: Se solicita al dispositivo la lista de los endpoints tipo OSGI4AMI implementados. Nótese, que un endpoint implementado puede que no esté activo. Así por ejemplo, un dispositivo podría tener entrada para 5 termopares externos, por lo que podría llegar a implementar 5 endpoints de tipo sensor y categoría temperatura. En un momento dado, puede que solo tenga 2 termopares conectados a sus entradas, por lo que GET_04A_END_POINTS nos indicaría que posee 5 endpoints, pero GET_TYPE solo nos aportaría información de los 2 activos.
    • Parámetros: Ninguno.
    • Respuesta: DEV_04A_END_POINTS, DEV_ERROR.
  • SET_04A_END_POINTS – 0x0C.(N/A)
    • Descripción: Modifica los endpoints. Si hace referencia a un endpoint de la lista de endpoint implementados, modifica sus parámetros. Si hace referencia a un endpoint que no existía en la lista de endpoints, crea ese endpoint con los parámetros adjuntos. Nótese, que los endpoints están listados de modo incremental, iniciando en el 0x10 (endpoint base), de modo que si se trata de añadir un endpoint no correlativo al último que aparece en la lista de implementados se generará un error y no se llevará a cabo la acción.
    • Parámetros: 1 byte. Descripción del enpoint según la tabla O4A _END_POINT_DESCRIPTION_TABLE.
      • O4aEndPointDescription: 1 byte.
    • Respuesta: DEV_ACK, DEV_ERROR.
  • DELETE_04A_END_POINTS – 0x0D.(N/A)
    • Descripción: Elimina un endpoint de la lista de endpoints implementados.
    • Parámetros: 1 byte. Número de endpoint a borrar.
      • O4aEndPoinNumber: 1 bytes.
    • Respuesta: DEV_ACK, DEV_ERROR.
  • GET_ANNOUNCE – 0x0E.(HW)
    • Descripción: Fuerza al dispositivo a que envíe los posibles mensajes de anuncio en el sistema de los que pudiera disponer.
    • Parámetros: Ninguno
    • Respuesta: DEV_ANNOUNCE, DEV_ERROR.

 

Eventos generados por este cluster son:

  • DEV_ACK – 0x00. (OBL)
    • Descripción: El dispositivo informa de la recepción y ejecución de un comando. Nótese que el envió de DEV_ACK no asegura la correcta realización de la acción solicitada, si no tan solo que el comando recibido ha sido procesado con éxito. Para minimizar el tránsito de mensajería, cuando un comando lleva implícito el retorno con algún otro tipo de mensaje no se envía  DEV_ACK desde el dispositivo.
    • Parámetros: 2 Bytes. Comando y cluster al que va dirigido el mensaje recibido por el dispositivo.
      • cluster: 1 byte.
      • command: 1 byte. Si el ACK no se genera vía comando si no que es generado por un proceso del propio dispositivo command=0xFF
  • NOT_SUPPORTED – 0x01. (OBL) – Discontinuado.
  • DEV_ERROR – 0x02.(OBL)
    • Descripción: El dispositivo informa de un error.
    • Parámetros: 3 bytes. Definen el tipo de error, y donde se ha generado.
      • cluster: 1 byte. Cluster desde el que se ha generado el error.
      • command: 1byte. Comando que ha generado el error. Si el error no se genera como respuesta a un comando, sino que es generado por un proceso del propio dispositivo command=0xFF
      • errorCode: 1 byte. Según valor descrito en la tabla asociada DEVICE_ERROR_CODE_TABLE.
      • [errorInfo]
  • DEV_TYPE – 0x03.(OBL)
    • Descripción: El dispositivo informa de todos los endpoints  activos que implementa en forma de lista, indicando para cada uno de ellos sus características.
    • Parámetros: 5 bytes por cada uno de los endpoints. Para cada uno de los endpoints.
      • DEV_NUM_ENDPOINT: 1 byte
      • DEV_CATEGORY: 1 byte
      • DEV_TYPE: 1 byte.
      • DEV_IMPLEMENTATION: 1 byte.
      • DEV_VERSION: 1 byte
      • /CUSTOM_INFO/: 0..n bytes
  • DEV_CLUSTERS – 0x04. (OPC) – Discontinuado.
  • ECHO – 0x05. (OPC) – Discontinuado.
  • DEV_ID – 0x06.(OBL)
    • Descripción: El dispositivo informa de su identificador.
    • Parámetros: 8 bytes. Identificador del dispositivo, preferiblemente orientado al almacenamiento de valores hexadecimales.
      • deviceID: 8 bytes
  • DEV_DESCRIPTION – 0x07.(OBL)
    • Descripción: El dispositivo devuelve su descriptor.
    • Parámetros: 20 bytes. Descriptor del dispositivo, preferiblemente orientado al almacenamiento de valores de tipo carácter.
      • deviceDescription: 20 bytes.
  • DEV_MODE – 0x08.(OBL)
    • Descripción: El dispositivo informa del modo o perfil en el que está funcionando.
    • Parámetros:
      • deviceMode: 1 bytes
  • DEV_O4A_END_POINTS – 0x09.(N/A)
    • Descripción: Lista de los endpoints implementados en el dispositivo.
    • Parámetros: 2n bytes, siendo n el número de endpoints implementados.
      • O4aEndPoinNumber: 1 byte
      • O4aEndPointDescription: 1 byte, según los valores especificados en la tabla O4A _END_POINT_DESCRIPTION_TABLE
  • DEV_ANNOUNCE – 0x0A.(HW)
    • Descripción: El dispositivo devuelve el mensaje de información inicial con el que se anuncia al sistema.
    • Parámetros: 24 bytes.
      • DEVICE_ANNOUNCE: 24 bytes