Skip to Content
Lumensalis CircuitPython framework coming soon 🎉

LumensalisCP.Lights.LCP_StupidArtnetServer

(Very) Simple Implementation of Artnet.

Python Version: 3.6 Source: http://artisticlicence.com/WebSiteMaster/User%20Guides/art-net.pdf 

NOTES

  • For simplicity: NET and SUBNET not used by default but optional

Module Contents

Classes

StupidArtnetASIOServer(Very) simple implementation of an Artnet Server.

Functions

shift_thisUtility method: extracts MSB and LSB from number.
clampUtility method: sets number in defined range.
set_evenUtility method: ensures number is even by adding.
put_in_rangeUtility method: sets number in defined range.
DEPRECATED: this will be removed from the library
make_address_maskReturns the address bytes for a given universe, subnet and net.
test_callbackTest function, receives data from server callback.

API

LumensalisCP.Lights.LCP_StupidArtnetServer.shift_this(number, high_first=True)

Utility method: extracts MSB and LSB from number.

Args: number - number to shift high_first - MSB or LSB first (true / false)

Returns: (high, low) - tuple with shifted values

LumensalisCP.Lights.LCP_StupidArtnetServer.clamp(number, min_val, max_val)

Utility method: sets number in defined range.

Args: number - number to use range_min - lowest possible number range_max - highest possible number

Returns: number - number in correct range

LumensalisCP.Lights.LCP_StupidArtnetServer.set_even(number)

Utility method: ensures number is even by adding.

Args: number - number to make even

Returns: number - even number

LumensalisCP.Lights.LCP_StupidArtnetServer.put_in_range(number, range_min, range_max, make_even=True)

Utility method: sets number in defined range. DEPRECATED: this will be removed from the library

Args: number - number to use range_min - lowest possible number range_max - highest possible number make_even - should number be made even

Returns: number - number in correct range

LumensalisCP.Lights.LCP_StupidArtnetServer.make_address_mask(universe, sub=0, net=0, is_simplified=True)

Returns the address bytes for a given universe, subnet and net.

Args: universe - Universe to listen sub - Subnet to listen net - Net to listen is_simplified - Whether to use nets and subnet or universe only, see User Guide page 5 (Universe Addressing)

Returns: bytes - byte mask for given address

class LumensalisCP.Lights.LCP_StupidArtnetServer.StupidArtnetASIOServer(pool: socketpool.SocketPool, port=6454)

(Very) simple implementation of an Artnet Server.

Initialization

Initializes Art-Net server.

socket_server = None

ARTDMX_HEADER = b’Art-Net\x00\x00P\x00\x0e’

listeners = []

__init_socket(pool: socketpool.SocketPool)

Initializes server socket.

async _listenLoop()

__del__()

Graceful shutdown.

__str__()

Printable object state.

register_listener(universe=0, sub=0, net=0, is_simplified=True, callback_function=None)

Adds a listener to an Art-Net Universe.

Args: universe - Universe to listen sub - Subnet to listen net - Net to listen is_simplified - Whether to use nets and subnet or universe only, see User Guide page 5 (Universe Addressing) callback_function - Function to call when new packet is received

Returns: id - id of listener, used to delete listener if required

delete_listener(listener_id)

Deletes a registered listener.

Args: listener_id - Id of listener to delete

Returns: None

delete_all_listener()

Deletes all registered listeners.

Returns: None

see_buffer(listener_id)

Show buffer values.

get_buffer(listener_id)

Return buffer values.

clear_buffer(listener_id)

Clear buffer in listener.

set_callback(listener_id, callback_function)

Add / change callback to a given listener.

set_address_filter(listener_id, universe, sub=0, net=0, is_simplified=True)

Add / change filter to existing listener.

close()

Close UDP socket.

static validate_header(header)

Validates packet header as Art-Net packet.

  • The packet header spells Art-Net
  • The definition is for DMX Artnet (OPCode 0x50)
  • The protocol version is 15

Args: header - Packet header as bytearray

Returns: boolean - comparison value

LumensalisCP.Lights.LCP_StupidArtnetServer.test_callback(data)

Test function, receives data from server callback.