|
Nyx Node
|
Classes | |
| struct | nyx_node_t |
| Opaque struct describing a Nyx node. More... | |
Typedefs | |
| typedef void(* | nyx_node_t::nyx_mqtt_handler_t) (nyx_node_t *node, nyx_event_type_t event_type, size_t topic_size, BUFF_t topic_buff, size_t message_size, BUFF_t message_buff) |
| MQTT event handler. | |
Enumerations | |
| enum | nyx_node_t::nyx_event_type_t |
| TCP or MQTT event type. | |
Functions | |
| __NYX_NULLABLE__ nyx_node_t * | nyx_node_t::nyx_node_initialize (STR_t node_id, nyx_dict_t *vectors[], __NYX_NULLABLE__ STR_t indi_url, __NYX_NULLABLE__ STR_t mqtt_url, __NYX_NULLABLE__ STR_t nss_url, __NYX_NULLABLE__ STR_t mqtt_username, __NYX_NULLABLE__ STR_t mqtt_password, __NYX_NULLABLE__ nyx_mqtt_handler_t mqtt_handler, uint32_t retry_ms, bool enable_xml) |
| Allocates and initializes a new Nyx node. | |
| void | nyx_node_t::nyx_node_finalize (nyx_node_t *node, bool free_vectors) |
| Finalizes a Nyx node. | |
| void | nyx_node_t::nyx_node_add_timer (const nyx_node_t *node, uint32_t interval_ms, void(*callback)(void *), void *arg) |
| Adds a new timer. | |
| void | nyx_node_t::nyx_node_poll (const nyx_node_t *node, uint32_t timeout_ms) |
| Performs a single poll iteration. | |
| void | nyx_node_t::nyx_node_enable (const nyx_node_t *node, STR_t device, __NYX_NULLABLE__ STR_t name, __NYX_NULLABLE__ STR_t message) |
| Enables a device or a vector and notifies clients. | |
| void | nyx_node_t::nyx_node_disable (const nyx_node_t *node, STR_t device, __NYX_NULLABLE__ STR_t name, __NYX_NULLABLE__ STR_t message) |
| Disables a device or a vector and notifies clients. | |
| void | nyx_node_t::nyx_node_send_message (const nyx_node_t *node, STR_t device, __NYX_NULLABLE__ STR_t message) |
| Sends a human-oriented message to the clients. | |
| void | nyx_node_t::nyx_node_send_del_property (const nyx_node_t *node, STR_t device, __NYX_NULLABLE__ STR_t name, __NYX_NULLABLE__ STR_t message) |
| Sends a del-property message to the clients. | |
| void | nyx_node_t::nyx_mqtt_sub (const nyx_node_t *node, STR_t topic, int qos) |
| If MQTT is enabled, subscribes to an MQTT topic. | |
| void | nyx_node_t::nyx_mqtt_pub (const nyx_node_t *node, STR_t topic, __NYX_ZEROABLE__ size_t message_size, __NYX_NULLABLE__ BUFF_t message_buff, int qos) |
| If MQTT is enabled, publishes an MQTT message. | |
| void | nyx_node_t::nyx_nss_pub (const nyx_node_t *node, STR_t device, STR_t stream, __NYX_ZEROABLE__ size_t n_fields, const uint32_t field_hashes[], const size_t field_sizes[], const buff_t field_buffs[]) |
| If Nyx Stream is enabled, publishes an entry to a stream. | |
Nyx node.
| struct nyx_node_t |
Opaque struct describing a Nyx node.
Public Types | |
| enum | nyx_event_type_t |
| TCP or MQTT event type. | |
| typedef void(* | nyx_mqtt_handler_t) (nyx_node_t *node, nyx_event_type_t event_type, size_t topic_size, BUFF_t topic_buff, size_t message_size, BUFF_t message_buff) |
| MQTT event handler. | |
Public Member Functions | |
| __NYX_NULLABLE__ nyx_node_t * | nyx_node_initialize (STR_t node_id, nyx_dict_t *vectors[], __NYX_NULLABLE__ STR_t indi_url, __NYX_NULLABLE__ STR_t mqtt_url, __NYX_NULLABLE__ STR_t nss_url, __NYX_NULLABLE__ STR_t mqtt_username, __NYX_NULLABLE__ STR_t mqtt_password, __NYX_NULLABLE__ nyx_mqtt_handler_t mqtt_handler, uint32_t retry_ms, bool enable_xml) |
| Allocates and initializes a new Nyx node. | |
| void | nyx_node_finalize (nyx_node_t *node, bool free_vectors) |
| Finalizes a Nyx node. | |
| void | nyx_node_add_timer (const nyx_node_t *node, uint32_t interval_ms, void(*callback)(void *), void *arg) |
| Adds a new timer. | |
| void | nyx_node_poll (const nyx_node_t *node, uint32_t timeout_ms) |
| Performs a single poll iteration. | |
| void | nyx_node_enable (const nyx_node_t *node, STR_t device, __NYX_NULLABLE__ STR_t name, __NYX_NULLABLE__ STR_t message) |
| Enables a device or a vector and notifies clients. | |
| void | nyx_node_disable (const nyx_node_t *node, STR_t device, __NYX_NULLABLE__ STR_t name, __NYX_NULLABLE__ STR_t message) |
| Disables a device or a vector and notifies clients. | |
| void | nyx_node_send_message (const nyx_node_t *node, STR_t device, __NYX_NULLABLE__ STR_t message) |
| Sends a human-oriented message to the clients. | |
| void | nyx_node_send_del_property (const nyx_node_t *node, STR_t device, __NYX_NULLABLE__ STR_t name, __NYX_NULLABLE__ STR_t message) |
| Sends a del-property message to the clients. | |
| void | nyx_mqtt_sub (const nyx_node_t *node, STR_t topic, int qos) |
| If MQTT is enabled, subscribes to an MQTT topic. | |
| void | nyx_mqtt_pub (const nyx_node_t *node, STR_t topic, __NYX_ZEROABLE__ size_t message_size, __NYX_NULLABLE__ BUFF_t message_buff, int qos) |
| If MQTT is enabled, publishes an MQTT message. | |
| void | nyx_nss_pub (const nyx_node_t *node, STR_t device, STR_t stream, __NYX_ZEROABLE__ size_t n_fields, const uint32_t field_hashes[], const size_t field_sizes[], const buff_t field_buffs[]) |
| If Nyx Stream is enabled, publishes an entry to a stream. | |
| typedef void(* nyx_mqtt_handler_t) (nyx_node_t *node, nyx_event_type_t event_type, size_t topic_size, BUFF_t topic_buff, size_t message_size, BUFF_t message_buff) |
MQTT event handler.
| node | Nyx node. |
| event_type | Event type. |
| topic_size | Number of MQTT topic bytes. |
| topic_buff | MQTT topic buffer. |
| message_size | Number of message payload bytes. |
| message_buff | Message payload buffer. |
Definition at line 2848 of file nyx_node.h.
| __NYX_NULLABLE__ nyx_node_t * nyx_node_initialize | ( | STR_t | node_id, |
| nyx_dict_t * | vectors[], | ||
| __NYX_NULLABLE__ STR_t | indi_url, | ||
| __NYX_NULLABLE__ STR_t | mqtt_url, | ||
| __NYX_NULLABLE__ STR_t | nss_url, | ||
| __NYX_NULLABLE__ STR_t | mqtt_username, | ||
| __NYX_NULLABLE__ STR_t | mqtt_password, | ||
| __NYX_NULLABLE__ nyx_mqtt_handler_t | mqtt_handler, | ||
| uint32_t | retry_ms, | ||
| bool | enable_xml ) |
Allocates and initializes a new Nyx node.
| node_id | Unique node identifier. |
| vectors | Array of vectors with NULL sentinel. |
| indi_url | Optional INDI URL (e.g., tcp://0.0.0.0:7625). |
| mqtt_url | Optional MQTT URL (e.g., mqtt://localhost:1883). |
| nss_url | Optional Nyx Stream URL (e.g., tcp://localhost:6379). |
| mqtt_username | Optional MQTT username. |
| mqtt_password | Optional MQTT password. |
| mqtt_handler | Optional MQTT handler. |
| retry_ms | Connect retry time [milliseconds]. |
| enable_xml | Enables the XML messages for INDI compatibility. |
| void nyx_node_finalize | ( | nyx_node_t * | node, |
| bool | free_vectors ) |
| void nyx_node_add_timer | ( | const nyx_node_t * | node, |
| uint32_t | interval_ms, | ||
| void(* | callback )(void *), | ||
| void * | arg ) |
Adds a new timer.
| node | Nyx node. |
| interval_ms | Interval [milliseconds]. |
| callback | Callback to be invoked. |
| arg | Callback argument. |
Definition at line 390 of file mongoose.c.
| void nyx_node_poll | ( | const nyx_node_t * | node, |
| uint32_t | timeout_ms ) |
Performs a single poll iteration.
| node | Nyx node. |
| timeout_ms | Timeout [milliseconds]. |
timeout_ms determines the minimum timer resolution. Definition at line 397 of file mongoose.c.
| void nyx_node_enable | ( | const nyx_node_t * | node, |
| STR_t | device, | ||
| __NYX_NULLABLE__ STR_t | name, | ||
| __NYX_NULLABLE__ STR_t | message ) |
Enables a device or a vector and notifies clients.
| node | Nyx node. |
| device | Device name. |
| name | Optional vector name (NULL means the whole device). |
| message | Optional human-oriented message. |
| void nyx_node_disable | ( | const nyx_node_t * | node, |
| STR_t | device, | ||
| __NYX_NULLABLE__ STR_t | name, | ||
| __NYX_NULLABLE__ STR_t | message ) |
Disables a device or a vector and notifies clients.
| node | Nyx node. |
| device | Device name. |
| name | Optional vector name (NULL means the whole device). |
| message | Optional human-oriented message. |
| void nyx_node_send_message | ( | const nyx_node_t * | node, |
| STR_t | device, | ||
| __NYX_NULLABLE__ STR_t | message ) |
| void nyx_node_send_del_property | ( | const nyx_node_t * | node, |
| STR_t | device, | ||
| __NYX_NULLABLE__ STR_t | name, | ||
| __NYX_NULLABLE__ STR_t | message ) |
| void nyx_mqtt_sub | ( | const nyx_node_t * | node, |
| STR_t | topic, | ||
| int | qos ) |
If MQTT is enabled, subscribes to an MQTT topic.
| node | Nyx node. |
| topic | MQTT topic. |
| qos | MQTT Quality Of Service. |
| void nyx_mqtt_pub | ( | const nyx_node_t * | node, |
| STR_t | topic, | ||
| __NYX_ZEROABLE__ size_t | message_size, | ||
| __NYX_NULLABLE__ BUFF_t | message_buff, | ||
| int | qos ) |
If MQTT is enabled, publishes an MQTT message.
| node | Nyx node. |
| topic | MQTT topic. |
| message_size | Number of message payload bytes. |
| message_buff | Message payload buffer. |
| qos | MQTT Quality Of Service. |
| void nyx_nss_pub | ( | const nyx_node_t * | node, |
| STR_t | device, | ||
| STR_t | stream, | ||
| __NYX_ZEROABLE__ size_t | n_fields, | ||
| const uint32_t | field_hashes[], | ||
| const size_t | field_sizes[], | ||
| const buff_t | field_buffs[] ) |
If Nyx Stream is enabled, publishes an entry to a stream.
| node | Nyx node. |
| device | Device name. |
| stream | Stream name. |
| n_fields | Number of fields. |
| field_hashes | Array of field name hashes, one per field. |
| field_sizes | Array of payload byte counts, one per field. |
| field_buffs | Array of payload buffers, one per field. |