Socket
Book a DemoInstallSign in
Socket

hedgehog-client

Package Overview
Dependencies
Maintainers
2
Versions
21
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

hedgehog-client

Client library for the Hedgehog Educational Robotics Controller

0.7.0-rc.2
latest
Source
npmnpm
Version published
Weekly downloads
1
-95.45%
Maintainers
2
Weekly downloads
 
Created
Source

HedgehogNodeClient

Build Status Code Coverage Dependency Status

NodeJS client library for the Hedgehog Educational Robotics Controller

Development

Tools

The following tools are used for development of the Hedgehog NodeJS library.

  • Dependency Management: NPM
  • Build Automation: Grunt (installing Grunt CLI globally is advisable)
  • Testing: Mocha (installed via NPM, run via npm test)
  • Coverage: Istanbul/nyc (installed via NPM, run via npm test)
  • Linting: TSLint (installed via NPM, run via grunt tslint)
  • Protobuf Compiler: protoc (can be downloaded here, run via grunt protoc)
  • Code generation: gsl (optional; requires Python 3.6, installed via pip install gsl[antlr,yaml], run via npm run gsl-protocol)

Setup

$ npm install       # Install required NPM modules
$ grunt protoc      # Generate Protobuf Javascript files
$ grunt build       # compile TypeScript sources

Optionally, set up code generation to adapt the TypeScript implementation of the Hedgehog protocol (requires Python 3.6):

$ pip install gsl[antlr,yaml] hedgehog-protocol-spec
$ npm run gsl-protocol

The generated code is tweaked in a few places, so make sure to diff the output against the git version, and re-apply any tweaks.

Running tests

In order to execute all tests, simply execute:

$ npm test

Usage Example

// Create a hedgehog client instance
let hedgehog = new HedgehogClient('tcp://127.0.0.1:10789');
try {
    // Control motors and servos
    // hedgehog.move(port, power)
    await hedgehog.move(0, 100);
    await hedgehog.move(2, 100);
    
    // hedgehog.set_servo(port, enabled, position)
    await hedgehog.setServo(0, true, 1023);
    
    // Read sensor values
    // hedgehog.getAnalog(0) returns a promise which resolves to the sensor value
    // Thus, with async await syntax, we can do:
    const value = await hedgehog.getAnalog(0);
    
    // Same with digital sensors
    const value = await hedgehog.getDigital(8);
} finally {
    hedgehog.close();
}

Coding Styleguide

Code is linted via TSLint. Read the styleguide entry in the hedgehog-ide project's wiki.

Keywords

hedgehog

FAQs

Package last updated on 03 Oct 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.