GithubHelp home page GithubHelp logo

thomaschaaf / node-ftdi Goto Github PK

View Code? Open in Web Editor NEW
45.0 8.0 39.0 651 KB

FTDI bindings for Node.js

License: MIT License

Python 1.32% JavaScript 12.98% C++ 41.88% C 40.40% Shell 2.31% CoffeeScript 1.10%

node-ftdi's Introduction

  eeeee eeeee eeeee eeee       e  eeeee
  8   8 8  88 8   8 8          8  8   "
  8e  8 8   8 8e  8 8eee       8e 8eeee
  88  8 8   8 88  8 88      e  88    88
  88  8 8eee8 88ee8 88ee 88 8ee88 8ee88

  eeee eeeee eeeee e
  8      8   8   8 8
  8eee   8e  8e  8 8e
  88     88  88  8 88
  88     88  88ee8 88

npm

Prerequisites:

Make sure you installed the ftdi driver: ftdi

If you're are using a Linux distribution or Mac OS X you can run the install.sh script file to install the ftdi driver... For Windows the libs are shipped with this module.

Installation

npm install ftdi

This assumes you have everything on your system necessary to compile ANY native module for Node.js. This may not be the case, though, so please ensure the following are true for your system before filing an issue about "Does not install". For all operatings systems, please ensure you have Python 2.x installed AND not 3.0, node-gyp (what we use to compile) requires Python 2.x.

Windows:

Ensure you have Visual Studio 2010 installed. If you have any version OTHER THAN VS 2010, please read this: nodejs/node-gyp#44

Mac OS X:

Ensure that you have at a minimum the xCode Command Line Tools installed appropriate for your system configuration. If you recently upgrade OS, it probably removed your installation of Command Line Tools, please verify before submitting a ticket.

Verify that it is installed by running xcode-select --install

Linux:

You know what you need for you system, basically your appropriate analog of build-essential. Keep rocking!

If you the vendorId and productId are both zero you have to unload the driver before using your node app like this:

rmmod ftdi_sio
rmmod usbserial

Usage

Listing or finding devices

var ftdi = require('ftdi');

ftdi.find(0x27f4, 0x0203, function(err, devices) {}); // returns all ftdi devices with
                                                      // matching vendor and product id

Create an FtdiDevice

var ftdi = require('ftdi');

var device = new ftdi.FtdiDevice({
  locationId: 0,
  serialNumber: 0
});

// or
var device = new ftdi.FtdiDevice(0);  // index in list function

All together

var ftdi = require('ftdi');

ftdi.find(0x27f4, 0x0203, function(err, devices) {
  var device = new ftdi.FtdiDevice(devices[0]);

  device.on('error', function(err) {
  });

  device.open({
    baudrate: 115200,
    databits: 8,
    stopbits: 1,
    parity: 'none',
    flowcontrol: 'none', // can be 'none', 'rts_cts', 'dtr_dsr', 'xon_xoff'
    // bitmode: 'cbus', // for bit bang
    // bitmask: 0xff    // for bit bang
  },
  function(err) {

    device.on('data', function(data) {

    });

    device.write([0x01, 0x02, 0x03, 0x04, 0x05], function(err) {

    });

  });

});

Bit Bang infos

bitmask: Is always a number (one byte).

bitmode: Can be directly a number (one byte) like 0x20 or a string like 'cbus'.

mapping:

var bitmodes = {
  'reset' : 0x00,
  'async' : 0x01,
  'mpsse' : 0x02,
  'sync'  : 0x04,
  'mcu'   : 0x0B,
  'fast'  : 0x10,
  'cbus'  : 0x20,
  'single': 0x40
};

/**
 * 0x00 = Reset
 * 0x01 = Asynchronous Bit Bang
 * 0x02 = MPSSE (FT2232, FT2232H, FT4232H and FT232H devices only)
 * 0x04 = Synchronous Bit Bang (FT232R, FT245R, FT2232, FT2232H, FT4232H and FT232H devices only)
 * 0x08 = MCU Host Bus Emulation Mode (FT2232, FT2232H, FT4232H and FT232H devices only)
 * 0x10 = Fast Opto-Isolated Serial Mode (FT2232, FT2232H, FT4232H and FT232H devices only)
 * 0x20 = CBUS Bit Bang Mode (FT232R and FT232H devices only)
 * 0x40 = Single Channel Synchronous 245 FIFO Mode (FT2232H and FT232H devices only)
 */

Troubleshoot

Windows

Mac OS X

Error message: Can't open ftdi device: FT_DEVICE_NOT_OPENED

Try to unload the Apple FTDI Driver by running the following command:

sudo kextunload -b com.apple.driver.AppleUSBFTDI

Linux

Release Notes

v1.2.2

  • Fix wrong time.h header

v1.2.0

  • Add support for node v4, v5

v1.1.0

  • added bit bang support

v1.0.3

  • revert "ready for node >= 0.11.4"

v1.0.2

  • fix allocation/deallocation mismatch

v1.0.1

  • ready for node >= 0.11.4

v1.0.0

  • first release

License

Copyright (c) 2014 Kaba AG

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

node-ftdi's People

Contributors

adrai avatar bdrr77 avatar cyraxx avatar fwanner avatar genda009 avatar mifi avatar mjas1 avatar mmckegg avatar mscdex avatar sebastianhoitz avatar sim-san avatar thiago-sylvain avatar thomaschaaf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

node-ftdi's Issues

gyp ERR! stack Error: `make` failed with exit code: 2

[simon@sandon] [/home/simon] $ sudo npm install ftdi
npm http GET https://registry.npmjs.org/ftdi
npm http 304 https://registry.npmjs.org/ftdi

[email protected] preinstall /home/simon/node_modules/ftdi
node-gyp rebuild

gyp WARN EACCES user "root" does not have permission to access the dev dir "/root/.node-gyp/0.10.28"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/home/simon/node_modules/ftdi/.node-gyp"
gyp http GET http://nodejs.org/dist/v0.10.28/node-v0.10.28.tar.gz
gyp http 200 http://nodejs.org/dist/v0.10.28/node-v0.10.28.tar.gz
gyp http GET http://nodejs.org/dist/v0.10.28/SHASUMS.txt
gyp http GET http://nodejs.org/dist/v0.10.28/SHASUMS.txt
gyp http 200 http://nodejs.org/dist/v0.10.28/SHASUMS.txt
gyp http 200 http://nodejs.org/dist/v0.10.28/SHASUMS.txt
make: Entering directory '/home/simon/node_modules/ftdi/build'
CXX(target) Release/obj.target/ftdi/src/ftdi_device.o
In file included from ../src/ftdi_device.cc:11:0:
../src/ftdi_device.h:6:20: fatal error: ftd2xx.h: No such file or directory
#include <ftd2xx.h>
^
compilation terminated.
ftdi.target.mk:87: recipe for target 'Release/obj.target/ftdi/src/ftdi_device.o' failed
make: *** [Release/obj.target/ftdi/src/ftdi_device.o] Error 1
make: Leaving directory '/home/simon/node_modules/ftdi/build'
gyp ERR! build error
gyp ERR! stack Error: make failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23)
gyp ERR! stack at ChildProcess.EventEmitter.emit (events.js:98:17)
gyp ERR! stack at Process.ChildProcess._handle.onexit (child_process.js:807:12)
gyp ERR! System Linux 3.14.4-1-ARCH
gyp ERR! command "node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/simon/node_modules/ftdi
gyp ERR! node -v v0.10.28
gyp ERR! node-gyp -v v0.13.0
gyp ERR! not ok
npm ERR! [email protected] preinstall: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] preinstall script.
npm ERR! This is most likely a problem with the ftdi package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-gyp rebuild
npm ERR! You can get their info via:
npm ERR! npm owner ls ftdi
npm ERR! There is likely additional logging output above.

npm ERR! System Linux 3.14.4-1-ARCH
npm ERR! command "/usr/bin/node" "/usr/bin/npm" "install" "ftdi"
npm ERR! cwd /home/simon
npm ERR! node -v v0.10.28
npm ERR! npm -v 1.4.9
npm ERR! code ELIFECYCLE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /home/simon/npm-debug.log
npm ERR! not ok code 0

Set MSB

Is there a way to set MSB in this library or is that handled through the driver?

I think I may be missing something here

Failed installing lib on Raspberry PI 3

Also tried to install the library on a Raspberry PI 3, with no success. Not sure what build and so-ever. Just a default shipped PI.

python --version
Python 2.7.13

Got node V8:

$ node -v
v8.11.1

NPM?

$ npm -v
6.13.4

Used install.sh script to get everything in place (did already run this once):

$ sudo ./install.sh 
Detected OS:
linux (32bit)
Download FTDI Library
--2020-02-21 15:06:58--  http://www.ftdichip.com/Drivers/D2XX/Linux/libftd2xx1.1.12.tar.gz
Resolving www.ftdichip.com (www.ftdichip.com)... 217.160.0.65
Connecting to www.ftdichip.com (www.ftdichip.com)|217.160.0.65|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://www.ftdichip.com/Drivers/D2XX/Linux/libftd2xx1.1.12.tar.gz [following]
--2020-02-21 15:06:58--  https://www.ftdichip.com/Drivers/D2XX/Linux/libftd2xx1.1.12.tar.gz
Connecting to www.ftdichip.com (www.ftdichip.com)|217.160.0.65|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 950540 (928K) [application/gzip]
Saving to: 'libftd2xx1.1.12.tar.gz'

libftd2xx1.1.12.tar.gz                          100%[=====================================================================================================>] 928.26K  --.-KB/s    in 0.1s    

2020-02-21 15:06:59 (7.81 MB/s) - 'libftd2xx1.1.12.tar.gz' saved [950540/950540]

extract lib
'tmp/release/build/i386/libftd2xx.a' -> '/usr/local/lib/libftd2xx.a'
'tmp/release/build/i386/libftd2xx.so.1.1.12' -> '/usr/local/lib/libftd2xx.so.1.1.12'
mkdir: cannot create directory '/usr/local/include/libftd2xx': File exists
'tmp/release/ftd2xx.h' -> '/usr/local/include/libftd2xx/ftd2xx.h'
'tmp/release/WinTypes.h' -> '/usr/local/include/libftd2xx/WinTypes.h'
'/usr/local/lib/libftd2xx.so' -> '/usr/local/lib/libftd2xx.so.1.1.12'

Then tried to run npm install:

$ npm install

> [email protected] install /home/pi/web/node_modules/ftdi
> node-gyp rebuild

make: Entering directory '/home/pi/web/node_modules/ftdi/build'
  CXX(target) Release/obj.target/ftdi/src/ftdi_device.o
../src/ftdi_device.cc: In member function 'virtual void ReadWorker::HandleOKCallback()':
../src/ftdi_device.cc:190:85: warning: 'v8::Local<v8::Object> v8::Function::NewInstance(int, v8::Local<v8::Value>*) const' is deprecated: Use maybe version [-Wdeprecated-declarations]
       Local<Object> actualBuffer = bufferConstructor->NewInstance(3, constructorArgs);
                                                                                     ^
In file included from /home/pi/.cache/node-gyp/8.11.1/include/node/v8.h:26:0,
                 from /home/pi/.cache/node-gyp/8.11.1/include/node/node.h:63,
                 from /home/pi/.cache/node-gyp/8.11.1/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/pi/.cache/node-gyp/8.11.1/include/node/v8.h:3847:31: note: declared here
                 Local<Object> NewInstance(int argc, Local<Value> argv[]) const);
                               ^
/home/pi/.cache/node-gyp/8.11.1/include/node/v8config.h:318:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/ftdi_device.cc:202:29: warning: 'v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const' is deprecated [-Wdeprecated-declarations]
       callback->Call(2, argv);
                             ^
In file included from ../src/ftdi_device.h:9:0,
                 from ../src/ftdi_device.cc:11:
../../nan/nan.h:1674:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/ftdi_device.cc: In member function 'virtual void OpenWorker::HandleOKCallback()':
../src/ftdi_device.cc:341:29: warning: 'v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const' is deprecated [-Wdeprecated-declarations]
       callback->Call(1, argv);
                             ^
In file included from ../src/ftdi_device.h:9:0,
                 from ../src/ftdi_device.cc:11:
../../nan/nan.h:1674:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/ftdi_device.cc: In static member function 'static Nan::NAN_METHOD_RETURN_TYPE ftdi_device::FtdiDevice::Open(Nan::NAN_METHOD_ARGS_TYPE)':
../src/ftdi_device.cc:395:27: warning: 'v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const' is deprecated [-Wdeprecated-declarations]
     callback->Call(1, argv);
                           ^
In file included from ../src/ftdi_device.h:9:0,
                 from ../src/ftdi_device.cc:11:
../../nan/nan.h:1674:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/ftdi_device.cc: In member function 'virtual void WriteWorker::HandleOKCallback()':
../src/ftdi_device.cc:549:29: warning: 'v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const' is deprecated [-Wdeprecated-declarations]
       callback->Call(1, argv);
                             ^
In file included from ../src/ftdi_device.h:9:0,
                 from ../src/ftdi_device.cc:11:
../../nan/nan.h:1674:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/ftdi_device.cc: In member function 'virtual void CloseWorker::HandleOKCallback()':
../src/ftdi_device.cc:648:29: warning: 'v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const' is deprecated [-Wdeprecated-declarations]
       callback->Call(1, argv);
                             ^
In file included from ../src/ftdi_device.h:9:0,
                 from ../src/ftdi_device.cc:11:
../../nan/nan.h:1674:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/ftdi_device.cc: In static member function 'static Nan::NAN_METHOD_RETURN_TYPE ftdi_device::FtdiDevice::Close(Nan::NAN_METHOD_ARGS_TYPE)':
../src/ftdi_device.cc:678:29: warning: 'v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const' is deprecated [-Wdeprecated-declarations]
       callback->Call(1, argv);
                             ^
In file included from ../src/ftdi_device.h:9:0,
                 from ../src/ftdi_device.cc:11:
../../nan/nan.h:1674:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/ftdi_device.cc: In member function 'void ftdi_device::FtdiDevice::ExtractDeviceSettings(v8::Local<v8::Object>)':
../src/ftdi_device.cc:770:61: warning: 'v8::Local<v8::Int32> v8::Value::ToInt32() const' is deprecated: Use maybe version [-Wdeprecated-declarations]
     deviceParams.baudRate = options->Get(baudrate)->ToInt32()->Int32Value();
                                                             ^
In file included from /home/pi/.cache/node-gyp/8.11.1/include/node/node.h:63:0,
                 from /home/pi/.cache/node-gyp/8.11.1/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/pi/.cache/node-gyp/8.11.1/include/node/v8.h:9796:14: note: declared here
 Local<Int32> Value::ToInt32() const {
              ^~~~~
../src/ftdi_device.cc:774:77: warning: 'v8::Local<v8::Int32> v8::Value::ToInt32() const' is deprecated: Use maybe version [-Wdeprecated-declarations]
     deviceParams.wordLength = GetWordLength(options->Get(databits)->ToInt32()->Int32Value());
                                                                             ^
In file included from /home/pi/.cache/node-gyp/8.11.1/include/node/node.h:63:0,
                 from /home/pi/.cache/node-gyp/8.11.1/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/pi/.cache/node-gyp/8.11.1/include/node/v8.h:9796:14: note: declared here
 Local<Int32> Value::ToInt32() const {
              ^~~~~
../src/ftdi_device.cc:778:73: warning: 'v8::Local<v8::Int32> v8::Value::ToInt32() const' is deprecated: Use maybe version [-Wdeprecated-declarations]
     deviceParams.stopBits = GetStopBits(options->Get(stopbits)->ToInt32()->Int32Value());
                                                                         ^
In file included from /home/pi/.cache/node-gyp/8.11.1/include/node/node.h:63:0,
                 from /home/pi/.cache/node-gyp/8.11.1/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/pi/.cache/node-gyp/8.11.1/include/node/v8.h:9796:14: note: declared here
 Local<Int32> Value::ToInt32() const {
              ^~~~~
../src/ftdi_device.cc:793:61: warning: 'v8::Local<v8::Int32> v8::Value::ToInt32() const' is deprecated: Use maybe version [-Wdeprecated-declarations]
       deviceParams.bitMode = options->Get(bitmode)->ToInt32()->Int32Value();
                                                             ^
In file included from /home/pi/.cache/node-gyp/8.11.1/include/node/node.h:63:0,
                 from /home/pi/.cache/node-gyp/8.11.1/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/pi/.cache/node-gyp/8.11.1/include/node/v8.h:9796:14: note: declared here
 Local<Int32> Value::ToInt32() const {
              ^~~~~
../src/ftdi_device.cc:801:61: warning: 'v8::Local<v8::Int32> v8::Value::ToInt32() const' is deprecated: Use maybe version [-Wdeprecated-declarations]
       deviceParams.bitMask = options->Get(bitmask)->ToInt32()->Int32Value();
                                                             ^
In file included from /home/pi/.cache/node-gyp/8.11.1/include/node/node.h:63:0,
                 from /home/pi/.cache/node-gyp/8.11.1/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/pi/.cache/node-gyp/8.11.1/include/node/v8.h:9796:14: note: declared here
 Local<Int32> Value::ToInt32() const {
              ^~~~~
  CXX(target) Release/obj.target/ftdi/src/ftdi_driver.o
../src/ftdi_driver.cc: In member function 'virtual void FindAllWorker::HandleOKCallback()':
../src/ftdi_driver.cc:187:27: warning: 'v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const' is deprecated [-Wdeprecated-declarations]
     callback->Call(2, argv);
                           ^
In file included from ../src/ftdi_driver.h:8:0,
                 from ../src/ftdi_driver.cc:6:
../../nan/nan.h:1674:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
  SOLINK_MODULE(target) Release/obj.target/ftdi.node
//usr/local/lib/libftd2xx.so: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status
ftdi.target.mk:135: recipe for target 'Release/obj.target/ftdi.node' failed
make: *** [Release/obj.target/ftdi.node] Error 1
make: Leaving directory '/home/pi/web/node_modules/ftdi/build'

Not sure what goes wrong here. Seems soort of the same thing as my previous #36 ticket.

failed building on Mac OS 10.15.3

Got python 2.7:

% python --version
Python 2.7.17

Installed the drivers:

 %  ls -lha /usr/local/lib | grep libftd2xx
-rwxr-xr-x@   1 root  admin   515K Feb 21 12:10 libftd2xx.1.2.2.dylib
lrwxr-xr-x    1 Hugo  admin    36B Feb 21 14:18 libftd2xx.dylib -> /usr/local/lib/libftd2xx.1.2.2.dylib

% ls -lha /usr/local/include | grep ftd2xx.h
-rw-r--r--@   1 root  admin    27K Feb 21 12:11 ftd2xx.h

Got Xcode things:

% xcode-select -v
xcode-select version 2373.

Then try running npm install:

% npm install

> [email protected] install /Users/Hugo/PhpstormProjects/node-ftdi
> node-gyp rebuild

  CXX(target) Release/obj.target/ftdi/src/ftdi_device.o
In file included from ../src/ftdi_device.cc:11:
../src/ftdi_device.h:74:28: error: no template named 'Handle'
    static void Initialize(Handle<Object> target);
                           ^
In file included from ../src/ftdi_device.cc:12:
../src/ftdi_driver.h:14:6: error: variable has incomplete type 'void'
void InitializeList(Handle<Object> target);
     ^
../src/ftdi_driver.h:14:21: error: use of undeclared identifier 'Handle'
void InitializeList(Handle<Object> target);
                    ^
../src/ftdi_driver.h:14:28: error: 'Object' does not refer to a value
void InitializeList(Handle<Object> target);
                           ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:3496:17: note: declared here
class V8_EXPORT Object : public Value {
                ^
In file included from ../src/ftdi_device.cc:12:
../src/ftdi_driver.h:14:36: error: use of undeclared identifier 'target'
void InitializeList(Handle<Object> target);
                                   ^
../src/ftdi_device.cc:92:34: error: no matching member function for call to 'ToObject'
    Local<Object> obj = info[0]->ToObject();
                        ~~~~~~~~~^~~~~~~~
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:2672:44: note: candidate function not viable: requires single argument 'context', but no arguments were provided
  V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
                                           ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:2686:31: note: candidate function not viable: requires single argument 'isolate', but no arguments were provided
                Local<Object> ToObject(Isolate* isolate) const);
                              ^
../src/ftdi_device.cc:102:13: error: no matching member function for call to 'Has'
    if(obj->Has(locationId) && obj->Get(locationId)->Int32Value() != 0)
       ~~~~~^~~
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:3590:37: note: candidate function not viable: requires 2 arguments, but 1 was provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
                                    ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:3596:37: note: candidate function not viable: requires 2 arguments, but 1 was provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
                                    ^
../src/ftdi_device.cc:102:37: warning: 'Get' is deprecated: Use maybe version [-Wdeprecated-declarations]
    if(obj->Has(locationId) && obj->Get(locationId)->Int32Value() != 0)
                                    ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:3553:3: note: 'Get' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
  ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8config.h:328:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
../src/ftdi_device.cc:102:65: error: too few arguments to function call, single argument 'context' was not specified
    if(obj->Has(locationId) && obj->Get(locationId)->Int32Value() != 0)
                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:2709:3: note: 'Int32Value' declared here
  V8_WARN_UNUSED_RESULT Maybe<int32_t> Int32Value(Local<Context> context) const;
  ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8config.h:368:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
#define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
                              ^
../src/ftdi_device.cc:104:46: warning: 'Get' is deprecated: Use maybe version [-Wdeprecated-declarations]
      object->connectParams.connectId = obj->Get(locationId)->Int32Value();
                                             ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:3553:3: note: 'Get' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
  ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8config.h:328:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
../src/ftdi_device.cc:104:74: error: too few arguments to function call, single argument 'context' was not specified
      object->connectParams.connectId = obj->Get(locationId)->Int32Value();
                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:2709:3: note: 'Int32Value' declared here
  V8_WARN_UNUSED_RESULT Maybe<int32_t> Int32Value(Local<Context> context) const;
  ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8config.h:368:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
#define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
                              ^
../src/ftdi_device.cc:107:18: error: no matching member function for call to 'Has'
    else if(obj->Has(serial) && obj->Get(serial)->ToString()->Length() > 0)
            ~~~~~^~~
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:3590:37: note: candidate function not viable: requires 2 arguments, but 1 was provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
                                    ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:3596:37: note: candidate function not viable: requires 2 arguments, but 1 was provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
                                    ^
../src/ftdi_device.cc:107:38: warning: 'Get' is deprecated: Use maybe version [-Wdeprecated-declarations]
    else if(obj->Has(serial) && obj->Get(serial)->ToString()->Length() > 0)
                                     ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:3553:3: note: 'Get' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
  ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8config.h:328:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
../src/ftdi_device.cc:107:51: error: no matching member function for call to 'ToString'
    else if(obj->Has(serial) && obj->Get(serial)->ToString()->Length() > 0)
                                ~~~~~~~~~~~~~~~~~~^~~~~~~~
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:2668:44: note: candidate function not viable: requires single argument 'context', but no arguments were provided
  V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(
                                           ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:2684:31: note: candidate function not viable: requires single argument 'isolate', but no arguments were provided
                Local<String> ToString(Isolate* isolate) const);
                              ^
../src/ftdi_device.cc:109:22: warning: 'Get' is deprecated: Use maybe version [-Wdeprecated-declarations]
      ToCString(obj->Get(serial)->ToString(), &object->connectParams.connectString);
                     ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:3553:3: note: 'Get' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
  ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8config.h:328:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
../src/ftdi_device.cc:109:35: error: no matching member function for call to 'ToString'
      ToCString(obj->Get(serial)->ToString(), &object->connectParams.connectString);
                ~~~~~~~~~~~~~~~~~~^~~~~~~~
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:2668:44: note: candidate function not viable: requires single argument 'context', but no arguments were provided
  V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(
                                           ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:2684:31: note: candidate function not viable: requires single argument 'isolate', but no arguments were provided
                Local<String> ToString(Isolate* isolate) const);
                              ^
../src/ftdi_device.cc:112:18: error: no matching member function for call to 'Has'
    else if(obj->Has(description) && obj->Get(description)->ToString()->Length() > 0)
            ~~~~~^~~
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:3590:37: note: candidate function not viable: requires 2 arguments, but 1 was provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
                                    ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:3596:37: note: candidate function not viable: requires 2 arguments, but 1 was provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
                                    ^
../src/ftdi_device.cc:112:43: warning: 'Get' is deprecated: Use maybe version [-Wdeprecated-declarations]
    else if(obj->Has(description) && obj->Get(description)->ToString()->Length() > 0)
                                          ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:3553:3: note: 'Get' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
  ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8config.h:328:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
../src/ftdi_device.cc:112:61: error: no matching member function for call to 'ToString'
    else if(obj->Has(description) && obj->Get(description)->ToString()->Length() > 0)
                                     ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:2668:44: note: candidate function not viable: requires single argument 'context', but no arguments were provided
  V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(
                                           ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:2684:31: note: candidate function not viable: requires single argument 'isolate', but no arguments were provided
                Local<String> ToString(Isolate* isolate) const);
                              ^
../src/ftdi_device.cc:114:22: warning: 'Get' is deprecated: Use maybe version [-Wdeprecated-declarations]
      ToCString(obj->Get(description)->ToString(), &object->connectParams.connectString);
                     ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:3553:3: note: 'Get' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
  ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8config.h:328:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
../src/ftdi_device.cc:114:40: error: no matching member function for call to 'ToString'
      ToCString(obj->Get(description)->ToString(), &object->connectParams.connectString);
                ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:2668:44: note: candidate function not viable: requires single argument 'context', but no arguments were provided
  V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(
                                           ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:2684:31: note: candidate function not viable: requires single argument 'isolate', but no arguments were provided
                Local<String> ToString(Isolate* isolate) const);
                              ^
../src/ftdi_device.cc:117:18: error: no matching member function for call to 'Has'
    else if(obj->Has(index))
            ~~~~~^~~
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:3590:37: note: candidate function not viable: requires 2 arguments, but 1 was provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
                                    ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:3596:37: note: candidate function not viable: requires 2 arguments, but 1 was provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
                                    ^
../src/ftdi_device.cc:119:46: warning: 'Get' is deprecated: Use maybe version [-Wdeprecated-declarations]
      object->connectParams.connectId = obj->Get(index)->Int32Value();
                                             ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:3553:3: note: 'Get' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
  ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8config.h:328:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
../src/ftdi_device.cc:119:69: error: too few arguments to function call, single argument 'context' was not specified
      object->connectParams.connectId = obj->Get(index)->Int32Value();
                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:2709:3: note: 'Int32Value' declared here
  V8_WARN_UNUSED_RESULT Maybe<int32_t> Int32Value(Local<Context> context) const;
  ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8config.h:368:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
#define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
                              ^
../src/ftdi_device.cc:123:13: error: no matching member function for call to 'Has'
    if(obj->Has(vid))
       ~~~~~^~~
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:3590:37: note: candidate function not viable: requires 2 arguments, but 1 was provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
                                    ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:3596:37: note: candidate function not viable: requires 2 arguments, but 1 was provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
                                    ^
../src/ftdi_device.cc:125:40: warning: 'Get' is deprecated: Use maybe version [-Wdeprecated-declarations]
      object->connectParams.vid = obj->Get(vid)->Int32Value();
                                       ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:3553:3: note: 'Get' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
  ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8config.h:328:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
../src/ftdi_device.cc:125:61: error: too few arguments to function call, single argument 'context' was not specified
      object->connectParams.vid = obj->Get(vid)->Int32Value();
                                  ~~~~~~~~~~~~~~~~~~~~~~~~~ ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8.h:2709:3: note: 'Int32Value' declared here
  V8_WARN_UNUSED_RESULT Maybe<int32_t> Int32Value(Local<Context> context) const;
  ^
/Users/Hugo/Library/Caches/node-gyp/12.16.0/include/node/v8config.h:368:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
#define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
                              ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
8 warnings and 20 errors generated.
make: *** [Release/obj.target/ftdi/src/ftdi_device.o] Error 1

Cannot build on Windows 10

Hello,
i tried to follow the instructions and install it on windows 10 pc using windows-build-tools vs2017 and get the following error.

..\src\ftdi_device.cc(783): error C2661: "v8::Value::ToInt32": Keine überladene Funktion akzeptiert 0 Argumente [D:\pkr
awal\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(783): error C2227: Links von "->Int32Value" muss sich ein Zeiger auf Klassen-/Struktur-/Union-/ge
nerischen Typ befinden. [D:\pkrawal\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(787): error C2661: "v8::Value::ToInt32": Keine überladene Funktion akzeptiert 0 Argumente [D:\pkr
awal\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(787): error C2227: Links von "->Int32Value" muss sich ein Zeiger auf Klassen-/Struktur-/Union-/ge
nerischen Typ befinden. [D:\pkrawal\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(791): error C2661: "v8::Value::ToInt32": Keine überladene Funktion akzeptiert 0 Argumente [D:\pkr
awal\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(791): error C2227: Links von "->Int32Value" muss sich ein Zeiger auf Klassen-/Struktur-/Union-/ge
nerischen Typ befinden. [D:\pkrawal\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(814): error C2661: "v8::Value::ToInt32": Keine überladene Funktion akzeptiert 0 Argumente [D:\pkr
awal\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(814): error C2227: Links von "->Int32Value" muss sich ein Zeiger auf Klassen-/Struktur-/Union-/ge
nerischen Typ befinden. [D:\pkrawal\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(822): error C2661: "v8::Value::ToInt32": Keine überladene Funktion akzeptiert 0 Argumente [D:\pkr
awal\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(822): error C2227: Links von "->Int32Value" muss sich ein Zeiger auf Klassen-/Struktur-/Union-/ge
nerischen Typ befinden. [D:\pkrawal\node_modules\ftdi\build\ftdi.vcxproj]
gyp ERR! build error
gyp ERR! stack Error: `C:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\build.js:262:23)
gyp ERR! stack     at ChildProcess.emit (events.js:198:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)
gyp ERR! System Windows_NT 10.0.15063
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd D:\pkrawal\node_modules\ftdi
gyp ERR! node -v v10.16.3
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
npm WARN enoent ENOENT: no such file or directory, open 'D:\pkrawal\package.json'
npm WARN pkrawal No description
npm WARN pkrawal No repository field.
npm WARN pkrawal No README data
npm WARN pkrawal No license field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\fs-ext):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] install: `node-gyp configure build`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\snappy):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] install: `node-gyp rebuild`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\leveldown):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] install: `prebuild --install`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 2
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\zmq):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] install: `node-gyp rebuild`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     D:\pkrawal\AppData\Roaming\npm-cache\_logs\2020-04-29T12_18_24_145Z-debug.log

Where is the problem ?

failed to build using v8.9.4 on Windows 10

[email protected] install C:\temp\node_modules\ftdi
node-gyp rebuild

C:\temp\node_modules\ftdi>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\....\node_modules\node-gyp\bin\node-gyp.js" rebuild ) else (node "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild )
Die Projekte in dieser Projektmappe werden nacheinander erstellt. Um eine parallele Erstellung zu erm�glichen, m�ssen Sie den Schalter "/m" hinzuf�gen.
ftdi_device.cc
ftdi_driver.cc
win_delay_load_hook.cc
C:\temp\node_modules\ftdi\lib\ftd2xx.h(59): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(59): error C2146: syntax error: missing ';' before identifier 'FT_HANDLE' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(60): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(60): error C2146: syntax error: missing ';' before identifier 'FT_STATUS' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(172): error C2065: 'DWORD': undeclared identifier (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(172): error C2513: 'void *': no variable declared before '=' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(293): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(293): error C2370: 'FT_STATUS': redefinition; different storage class (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(60): note: see declaration of 'FT_STATUS' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(293): error C2146: syntax error: missing ';' before identifier 'WINAPI' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(293): error C2146: syntax error: missing ';' before identifier 'FT_Open' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(299): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(299): error C2370: 'FT_STATUS': redefinition; different storage class (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(60): note: see declaration of 'FT_STATUS' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(299): error C2146: syntax error: missing ';' before identifier 'WINAPI' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(299): error C2086: 'int WINAPI': redefinition (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(293): note: see declaration of 'WINAPI' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(299): error C2146: syntax error: missing ';' before identifier 'FT_OpenEx' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(306): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(306): error C2370: 'FT_STATUS': redefinition; different storage class (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(60): note: see declaration of 'FT_STATUS' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(306): error C2146: syntax error: missing ';' before identifier 'WINAPI' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(306): error C2086: 'int WINAPI': redefinition (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(293): note: see declaration of 'WINAPI' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(306): error C2146: syntax error: missing ';' before identifier 'FT_ListDevices' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(313): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(313): error C2370: 'FT_STATUS': redefinition; different storage class (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(60): note: see declaration of 'FT_STATUS' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(313): error C2146: syntax error: missing ';' before identifier 'WINAPI' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(313): error C2086: 'int WINAPI': redefinition (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(293): note: see declaration of 'WINAPI' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(313): error C2146: syntax error: missing ';' before identifier 'FT_Close' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(318): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(318): error C2370: 'FT_STATUS': redefinition; different storage class (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(60): note: see declaration of 'FT_STATUS' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(318): error C2146: syntax error: missing ';' before identifier 'WINAPI' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(318): error C2086: 'int WINAPI': redefinition (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(293): note: see declaration of 'WINAPI' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(318): error C2146: syntax error: missing ';' before identifier 'FT_Read' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(326): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(326): error C2370: 'FT_STATUS': redefinition; different storage class (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(60): note: see declaration of 'FT_STATUS' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(326): error C2146: syntax error: missing ';' before identifier 'WINAPI' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(326): error C2086: 'int WINAPI': redefinition (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(293): note: see declaration of 'WINAPI' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(326): error C2146: syntax error: missing ';' before identifier 'FT_Write' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(334): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(334): error C2370: 'FT_STATUS': redefinition; different storage class (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(60): note: see declaration of 'FT_STATUS' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(334): error C2146: syntax error: missing ';' before identifier 'WINAPI' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(334): error C2086: 'int WINAPI': redefinition (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(293): note: see declaration of 'WINAPI' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(334): error C2146: syntax error: missing ';' before identifier 'FT_IoCtl' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(346): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(346): error C2370: 'FT_STATUS': redefinition; different storage class (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(60): note: see declaration of 'FT_STATUS' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(346): error C2146: syntax error: missing ';' before identifier 'WINAPI' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(346): error C2086: 'int WINAPI': redefinition (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(293): note: see declaration of 'WINAPI' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(346): error C2146: syntax error: missing ';' before identifier 'FT_SetBaudRate' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(352): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(352): error C2370: 'FT_STATUS': redefinition; different storage class (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(60): note: see declaration of 'FT_STATUS' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(352): error C2146: syntax error: missing ';' before identifier 'WINAPI' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(352): error C2086: 'int WINAPI': redefinition (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(293): note: see declaration of 'WINAPI' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(352): error C2146: syntax error: missing ';' before identifier 'FT_SetDivisor' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(358): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(358): error C2370: 'FT_STATUS': redefinition; different storage class (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(60): note: see declaration of 'FT_STATUS' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(358): error C2146: syntax error: missing ';' before identifier 'WINAPI' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(358): error C2086: 'int WINAPI': redefinition (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(293): note: see declaration of 'WINAPI' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(358): error C2146: syntax error: missing ';' before identifier 'FT_SetDataCharacteristics' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(366): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(366): error C2370: 'FT_STATUS': redefinition; different storage class (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(60): note: see declaration of 'FT_STATUS' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(366): error C2146: syntax error: missing ';' before identifier 'WINAPI' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(366): error C2086: 'int WINAPI': redefinition (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(293): note: see declaration of 'WINAPI' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(366): error C2146: syntax error: missing ';' before identifier 'FT_SetFlowControl' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(374): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(374): error C2370: 'FT_STATUS': redefinition; different storage class (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(60): note: see declaration of 'FT_STATUS' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(374): error C2146: syntax error: missing ';' before identifier 'WINAPI' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(374): error C2086: 'int WINAPI': redefinition (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(293): note: see declaration of 'WINAPI' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(374): error C2146: syntax error: missing ';' before identifier 'FT_ResetDevice' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(379): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(379): error C2370: 'FT_STATUS': redefinition; different storage class (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(60): note: see declaration of 'FT_STATUS' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(379): error C2146: syntax error: missing ';' before identifier 'WINAPI' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(379): error C2086: 'int WINAPI': redefinition (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(293): note: see declaration of 'WINAPI' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(379): error C2146: syntax error: missing ';' before identifier 'FT_SetDtr' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(384): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(384): error C2370: 'FT_STATUS': redefinition; different storage class (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(60): note: see declaration of 'FT_STATUS' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(384): error C2146: syntax error: missing ';' before identifier 'WINAPI' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(384): error C2086: 'int WINAPI': redefinition (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(293): note: see declaration of 'WINAPI' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(384): error C2146: syntax error: missing ';' before identifier 'FT_ClrDtr' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(389): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(389): error C2370: 'FT_STATUS': redefinition; different storage class (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(60): note: see declaration of 'FT_STATUS' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(389): error C2146: syntax error: missing ';' before identifier 'WINAPI' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(389): error C2086: 'int WINAPI': redefinition (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(293): note: see declaration of 'WINAPI' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(389): error C2146: syntax error: missing ';' before identifier 'FT_SetRts' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(394): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(394): error C2370: 'FT_STATUS': redefinition; different storage class (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(60): note: see declaration of 'FT_STATUS' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(394): error C2146: syntax error: missing ';' before identifier 'WINAPI' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(394): error C2086: 'int WINAPI': redefinition (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(293): note: see declaration of 'WINAPI' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(394): error C2146: syntax error: missing ';' before identifier 'FT_ClrRts' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(399): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(399): error C2370: 'FT_STATUS': redefinition; different storage class (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(60): note: see declaration of 'FT_STATUS' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(399): error C2146: syntax error: missing ';' before identifier 'WINAPI' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(399): error C2086: 'int WINAPI': redefinition (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(293): note: see declaration of 'WINAPI' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(399): error C2146: syntax error: missing ';' before identifier 'FT_GetModemStatus' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(405): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(405): error C2370: 'FT_STATUS': redefinition; different storage class (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(60): note: see declaration of 'FT_STATUS' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(405): error C2146: syntax error: missing ';' before identifier 'WINAPI' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(405): error C2086: 'int WINAPI': redefinition (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(293): note: see declaration of 'WINAPI' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(405): error C2146: syntax error: missing ';' before identifier 'FT_SetChars' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(414): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(414): error C2370: 'FT_STATUS': redefinition; different storage class (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(60): note: see declaration of 'FT_STATUS' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(414): error C2146: syntax error: missing ';' before identifier 'WINAPI' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(414): error C2086: 'int WINAPI': redefinition (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(293): note: see declaration of 'WINAPI' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(414): error C2146: syntax error: missing ';' before identifier 'FT_Purge' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(420): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(420): error C2370: 'FT_STATUS': redefinition; different storage class (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(60): note: see declaration of 'FT_STATUS' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(420): error C2146: syntax error: missing ';' before identifier 'WINAPI' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(420): error C2086: 'int WINAPI': redefinition (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(293): note: see declaration of 'WINAPI' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(420): error C2146: syntax error: missing ';' before identifier 'FT_SetTimeouts' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(427): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(427): error C2370: 'FT_STATUS': redefinition; different storage class (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(60): note: see declaration of 'FT_STATUS' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(427): error C2146: syntax error: missing ';' before identifier 'WINAPI' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(427): error C2086: 'int WINAPI': redefinition (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(293): note: see declaration of 'WINAPI' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(427): error C2146: syntax error: missing ';' before identifier 'FT_GetQueueStatus' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(433): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(433): error C2370: 'FT_STATUS': redefinition; different storage class (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(60): note: see declaration of 'FT_STATUS' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(433): error C2146: syntax error: missing ';' before identifier 'WINAPI' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(433): error C2086: 'int WINAPI': redefinition (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(293): note: see declaration of 'WINAPI' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(433): error C2146: syntax error: missing ';' before identifier 'FT_SetEventNotification' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(440): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(440): error C2370: 'FT_STATUS': redefinition; different storage class (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(60): note: see declaration of 'FT_STATUS' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(440): error C2146: syntax error: missing ';' before identifier 'WINAPI' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(440): error C2086: 'int WINAPI': redefinition (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(293): note: see declaration of 'WINAPI' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(440): error C2146: syntax error: missing ';' before identifier 'FT_GetStatus' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(448): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(448): error C2370: 'FT_STATUS': redefinition; different storage class (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(60): note: see declaration of 'FT_STATUS' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(448): error C2146: syntax error: missing ';' before identifier 'WINAPI' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(448): error C2086: 'int WINAPI': redefinition (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(293): note: see declaration of 'WINAPI' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(448): error C2146: syntax error: missing ';' before identifier 'FT_SetBreakOn' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(453): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(453): error C2370: 'FT_STATUS': redefinition; different storage class (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(60): note: see declaration of 'FT_STATUS' (compiling source file ..\src\ftdi_driver.cc)
C:\temp\node_modules\ftdi\lib\ftd2xx.h(453): error C2146: syntax error: missing ';' before identifier 'WINAPI' (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\ftdi\lib\ftd2xx.h(453): fatal error C1003: error count exceeds 100; stopping compilation (compiling source file ..\src\ftdi_driver.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(190): warning C4996: 'v8::Function::NewInstance': was declared deprecated [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
c:\users\stephan.ahlf.node-gyp\8.9.4\include\node\v8.h(3832): note: see declaration of 'v8::Function::NewInstance'
..\src\ftdi_device.cc(202): warning C4996: 'Nan::Callback::Call': was declared deprecated [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\nan\nan.h(1647): note: see declaration of 'Nan::Callback::Call'
..\src\ftdi_device.cc(341): warning C4996: 'Nan::Callback::Call': was declared deprecated [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\nan\nan.h(1647): note: see declaration of 'Nan::Callback::Call'
..\src\ftdi_device.cc(395): warning C4996: 'Nan::Callback::Call': was declared deprecated [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\nan\nan.h(1647): note: see declaration of 'Nan::Callback::Call'
..\src\ftdi_device.cc(481): warning C4312: 'type cast': conversion from 'int32_t' to 'PVOID' of greater size [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(549): warning C4996: 'Nan::Callback::Call': was declared deprecated [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\nan\nan.h(1647): note: see declaration of 'Nan::Callback::Call'
..\src\ftdi_device.cc(648): warning C4996: 'Nan::Callback::Call': was declared deprecated [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\nan\nan.h(1647): note: see declaration of 'Nan::Callback::Call'
..\src\ftdi_device.cc(678): warning C4996: 'Nan::Callback::Call': was declared deprecated [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
C:\temp\node_modules\nan\nan.h(1647): note: see declaration of 'Nan::Callback::Call'
..\src\ftdi_device.cc(770): warning C4996: 'v8::Value::ToInt32': was declared deprecated [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
c:\users\stephan.ahlf.node-gyp\8.9.4\include\node\v8.h(9743): note: see declaration of 'v8::Value::ToInt32'
..\src\ftdi_device.cc(774): warning C4996: 'v8::Value::ToInt32': was declared deprecated [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
c:\users\stephan.ahlf.node-gyp\8.9.4\include\node\v8.h(9743): note: see declaration of 'v8::Value::ToInt32'
..\src\ftdi_device.cc(778): warning C4996: 'v8::Value::ToInt32': was declared deprecated [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
c:\users\stephan.ahlf.node-gyp\8.9.4\include\node\v8.h(9743): note: see declaration of 'v8::Value::ToInt32'
..\src\ftdi_device.cc(793): warning C4996: 'v8::Value::ToInt32': was declared deprecated [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
c:\users\stephan.ahlf.node-gyp\8.9.4\include\node\v8.h(9743): note: see declaration of 'v8::Value::ToInt32'
..\src\ftdi_device.cc(801): warning C4996: 'v8::Value::ToInt32': was declared deprecated [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
c:\users\stephan.ahlf.node-gyp\8.9.4\include\node\v8.h(9743): note: see declaration of 'v8::Value::ToInt32'
c:\temp\node_modules\nan\nan_new.h(208): error C2668: 'Nan::imp::IntegerFactoryv8::Integer::New': ambiguous call to overloaded function (compiling source file ..\src\ftdi_device.cc) [C:\temp\node_modules\ftdi\build\ftdi.vcxproj]
c:\temp\node_modules\nan\nan_new.h(114): note: could be 'v8::Localv8::Integer Nan::imp::IntegerFactoryv8::Integer::New(uint32_t)' (compiling source file ..\src\ftdi_device.cc)
c:\temp\node_modules\nan\nan_new.h(113): note: or 'v8::Localv8::Integer Nan::imp::IntegerFactoryv8::Integer::New(int32_t)' (compiling source file ..\src\ftdi_device.cc)
c:\temp\node_modules\nan\nan_new.h(208): note: while trying to match the argument list '(DWORD)' (compiling source file ..\src\ftdi_device.cc)
..\src\ftdi_device.cc(189): note: see reference to function template instantiation 'v8::Localv8::Integer Nan::Newv8::Integer,DWORD(A0)' being compiled
with
[
A0=DWORD
]

Bit Bang support

Hi!,
Do you plan supporting bit bang mode in the future ?
I need synchronous bit bang mode for my project, but I can't find a node js package that support bit bang mode for FTDI.
Or maybe you can show me a way to achieve this ?
Anyway, thanks for the good work so far.

node-ftdi module throws error: libftd2xx.so: cannot open shared object file

I test node-ftdi on my raspi

pi@raspberrypi ~/dmx $ dmx-web -c /home/pi/dmx/dmx-web.conf
info - socket.io started

/usr/local/lib/node_modules/dmx/node_modules/ftdi/node_modules/bindings/bindings.js:83
throw e
^
Error: libftd2xx.so: cannot open shared object file: No such file or directory
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at bindings (/usr/local/lib/node_modules/dmx/node_modules/ftdi/node_modules/bindings/bindings.js:76:44)
at Object. (/usr/local/lib/node_modules/dmx/node_modules/ftdi/index.js:3:31)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)

Raspberry Pi 3 node app aborted

Hi! Im trying to interface a relay board interfaced by a ftdi chip. At this moment i can manage to install everything correctly, read the list of ftdi devices connected, open the device and write to it. After several writes to the device im getting this errors causing my node app to abort:

*** Error in `node': free(): invalid pointer: 0x6fc004ff ***
Aborted

Also some times it outputs this:

*** Error in `node': munmap_chunk(): invalid pointer: 0x6fb0042b ***
Aborted

I tried to run this app with both scenarios: node 8.4.0 with npm 5.3.0 and node 6.11.3 with npm 3.10.10 but still i get the same results.

Im using Raspbian Stretch image on my Raspberry Pi 3

This is my test application where i simply write a random byte to the 8 relay board each second:

const ftdi = require('ftdi');
const crypto = require('crypto');
let device;

const setRandomRelays = () => {
    const buffer = crypto.randomBytes(1);
    device.write(buffer, err => {
        if (err) console.log('FTDI Write Error: ' + err);
        else console.log('FTDI Write successful: ' + buffer.toString('hex'));
    });
    setTimeout(() => setRandomRelays(), 1000);
};

ftdi.find((err, devices) => {

    if (devices.length === 0) {
        console.log("No FTDI devices found");
    } else {

        device = new ftdi.FtdiDevice(devices[0]);
        console.log(device);

        device.on('error', e => {
            console.log('FTDI error ' + e);
        });

        device.open({
                baudrate: 921600,
                databits: 8,
                stopbits: 1,
                parity: 'none',
                bitmode: 'sync', // for bit bang
                bitmask: 0xff    // for bit bang
            },
            err => {

                if (err) {
                    console.log(err);
                    return;
                }

                device.on('data', data => {
                    console.log('FTDI on data: ' + data.toString('hex'));
                });

                setRandomRelays();

            });
    }
});

this is an output of the node app:

FtdiDevice {
  domain: null,
  _events: {},
  _eventsCount: 0,
  _maxListeners: undefined,
  deviceSettings: 
   { description: 'FT245R USB FIFO',
     serialNumber: 'A700D6Y1',
     locationId: 262,
     index: 0,
     vendorId: 1027,
     productId: 24577 },
  FTDIDevice: FtdiDevice {} }
FTDI Write successful: 40
FTDI on data: 18
FTDI Write successful: 26
FTDI on data: 40
FTDI Write successful: f3
FTDI on data: 26
FTDI Write successful: b5
FTDI on data: f3
FTDI Write successful: bf
FTDI on data: b5
FTDI Write successful: 37
FTDI on data: bf
FTDI Write successful: 82
FTDI on data: 37
FTDI Write successful: 8e
FTDI on data: 82
FTDI Write successful: 6e
FTDI on data: 8e
FTDI Write successful: b5
FTDI on data: 6e
FTDI Write successful: b2
FTDI on data: b5
FTDI Write successful: ff
FTDI on data: b2
FTDI Write successful: 4b
FTDI on data: 00
*** Error in `node': free(): invalid pointer: 0x6fc004ff ***
Aborted

Maybe it has something to do with the node addon build and my version of node-gyp. Does someone know how to fix this?

Can not install on OSX 10.9.4 - "fatal error: 'ftd2xx.h' file not found"

Hi. I'd like to use the lib to control a usb2dmx - interface via node.
I tried to install node-ftdi manually on my Retina Macbook running 10.9.4, but it fails. :(

  • clone this repo
  • sudo ./install.sh
  • sudo node-gyp rebuild

Btw. the USB-DMX-Interface is working fine with QLC for Mac, so the driver should be installed correctly.

Any suggestions?

Here's the error-log

gyp info it worked if it ends with ok
gyp info using [email protected]
gyp info using [email protected] | darwin | x64
gyp info spawn python
gyp info spawn args [ '/usr/local/lib/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/mathiasschopmans/Sites/node-ftdi/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/usr/local/lib/node_modules/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/mathiasschopmans/.node-gyp/0.10.30/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/Users/mathiasschopmans/.node-gyp/0.10.30',
gyp info spawn args   '-Dmodule_root_dir=/Users/mathiasschopmans/Sites/node-ftdi',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.' ]
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
  CXX(target) Release/obj.target/ftdi/src/ftdi_device.o
In file included from ../src/ftdi_device.cc:11:
../src/ftdi_device.h:6:10: fatal error: 'ftd2xx.h' file not found
#include <ftd2xx.h>
         ^
1 error generated.
make: *** [Release/obj.target/ftdi/src/ftdi_device.o] Error 1
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/node-gyp/lib/build.js:267:23)
gyp ERR! stack     at ChildProcess.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:810:12)
gyp ERR! System Darwin 13.3.0
gyp ERR! command "node" "/usr/local/bin/node-gyp" "rebuild"
gyp ERR! cwd /Users/mathiasschopmans/Sites/node-ftdi
gyp ERR! node -v v0.10.30
gyp ERR! node-gyp -v v1.0.1
gyp ERR! not ok 
mMac:node-ftdi mathiasschopmans$ 

Thanks in advance!

Cannot Open Device

Hi! I'm on an arm chipset (armv5tejl), and I'm having trouble connecting to my device FT_DEVICE_NOT_OPENED. However, I can see the device listed properly, IE:

[ { description: 'FT232R USB UART',
    serialNumber: 'A603DUGT',
    locationId: 262,
    index: 0,
    vendorId: 0,
    productId: 0 } ]

Here's my sample code to reproduce the error:

#!/usr/bin/env node

var ftdi = require('ftdi');

var settings = {
  'baudrate': 115200 / 2,
  'databits': 8,
  'stopbits': 2,
  'parity'  : 'none',
};

ftdi.find(function(err, devices){
  console.log(devices)
  device = new ftdi.FtdiDevice(devices[0]);
  device.open(settings, function(){
    //
  });
});

I assume that I have the drivers installed properly, or else I wouldn't see the device listed. Any thoughts? I can ensure that no other process has the device bound.

Raspberry Pi 2 support

Hi,

Is Raspberry Pi 2 support planned or has anyone made it work?
The install script doesn't support the pi2. But even after installing the right driver manually the node-gyp rebuild failed.
(The Pi 2 has an armv7l architecture)

I cant get it in working order...

Compile error on Mac [ftd2xx.h' file not found]

> [email protected] install /Users/ericprieto/Desktop/rele/node_modules/ftdi
> node-gyp rebuild

  CXX(target) Release/obj.target/ftdi/src/ftdi_device.o
In file included from ../src/ftdi_device.cc:11:
../src/ftdi_device.h:7:10: fatal error: 'ftd2xx.h' file not found
#include <ftd2xx.h>
         ^
1 error generated.

unable to build on osx el capitan

Hi there, I can't install the package.

from "npm install ftdi -g"

I get:

[email protected] install /usr/local/lib/node_modules/ftdi
node-gyp rebuild

CXX(target) Release/obj.target/ftdi/src/ftdi_device.o
In file included from ../src/ftdi_device.cc:11:
../src/ftdi_device.h:7:10: fatal error: 'ftd2xx.h' file not found
#include <ftd2xx.h>
^
1 error generated.
make: *** [Release/obj.target/ftdi/src/ftdi_device.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: make failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:258:23)
gyp ERR! stack at ChildProcess.emit (events.js:180:13)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:209:12)
gyp ERR! System Darwin 15.3.0
gyp ERR! command "/usr/local/Cellar/node/9.11.1/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/ftdi
gyp ERR! node -v v9.11.1
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! /Users/---------/.npm/_logs/2018-04-23T14_34_09_624Z-debug.log

Failed to build

With node 0.11.16, I'm getting following error:
`> [email protected] preinstall C:\FTDI\node_modules\ftdi

node-gyp rebuild

C:\FTDI\node_modules\ftdi>node "C:\Program Files (x86)\nodejs\node_modules\npm\bin\node-gyp-bin....\node_modules\node-gyp\bin\node-gyp.js" rebuild
Projekty w tym rozwiĄzaniu sĄ tworzone po kolei. Abu umoľliwi† tworzenie r˘wnoleg�e, dodaj prze�Ącznik "/m".
ftdi_device.cc
ftdi_driver.cc
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(59): error C2146: syntax error : missing ';' before identifier 'FT_HANDLE' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(59): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(59): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(60): error C2146: syntax error : missing ';' before identifier 'FT_STATUS' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(60): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(60): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(172): error C2065: 'DWORD' : undeclared identifier [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(172): error C2065: 'DWORD' : undeclared identifier [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(172): error C2513: 'void *' : no variable declared before '=' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(293): error C2146: syntax error : missing ';' before identifier 'WINAPI' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(293): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(293): error C2370: 'FT_STATUS' : redefinition; different storage class [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(60) : see declaration of 'FT_STATUS'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(293): error C2146: syntax error : missing ';' before identifier 'FT_Open' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(293): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(295): error C2061: syntax error : identifier 'FT_HANDLE' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(296): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(299): error C2146: syntax error : missing ';' before identifier 'WINAPI' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(299): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(299): error C2370: 'FT_STATUS' : redefinition; different storage class [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(60) : see declaration of 'FT_STATUS'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(299): error C2146: syntax error : missing ';' before identifier 'FT_OpenEx' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(299): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(299): error C2086: 'int WINAPI' : redefinition [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(293) : see declaration of 'WINAPI'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(301): error C2061: syntax error : identifier 'DWORD' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(303): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(306): error C2146: syntax error : missing ';' before identifier 'WINAPI' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(306): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(306): error C2370: 'FT_STATUS' : redefinition; different storage class [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(60) : see declaration of 'FT_STATUS'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(306): error C2146: syntax error : missing ';' before identifier 'FT_ListDevices' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(306): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(306): error C2086: 'int WINAPI' : redefinition [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(293) : see declaration of 'WINAPI'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(309): error C2061: syntax error : identifier 'DWORD' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(310): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(313): error C2146: syntax error : missing ';' before identifier 'WINAPI' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(313): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(313): error C2370: 'FT_STATUS' : redefinition; different storage class [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(60) : see declaration of 'FT_STATUS'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(313): error C2146: syntax error : missing ';' before identifier 'FT_Close' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(313): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(313): error C2086: 'int WINAPI' : redefinition [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(293) : see declaration of 'WINAPI'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(315): error C2146: syntax error : missing ')' before identifier 'ftHandle' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(315): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(315): error C2059: syntax error : ')' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(318): error C2146: syntax error : missing ';' before identifier 'WINAPI' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(318): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(318): error C2370: 'FT_STATUS' : redefinition; different storage class [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(60) : see declaration of 'FT_STATUS'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(318): error C2146: syntax error : missing ';' before identifier 'FT_Read' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(318): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(318): error C2086: 'int WINAPI' : redefinition [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(293) : see declaration of 'WINAPI'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(319): error C2146: syntax error : missing ')' before identifier 'ftHandle' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(319): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(323): error C2059: syntax error : ')' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(326): error C2146: syntax error : missing ';' before identifier 'WINAPI' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(326): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(326): error C2370: 'FT_STATUS' : redefinition; different storage class [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(60) : see declaration of 'FT_STATUS'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(326): error C2146: syntax error : missing ';' before identifier 'FT_Write' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(326): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(326): error C2086: 'int WINAPI' : redefinition [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(293) : see declaration of 'WINAPI'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(327): error C2146: syntax error : missing ')' before identifier 'ftHandle' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(327): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(331): error C2059: syntax error : ')' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(334): error C2146: syntax error : missing ';' before identifier 'WINAPI' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(334): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(334): error C2370: 'FT_STATUS' : redefinition; different storage class [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(60) : see declaration of 'FT_STATUS'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(334): error C2146: syntax error : missing ';' before identifier 'FT_IoCtl' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(334): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(334): error C2086: 'int WINAPI' : redefinition [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(293) : see declaration of 'WINAPI'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(335): error C2146: syntax error : missing ')' before identifier 'ftHandle' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocale(323): warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(335): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(343): error C2059: syntax error : ')' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(346): error C2146: syntax error : missing ';' before identifier 'WINAPI' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(346): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(346): error C2370: 'FT_STATUS' : redefinition; different storage class [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(60) : see declaration of 'FT_STATUS'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(346): error C2146: syntax error : missing ';' before identifier 'FT_SetBaudRate' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(346): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(346): error C2086: 'int WINAPI' : redefinition [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(293) : see declaration of 'WINAPI'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(347): error C2146: syntax error : missing ')' before identifier 'ftHandle' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(347): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(349): error C2059: syntax error : ')' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(352): error C2146: syntax error : missing ';' before identifier 'WINAPI' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(352): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(352): error C2370: 'FT_STATUS' : redefinition; different storage class [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(60) : see declaration of 'FT_STATUS'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(352): error C2146: syntax error : missing ';' before identifier 'FT_SetDivisor' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(352): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(352): error C2086: 'int WINAPI' : redefinition [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(293) : see declaration of 'WINAPI'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(353): error C2146: syntax error : missing ')' before identifier 'ftHandle' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(353): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(355): error C2059: syntax error : ')' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(358): error C2146: syntax error : missing ';' before identifier 'WINAPI' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(358): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(358): error C2370: 'FT_STATUS' : redefinition; different storage class [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(60) : see declaration of 'FT_STATUS'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(358): error C2146: syntax error : missing ';' before identifier 'FT_SetDataCharacteristics' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(358): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(358): error C2086: 'int WINAPI' : redefinition [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(293) : see declaration of 'WINAPI'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(359): error C2146: syntax error : missing ')' before identifier 'ftHandle' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(359): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(363): error C2059: syntax error : ')' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(366): error C2146: syntax error : missing ';' before identifier 'WINAPI' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(366): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(366): error C2370: 'FT_STATUS' : redefinition; different storage class [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(60) : see declaration of 'FT_STATUS'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(366): error C2146: syntax error : missing ';' before identifier 'FT_SetFlowControl' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(366): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(366): error C2086: 'int WINAPI' : redefinition [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(293) : see declaration of 'WINAPI'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(367): error C2146: syntax error : missing ')' before identifier 'ftHandle' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(367): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(371): error C2059: syntax error : ')' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(374): error C2146: syntax error : missing ';' before identifier 'WINAPI' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(374): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(374): error C2370: 'FT_STATUS' : redefinition; different storage class [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(60) : see declaration of 'FT_STATUS'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(374): error C2146: syntax error : missing ';' before identifier 'FT_ResetDevice' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(374): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(374): error C2086: 'int WINAPI' : redefinition [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(293) : see declaration of 'WINAPI'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(376): error C2146: syntax error : missing ')' before identifier 'ftHandle' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(376): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(376): error C2059: syntax error : ')' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(379): error C2146: syntax error : missing ';' before identifier 'WINAPI' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(379): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(379): error C2370: 'FT_STATUS' : redefinition; different storage class [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(60) : see declaration of 'FT_STATUS'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(379): error C2146: syntax error : missing ';' before identifier 'FT_SetDtr' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(379): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(379): error C2086: 'int WINAPI' : redefinition [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(293) : see declaration of 'WINAPI'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(381): error C2146: syntax error : missing ')' before identifier 'ftHandle' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(381): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(381): error C2059: syntax error : ')' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(384): error C2146: syntax error : missing ';' before identifier 'WINAPI' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(384): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(384): error C2370: 'FT_STATUS' : redefinition; different storage class [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(60) : see declaration of 'FT_STATUS'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(384): error C2146: syntax error : missing ';' before identifier 'FT_ClrDtr' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(384): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(384): error C2086: 'int WINAPI' : redefinition [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(293) : see declaration of 'WINAPI'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(386): error C2146: syntax error : missing ')' before identifier 'ftHandle' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(386): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(386): error C2059: syntax error : ')' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(389): error C2146: syntax error : missing ';' before identifier 'WINAPI' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(389): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(389): error C2370: 'FT_STATUS' : redefinition; different storage class [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(60) : see declaration of 'FT_STATUS'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(389): error C2146: syntax error : missing ';' before identifier 'FT_SetRts' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(389): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(389): error C2086: 'int WINAPI' : redefinition [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(293) : see declaration of 'WINAPI'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(391): error C2146: syntax error : missing ')' before identifier 'ftHandle' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(391): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(391): error C2059: syntax error : ')' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(394): error C2146: syntax error : missing ';' before identifier 'WINAPI' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(394): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(394): error C2370: 'FT_STATUS' : redefinition; different storage class [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(60) : see declaration of 'FT_STATUS'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(394): error C2146: syntax error : missing ';' before identifier 'FT_ClrRts' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(394): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(394): error C2086: 'int WINAPI' : redefinition [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(293) : see declaration of 'WINAPI'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(396): error C2146: syntax error : missing ')' before identifier 'ftHandle' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(396): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(396): error C2059: syntax error : ')' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(399): error C2146: syntax error : missing ';' before identifier 'WINAPI' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(399): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(399): error C2370: 'FT_STATUS' : redefinition; different storage class [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(60) : see declaration of 'FT_STATUS'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(399): error C2146: syntax error : missing ';' before identifier 'FT_GetModemStatus' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(399): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(399): error C2086: 'int WINAPI' : redefinition [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(293) : see declaration of 'WINAPI'
C:\FTDI\node_modules\ftdi\lib\ftd2xx.h(399): fatal error C1003: error count exceeds 100; stopping compilation [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
c:\ftdi\node_modules\ftdi\src\ftdi_device.h(53): error C2504: 'ObjectWrap' : base class undefined [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
c:\ftdi\node_modules\ftdi\src\ftdi_device.h(61): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
c:\ftdi\node_modules\ftdi\src\ftdi_device.h(61): error C2143: syntax error : missing ',' before '&' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
c:\ftdi\node_modules\ftdi\src\ftdi_device.h(62): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
c:\ftdi\node_modules\ftdi\src\ftdi_device.h(62): error C2143: syntax error : missing ',' before '&' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
c:\ftdi\node_modules\ftdi\src\ftdi_device.h(63): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
c:\ftdi\node_modules\ftdi\src\ftdi_device.h(63): error C2143: syntax error : missing ',' before '&' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
c:\ftdi\node_modules\ftdi\src\ftdi_device.h(64): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
c:\ftdi\node_modules\ftdi\src\ftdi_device.h(64): error C2143: syntax error : missing ',' before '&' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
c:\ftdi\node_modules\ftdi\src\ftdi_driver.h(14): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
c:\ftdi\node_modules\ftdi\src\ftdi_driver.h(14): error C2143: syntax error : missing ',' before '&' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
c:\ftdi\node_modules\ftdi\src\ftdi_driver.h(15): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
c:\ftdi\node_modules\ftdi\src\ftdi_driver.h(15): error C2143: syntax error : missing ',' before '&' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(116): error C2664: 'v8::FunctionTemplate::New' : cannot convert parameter 1 from 'v8::Handle (__cdecl *)(const int)' to 'v8::Isolate *' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
with
[
T=v8::Value
]
There is no context in which this conversion is possible
..\src\ftdi_device.cc(117): error C2039: 'NewSymbol' : is not a member of 'v8::String' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\Users\jlekstan.node-gyp\0.11.16\deps\v8\include\v8.h(1599) : see declaration of 'v8::String'
..\src\ftdi_device.cc(117): error C3861: 'NewSymbol': identifier not found [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(120): error C2039: 'NewSymbol' : is not a member of 'v8::String' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\Users\jlekstan.node-gyp\0.11.16\deps\v8\include\v8.h(1599) : see declaration of 'v8::String'
..\src\ftdi_device.cc(120): error C2664: 'v8::FunctionTemplate::New' : cannot convert parameter 1 from 'v8::Handle (__cdecl *)(const int)' to 'v8::Isolate *' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
with
[
T=v8::Value
]
There is no context in which this conversion is possible
..\src\ftdi_device.cc(120): error C2227: left of '->GetFunction' must point to class/struct/union/generic type [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(120): error C3861: 'NewSymbol': identifier not found [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(121): error C2039: 'NewSymbol' : is not a member of 'v8::String' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\Users\jlekstan.node-gyp\0.11.16\deps\v8\include\v8.h(1599) : see declaration of 'v8::String'
..\src\ftdi_device.cc(121): error C2664: 'v8::FunctionTemplate::New' : cannot convert parameter 1 from 'v8::Handle (__cdecl *)(const int)' to 'v8::Isolate *' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
with
[
T=v8::Value
]
There is no context in which this conversion is possible
..\src\ftdi_device.cc(121): error C2227: left of '->GetFunction' must point to class/struct/union/generic type [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(121): error C3861: 'NewSymbol': identifier not found [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(122): error C2039: 'NewSymbol' : is not a member of 'v8::String' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\Users\jlekstan.node-gyp\0.11.16\deps\v8\include\v8.h(1599) : see declaration of 'v8::String'
..\src\ftdi_device.cc(122): error C2664: 'v8::FunctionTemplate::New' : cannot convert parameter 1 from 'v8::Handle (__cdecl *)(const int)' to 'v8::Isolate *' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
with
[
T=v8::Value
]
There is no context in which this conversion is possible
..\src\ftdi_device.cc(122): error C2227: left of '->GetFunction' must point to class/struct/union/generic type [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(122): error C3861: 'NewSymbol': identifier not found [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(124): error C2660: 'v8::PersistentBase::New' : function does not take 1 arguments [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
with
[
T=v8::Function
]
..\src\ftdi_device.cc(125): error C2039: 'NewSymbol' : is not a member of 'v8::String' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\Users\jlekstan.node-gyp\0.11.16\deps\v8\include\v8.h(1599) : see declaration of 'v8::String'
..\src\ftdi_device.cc(125): error C3861: 'NewSymbol': identifier not found [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(128): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(128): error C2143: syntax error : missing ',' before '&' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(130): error C2248: 'v8::HandleScope::HandleScope' : cannot access protected member declared in class 'v8::HandleScope' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\Users\jlekstan.node-gyp\0.11.16\deps\v8\include\v8.h(816) : see declaration of 'v8::HandleScope::HandleScope'
C:\Users\jlekstan.node-gyp\0.11.16\deps\v8\include\v8.h(800) : see declaration of 'v8::HandleScope'
..\src\ftdi_device.cc(131): error C2039: 'New' : is not a member of 'v8::String' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\Users\jlekstan.node-gyp\0.11.16\deps\v8\include\v8.h(1599) : see declaration of 'v8::String'
..\src\ftdi_device.cc(131): error C2664: 'ftdi_device::FtdiDevice::New' : cannot convert parameter 1 from 'const char [11]' to 'const int' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
There is no context in which this conversion is possible
..\src\ftdi_device.cc(132): error C2039: 'New' : is not a member of 'v8::String' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\Users\jlekstan.node-gyp\0.11.16\deps\v8\include\v8.h(1599) : see declaration of 'v8::String'
..\src\ftdi_device.cc(132): error C2664: 'ftdi_device::FtdiDevice::New' : cannot convert parameter 1 from 'const char [13]' to 'const int' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
There is no context in which this conversion is possible
..\src\ftdi_device.cc(133): error C2039: 'New' : is not a member of 'v8::String' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\Users\jlekstan.node-gyp\0.11.16\deps\v8\include\v8.h(1599) : see declaration of 'v8::String'
..\src\ftdi_device.cc(133): error C2664: 'ftdi_device::FtdiDevice::New' : cannot convert parameter 1 from 'const char [6]' to 'const int' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
There is no context in which this conversion is possible
..\src\ftdi_device.cc(134): error C2039: 'New' : is not a member of 'v8::String' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\Users\jlekstan.node-gyp\0.11.16\deps\v8\include\v8.h(1599) : see declaration of 'v8::String'
..\src\ftdi_device.cc(134): error C2664: 'ftdi_device::FtdiDevice::New' : cannot convert parameter 1 from 'const char [12]' to 'const int' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
There is no context in which this conversion is possible
..\src\ftdi_device.cc(135): error C2039: 'New' : is not a member of 'v8::String' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\Users\jlekstan.node-gyp\0.11.16\deps\v8\include\v8.h(1599) : see declaration of 'v8::String'
..\src\ftdi_device.cc(135): error C2664: 'ftdi_device::FtdiDevice::New' : cannot convert parameter 1 from 'const char [9]' to 'const int' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
There is no context in which this conversion is possible
..\src\ftdi_device.cc(136): error C2039: 'New' : is not a member of 'v8::String' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\Users\jlekstan.node-gyp\0.11.16\deps\v8\include\v8.h(1599) : see declaration of 'v8::String'
..\src\ftdi_device.cc(136): error C2664: 'ftdi_device::FtdiDevice::New' : cannot convert parameter 1 from 'const char [10]' to 'const int' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
There is no context in which this conversion is possible
..\src\ftdi_device.cc(141): error C2065: 'args' : undeclared identifier [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(141): error C2227: left of '->IsObject' must point to class/struct/union/generic type [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(143): error C2065: 'args' : undeclared identifier [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(143): error C2227: left of '->ToObject' must point to class/struct/union/generic type [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(185): error C2065: 'args' : undeclared identifier [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(185): error C2227: left of '->IsNumber' must point to class/struct/union/generic type [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(187): error C2065: 'args' : undeclared identifier [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(187): error C2227: left of '->NumberValue' must point to class/struct/union/generic type [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(195): error C2039: 'Wrap' : is not a member of 'ftdi_device::FtdiDevice' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
c:\ftdi\node_modules\ftdi\src\ftdi_device.h(52) : see declaration of 'ftdi_device::FtdiDevice'
..\src\ftdi_device.cc(195): error C2065: 'args' : undeclared identifier [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(195): error C2228: left of '.This' must have class/struct/union [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
type is ''unknown-type''
..\src\ftdi_device.cc(197): error C2065: 'args' : undeclared identifier [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(197): error C2228: left of '.This' must have class/struct/union [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
type is ''unknown-type''
..\src\ftdi_device.cc(203): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(203): error C2143: syntax error : missing ',' before '&' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(205): error C2248: 'v8::HandleScope::HandleScope' : cannot access protected member declared in class 'v8::HandleScope' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\Users\jlekstan.node-gyp\0.11.16\deps\v8\include\v8.h(816) : see declaration of 'v8::HandleScope::HandleScope'
C:\Users\jlekstan.node-gyp\0.11.16\deps\v8\include\v8.h(800) : see declaration of 'v8::HandleScope'
..\src\ftdi_device.cc(208): error C2653: 'ObjectWrap' : is not a class or namespace name [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(208): error C2065: 'Unwrap' : undeclared identifier [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(208): error C2275: 'ftdi_device::FtdiDevice' : illegal use of this type as an expression [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(208): error C2065: 'args' : undeclared identifier [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(208): error C2228: left of '.This' must have class/struct/union [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
type is ''unknown-type''
..\src\ftdi_device.cc(214): error C2065: 'args' : undeclared identifier [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(214): error C2228: left of '.Length' must have class/struct/union [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
type is ''unknown-type''
..\src\ftdi_device.cc(219): error C2065: 'args' : undeclared identifier [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(219): error C2227: left of '->IsObject' must point to class/struct/union/generic type [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(225): error C2065: 'args' : undeclared identifier [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(225): error C2227: left of '->IsFunction' must point to class/struct/union/generic type [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(229): error C2065: 'args' : undeclared identifier [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(232): error C2065: 'args' : undeclared identifier [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(232): error C2227: left of '->IsFunction' must point to class/struct/union/generic type [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(236): error C2065: 'args' : undeclared identifier [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(243): error C2039: 'New' : is not a member of 'v8::String' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\Users\jlekstan.node-gyp\0.11.16\deps\v8\include\v8.h(1599) : see declaration of 'v8::String'
..\src\ftdi_device.cc(243): error C2664: 'ftdi_device::FtdiDevice::New' : cannot convert parameter 1 from 'const char [20]' to 'const int' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
There is no context in which this conversion is possible
..\src\ftdi_device.cc(244): error C2065: 'args' : undeclared identifier [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(244): error C2227: left of '->Call' must point to class/struct/union/generic type [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(244): error C2039: 'GetCurrent' : is not a member of 'v8::Context' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\Users\jlekstan.node-gyp\0.11.16\deps\v8\include\v8.h(5223) : see declaration of 'v8::Context'
..\src\ftdi_device.cc(244): error C2227: left of '->Global' must point to class/struct/union/generic type [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
type is ''unknown-type''
..\src\ftdi_device.cc(244): error C3861: 'GetCurrent': identifier not found [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(253): error C2065: 'args' : undeclared identifier [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(253): error C2227: left of '->ToObject' must point to class/struct/union/generic type [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(255): error C2660: 'v8::PersistentBase::New' : function does not take 1 arguments [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
with
[
T=v8::Value
]
..\src\ftdi_device.cc(256): error C2660: 'v8::PersistentBase::New' : function does not take 1 arguments [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
with
[
T=v8::Value
]
..\src\ftdi_device.cc(264): error C2065: 'args' : undeclared identifier [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(264): error C2228: left of '.This' must have class/struct/union [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
type is ''unknown-type''
..\src\ftdi_device.cc(320): error C2039: 'Dispose' : is not a member of 'v8::Persistent' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
with
[
T=v8::Value
]
..\src\ftdi_device.cc(325): error C2819: type 'v8::Persistent' does not have an overloaded member 'operator ->' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
with
[
T=v8::Value
]
did you intend to use '.' instead?
..\src\ftdi_device.cc(325): error C2039: 'IsFunction' : is not a member of 'v8::Persistent' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
with
[
T=v8::Value
]
..\src\ftdi_device.cc(330): error C2039: 'New' : is not a member of 'v8::String' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\Users\jlekstan.node-gyp\0.11.16\deps\v8\include\v8.h(1599) : see declaration of 'v8::String'
..\src\ftdi_device.cc(330): error C2664: 'ftdi_device::FtdiDevice::New' : cannot convert parameter 1 from 'const char *' to 'const int' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
There is no context in which this conversion is possible
..\src\ftdi_device.cc(334): error C2660: 'v8::Undefined' : function does not take 0 arguments [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(337): error C2248: 'v8::Persistent::operator *' : cannot access private member declared in class 'v8::Persistent' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
with
[
T=v8::Value
]
C:\Users\jlekstan.node-gyp\0.11.16\deps\v8\include\v8.h(709) : see declaration of 'v8::Persistent::operator *'
with
[
T=v8::Value
]
..\src\ftdi_device.cc(337): error C2039: 'GetCurrent' : is not a member of 'v8::Context' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\Users\jlekstan.node-gyp\0.11.16\deps\v8\include\v8.h(5223) : see declaration of 'v8::Context'
..\src\ftdi_device.cc(337): error C2227: left of '->Global' must point to class/struct/union/generic type [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
type is ''unknown-type''
..\src\ftdi_device.cc(337): error C3861: 'GetCurrent': identifier not found [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(338): error C2039: 'Dispose' : is not a member of 'v8::Persistent' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
with
[
T=v8::Value
]
..\src\ftdi_device.cc(486): error C2248: 'v8::HandleScope::HandleScope' : cannot access protected member declared in class 'v8::HandleScope' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\Users\jlekstan.node-gyp\0.11.16\deps\v8\include\v8.h(816) : see declaration of 'v8::HandleScope::HandleScope'
C:\Users\jlekstan.node-gyp\0.11.16\deps\v8\include\v8.h(800) : see declaration of 'v8::HandleScope'
..\src\ftdi_device.cc(491): error C2819: type 'v8::Persistent' does not have an overloaded member 'operator ->' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
with
[
T=v8::Value
]
did you intend to use '.' instead?
..\src\ftdi_device.cc(491): error C2039: 'IsFunction' : is not a member of 'v8::Persistent' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
with
[
T=v8::Value
]
..\src\ftdi_device.cc(495): error C2882: 'Buffer' : illegal use of namespace identifier in expression [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(495): error C2065: 'slowBuffer' : undeclared identifier [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(496): error C2065: 'slowBuffer' : undeclared identifier [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(497): error C2039: 'GetCurrent' : is not a member of 'v8::Context' [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
C:\Users\jlekstan.node-gyp\0.11.16\deps\v8\include\v8.h(5223) : see declaration of 'v8::Context'
..\src\ftdi_device.cc(497): error C2227: left of '->Global' must point to class/struct/union/generic type [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
..\src\ftdi_device.cc(497): fatal error C1003: error count exceeds 100; stopping compilation [C:\FTDI\node_modules\ftdi\build\ftdi.vcxproj]
`

What can I do?

What to write to FT245RL??

Trying to test my FT245RL board.

ftdi.find( ==> is resulting with the right device.
device.open ===> Doesn't raise any errors.

Tried to (Want to open/close the relay's ports) ...

const data = [0x01];
device.write(data, function (err) { }); ===> still no errors

But nothing happens.
Can someone help me understand what should be written so the relay will work?

Failed to build on Windows 8

Hi,

I'm trying to install the package on a Windows 8 system. Python 2.73 installed, msvs version is 2010, latest drivers are installed as well, but the build is failed. Has anyone met before this issue? The error log is the following:

0 info it worked if it ends with ok
1 verbose cli [ 'C:\Program Files\nodejs\node.exe',
1 verbose cli 'C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js',
1 verbose cli 'install',
1 verbose cli '-g',
1 verbose cli 'ftdi' ]
2 info using [email protected]
3 info using [email protected]
4 verbose node symlink C:\Program Files\nodejs\node.exe
5 verbose install initial load of C:\Users\Alien-01\AppData\Roaming\npm\package.json
6 verbose readDependencies loading dependencies from C:\Users\Alien-01\AppData\Roaming\npm\package.json
7 silly cache add args [ 'ftdi', null ]
8 verbose cache add spec ftdi
9 silly cache add parsed spec { raw: 'ftdi',
9 silly cache add scope: null,
9 silly cache add name: 'ftdi',
9 silly cache add rawSpec: '',
9 silly cache add spec: '',
9 silly cache add type: 'range' }
10 silly addNamed ftdi@

11 verbose addNamed "" is a valid semver range for ftdi
12 silly addNameRange { name: 'ftdi', range: '
', hasData: false }
13 silly mapToRegistry name ftdi
14 silly mapToRegistry using default registry
15 silly mapToRegistry registry https://registry.npmjs.org/
16 silly mapToRegistry uri https://registry.npmjs.org/ftdi
17 verbose addNameRange registry:https://registry.npmjs.org/ftdi not in flight; fetching
18 verbose request uri https://registry.npmjs.org/ftdi
19 verbose request no auth needed
20 info attempt registry request try #1 at 3:07:22 PM
21 verbose request id 3a9b1cdb277ce418
22 verbose etag "DS3SCJVDR5M4YIQJ9TSUN8H7G"
23 http request GET https://registry.npmjs.org/ftdi
24 http 304 https://registry.npmjs.org/ftdi
25 silly get cb [ 304,
25 silly get { date: 'Mon, 25 May 2015 14:07:16 GMT',
25 silly get via: '1.1 varnish',
25 silly get 'cache-control': 'max-age=60',
25 silly get etag: '"DS3SCJVDR5M4YIQJ9TSUN8H7G"',
25 silly get age: '0',
25 silly get connection: 'keep-alive',
25 silly get 'x-served-by': 'cache-lcy1122-LCY',
25 silly get 'x-cache': 'MISS',
25 silly get 'x-cache-hits': '0',
25 silly get 'x-timer': 'S1432562836.470784,VS0,VE166',
25 silly get vary: 'Accept' } ]
26 verbose etag https://registry.npmjs.org/ftdi from cache
27 verbose get saving ftdi to C:\Users\Alien-01\AppData\Roaming\npm-cache\registry.npmjs.org\ftdi.cache.json
28 silly addNameRange number 2 { name: 'ftdi', range: '_', hasData: true }
29 silly addNameRange versions [ 'ftdi', [ '1.0.0', '1.0.1', '1.0.2', '1.0.3', '1.1.0' ] ]
30 silly addNamed [email protected]
31 verbose addNamed "1.1.0" is a plain semver version for ftdi
32 silly cache afterAdd [email protected]
33 verbose afterAdd C:\Users\Alien-01\AppData\Roaming\npm-cache\ftdi\1.1.0\package\package.json not in flight; writing
34 verbose afterAdd C:\Users\Alien-01\AppData\Roaming\npm-cache\ftdi\1.1.0\package\package.json written
35 silly install resolved [ { name: 'ftdi',
35 silly install resolved version: '1.1.0',
35 silly install resolved description: 'FTDI bindings for Node.js',
35 silly install resolved main: 'index.js',
35 silly install resolved dependencies: { bindings: '1.1.0' },
35 silly install resolved gypfile: true,
35 silly install resolved scripts:
35 silly install resolved { test: 'echo "Error: no test specified" && exit 1',
35 silly install resolved preinstall: 'node-gyp rebuild' },
35 silly install resolved repository:
35 silly install resolved { type: 'git',
35 silly install resolved url: 'git://github.com/KABA-CCEAC/node-ftdi.git' },
35 silly install resolved keywords: [ 'ftdi', 'usb', 'driver', 'device' ],
35 silly install resolved homepage: 'https://github.com/KABA-CCEAC/node-ftdi',
35 silly install resolved bugs: { url: 'https://github.com/KABA-CCEAC/node-ftdi/issues' },
35 silly install resolved license:
35 silly install resolved { type: 'MIT',
35 silly install resolved url: 'https://raw.github.com/KABA-CCEAC/node-ftdi/master/licence' },
35 silly install resolved gitHead: '460b1fa8477efc510f2c8316c2f99cfe082d6ae4',
35 silly install resolved _id: '[email protected]',
35 silly install resolved _shasum: '456560ad8c4d30530431604dd40413c14537363d',
35 silly install resolved from: 'ftdi@',
35 silly install resolved _npmVersion: '1.4.21',
35 silly install resolved _npmUser: { name: 'adrai', email: '[email protected]' },
35 silly install resolved maintainers: [ [Object] ],
35 silly install resolved dist:
35 silly install resolved { shasum: '456560ad8c4d30530431604dd40413c14537363d',
35 silly install resolved tarball: 'http://registry.npmjs.org/ftdi/-/ftdi-1.1.0.tgz' },
35 silly install resolved directories: {},
35 silly install resolved _resolved: 'https://registry.npmjs.org/ftdi/-/ftdi-1.1.0.tgz',
35 silly install resolved readme: 'ERROR: No README data found!' } ]
36 info install [email protected] into C:\Users\Alien-01\AppData\Roaming\npm
37 info installOne [email protected]
38 verbose installOne of ftdi to C:\Users\Alien-01\AppData\Roaming\npm not in flight; installing
39 verbose lock using C:\Users\Alien-01\AppData\Roaming\npm-cache_locks\ftdi-0d3480de09bbba34.lock for C:\Users\Alien-01\AppData\Roaming\npm\node_modules\ftdi
40 silly install write writing ftdi 1.1.0 to C:\Users\Alien-01\AppData\Roaming\npm\node_modules\ftdi
41 verbose unbuild node_modules\ftdi
42 silly gentlyRm C:\Users\Alien-01\AppData\Roaming\npm\node_modules\ftdi is being purged from base C:\Users\Alien-01\AppData\Roaming\npm
43 verbose gentlyRm don't care about contents; nuking C:\Users\Alien-01\AppData\Roaming\npm\node_modules\ftdi
44 verbose tar unpack C:\Users\Alien-01\AppData\Roaming\npm-cache\ftdi\1.1.0\package.tgz
45 verbose tar unpacking to C:\Users\Alien-01\AppData\Roaming\npm\node_modules\ftdi
46 silly gentlyRm C:\Users\Alien-01\AppData\Roaming\npm\node_modules\ftdi is being purged
47 verbose gentlyRm don't care about contents; nuking C:\Users\Alien-01\AppData\Roaming\npm\node_modules\ftdi
48 silly gunzTarPerm modes [ '777', '666' ]
49 silly gunzTarPerm extractEntry package.json
50 silly gunzTarPerm modified mode [ 'package.json', 420, 438 ]
51 silly gunzTarPerm extractEntry .npmignore
52 silly gunzTarPerm modified mode [ '.npmignore', 420, 438 ]
53 silly gunzTarPerm extractEntry README.md
54 silly gunzTarPerm modified mode [ 'README.md', 420, 438 ]
55 silly gunzTarPerm extractEntry index.js
56 silly gunzTarPerm modified mode [ 'index.js', 420, 438 ]
57 silly gunzTarPerm extractEntry binding.gyp
58 silly gunzTarPerm modified mode [ 'binding.gyp', 420, 438 ]
59 silly gunzTarPerm extractEntry install.sh
60 silly gunzTarPerm modified mode [ 'install.sh', 493, 511 ]
61 silly gunzTarPerm extractEntry lib/amd64/ftd2xx.lib
62 silly gunzTarPerm modified mode [ 'lib/amd64/ftd2xx.lib', 420, 438 ]
63 silly gunzTarPerm extractEntry lib/ftd2xx.h
64 silly gunzTarPerm modified mode [ 'lib/ftd2xx.h', 420, 438 ]
65 silly gunzTarPerm extractEntry lib/i386/ftd2xx.lib
66 silly gunzTarPerm modified mode [ 'lib/i386/ftd2xx.lib', 420, 438 ]
67 silly gunzTarPerm extractEntry license
68 silly gunzTarPerm modified mode [ 'license', 420, 438 ]
69 silly gunzTarPerm extractEntry src/ftdi_constants.h
70 silly gunzTarPerm modified mode [ 'src/ftdi_constants.h', 420, 438 ]
71 silly gunzTarPerm extractEntry src/ftdi_device.cc
72 silly gunzTarPerm modified mode [ 'src/ftdi_device.cc', 420, 438 ]
73 silly gunzTarPerm extractEntry src/ftdi_device.h
74 silly gunzTarPerm modified mode [ 'src/ftdi_device.h', 420, 438 ]
75 silly gunzTarPerm extractEntry src/ftdi_driver.cc
76 silly gunzTarPerm modified mode [ 'src/ftdi_driver.cc', 420, 438 ]
77 silly gunzTarPerm extractEntry src/ftdi_driver.h
78 silly gunzTarPerm modified mode [ 'src/ftdi_driver.h', 420, 438 ]
79 verbose write writing to C:\Users\Alien-01\AppData\Roaming\npm\node_modules\ftdi\package.json
80 info preinstall [email protected]
81 verbose unsafe-perm in lifecycle true
82 info [email protected] Failed to exec preinstall script
83 verbose unlock done using C:\Users\Alien-01\AppData\Roaming\npm-cache_locks\ftdi-0d3480de09bbba34.lock for C:\Users\Alien-01\AppData\Roaming\npm\node_modules\ftdi
84 verbose stack Error: [email protected] preinstall: node-gyp rebuild
84 verbose stack Exit status 1
84 verbose stack at EventEmitter. (C:\Program Files\nodejs\node_modules\npm\lib\utils\lifecycle.js:213:16)
84 verbose stack at EventEmitter.emit (events.js:110:17)
84 verbose stack at ChildProcess. (C:\Program Files\nodejs\node_modules\npm\lib\utils\spawn.js:24:14)
84 verbose stack at ChildProcess.emit (events.js:110:17)
84 verbose stack at maybeClose (child_process.js:1015:16)
84 verbose stack at Process.ChildProcess._handle.onexit (child_process.js:1087:5)
85 verbose pkgid [email protected]
86 verbose cwd C:\Nodes\FTDI112\node-ftdi-master
87 error Windows_NT 6.3.9600
88 error argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "install" "-g" "ftdi"
89 error node v0.12.3
90 error npm v2.9.1
91 error code ELIFECYCLE
92 error [email protected] preinstall: node-gyp rebuild
92 error Exit status 1
93 error Failed at the [email protected] preinstall script 'node-gyp rebuild'.
93 error This is most likely a problem with the ftdi package,
93 error not with npm itself.
93 error Tell the author that this fails on your system:
93 error node-gyp rebuild
93 error You can get their info via:
93 error npm owner ls ftdi
93 error There is likely additional logging output above.
94 verbose exit [ 1, true ]
95 verbose unbuild node_modules\ftdi
96 info preuninstall [email protected]
97 info uninstall [email protected]
98 verbose unbuild rmStuff [email protected] from C:\Users\Alien-01\AppData\Roaming\npm\node_modules
99 info postuninstall [email protected]
100 silly gentlyRm C:\Users\Alien-01\AppData\Roaming\npm\node_modules\ftdi is being purged from base C:\Users\Alien-01\AppData\Roaming\npm
101 verbose gentlyRm don't care about contents; nuking C:\Users\Alien-01\AppData\Roaming\npm\node_modules\ftdi
102 silly vacuum-fs purging C:\Users\Alien-01\AppData\Roaming\npm\node_modules\ftdi
103 silly vacuum-fs quitting because other entries in C:\Users\Alien-01\AppData\Roaming\npm\node_modules

Thanks
Aaron

main.c:22:10: fatal error: 'ftd2xx.h' file not found

Hi!

Macbook 15 Retina - OS X 10.13.1

I have this error:

cc main.c -o loopback -Wall -Wextra -lftd2xx -lpthread -lobjc -framework IOKit -framework CoreFoundation -Wl,-rpath /usr/local/lib -L/usr/local/lib
main.c:22:10: fatal error: 'ftd2xx.h' file not found
#include "ftd2xx.h"

FT_W32_WriteFile ?

I have this old C++ Code which I am trying bring over to JS:

while (!Terminated) {

        FT_W32_SetCommBreak(ftHandle);
        FT_W32_ClearCommBreak(ftHandle);


        FT_W32_WriteFile(ftHandle, &StartCode, 1, &bytesWritten, NULL);
        FT_W32_WriteFile(ftHandle, DMXData, 512, &bytesWritten, NULL);

        Sleep(inter_frame_delay);
        NbFramesSent++;
    }

This code is to talk to a DMX lighting controller, which simply does:

  • set the breaks
  • write the start code (0)
  • write an array of 512 integers
  • sleep for 20ms
  • loop.

What would the equivalent methods to FT_W32_SetCommBreak and FT_W32_ClearCommBreak be in this library? Are they handled for you by the write method?

The whole example C++ lib can be found here http://www.enttec.com/index.php?main_menu=Products&pn=70303

Segmentation fault: 11

I have small server using ftdi that crashes randomly with "Segmentation fault: 11". Using the node module segfault-handler I get this stack trace:

PID 87154 received SIGSEGV for address: 0x9008da378
0   segfault-handler.node               0x00000001008e047f _ZL16segfault_handleriP9__siginfoPv + 287
1   libsystem_platform.dylib            0x00007fff891eff1a _sigtramp + 26
2   libsystem_pthread.dylib             0x00007fff8815fe68 __mtx_droplock + 462
3   ftdi.node                           0x00000001008d7389 _ZN11ftdi_device10FtdiDevice9OpenAsyncEP9uv_work_s + 77
4   node                                0x00000001003916d7 worker + 90
5   node                                0x0000000100387eb2 uv__thread_start + 25
6   libsystem_pthread.dylib             0x00007fff881612fc _pthread_body + 131
7   libsystem_pthread.dylib             0x00007fff88161279 _pthread_body + 0
8   libsystem_pthread.dylib             0x00007fff8815f4b1 thread_start + 13
Abort trap: 6

Which seems to indicate (I'm no expert) that this is happening inside ftdi_device.

My code is here: https://github.com/NZRegistryServices/entropyserver though it uses a ComScire PQ32MU which is not a common device. The ComScire outputs random numbers at 32Mb/s.

I'm running this on OSX 10.10 with all of the ftdi changes necessary to make it work properly.

any ideas?
thanks in advance

Where to start to make this "build" on raspberry pi with debian

As the title suggest, I am trying to make this build on my raspberry pi, I tried with node v8, v11, v14 but always get stuck with node-gyp rebuild. The ftd driver seems to be installed and .h files linked okay, because I can use it with python for example, not sure what the issue is here, but I saw similar open and closed issues in here without a solution.

I am looking forward to fix this myself, but I'd appreciate a general advice or direction in which to go to find out what the issue is.

error:

root@DietPi:/home/sftpuser01/zrx/experiment/node_modules/ftdi# npm run postinstall

> [email protected] postinstall /home/sftpuser01/zrx/experiment/node_modules/ftdi
> node-gyp rebuild

make: Entering directory '/home/sftpuser01/zrx/experiment/node_modules/ftdi/build'
  CXX(target) Release/obj.target/ftdi/src/ftdi_device.o
In file included from ../src/ftdi_device.cc:11:
../src/ftdi_device.h:74:28: error: ‘Handle’ has not been declared
   74 |     static void Initialize(Handle<Object> target);
      |                            ^~~~~~
../src/ftdi_device.h:74:34: error: expected ‘,’ or ‘...’ before ‘<’ token
   74 |     static void Initialize(Handle<Object> target);
      |                                  ^
../src/ftdi_device.h: In function ‘void AsyncQueueWorkerPersistent(Nan::AsyncWorker*)’:
../src/ftdi_device.h:123:7: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
  123 |     , (uv_after_work_cb)AsyncExecuteCompletePersistent
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/ftdi_device.cc:12:
../src/ftdi_driver.h: At global scope:
../src/ftdi_driver.h:14:6: error: variable or field ‘InitializeList’ declared void
   14 | void InitializeList(Handle<Object> target);
      |      ^~~~~~~~~~~~~~
../src/ftdi_driver.h:14:21: error: ‘Handle’ was not declared in this scope
   14 | void InitializeList(Handle<Object> target);
      |                     ^~~~~~
../src/ftdi_driver.h:14:34: error: expected primary-expression before ‘>’ token
   14 | void InitializeList(Handle<Object> target);
      |                                  ^
../src/ftdi_driver.h:14:36: error: ‘target’ was not declared in this scope
   14 | void InitializeList(Handle<Object> target);
      |                                    ^~~~~~
../src/ftdi_device.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE ftdi_device::FtdiDevice::New(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/ftdi_device.cc:92:43: error: no matching function for call to ‘v8::Value::ToObject()’
   92 |     Local<Object> obj = info[0]->ToObject();
      |                                           ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:2822:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
 2822 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
      |                                            ^~~~~~~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:2822:44: note:   candidate expects 1 argument, 0 provided
../src/ftdi_device.cc:102:27: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
  102 |     if(obj->Has(locationId) && obj->Get(locationId)->Int32Value() != 0)
      |                           ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3752 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)’
 3758 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:102:51: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  102 |     if(obj->Has(locationId) && obj->Get(locationId)->Int32Value() != 0)
      |                                                   ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:104:60: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  104 |       object->connectParams.connectId = obj->Get(locationId)->Int32Value();
      |                                                            ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:107:28: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
  107 |     else if(obj->Has(serial) && obj->Get(serial)->ToString()->Length() > 0)
      |                            ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3752 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)’
 3758 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:107:48: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  107 |     else if(obj->Has(serial) && obj->Get(serial)->ToString()->Length() > 0)
      |                                                ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:109:32: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  109 |       ToCString(obj->Get(serial)->ToString(), &object->connectParams.connectString);
      |                                ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:112:33: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
  112 |     else if(obj->Has(description) && obj->Get(description)->ToString()->Length() > 0)
      |                                 ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3752 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)’
 3758 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:112:58: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  112 |     else if(obj->Has(description) && obj->Get(description)->ToString()->Length() > 0)
      |                                                          ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:114:37: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  114 |       ToCString(obj->Get(description)->ToString(), &object->connectParams.connectString);
      |                                     ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:117:27: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
  117 |     else if(obj->Has(index))
      |                           ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3752 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)’
 3758 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:119:55: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  119 |       object->connectParams.connectId = obj->Get(index)->Int32Value();
      |                                                       ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:123:20: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
  123 |     if(obj->Has(vid))
      |                    ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3752 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)’
 3758 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:125:47: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  125 |       object->connectParams.vid = obj->Get(vid)->Int32Value();
      |                                               ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:128:20: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
  128 |     if(obj->Has(pid))
      |                    ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3752 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)’
 3758 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:130:47: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  130 |       object->connectParams.pid = obj->Get(pid)->Int32Value();
      |                                               ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:136:66: error: no matching function for call to ‘v8::Value::NumberValue()’
  136 |     object->connectParams.connectId = (int) info[0]->NumberValue();
      |                                                                  ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:2861:39: note: candidate: ‘v8::Maybe<double> v8::Value::NumberValue(v8::Local<v8::Context>) const’
 2861 |   V8_WARN_UNUSED_RESULT Maybe<double> NumberValue(Local<Context> context) const;
      |                                       ^~~~~~~~~~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:2861:39: note:   candidate expects 1 argument, 0 provided
../src/ftdi_device.cc: In member function ‘virtual void ReadWorker::HandleOKCallback()’:
../src/ftdi_device.cc:191:123: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>)’
  191 |      Local<Function> bufferConstructor = Local<Function>::Cast(globalObj->Get(Nan::New<String>("Buffer").ToLocalChecked()));
      |                                                                                                                          ^

In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:192:7: error: ‘Handle’ was not declared in this scope
  192 |       Handle<Value> constructorArgs[3] = { slowBuffer, Nan::New<Number>(baton->length), Nan::New<Number>(0) };
      |       ^~~~~~
../src/ftdi_device.cc:192:19: error: expected primary-expression before ‘>’ token
  192 |       Handle<Value> constructorArgs[3] = { slowBuffer, Nan::New<Number>(baton->length), Nan::New<Number>(0) };
      |                   ^
../src/ftdi_device.cc:192:21: error: ‘constructorArgs’ was not declared in this scope
  192 |       Handle<Value> constructorArgs[3] = { slowBuffer, Nan::New<Number>(baton->length), Nan::New<Number>(0) };
      |                     ^~~~~~~~~~~~~~~
../src/ftdi_device.cc:205:29: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
  205 |       callback->Call(2, argv);
      |                             ^
In file included from ../src/ftdi_device.h:9,
                 from ../src/ftdi_device.cc:11:
../../nan/nan.h:1746:3: note: declared here
 1746 |   Call(int argc, v8::Local<v8::Value> argv[]) const {
      |   ^~~~
../src/ftdi_device.cc: In member function ‘virtual void OpenWorker::HandleOKCallback()’:
../src/ftdi_device.cc:344:29: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
  344 |       callback->Call(1, argv);
      |                             ^
In file included from ../src/ftdi_device.h:9,
                 from ../src/ftdi_device.cc:11:
../../nan/nan.h:1746:3: note: declared here
 1746 |   Call(int argc, v8::Local<v8::Value> argv[]) const {
      |   ^~~~
../src/ftdi_device.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE ftdi_device::FtdiDevice::Open(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/ftdi_device.cc:398:27: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
  398 |     callback->Call(1, argv);
      |                           ^
In file included from ../src/ftdi_device.h:9,
                 from ../src/ftdi_device.cc:11:
../../nan/nan.h:1746:3: note: declared here
 1746 |   Call(int argc, v8::Local<v8::Value> argv[]) const {
      |   ^~~~
../src/ftdi_device.cc:405:53: error: no matching function for call to ‘v8::Value::ToObject()’
  405 |     device->ExtractDeviceSettings(info[0]->ToObject());
      |                                                     ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:2822:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
 2822 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
      |                                            ^~~~~~~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:2822:44: note:   candidate expects 1 argument, 0 provided
../src/ftdi_device.cc: In member function ‘FT_STATUS ftdi_device::FtdiDevice::OpenDevice()’:
../src/ftdi_device.cc:484:23: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  484 |                 arg = (PVOID) connectParams.connectId;
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/ftdi_device.cc: In member function ‘virtual void WriteWorker::HandleOKCallback()’:
../src/ftdi_device.cc:552:29: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
  552 |       callback->Call(1, argv);
      |                             ^
In file included from ../src/ftdi_device.h:9,
                 from ../src/ftdi_device.cc:11:
../../nan/nan.h:1746:3: note: declared here
 1746 |   Call(int argc, v8::Local<v8::Value> argv[]) const {
      |   ^~~~
../src/ftdi_device.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE ftdi_device::FtdiDevice::Write(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/ftdi_device.cc:575:44: error: no matching function for call to ‘v8::Value::ToObject()’
  575 |   Local<Object> buffer = info[0]->ToObject();
      |                                            ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:2822:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
 2822 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
      |                                            ^~~~~~~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:2822:44: note:   candidate expects 1 argument, 0 provided
../src/ftdi_device.cc: In member function ‘virtual void CloseWorker::HandleOKCallback()’:
../src/ftdi_device.cc:651:29: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
  651 |       callback->Call(1, argv);
      |                             ^
In file included from ../src/ftdi_device.h:9,
                 from ../src/ftdi_device.cc:11:
../../nan/nan.h:1746:3: note: declared here
 1746 |   Call(int argc, v8::Local<v8::Value> argv[]) const {
      |   ^~~~
../src/ftdi_device.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE ftdi_device::FtdiDevice::Close(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/ftdi_device.cc:681:29: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
  681 |       callback->Call(1, argv);
      |                             ^
In file included from ../src/ftdi_device.h:9,
                 from ../src/ftdi_device.cc:11:
../../nan/nan.h:1746:3: note: declared here
 1746 |   Call(int argc, v8::Local<v8::Value> argv[]) const {
      |   ^~~~
../src/ftdi_device.cc: In member function ‘void ftdi_device::FtdiDevice::ExtractDeviceSettings(v8::Local<v8::Object>)’:
../src/ftdi_device.cc:781:27: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
  781 |   if(options->Has(baudrate))
      |                           ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3752 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)’
 3758 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:783:50: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  783 |     deviceParams.baudRate = options->Get(baudrate)->ToInt32()->Int32Value();
      |                                                  ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:785:27: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
  785 |   if(options->Has(databits))
      |                           ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3752 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)’
 3758 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:787:66: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  787 |     deviceParams.wordLength = GetWordLength(options->Get(databits)->ToInt32()->Int32Value());
      |                                                                  ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:789:27: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
  789 |   if(options->Has(stopbits))
      |                           ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3752 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)’
 3758 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:791:62: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  791 |     deviceParams.stopBits = GetStopBits(options->Get(stopbits)->ToInt32()->Int32Value());
      |                                                              ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:793:25: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
  793 |   if(options->Has(parity))
      |                         ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3752 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)’
 3758 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:796:34: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  796 |     ToCString(options->Get(parity)->ToString(), &str);
      |                                  ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:800:27: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
  800 |   if(options->Has(flowctrl))
      |                           ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3752 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)’
 3758 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:803:36: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  803 |     ToCString(options->Get(flowctrl)->ToString(), &str);
      |                                    ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:812:26: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
  812 |   if(options->Has(bitmode))
      |                          ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3752 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)’
 3758 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:814:50: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  814 |       deviceParams.bitMode = options->Get(bitmode)->ToInt32()->Int32Value();
      |                                                  ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:820:44: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
  820 |   if(hasBitSettings && options->Has(bitmask))
      |                                            ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3752 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3752:37: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)’
 3758 |   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
      |                                     ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3758:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:822:50: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
  822 |       deviceParams.bitMask = options->Get(bitmask)->ToInt32()->Int32Value();
      |                                                  ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      |                                           ^~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc: In function ‘void ToCString(v8::Local<v8::String>, char**)’:
../src/ftdi_device.cc:900:35: error: no matching function for call to ‘v8::String::Utf8Length()’
  900 |   *ptr = new char[val->Utf8Length() + 1];
      |                                   ^
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:2977:7: note: candidate: ‘int v8::String::Utf8Length(v8::Isolate*) const’
 2977 |   int Utf8Length(Isolate* isolate) const;
      |       ^~~~~~~~~~
/root/.cache/node-gyp/14.20.0/include/node/v8.h:2977:7: note:   candidate expects 1 argument, 0 provided
../src/ftdi_device.cc:903:21: error: cannot convert ‘uint8_t*’ {aka ‘unsigned char*’} to ‘v8::Isolate*’
  903 |   val->WriteOneByte(reinterpret_cast<uint8_t*>(*ptr), 0, -1, 0);
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                     |
      |                     uint8_t* {aka unsigned char*}
In file included from /root/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/root/.cache/node-gyp/14.20.0/include/node/v8.h:3034:29: note:   initializing argument 1 of ‘int v8::String::WriteOneByte(v8::Isolate*, uint8_t*, int, int, int) const’
 3034 |   int WriteOneByte(Isolate* isolate, uint8_t* buffer, int start = 0,
      |                    ~~~~~~~~~^~~~~~~
../src/ftdi_device.cc: At global scope:
../src/ftdi_device.cc:989:6: error: variable or field ‘Initialize’ declared void
  989 | void FtdiDevice::Initialize(v8::Handle<v8::Object> target)
      |      ^~~~~~~~~~
../src/ftdi_device.cc:989:33: error: ‘Handle’ is not a member of ‘v8’; did you mean ‘JobHandle’?
  989 | void FtdiDevice::Initialize(v8::Handle<v8::Object> target)
      |                                 ^~~~~~
      |                                 JobHandle
../src/ftdi_device.cc:989:50: error: expected primary-expression before ‘>’ token
  989 | void FtdiDevice::Initialize(v8::Handle<v8::Object> target)
      |                                                  ^
../src/ftdi_device.cc:989:52: error: ‘target’ was not declared in this scope
  989 | void FtdiDevice::Initialize(v8::Handle<v8::Object> target)
      |                                                    ^~~~~~
../src/ftdi_device.cc:1006:8: error: variable or field ‘init’ declared void
 1006 |   void init (v8::Handle<v8::Object> target)
      |        ^~~~
../src/ftdi_device.cc:1006:18: error: ‘Handle’ is not a member of ‘v8’; did you mean ‘JobHandle’?
 1006 |   void init (v8::Handle<v8::Object> target)
      |                  ^~~~~~
      |                  JobHandle
../src/ftdi_device.cc:1006:35: error: expected primary-expression before ‘>’ token
 1006 |   void init (v8::Handle<v8::Object> target)
      |                                   ^
../src/ftdi_device.cc:1006:37: error: ‘target’ was not declared in this scope
 1006 |   void init (v8::Handle<v8::Object> target)
      |                                     ^~~~~~
In file included from /root/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
../src/ftdi_device.cc:1014:19: error: ‘init’ was not declared in this scope; did you mean ‘int’?
 1014 | NODE_MODULE(ftdi, init)
      |                   ^~~~
/root/.cache/node-gyp/14.20.0/include/node/node.h:793:36: note: in definition of macro ‘NODE_MODULE_X’
  793 |       (node::addon_register_func) (regfunc),                          \
      |                                    ^~~~~~~
../src/ftdi_device.cc:1014:1: note: in expansion of macro ‘NODE_MODULE’
 1014 | NODE_MODULE(ftdi, init)
      | ^~~~~~~~~~~
make: *** [ftdi.target.mk:116: Release/obj.target/ftdi/src/ftdi_device.o] Error 1
make: Leaving directory '/home/sftpuser01/zrx/experiment/node_modules/ftdi/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/root/.nvm/versions/node/v14.20.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:400:28)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:285:12)
gyp ERR! System Linux 5.15.32-v8+
gyp ERR! command "/root/.nvm/versions/node/v14.20.0/bin/node" "/root/.nvm/versions/node/v14.20.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/sftpuser01/zrx/experiment/node_modules/ftdi
gyp ERR! node -v v14.20.0
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok 
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] postinstall: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2022-07-28T08_47_29_530Z-debug.log

Failed to build on Ubuntu 18.04.3

I cloned the repo and sudo ./install.sh it:

Detected OS:
linux (64bit)
Download FTDI Library
--2019-12-11 09:27:19--  http://www.ftdichip.com/Drivers/D2XX/Linux/libftd2xx1.1.12.tar.gz
Resolving www.ftdichip.com (www.ftdichip.com)... 217.160.0.65
Connecting to www.ftdichip.com (www.ftdichip.com)|217.160.0.65|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://www.ftdichip.com/Drivers/D2XX/Linux/libftd2xx1.1.12.tar.gz [following]
--2019-12-11 09:27:22--  https://www.ftdichip.com/Drivers/D2XX/Linux/libftd2xx1.1.12.tar.gz
Connecting to www.ftdichip.com (www.ftdichip.com)|217.160.0.65|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 950540 (928K) [application/gzip]
Saving to: ‘libftd2xx1.1.12.tar.gz’

libftd2xx1.1.12.tar 100%[===================>] 928,26K   582KB/s    in 1,6s    

2019-12-11 09:27:24 (582 KB/s) - ‘libftd2xx1.1.12.tar.gz’ saved [950540/950540]

extract lib
'tmp/release/build/x86_64/libftd2xx.a' -> '/usr/local/lib/libftd2xx.a'
'tmp/release/build/x86_64/libftd2xx.so.1.1.12' -> '/usr/local/lib/libftd2xx.so.1.1.12'
'tmp/release/ftd2xx.h' -> '/usr/local/include/libftd2xx/ftd2xx.h'
'tmp/release/WinTypes.h' -> '/usr/local/include/libftd2xx/WinTypes.h'
'/usr/local/lib/libftd2xx.so' -> '/usr/local/lib/libftd2xx.so.1.1.12'

than I yarn add node-ftdi into my fresh new project and that is what happen:

yarn add v1.19.2
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
error /home/cassiano/dev/rvnexus-lite/node_modules/ftdi: Command failed.
Exit code: 1
Command: node-gyp rebuild
Arguments: 
Directory: /home/cassiano/dev/rvnexus-lite/node_modules/ftdi
Output:
gyp info it worked if it ends with ok
gyp info using [email protected]
gyp info using [email protected] | linux | x64
gyp info find Python using Python version 2.7.15 found at "/usr/bin/python"
gyp info spawn /usr/bin/python
gyp info spawn args [
gyp info spawn args   '/home/cassiano/.asdf/installs/nodejs/13.2.0/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/home/cassiano/dev/rvnexus-lite/node_modules/ftdi/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/home/cassiano/.asdf/installs/nodejs/13.2.0/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/home/cassiano/.cache/node-gyp/13.2.0/include/node/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/home/cassiano/.cache/node-gyp/13.2.0',
gyp info spawn args   '-Dnode_gyp_dir=/home/cassiano/.asdf/installs/nodejs/13.2.0/lib/node_modules/npm/node_modules/node-gyp',
gyp info spawn args   '-Dnode_lib_file=/home/cassiano/.cache/node-gyp/13.2.0/<(target_arch)/node.lib',
gyp info spawn args   '-Dmodule_root_dir=/home/cassiano/dev/rvnexus-lite/node_modules/ftdi',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.'
gyp info spawn args ]
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
make: Entering directory '/home/cassiano/dev/rvnexus-lite/node_modules/ftdi/build'
  CXX(target) Release/obj.target/ftdi/src/ftdi_device.o
In file included from ../src/ftdi_device.cc:11:0:
../src/ftdi_device.h:74:28: error: ‘Handle’ has not been declared
     static void Initialize(Handle<Object> target);
                            ^~~~~~
../src/ftdi_device.h:74:34: error: expected ‘,’ or ‘...’ before ‘<’ token
     static void Initialize(Handle<Object> target);
                                  ^
In file included from ../src/ftdi_device.cc:12:0:
../src/ftdi_driver.h:14:21: error: variable or field ‘InitializeList’ declared void
 void InitializeList(Handle<Object> target);
                     ^~~~~~
../src/ftdi_driver.h:14:21: error: ‘Handle’ was not declared in this scope
../src/ftdi_driver.h:14:21: note: suggested alternative: ‘rand_r’
 void InitializeList(Handle<Object> target);
                     ^~~~~~
                     rand_r
../src/ftdi_driver.h:14:34: error: expected primary-expression before ‘>’ token
 void InitializeList(Handle<Object> target);
                                  ^
../src/ftdi_driver.h:14:36: error: ‘target’ was not declared in this scope
 void InitializeList(Handle<Object> target);
                                    ^~~~~~
../src/ftdi_driver.h:14:36: note: suggested alternative: ‘tzset’
 void InitializeList(Handle<Object> target);
                                    ^~~~~~
                                    tzset
../src/ftdi_device.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE ftdi_device::FtdiDevice::New(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/ftdi_device.cc:92:43: error: no matching function for call to ‘v8::Value::ToObject()’
     Local<Object> obj = info[0]->ToObject();
                                           ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:2754:44: note: candidate: v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const
   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
                                            ^~~~~~~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:2754:44: note:   candidate expects 1 argument, 0 provided
../src/ftdi_device.cc:102:27: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
     if(obj->Has(locationId) && obj->Get(locationId)->Int32Value() != 0)
                           ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3629:37: note: candidate: v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
                                     ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3629:37: note:   candidate expects 2 arguments, 1 provided
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3635:37: note: candidate: v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
                                     ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3635:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:102:51: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
     if(obj->Has(locationId) && obj->Get(locationId)->Int32Value() != 0)
                                                   ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note:   candidate expects 2 arguments, 1 provided
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:104:60: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
       object->connectParams.connectId = obj->Get(locationId)->Int32Value();
                                                            ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note:   candidate expects 2 arguments, 1 provided
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:107:28: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
     else if(obj->Has(serial) && obj->Get(serial)->ToString()->Length() > 0)
                            ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3629:37: note: candidate: v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
                                     ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3629:37: note:   candidate expects 2 arguments, 1 provided
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3635:37: note: candidate: v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
                                     ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3635:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:107:48: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
     else if(obj->Has(serial) && obj->Get(serial)->ToString()->Length() > 0)
                                                ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note:   candidate expects 2 arguments, 1 provided
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:109:32: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
       ToCString(obj->Get(serial)->ToString(), &object->connectParams.connectString);
                                ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note:   candidate expects 2 arguments, 1 provided
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:112:33: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
     else if(obj->Has(description) && obj->Get(description)->ToString()->Length() > 0)
                                 ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3629:37: note: candidate: v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
                                     ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3629:37: note:   candidate expects 2 arguments, 1 provided
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3635:37: note: candidate: v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
                                     ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3635:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:112:58: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
     else if(obj->Has(description) && obj->Get(description)->ToString()->Length() > 0)
                                                          ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note:   candidate expects 2 arguments, 1 provided
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:114:37: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
       ToCString(obj->Get(description)->ToString(), &object->connectParams.connectString);
                                     ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note:   candidate expects 2 arguments, 1 provided
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:117:27: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
     else if(obj->Has(index))
                           ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3629:37: note: candidate: v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
                                     ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3629:37: note:   candidate expects 2 arguments, 1 provided
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3635:37: note: candidate: v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
                                     ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3635:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:119:55: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
       object->connectParams.connectId = obj->Get(index)->Int32Value();
                                                       ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note:   candidate expects 2 arguments, 1 provided
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:123:20: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
     if(obj->Has(vid))
                    ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3629:37: note: candidate: v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
                                     ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3629:37: note:   candidate expects 2 arguments, 1 provided
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3635:37: note: candidate: v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
                                     ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3635:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:125:47: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
       object->connectParams.vid = obj->Get(vid)->Int32Value();
                                               ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note:   candidate expects 2 arguments, 1 provided
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:128:20: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
     if(obj->Has(pid))
                    ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3629:37: note: candidate: v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
                                     ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3629:37: note:   candidate expects 2 arguments, 1 provided
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3635:37: note: candidate: v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
                                     ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3635:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:130:47: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
       object->connectParams.pid = obj->Get(pid)->Int32Value();
                                               ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note:   candidate expects 2 arguments, 1 provided
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:136:66: error: no matching function for call to ‘v8::Value::NumberValue()’
     object->connectParams.connectId = (int) info[0]->NumberValue();
                                                                  ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:2773:39: note: candidate: v8::Maybe<double> v8::Value::NumberValue(v8::Local<v8::Context>) const
   V8_WARN_UNUSED_RESULT Maybe<double> NumberValue(Local<Context> context) const;
                                       ^~~~~~~~~~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:2773:39: note:   candidate expects 1 argument, 0 provided
../src/ftdi_device.cc: In member function ‘virtual void ReadWorker::HandleOKCallback()’:
../src/ftdi_device.cc:191:123: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>)’
       Local<Function> bufferConstructor = Local<Function>::Cast(globalObj->Get(Nan::New<String>("Buffer").ToLocalChecked()));
                                                                                                                           ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note:   candidate expects 2 arguments, 1 provided
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:192:7: error: ‘Handle’ was not declared in this scope
       Handle<Value> constructorArgs[3] = { slowBuffer, Nan::New<Number>(baton->length), Nan::New<Number>(0) };
       ^~~~~~
../src/ftdi_device.cc:192:7: note: suggested alternative: ‘rand_r’
       Handle<Value> constructorArgs[3] = { slowBuffer, Nan::New<Number>(baton->length), Nan::New<Number>(0) };
       ^~~~~~
       rand_r
../src/ftdi_device.cc:192:19: error: expected primary-expression before ‘>’ token
       Handle<Value> constructorArgs[3] = { slowBuffer, Nan::New<Number>(baton->length), Nan::New<Number>(0) };
                   ^
../src/ftdi_device.cc:192:21: error: ‘constructorArgs’ was not declared in this scope
       Handle<Value> constructorArgs[3] = { slowBuffer, Nan::New<Number>(baton->length), Nan::New<Number>(0) };
                     ^~~~~~~~~~~~~~~
../src/ftdi_device.cc:205:29: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
       callback->Call(2, argv);
                             ^
In file included from ../src/ftdi_device.h:9:0,
                 from ../src/ftdi_device.cc:11:
../../nan/nan.h:1740:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/ftdi_device.cc: In member function ‘virtual void OpenWorker::HandleOKCallback()’:
../src/ftdi_device.cc:344:29: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
       callback->Call(1, argv);
                             ^
In file included from ../src/ftdi_device.h:9:0,
                 from ../src/ftdi_device.cc:11:
../../nan/nan.h:1740:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/ftdi_device.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE ftdi_device::FtdiDevice::Open(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/ftdi_device.cc:398:27: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
     callback->Call(1, argv);
                           ^
In file included from ../src/ftdi_device.h:9:0,
                 from ../src/ftdi_device.cc:11:
../../nan/nan.h:1740:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/ftdi_device.cc:405:53: error: no matching function for call to ‘v8::Value::ToObject()’
     device->ExtractDeviceSettings(info[0]->ToObject());
                                                     ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:2754:44: note: candidate: v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const
   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
                                            ^~~~~~~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:2754:44: note:   candidate expects 1 argument, 0 provided
../src/ftdi_device.cc: In member function ‘FT_STATUS ftdi_device::FtdiDevice::OpenDevice()’:
../src/ftdi_device.cc:484:45: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
                 arg = (PVOID) connectParams.connectId;
                                             ^~~~~~~~~
../src/ftdi_device.cc: In member function ‘virtual void WriteWorker::HandleOKCallback()’:
../src/ftdi_device.cc:552:29: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
       callback->Call(1, argv);
                             ^
In file included from ../src/ftdi_device.h:9:0,
                 from ../src/ftdi_device.cc:11:
../../nan/nan.h:1740:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/ftdi_device.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE ftdi_device::FtdiDevice::Write(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/ftdi_device.cc:575:44: error: no matching function for call to ‘v8::Value::ToObject()’
   Local<Object> buffer = info[0]->ToObject();
                                            ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:2754:44: note: candidate: v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const
   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
                                            ^~~~~~~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:2754:44: note:   candidate expects 1 argument, 0 provided
../src/ftdi_device.cc: In member function ‘virtual void CloseWorker::HandleOKCallback()’:
../src/ftdi_device.cc:651:29: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
       callback->Call(1, argv);
                             ^
In file included from ../src/ftdi_device.h:9:0,
                 from ../src/ftdi_device.cc:11:
../../nan/nan.h:1740:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/ftdi_device.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE ftdi_device::FtdiDevice::Close(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/ftdi_device.cc:681:29: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
       callback->Call(1, argv);
                             ^
In file included from ../src/ftdi_device.h:9:0,
                 from ../src/ftdi_device.cc:11:
../../nan/nan.h:1740:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
../src/ftdi_device.cc: In member function ‘void ftdi_device::FtdiDevice::ExtractDeviceSettings(v8::Local<v8::Object>)’:
../src/ftdi_device.cc:781:27: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
   if(options->Has(baudrate))
                           ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3629:37: note: candidate: v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
                                     ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3629:37: note:   candidate expects 2 arguments, 1 provided
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3635:37: note: candidate: v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
                                     ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3635:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:783:50: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
     deviceParams.baudRate = options->Get(baudrate)->ToInt32()->Int32Value();
                                                  ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note:   candidate expects 2 arguments, 1 provided
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:785:27: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
   if(options->Has(databits))
                           ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3629:37: note: candidate: v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
                                     ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3629:37: note:   candidate expects 2 arguments, 1 provided
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3635:37: note: candidate: v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
                                     ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3635:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:787:66: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
     deviceParams.wordLength = GetWordLength(options->Get(databits)->ToInt32()->Int32Value());
                                                                  ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note:   candidate expects 2 arguments, 1 provided
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:789:27: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
   if(options->Has(stopbits))
                           ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3629:37: note: candidate: v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
                                     ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3629:37: note:   candidate expects 2 arguments, 1 provided
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3635:37: note: candidate: v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
                                     ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3635:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:791:62: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
     deviceParams.stopBits = GetStopBits(options->Get(stopbits)->ToInt32()->Int32Value());
                                                              ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note:   candidate expects 2 arguments, 1 provided
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:793:25: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
   if(options->Has(parity))
                         ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3629:37: note: candidate: v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
                                     ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3629:37: note:   candidate expects 2 arguments, 1 provided
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3635:37: note: candidate: v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
                                     ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3635:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:796:34: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
     ToCString(options->Get(parity)->ToString(), &str);
                                  ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note:   candidate expects 2 arguments, 1 provided
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:800:27: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
   if(options->Has(flowctrl))
                           ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3629:37: note: candidate: v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
                                     ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3629:37: note:   candidate expects 2 arguments, 1 provided
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3635:37: note: candidate: v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
                                     ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3635:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:803:36: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
     ToCString(options->Get(flowctrl)->ToString(), &str);
                                    ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note:   candidate expects 2 arguments, 1 provided
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:812:26: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
   if(options->Has(bitmode))
                          ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3629:37: note: candidate: v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
                                     ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3629:37: note:   candidate expects 2 arguments, 1 provided
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3635:37: note: candidate: v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
                                     ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3635:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:814:50: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
       deviceParams.bitMode = options->Get(bitmode)->ToInt32()->Int32Value();
                                                  ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note:   candidate expects 2 arguments, 1 provided
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:820:44: error: no matching function for call to ‘v8::Object::Has(v8::Local<v8::String>&)’
   if(hasBitSettings && options->Has(bitmask))
                                            ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3629:37: note: candidate: v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
                                     ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3629:37: note:   candidate expects 2 arguments, 1 provided
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3635:37: note: candidate: v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
                                     ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3635:37: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc:822:50: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>&)’
       deviceParams.bitMask = options->Get(bitmask)->ToInt32()->Int32Value();
                                                  ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3594:43: note:   candidate expects 2 arguments, 1 provided
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:3597:43: note:   candidate expects 2 arguments, 1 provided
../src/ftdi_device.cc: In function ‘void ToCString(v8::Local<v8::String>, char**)’:
../src/ftdi_device.cc:900:35: error: no matching function for call to ‘v8::String::Utf8Length()’
   *ptr = new char[val->Utf8Length() + 1];
                                   ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:2887:7: note: candidate: int v8::String::Utf8Length(v8::Isolate*) const
   int Utf8Length(Isolate* isolate) const;
       ^~~~~~~~~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:2887:7: note:   candidate expects 1 argument, 0 provided
../src/ftdi_device.cc:903:63: error: no matching function for call to ‘v8::String::WriteOneByte(uint8_t*, int, int, int)’
   val->WriteOneByte(reinterpret_cast<uint8_t*>(*ptr), 0, -1, 0);
                                                               ^
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:63:0,
                 from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25,
                 from ../src/ftdi_device.cc:8:
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:2944:7: note: candidate: int v8::String::WriteOneByte(v8::Isolate*, uint8_t*, int, int, int) const
   int WriteOneByte(Isolate* isolate, uint8_t* buffer, int start = 0,
       ^~~~~~~~~~~~
/home/cassiano/.cache/node-gyp/13.2.0/include/node/v8.h:2944:7: note:   no known conversion for argument 1 from ‘uint8_t* {aka unsigned char*}’ to ‘v8::Isolate*’
../src/ftdi_device.cc: At global scope:
../src/ftdi_device.cc:989:33: error: variable or field ‘Initialize’ declared void
 void FtdiDevice::Initialize(v8::Handle<v8::Object> target)
                                 ^~~~~~
../src/ftdi_device.cc:989:33: error: ‘Handle’ is not a member of ‘v8’
../src/ftdi_device.cc:989:50: error: expected primary-expression before ‘>’ token
 void FtdiDevice::Initialize(v8::Handle<v8::Object> target)
                                                  ^
../src/ftdi_device.cc:989:52: error: ‘target’ was not declared in this scope
 void FtdiDevice::Initialize(v8::Handle<v8::Object> target)
                                                    ^~~~~~
../src/ftdi_device.cc:989:52: note: suggested alternative: ‘tzset’
 void FtdiDevice::Initialize(v8::Handle<v8::Object> target)
                                                    ^~~~~~
                                                    tzset
../src/ftdi_device.cc:1006:18: error: variable or field ‘init’ declared void
   void init (v8::Handle<v8::Object> target)
                  ^~~~~~
../src/ftdi_device.cc:1006:18: error: ‘Handle’ is not a member of ‘v8’
../src/ftdi_device.cc:1006:35: error: expected primary-expression before ‘>’ token
   void init (v8::Handle<v8::Object> target)
                                   ^
../src/ftdi_device.cc:1006:37: error: ‘target’ was not declared in this scope
   void init (v8::Handle<v8::Object> target)
                                     ^~~~~~
../src/ftdi_device.cc:1006:37: note: suggested alternative: ‘tzset’
   void init (v8::Handle<v8::Object> target)
                                     ^~~~~~
                                     tzset
In file included from /home/cassiano/.cache/node-gyp/13.2.0/include/node/node_buffer.h:25:0,
                 from ../src/ftdi_device.cc:8:
../src/ftdi_device.cc:1014:19: error: ‘init’ was not declared in this scope
 NODE_MODULE(ftdi, init)
                   ^
/home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:610:36: note: in definition of macro ‘NODE_MODULE_X’
       (node::addon_register_func) (regfunc),                          \
                                    ^~~~~~~
../src/ftdi_device.cc:1014:1: note: in expansion of macro ‘NODE_MODULE’
 NODE_MODULE(ftdi, init)
 ^~~~~~~~~~~
../src/ftdi_device.cc:1014:19: note: suggested alternative: ‘int’
 NODE_MODULE(ftdi, init)
                   ^
/home/cassiano/.cache/node-gyp/13.2.0/include/node/node.h:610:36: note: in definition of macro ‘NODE_MODULE_X’
       (node::addon_register_func) (regfunc),                          \
                                    ^~~~~~~
../src/ftdi_device.cc:1014:1: note: in expansion of macro ‘NODE_MODULE’
 NODE_MODULE(ftdi, init)
 ^~~~~~~~~~~
ftdi.target.mk:116: recipe for target 'Release/obj.target/ftdi/src/ftdi_device.o' failed
make: *** [Release/obj.target/ftdi/src/ftdi_device.o] Error 1
make: Leaving directory '/home/cassiano/dev/rvnexus-lite/node_modules/ftdi/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/home/cassiano/.asdf/installs/nodejs/13.2.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:210:5)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:270:12)
gyp ERR! System Linux 5.0.0-37-generic
gyp ERR! command "/home/cassiano/.asdf/installs/nodejs/13.2.0/bin/node" "/home/cassiano/.asdf/installs/nodejs/13.2.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/cassiano/dev/rvnexus-lite/node_modules/ftdi
gyp ERR! node -v v13.2.0
gyp ERR! node-gyp -v v5.0.5
gyp ERR! not ok
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.

Sorry if I did something silly.

Can't list devices

Hello,

first of all, thanks for your work on this package !

I'm trying to list the devices plugged, but I keep receiving an empty array.

Here's what is in my index.js :

var ftdi = require('ftdi');

ftdi.find(0x27f4, 0x0203, function(err, devices) {
    console.log(err, devices);
});

I run the program with sudo node index.js.

I have an FTDI cable attached to my computer, it is correctly detected. Here are the logs that records when the cable is plugged in :

May  5 09:40:38 alan kernel: [  909.550744] usbcore: registered new interface driver usbserial
May  5 09:40:38 alan kernel: [  909.550785] usbcore: registered new interface driver usbserial_generic
May  5 09:40:38 alan kernel: [  909.550815] usbserial: USB Serial support registered for generic
May  5 09:40:38 alan kernel: [  909.557206] usbcore: registered new interface driver ftdi_sio
May  5 09:40:38 alan kernel: [  909.557233] usbserial: USB Serial support registered for FTDI USB Serial Device
May  5 09:40:38 alan kernel: [  909.557357] ftdi_sio 4-1:1.0: FTDI USB Serial Device converter detected
May  5 09:40:38 alan kernel: [  909.557430] usb 4-1: Detected FT232RL
May  5 09:40:38 alan kernel: [  909.560367] usb 4-1: FTDI USB Serial Device converter now attached to ttyUSB0

Does anyone have an idea of what is wrong here ?

Thanks in advance

How to send "break" signal?

Hi, I need to send break for my device to get it working but i'm not able to do that with this lib. What am I doing wrong? Official FTDI docs says that there are methods FT_SetBreakOn and FT_SetBreakOff which would be great for this. Thank you for help.

FTDIDevice TypeError

Using node version 9.9.0. Appears to be some sort of incompatibility with a recent version of node:

/home/pi/Projects/ponic-pi/node_modules/ftdi/index.js:42
  this.FTDIDevice = new FTDIDevice(settings);
                    ^

TypeError: new expects a object as argument
    at new FtdiDevice (/home/pi/Projects/ponic-pi/node_modules/ftdi/index.js:42:21)
    at /home/pi/Projects/ponic-pi/server.js:4:16

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.