This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const CONNECT_SERVICE = "00020001574f4f2053706865726f2121"; | |
const CONNECT_CHAR = "00020005574f4f2053706865726f2121"; | |
const MAIN_SERVICE = "00010001574f4f2053706865726f2121"; | |
const MAIN_CHAR = "00010002574f4f2053706865726f2121"; | |
const MSG_CONNECTION = [0x75,0x73,0x65,0x74,0x68,0x65,0x66,0x6F,0x72,0x63,0x65,0x2E,0x2E,0x2E,0x62,0x61,0x6E,0x64]; | |
const MSG_INIT = [0x0A,0x13,0x0D]; | |
const MSG_OFF = [0x0A,0x13,0x01]; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let calculateChk = (buff) => { | |
let ret = 0x00; | |
for (let i = 0 ; i < buff.length ; i++) { | |
ret += buff[i]; | |
} | |
ret = ret & 255; | |
return (ret ^ 255); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const ESC = 0xAB; | |
const SOP = 0x8D; | |
const EOP = 0xD8; | |
const ESC_ESC = 0x23; | |
const ESC_SOP = 0x05; | |
const ESC_EOP = 0x50; | |
let seq = 0; | |
let buildPacket = (init, payload=[]) => { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const noble = require('noble'); | |
let connectTheDroid = (address) => { | |
return new Promise((resolve, reject) => { | |
noble.on('discover', (peripheral) => { | |
if (peripheral.address === address) { | |
noble.stopScanning(); | |
peripheral.connect( (e) => { | |
peripheral.discoverServices([CONNECT_SERVICE], (error, services) => { | |
services[0].discoverCharacteristics([CONNECT_CHAR], (error, characteristics) => { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let writePacket = (characteristic, buff, waitForNotification=false, timeout=0) => { | |
return new Promise(function(resolve, reject) { | |
let dataRead = []; | |
let checkIsAValidRequest = (dataRead) => { | |
if (dataRead[5] != 0x00) { | |
characteristic.removeListener('data', listenerForRead); | |
reject(dataRead[5]); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const MSG_ROTATE = [0x0A,0x17,0x0F]; | |
let convertDegreeToHex = (degree) => { | |
var view = new DataView(new ArrayBuffer(4)); | |
view.setFloat32(0, degree); | |
return Array | |
.apply(null, { length: 4 }) | |
.map((_, i) => view.getUint8(i)) | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import requests | |
def get_all_planets(): | |
page = 0 | |
planets = [] | |
next_url = "https://swapi.co/api/planets/" | |
while next_url: | |
resp = requests.get(next_url).json() | |
next_url = resp['next'] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const elementsBetweenEvenNumbers = (arr) => { | |
return arr.reduce((x, current) => { | |
x[0].push(current) | |
if (x[0].length === 3) { | |
if (x[0][0] % 2 === 0 && x[0][2] % 2 === 0) | |
x[1].push(x[0][1]) | |
x[0] = x[0].slice(1) | |
} | |
return x | |
}, [[],[]])[1] |
OlderNewer