liusuyi
2024-10-23 37aeda6f5a45a220955eafd55bf5154c71c2d705
ard-work/src/main/java/com/ard/tianyu/service/impl/TyServiceImpl.java
@@ -6,10 +6,7 @@
import com.ard.tianyu.model.dto.BoxPhotosDTO;
import com.ard.tianyu.model.dto.BoxSettingsDTO;
import com.ard.tianyu.model.receiver.*;
import com.ard.tianyu.netty.command.BaseCommand;
import com.ard.tianyu.netty.command.ControlAngleCommand;
import com.ard.tianyu.netty.command.HeartbeatCommand;
import com.ard.tianyu.netty.command.RegisterCommand;
import com.ard.tianyu.netty.command.*;
import com.ard.tianyu.netty.TyNettyTcpClient;
import com.ard.tianyu.service.ITyService;
import io.netty.buffer.ByteBuf;
@@ -22,6 +19,7 @@
import javax.annotation.Resource;
import java.net.InetSocketAddress;
import java.util.ArrayList;
import java.util.List;
/**
@@ -58,8 +56,13 @@
    @Override
    public List<BoxInfoReceiver> getBoxList() {
        //请求云盒列表
        TyHttpCommonReceiver<List<BoxInfoReceiver>> boxListReveiver = tyClient.getBoxList(tyConfiguration.getAccessToken().convertFromDTO());
        return boxListReveiver.getContent();
        try {
            TyHttpCommonReceiver<List<BoxInfoReceiver>> boxListReveiver = tyClient.getBoxList(tyConfiguration.getAccessToken().convertFromDTO());
            return boxListReveiver.getContent();
        } catch (Exception e) {
            log.error("获取云盒列表失败:{}", e.getMessage());
            return new ArrayList<>();
        }
    }
    /**
@@ -145,6 +148,32 @@
        this.sendMessage(tyConfiguration.getIpPort(), controlAngleCommand);
    }
    @Override
    public void processMessage(String key, BaseCommand tyCommand) {
        byte cmdCode = tyCommand.getCmdCode();
        switch (cmdCode) {
            case 0x01:
                // 处理心跳消息
                log.info("收到心跳消息-->处理心跳消息");
                break;
            case 0x02:
                // 处理注册消息
                HeartbeatReplyCommand heartbeatReplyCommand = (HeartbeatReplyCommand) tyCommand;
                log.info("收到心跳消息-->处理心跳消息{}", heartbeatReplyCommand.getTimestamp());
                break;
            case (byte) 0xA8:
                // 处理无人机状态消息
                log.info("收到无人机状态消息-->无人机状态消息");
                break;
            case (byte) 0xA9:
                // 处理无人机遥测消息
                log.info("收到无人机遥测消息-->无人机遥测消息");
                break;
            default:
                // 处理其他消息
        }
    }
    @Scheduled(fixedRate = 5000)
    public void sendHeartBeat() {
        long timestamp = System.currentTimeMillis();