Skip to main content

Module for handling pySerial Serial objects connecting and disconnecting

Project description

build-status Latest version released on PyPi

Installation

$ pip install watchedserial

Description

WatchedReaderThread is a subclass of pySerial’s serial.threaded.ReaderThread. Similar to ReaderThread, WatchedReaderThread implements a serial port read loop in it’s own thread but instead of killing the thread on a serial disconnection, it calls a callback and waits for the port to become available again before attempting a reconnect. On reconnect it calls a reconnect callback. This should make writing apps that need to deal with unreliable serial connections more seamless and make it easier to write apps that should allow the user to disconnect and reconnect a serial device safely.

Usage

Subclass watchedserial.WatchedReaderThread to implement the handle_reconnect() and handle_disconnect() callbacks. Both of these functions should be non-blocking (similar to an ISR).

import time

import serial
from watchedserial import WatchedReaderThread


PORT = "COM3"

class MyPacket(serial.threaded.FramedPacket):
    def handle_packet(self, packet):
        print(packet)


class MyWatchedReaderThread(WatchedReaderThread):
    def handle_reconnect(self):
        print("Reconnected")

    def handle_disconnect(self, error):
        print("Disconnected")


ser = serial.Serial(PORT, baudrate=115200)
with MyWatchedReaderThread(ser, MyPacket) as protocol:
    while True:
        time.sleep(1)

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

watchedserial-1.0.1.tar.gz (3.4 kB view details)

Uploaded Source

File details

Details for the file watchedserial-1.0.1.tar.gz.

File metadata

File hashes

Hashes for watchedserial-1.0.1.tar.gz
Algorithm Hash digest
SHA256 5ce5fb9f986c1571aa313d88a6c6ed693525f313ab19aeef180ab083bedf38bd
MD5 0c63cd26aeee8fd8e99c8a05b5775dda
BLAKE2b-256 454d9be97efec8be22b0effdda180afc2348e26cd64f5f622869455edccd2c48

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