parent
7081e66183
commit
ec9e18163b
|
|
@ -47,16 +47,16 @@ public class Mqtt2MessageHandler implements MessageHandler {
|
|||
String topic = String.valueOf(message.getHeaders().get(MqttHeaders.RECEIVED_TOPIC));
|
||||
String payload = message.getPayload().toString();
|
||||
try {
|
||||
// log.info("client2接收到的消息:{} {}", topic, message.getPayload());
|
||||
// log.debug("client2接收到的消息:{} {}", topic, message.getPayload());
|
||||
String method = Utils.getLastTwoSegments(topic, "/");
|
||||
String afterProduct = StrUtil.subAfter(topic, "product/", false); // "8UUXP1P00A107D/drc/up"
|
||||
String gateway = StrUtil.subBefore(afterProduct, "/", false);
|
||||
if ("drc/up".equals(method)) {
|
||||
log.debug("drc 回复--> topic:{} ,payload:{}", topic, payload);
|
||||
JSONObject messageJson = JsonUtils.parseObject(payload, JSONObject.class);
|
||||
if (messageJson != null) {
|
||||
String methodJson = messageJson.getStr(BusinessConstant.METHOD);
|
||||
if (VALID_METHODS.contains(methodJson)) {
|
||||
log.debug("drc 回复--> topic:{} ,payload:{}", topic, payload);
|
||||
JSONObject dataJson = messageJson.getJSONObject(BusinessConstant.DATA);
|
||||
if (dataJson == null) {
|
||||
dataJson = new JSONObject();
|
||||
|
|
|
|||
|
|
@ -257,10 +257,10 @@ public class CommandServiceImpl implements CommandService {
|
|||
*/
|
||||
@Override
|
||||
public void drcStickControl(String dockSn, DrcStick drcStick) {
|
||||
DockDeviceEntity dockDevice = dockDeviceDao.selectOne(new QueryWrapper<DockDeviceEntity>().eq("sn", dockSn));
|
||||
/*DockDeviceEntity dockDevice = dockDeviceDao.selectOne(new QueryWrapper<DockDeviceEntity>().eq("sn", dockSn));
|
||||
if (dockDevice == null) {
|
||||
throw new RenException(ErrorCode.DOCK_NOT_REGISTER);
|
||||
}
|
||||
}*/
|
||||
String topic = "thing/product/" + dockSn + "/drc/down";
|
||||
//数值重置 范围 -100~100
|
||||
if (drcStick.getStickInput() > 100) {
|
||||
|
|
@ -269,51 +269,51 @@ public class CommandServiceImpl implements CommandService {
|
|||
drcStick.setStickInput(-100);
|
||||
}
|
||||
//适配机场1
|
||||
if ("3-1-0".equals(dockDevice.getDeviceModelKey())) {//大疆机场1
|
||||
int speed = 17 * drcStick.getStickInput() / 100;
|
||||
JSONObject message = new JSONObject();
|
||||
message.set("method", "drone_control");
|
||||
JSONObject data = new JSONObject();
|
||||
switch (drcStick.getStickDirection()) {
|
||||
case "pitch":
|
||||
data.set("x", speed);
|
||||
break;
|
||||
case "roll":
|
||||
data.set("y", speed);
|
||||
break;
|
||||
case "yaw":
|
||||
data.set("w", drcStick.getStickInput() > 0 ? 15 : -15);
|
||||
break;
|
||||
case "throttle":
|
||||
data.set("h", drcStick.getStickInput() > 0 ? 5 : -3);
|
||||
break;
|
||||
}
|
||||
message.set("data", data);
|
||||
mqttPushService.pushMessageByClient2(topic, message.toString());
|
||||
log.debug("drc --> drone_control:topic:{},message:{}", topic, message);
|
||||
} else {
|
||||
//数据处理 上升下降的速度变慢,保持中值±330
|
||||
int stick;
|
||||
int throttleStick;
|
||||
if (drcStick.getStickInput() > 0) {
|
||||
stick = 1024 + (int) (660.0 * drcStick.getStickInput() / 100);
|
||||
throttleStick = 1024 + 330;
|
||||
} else {
|
||||
stick = 1024 - (int) (660.0 * Math.abs(drcStick.getStickInput()) / 100);
|
||||
throttleStick = 1024 - 330;
|
||||
}
|
||||
JSONObject message = new JSONObject();
|
||||
message.set("seq", System.currentTimeMillis());
|
||||
message.set("method", "stick_control");
|
||||
JSONObject data = new JSONObject();
|
||||
if ("throttle".equals(drcStick.getStickDirection())) {
|
||||
data.set(drcStick.getStickDirection(), throttleStick);
|
||||
} else {
|
||||
data.set(drcStick.getStickDirection(), stick);
|
||||
}
|
||||
message.set("data", data);
|
||||
mqttPushService.pushMessageByClient2(topic, message.toString());
|
||||
log.debug("drc --> stick_control:topic:{},message:{}", topic, message);
|
||||
// if ("3-1-0".equals(dockDevice.getDeviceModelKey())) {//大疆机场1
|
||||
int speed = 17 * drcStick.getStickInput() / 100;
|
||||
JSONObject message = new JSONObject();
|
||||
message.set("method", "drone_control");
|
||||
JSONObject data = new JSONObject();
|
||||
switch (drcStick.getStickDirection()) {
|
||||
case "pitch":
|
||||
data.set("x", speed);
|
||||
break;
|
||||
case "roll":
|
||||
data.set("y", speed);
|
||||
break;
|
||||
case "yaw":
|
||||
data.set("w", drcStick.getStickInput() > 0 ? 15 : -15);
|
||||
break;
|
||||
case "throttle":
|
||||
data.set("h", drcStick.getStickInput() > 0 ? 5 : -3);
|
||||
break;
|
||||
}
|
||||
message.set("data", data);
|
||||
mqttPushService.pushMessageByClient2(topic, message.toString());
|
||||
log.debug("drc --> drone_control:topic:{},message:{}", topic, message);
|
||||
// } else {
|
||||
//数据处理 上升下降的速度变慢,保持中值±330
|
||||
int stick;
|
||||
int throttleStick;
|
||||
if (drcStick.getStickInput() > 0) {
|
||||
stick = 1024 + (int) (660.0 * drcStick.getStickInput() / 100);
|
||||
throttleStick = 1024 + 330;
|
||||
} else {
|
||||
stick = 1024 - (int) (660.0 * Math.abs(drcStick.getStickInput()) / 100);
|
||||
throttleStick = 1024 - 330;
|
||||
}
|
||||
JSONObject message2 = new JSONObject();
|
||||
message2.set("seq", System.currentTimeMillis());
|
||||
message2.set("method", "stick_control");
|
||||
JSONObject data2 = new JSONObject();
|
||||
if ("throttle".equals(drcStick.getStickDirection())) {
|
||||
data2.set(drcStick.getStickDirection(), throttleStick);
|
||||
} else {
|
||||
data2.set(drcStick.getStickDirection(), stick);
|
||||
}
|
||||
message2.set("data", data2);
|
||||
mqttPushService.pushMessageByClient2(topic, message2.toString());
|
||||
log.debug("drc --> stick_control:topic:{},message:{}", topic, message2);
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue