import 'dart:typed_data'; import '../io_reply.dart'; import '../io_sender.dart'; import '../io_type.dart'; //oat升级 class ProcessOtaUpgradeCommand extends SenderProtocol { ProcessOtaUpgradeCommand({ this.index, this.size, this.data, }) : super(CommandType.processOTAUpgrade); int? index; int? size; List? data; @override String toString() { return 'ProcessOtaUpgradeCommand{index: $index, size: $size, data: $data}'; } @override List messageDetail() { final List data = []; // 指令类型 final int type = commandType!.typeValue; final double typeDouble = type / 256; final int type1 = typeDouble.toInt(); final int type2 = type % 256; data.add(type1); data.add(type2); //index 2 final ByteData indexBytes = ByteData(2); // 创建一个长度为4的字节数据 indexBytes.setInt16(0, index!); final List indexList = indexBytes.buffer.asUint8List(); data.addAll(indexList); //size 2 final ByteData bytes = ByteData(2); // 创建一个长度为4的字节数据 bytes.setInt16(0, size!); final List byteList = bytes.buffer.asUint8List(); data.addAll(byteList); data.addAll(this.data!); printLog(data); //不加密 return data; } } class ProcessOtaUpgradeReply extends Reply { ProcessOtaUpgradeReply.parseData( CommandType commandType, List dataDetail) : super.parseData(commandType, dataDetail) { data = dataDetail; status = data[2]; errorWithStstus(status); } } class ConfirmationOTAUpgradeReply extends Reply { ConfirmationOTAUpgradeReply.parseData( CommandType commandType, List dataDetail) : super.parseData(commandType, dataDetail) { data = dataDetail; status = data[2]; errorWithStstus(status); } }