0.6.0 • Published 6 years ago

pb-protocol v0.6.0

Weekly downloads
-
License
ISC
Repository
-
Last release
6 years ago

Powerblue Protocol Serialization

Documentation | Code Coverage

This module provides a simple API for serializing PowerBlue commands to binary. It also handles response parsing for commands which expect a response. It is written in Typescript and can be consumed as a module in either TS/JS.

References

  1. PB Communications API
  2. PB Controller API

Example

import { GoToPositionCommand } from 'pb-protocol';

const cmd = new GoToPositionCommand({
    servo1: 0.5, // values are normalized 0-1
    velocity: 0.9
});
// toData() returns an Uint8 array
console.log(cmd.toData()); // [ 247, 1, 0, 9, 136, 19, 0, 128, 0, 128, 0, 128, 144 ]
// Note that UInt16 and larger are printed in a more readable fashion with toValues() methods
console.log(cmd.toValues()); // [ 247, 1, 0, 9, 5000, 32768, 32768, 32768, 144 ]
console.log(cmd.toHexValues()); // [ 'F7', '01', '00', '09', '1388', '8000', '8000', '8000', '90' ]

Getting Started

pb-protocol can be consumed as an npm dependency in a typescript or javascript project. You will need (and should have) gitlab ssh access to the project repository for this to work.

i.e. in package.json

  "dependencies": {
    "pb-protocol": "git+ssh://git@gitlab.hunterdouglas.com:powerblue/pb-protocol.git#v0.4.2"
  },

For more information on formatting that git url dependency string check out the npm docs

Releasing

  1. Generate JS w/ type maps with npm run build
  2. Bump version with npm version $BUMP where $BUMP = (major|minor|patch)
  3. Tag the repository with this new version git tag $VERSION
  4. git push origin master --tags

Eventually we'll script this.