parent
7081e66183
commit
ec9e18163b
|
|
@ -47,16 +47,16 @@ public class Mqtt2MessageHandler implements MessageHandler {
|
||||||
String topic = String.valueOf(message.getHeaders().get(MqttHeaders.RECEIVED_TOPIC));
|
String topic = String.valueOf(message.getHeaders().get(MqttHeaders.RECEIVED_TOPIC));
|
||||||
String payload = message.getPayload().toString();
|
String payload = message.getPayload().toString();
|
||||||
try {
|
try {
|
||||||
// log.info("client2接收到的消息:{} {}", topic, message.getPayload());
|
// log.debug("client2接收到的消息:{} {}", topic, message.getPayload());
|
||||||
String method = Utils.getLastTwoSegments(topic, "/");
|
String method = Utils.getLastTwoSegments(topic, "/");
|
||||||
String afterProduct = StrUtil.subAfter(topic, "product/", false); // "8UUXP1P00A107D/drc/up"
|
String afterProduct = StrUtil.subAfter(topic, "product/", false); // "8UUXP1P00A107D/drc/up"
|
||||||
String gateway = StrUtil.subBefore(afterProduct, "/", false);
|
String gateway = StrUtil.subBefore(afterProduct, "/", false);
|
||||||
if ("drc/up".equals(method)) {
|
if ("drc/up".equals(method)) {
|
||||||
log.debug("drc 回复--> topic:{} ,payload:{}", topic, payload);
|
|
||||||
JSONObject messageJson = JsonUtils.parseObject(payload, JSONObject.class);
|
JSONObject messageJson = JsonUtils.parseObject(payload, JSONObject.class);
|
||||||
if (messageJson != null) {
|
if (messageJson != null) {
|
||||||
String methodJson = messageJson.getStr(BusinessConstant.METHOD);
|
String methodJson = messageJson.getStr(BusinessConstant.METHOD);
|
||||||
if (VALID_METHODS.contains(methodJson)) {
|
if (VALID_METHODS.contains(methodJson)) {
|
||||||
|
log.debug("drc 回复--> topic:{} ,payload:{}", topic, payload);
|
||||||
JSONObject dataJson = messageJson.getJSONObject(BusinessConstant.DATA);
|
JSONObject dataJson = messageJson.getJSONObject(BusinessConstant.DATA);
|
||||||
if (dataJson == null) {
|
if (dataJson == null) {
|
||||||
dataJson = new JSONObject();
|
dataJson = new JSONObject();
|
||||||
|
|
|
||||||
|
|
@ -257,10 +257,10 @@ public class CommandServiceImpl implements CommandService {
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void drcStickControl(String dockSn, DrcStick drcStick) {
|
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) {
|
if (dockDevice == null) {
|
||||||
throw new RenException(ErrorCode.DOCK_NOT_REGISTER);
|
throw new RenException(ErrorCode.DOCK_NOT_REGISTER);
|
||||||
}
|
}*/
|
||||||
String topic = "thing/product/" + dockSn + "/drc/down";
|
String topic = "thing/product/" + dockSn + "/drc/down";
|
||||||
//数值重置 范围 -100~100
|
//数值重置 范围 -100~100
|
||||||
if (drcStick.getStickInput() > 100) {
|
if (drcStick.getStickInput() > 100) {
|
||||||
|
|
@ -269,51 +269,51 @@ public class CommandServiceImpl implements CommandService {
|
||||||
drcStick.setStickInput(-100);
|
drcStick.setStickInput(-100);
|
||||||
}
|
}
|
||||||
//适配机场1
|
//适配机场1
|
||||||
if ("3-1-0".equals(dockDevice.getDeviceModelKey())) {//大疆机场1
|
// if ("3-1-0".equals(dockDevice.getDeviceModelKey())) {//大疆机场1
|
||||||
int speed = 17 * drcStick.getStickInput() / 100;
|
int speed = 17 * drcStick.getStickInput() / 100;
|
||||||
JSONObject message = new JSONObject();
|
JSONObject message = new JSONObject();
|
||||||
message.set("method", "drone_control");
|
message.set("method", "drone_control");
|
||||||
JSONObject data = new JSONObject();
|
JSONObject data = new JSONObject();
|
||||||
switch (drcStick.getStickDirection()) {
|
switch (drcStick.getStickDirection()) {
|
||||||
case "pitch":
|
case "pitch":
|
||||||
data.set("x", speed);
|
data.set("x", speed);
|
||||||
break;
|
break;
|
||||||
case "roll":
|
case "roll":
|
||||||
data.set("y", speed);
|
data.set("y", speed);
|
||||||
break;
|
break;
|
||||||
case "yaw":
|
case "yaw":
|
||||||
data.set("w", drcStick.getStickInput() > 0 ? 15 : -15);
|
data.set("w", drcStick.getStickInput() > 0 ? 15 : -15);
|
||||||
break;
|
break;
|
||||||
case "throttle":
|
case "throttle":
|
||||||
data.set("h", drcStick.getStickInput() > 0 ? 5 : -3);
|
data.set("h", drcStick.getStickInput() > 0 ? 5 : -3);
|
||||||
break;
|
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);
|
|
||||||
}
|
}
|
||||||
|
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