Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 

Status: experimental

Install with pip: pip install crow-serial

On PyPi: https://pypi.org/project/crow-serial/

Crow homepage: http://siedell.com/projects/Crow/


Crow Serial Protocol Implementation

The Crow protocol is designed to allow a PC to control several microcontrollers using a single serial line. The protocol itself has a simple half-duplex, command/response format with basic error checking provided by Fletcher-16 checksums.

In Crow, the top-level software that generates commands is called a client. The client runs on the host, and it passes the command to a host implementation. The host implementation creates a command packet and sends it over the serial line. A device implementation receives the packet and then passes the command to a service running on that device. The service performs the command and may send a response, depending on the circumstances.

A command has the following properties:

  • address: 1-31 for a specific device, or 0 to broadcast to all devices.
  • port: 0-255, where open ports are registered to specific services.
  • response expected: if true, the host will wait for a response; if false, the device must not respond.
  • payload: 0-2047 bytes of binary data.

A response has just one property, the payload, which is also 0-2047 bytes of binary data.


This project contains a host implementation as well as a Crow admin client.

The Crow admin client can be used to send the commands ping, echo, host_presence, get_device_info, get_open_ports, and get_port_info.

About

Host implementation of the Crow serial protocol.

Resources

Releases

No releases published

Packages

No packages published