Node.js로 Parrot의 미니 무인 항공기를 건너 뛰기 (async/await 사용)
#RESAS
Node.js에서 Parrot의 미니 드론 BLE 정보 찾기 의 계속입니다.
rolling-spider 샘플을 async/await에서 사용할 수 있도록 작성했습니다.
이 샘플이라고 키 입력으로 제어였지만
何秒後にこれを実行
같은 처리를 동기적으로 쓰고 싶었던 느낌입니다.준비
npm i --save rolling-spider
코드
app.js
'use strict';
const RollingSpider = require('rolling-spider');
const DRONE_UUID = process.env.DRONE_UUID || ``; //各々書き換えましょう。
const drone = Promise.promisifyAll(new RollingSpider({uuid:DRONE_UUID}));
const STEPS = 5;
let activeFlag = true;
const cooldown = () => {
activeFlag = false;
setTimeout(() => activeFlag = true, STEPS);
}
// Promise化
const droneConnectAsync = () => new Promise(resolve => drone.connect(resolve('connect success!')));
const droneSetupAsync = () => new Promise(resolve => drone.setup(resolve('setup success!')));
const droneFlatTrimAsync = () => new Promise(resolve => drone.flatTrim(resolve('trim success!')));
const sleep = msec => new Promise(resolve => setTimeout(resolve, msec)); // async/awaitでのSleep処理
// メインの処理
const main = async () => {
//ドローンとの接続/セットアップ
console.log('connecting...');
let res = await droneConnectAsync();
console.log(res);
res = await droneSetupAsync();
console.log('Configured for Rolling Spider! ', drone.name);
res = await droneFlatTrimAsync();
console.log(res);
drone.startPing();
res = await droneFlatTrimAsync();
console.log(res);
console.log(drone.name + ' => SESSION START');
activeFlag = true;
// 離陸
await sleep(5000);
drone.takeOff();
// 5秒待って前進
await sleep(5000);
drone.forward({steps:10});
cooldown();
// 5秒待って着陸
await sleep(5000);
drone.land();
// 10秒後に接続解除
await sleep(10000);
console.log('disconnect');
drone.disconnect();
process.stdin.pause();
process.exit();
};
main();
실행
$ DRONE_UUID=xxxxxxxxxxxx node app.js
이제
離陸->5秒待つ->前進->5秒待つ->着陸
Reference
이 문제에 관하여(Node.js로 Parrot의 미니 무인 항공기를 건너 뛰기 (async/await 사용)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/n0bisuke/items/fba0641b3889b7c2c75b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)