Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ZigEmbeddedGroup/serial

Serial port configuration library for Zig
https://github.com/ZigEmbeddedGroup/serial

serial serial-port uart zig zig-package ziglang

Last synced: 29 days ago
JSON representation

Serial port configuration library for Zig

Awesome Lists containing this project

README

        

# Zig Serial Port Library

Library for configuring and listing serial ports.

## Features

- Basic serial port configuration
- Baud Rate
- Parity (none, even, odd, mark, space)
- Stop Bits (one, two)
- Handshake (none, hardware, software)
- Byte Size (5, 6, 7, 8)
- Flush serial port send/receive buffers
- List available serial ports
- API: supports Windows, Linux and Mac

## Example

```zig
// Port configuration.
// Serial ports are just files, \\.\COM1 for COM1 on Windows:
var serial = try std.fs.cwd().openFile("\\\\.\\COM1", .{ .mode = .read_write }) ;
defer serial.close();

try zig_serial.configureSerialPort(serial, zig_serial.SerialConfig{
.baud_rate = 19200,
.word_size = 8,
.parity = .none,
.stop_bits = .one,
.handshake = .none,
});
```

## Usage

### Library integration

Integrate the library in your project via the Zig package manager:

- add `serial` to your `.zig.zon` file by providing the URL to the archive of a tag or specific commit of the library
- to update the hash, run `zig fetch --save [URL/to/tag/or/commit.tar.gz]`

### Running tests

The `build.zig` file contains a test step that can be called with `zig build test`. Note that this requires a serial port to be available on the system;

- Linux: `/dev/ttyUSB0`
- Mac: `/dev/cu.usbmodem101`
- Windows: `COM3`

### Building the examples

You can build the examples from the `./examples` directory by calling `zig build examples`. Binaries will be generated in `./zig-out/bin` by default.

- Note that the `list_port_info` example currently only works on Windows