UNPKG

sensorium

Version:

makeblock mainboards protocol api

488 lines (444 loc) 44.6 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Source: core/utils.js | Sensorium API</title> <script src="scripts/prettify/prettify.js"> </script> <script src="scripts/prettify/lang-css.js"> </script> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <link type="text/css" rel="stylesheet" href="styles/bootstrap.min.css"> <link type="text/css" rel="stylesheet" href="styles/prettify-jsdoc.css"> <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css"> <link type="text/css" rel="stylesheet" href="styles/tui-doc.css"> <link type="text/css" rel="stylesheet" href="../statics/topbar.css"> <style type="text/css"> body{font-size: 16px;} .lnb h3{color: #91cada;} .main section article dl h4 { font-size: 16px; } .main section article h3.subsection-title { padding:35px 0 3px 5px; } .main section article dl h4 .signature { font-size: 16px; } .main section article dl h4 .type-signature { font-size: 16px; } .main section article dl dd h5{ font-size: 14px; } .dt{margin: 10px 0 20px;} </style> </head> <body> <header class="topbar"> <ul class="topnav pull-right clearfix"> <li><a href="../">Get Started</a></li> <li><a href="../code/">Code</a></li> <li><a href="./">API</a></li> <li><a href="../changelog.html">ChangeLog</a></li> </ul> </header> <nav class="lnb" id="lnb"> <!-- <div class="logo" style="width: 154px; height: 24px"> <a href="http://makeblock.com/" rel="noopener noreferrer" target="_blank"> <img src="../statics/makeblocklogo.png" width="100%" height="100%"> </a> </div> 取消logo --> <div class="title"> <h2><a href="index.html" class="link">Sensorium API</a></h2> <span class="version">v0.3.7</span> </div> <div class="search-container" id="search-container"> <input type="text" placeholder="Search"> <ul></ul> </div> <div class="lnb-api hidden"><h3>Classes</h3><ul><li><a href="AnalogGPIO.html">AnalogGPIO</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="AnalogGPIO_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="AnalogGPIO.html#.SUPPORT">SUPPORT</a></li><li><a href="AnalogGPIO.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="AnalogGPIO.html#getData">getData</a></li></ul></div></li><li><a href="BaseEncoderMotor.html">BaseEncoderMotor</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="BaseEncoderMotor_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="BaseEncoderMotor.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="BaseEncoderMotor.html#offsetAngle">offsetAngle</a></li><li><a href="BaseEncoderMotor.html#run">run</a></li><li><a href="BaseEncoderMotor.html#setReverse">setReverse</a></li><li><a href="BaseEncoderMotor.html#setStop">setStop</a></li><li><a href="BaseEncoderMotor.html#speed">speed</a></li></ul></div></li><li><a href="BaseGyro.html">BaseGyro</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="BaseGyro_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="BaseGyro.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="BaseGyro.html#axis">axis</a></li><li><a href="BaseGyro.html#getData">getData</a></li></ul></div></li><li><a href="BaseLedMatrix.html">BaseLedMatrix</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="BaseLedMatrix_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="BaseLedMatrix.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="BaseLedMatrix.html#clear">clear</a></li><li><a href="BaseLedMatrix.html#run">run</a></li></ul></div></li><li><a href="BaseLight.html">BaseLight</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="BaseLight_sub"><div class="member-type">Methods</div><ul class="inner"><li><a href="BaseLight.html#getData">getData</a></li></ul></div></li><li><a href="BaseMotor.html">BaseMotor</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="BaseMotor_sub"><div class="member-type">Methods</div><ul class="inner"><li><a href="BaseMotor.html#run">run</a></li><li><a href="BaseMotor.html#setStop">setStop</a></li><li><a href="BaseMotor.html#speed">speed</a></li></ul></div></li><li><a href="BaseRgbLed.html">BaseRgbLed</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="BaseRgbLed_sub"><div class="member-type">Methods</div><ul class="inner"><li><a href="BaseRgbLed.html#b">b</a></li><li><a href="BaseRgbLed.html#blue">blue</a></li><li><a href="BaseRgbLed.html#g">g</a></li><li><a href="BaseRgbLed.html#green">green</a></li><li><a href="BaseRgbLed.html#position">position</a></li><li><a href="BaseRgbLed.html#r">r</a></li><li><a href="BaseRgbLed.html#red">red</a></li><li><a href="BaseRgbLed.html#rgb">rgb</a></li><li><a href="BaseRgbLed.html#run">run</a></li><li><a href="BaseRgbLed.html#turnOff">turnOff</a></li><li><a href="BaseRgbLed.html#turnOffAll">turnOffAll</a></li><li><a href="BaseRgbLed.html#turnOn">turnOn</a></li><li><a href="BaseRgbLed.html#turnOnAll">turnOnAll</a></li><li><a href="BaseRgbLed.html#white">white</a></li></ul></div></li><li><a href="BaseSound.html">BaseSound</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="BaseSound_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="BaseSound.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="BaseSound.html#getData">getData</a></li></ul></div></li><li><a href="Buzzer.html">Buzzer</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="Buzzer_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="Buzzer.html#.SUPPORT">SUPPORT</a></li><li><a href="Buzzer.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="Buzzer.html#beat">beat</a></li><li><a href="Buzzer.html#hz">hz</a></li><li><a href="Buzzer.html#run">run</a></li><li><a href="Buzzer.html#tone">tone</a></li></ul></div></li><li><a href="Compass.html">Compass</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="Compass_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="Compass.html#.SUPPORT">SUPPORT</a></li><li><a href="Compass.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="Compass.html#getData">getData</a></li></ul></div></li><li><a href="DcMotor.html">DcMotor</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="DcMotor_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="DcMotor.html#.SUPPORT">SUPPORT</a></li><li><a href="DcMotor.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="DcMotor.html#run">run</a></li><li><a href="DcMotor.html#setReverse">setReverse</a></li><li><a href="DcMotor.html#setStop">setStop</a></li><li><a href="DcMotor.html#speed">speed</a></li></ul></div></li><li><a href="DigGPIO.html">DigGPIO</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="DigGPIO_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="DigGPIO.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="DigGPIO.html#getData">getData</a></li></ul></div></li><li><a href="DoubleGPIO.html">DoubleGPIO</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="DoubleGPIO_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="DoubleGPIO.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="DoubleGPIO.html#getData">getData</a></li></ul></div></li><li><a href="EncoderMotor.html">EncoderMotor</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="EncoderMotor_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="EncoderMotor.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="EncoderMotor.html#offsetAngle">offsetAngle</a></li><li><a href="EncoderMotor.html#run">run</a></li><li><a href="EncoderMotor.html#setReverse">setReverse</a></li><li><a href="EncoderMotor.html#setStop">setStop</a></li><li><a href="EncoderMotor.html#speed">speed</a></li></ul></div></li><li><a href="EncoderMotorOnBoard.html">EncoderMotorOnBoard</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="EncoderMotorOnBoard_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="EncoderMotorOnBoard.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="EncoderMotorOnBoard.html#offsetAngle">offsetAngle</a></li><li><a href="EncoderMotorOnBoard.html#readAngle">readAngle</a></li><li><a href="EncoderMotorOnBoard.html#readSpeed">readSpeed</a></li><li><a href="EncoderMotorOnBoard.html#run">run</a></li><li><a href="EncoderMotorOnBoard.html#setReverse">setReverse</a></li><li><a href="EncoderMotorOnBoard.html#setStop">setStop</a></li><li><a href="EncoderMotorOnBoard.html#speed">speed</a></li></ul></div></li><li><a href="EncoderMotorOnBoardPID.html">EncoderMotorOnBoardPID</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="EncoderMotorOnBoardPID_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="EncoderMotorOnBoardPID.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="EncoderMotorOnBoardPID.html#setZeroPoint">setZeroPoint</a></li></ul></div></li><li><a href="Flame.html">Flame</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="Flame_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="Flame.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="Flame.html#getData">getData</a></li></ul></div></li><li><a href="FourKeys.html">FourKeys</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="FourKeys_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="FourKeys.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="FourKeys.html#getData">getData</a></li><li><a href="FourKeys.html#key">key</a></li></ul></div></li><li><a href="FourLeds.html">FourLeds</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="FourLeds_sub"><div class="member-type">Methods</div><ul class="inner"><li><a href="FourLeds.html#b">b</a></li><li><a href="FourLeds.html#blue">blue</a></li><li><a href="FourLeds.html#g">g</a></li><li><a href="FourLeds.html#green">green</a></li><li><a href="FourLeds.html#position">position</a></li><li><a href="FourLeds.html#r">r</a></li><li><a href="FourLeds.html#red">red</a></li><li><a href="FourLeds.html#rgb">rgb</a></li><li><a href="FourLeds.html#run">run</a></li><li><a href="FourLeds.html#turnOff">turnOff</a></li><li><a href="FourLeds.html#turnOffAll">turnOffAll</a></li><li><a href="FourLeds.html#turnOn">turnOn</a></li><li><a href="FourLeds.html#turnOnAll">turnOnAll</a></li><li><a href="FourLeds.html#white">white</a></li></ul></div></li><li><a href="Gas.html">Gas</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="Gas_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="Gas.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="Gas.html#getData">getData</a></li></ul></div></li><li><a href="GPIOContinue.html">GPIOContinue</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="GPIOContinue_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="GPIOContinue.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="GPIOContinue.html#getData">getData</a></li></ul></div></li><li><a href="Gyro.html">Gyro</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="Gyro_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="Gyro.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="Gyro.html#axis">axis</a></li><li><a href="Gyro.html#getData">getData</a></li></ul></div></li><li><a href="GyroOnBoard.html">GyroOnBoard</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="GyroOnBoard_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="GyroOnBoard.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="GyroOnBoard.html#axis">axis</a></li><li><a href="GyroOnBoard.html#getData">getData</a></li></ul></div></li><li><a href="Humiture.html">Humiture</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="Humiture_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="Humiture.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="Humiture.html#getData">getData</a></li><li><a href="Humiture.html#readHumidity">readHumidity</a></li><li><a href="Humiture.html#readTemperature">readTemperature</a></li></ul></div></li><li><a href="Infrared.html">Infrared</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="Infrared_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="Infrared.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="Infrared.html#getData">getData</a></li></ul></div></li><li><a href="InfraredOnBoard.html">InfraredOnBoard</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="InfraredOnBoard_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="InfraredOnBoard.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="InfraredOnBoard.html#getData">getData</a></li></ul></div></li><li><a href="Joystick.html">Joystick</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="Joystick_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="Joystick.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="Joystick.html#getData">getData</a></li></ul></div></li><li><a href="LedMatrix.html">LedMatrix</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="LedMatrix_sub"></div></li><li><a href="LedMatrixChar.html">LedMatrixChar</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="LedMatrixChar_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="LedMatrixChar.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="LedMatrixChar.html#char">char</a></li><li><a href="LedMatrixChar.html#clear">clear</a></li><li><a href="LedMatrixChar.html#content">content</a></li><li><a href="LedMatrixChar.html#run">run</a></li><li><a href="LedMatrixChar.html#x">x</a></li><li><a href="LedMatrixChar.html#y">y</a></li></ul></div></li><li><a href="LedMatrixEmotion.html">LedMatrixEmotion</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="LedMatrixEmotion_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="LedMatrixEmotion.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="LedMatrixEmotion.html#clear">clear</a></li><li><a href="LedMatrixEmotion.html#content">content</a></li><li><a href="LedMatrixEmotion.html#emotion">emotion</a></li><li><a href="LedMatrixEmotion.html#run">run</a></li><li><a href="LedMatrixEmotion.html#x">x</a></li><li><a href="LedMatrixEmotion.html#y">y</a></li></ul></div></li><li><a href="LedMatrixNumber.html">LedMatrixNumber</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="LedMatrixNumber_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="LedMatrixNumber.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="LedMatrixNumber.html#clear">clear</a></li><li><a href="LedMatrixNumber.html#content">content</a></li><li><a href="LedMatrixNumber.html#number">number</a></li><li><a href="LedMatrixNumber.html#run">run</a></li></ul></div></li><li><a href="LedMatrixTime.html">LedMatrixTime</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="LedMatrixTime_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="LedMatrixTime.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="LedMatrixTime.html#clear">clear</a></li><li><a href="LedMatrixTime.html#content">content</a></li><li><a href="LedMatrixTime.html#hour">hour</a></li><li><a href="LedMatrixTime.html#minute">minute</a></li><li><a href="LedMatrixTime.html#run">run</a></li><li><a href="LedMatrixTime.html#separator">separator</a></li></ul></div></li><li><a href="Light.html">Light</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="Light_sub"><div class="member-type">Methods</div><ul class="inner"><li><a href="Light.html#getData">getData</a></li></ul></div></li><li><a href="LightOnBoard.html">LightOnBoard</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="LightOnBoard_sub"><div class="member-type">Methods</div><ul class="inner"><li><a href="LightOnBoard.html#getData">getData</a></li></ul></div></li><li><a href="LimitSwitch.html">LimitSwitch</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="LimitSwitch_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="LimitSwitch.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="LimitSwitch.html#getData">getData</a></li></ul></div></li><li><a href="LineFollower.html">LineFollower</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="LineFollower_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="LineFollower.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="LineFollower.html#getData">getData</a></li></ul></div></li><li><a href="Pirmotion.html">Pirmotion</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="Pirmotion_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="Pirmotion.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="Pirmotion.html#getData">getData</a></li></ul></div></li><li><a href="Potentionmeter.html">Potentionmeter</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="Potentionmeter_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="Potentionmeter.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="Potentionmeter.html#getData">getData</a></li></ul></div></li><li><a href="Reset.html">Reset</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="Reset_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="Reset.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="Reset.html#reset">reset</a></li></ul></div></li><li><a href="RgbLed.html">RgbLed</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="RgbLed_sub"><div class="member-type">Methods</div><ul class="inner"><li><a href="RgbLed.html#b">b</a></li><li><a href="RgbLed.html#blue">blue</a></li><li><a href="RgbLed.html#g">g</a></li><li><a href="RgbLed.html#green">green</a></li><li><a href="RgbLed.html#position">position</a></li><li><a href="RgbLed.html#r">r</a></li><li><a href="RgbLed.html#red">red</a></li><li><a href="RgbLed.html#rgb">rgb</a></li><li><a href="RgbLed.html#run">run</a></li><li><a href="RgbLed.html#turnOff">turnOff</a></li><li><a href="RgbLed.html#turnOffAll">turnOffAll</a></li><li><a href="RgbLed.html#turnOn">turnOn</a></li><li><a href="RgbLed.html#turnOnAll">turnOnAll</a></li><li><a href="RgbLed.html#white">white</a></li></ul></div></li><li><a href="RgbLedOnBoard.html">RgbLedOnBoard</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="RgbLedOnBoard_sub"><div class="member-type">Methods</div><ul class="inner"><li><a href="RgbLedOnBoard.html#b">b</a></li><li><a href="RgbLedOnBoard.html#blue">blue</a></li><li><a href="RgbLedOnBoard.html#g">g</a></li><li><a href="RgbLedOnBoard.html#green">green</a></li><li><a href="RgbLedOnBoard.html#position">position</a></li><li><a href="RgbLedOnBoard.html#r">r</a></li><li><a href="RgbLedOnBoard.html#red">red</a></li><li><a href="RgbLedOnBoard.html#rgb">rgb</a></li><li><a href="RgbLedOnBoard.html#run">run</a></li><li><a href="RgbLedOnBoard.html#turnOff">turnOff</a></li><li><a href="RgbLedOnBoard.html#turnOffAll">turnOffAll</a></li><li><a href="RgbLedOnBoard.html#turnOn">turnOn</a></li><li><a href="RgbLedOnBoard.html#turnOnAll">turnOnAll</a></li><li><a href="RgbLedOnBoard.html#white">white</a></li></ul></div></li><li><a href="Runtime.html">Runtime</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="Runtime_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="Runtime.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="Runtime.html#getData">getData</a></li></ul></div></li><li><a href="ServoMotor.html">ServoMotor</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="ServoMotor_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="ServoMotor.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="ServoMotor.html#angle">angle</a></li><li><a href="ServoMotor.html#run">run</a></li><li><a href="ServoMotor.html#setToEnd">setToEnd</a></li><li><a href="ServoMotor.html#setToStart">setToStart</a></li></ul></div></li><li><a href="SevenSegment.html">SevenSegment</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="SevenSegment_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="SevenSegment.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="SevenSegment.html#number">number</a></li><li><a href="SevenSegment.html#run">run</a></li></ul></div></li><li><a href="Shutter.html">Shutter</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="Shutter_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="Shutter.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="Shutter.html#action">action</a></li><li><a href="Shutter.html#run">run</a></li></ul></div></li><li><a href="SmartServo.html">SmartServo</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="SmartServo_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="SmartServo.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="SmartServo.html#absoluteAngle">absoluteAngle</a></li><li><a href="SmartServo.html#backToStart">backToStart</a></li><li><a href="SmartServo.html#getData">getData</a></li><li><a href="SmartServo.html#handshake">handshake</a></li><li><a href="SmartServo.html#ledColor">ledColor</a></li><li><a href="SmartServo.html#lock">lock</a></li><li><a href="SmartServo.html#readAngle">readAngle</a></li><li><a href="SmartServo.html#readCurrent">readCurrent</a></li><li><a href="SmartServo.html#readSpeed">readSpeed</a></li><li><a href="SmartServo.html#readTemperature">readTemperature</a></li><li><a href="SmartServo.html#readVoltage">readVoltage</a></li><li><a href="SmartServo.html#relativeAngle">relativeAngle</a></li><li><a href="SmartServo.html#run">run</a></li><li><a href="SmartServo.html#setAsDCMotorSpeed">setAsDCMotorSpeed</a></li><li><a href="SmartServo.html#setZeroPoint">setZeroPoint</a></li><li><a href="SmartServo.html#speed">speed</a></li><li><a href="SmartServo.html#unclock">unclock</a></li></ul></div></li><li><a href="Sound.html">Sound</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="Sound_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="Sound.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="Sound.html#getData">getData</a></li></ul></div></li><li><a href="SoundOnBoard.html">SoundOnBoard</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="SoundOnBoard_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="SoundOnBoard.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="SoundOnBoard.html#getData">getData</a></li></ul></div></li><li><a href="StepperMotor.html">StepperMotor</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="StepperMotor_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="StepperMotor.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="StepperMotor.html#direction">direction</a></li><li><a href="StepperMotor.html#distance">distance</a></li><li><a href="StepperMotor.html#reverse">reverse</a></li><li><a href="StepperMotor.html#run">run</a></li><li><a href="StepperMotor.html#setStop">setStop</a></li><li><a href="StepperMotor.html#speed">speed</a></li></ul></div></li><li><a href="Temperature.html">Temperature</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="Temperature_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="Temperature.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="Temperature.html#getData">getData</a></li></ul></div></li><li><a href="TemperatureOnBoard.html">TemperatureOnBoard</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="TemperatureOnBoard_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="TemperatureOnBoard.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="TemperatureOnBoard.html#getData">getData</a></li></ul></div></li><li><a href="Touch.html">Touch</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="Touch_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="Touch.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="Touch.html#getData">getData</a></li></ul></div></li><li><a href="Transport.html">Transport</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="Transport_sub"></div></li><li><a href="Ultrasonic.html">Ultrasonic</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="Ultrasonic_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="Ultrasonic.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="Ultrasonic.html#getData">getData</a></li></ul></div></li><li><a href="VirtualJoystick.html">VirtualJoystick</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="VirtualJoystick_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="VirtualJoystick.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="VirtualJoystick.html#leftSpeed">leftSpeed</a></li><li><a href="VirtualJoystick.html#rightSpeed">rightSpeed</a></li><li><a href="VirtualJoystick.html#run">run</a></li><li><a href="VirtualJoystick.html#setStop">setStop</a></li><li><a href="VirtualJoystick.html#speed">speed</a></li></ul></div></li><li><a href="VirtualJoystickForBalance.html">VirtualJoystickForBalance</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="VirtualJoystickForBalance_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="VirtualJoystickForBalance.html#protocol">protocol</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="VirtualJoystickForBalance.html#run">run</a></li><li><a href="VirtualJoystickForBalance.html#setReverse">setReverse</a></li><li><a href="VirtualJoystickForBalance.html#setStop">setStop</a></li><li><a href="VirtualJoystickForBalance.html#speed">speed</a></li><li><a href="VirtualJoystickForBalance.html#turnRange">turnRange</a></li></ul></div></li></ul></div><div class="lnb-api hidden"><h3>Namespaces</h3><ul><li><a href="Sensorium.html">Sensorium</a><button type="button" class="hidden toggle-subnav btn btn-link"> <span class="glyphicon glyphicon-plus"></span></button><div class="hidden" id="Sensorium_sub"><div class="member-type">Members</div><ul class="inner"><li><a href="Sensorium.html#SUPPORT">SUPPORT</a></li></ul><div class="member-type">Methods</div><ul class="inner"><li><a href="Sensorium.html#create">create</a></li><li><a href="Sensorium.html#doReceived">doReceived</a></li><li><a href="Sensorium.html#read">read</a></li><li><a href="Sensorium.html#readFirmwareInfo">readFirmwareInfo</a></li><li><a href="Sensorium.html#send">send</a></li><li><a href="Sensorium.html#setSender">setSender</a></li></ul></div></li></ul></div> </nav> <div id="resizer"></div> <div class="main" id="main"> <section> <article> <pre class="prettyprint source linenums"><code>/** * @private * @param {[type]} value [description] * @param {[type]} range [description] * @return {[type]} [description] */ function limitValue(value, range) { var newValue = value; range = range || [-255, 255]; if (value &lt; range[0]) { newValue = range[0]; } if (value > range[1]) { newValue = range[1]; } return newValue; } /** * Convert array of int to ArrayBuffer. * @private * @param {[int]} data array of int * @return {ArrayBuffer} result array buffer * @private */ function arrayBufferFromArray(data) { var buffer = new ArrayBuffer(data.length); var result = new Int8Array(buffer); for (var i = 0; i &lt; data.length; i++) { result[i] = data[i]; } return buffer; } /** * Convert ArrayBuffer from array of int * @private * @param {ArrayBuffer} buffer the source arraybuffer * @return {[int]} int array as the result; */ function arrayFromArrayBuffer(buffer) { var dataView = new Uint8Array(buffer); var result = []; for (var i = 0; i &lt; dataView.length; i++) { result.push(dataView[i]); } return result; } /** * [buffer2string converts array buffer to string format] * @private * @param {ArrayBuffer} buf [the input array buffer] * @return {String} [the output string] */ function buffer2string(buf) { var buffer = new Uint8Array(buf); return Array.prototype.join.call(buffer, " "); } /** * [string2buffer converts string to array buffer format] * @private * @param {String} str [the input string] * @return {Uint8Array} [the output uint8 array buffer] */ function string2buffer(str) { var buffer = new Uint8Array(str.split(" ")); return buffer; } /** * 将十进制字符串数组转为16进制 * @private * @param {Array} data to be transformed data, such as: ["01", "55", "12"] * @param {Boolean} isUpperCase whether need output upperCase string. * @return {String} 16 进制字符串 */ function intStrToHexStr(data, isUpperCase) { var temp = []; for (var i = 0; i &lt; data.length; i++) { if (data[i] != null) { var item = parseInt(data[i]).toString(16); if (isUpperCase) { item = parseInt(data[i]).toString(16).toUpperCase(); } if (item.length == 1) { item = "0" + item; } temp.push(item); } } return temp.join(" "); } /** * 十六进制字符串转成十进制 * @private * @param {[type]} str [description] * @return {[type]} [description] */ function hexStr2IntArray(str) { var a = str.split(" "); var arr = []; for (var i in a) { var num = parseInt(a[i], 16); arr.push(num); } arr.reverse(); return arr; } /** * Float to int then to bytes. * @private * @param {float} float number * @return {bytes} */ function float32ToBytes(value) { // TOFIX: hack if (value == 0) { return [0, 0, 0, 0]; } var bytesInt = 0; switch (value) { case Number.POSITIVE_INFINITY: bytesInt = 0x7F800000; break; case Number.NEGATIVE_INFINITY: bytesInt = 0xFF800000; break; case +0.0: bytesInt = 0x40000000; break; case -0.0: bytesInt = 0xC0000000; break; default: // if (Number.isNaN(value)) { bytesInt = 0x7FC00000; break; } if (value &lt;= -0.0) { bytesInt = 0x80000000; value = -value; } var exponent = Math.floor(Math.log(value) / Math.log(2)); var significand = ((value / Math.pow(2, exponent)) * 0x00800000) | 0; exponent += 127; if (exponent >= 0xFF) { exponent = 0xFF; significand = 0; } else if (exponent &lt; 0) exponent = 0; bytesInt = bytesInt | (exponent &lt;&lt; 23); bytesInt = bytesInt | (significand &amp; ~(-1 &lt;&lt; 23)); break; } var bytesArray = bigIntToBytes(bytesInt); return bytesArray; } /** * 整形转换成字节数组 * @private * @param {number} value 整形 * @return {array} array数组 */ function bigIntToBytes(value) { var bytesArray = []; var b1 = (value &amp; 0xff); var b2 = ((value >> 8) &amp; 0xff); var b3 = ((value >> 16) &amp; 0xff); var b4 = ((value >> 24) &amp; 0xff); bytesArray.push(b1); bytesArray.push(b2); bytesArray.push(b3); bytesArray.push(b4); return bytesArray; } /** * 32位整数转成字节,js最多只支持32位有符号整数,不支持64位,因此最多只能转成4byte * @private * @param {Number} float number * @return {Array} bytes array */ function longToBytes(value) { var bytes = []; var i = 4; do { bytes[--i] = value &amp; (255); value = value >> 8; } while (i) return bytes; } /** * 将单词的第一个字母转成大写 * @private * @param {string} str string. * @return {string} target string. */ function upperCaseFirstLetter(str) { var reg = /\b(\w)|\s(\w)/g; // str = str.toLowerCase(); return str.replace(reg, function(m) { return m.toUpperCase(); }) } /** * n个byte转成int值 * @private * @param {Array} bytes 传入的bytes数组 * @return {Number} 返回的int数值 */ function bytesToInt(bytes) { var val = 0; for (var i = bytes.length - 1; i >= 0; i--) { val += (bytes[bytes.length - i - 1] &lt;&lt; (i * 8)); } return val; } /** * transform int to ascii * @private * @param {Array} bytes int array * @return {String} str string */ function bytesToString(bytes) { var str = ""; for (var i = 0; i &lt; bytes.length; i++) { str += String.fromCharCode(bytes[i]); } return str; } function hexToRgb(hex) { let validHexColorReg = /^#(?:[0-9a-f]{3}){1,2}$/i; if (!validHexColorReg.test(hex)) { throw Error(`${hex} is not a valid hex color`); } let r = parseInt(hex.substr(1, 2), 16), g = parseInt(hex.substr(3, 2), 16), b = parseInt(hex.substr(5, 2), 16); return [r, g, b]; } /** * commpose to call func(args) * @private * @param {!Function} func 方法 * @param {Array} args 方法的参数数组 * @return {*} 返回结果由方法决定 */ function composer(func, args) { if (!args) { args = []; } return func(...args); } /** * Continuous byte string to binary byte * 单元测试可参看以下: * 标准笑脸输入: "000000000000000000010000001000000100000000100000000100100000001 * 00000001000010010001000000100000000100000000100000000000000000000" * 最终发送协议: [255, 85, 23, 0, 2, 41, 1, 2, 0, 0, 0, 0, 16, 32, 64, 32, 18, 2, 2, 18, 32, 64, 32, 16, 0, 0] * @private * @param {String} byteStrs * @return {Array} */ function emotionByteString2binaryByte(byteStrs) { let byteResult = []; let len = byteStrs.length + 1; for (let i = 1; i &lt; len; i++) { if (i % 8 === 0) { let byteStr = byteStrs.slice(i - 8, i); byteResult.push(parseInt(byteStr, 2)); } } return byteResult; } function getAllMethods(obj) { let props = [] do { const all = Object.getOwnPropertyNames(obj) .concat(Object.getOwnPropertySymbols(obj).map(s => s.toString())) .sort() .filter((p, i, arr) => { if ((i == 0 || p !== arr[i - 1]) &amp;&amp; //not overriding in this prototype !props.includes(p)) { //not overridden in a child let desc = Object.getOwnPropertyDescriptor(obj, p); if (desc.get || desc.set) { //getter or setter return true; } else { return typeof obj[p] === 'function' &amp;&amp; //only the methods p !== 'constructor' //not the constructor } } }) props = props.concat(all) } while ( (obj = Object.getPrototypeOf(obj)) &amp;&amp; //walk-up the prototype chain Object.getPrototypeOf(obj) //not the the Object prototype methods (hasOwnProperty, etc...) ) return props; } /** * filter array with a binaried string * @private * @param {Array} arr an array like [1, 2, 3] * @param {String} bstr a binaried string like '10101011' * @return {Array} filtered array */ function fiterWithBinaryStr(arr, bstr) { let filter = function(val, index) { if (bstr[index] === '1') { return val; } } return arr.filter(filter); } /** * calculate value from data received: bytes -> int -> float * @private * @param {Array} intArray decimal array * @return {Number} result. */ function calculateResponseValue(intArray) { var result = null; // FIXME: int字节转浮点型 var intBitsToFloat = function(num) { /* s 为符号(sign);e 为指数(exponent);m 为有效位数(mantissa)*/ var s = (num >> 31) == 0 ? 1 : -1, e = (num >> 23) &amp; 0xff, m = (e == 0) ? (num &amp; 0x7fffff) &lt;&lt; 1 : (num &amp; 0x7fffff) | 0x800000; return s * m * Math.pow(2, e - 150); }; var intValue = bytesToInt(intArray); // TOFIX if (intValue &lt; 100000 &amp;&amp; intValue > 0) { result = intValue; } else { result = parseFloat(intBitsToFloat(intValue).toFixed(2)); } return result; } /** * @fileOverview 工具类函数 */ export { limitValue, arrayBufferFromArray, arrayFromArrayBuffer, buffer2string, string2buffer, intStrToHexStr, hexStr2IntArray, float32ToBytes, bigIntToBytes, longToBytes, upperCaseFirstLetter, bytesToInt, bytesToString, hexToRgb, composer, emotionByteString2binaryByte, getAllMethods, fiterWithBinaryStr, calculateResponseValue }</code></pre> </article> </section> </div> <footer> <!-- <img class="logo" src="../statics/makeblocklogo.png" style="width: 154px; height: 24px"> 取消logo--> <div class="footer-text">Makeblock Team</div> </footer> <script>prettyPrint();</script> <script src="scripts/jquery.min.js"></script> <script src="scripts/tui-doc.js"></script> <script src="scripts/linenumber.js"></script> <script> var id = '_sub'.replace(/"/g, '_'); var selectedApi = document.getElementById(id); // do not use jquery selector var $selectedApi = $(selectedApi); $selectedApi.removeClass('hidden'); $selectedApi.parent().find('.glyphicon').removeClass('glyphicon-plus').addClass('glyphicon-minus'); showLnbApi(); </script> </body> </html>