Merge branch 'master' of https://gitee.com/starlock-cn/app-starlock
This commit is contained in:
commit
88d3be381c
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
@ -12,7 +11,10 @@ class UDPManage{
|
|||||||
|
|
||||||
UDPManage._init() {
|
UDPManage._init() {
|
||||||
initUdp();
|
initUdp();
|
||||||
_streamSubscription = EventBusManager().eventBus!.on<EventSendModel>().listen((EventSendModel sendModel) {
|
_streamSubscription = EventBusManager()
|
||||||
|
.eventBus!
|
||||||
|
.on<EventSendModel>()
|
||||||
|
.listen((EventSendModel sendModel) {
|
||||||
// print("sendModel.sendChannel:${sendModel.sendChannel}");
|
// print("sendModel.sendChannel:${sendModel.sendChannel}");
|
||||||
if (sendModel.sendChannel == DataChannel.udp) {
|
if (sendModel.sendChannel == DataChannel.udp) {
|
||||||
List<int> data = sendModel.data;
|
List<int> data = sendModel.data;
|
||||||
@ -25,6 +27,7 @@ class UDPManage{
|
|||||||
_manager ??= UDPManage._init();
|
_manager ??= UDPManage._init();
|
||||||
return _manager!;
|
return _manager!;
|
||||||
}
|
}
|
||||||
|
|
||||||
factory UDPManage() => _share();
|
factory UDPManage() => _share();
|
||||||
UDPManage get manager => _share();
|
UDPManage get manager => _share();
|
||||||
|
|
||||||
@ -56,15 +59,16 @@ class UDPManage{
|
|||||||
print('Udp ----> host:$host port:$port');
|
print('Udp ----> host:$host port:$port');
|
||||||
var addressIListenFrom = InternetAddress.anyIPv4;
|
var addressIListenFrom = InternetAddress.anyIPv4;
|
||||||
int portIListenOn = 62288;
|
int portIListenOn = 62288;
|
||||||
RawDatagramSocket.bind(addressIListenFrom, portIListenOn).then((RawDatagramSocket socket){
|
RawDatagramSocket.bind(addressIListenFrom, portIListenOn)
|
||||||
|
.then((RawDatagramSocket socket) {
|
||||||
_udpSocket = socket;
|
_udpSocket = socket;
|
||||||
|
|
||||||
///广播功能
|
///广播功能
|
||||||
_udpSocket!.broadcastEnabled = true;
|
_udpSocket!.broadcastEnabled = true;
|
||||||
_onReceiveData(socket);
|
_onReceiveData(socket);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void _onReceiveData(RawDatagramSocket socket) {
|
void _onReceiveData(RawDatagramSocket socket) {
|
||||||
socket.listen((RawSocketEvent event) {
|
socket.listen((RawSocketEvent event) {
|
||||||
if (event == RawSocketEvent.read) {
|
if (event == RawSocketEvent.read) {
|
||||||
@ -90,14 +94,12 @@ class UDPManage{
|
|||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
// print("sendData:$data");
|
// print("sendData:$data");
|
||||||
var result = _udpSocket?.send(data, InternetAddress(host!), port!);
|
var result = _udpSocket?.send(data, InternetAddress(host), port);
|
||||||
if (result != data.length) {
|
if (result != data.length) {
|
||||||
print('❌Udp ----> send data $result ${data.length}');
|
print('❌Udp ----> send data $result ${data.length}');
|
||||||
_udpSocket = null;
|
_udpSocket = null;
|
||||||
}
|
}
|
||||||
}catch (e){
|
} catch (e) {}
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool exit() {
|
bool exit() {
|
||||||
@ -108,9 +110,7 @@ class UDPManage{
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void disposed() {
|
void disposed() {
|
||||||
_streamSubscription?.cancel();
|
_streamSubscription?.cancel();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -33,8 +33,7 @@ class UDPTalkClass {
|
|||||||
var isEndCall = false; //是否已经调用结束对讲
|
var isEndCall = false; //是否已经调用结束对讲
|
||||||
final audioPlayer = AudioPlayer();
|
final audioPlayer = AudioPlayer();
|
||||||
var playLocalAudioSecond = 0;
|
var playLocalAudioSecond = 0;
|
||||||
Timer playLocalAudioTimer =
|
late Timer playLocalAudioTimer;
|
||||||
Timer.periodic(const Duration(seconds: 1), (timer) {});
|
|
||||||
|
|
||||||
beCallW({List<int>? data, String? ip, int? port}) async {
|
beCallW({List<int>? data, String? ip, int? port}) async {
|
||||||
print("beCall status:$status");
|
print("beCall status:$status");
|
||||||
@ -92,6 +91,7 @@ class UDPTalkClass {
|
|||||||
// 检查条件,如果达到60秒且未得到应答,则认为失败
|
// 检查条件,如果达到60秒且未得到应答,则认为失败
|
||||||
if (playLocalAudioSecond >= 60) {
|
if (playLocalAudioSecond >= 60) {
|
||||||
playLocalAudioTimer.cancel(); // 取消定时器
|
playLocalAudioTimer.cancel(); // 取消定时器
|
||||||
|
playLocalAudioSecond = 0;
|
||||||
// LockMonitoringLogic().initiateUdpHangUpAction(5);
|
// LockMonitoringLogic().initiateUdpHangUpAction(5);
|
||||||
callNoAnswer(4);
|
callNoAnswer(4);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user