对接路径规划的列表(根据场站的下的)
优化无人机机场的监控视频的显示视频流畅度提升80% 添加首页tcp指示灯的机器状态信息展示功能。(暂不支持在此页面上设备的切换显示)
This commit is contained in:
@@ -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,
|
||||
});
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user