serial to socket bridge
Project description
ser2sock
A single-threaded, multi serial line to TCP bridge server.
Can run under python 2.6 up to 3.x (tested 3.8).
Installation
From within your favorite python environment:
pip install ser2sock
Usage
ser2net -c <configuration file>
Configuration
In order to provide flexibility, configuration is written in python.
The only requirement is to have a bridges
member which consists of a
sequence of bridges. A bridge is a dictionary with mandatory keys serial
and tcp
.
Example:
bridges = [
{
'serial': {'address': '/dev/ttyS0'},
'tcp': {'address': ("0", 18500)}
},
{
'serial': {'address': '/dev/ttyS1', 'baudrate': 19200},
'tcp': {'address': ("0", 18501), 'no_delay': False}
}
]
serial
:address
mandatory. Supports any keyword supported byserial.serial_for_url
(orserial.Serial
ifserial_for_url
does not existtcp
:address
mandatory (must be a pair bind host and port).reuse_addr
: (default: True) TCP reuse addressno_delay
: (default: True) disable Nagle's algorithmtos
: (default:0x10
, meaning low delay) type of service.
tcp
and serial
helpers are automatically loaded to the config namespace.
Here is the equivalent above config using helpers:
bridges = [
[serial(address="/dev/ttyS0"), tcp(address=("0", 18500))],
[serial(address="/dev/ttyS1", baudrate=19200),
tcp(address=("0", 18501), no_delay=False)],
]
You are free to put any code in your python configuration file. Here is an example setting up logging:
import logging
logging.basicConfig(
level=logging.DEBUG,
format='%(asctime)s %(levelname)s %(message)s'
)
bridges = [
[serial(address="/dev/ttyS0"), tcp(address=("0", 18500))],
[serial(address="/dev/ttyS1", baudrate=19200),
tcp(address=("0", 18501), no_delay=False)],
]
Web UI
The active configuration can be changed online through a web UI.
To enable web you need to install the extra package:
$ pip install ser2sock[web]
...and enable the web app in the configuration with:
bridges = [...]
web = ':8000'
ser2sock should now be visible here.
You should see something like this:
Note that changes made with the web interface only affect the active ser2sock instance and never the original configuration file.
That's all folks!
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file ser2sock-4.1.1.tar.gz
.
File metadata
- Download URL: ser2sock-4.1.1.tar.gz
- Upload date:
- Size: 7.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.3.0.post20200616 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e94919f4e3dd8785434b77d2dff75799a32735f2c66f6f29aab89178cbf6c2f |
|
MD5 | ff5868ded0329dd69f482d9fb1e6a733 |
|
BLAKE2b-256 | 217f2972329d2cf5e31bea26f5a9c44a272791fcfb9a4b1579700037732b0809 |