fix:调整udp返回数据为工厂模式处理
This commit is contained in:
parent
857f9fad2a
commit
9847b572b3
@ -84,7 +84,7 @@ class MessageCommand {
|
||||
iD: gatewayId,
|
||||
time: time,
|
||||
);
|
||||
// 构建荷载参数
|
||||
// 构建荷载长度
|
||||
final payload = gatewayResetReq.writeToBuffer();
|
||||
ScpMessage message = ScpMessage(
|
||||
ProtocolFlag: ProtocolFlagConstant.scp01,
|
||||
|
||||
@ -0,0 +1,19 @@
|
||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:star_lock/appRouters.dart';
|
||||
import 'package:star_lock/talk/startChart/entity/scp_message.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/scp_message_base_handle.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/scp_message_handle.dart';
|
||||
import 'package:star_lock/talk/startChart/proto/ble_message.pbserver.dart';
|
||||
import 'package:star_lock/talk/startChart/proto/gateway_reset.pb.dart';
|
||||
import 'package:star_lock/talk/startChart/proto/generic.pb.dart';
|
||||
|
||||
import '../../start_chart_manage.dart';
|
||||
|
||||
class UdpBlePassThroughHandler extends ScpMessageBaseHandle implements ScpMessageHandler {
|
||||
@override
|
||||
void handle(ScpMessage scpMessage) {
|
||||
final BleResp bleResp = scpMessage.Payload;
|
||||
// 蓝牙透传
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:star_lock/talk/startChart/entity/scp_message.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/scp_message_base_handle.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/scp_message_handle.dart';
|
||||
import 'package:star_lock/talk/startChart/proto/gateway_reset.pb.dart';
|
||||
import 'package:star_lock/talk/startChart/proto/generic.pb.dart';
|
||||
|
||||
import '../../start_chart_manage.dart';
|
||||
|
||||
class UdpGateWayTransferHandler extends ScpMessageBaseHandle
|
||||
implements ScpMessageHandler {
|
||||
@override
|
||||
void handle(ScpMessage scpMessage) {
|
||||
final GenericResp genericResp = scpMessage.Payload;
|
||||
if (checkGenericRespSuccess(genericResp)) {
|
||||
// TODO 网关转移成功
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:star_lock/appRouters.dart';
|
||||
import 'package:star_lock/talk/startChart/entity/scp_message.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/scp_message_base_handle.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/scp_message_handle.dart';
|
||||
import 'package:star_lock/talk/startChart/proto/ble_message.pbserver.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/remote_unlock.pb.dart';
|
||||
|
||||
import '../../start_chart_manage.dart';
|
||||
|
||||
class UdpRemoteUnLockHandler extends ScpMessageBaseHandle implements ScpMessageHandler {
|
||||
@override
|
||||
void handle(ScpMessage scpMessage) {
|
||||
final RemoteUnlockReq remoteUnlockReq = scpMessage.Payload;
|
||||
// 远程开锁
|
||||
}
|
||||
}
|
||||
20
lib/talk/startChart/handle/impl/udp_talk_accept_handler.dart
Normal file
20
lib/talk/startChart/handle/impl/udp_talk_accept_handler.dart
Normal file
@ -0,0 +1,20 @@
|
||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:star_lock/talk/startChart/entity/scp_message.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/scp_message_base_handle.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/scp_message_handle.dart';
|
||||
import 'package:star_lock/talk/startChart/proto/gateway_reset.pb.dart';
|
||||
import 'package:star_lock/talk/startChart/proto/generic.pb.dart';
|
||||
|
||||
import '../../start_chart_manage.dart';
|
||||
|
||||
class UdpTalkAcceptHandler extends ScpMessageBaseHandle
|
||||
implements ScpMessageHandler {
|
||||
@override
|
||||
void handle(ScpMessage scpMessage) {
|
||||
final GenericResp genericResp = scpMessage.Payload;
|
||||
if (checkGenericRespSuccess(genericResp)) {
|
||||
// TODO 同意接听
|
||||
}
|
||||
}
|
||||
}
|
||||
20
lib/talk/startChart/handle/impl/udp_talk_data_handler.dart
Normal file
20
lib/talk/startChart/handle/impl/udp_talk_data_handler.dart
Normal file
@ -0,0 +1,20 @@
|
||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:star_lock/talk/startChart/entity/scp_message.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/scp_message_base_handle.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/scp_message_handle.dart';
|
||||
import 'package:star_lock/talk/startChart/proto/gateway_reset.pb.dart';
|
||||
import 'package:star_lock/talk/startChart/proto/generic.pb.dart';
|
||||
|
||||
import '../../start_chart_manage.dart';
|
||||
|
||||
class UdpTalkDataHandler extends ScpMessageBaseHandle
|
||||
implements ScpMessageHandler {
|
||||
@override
|
||||
void handle(ScpMessage scpMessage) {
|
||||
final GenericResp genericResp = scpMessage.Payload;
|
||||
if (checkGenericRespSuccess(genericResp)) {
|
||||
// TODO 音视频数据
|
||||
}
|
||||
}
|
||||
}
|
||||
20
lib/talk/startChart/handle/impl/udp_talk_expect_handler.dart
Normal file
20
lib/talk/startChart/handle/impl/udp_talk_expect_handler.dart
Normal file
@ -0,0 +1,20 @@
|
||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:star_lock/talk/startChart/entity/scp_message.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/scp_message_base_handle.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/scp_message_handle.dart';
|
||||
import 'package:star_lock/talk/startChart/proto/gateway_reset.pb.dart';
|
||||
import 'package:star_lock/talk/startChart/proto/generic.pb.dart';
|
||||
|
||||
import '../../start_chart_manage.dart';
|
||||
|
||||
class UdpTalkExpectHandler extends ScpMessageBaseHandle
|
||||
implements ScpMessageHandler {
|
||||
@override
|
||||
void handle(ScpMessage scpMessage) {
|
||||
final GenericResp genericResp = scpMessage.Payload;
|
||||
if (checkGenericRespSuccess(genericResp)) {
|
||||
// TODO 预期接收
|
||||
}
|
||||
}
|
||||
}
|
||||
20
lib/talk/startChart/handle/impl/udp_talk_hangup_handler.dart
Normal file
20
lib/talk/startChart/handle/impl/udp_talk_hangup_handler.dart
Normal file
@ -0,0 +1,20 @@
|
||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:star_lock/talk/startChart/entity/scp_message.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/scp_message_base_handle.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/scp_message_handle.dart';
|
||||
import 'package:star_lock/talk/startChart/proto/gateway_reset.pb.dart';
|
||||
import 'package:star_lock/talk/startChart/proto/generic.pb.dart';
|
||||
|
||||
import '../../start_chart_manage.dart';
|
||||
|
||||
class UdpTalkHangUpHandler extends ScpMessageBaseHandle
|
||||
implements ScpMessageHandler {
|
||||
@override
|
||||
void handle(ScpMessage scpMessage) {
|
||||
final GenericResp genericResp = scpMessage.Payload;
|
||||
if (checkGenericRespSuccess(genericResp)) {
|
||||
// TODO 通话中挂断
|
||||
}
|
||||
}
|
||||
}
|
||||
20
lib/talk/startChart/handle/impl/udp_talk_ping_handler.dart
Normal file
20
lib/talk/startChart/handle/impl/udp_talk_ping_handler.dart
Normal file
@ -0,0 +1,20 @@
|
||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:star_lock/talk/startChart/entity/scp_message.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/scp_message_base_handle.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/scp_message_handle.dart';
|
||||
import 'package:star_lock/talk/startChart/proto/gateway_reset.pb.dart';
|
||||
import 'package:star_lock/talk/startChart/proto/generic.pb.dart';
|
||||
|
||||
import '../../start_chart_manage.dart';
|
||||
|
||||
class UdpTalkPingHandler extends ScpMessageBaseHandle
|
||||
implements ScpMessageHandler {
|
||||
@override
|
||||
void handle(ScpMessage scpMessage) {
|
||||
final GenericResp genericResp = scpMessage.Payload;
|
||||
if (checkGenericRespSuccess(genericResp)) {
|
||||
// TODO 呼叫保持
|
||||
}
|
||||
}
|
||||
}
|
||||
20
lib/talk/startChart/handle/impl/udp_talk_push_handler.dart
Normal file
20
lib/talk/startChart/handle/impl/udp_talk_push_handler.dart
Normal file
@ -0,0 +1,20 @@
|
||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:star_lock/talk/startChart/entity/scp_message.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/scp_message_base_handle.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/scp_message_handle.dart';
|
||||
import 'package:star_lock/talk/startChart/proto/gateway_reset.pb.dart';
|
||||
import 'package:star_lock/talk/startChart/proto/generic.pb.dart';
|
||||
|
||||
import '../../start_chart_manage.dart';
|
||||
|
||||
class UdpTalkPushHandler extends ScpMessageBaseHandle
|
||||
implements ScpMessageHandler {
|
||||
@override
|
||||
void handle(ScpMessage scpMessage) {
|
||||
final GenericResp genericResp = scpMessage.Payload;
|
||||
if (checkGenericRespSuccess(genericResp)) {
|
||||
// TODO 委托推送
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:star_lock/talk/startChart/entity/scp_message.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/scp_message_base_handle.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/scp_message_handle.dart';
|
||||
import 'package:star_lock/talk/startChart/proto/gateway_reset.pb.dart';
|
||||
import 'package:star_lock/talk/startChart/proto/generic.pb.dart';
|
||||
|
||||
import '../../start_chart_manage.dart';
|
||||
|
||||
class UdpTalkReceiverTransferHandler extends ScpMessageBaseHandle
|
||||
implements ScpMessageHandler {
|
||||
@override
|
||||
void handle(ScpMessage scpMessage) {
|
||||
final GenericResp genericResp = scpMessage.Payload;
|
||||
if (checkGenericRespSuccess(genericResp)) {
|
||||
// TODO 对讲接听者转移
|
||||
}
|
||||
}
|
||||
}
|
||||
20
lib/talk/startChart/handle/impl/udp_talk_reject_handler.dart
Normal file
20
lib/talk/startChart/handle/impl/udp_talk_reject_handler.dart
Normal file
@ -0,0 +1,20 @@
|
||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:star_lock/talk/startChart/entity/scp_message.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/scp_message_base_handle.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/scp_message_handle.dart';
|
||||
import 'package:star_lock/talk/startChart/proto/gateway_reset.pb.dart';
|
||||
import 'package:star_lock/talk/startChart/proto/generic.pb.dart';
|
||||
|
||||
import '../../start_chart_manage.dart';
|
||||
|
||||
class UdpTalkRejectHandler extends ScpMessageBaseHandle
|
||||
implements ScpMessageHandler {
|
||||
@override
|
||||
void handle(ScpMessage scpMessage) {
|
||||
final GenericResp genericResp = scpMessage.Payload;
|
||||
if (checkGenericRespSuccess(genericResp)) {
|
||||
// TODO 拒绝接听
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -6,6 +6,6 @@ import 'package:star_lock/talk/startChart/handle/scp_message_handle.dart';
|
||||
class UnKnowPayloadTypeHandler extends ScpMessageBaseHandle implements ScpMessageHandler {
|
||||
@override
|
||||
void handle(ScpMessage scpMessage) {
|
||||
AppLog.log('❌未知的payloadType类型');
|
||||
AppLog.log('❌未知的payloadType类型---》${scpMessage}');
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,13 +1,25 @@
|
||||
import 'package:star_lock/talk/startChart/constant/payload_type_constant.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/impl/udp_ble_passthrough_handler.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/impl/udp_call_request_handler.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/impl/udp_echo_test_handler.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/impl/udp_gateway_reset_handler.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/impl/udp_gateway_transfer_handler.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/impl/udp_go_online_handler.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/impl/udp_heart_beat_handler.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/impl/udp_remote_un_lock_handler.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/impl/udp_talk_accept_handler.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/impl/udp_talk_data_handler.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/impl/udp_talk_expect_handler.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/impl/udp_talk_hangup_handler.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/impl/udp_talk_ping_handler.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/impl/udp_talk_push_handler.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/impl/udp_talk_receiver_transfer_handler.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/impl/udp_talk_reject_handler.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/impl/unknow_payload_type_handler.dart';
|
||||
import 'package:star_lock/talk/startChart/handle/scp_message_handle.dart';
|
||||
|
||||
class ScpMessageHandlerFactory {
|
||||
/// 构造工厂
|
||||
static ScpMessageHandler createHandler(int payloadType) {
|
||||
switch (payloadType) {
|
||||
case PayloadTypeConstant.goOnline:
|
||||
@ -18,8 +30,30 @@ class ScpMessageHandlerFactory {
|
||||
return UdpEchoTestHandler();
|
||||
case PayloadTypeConstant.gatewayReset:
|
||||
return UdpGateWayResetHandler();
|
||||
case PayloadTypeConstant.gatewayTransfer:
|
||||
return UdpGateWayTransferHandler();
|
||||
case PayloadTypeConstant.blePassthrough:
|
||||
return UdpBlePassThroughHandler();
|
||||
case PayloadTypeConstant.remoteUnlock:
|
||||
return UdpRemoteUnLockHandler();
|
||||
case PayloadTypeConstant.talkReceiverTransfer:
|
||||
return UdpTalkReceiverTransferHandler();
|
||||
case PayloadTypeConstant.callRequest:
|
||||
return UdpCallRequestHandler();
|
||||
case PayloadTypeConstant.talkPush:
|
||||
return UdpTalkPushHandler();
|
||||
case PayloadTypeConstant.talkReject:
|
||||
return UdpTalkRejectHandler();
|
||||
case PayloadTypeConstant.talkAccept:
|
||||
return UdpTalkAcceptHandler();
|
||||
case PayloadTypeConstant.talkPing:
|
||||
return UdpTalkPingHandler();
|
||||
case PayloadTypeConstant.talkExpect:
|
||||
return UdpTalkExpectHandler();
|
||||
case PayloadTypeConstant.talkData:
|
||||
return UdpTalkDataHandler();
|
||||
case PayloadTypeConstant.talkHangup:
|
||||
return UdpTalkHangUpHandler();
|
||||
default:
|
||||
return UnKnowPayloadTypeHandler();
|
||||
}
|
||||
|
||||
@ -566,6 +566,7 @@ class StartChartManage {
|
||||
if (dg?.data != null) {
|
||||
final deserialize = ScpMessage.deserialize(dg!.data);
|
||||
if (deserialize != null) {
|
||||
// 处理返回数据
|
||||
_handleUdpResultData(deserialize);
|
||||
}
|
||||
if (deserialize.PayloadType != PayloadTypeConstant.heartbeat) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user