HiQnet package¶
Submodules¶
hiqnet.protocol module¶
HiQnet protocol library.
-
class
hiqnet.protocol.Command(source=None, destination=None, command=None)[source]¶ Bases:
objectHiQnet command.
-
bytes_remaining= 0¶
-
commandlen¶
-
decode(command)[source]¶ Decodes a binary command.
Parameters: command – The binary command to decode
-
decode_discoinfo()[source]¶ Decode discovery information command payload.
Payload: - HiQnet Device - Cost - Serial Number - Max Message size - Keep alive period - NetwordID - NetworkInfo
-
destination_address= None.0.0.0.0¶
-
disco_info(device, disco_type='Q')[source]¶ Build a Discovery Information command.
Parameters: - device (Device) – The HiQnet device sending the discovery command
- disco_type (str) – Discovery type message. I(nfo) or Q(uery)
-
error_code= 0¶
-
error_string= ''¶
-
flags= reqack:0 ack:0 info:0 error:0 res1:0 guaranteed:0 multipart:0 res2:0 session:0 res3:0 res4:0 res5:0 res6:0 res7:0 res8:0 res9:0 ¶
-
get_vd_list(workgroup='')[source]¶ Build a Get VD List command.
Parameters: workgroup (str) – The workgroup to get the VD list from.
-
header= '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'¶
-
headerlen¶
-
hello()[source]¶ Build an hello command.
Starts a session.
Returns: The session number Return type: int
-
hop_counter= 5¶
-
locate(time, serial_number)[source]¶ Builds a Locate command.
The receiver makes itself visible. Usually this is done by flashing some LEDs on the front panel.
Parameters: - time (bytearray) – time the leds should flash in ms 0x0000 turns off locate led(s) 0xffff turns on locate led(s)
- serial_number (str) – The target device’s serial number
See also
-
locate_off(serial_number)[source]¶ Builds a locate command asking for the visual clue to be inactive.
Parameters: serial_number (str) – The target device’s serial number
-
locate_on(serial_number)[source]¶ Builds a locate command asking for the visual clue to be active.
Parameters: serial_number (str) – The target device’s serial number
-
message= DISCOINFO¶
-
new_sequence_number= count(0)¶
-
optional_headers= ''¶
-
payload= ''¶
-
sequence_number= 0¶
-
session_number= 0¶
-
source_address= None.0.0.0.0¶
-
start_seq_no= 0¶
-
version¶
-
-
class
hiqnet.protocol.FullyQualifiedAddress(device_address=None, vd_address='x00', object_address='x00x00x00', devicevdobject=None)[source]¶ Bases:
objectFully Qualified HiQnet Address.
-
classmethod
broadcast_address()[source]¶ Get the Fully Qualified HiQnet Broadcast Address.
Return type: FullyQualifiedAddress
-
device_address= None¶
-
object_address= None¶
-
vd_address= None¶
-
classmethod
-
class
hiqnet.protocol.Message(identifier=None, name=None)[source]¶ Bases:
objectHiQnet messages handling.
-
MESSAGES= {'\x00\x02': 'GETNETINFO', '\x00\x03': 'RESERVED1', '\x00\x00': 'DISCOINFO', '\x00\x01': 'RESERVED0', '\x00\x06': 'SETADDR', '\x00\x07': 'GOODBYE', '\x00\x04': 'REQADDR', '\x00\x05': 'ADDRUSED', '\x00\x08': 'HELLO', 'MULTPARMSUB': '\x01\x0f', 'GETATTR': '\x01\r', 'PARMUNSUBALL': '\x01\x14', 'SUBEVTLOGMSGS': '\x01\x15', 'PARMSUBPCT': '\x01\x11', 'PARMSUBALL': '\x01\x13', 'HELLO': '\x00\x08', 'MULTPARMGET': '\x01\x03', 'SETATTR': '\x01\x0e', 'UNSUBEVTLOGMSGS': '\x01+', 'GETNETINFO': '\x00\x02', 'MULTPARMUNSUB': '\x01\x12', 'ADDRUSED': '\x00\x05', 'MULTOBJPARMSET': '\x01\x01', 'RESERVED1': '\x00\x03', 'RESERVED0': '\x00\x01', 'REQADDR': '\x00\x04', '\x01\x01': 'MULTOBJPARMSET', 'SETADDR': '\x00\x06', 'PARMSETPCT': '\x01\x02', 'GOODBYE': '\x00\x07', 'REQEVTLOG': '\x01,', 'DISCOINFO': '\x00\x00', 'GETVDLIST': '\x01\x1a', 'LOCATE': '\x01)', '\x01\x00': 'MULTPARMSET', '\x01\x03': 'MULTPARMGET', '\x01\x02': 'PARMSETPCT', '\x01\r': 'GETATTR', '\x01\x0f': 'MULTPARMSUB', '\x01\x0e': 'SETATTR', '\x01\x11': 'PARMSUBPCT', '\x01\x13': 'PARMSUBALL', '\x01\x12': 'MULTPARMUNSUB', '\x01\x15': 'SUBEVTLOGMSGS', '\x01\x14': 'PARMUNSUBALL', 'MULTPARMSET': '\x01\x00', '\x01\x1a': 'GETVDLIST', 'STORE': '\x01$', '\x01%': 'RECALL', '\x01$': 'STORE', '\x01)': 'LOCATE', 'RECALL': '\x01%', '\x01+': 'UNSUBEVTLOGMSGS', '\x01,': 'REQEVTLOG'}¶
-
identifier= None¶
-
name= None¶
-
hiqnet.device module¶
HiQnet device architecture.
Node (Device)¶
- At least one virtual device (The first is the device manager)
- Parameters and/or objects
- Objects contains parameters and/or other objects
Attributes everywhere¶
Either STATIC, Instance or Instance+Dynamic
Virtual devices, objects and parameters¶
Have a Class Name and a Class ID
-
class
hiqnet.device.Attribute(atr_type)[source]¶ Bases:
objectMember variables of the HiQnet architecture.
Static are basically constants. Instance are variables that are set at device bootup. Instance+Dynamic are regular variables that can change during the life of the device.
-
type= None¶
-
-
class
hiqnet.device.Device(name, hiqnet_address=6797, network_info=<hiqnet.networkinfo.IPNetworkInfo object>)[source]¶ Bases:
objectDescribes a device (aka node).
-
address¶ Get the device manager address
Returns: The fully qualified address of the device manager Return type: FullyQualifiedAddress
-
hiqnet_address¶ Get the device HiQnet address
Returns: The device HiQnet address Return type: int
-
manager= None¶
-
name¶ Get the device name
Returns: The device name Return type: str
-
network_info= None¶
-
virtual_devices= None¶
-
-
class
hiqnet.device.DeviceManager(name_string, class_name=None, flags=0, serial_number=None, software_version=None)[source]¶ Bases:
hiqnet.device.VirtualDeviceDescribes a HiQnet device manager.
Each device has one and this is always the first virtual device.
-
flags= reqack:0 ack:0 info:0 error:0 res1:0 guaranteed:0 multipart:0 res2:0 session:0 res3:0 res4:0 res5:0 res6:0 res7:0 res8:0 res9:0 ¶
-
serial_number= None¶
-
software_version= None¶
-
-
class
hiqnet.device.Object[source]¶ Bases:
objectHiQnet objects.
May contain other objects or parameters.
-
class
hiqnet.device.Parameter[source]¶ Bases:
hiqnet.device.ObjectHiQnet parameters.
Represents the manipulable elements and their attributes.
-
control_law= None¶
-
data_type= None¶
-
flags= res1:0 sensor:0 res2:0 res3:0 ¶
-
maximum_value= None¶
-
minimum_value= None¶
-
name_string= ''¶
-
hiqnet.networkinfo module¶
HiQnet device network informations.
-
class
hiqnet.networkinfo.IPNetworkInfo(mac_address, dhcp, ip_address, subnet_mask, gateway_address='0.0.0.0')[source]¶ Bases:
hiqnet.networkinfo.NetworkInfoIPv4 network informations.
-
classmethod
autodetect()[source]¶ Get infos from the interface.
We assume that interface to the default gateway is the one we want and fallback to the second interface since the first is usually “lo”.
Return type: NetworkInfo
-
dhcp= True¶
-
gateway= None¶
-
ip_address= None¶
-
mac_address= None¶
-
subnet_mask= None¶
-
classmethod
-
class
hiqnet.networkinfo.NetworkInfo(network_id=1)[source]¶ Bases:
objectNetwork informations.
-
NET_ID_RS232= 4¶
-
NET_ID_TCP_IP= 1¶
-
network_id= None¶ - 1: TCP/IP
- 2: reserved
- 3: reserved
- 4: RS232
-
-
class
hiqnet.networkinfo.RS232NetworkInfo[source]¶ Bases:
hiqnet.networkinfo.NetworkInfoRS232 network informations.
Note
Not implemented
com_id 1 byte
baud_rate 4 bytes
parity 1 byte
- 0 - None
- 1 - Odd
- 2 - Even
- 3 - Mark
- 4 - Space
stop_bits 1 byte
- 0 - 1 bit
- 1 - 1.5 bits
- 2 - 2 bits
data_bits 1 byte
- 4-9
flow_control 1_byte
- 0 - None
- 1 - Hardware
- 2 - XON/OFF
hiqnet.flags module¶
HiQnet Flags.
Simplified flags management with direct bitfields access.
-
class
hiqnet.flags.DeviceFlags[source]¶ Bases:
_ctypes.UnionDevice flags.
-
ack¶ Structure/Union member
-
asByte¶ Structure/Union member
-
b¶ Structure/Union member
-
error¶ Structure/Union member
-
guaranteed¶ Structure/Union member
-
info¶ Structure/Union member
-
multipart¶ Structure/Union member
-
reqack¶ Structure/Union member
-
res1¶ Structure/Union member
-
res2¶ Structure/Union member
-
res3¶ Structure/Union member
-
res4¶ Structure/Union member
-
res5¶ Structure/Union member
-
res6¶ Structure/Union member
-
res7¶ Structure/Union member
-
res8¶ Structure/Union member
-
res9¶ Structure/Union member
-
session¶ Structure/Union member
-
-
class
hiqnet.flags.DeviceFlagsBits[source]¶ Bases:
_ctypes.StructureBitfields for the device flags.
-
ack¶ Structure/Union member
-
error¶ Structure/Union member
-
guaranteed¶ Structure/Union member
-
info¶ Structure/Union member
-
multipart¶ Structure/Union member
-
reqack¶ Structure/Union member
-
res1¶ Structure/Union member
-
res2¶ Structure/Union member
-
res3¶ Structure/Union member
-
res4¶ Structure/Union member
-
res5¶ Structure/Union member
-
res6¶ Structure/Union member
-
res7¶ Structure/Union member
-
res8¶ Structure/Union member
-
res9¶ Structure/Union member
-
session¶ Structure/Union member
-
-
class
hiqnet.flags.ParameterFlags[source]¶ Bases:
_ctypes.UnionParameter flags.
-
asByte¶ Structure/Union member
-
b¶ Structure/Union member
-
res1¶ Structure/Union member
-
res2¶ Structure/Union member
-
res3¶ Structure/Union member
-
sensor¶ Structure/Union member
-
-
class
hiqnet.flags.ParameterFlagsBits[source]¶ Bases:
_ctypes.StructureBitfields for the parameters flags.
- Bits 0, 2, and 3 are reserved. Bit 1 is the Sensor Attribute.
- 0 = Non-Sensor 1 = Sensor
-
res1¶ Structure/Union member
-
res2¶ Structure/Union member
-
res3¶ Structure/Union member
-
sensor¶ Structure/Union member
hiqnet.service.ip module¶
HiQnet IP communication.
-
class
hiqnet.service.ip.Connection(udp_transport, tcp_transport)[source]¶ Bases:
objectHandles HiQnet IP connection.
Warning
Other connection types such as RS232, RS485 or USB are not handled yet.
-
sendto(command, destination='<broadcast>')[source]¶ Send command to the destination.
Parameters: - command (Command) – Message to send
- destination (str) – Destination IPv4 address or ‘<broadcast>’
-
tcp_transport= None¶
-
udp_transport= None¶
-
-
class
hiqnet.service.ip.Factory(app)[source]¶ Bases:
twisted.internet.protocol.FactoryHiQnet Twisted Factory.
-
protocol¶ alias of
TCPProtocol
-
-
class
hiqnet.service.ip.TCPProtocol[source]¶ Bases:
twisted.internet.protocol.ProtocolHiQnet Twisted TCP protocol.
-
dataReceived(data)[source]¶ Called when data is received.
Parameters: data (bytearray) – Received binary data
-
name= 'HiQnetTCP'¶
-
-
class
hiqnet.service.ip.UDPProtocol(app)[source]¶ Bases:
twisted.internet.protocol.DatagramProtocolHiQnet Twisted UDP protocol.
-
datagramReceived(data, addr)[source]¶ Called when data is received.
Parameters: - data (bytearray) – Received binary data
- addr (tuple) – IPv4 address and port of the sender
-
name= 'HiQnetUDP'¶
-