fix:调整udp返回数据为工厂模式处理
This commit is contained in:
parent
857f9fad2a
commit
9847b572b3
@ -84,7 +84,7 @@ class MessageCommand {
|
|||||||
iD: gatewayId,
|
iD: gatewayId,
|
||||||
time: time,
|
time: time,
|
||||||
);
|
);
|
||||||
// 构建荷载参数
|
// 构建荷载长度
|
||||||
final payload = gatewayResetReq.writeToBuffer();
|
final payload = gatewayResetReq.writeToBuffer();
|
||||||
ScpMessage message = ScpMessage(
|
ScpMessage message = ScpMessage(
|
||||||
ProtocolFlag: ProtocolFlagConstant.scp01,
|
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 {
|
class UnKnowPayloadTypeHandler extends ScpMessageBaseHandle implements ScpMessageHandler {
|
||||||
@override
|
@override
|
||||||
void handle(ScpMessage scpMessage) {
|
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/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_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_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_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_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_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/impl/unknow_payload_type_handler.dart';
|
||||||
import 'package:star_lock/talk/startChart/handle/scp_message_handle.dart';
|
import 'package:star_lock/talk/startChart/handle/scp_message_handle.dart';
|
||||||
|
|
||||||
class ScpMessageHandlerFactory {
|
class ScpMessageHandlerFactory {
|
||||||
|
/// 构造工厂
|
||||||
static ScpMessageHandler createHandler(int payloadType) {
|
static ScpMessageHandler createHandler(int payloadType) {
|
||||||
switch (payloadType) {
|
switch (payloadType) {
|
||||||
case PayloadTypeConstant.goOnline:
|
case PayloadTypeConstant.goOnline:
|
||||||
@ -18,8 +30,30 @@ class ScpMessageHandlerFactory {
|
|||||||
return UdpEchoTestHandler();
|
return UdpEchoTestHandler();
|
||||||
case PayloadTypeConstant.gatewayReset:
|
case PayloadTypeConstant.gatewayReset:
|
||||||
return UdpGateWayResetHandler();
|
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:
|
case PayloadTypeConstant.callRequest:
|
||||||
return UdpCallRequestHandler();
|
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:
|
default:
|
||||||
return UnKnowPayloadTypeHandler();
|
return UnKnowPayloadTypeHandler();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -566,6 +566,7 @@ class StartChartManage {
|
|||||||
if (dg?.data != null) {
|
if (dg?.data != null) {
|
||||||
final deserialize = ScpMessage.deserialize(dg!.data);
|
final deserialize = ScpMessage.deserialize(dg!.data);
|
||||||
if (deserialize != null) {
|
if (deserialize != null) {
|
||||||
|
// 处理返回数据
|
||||||
_handleUdpResultData(deserialize);
|
_handleUdpResultData(deserialize);
|
||||||
}
|
}
|
||||||
if (deserialize.PayloadType != PayloadTypeConstant.heartbeat) {
|
if (deserialize.PayloadType != PayloadTypeConstant.heartbeat) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user