我正在使用 java 脚本和使用 node-mavlink https://github.com/padcom/node-mavlink对无人机进行编程。我试图弄清楚如何检测无人机是否正在起飞,在飞行或着陆过程中。当我阅读 mavlink 文档时,似乎“MAV_LANDED_STATE”就是我想要的。我知道我可以像这样向无人机发送消息或命令
const mavlinkPort = new SerialPort("/dev/ttyACM0");
const message = new common.RequestDataStream();
message.targetSystem = 1;
message.targetComponent = 0;
message.reqStreamId = 0;
message.reqMessageRate = 1000;
message.startStop = 0;
message.paramId = "SYSTEM_TIME";
await send(mavlinkPort, message);
但是我如何向无人机发送请求,要求它发回枚举 MavLandedState 的值?我已经尝试过发送
const message = common.MavLandedState
和
const message = new common.MavLandedState()
其中第一个给我一个错误,说它在缓冲区之外,然后返回一个错误,说 MavLandedState 不是构造函数(因为它是一个枚举,我没想到它会工作,但我想我会尝试)。如果我没有提供足够的信息,请告诉我。