Python client for GEX
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gex-client-py/gex/units/DOut.py

38 lines
967 B

import gex
class DOut(gex.Unit):
"""
Digital output port.
Pins are represented by bits of a control word, right-aligned.
For example, if pins C6, C5 and C0 are selected for the unit,
calling the "set" function with a word 0b111 will set all three to 1,
0b100 will set only C6.
"""
def _type(self):
return 'DO'
def write(self, pins:int):
""" Set pins to a value """
pb = gex.PayloadBuilder()
pb.u16(pins)
self.send(0x00, pb.close())
def set(self, pins:int):
""" Set pins high """
pb = gex.PayloadBuilder()
pb.u16(pins)
self.send(0x01, pb.close())
def clear(self, pins:int):
""" Set pins low """
pb = gex.PayloadBuilder()
pb.u16(pins)
self.send(0x02, pb.close())
def toggle(self, pins:int):
""" Toggle pins """
pb = gex.PayloadBuilder()
pb.u16(pins)
self.send(0x03, pb.close())