RS232 - Serial Port
The RS232
class provides a wrapper for basic UART functionality for RS232#1.
It offers basic functions to configure, send and receive data.
The class needs to be initialized with the following parameters:
Parameter name |
Value |
Description |
---|---|---|
|
9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600 |
RS232#1 baudrate |
Methods
- class RS232(uart_baudrate, uart_rxbuf=4096)
The
RS232
class is used to create an object that can communicate via the RS232 connector available on the SBC.Important
The class described in this section applies only to RS232#1, which is entirely programable. RS232#2 is non-programmable and is hard-wired see system schematic.
GPS2 and GPS3 should be powered on in order to use RS232#2.
Example to turn ON GPS2 and GPS3 in order to use RS232#2:>>> import sbc >>> pm = sbc.Power_Module() >>> pm.gps2and3_on()
The class needs to be initialized with the following parameters:
Parameter name
Value
Description
uart_baudrate
9600, 19200, 38400, 57600,
115200, 230400, 460800,
921600
RS232#1 baudrate
uart_rxbuf
any, default value is 4096
RX buffer size.
We recommend to leave the default value
unless you know how to deal with
UART RX buffers
- read(size=None)
Read data via RS232
- Args:
size
: number of bytes to receive. Use read() to read all available data.- Return:
Received data
- Example to read data:
>>> import sbc >>> rs232 = sbc.RS232( 115200 ) >>> print(rs232.read(12)) b'Hello World!'
Note
The ouput messages from the RS232#1 are being stored in the
RS232
uart_rxbuf
buffer.
The default buffer size (4096 bytes) should be enough to read continuously, but be aware that if you don’t read the buffer during a long time, the buffer will be completed and the new messages from RS232#1 will be lost, and by the time you read the buffer you will read “old” messages.
If you want to discard old messages, you can empty the buffer withuart_init()
method.
- write(data)
Write data via RS232
- Args:
data
: data to send- Return:
Number of bytes written
- Example to write data:
>>> import sbc >>> rs232 = sbc.RS232( 115200 ) >>> sent_bytes = rs232.write( "Hello World!" ) >>> print('Bytes sent: ', sent_bytes) Bytes sent: 12
- uart_init()
Initializes RS232 UART port
- forward_to(uart_fwd=None)
Fordwards RS232 data to a peripheral with UART
- Args:
uart_fwd
: peripheral object (Gps, XBee)- Example to forward information received on the RS232 socket to GPS1 UART1:
>>> import sbc >>> rs232 = sbc.RS232( 115200 ) >>> gps1 = sbc.Gps( 1, 115200 ) >>> rs232.forward_to( gps1 )
- forward_disable()
Disables RS232 forwarding
- get_uart_id()
Get RS232#1 UART port.
- Return:
UART port
Note
Since the get_uart_id()
method of the RS232
class returns a microPython UART object, it has all its methods.
To do not duplicate the documentation, we suggest to take a look at the official microPython project documentation to see what methods you can additionaly use.
- Example of additional methods:
>>> import sbc >>> rs232 = sbc.RS232( 115200 ) >>> print('There are: ',rs232.any(),' characters to be read') There are: 1580 characters to be read >>> print(rs232.get_uart_id().readline()) b'$GNGGA,142222.00,4136.52091,N,00036.70322,E,2,10,1.27,203.6,M,49.8,M,,0000*4D\r\n'