Source: companion/lib/board/galileo.js


(function(exports, global) {

/* ----------------------------------------------------------------------------
 * This file was automatically generated by io-js-autogen Version 0.0.1
 *
 * Do not make changes to this file unless you know what you are doing--modify the
 * C header file instead.
 * ----------------------------------------------------------------------------- */

var Board = function(options) {

  submit = options.submit;
  
  var self = this;
  
  self.submit = options.submit;
  
  self.config  = function(options) {
    submit.config(options);
  };
  

/****************************************
           fast_gpio_sc
****************************************/

  /**
   * @function IO#fastGpioSCInit
   * @type function  
   * @param {Void}  
   * @returns {Integer}
   * @instance
   */
  self.fastGpioSCInit = function() {
    return self.submit.funcReq('fastGpioSCInit', arguments);
  };

  /**
   * @function IO#fastGpioSCFini
   * @type function  
   * @param {Void}  
   * @returns {Void}
   * @instance
   */
  self.fastGpioSCFini = function() {
    return self.submit.funcReq('fastGpioSCFini', arguments);
  };

  /**
   * @function IO#fastGpioDigitalWrite
   * @type function  
   * @param {Integer} gpio
   * @param {Integer} val  
   * @returns {Void}
   * @instance
   */
  self.fastGpioDigitalWrite = function() {
    return self.submit.funcReq('fastGpioDigitalWrite', arguments);
  };

  /**
   * @function IO#fastGpioDigitalWriteDestructive
   * @type function  
   * @param {Integer} gpio  
   * @returns {Void}
   * @instance
   */
  self.fastGpioDigitalWriteDestructive = function() {
    return self.submit.funcReq('fastGpioDigitalWriteDestructive', arguments);
  };

  /**
   * @function IO#fastGpioDigitalLatch
   * @type function  
   * @param {Void}  
   * @returns {Integer}
   * @instance
   */
  self.fastGpioDigitalLatch = function() {
    return self.submit.funcReq('fastGpioDigitalLatch', arguments);
  };

/****************************************
           TTYUART
****************************************/
  
  /**
   * @constructor
   * @name IO#TTYUARTClass
   * @param {Object} arg0
   * @param {Integer} arg1
   */
  TTYUARTClass = function() {
    return self.submit.classReq('TTYUARTClass', arguments, this);
  };
  
  /**
   * @function IO#TTYUARTClass#TTYIrqHandler
   * @type function
   * @param {Array} pargs
   * @returns {Array}
   * @instance
   */
  TTYUARTClass.prototype.TTYIrqHandler = function() {
    return self.submit.classMethodReq('TTYUARTClass', 'TTYIrqHandler', arguments, this);
  };
  
  /**
   * @function IO#TTYUARTClass#init_tty
   * @type function
   * @param {Array|String|Object} tty_name
   * @returns {Integer}
   * @instance
   */
  TTYUARTClass.prototype.init_tty = function() {
    return self.submit.classMethodReq('TTYUARTClass', 'init_tty', arguments, this);
  };
  
  /**
   * @function IO#TTYUARTClass#begin
   * @type function
   * @param {Integer} dwBaudRate
   * @returns {Void}
   * @instance
   */
  TTYUARTClass.prototype.begin = function() {
    return self.submit.classMethodReq('TTYUARTClass', 'begin', arguments, this);
  };
  
  /**
   * @function IO#TTYUARTClass#end
   * @type function
   * @param {Void}
   * @returns {Void}
   * @instance
   */
  TTYUARTClass.prototype.end = function() {
    return self.submit.classMethodReq('TTYUARTClass', 'end', arguments, this);
  };
  
  /**
   * @function IO#TTYUARTClass#available
   * @type function
   * @param {Void}
   * @returns {Integer}
   * @instance
   */
  TTYUARTClass.prototype.available = function() {
    return self.submit.classMethodReq('TTYUARTClass', 'available', arguments, this);
  };
  
  /**
   * @function IO#TTYUARTClass#peek
   * @type function
   * @param {Void}
   * @returns {Integer}
   * @instance
   */
  TTYUARTClass.prototype.peek = function() {
    return self.submit.classMethodReq('TTYUARTClass', 'peek', arguments, this);
  };
  
  /**
   * @function IO#TTYUARTClass#read
   * @type function
   * @param {Void}
   * @returns {Integer}
   * @instance
   */
  TTYUARTClass.prototype.read = function() {
    return self.submit.classMethodReq('TTYUARTClass', 'read', arguments, this);
  };
  
  /**
   * @function IO#TTYUARTClass#flush
   * @type function
   * @param {Void}
   * @returns {Void}
   * @instance
   */
  TTYUARTClass.prototype.flush = function() {
    return self.submit.classMethodReq('TTYUARTClass', 'flush', arguments, this);
  };
  
  /**
   * @function IO#TTYUARTClass#write
   * @type function
   * @param {Integer} c
   * @returns {Integer}
   * @instance
   */
  TTYUARTClass.prototype.write = function() {
    return self.submit.classMethodReq('TTYUARTClass', 'write', arguments, this);
  };
  
  self.TTYUARTClass = TTYUARTClass;

/****************************************
           sysfs
****************************************/

  /**
   * @function IO#sysfsPwmExport
   * @type function  
   * @param {Integer} pwm
   * @param {Array} handle_enable
   * @param {Array} handle_duty  
   * @returns {Integer}
   * @instance
   */
  self.sysfsPwmExport = function() {
    return self.submit.funcReq('sysfsPwmExport', arguments);
  };

  /**
   * @function IO#sysfsPwmEnable
   * @type function  
   * @param {Integer} handle_enable
   * @param {Integer} handle_duty
   * @param {Integer} ulValue  
   * @returns {Integer}
   * @instance
   */
  self.sysfsPwmEnable = function() {
    return self.submit.funcReq('sysfsPwmEnable', arguments);
  };

  /**
   * @function IO#sysfsPwmDisable
   * @type function  
   * @param {Integer} handle_enable  
   * @returns {Integer}
   * @instance
   */
  self.sysfsPwmDisable = function() {
    return self.submit.funcReq('sysfsPwmDisable', arguments);
  };

  /**
   * @function IO#sysfsGpioSet
   * @type function  
   * @param {Integer} ihandle
   * @param {Integer} value  
   * @returns {Integer}
   * @instance
   */
  self.sysfsGpioSet = function() {
    return self.submit.funcReq('sysfsGpioSet', arguments);
  };

  /**
   * @function IO#sysfsGpioGet
   * @type function  
   * @param {Integer} ihandle  
   * @returns {Integer}
   * @instance
   */
  self.sysfsGpioGet = function() {
    return self.submit.funcReq('sysfsGpioGet', arguments);
  };

  /**
   * @function IO#sysfsGpioExport
   * @type function  
   * @param {Integer} gpio
   * @param {Array|String|Object} path
   * @param {Integer} max_path  
   * @returns {Integer}
   * @instance
   */
  self.sysfsGpioExport = function() {
    return self.submit.funcReq('sysfsGpioExport', arguments);
  };

  /**
   * @function IO#sysfsGpioDirection
   * @type function  
   * @param {Integer} gpio
   * @param {Integer} output
   * @param {Integer} outval  
   * @returns {Integer}
   * @instance
   */
  self.sysfsGpioDirection = function() {
    return self.submit.funcReq('sysfsGpioDirection', arguments);
  };

  /**
   * @function IO#sysfsGpioEdgeConfig
   * @type function  
   * @param {Integer} gpio
   * @param {Integer} mode  
   * @returns {Integer}
   * @instance
   */
  self.sysfsGpioEdgeConfig = function() {
    return self.submit.funcReq('sysfsGpioEdgeConfig', arguments);
  };

  /**
   * @function IO#sysfsGpioLevelConfig
   * @type function  
   * @param {Integer} gpio
   * @param {Integer} mode  
   * @returns {Integer}
   * @instance
   */
  self.sysfsGpioLevelConfig = function() {
    return self.submit.funcReq('sysfsGpioLevelConfig', arguments);
  };

  /**
   * @function IO#sysfsGpioSetDrive
   * @type function  
   * @param {Integer} gpio
   * @param {Integer} mode  
   * @returns {Integer}
   * @instance
   */
  self.sysfsGpioSetDrive = function() {
    return self.submit.funcReq('sysfsGpioSetDrive', arguments);
  };

/****************************************
           SPI
****************************************/
  
  /**
   * @constructor
   * @name IO#SPIClass
   * @param {Void}
   */
  SPIClass = function() {
    return self.submit.classReq('SPIClass', arguments, this);
  };
  
  /**
   * @function IO#SPIClass#transfer
   * @type function
   * @param {Integer} _data
   * @returns {Integer}
   * @instance
   */
  SPIClass.prototype.transfer = function() {
    return self.submit.classMethodReq('SPIClass', 'transfer', arguments, this);
  };
  
  /**
   * @function IO#SPIClass#transferBuffer
   * @type function
   * @param {Array|String|Object} arg0
   * @param {Array|String|Object} arg1
   * @param {Integer} arg2
   * @returns {Void}
   * @instance
   */
  SPIClass.prototype.transferBuffer = function() {
    return self.submit.classMethodReq('SPIClass', 'transferBuffer', arguments, this);
  };
  
  /**
   * @function IO#SPIClass#attachInterrupt
   * @type function
   * @param {Void}
   * @returns {Void}
   * @instance
   */
  SPIClass.prototype.attachInterrupt = function() {
    return self.submit.classMethodReq('SPIClass', 'attachInterrupt', arguments, this);
  };
  
  /**
   * @function IO#SPIClass#detachInterrupt
   * @type function
   * @param {Void}
   * @returns {Void}
   * @instance
   */
  SPIClass.prototype.detachInterrupt = function() {
    return self.submit.classMethodReq('SPIClass', 'detachInterrupt', arguments, this);
  };
  
  /**
   * @function IO#SPIClass#begin
   * @type function
   * @param {Void}
   * @returns {Void}
   * @instance
   */
  SPIClass.prototype.begin = function() {
    return self.submit.classMethodReq('SPIClass', 'begin', arguments, this);
  };
  
  /**
   * @function IO#SPIClass#end
   * @type function
   * @param {Void}
   * @returns {Void}
   * @instance
   */
  SPIClass.prototype.end = function() {
    return self.submit.classMethodReq('SPIClass', 'end', arguments, this);
  };
  
  /**
   * @function IO#SPIClass#setBitOrder
   * @type function
   * @param {Integer} arg0
   * @returns {Void}
   * @instance
   */
  SPIClass.prototype.setBitOrder = function() {
    return self.submit.classMethodReq('SPIClass', 'setBitOrder', arguments, this);
  };
  
  /**
   * @function IO#SPIClass#setDataMode
   * @type function
   * @param {Integer} arg0
   * @returns {Void}
   * @instance
   */
  SPIClass.prototype.setDataMode = function() {
    return self.submit.classMethodReq('SPIClass', 'setDataMode', arguments, this);
  };
  
  /**
   * @function IO#SPIClass#setClockDivider
   * @type function
   * @param {Integer} arg0
   * @returns {Void}
   * @instance
   */
  SPIClass.prototype.setClockDivider = function() {
    return self.submit.classMethodReq('SPIClass', 'setClockDivider', arguments, this);
  };
  
  self.SPIClass = SPIClass;

  /**
   * @constant IO#SPI_CLOCK_DIV4
   * @desc 0x00
   */
  self.SPI_CLOCK_DIV4 = 0x00;

  /**
   * @constant IO#SPI_CLOCK_DIV16
   * @desc 0x01
   */
  self.SPI_CLOCK_DIV16 = 0x01;

  /**
   * @constant IO#SPI_CLOCK_DIV64
   * @desc 0x02
   */
  self.SPI_CLOCK_DIV64 = 0x02;

  /**
   * @constant IO#SPI_CLOCK_DIV128
   * @desc 0x03
   */
  self.SPI_CLOCK_DIV128 = 0x03;

  /**
   * @constant IO#SPI_CLOCK_DIV2
   * @desc 0x04
   */
  self.SPI_CLOCK_DIV2 = 0x04;

  /**
   * @constant IO#SPI_CLOCK_DIV8
   * @desc 0x05
   */
  self.SPI_CLOCK_DIV8 = 0x05;

  /**
   * @constant IO#SPI_CLOCK_DIV32
   * @desc 0x06
   */
  self.SPI_CLOCK_DIV32 = 0x06;

  /**
   * @constant IO#SPI_MODE0
   * @desc 0x00
   */
  self.SPI_MODE0 = 0x00;

  /**
   * @constant IO#SPI_MODE1
   * @desc 0x04
   */
  self.SPI_MODE1 = 0x04;

  /**
   * @constant IO#SPI_MODE2
   * @desc 0x08
   */
  self.SPI_MODE2 = 0x08;

  /**
   * @constant IO#SPI_MODE3
   * @desc 0x0C
   */
  self.SPI_MODE3 = 0x0C;

/**
 * @function IO#getSpiV8
 * @type function
 * @param {Void}
 * @returns {Object}
 * @instance
 */
  self.getSpiV8 = function() {
    return self.submit.funcReq('getSpiV8', arguments);
  };

/**
 * @function IO#setSpiV8
 * @type function

 * @param {Object} SPI
 * @return {Void}
 * @instance
 */
  self.setSpiV8 = function() {
    return self.submit.funcReq('setSpiV8', arguments);
  };

/****************************************
           Wire_norm
****************************************/
  
  /**
   * @constructor
   * @name IO#TwoWire
   * @param {Callback_0} begin_cb
   */
  TwoWire = function() {
    return self.submit.classReq('TwoWire', arguments, this);
  };
  
  /**
   * @function IO#TwoWire#begin
   * @type function
   * @param {Integer} [arg0]
   * @returns {Void}
   * @instance
   */
  TwoWire.prototype.begin = function() {
    return self.submit.classMethodReq('TwoWire', 'begin', arguments, this);
  };
  
  /**
   * @function IO#TwoWire#beginTransmission
   * @type function
   * @param {Integer} arg0
   * @returns {Void}
   * @instance
   */
  TwoWire.prototype.beginTransmission = function() {
    return self.submit.classMethodReq('TwoWire', 'beginTransmission', arguments, this);
  };
  
  /**
   * @function IO#TwoWire#endTransmission
   * @type function
   * @param {Integer} [arg0]
   * @returns {Integer}
   * @instance
   */
  TwoWire.prototype.endTransmission = function() {
    return self.submit.classMethodReq('TwoWire', 'endTransmission', arguments, this);
  };
  
  /**
   * @function IO#TwoWire#requestFrom
   * @type function
   * @param {Integer} arg0
   * @param {Integer} arg1
   * @param {Integer} [arg2]
   * @returns {Integer}
   * @instance
   */
  TwoWire.prototype.requestFrom = function() {
    return self.submit.classMethodReq('TwoWire', 'requestFrom', arguments, this);
  };
  
  /**
   * @function IO#TwoWire#write
   * @type function
   * @param {Integer|Array|String|Object} arg0
   * @param {Integer} [arg1]
   * @returns {Integer}
   * @instance
   */
  TwoWire.prototype.write = function() {
    return self.submit.classMethodReq('TwoWire', 'write', arguments, this);
  };
  
  /**
   * @function IO#TwoWire#available
   * @type function
   * @param {Void}
   * @returns {Integer}
   * @instance
   */
  TwoWire.prototype.available = function() {
    return self.submit.classMethodReq('TwoWire', 'available', arguments, this);
  };
  
  /**
   * @function IO#TwoWire#read
   * @type function
   * @param {Void}
   * @returns {Integer}
   * @instance
   */
  TwoWire.prototype.read = function() {
    return self.submit.classMethodReq('TwoWire', 'read', arguments, this);
  };
  
  /**
   * @function IO#TwoWire#peek
   * @type function
   * @param {Void}
   * @returns {Integer}
   * @instance
   */
  TwoWire.prototype.peek = function() {
    return self.submit.classMethodReq('TwoWire', 'peek', arguments, this);
  };
  
  /**
   * @function IO#TwoWire#flush
   * @type function
   * @param {Void}
   * @returns {Void}
   * @instance
   */
  TwoWire.prototype.flush = function() {
    return self.submit.classMethodReq('TwoWire', 'flush', arguments, this);
  };
  
  /**
   * @function IO#TwoWire#onReceive
   * @type function
   * @param {Callback_1} arg0
   * @returns {Void}
   * @instance
   */
  TwoWire.prototype.onReceive = function() {
    return self.submit.classMethodReq('TwoWire', 'onReceive', arguments, this);
  };
  
  /**
   * @function IO#TwoWire#onRequest
   * @type function
   * @param {Callback_2} arg0
   * @returns {Void}
   * @instance
   */
  TwoWire.prototype.onRequest = function() {
    return self.submit.classMethodReq('TwoWire', 'onRequest', arguments, this);
  };
  
  /**
   * @function IO#TwoWire#onService
   * @type function
   * @param {Void}
   * @returns {Void}
   * @instance
   */
  TwoWire.prototype.onService = function() {
    return self.submit.classMethodReq('TwoWire', 'onService', arguments, this);
  };
  
  self.TwoWire = TwoWire;

  /**
   * @constant IO#BUFFER_LENGTH
   * @desc 32
   */
  self.BUFFER_LENGTH = 32;

  /**
   * @constant IO#I2C2
   * @desc 0x4819c000
   */
  self.I2C2 = 0x4819c000;

  /**
   * @constant IO#I2C1
   * @desc 0x00000000
   */
  self.I2C1 = 0x00000000;

  /**
   * @constant IO#WIRE_INTERFACES_COUNT
   * @desc 1
   */
  self.WIRE_INTERFACES_COUNT = 1;

/**
 * @function IO#getWireV8
 * @type function
 * @param {Void}
 * @returns {Object}
 * @instance
 */
  self.getWireV8 = function() {
    return self.submit.funcReq('getWireV8', arguments);
  };

/**
 * @function IO#setWireV8
 * @type function

 * @param {Object} Wire
 * @return {Void}
 * @instance
 */
  self.setWireV8 = function() {
    return self.submit.funcReq('setWireV8', arguments);
  };

/****************************************
           RingBuffer
****************************************/
  
  /**
   * @constructor
   * @name IO#RingBuffer
   * @param {Void}
   */
  RingBuffer = function() {
    return self.submit.classReq('RingBuffer', arguments, this);
  };
  
  /**
   * @function IO#RingBuffer#store_char
   * @type function
   * @param {Integer} c
   * @returns {Void}
   * @instance
   */
  RingBuffer.prototype.store_char = function() {
    return self.submit.classMethodReq('RingBuffer', 'store_char', arguments, this);
  };
  
  self.RingBuffer = RingBuffer;

  /**
   * @constant IO#SERIAL_BUFFER_SIZE
   * @desc 256
   */
  self.SERIAL_BUFFER_SIZE = 256;

/****************************************
           Arduino
****************************************/

  /**
   * @constant IO#INPUT
   * @desc 0x00
   */
  self.INPUT = 0x00;

  /**
   * @constant IO#OUTPUT
   * @desc 0x01
   */
  self.OUTPUT = 0x01;

  /**
   * @constant IO#INPUT_PULLUP
   * @desc 0x02
   */
  self.INPUT_PULLUP = 0x02;

  /**
   * @constant IO#OUTPUT_FAST
   * @desc 0x03
   */
  self.OUTPUT_FAST = 0x03;

  /**
   * @constant IO#INPUT_FAST
   * @desc 0x04
   */
  self.INPUT_FAST = 0x04;

  /**
   * @constant IO#DEFAULT
   * @desc 0
   */
  self.DEFAULT = 0;

  /**
   * @constant IO#true
   * @desc 0x1
   */
  self.true = 0x1;

  /**
   * @constant IO#false
   * @desc 0x0
   */
  self.false = 0x0;

  /**
   * @constant IO#DEG_TO_RAD
   * @desc 0.017453292519943295769236907684886
   */
  self.DEG_TO_RAD = 0.017453292519943295769236907684886;

  /**
   * @constant IO#RAD_TO_DEG
   * @desc 57.295779513082320876798154814105
   */
  self.RAD_TO_DEG = 57.295779513082320876798154814105;

  /**
   * @constant IO#SERIAL
   * @desc 0x0
   */
  self.SERIAL = 0x0;

  /**
   * @constant IO#DISPLAY
   * @desc 0x1
   */
  self.DISPLAY = 0x1;

  /**
   * @constant IO#LSBFIRST
   * @desc 0
   */
  self.LSBFIRST = 0;

  /**
   * @constant IO#MSBFIRST
   * @desc 1
   */
  self.MSBFIRST = 1;

  /**
   * @constant IO#PA
   * @desc 1
   */
  self.PA = 1;

  /**
   * @constant IO#PB
   * @desc 2
   */
  self.PB = 2;

  /**
   * @constant IO#PC
   * @desc 3
   */
  self.PC = 3;

  /**
   * @constant IO#PD
   * @desc 4
   */
  self.PD = 4;

  /**
   * @constant IO#PE
   * @desc 5
   */
  self.PE = 5;

  /**
   * @constant IO#PF
   * @desc 6
   */
  self.PF = 6;

  /**
   * @constant IO#PG
   * @desc 7
   */
  self.PG = 7;

  /**
   * @constant IO#PH
   * @desc 8
   */
  self.PH = 8;

  /**
   * @constant IO#PJ
   * @desc 10
   */
  self.PJ = 10;

  /**
   * @constant IO#PK
   * @desc 11
   */
  self.PK = 11;

  /**
   * @constant IO#PL
   * @desc 12
   */
  self.PL = 12;

/****************************************
           OSAbstract_norm
****************************************/

  /**
   * @function IO#initWithTty
   * @type function  
   * @param {Array|String|Object} tty0
   * @param {Array|String|Object} tty1
   * @param {Array|String|Object} tty2  
   * @returns {Void}
   * @instance
   */
  self.initWithTty = function() {
    return self.submit.funcReq('initWithTty', arguments);
  };

/****************************************
           UtilTime
****************************************/

  /**
   * @function IO#millis
   * @type function  
   * @param {Void}  
   * @returns {Integer}
   * @instance
   */
  self.millis = function() {
    return self.submit.funcReq('millis', arguments);
  };

  /**
   * @function IO#micros
   * @type function  
   * @param {Void}  
   * @returns {Integer}
   * @instance
   */
  self.micros = function() {
    return self.submit.funcReq('micros', arguments);
  };

  /**
   * @function IO#delay
   * @type function  
   * @param {Integer} arg0  
   * @returns {Void}
   * @instance
   */
  self.delay = function() {
    return self.submit.funcReq('delay', arguments);
  };

  /**
   * @function IO#delayMicroseconds
   * @type function  
   * @param {Integer} us  
   * @returns {Void}
   * @instance
   */
  self.delayMicroseconds = function() {
    return self.submit.funcReq('delayMicroseconds', arguments);
  };

/****************************************
           wiring_digital_norm
****************************************/

  /**
   * @constant IO#HIGH
   * @desc 0x1
   */
  self.HIGH = 0x1;

  /**
   * @constant IO#LOW
   * @desc 0x0
   */
  self.LOW = 0x0;

  /**
   * @constant IO#NONE
   * @desc 0xFFFFFFFF
   */
  self.NONE = 0xFFFFFFFF;

  /**
   * @constant IO#FN_GPIO_FIXED_OUTPUT
   * @desc 0x02
   */
  self.FN_GPIO_FIXED_OUTPUT = 0x02;

  /**
   * @constant IO#FN_GPIO_OPENDRAIN
   * @desc 0x04
   */
  self.FN_GPIO_OPENDRAIN = 0x04;

  /**
   * @constant IO#FN_PWM
   * @desc 0x08
   */
  self.FN_PWM = 0x08;

  /**
   * @constant IO#FN_I2C
   * @desc 0x10
   */
  self.FN_I2C = 0x10;

  /**
   * @constant IO#FN_ANALOG
   * @desc 0x20
   */
  self.FN_ANALOG = 0x20;

  /**
   * @constant IO#FN_UART
   * @desc 0x40
   */
  self.FN_UART = 0x40;

  /**
   * @constant IO#FN_SPI
   * @desc 0x80
   */
  self.FN_SPI = 0x80;

  /**
   * @constant IO#FN_PULLUP
   * @desc 0x100
   */
  self.FN_PULLUP = 0x100;

  /**
   * @constant IO#FN_MUX
   * @desc 0x200
   */
  self.FN_MUX = 0x200;

  /**
   * @constant IO#FN_RESERVED
   * @desc 0x400
   */
  self.FN_RESERVED = 0x400;

  /**
   * @constant IO#GPIO_DRIVE_PULLUP
   * @desc 0
   */
  self.GPIO_DRIVE_PULLUP = 0;

  /**
   * @constant IO#GPIO_DRIVE_STRONG
   * @desc 1
   */
  self.GPIO_DRIVE_STRONG = 1;

  /**
   * @constant IO#GPIO_DRIVE_HIZ
   * @desc 2
   */
  self.GPIO_DRIVE_HIZ = 2;

  /**
   * @constant IO#PIN_EINVAL
   * @desc 0xFFFFFFFF
   */
  self.PIN_EINVAL = 0xFFFFFFFF;

  /**
   * @constant IO#MAX_GPIO_PATH
   * @desc 0x200
   */
  self.MAX_GPIO_PATH = 0x200;

  /**
   * @function IO#pinInit
   * @type function  
   * @param {Void}  
   * @returns {Void}
   * @instance
   */
  self.pinInit = function() {
    return self.submit.funcReq('pinInit', arguments);
  };

  /**
   * @function IO#pinMode
   * @type function  
   * @param {Integer} pin
   * @param {Integer} mode  
   * @returns {Void}
   * @instance
   */
  self.pinMode = function() {
    return self.submit.funcReq('pinMode', arguments);
  };

  /**
   * @function IO#pinModeIRQ
   * @type function  
   * @param {Integer} pin
   * @param {Integer} mode  
   * @returns {Integer}
   * @instance
   */
  self.pinModeIRQ = function() {
    return self.submit.funcReq('pinModeIRQ', arguments);
  };

  /**
   * @function IO#digitalWrite
   * @type function  
   * @param {Integer} pin
   * @param {Integer} val  
   * @returns {Void}
   * @instance
   */
  self.digitalWrite = function() {
    return self.submit.funcReq('digitalWrite', arguments);
  };

  /**
   * @function IO#digitalRead
   * @type function  
   * @param {Integer} pin  
   * @returns {Integer}
   * @instance
   */
  self.digitalRead = function() {
    return self.submit.funcReq('digitalRead', arguments);
  };

  /**
   * @function IO#pinHandleReopen
   * @type function  
   * @param {Integer} index  
   * @returns {Integer}
   * @instance
   */
  self.pinHandleReopen = function() {
    return self.submit.funcReq('pinHandleReopen', arguments);
  };

  /**
   * @function IO#pinGetIndex
   * @type function  
   * @param {Integer} pin  
   * @returns {Integer}
   * @instance
   */
  self.pinGetIndex = function() {
    return self.submit.funcReq('pinGetIndex', arguments);
  };

  /**
   * @function IO#pin2path
   * @type function  
   * @param {Integer} pin  
   * @returns {String}
   * @instance
   */
  self.pin2path = function() {
    return self.submit.funcReq('pin2path', arguments);
  };

  /**
   * @function IO#gpio2gpiohandle
   * @type function  
   * @param {Integer} gpio  
   * @returns {Integer}
   * @instance
   */
  self.gpio2gpiohandle = function() {
    return self.submit.funcReq('gpio2gpiohandle', arguments);
  };

  /**
   * @function IO#pin2gpiohandle
   * @type function  
   * @param {Integer} pin  
   * @returns {Integer}
   * @instance
   */
  self.pin2gpiohandle = function() {
    return self.submit.funcReq('pin2gpiohandle', arguments);
  };

/****************************************
           interrupt
****************************************/

  /**
   * @constant IO#LOW
   * @desc 0x0
   */
  self.LOW = 0x0;

  /**
   * @constant IO#HIGH
   * @desc 0x1
   */
  self.HIGH = 0x1;

  /**
   * @constant IO#RISING
   * @desc 0x02
   */
  self.RISING = 0x02;

  /**
   * @constant IO#FALLING
   * @desc 0x04
   */
  self.FALLING = 0x04;

  /**
   * @constant IO#CHANGE
   * @desc 0x08
   */
  self.CHANGE = 0x08;

  /**
   * @function IO#interrupt_init
   * @type function  
   * @param {Void}  
   * @returns {Integer}
   * @instance
   */
  self.interrupt_init = function() {
    return self.submit.funcReq('interrupt_init', arguments);
  };

  /**
   * @function IO#interrupt_fini
   * @type function  
   * @param {Void}  
   * @returns {Void}
   * @instance
   */
  self.interrupt_fini = function() {
    return self.submit.funcReq('interrupt_fini', arguments);
  };

  /**
   * @function IO#attachInterrupt
   * @type function  
   * @param {Integer} pin
   * @param {Callback_3} callback
   * @param {Integer} mode  
   * @returns {Void}
   * @instance
   */
  self.attachInterrupt = function() {
    return self.submit.funcReq('attachInterrupt', arguments);
  };

  /**
   * @function IO#detachInterrupt
   * @type function  
   * @param {Integer} pin  
   * @returns {Void}
   * @instance
   */
  self.detachInterrupt = function() {
    return self.submit.funcReq('detachInterrupt', arguments);
  };

  /**
   * @function IO#attachTimerInterrupt
   * @type function  
   * @param {Callback_4} callback
   * @param {Integer} microseconds  
   * @returns {Void}
   * @instance
   */
  self.attachTimerInterrupt = function() {
    return self.submit.funcReq('attachTimerInterrupt', arguments);
  };

  /**
   * @function IO#setMinimumTimerFreq
   * @type function  
   * @param {Integer} microseconds  
   * @returns {Integer}
   * @instance
   */
  self.setMinimumTimerFreq = function() {
    return self.submit.funcReq('setMinimumTimerFreq', arguments);
  };

/****************************************
           version
****************************************/

  /**
   * @function IO#version
   * @type function  
   * @param {Void}  
   * @returns {String}
   * @instance
   */
  self.version = function() {
    return self.submit.funcReq('version', arguments);
  };

/****************************************
           variant_norm
****************************************/

  /**
   * @constant IO#LINUX_BOOTLOADER_TTY
   * @desc "/dev/ttyGS0"
   */
  self.LINUX_BOOTLOADER_TTY = "/dev/ttyGS0";

  /**
   * @constant IO#LINUX_SPIDEV
   * @desc "/dev/spidev1.0"
   */
  self.LINUX_SPIDEV = "/dev/spidev1.0";

  /**
   * @constant IO#LINUX_EEPROM
   * @desc "/sys/bus/i2c/devices/0-0050/eeprom"
   */
  self.LINUX_EEPROM = "/sys/bus/i2c/devices/0-0050/eeprom";

  /**
   * @constant IO#LINUX_ADC_FMT
   * @desc "/sys/bus/iio/devices/iio:device0/in_voltage%d_raw"
   */
  self.LINUX_ADC_FMT = "/sys/bus/iio/devices/iio:device0/in_voltage%d_raw";

  /**
   * @constant IO#PLATFORM_ID
   * @desc 0x06
   */
  self.PLATFORM_ID = 0x06;

  /**
   * @constant IO#ADC_RESOLUTION
   * @desc 12
   */
  self.ADC_RESOLUTION = 12;

  /**
   * @constant IO#MAX_VARIANT_HPET_FREQ_HZ
   * @desc 1000
   */
  self.MAX_VARIANT_HPET_FREQ_HZ = 1000;

  /**
   * @constant IO#MUX_SEL_NONE
   * @desc -1
   */
  self.MUX_SEL_NONE = -1;

  /**
   * @constant IO#MUX_SEL_UART0_RXD
   * @desc 0
   */
  self.MUX_SEL_UART0_RXD = 0;

  /**
   * @constant IO#MUX_SEL_UART0_TXD
   * @desc 1
   */
  self.MUX_SEL_UART0_TXD = 1;

  /**
   * @constant IO#MUX_SEL_SPI1_SS_B
   * @desc 10
   */
  self.MUX_SEL_SPI1_SS_B = 10;

  /**
   * @constant IO#MUX_SEL_SPI1_MOSI
   * @desc 11
   */
  self.MUX_SEL_SPI1_MOSI = 11;

  /**
   * @constant IO#MUX_SEL_SPI1_MISO
   * @desc 12
   */
  self.MUX_SEL_SPI1_MISO = 12;

  /**
   * @constant IO#MUX_SEL_SPI1_SCK
   * @desc 13
   */
  self.MUX_SEL_SPI1_SCK = 13;

  /**
   * @constant IO#MUX_SEL_AD7298_VIN0
   * @desc 14
   */
  self.MUX_SEL_AD7298_VIN0 = 14;

  /**
   * @constant IO#MUX_SEL_AD7298_VIN1
   * @desc 15
   */
  self.MUX_SEL_AD7298_VIN1 = 15;

  /**
   * @constant IO#MUX_SEL_AD7298_VIN2
   * @desc 16
   */
  self.MUX_SEL_AD7298_VIN2 = 16;

  /**
   * @constant IO#MUX_SEL_AD7298_VIN3
   * @desc 17
   */
  self.MUX_SEL_AD7298_VIN3 = 17;

  /**
   * @constant IO#MUX_SEL_AD7298_VIN4
   * @desc 18
   */
  self.MUX_SEL_AD7298_VIN4 = 18;

  /**
   * @constant IO#MUX_SEL_AD7298_VIN5
   * @desc 19
   */
  self.MUX_SEL_AD7298_VIN5 = 19;

  /**
   * @constant IO#MUX_SEL_I2C
   * @desc 18
   */
  self.MUX_SEL_I2C = 18;

  /**
   * @constant IO#MUX_DEPTH_DIGITAL
   * @desc 0x02
   */
  self.MUX_DEPTH_DIGITAL = 0x02;

  /**
   * @constant IO#MUX_DEPTH_ANALOG
   * @desc 0x01
   */
  self.MUX_DEPTH_ANALOG = 0x01;

  /**
   * @constant IO#MUX_DEPTH_UART
   * @desc 0x02
   */
  self.MUX_DEPTH_UART = 0x02;

  /**
   * @constant IO#MUX_DEPTH_SPI
   * @desc 0x03
   */
  self.MUX_DEPTH_SPI = 0x03;

  /**
   * @constant IO#MUX_DEPTH_I2C
   * @desc 0x01
   */
  self.MUX_DEPTH_I2C = 0x01;

  /**
   * @constant IO#GPIO_TOTAL
   * @desc 56
   */
  self.GPIO_TOTAL = 56;

  /**
   * @constant IO#GPIO_FAST_IO2
   * @desc 0x40
   */
  self.GPIO_FAST_IO2 = 0x40;

  /**
   * @constant IO#GPIO_FAST_IO3
   * @desc 0x80
   */
  self.GPIO_FAST_IO3 = 0x80;

/**
 * @function IO#getSerialV8
 * @type function
 * @param {Void}
 * @returns {Object}
 * @instance
 */
  self.getSerialV8 = function() {
    return self.submit.funcReq('getSerialV8', arguments);
  };

/**
 * @function IO#setSerialV8
 * @type function

 * @param {Object} Serial
 * @return {Void}
 * @instance
 */
  self.setSerialV8 = function() {
    return self.submit.funcReq('setSerialV8', arguments);
  };

/**
 * @function IO#getSerial1V8
 * @type function
 * @param {Void}
 * @returns {Object}
 * @instance
 */
  self.getSerial1V8 = function() {
    return self.submit.funcReq('getSerial1V8', arguments);
  };

/**
 * @function IO#setSerial1V8
 * @type function

 * @param {Object} Serial1
 * @return {Void}
 * @instance
 */
  self.setSerial1V8 = function() {
    return self.submit.funcReq('setSerial1V8', arguments);
  };

/**
 * @function IO#getSerial2V8
 * @type function
 * @param {Void}
 * @returns {Object}
 * @instance
 */
  self.getSerial2V8 = function() {
    return self.submit.funcReq('getSerial2V8', arguments);
  };

/**
 * @function IO#setSerial2V8
 * @type function

 * @param {Object} Serial2
 * @return {Void}
 * @instance
 */
  self.setSerial2V8 = function() {
    return self.submit.funcReq('setSerial2V8', arguments);
  };

  /**
   * @function IO#muxSelectDigitalPin
   * @type function  
   * @param {Integer} pin  
   * @returns {Integer}
   * @instance
   */
  self.muxSelectDigitalPin = function() {
    return self.submit.funcReq('muxSelectDigitalPin', arguments);
  };

  /**
   * @function IO#muxSelectAnalogPin
   * @type function  
   * @param {Integer} pin  
   * @returns {Integer}
   * @instance
   */
  self.muxSelectAnalogPin = function() {
    return self.submit.funcReq('muxSelectAnalogPin', arguments);
  };

  /**
   * @function IO#muxSelectUart
   * @type function  
   * @param {Integer} interface  
   * @returns {Integer}
   * @instance
   */
  self.muxSelectUart = function() {
    return self.submit.funcReq('muxSelectUart', arguments);
  };

  /**
   * @function IO#muxSelectSpi
   * @type function  
   * @param {Integer} interface  
   * @returns {Integer}
   * @instance
   */
  self.muxSelectSpi = function() {
    return self.submit.funcReq('muxSelectSpi', arguments);
  };

  /**
   * @function IO#muxSelectI2c
   * @type function  
   * @param {Integer} interface  
   * @returns {Integer}
   * @instance
   */
  self.muxSelectI2c = function() {
    return self.submit.funcReq('muxSelectI2c', arguments);
  };

  /**
   * @function IO#variantPinMode
   * @type function  
   * @param {Integer} pin
   * @param {Integer} mode  
   * @returns {Integer}
   * @instance
   */
  self.variantPinMode = function() {
    return self.submit.funcReq('variantPinMode', arguments);
  };

  /**
   * @function IO#variantPinModeIRQ
   * @type function  
   * @param {Integer} pin
   * @param {Integer} mode  
   * @returns {Integer}
   * @instance
   */
  self.variantPinModeIRQ = function() {
    return self.submit.funcReq('variantPinModeIRQ', arguments);
  };

  /**
   * @function IO#turnOffPWM
   * @type function  
   * @param {Integer} pin  
   * @returns {Void}
   * @instance
   */
  self.turnOffPWM = function() {
    return self.submit.funcReq('turnOffPWM', arguments);
  };

  /**
   * @function IO#turnOnPWM
   * @type function  
   * @param {Integer} pin  
   * @returns {Void}
   * @instance
   */
  self.turnOnPWM = function() {
    return self.submit.funcReq('turnOnPWM', arguments);
  };

  /**
   * @function IO#variantEnableFastGpio
   * @type function  
   * @param {Integer} pin  
   * @returns {Void}
   * @instance
   */
  self.variantEnableFastGpio = function() {
    return self.submit.funcReq('variantEnableFastGpio', arguments);
  };

  /**
   * @function IO#variantEnablePullup
   * @type function  
   * @param {Integer} pin
   * @param {Integer} enable  
   * @returns {Void}
   * @instance
   */
  self.variantEnablePullup = function() {
    return self.submit.funcReq('variantEnablePullup', arguments);
  };

/****************************************
           Servo
****************************************/
  
  /**
   * @constructor
   * @name IO#Servo
   * @param {Void}
   */
  Servo = function() {
    return self.submit.classReq('Servo', arguments, this);
  };
  
  /**
   * @function IO#Servo#attach
   * @type function
   * @param {Integer} arg0
   * @param {Integer} [arg1]
   * @param {Integer} [arg2]
   * @returns {Integer}
   * @instance
   */
  Servo.prototype.attach = function() {
    return self.submit.classMethodReq('Servo', 'attach', arguments, this);
  };
  
  /**
   * @function IO#Servo#detach
   * @type function
   * @param {Void}
   * @returns {Void}
   * @instance
   */
  Servo.prototype.detach = function() {
    return self.submit.classMethodReq('Servo', 'detach', arguments, this);
  };
  
  /**
   * @function IO#Servo#write
   * @type function
   * @param {Integer} val
   * @returns {Void}
   * @instance
   */
  Servo.prototype.write = function() {
    return self.submit.classMethodReq('Servo', 'write', arguments, this);
  };
  
  /**
   * @function IO#Servo#writeMicroseconds
   * @type function
   * @param {Integer} value
   * @returns {Void}
   * @instance
   */
  Servo.prototype.writeMicroseconds = function() {
    return self.submit.classMethodReq('Servo', 'writeMicroseconds', arguments, this);
  };
  
  /**
   * @function IO#Servo#read
   * @type function
   * @param {Void}
   * @returns {Integer}
   * @instance
   */
  Servo.prototype.read = function() {
    return self.submit.classMethodReq('Servo', 'read', arguments, this);
  };
  
  /**
   * @function IO#Servo#readMicroseconds
   * @type function
   * @param {Void}
   * @returns {Integer}
   * @instance
   */
  Servo.prototype.readMicroseconds = function() {
    return self.submit.classMethodReq('Servo', 'readMicroseconds', arguments, this);
  };
  
  /**
   * @function IO#Servo#attached
   * @type function
   * @param {Void}
   * @returns {Boolean}
   * @instance
   */
  Servo.prototype.attached = function() {
    return self.submit.classMethodReq('Servo', 'attached', arguments, this);
  };
  
  /**
   * @function IO#Servo#set48hz
   * @type function
   * @param {Void}
   * @returns {Void}
   * @instance
   */
  Servo.prototype.set48hz = function() {
    return self.submit.classMethodReq('Servo', 'set48hz', arguments, this);
  };
  
  /**
   * @function IO#Servo#set188hz
   * @type function
   * @param {Void}
   * @returns {Void}
   * @instance
   */
  Servo.prototype.set188hz = function() {
    return self.submit.classMethodReq('Servo', 'set188hz', arguments, this);
  };
  
  self.Servo = Servo;

  /**
   * @constant IO#MIN_ANGLE
   * @desc 0
   */
  self.MIN_ANGLE = 0;

  /**
   * @constant IO#MAX_ANGLE
   * @desc 180
   */
  self.MAX_ANGLE = 180;

  /**
   * @constant IO#MIN_PULSE_WIDTH
   * @desc 544
   */
  self.MIN_PULSE_WIDTH = 544;

  /**
   * @constant IO#MAX_PULSE_WIDTH
   * @desc 2000
   */
  self.MAX_PULSE_WIDTH = 2000;

  /**
   * @constant IO#DEFAULT_PULSE_WIDTH
   * @desc 1500
   */
  self.DEFAULT_PULSE_WIDTH = 1500;

  /**
   * @constant IO#INVALID_SERVO
   * @desc 255
   */
  self.INVALID_SERVO = 255;

  /**
   * @constant IO#GPORT0_BIT4_PWM7
   * @desc 0x10
   */
  self.GPORT0_BIT4_PWM7 = 0x10;

  /**
   * @constant IO#GPORT0_BIT1_PWM5
   * @desc 0x02
   */
  self.GPORT0_BIT1_PWM5 = 0x02;

  /**
   * @constant IO#GPORT1_BIT0_PWM6
   * @desc 0xff
   */
  self.GPORT1_BIT0_PWM6 = 0xff;

  /**
   * @constant IO#GPORT0_BIT3_PWM1
   * @desc 0x08
   */
  self.GPORT0_BIT3_PWM1 = 0x08;

  /**
   * @constant IO#GPORT0_BIT0_PWM7
   * @desc 0x01
   */
  self.GPORT0_BIT0_PWM7 = 0x01;

  /**
   * @constant IO#GPORT1_BIT1_PWM4
   * @desc 0xff
   */
  self.GPORT1_BIT1_PWM4 = 0xff;

  /**
   * @constant IO#CYPRESS_I2C_ADDRESS
   * @desc 0x20
   */
  self.CYPRESS_I2C_ADDRESS = 0x20;

  /**
   * @constant IO#MAX_NUMBER_OF_SERVOS
   * @desc 6
   */
  self.MAX_NUMBER_OF_SERVOS = 6;

  /**
   * @constant IO#MY_TRACE_PREFIX
   * @desc "ServoX86Lib"
   */
  self.MY_TRACE_PREFIX = "ServoX86Lib";

/****************************************
           i2c
****************************************/

  /**
   * @function IO#i2c_getadapter
   * @type function  
   * @param {Integer} i2c_bus_address  
   * @returns {Integer}
   * @instance
   */
  self.i2c_getadapter = function() {
    return self.submit.funcReq('i2c_getadapter', arguments);
  };

  /**
   * @function IO#i2c_openadapter
   * @type function  
   * @param {Integer} i2c_adapter_nr  
   * @returns {Integer}
   * @instance
   */
  self.i2c_openadapter = function() {
    return self.submit.funcReq('i2c_openadapter', arguments);
  };

  /**
   * @function IO#i2c_setslave
   * @type function  
   * @param {Integer} i2c_fd
   * @param {Integer} addr  
   * @returns {Integer}
   * @instance
   */
  self.i2c_setslave = function() {
    return self.submit.funcReq('i2c_setslave', arguments);
  };

  /**
   * @function IO#i2c_writebyte
   * @type function  
   * @param {Integer} i2c_fd
   * @param {Integer} byte  
   * @returns {Integer}
   * @instance
   */
  self.i2c_writebyte = function() {
    return self.submit.funcReq('i2c_writebyte', arguments);
  };

  /**
   * @function IO#i2c_writebytes
   * @type function  
   * @param {Integer} i2c_fd
   * @param {Array|String|Object} bytes
   * @param {Integer} length  
   * @returns {Integer}
   * @instance
   */
  self.i2c_writebytes = function() {
    return self.submit.funcReq('i2c_writebytes', arguments);
  };

  /**
   * @function IO#i2c_readbyte
   * @type function  
   * @param {Integer} i2c_fd  
   * @returns {Integer}
   * @instance
   */
  self.i2c_readbyte = function() {
    return self.submit.funcReq('i2c_readbyte', arguments);
  };

  /**
   * @function IO#i2c_readbytes
   * @type function  
   * @param {Integer} i2c_fd
   * @param {Array|String|Object} buf
   * @param {Integer} length  
   * @returns {Integer}
   * @instance
   */
  self.i2c_readbytes = function() {
    return self.submit.funcReq('i2c_readbytes', arguments);
  };

  /**
   * @function IO#i2c_readwrite
   * @type function  
   * @param {Integer} i2c_fd  
   * @returns {Integer}
   * @instance
   */
  self.i2c_readwrite = function() {
    return self.submit.funcReq('i2c_readwrite', arguments);
  };

  /**
   * @function IO#i2c_add_to_buf
   * @type function  
   * @param {Integer} addr
   * @param {Integer} rw
   * @param {Array|String|Object} value
   * @param {Integer} length  
   * @returns {Integer}
   * @instance
   */
  self.i2c_add_to_buf = function() {
    return self.submit.funcReq('i2c_add_to_buf', arguments);
  };

/****************************************
           AnalogIO
****************************************/

  /**
   * @function IO#pwmInit
   * @type function  
   * @param {Void}  
   * @returns {Void}
   * @instance
   */
  self.pwmInit = function() {
    return self.submit.funcReq('pwmInit', arguments);
  };

  /**
   * @function IO#analogRead
   * @type function  
   * @param {Integer} arg0  
   * @returns {Integer}
   * @instance
   */
  self.analogRead = function() {
    return self.submit.funcReq('analogRead', arguments);
  };

  /**
   * @function IO#analogReadResolution
   * @type function  
   * @param {Integer} res  
   * @returns {Void}
   * @instance
   */
  self.analogReadResolution = function() {
    return self.submit.funcReq('analogReadResolution', arguments);
  };

  /**
   * @function IO#analogReference
   * @type function  
   * @param {Integer} mode  
   * @returns {Void}
   * @instance
   */
  self.analogReference = function() {
    return self.submit.funcReq('analogReference', arguments);
  };

  /**
   * @function IO#analogWrite
   * @type function  
   * @param {Integer} arg0
   * @param {Integer} arg1  
   * @returns {Void}
   * @instance
   */
  self.analogWrite = function() {
    return self.submit.funcReq('analogWrite', arguments);
  };

  /**
   * @function IO#pin2pwmhandle_enable
   * @type function  
   * @param {Integer} pin  
   * @returns {Integer}
   * @instance
   */
  self.pin2pwmhandle_enable = function() {
    return self.submit.funcReq('pin2pwmhandle_enable', arguments);
  };

/****************************************
           pins_arduino
****************************************/

  /**
   * @constant IO#NUM_DIGITAL_PINS
   * @desc 20
   */
  self.NUM_DIGITAL_PINS = 20;

  /**
   * @constant IO#NUM_ANALOG_INPUTS
   * @desc 6
   */
  self.NUM_ANALOG_INPUTS = 6;

  /**
   * @constant IO#NUM_UARTS
   * @desc 0x03
   */
  self.NUM_UARTS = 0x03;

  /**
   * @constant IO#NUM_SPI
   * @desc 0x02
   */
  self.NUM_SPI = 0x02;

  /**
   * @constant IO#NUM_I2C
   * @desc 0x01
   */
  self.NUM_I2C = 0x01;

/**
 * @function IO#getSsV8
 * @type function
 * @param {Void}
 * @returns {Integer}
 * @instance
 */
  self.getSsV8 = function() {
    return self.submit.funcReq('getSsV8', arguments);
  };

/**
 * @function IO#getMosiV8
 * @type function
 * @param {Void}
 * @returns {Integer}
 * @instance
 */
  self.getMosiV8 = function() {
    return self.submit.funcReq('getMosiV8', arguments);
  };

/**
 * @function IO#getMisoV8
 * @type function
 * @param {Void}
 * @returns {Integer}
 * @instance
 */
  self.getMisoV8 = function() {
    return self.submit.funcReq('getMisoV8', arguments);
  };

/**
 * @function IO#getSckV8
 * @type function
 * @param {Void}
 * @returns {Integer}
 * @instance
 */
  self.getSckV8 = function() {
    return self.submit.funcReq('getSckV8', arguments);
  };

/**
 * @function IO#getSdaV8
 * @type function
 * @param {Void}
 * @returns {Integer}
 * @instance
 */
  self.getSdaV8 = function() {
    return self.submit.funcReq('getSdaV8', arguments);
  };

/**
 * @function IO#getSclV8
 * @type function
 * @param {Void}
 * @returns {Integer}
 * @instance
 */
  self.getSclV8 = function() {
    return self.submit.funcReq('getSclV8', arguments);
  };

/**
 * @function IO#getLed_builtinV8
 * @type function
 * @param {Void}
 * @returns {Integer}
 * @instance
 */
  self.getLed_builtinV8 = function() {
    return self.submit.funcReq('getLed_builtinV8', arguments);
  };

/**
 * @function IO#getA0V8
 * @type function
 * @param {Void}
 * @returns {Integer}
 * @instance
 */
  self.getA0V8 = function() {
    return self.submit.funcReq('getA0V8', arguments);
  };

/**
 * @function IO#getA1V8
 * @type function
 * @param {Void}
 * @returns {Integer}
 * @instance
 */
  self.getA1V8 = function() {
    return self.submit.funcReq('getA1V8', arguments);
  };

/**
 * @function IO#getA2V8
 * @type function
 * @param {Void}
 * @returns {Integer}
 * @instance
 */
  self.getA2V8 = function() {
    return self.submit.funcReq('getA2V8', arguments);
  };

/**
 * @function IO#getA3V8
 * @type function
 * @param {Void}
 * @returns {Integer}
 * @instance
 */
  self.getA3V8 = function() {
    return self.submit.funcReq('getA3V8', arguments);
  };

/**
 * @function IO#getA4V8
 * @type function
 * @param {Void}
 * @returns {Integer}
 * @instance
 */
  self.getA4V8 = function() {
    return self.submit.funcReq('getA4V8', arguments);
  };

/**
 * @function IO#getA5V8
 * @type function
 * @param {Void}
 * @returns {Integer}
 * @instance
 */
  self.getA5V8 = function() {
    return self.submit.funcReq('getA5V8', arguments);
  };

/**
 * @function IO#getA6V8
 * @type function
 * @param {Void}
 * @returns {Integer}
 * @instance
 */
  self.getA6V8 = function() {
    return self.submit.funcReq('getA6V8', arguments);
  };

/**
 * @function IO#getA7V8
 * @type function
 * @param {Void}
 * @returns {Integer}
 * @instance
 */
  self.getA7V8 = function() {
    return self.submit.funcReq('getA7V8', arguments);
  };


/**
 * @callback Callback_4
 * @param {Void}
 * @returns {Void}
 */

/**
 * @callback Callback_2
 * @param {Void}
 * @returns {Void}
 */

/**
 * @callback Callback_3
 * @param {Void}
 * @returns {Void}
 */

/**
 * @callback Callback_0
 * @param {Void}
 * @returns {Void}
 */

/**
 * @callback Callback_1
 * @param {Integer}
 * @returns {Void}
 */

}; //end of Board class declare

exports.Board = Board;

})(typeof exports === 'object'? exports: this.IOLIB, this.IOLIB);