fix:增加对讲的主动消息组装

This commit is contained in:
liyi 2024-12-05 13:50:20 +08:00
parent 4aeda1bfdf
commit 8f7ec774c1

View File

@ -7,6 +7,11 @@ import 'package:star_lock/talk/startChart/constant/payload_type_constant.dart';
import 'package:star_lock/talk/startChart/constant/protocol_flag_constant.dart';
import 'package:star_lock/talk/startChart/entity/scp_message.dart';
import 'package:star_lock/talk/startChart/proto/gateway_reset.pb.dart';
import 'package:star_lock/talk/startChart/proto/generic.pb.dart';
import 'package:star_lock/talk/startChart/proto/talk_accept.pb.dart';
import 'package:star_lock/talk/startChart/proto/talk_data.pb.dart';
import 'package:star_lock/talk/startChart/proto/talk_ping.pb.dart';
import 'package:star_lock/talk/startChart/proto/talk_reject.pb.dart';
class MessageCommand {
/// 线
@ -107,12 +112,13 @@ class MessageCommand {
return _hexToBytes(serializedBytesString);
}
//
static List<int> talkPingMessage({
//
static List<int> talkAcceptMessage({
required String FromPeerId,
required String ToPeerId,
}) {
String payload = 'hello';
final talkAcceptReq = TalkAcceptReq();
final payload = talkAcceptReq.writeToBuffer();
ScpMessage message = ScpMessage(
ProtocolFlag: ProtocolFlagConstant.scp01,
MessageType: MessageTypeConstant.Req,
@ -122,7 +128,55 @@ class MessageCommand {
FromPeerId: FromPeerId,
ToPeerId: ToPeerId,
Payload: payload,
PayloadCRC: calculationCrc(_stringToUint8List(payload)),
PayloadCRC: calculationCrc(payload),
PayloadLength: payload.length,
PayloadType: PayloadTypeConstant.talkAccept,
);
String serializedBytesString = message.serialize();
return _hexToBytes(serializedBytesString);
}
//
static List<int> talkRejectMessage({
required String FromPeerId,
required String ToPeerId,
}) {
final talkReject = TalkReject();
final payload = talkReject.writeToBuffer();
ScpMessage message = ScpMessage(
ProtocolFlag: ProtocolFlagConstant.scp01,
MessageType: MessageTypeConstant.Req,
MessageId: 1,
SpTotal: 0,
SpIndex: 0,
FromPeerId: FromPeerId,
ToPeerId: ToPeerId,
Payload: payload,
PayloadCRC: calculationCrc(payload),
PayloadLength: payload.length,
PayloadType: PayloadTypeConstant.talkReject,
);
String serializedBytesString = message.serialize();
return _hexToBytes(serializedBytesString);
}
//
static List<int> talkPingMessage({
required String FromPeerId,
required String ToPeerId,
}) {
final talkPing = TalkPing();
final payload = talkPing.writeToBuffer();
ScpMessage message = ScpMessage(
ProtocolFlag: ProtocolFlagConstant.scp01,
MessageType: MessageTypeConstant.RealTimeData,
MessageId: 1,
SpTotal: 0,
SpIndex: 0,
FromPeerId: FromPeerId,
ToPeerId: ToPeerId,
Payload: payload,
PayloadCRC: calculationCrc(payload),
PayloadLength: payload.length,
PayloadType: PayloadTypeConstant.talkPing,
);
@ -130,6 +184,84 @@ class MessageCommand {
return _hexToBytes(serializedBytesString);
}
//
static List<int> talkDataMessage({
required String FromPeerId,
required String ToPeerId,
required TalkData talkData,
}) {
final payload = talkData.writeToBuffer();
ScpMessage message = ScpMessage(
ProtocolFlag: ProtocolFlagConstant.scp01,
MessageType: MessageTypeConstant.RealTimeData,
MessageId: 1,
SpTotal: 0,
SpIndex: 0,
FromPeerId: FromPeerId,
ToPeerId: ToPeerId,
Payload: payload,
PayloadCRC: calculationCrc(payload),
PayloadLength: payload.length,
PayloadType: PayloadTypeConstant.talkData,
);
String serializedBytesString = message.serialize();
return _hexToBytes(serializedBytesString);
}
// GenericRespSuccess
static List<int> genericRespSuccessMessage({
required String FromPeerId,
required String ToPeerId,
required int PayloadType,
}) {
final genericResp = GenericResp();
genericResp.message = 'ok';
genericResp.code = 0;
final payload = genericResp.writeToBuffer();
ScpMessage message = ScpMessage(
ProtocolFlag: ProtocolFlagConstant.scp01,
MessageType: MessageTypeConstant.Resp,
MessageId: 1,
SpTotal: 0,
SpIndex: 0,
FromPeerId: FromPeerId,
ToPeerId: ToPeerId,
Payload: payload,
PayloadCRC: calculationCrc(payload),
PayloadLength: payload.length,
PayloadType: PayloadType,
);
String serializedBytesString = message.serialize();
return _hexToBytes(serializedBytesString);
}
// GenericRespError
static List<int> genericRespErrorMessage({
required String FromPeerId,
required String ToPeerId,
required int PayloadType,
}) {
final genericResp = GenericResp();
genericResp.message = 'error';
genericResp.code = -1;
final payload = genericResp.writeToBuffer();
ScpMessage message = ScpMessage(
ProtocolFlag: ProtocolFlagConstant.scp01,
MessageType: MessageTypeConstant.Resp,
MessageId: 1,
SpTotal: 0,
SpIndex: 0,
FromPeerId: FromPeerId,
ToPeerId: ToPeerId,
Payload: payload,
PayloadCRC: calculationCrc(payload),
PayloadLength: payload.length,
PayloadType: PayloadType,
);
String serializedBytesString = message.serialize();
return _hexToBytes(serializedBytesString);
}
// 16
static List<int> _hexToBytes(String hex) {
final bytes = <int>[];