Skip to main content

Access any serial device in your lan

Project description

WSPyserial

A WSPyserial é uma biblioteca para possibilitar a comunicação entre dispostivos seriais via rede utilizando o protocolo websocket.

Sua arquitetura é baseada no modelo cliente/servidor. Onde o Dispotivo serial é o servidor e qualquer cliente que conheca seu endereço e porta pode se comunicar com ele.

Uso/Exemplos

# python -m wspyserial -h
usage: __main__.py [-h] [-c] [-s] [-r] [-p PORT] [-a ADDRESS] [-d DEVICE] [-b BAUDRATE] [-v]

wspyserial - Websocket to Serial Bridge

options:
  -h, --help            show this help message and exit
  -c, --client          Run as a client
  -s, --server          Run as a server
  -r, --raw             Send raw data
  -p PORT, --port PORT  Port to listen on
  -a ADDRESS, --address ADDRESS
                        Address to connect to (default: localhost)
  -d DEVICE, --device DEVICE
                        Serial device to connect to (default: 0)
  -b BAUDRATE, --baudrate BAUDRATE
                        Baudrate to use (default: 115200)

Server - [Cmdlt, Instance and Context Manager]

 # Start a server at 8020 with command line
 python -m wspyerial -s -p 8020
# Server as Instance
from wspyserial.server import Server
import asyncio

async def main():
    await Server("0.0.0.0", 8010, 0, 115200).run()

asyncio.run(main())
# Server as context manager]
from wspyserial.server import Server
import asyncio

async def main():
    async with Server("0.0.0.0", 8010, 0, 115200) as server:
        await asyncio.sleep(10)

asyncio.run(main())

Client - [Cmdlt, Instance and Context Manager]

 # Connect a client on server at 0.0.0.0:8010
 python -m wspyerial -c -a 0.0.0.0 -p 8010 
# Client as Instance
from wspyserial.client import Device as Client
from wspyserial.protocol import package
import asyncio

async def main():
    await client = Client("ws://0.0.0.0:8010")
    await client.connect()
    await client.send(package("M114 R", 2))
    await client.stop()

asyncio.run(main())
# Client as context manager
from wspyserial.client import Device as Client
from wspyserial.protocol import package
import asyncio

async def main():
    async with Client("ws://0.0.0.0:8010") as client:
        PACKAGES = [package("G28 X", -1, 120, "ok"), package("M114 R", 2)]
        for command in PACKAGES:
            await client.send(command)

asyncio.run(main())

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

wspyserial-1.1.0.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

wspyserial-1.1.0-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file wspyserial-1.1.0.tar.gz.

File metadata

  • Download URL: wspyserial-1.1.0.tar.gz
  • Upload date:
  • Size: 10.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.3

File hashes

Hashes for wspyserial-1.1.0.tar.gz
Algorithm Hash digest
SHA256 22d94f9855f5f34723609af2052f2bc56215f3df555e66ba8f4a2302692b0baa
MD5 95822130cb63ac40c4914ee69d912db7
BLAKE2b-256 41bd287e20e24dc0dc96ebe1201d9fbbf85181ec02bff897c6e43a585c13a781

See more details on using hashes here.

File details

Details for the file wspyserial-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: wspyserial-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.3

File hashes

Hashes for wspyserial-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 898b45457e1679a8034335a02649f3d1ae05f122c0c6dfb2a099084d393fc799
MD5 0f1230e3f7a7fa59b2a5592281d83efe
BLAKE2b-256 ae77607528fe3bded26638b2b50acf7f8dff8db01052306d29110469bbe56b83

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page