86 lines
2.3 KiB
Dart
Executable File
86 lines
2.3 KiB
Dart
Executable File
import 'dart:convert';
|
|
|
|
import '../../../blue/io_tool/io_tool.dart';
|
|
import 'package:fast_gbk/fast_gbk.dart';
|
|
|
|
import '../io_udpSender.dart';
|
|
import '../io_udpType.dart';
|
|
import '../udp_reply.dart';
|
|
|
|
class UDPSendHeartCommand extends UDPSenderProtocol {
|
|
String? userName;
|
|
List<int>? ipList;
|
|
String? tokenStr;
|
|
|
|
UDPSendHeartCommand({
|
|
this.userName,
|
|
this.ipList,
|
|
this.tokenStr,
|
|
}) : super(CommandUDPType.heart);
|
|
|
|
@override
|
|
List<int> messageDetail() {
|
|
List<int> data = <int>[];
|
|
|
|
// 命令
|
|
data.add(4);
|
|
|
|
// 命令类型
|
|
data.add(1);
|
|
|
|
// 用户名 P18682150237
|
|
// var pStr = "P18682150237";
|
|
data.addAll(utf8.encode(userName!));
|
|
data = getFixedLengthList(data, 20 - utf8.encode(userName!).length);
|
|
|
|
// data.add(0);
|
|
|
|
// mac地址
|
|
// var macAddress = "02:00:00:00:00:00";
|
|
// data.addAll(utf8.encode(macAddress));
|
|
// data = getFixedLengthList(data, 6 - utf8.encode(macAddress).length);
|
|
data.addAll(<int>[0, 0, 0, 0, 0, 0]);
|
|
|
|
// 预留4个字节
|
|
data.addAll(<int>[0, 0, 0, 0]);
|
|
|
|
// ip地址
|
|
// var ipStr = "192.168.9.7";
|
|
// data.addAll(utf8.encode(ipStr!));
|
|
// data = getFixedLengthList(data, 12 - utf8.encode(ipStr!).length);
|
|
data.addAll(ipList!);
|
|
|
|
// 预留8个字节
|
|
data.addAll(<int>[0, 0, 0, 0, 0, 0, 0, 0]);
|
|
|
|
// token
|
|
const String token = 'token';
|
|
data.addAll(gbk.encode(token));
|
|
data = getFixedLengthList(data, 10 - gbk.encode(token).length);
|
|
// AppLog.log("gbk.encode(token):${gbk.encode(token)}");
|
|
|
|
// var tokenStr = "b989fa15f75c2ac02718b7c9bb64f80e";
|
|
data.addAll(gbk.encode(tokenStr!));
|
|
// AppLog.log("gbk.encode(tokenStr):${gbk.encode(tokenStr!)}");
|
|
|
|
final int tokenStrLength = gbk.encode(tokenStr!).length;
|
|
final List<int> tokenStrLengthArr = <int>[];
|
|
tokenStrLengthArr.add(tokenStrLength & 0xff);
|
|
tokenStrLengthArr.add((tokenStrLength & 0xff00) >> 8);
|
|
tokenStrLengthArr.add((tokenStrLength & 0xff0000) >> 16);
|
|
tokenStrLengthArr.add((tokenStrLength & 0xff000000) >> 24);
|
|
data.setRange(37, 41, tokenStrLengthArr);
|
|
|
|
// AppLog.log("UDPSendHeartData:$data");
|
|
|
|
return data;
|
|
}
|
|
}
|
|
|
|
class UDPSendHeartReply extends UDPReply {
|
|
UDPSendHeartReply.parseData(CommandUDPType commandType, List<int> dataDetail)
|
|
: super.parseData(commandType, dataDetail) {
|
|
data = dataDetail;
|
|
}
|
|
}
|