2021-09-13 16:50:23 +00:00
class SerialInterface ( ) :
""" This class provides an interface to a serial port. This class allows the user to send data over the serial port in a synchronous or asynchronous manner. This class is used for all ports capable of serial communication (e.g., Serial Ports, IR Serial Ports).
2021-09-21 15:27:39 +00:00
Note :
- In synchronous mode , the user will use SendAndWait ( ) to wait for the response .
- In asynchronous mode , the user will assign a handler function to ReceiveData to handle responses .
- If an IR / Serial port is passed in and it has already been instantiated as an IRInterface , an exception will be raised .
- - -
2021-09-13 16:50:23 +00:00
Arguments :
2021-09-21 15:27:39 +00:00
- Host ( extronlib . device ) - handle to Extron device class that instantiated this interface class
- Port ( string ) - port name ( e . g . ' COM1 ' , ' IRS1 ' )
- ( optional ) Baud ( int ) - baudrate
- ( optional ) Data ( int ) - number of data bits
- ( optional ) Parity ( string ) - ' None ' , ' Odd ' or ' Even '
- ( optional ) Stop ( int ) - number of stop bits
- ( optional ) FlowControl ( string ) - ' HW ' , ' SW ' , or ' Off '
- ( optional ) CharDelay ( float ) - time between each character sent to the connected device
- ( optional ) Mode ( string ) - mode of the port , ' RS232 ' , ' RS422 ' or ' RS485 '
- - -
2021-09-13 16:50:23 +00:00
Parameters :
2021-09-21 15:27:39 +00:00
- Baud - Returns ( int ) - the baud rate
- CharDelay - Returns ( float ) - inter - character delay
- Data - Returns ( int ) - the number of data bits
- FlowControl - Returns ( string ) - flow control
- Host - Returns ( extronlib . device ) - the host device
- Mode - Returns ( string ) - the current Mode
- Parity - Returns ( string ) - parity
- Port - Returns ( string ) - the port name this interface is attached to
- Stop - Returns ( int ) - number of stop bits
- - -
2021-09-13 16:50:23 +00:00
Events :
2021-09-21 15:27:39 +00:00
- Offline - ( Event ) Triggers when port goes offline . The callback takes two arguments . The first one is the extronlib . interface instance triggering the event and the second one is a string ( ' Offline ' ) .
- Online - ( Event ) Triggers when port goes offline . The callback takes two arguments . The first one is the extronlib . interface instance triggering the event and the second one is a string ( ' Online ' ) .
- ReceiveData - ( Event ) Receive Data event handler used for asynchronous transactions . The callback takes two arguments . The first one is the SerialInterface instance triggering the event and the second one is a bytes string .
2021-09-13 16:50:23 +00:00
"""
Host = None
Port = ' '
Baud = 0
Data = 0
Parity = ' '
Stop = 0
FlowControl = ' '
CharDelay = 0.0
Mode = ' '
Offline = None
Online = None
ReceiveData = None
def __init__ ( self , Host , Port , Baud = 9600 , Data = 8 , Parity = ' None ' , Stop = 1 , FlowControl = ' Off ' , CharDelay = 0 , Mode = ' RS232 ' ) :
""" SerialInterface class constructor.
Arguments :
- Host ( extronlib . device ) - handle to Extron device class that instantiated this interface class
- Port ( string ) - port name ( e . g . ' COM1 ' , ' IRS1 ' )
- ( optional ) Baud ( int ) - baudrate
- ( optional ) Data ( int ) - number of data bits
- ( optional ) Parity ( string ) - ' None ' , ' Odd ' or ' Even '
- ( optional ) Stop ( int ) - number of stop bits
- ( optional ) FlowControl ( string ) - ' HW ' , ' SW ' , or ' Off '
- ( optional ) CharDelay ( float ) - time between each character sent to the connected device
- ( optional ) Mode ( string ) - mode of the port , ' RS232 ' , ' RS422 ' or ' RS485 '
"""
self . Host = Host
self . Port = Port
self . Baud = Baud
self . Data = Data
self . Parity = Parity
self . Stop = Stop
self . FlowControl = FlowControl
self . CharDelay = CharDelay
self . Mode = Mode
def Initialize ( self , Baud = None , Data = None , Parity = None , Stop = None , FlowControl = None , CharDelay = None , Mode = None ) :
""" Initializes Serial Port to given values. User may provide any or all of the parameters. None leaves property unmodified.
Arguments :
- ( optional ) Baud ( int ) - baudrate
- ( optional ) Data ( int ) - number of data bits
- ( optional ) Parity ( string ) - ' None ' , ' Odd ' or ' Even '
- ( optional ) Stop ( int ) - number of stop bits
- ( optional ) FlowControl ( string ) - ' HW ' , ' SW ' , or ' Off '
- ( optional ) CharDelay ( float ) - time between each character sent to the connected device
- ( optional ) Mode ( string ) - mode of the port , ' RS232 ' , ' RS422 ' or ' RS485 '
"""
pass
def Send ( self , data ) :
""" Send string over serial port if it’ s open
Arguments :
- data ( bytes , string ) - data to send
Raises :
- TypeError
- IOError
"""
pass
def SendAndWait ( self , data , timeout , delimiter ) :
""" Send data to the controlled device and wait (blocking) for response
Note In addition to data and timeout , the method accepts an optional delimiter , which is used to compare against the received response . It supports any one of the following conditions :
- > deliLen ( int ) - length of the response
- > deliTag ( byte ) - suffix of the response
- > deliRex ( regular expression object ) - regular expression
It returns after timeout seconds expires , or returns immediately if the optional condition is satisfied .
Note : The function will return an empty byte array if timeout expires and nothing is received , or the condition ( if provided ) is not met .
Arguments :
- data ( bytes , string ) - data to send .
- timeout ( float ) - amount of time to wait for response .
- delimiter ( see above ) - optional conditions to look for in response .
Returns
- Response received data ( may be empty ) ( bytes )
"""
pass
def StartKeepAlive ( self , interval , data ) :
""" Repeatedly sends data at the given interval
Arguments :
- interval ( float ) - Time in seconds between transmissions
- data ( bytes ) - data bytes to send
"""
pass
def StopKeepAlive ( self ) :
""" Stop the currently running keep alive routine
"""
pass