Skip to main content

COM-Server

GitHub Workflow Status Documentation Status GitHub Workflow Status PyPI

COM-Server is a Python library and a local web server that hosts an API locally and interacts with serial or COM ports. The Python library provides a different way of sending and receiving data from the serial port using a thread, and it also gives a set of tools that simplifies the task of manipulating data to and from the port. Additionally, the server makes it easier for other processes to communicate with the serial port.

The serial communication uses pyserial as its back-end and the server uses flask-restful and Flask. Reading their documentations may help with developing with COM-Server.

NOTE: COM-Server has only been tested on:
Operating systems:

  • Ubuntu 20.04 (Focal Fossa)
  • Raspberry Pi OS 10 (Buster)
  • Mac OS 10.15.x (Catalina)
  • Mac OS 11.6 (Big Sur)
  • Windows 10

Python versions:

  • Python 3.7.2
  • Python 3.7.3
  • Python 3.8.10
  • Python 3.9.7
  • Python 3.10.0

Serial ports:

  • Arduino UNO
  • Arduino Nano

COM-Server is not meant to be used like a normal JSON API, even though it uses Flask and Flask-restful. If there are many different devices accessing the endpoints at the same time, data will be backed up, since the serial communication is relatively slow and things cannot be sent to the serial device at the same time.

The server is recommended to be used like a socket, and it should be used as a way for another process (should be only one; COM-Server has no implemented synchronization) on one computer (could be the same computer or another one on the same network) to communicate with the serial port via pyserial and this Python program.

Installation

NOTE: COM-Server only works on Python >= 3.6.

Using pip:

> pip install -U com-server

For beta releases, use the --pre option:

> pip install --pre com-server

Quickstart

# launches a development server on http://0.0.0.0:8080

import com_server

conn = com_server.Connection(<baud>, "<serport>") 
handler = com_server.RestApiHandler(conn) 
com_server.Builtins(handler) 

handler.run_dev(host="0.0.0.0", port=8080) 

conn.disconnect()

Replace "<serport>" and "<baud>" with the serial port and baud rate.

Alternatively, you can use the command line:

> com_server run <baud> <serport>

Again, replace "<serport>" and "<baud>" with the serial port and baud rate.

Metadata

Release files for com-server 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for com-server 0.1.4
File Size Uploaded
com-server-0.1.4.tar.gz 55.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for com-server 0.1.4
File Interpreter ABI Platform
com_server-0.1.4-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 85.4 kB

Release files / com-server-0.1.4.tar.gz

Download URL com-server-0.1.4.tar.gz
Size 55.5 kB
Tags Source
SHA-256 checksum
How to use checksums
af70940f325c5ef357d47352e198e383b4493697095fce04f28f5e70cf4f4ed6
BLAKE2b-256 checksum
How to use checksums
42faf15e1291298d0db57b412d868f6a87de3e9bac6424e0a9486881eb4e7672
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

Release files / com_server-0.1.4-py2.py3-none-any.whl

Download URL com_server-0.1.4-py2.py3-none-any.whl
Size 29.9 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
2f23c678a22419c7b40ddc8a611db121330c1d4998d57b92842def3f869f0d27
BLAKE2b-256 checksum
How to use checksums
e7380d7b77c2f89cc2c425db3a1bc83bc665e24fe1bf6289d46a89aa7f673cd8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page