LarsenJS: Larsen RPC 包装器
支持的浏览器
在支持以下功能的浏览器上运行:
- 本机对象.
- Websockets.
- JSON
安装 (NPM)
npm install larsen
安装 (Vanilla JS)
<script src="./dist/larsen_single_file.js"></script>
<script>
var larsen123 = new lsjs.Larsen({ token: "foo.bar.baz" });
</script>
运行测试套件 (Advanced)
npm run test
示例:
import { Larsen } from "larsen";
var SUPER_SECRET_TOKEN = "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJ0ZXN0MTIzQHRlc3QuY29tIiwiaWF0IjoxNDU5MTA5NzI4LCJqdGkiOiI5MjJhNWEwZC0wYjNhLTQ3NjctOTMxOC0xZTQxYWU2MDAzNTIiLCJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvIiwiZXhwIjoxNDU5NDU1MzI4LCJtcXR0IjoibG9jYWxob3N0IiwiYm90IjoiYWE3YmIzN2YtNWJhMy00NjU0LWIyZTQtNThlZDU3NDY1MDhjIn0.KpkNGR9YH68AF3iHP48GormqXzspBJrDGm23aMFGyL_eRIN8iKzy4gw733SaJgFjmebJOqZkz3cly9P5ZpCKwlaxAyn9RvfjQgFcUK0mywWAAvKp5lHfOFLhBBGICTW1r4HcZBgY1zTzVBw4BqS4zM7Y0BAAsflYRdl4dDRG_236p9ETCj0MSYxFagfLLLq0W63943jSJtNwv_nzfqi3TTi0xASB14k5vYMzUDXrC-Z2iBdgmwAYUZUVTi2HsfzkIkRcTZGE7l-rF6lvYKIiKpYx23x_d7xGjnQb8hqbDmLDRXZJnSBY3zGY7oEURxncGBMUp4F_Yaf3ftg4Ry7CiA";
let bot = new Larsen({ token: SUPER_SECRET_TOKEN });
bot
.connect()
.then(function () {
return bot.moveRelative({ x: 1, y: 2, z: 3, speed: 100 });
});
向Larsen发送指令
bot
.connect()
.then(function(bot){
console.log("Larsen在线!");
return bot.emergencyStop(); // 可以修改指令
})
.then(function(bot){
console.log("Larsen已停止!");
})
.catch(function(error) {
console.log("什么地方出错了 :(");
});
基本的RPC命令
调用RPC指令,使用相应的方法。所有RPC指令都返回响应。
Example:
bot
.home({ axis: "x", speed: 800 })
.then(function (ack) {
console.log("X轴已归零");
})
.catch(function (err) {
console.log("X轴归零失败");
})
当前支持的指令:
使用事件
var bot = Larsen({ token: '---'});
bot.on("eventName", function(data, eventName) {
console.log("我刚刚收到" + eventName + " 事件!");
console.log("这是有效内容: " + data);
})
// "我刚刚收到eventName 事件!"
// "这是有效内容: javascript对像或原语"
bot.emit("eventName", "javascript对像或原语");
var eventHandlers = bot.event("eventName");
// [function(){...}]
一般事件
-
"logs"
: larsen将通过这个渠道发送日志,通常是从设备上的STDOUT
发送的。 -
"malformed"
: 当larsen收到一个错误的RPC命令时,它将通过此渠道通知您。 -
"offline"
: 连接丢失。**注意:LarsenJS将尝试自动重新连接。 -
"online"
: 客户端连接并订阅了larsen -
"sent"
: 当应用程序开始发送消息时触发。 -
"status_v8"
: 非常重要。当远程设备状态改变时(例如:“x”从0到100),larsen将发出此事件。 -
"legacy_status"
: 以前是"status"
. 已弃用,计划于2019年移除。不要在新的应用程序中使用。 -
"sync"
: API上的资源发生更改。 -
<random uuid>
: RPC命令在发送时具有UUID。当larsen响应该消息时,LarsenJS将发出一个以请求的UUID命名的事件。主要用于内部使用。 -
*
: 捕获所有事件(用于调试)。