62 lines
1.6 KiB
Dart
62 lines
1.6 KiB
Dart
import 'dart:convert';
|
|
import 'dart:typed_data';
|
|
|
|
import 'package:crypto/crypto.dart' as crypto;
|
|
|
|
import '../io_reply.dart';
|
|
import '../io_sender.dart';
|
|
import '../io_tool/io_tool.dart';
|
|
import '../io_type.dart';
|
|
import '../sm4Encipher/sm4.dart';
|
|
|
|
//oat升级
|
|
class SetVoicePackageFinalResult extends SenderProtocol {
|
|
SetVoicePackageFinalResult({
|
|
this.lockID,
|
|
this.languageCode,
|
|
}) : super(CommandType.setLockCurrentVoicePacket);
|
|
String? lockID;
|
|
String? languageCode;
|
|
|
|
@override
|
|
String toString() {
|
|
return 'SetVoicePackageFinalResult{lockID: $lockID, languageCode: $languageCode}';
|
|
}
|
|
|
|
@override
|
|
List<int> messageDetail() {
|
|
List<int> data = <int>[];
|
|
|
|
// 指令类型
|
|
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);
|
|
|
|
// 锁id 40
|
|
final int lockIDLength = utf8.encode(lockID!).length;
|
|
data.addAll(utf8.encode(lockID!));
|
|
data = getFixedLengthList(data, 40 - lockIDLength);
|
|
|
|
//languageCode 20
|
|
final int languageCodeLength = utf8.encode(languageCode!).length;
|
|
data.addAll(utf8.encode(languageCode!));
|
|
data = getFixedLengthList(data, 20 - languageCodeLength);
|
|
|
|
printLog(data);
|
|
return data;
|
|
}
|
|
}
|
|
|
|
class SetVoicePackageFinalResultReply extends Reply {
|
|
SetVoicePackageFinalResultReply.parseData(
|
|
CommandType commandType, List<int> dataDetail)
|
|
: super.parseData(commandType, dataDetail) {
|
|
data = dataDetail;
|
|
status = data[2];
|
|
errorWithStstus(status);
|
|
}
|
|
}
|