Skip to main content

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)

Metadata

Release files for watchedserial 1.0.1

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

Source distribution (sdist)

Source distribution for watchedserial 1.0.1
File Size Uploaded
watchedserial-1.0.1.tar.gz 3.4 kB Details

Release files / watchedserial-1.0.1.tar.gz

Download URL watchedserial-1.0.1.tar.gz
Size 3.4 kB
Tags Source
SHA-256 checksum
How to use checksums
5ce5fb9f986c1571aa313d88a6c6ed693525f313ab19aeef180ab083bedf38bd
BLAKE2b-256 checksum
How to use checksums
454d9be97efec8be22b0effdda180afc2348e26cd64f5f622869455edccd2c48
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.0.1 This release

1 release file

1.0.0

1 release file

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