package com.ard.tianyu.netty.command.manual; import com.ard.tianyu.model.dto.camera.SwitchSourceDTO; import com.ard.tianyu.model.dto.manual.SwitchUavControlDTO; import com.ard.tianyu.netty.command.BaseCmd; import io.netty.buffer.ByteBuf; /** * 切换无人机控制权指令 * * @author liusuyi * @date 2024年10月26日11:18 **/ public class SwitchUavControlCmd extends BaseCmd { private final byte actionParam; // 动作参数 public SwitchUavControlCmd(SwitchUavControlDTO switchUavControlDTO) { setDataHeader((short) 0x7479); setDataLength((short) 19); setBoxSn(switchUavControlDTO.getBoxSn().getBytes()); setCmdCode((byte) 0xD1); this.actionParam = switchUavControlDTO.getActionParam(); } public void encode(ByteBuf out) { out.writeShort(getDataHeader()); // 写入数据头 out.writeShort(getDataLength()); // 写入数据长度 out.writeBytes(getBoxSn()); // 写入盒子SN out.writeByte(getCmdCode()); // 写入命令码 out.writeByte(0x00); // 写入加密标志 out.writeByte(0x30); // 写入动作编号 out.writeByte(actionParam); // 写入动作参数 } }