对接路径规划的列表(根据场站的下的)

优化无人机机场的监控视频的显示视频流畅度提升80%
添加首页tcp指示灯的机器状态信息展示功能。(暂不支持在此页面上设备的切换显示)
This commit is contained in:
2026-06-09 14:39:55 +08:00
parent ff4a3836c7
commit 058a5d9588
26 changed files with 3634 additions and 1028 deletions

View File

@@ -1,5 +1,6 @@
import '../../domain/entities/drone_station_entity.dart';
import '../../domain/entities/video_stream_entity.dart';
import '../../domain/entities/flight_task_entity.dart';
abstract class DroneStationDataSource {
Future<List<DroneStationEntity>> getDroneStationList(int siteId);
@@ -11,4 +12,9 @@ abstract class DroneStationDataSource {
String qualityType = 'adaptive',
int videoExpire = 7200,
});
Future<Map<String, List<FlightTaskEntity>?>> getFlightTasks({
required List<String> sns,
required int beginAt,
required int endAt,
});
}

View File

@@ -3,6 +3,7 @@ import 'package:maibu_satabot_v2/core/consts/http_api_consts.dart';
import '../datasources/drone_station_datasource.dart';
import '../../domain/entities/drone_station_entity.dart';
import '../../domain/entities/video_stream_entity.dart';
import '../../domain/entities/flight_task_entity.dart';
class DroneStationDataSourceImpl implements DroneStationDataSource {
final Dio dio;
@@ -77,11 +78,60 @@ class DroneStationDataSourceImpl implements DroneStationDataSource {
}
final responseData = response.data;
// 打印完整响应,方便调试
print('=== 视频流API响应 ===');
print('请求参数: sn=$sn, cameraIndex=$cameraIndex, cameraPosition=$cameraPosition');
print('完整响应: ${responseData}');
if (responseData['code'] != 200) {
throw Exception(responseData['msg'] ?? '业务异常');
}
return VideoStreamEntity.fromJson(responseData['data']);
final data = responseData['data'];
print('视频流URL: ${data['url']}');
print('视频流URL Type: ${data['url_type']}');
return VideoStreamEntity.fromJson(data);
}
@override
Future<Map<String, List<FlightTaskEntity>?>> getFlightTasks({
required List<String> sns,
required int beginAt,
required int endAt,
}) async {
final response = await dio.post(
HttpApiConsts.getFlightTask,
data: {
'sns': sns,
'beginAt': beginAt,
'endAt': endAt,
},
);
if (response.statusCode != 200) {
throw Exception('网络请求失败: ${response.statusCode}');
}
final responseData = response.data;
if (responseData['code'] != 200) {
throw Exception(responseData['msg'] ?? '业务异常');
}
final data = responseData['data'] as Map<String, dynamic>;
final result = <String, List<FlightTaskEntity>?>{};
data.forEach((sn, value) {
if (value != null && value['list'] != null) {
final list = value['list'] as List<dynamic>;
result[sn] = list.map((item) => FlightTaskEntity.fromJson(item)).toList();
} else {
result[sn] = null;
}
});
return result;
}
}