Send and receive data over serial diode
Project description
Serial Diode
Generic wire protocol and implementation for one-way data transfer over UART serial.
Usage
General
The serial device can be specified with --device
and baudrate with --baudrate
.
If device is unspecified, it will attempt to guess the correct device based on platform and name.
If baudrate is unspecified, it defaults to 115200 Hz.
See --help
for detailed usage information.
Send
Run diode send <path/to/file>
to send <file>
.
Receive
Run diode listen
, which will listen forever. When it receives a valid payload, it will write it to out/<file>
where <file>
was specified in the payload metadata.
Note that on some systems this may need to be run as root to allow access to the serial port.
It is generally preferable to add the user to the appropriate group with something similar to usermod -a -G uucp <username>
.
Wire format
┌─────┬──────────┬─────────────┬──────┬─────┬───────┐
│ SOT │ metadata │ data_length │ data │ EXT │ crc32 │
└─────┴──────────┴─────────────┴──────┴─────┴───────┘
Here:
metadata
is 32 bytes,data_length
is 8 bytes,data
isdata_length
bytes,crc32
is 8 bytes,SOT
andEXT
are the bytesx02
,x03
,crc32
is the value of the CRC32 function acting onmetadata || data
.
Installation
Install in developer mode with make install_dev && source venv/bin/activate
.
Install as user with make install
.
Install from PyPI with pip install data-diode
.
Install Bash completion with source bash_completion/diode
.
Testing
Run make test
.
For ad-hoc testing, socat -d -d pty,raw,echo=0 pty,raw,echo=0
can be useful to connect two virtual serial devices.
If a physical serial device exists, connect with screen /dev/<device_name> [<baud_rate>]
where <baud_rate>
is likely 115200.
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
Built Distribution
File details
Details for the file data-diode-0.0.4.tar.gz
.
File metadata
- Download URL: data-diode-0.0.4.tar.gz
- Upload date:
- Size: 6.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.1 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bbd9bf4f6c8a41dbcf95b8ccfb39a9ceb145d32108157027bcbb2315c144b36f |
|
MD5 | 62e8aaf646220f2ed3fe70285bc64d42 |
|
BLAKE2b-256 | eca2bf17ba687fe005aef8d950e1743f41840a74e064ad6d47d058c032b613ab |
File details
Details for the file data_diode-0.0.4-py3-none-any.whl
.
File metadata
- Download URL: data_diode-0.0.4-py3-none-any.whl
- Upload date:
- Size: 7.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.1 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ccc281bdb8f9ba709d4bf329aa219c919f28f7a55de98a6708cdaffe8dc27cd2 |
|
MD5 | adf48242397ebf3e2b2d84cb9bda19d9 |
|
BLAKE2b-256 | 6a4529795b34230328165cd15e495fe86bed9fc4c1030f53027ad5b6bd5b4dd0 |