Skip to content

zastrix/libsbp

 
 

Repository files navigation

Specification and Bindings for Swift Binary Protocol

Build status

The Swift Navigation Binary Protocol (SBP) is a fast, simple, and minimal binary protocol for communicating with Swift devices. It is the native binary protocol used by the Piksi GPS receiver to transmit solutions, observations, status and debugging messages, as well as receive messages from the host operating system, such as differential corrections and the almanac.

This project provides language-agnostic specification and documentation for messages used with SBP, a compiler for generating message bindings, and client libraries in a variety of languages. This repository is organized into the following directory structure:

  • docs: Protocol documentation and message definitions.
  • spec: Machine readable protocol specification in YAML.
  • generator: Simple, template-based generator for different languages.
  • python: Python client and examples.
  • c: C client library and examples.
  • haskell: Haskell client and examples.
  • java: Java client library and examples.
  • javascript: JavaScript client library and examples.

SBP Protocol Specification

SBP consists of two pieces: (i) an over-the-wire message framing format and (ii) structured payload definitions. As of Version 1.0, the packet consists of a 6-byte binary header section, a variable-sized payload field, and a 16-bit CRC value. SBP uses the CCITT CRC16 (XMODEM implementation) for error detection.

Please see the docs for a full description of the packet structure and the message types. Developer documentatation for the language-specific sbp libraries is here.

LICENSE

Copyright © 2015 Swift Navigation

Distributed under LGPLv3.0.

About

Swift Binary Protocol client libraries

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 46.4%
  • Python 25.5%
  • Haskell 11.6%
  • JavaScript 10.4%
  • Java 2.9%
  • TeX 1.3%
  • Other 1.9%