Nyx Node
Loading...
Searching...
No Matches
Nyx node

Nyx node. More...

Classes

class  nyx.node.NyxMQTTEvent
 MQTT event type. More...
class  nyx.node.NyxNode
 Nyx node exposing INDI, MQTT and Nyx Stream endpoints. More...

Detailed Description

Nyx node.


Class Documentation

◆ nyx::node::NyxMQTTEvent

class nyx::node::NyxMQTTEvent

MQTT event type.

Symbol Value Description
NyxMQTTEvent.OPEN 1100 A connection is opened.
NyxMQTTEvent.MSG 1101 A message is received.

Definition at line 25 of file node.py.

Inheritance diagram for nyx.node.NyxMQTTEvent:
Collaboration diagram for nyx.node.NyxMQTTEvent:

◆ nyx::node::NyxNode

class nyx::node::NyxNode

Nyx node exposing INDI, MQTT and Nyx Stream endpoints.

Definition at line 41 of file node.py.

Public Member Functions

 __init__ (self, str node_id, typing.List[json.NyxDict] vectors, str|None indi_url, str|None mqtt_url, str|None nss_url, str|None mqtt_username, str|None mqtt_password, int retry_ms, bool enable_xml, argparse.Namespace|None args=None)
 Allocates and initializes a Nyx node.
argparse.Namespace|None args (self)
 Optional command-line arguments provided in the constructor.
typing.Callable on_mqtt (self, NyxMQTTEvent event_type)
 Registers an MQTT event handler.
 on_timer (self, int interval_ms)
 Registers a timer handler.
None close (self)
 Finalizes the Nyx node.
None poll (self, int timeout_ms)
 Performs a single poll iteration.
None enable (self, str device, str|None name=None, str|None message=None)
 Enables a device or a vector and notifies clients.
None disable (self, str device, str|None name=None, str|None message=None)
 Disables a device or a vector and notifies clients.
None send_message (self, str device, str|None message=None)
 Sends a human-oriented message to the clients.
None send_del_property (self, str device, str|None name=None, str|None message=None)
 Sends a del-property message to the clients.
None mqtt_sub (self, str topic, int qos=0)
 If MQTT is enabled, subscribes to an MQTT topic.
None mqtt_pub (self, str topic, bytes message, int qos=0)
 If MQTT is enabled, publishes an MQTT message.

Constructor & Destructor Documentation

◆ __init__()

nyx.node.NyxNode.__init__ ( self,
str node_id,
typing.List[json.NyxDict] vectors,
str | None indi_url,
str | None mqtt_url,
str | None nss_url,
str | None mqtt_username,
str | None mqtt_password,
int retry_ms,
bool enable_xml,
argparse.Namespace | None args = None )

Allocates and initializes a Nyx node.

Parameters
node_idUnique node identifier.
vectorsArray of vectors.
indi_urlOptional INDI URL.
mqtt_urlOptional MQTT URL.
nss_urlOptional Nyx Stream URL.
mqtt_usernameOptional MQTT username.
mqtt_passwordOptional MQTT password.
retry_msConnect retry time [milliseconds].
enable_xmlEnables the XML messages for INDI compatibility.
argsOptional command-line arguments.

Definition at line 49 of file node.py.

Member Function Documentation

◆ on_mqtt()

typing.Callable nyx.node.NyxNode.on_mqtt ( self,
NyxMQTTEvent event_type )

Registers an MQTT event handler.

Parameters
event_typeMQTT event type.
Returns
A decorator registering the MQTT event handler.
with nyx.NyxNode(...) as node:
@node.on_mqtt(nyx.NyxMQTTEvent.OPEN)
def on_mqtt_open():
...
@node.on_mqtt(nyx.NyxMQTTEvent.MSG)
def on_mqtt_msg(topic, message):
...
Nyx node exposing INDI, MQTT and Nyx Stream endpoints.
Definition node.py:41

Definition at line 205 of file node.py.

◆ on_timer()

nyx.node.NyxNode.on_timer ( self,
int interval_ms )

Registers a timer handler.

Parameters
interval_msInterval [milliseconds].
Returns
A decorator registering the timer handler.
Note
Timers are triggered by the nyx.node.NyxNode.poll method.
with nyx.NyxNode(...) as node:
@node.on_timer(50)
def on_timer():
...

Definition at line 263 of file node.py.

◆ close()

None nyx.node.NyxNode.close ( self)

Finalizes the Nyx node.

Returns
None

Definition at line 324 of file node.py.

◆ poll()

None nyx.node.NyxNode.poll ( self,
int timeout_ms )

Performs a single poll iteration.

Parameters
timeout_msTimeout [milliseconds].
Returns
None
Note
timeout_ms determines the minimum timer resolution.

Definition at line 335 of file node.py.

◆ enable()

None nyx.node.NyxNode.enable ( self,
str device,
str | None name = None,
str | None message = None )

Enables a device or a vector and notifies clients.

Parameters
deviceDevice name.
nameOptional vector name (None means the whole device).
messageOptional human-oriented message.
Returns
None

Definition at line 348 of file node.py.

◆ disable()

None nyx.node.NyxNode.disable ( self,
str device,
str | None name = None,
str | None message = None )

Disables a device or a vector and notifies clients.

Parameters
deviceDevice name.
nameOptional vector name (None means the whole device).
messageOptional human-oriented message.
Returns
None

Definition at line 367 of file node.py.

◆ send_message()

None nyx.node.NyxNode.send_message ( self,
str device,
str | None message = None )

Sends a human-oriented message to the clients.

Parameters
deviceDevice name.
messageHuman-oriented message.
Returns
None

Definition at line 386 of file node.py.

◆ send_del_property()

None nyx.node.NyxNode.send_del_property ( self,
str device,
str | None name = None,
str | None message = None )

Sends a del-property message to the clients.

Parameters
deviceDevice name.
nameOptional vector name (None means the whole device).
messageOptional human-oriented message.
Returns
None

Definition at line 403 of file node.py.

◆ mqtt_sub()

None nyx.node.NyxNode.mqtt_sub ( self,
str topic,
int qos = 0 )

If MQTT is enabled, subscribes to an MQTT topic.

Parameters
topicMQTT topic.
qosMQTT Quality Of Service.
Returns
None
Note
MQTT handlers have to be added with the nyx.node.NyxNode.on_mqtt decorator.

Definition at line 422 of file node.py.

◆ mqtt_pub()

None nyx.node.NyxNode.mqtt_pub ( self,
str topic,
bytes message,
int qos = 0 )

If MQTT is enabled, publishes an MQTT message.

Parameters
topicMQTT topic.
messageMessage payload.
qosMQTT Quality Of Service.
Returns
None
Note
The message payload may contain arbitrary binary data.

Definition at line 441 of file node.py.