vclib

0.0.20 • Public • Published

VCLIB

What is it?

VCLib is a library to parse buffers of packets from the vc0706 camera. It can also construct the packets to send for all documented commands.

Installation

npm install vclib

Examples

Generating Packets

var vc = require('vclib');
 
var vclib = new vc();
 
vclib.getCommandPacket('frameControl', {controlParam:'stop'}, function(err, packet) {
  console.log("Send this to stop image capture", packet.buffer);
}

Each command packet has an optional arguments object that can be passed in with getCommandPacket:

/*
  Get Firmware Version Request Packet
    No Optional Params
*/
getCommandPacket('version', function(err, packet) {...} ); 
 
/*
  Get Reset Command Packet
    No Optional Params
*/
getCommandPacket('reset') 
 
/*
  Stop or resume frame capture
  controlString can be 'stop' or 'resume'. Default is stop.
*/
getCommandPacket('frameControl', {'command': controlstring},  function(err, packet) {...} );
 
/*
  Get the length of captured buffer
    No Optional Params
*/
getCommandPacket('bufferLength',  function(err, packet) {...} );
 
/*
  Start reading over bytes captured
  delayAmount is a 16-bit number in units of 0.01ms to delay before sending bytes. Default is 100.
    readLength is a 32-bit number of number of bytes to read. Default is 0.
    
*/
getCommandPacket('readFrame', {'delay': delayAmount, 'length':readLength}, function(err, packet) {...} );
 
/*
  Set the baud rate for comms
  rate can be 9600, 19200, 38400, 57600, or 115200. Default is 9600.
    
*/
getCommandPacket('baudrate', {'baudrate':rate}, function(err, packet) {...} );
 
/*
  Set the size of captured images
  reSize can be 'vga' (640x320), 'qvga'(320x240) or 'qqvga' (160x120). Default is 'vga'
    
*/
getCommandPacket('resolution', {'size':resSize}, function(err, packet) {...} );
 
/*
  Set the amount of compression
  ratio can be 0-255. The higher the value, the more compressed the image. Default is 0x35.
    
*/
getCommandPacket('compression', {'ratio':ratio}, function(err, packet) {...} );
 

Parsing Packets

The library can also parse packets. Due to a really poorly made api (several commands have the same command ID...), a command packet must be passed into the parser so it knows what it's looking for. The function can be passed data over several calls (you don't need to have it all at once) and will call the provided callback with the results.

vclib.getCommandPacket('version', function(err, packet) {
  if (err) {
    console.log(err);
  }
  else {
    console.log("Got this ", packet);
    vclib.parseIncoming(packet, new Buffer([0x76, 0x00, 0x11, 0x00, 0x0b, 0x56, 0x43, 0x30, 0x37, 0x30, 0x36, 0x20, 0x31, 0x2e, 0x30, 0x30]),
      function(err, response) {
        if (err) {
          return console.log(err);
        }
        else {
          // prints out 'VC0706 1.00'
          console.log("Our nicely parsed packet",  response.response);
        }
      });
  }
});

Readme

Keywords

none

Package Sidebar

Install

npm i vclib

Weekly Downloads

2

Version

0.0.20

License

MIT

Last publish

Collaborators

  • johnnyman727
  • technicalmachine
  • tesselproject