对接远程遥控

This commit is contained in:
2026-06-05 19:06:21 +08:00
parent d8879dad62
commit 7c9734d918
53 changed files with 4683 additions and 1612 deletions

View File

@@ -20,6 +20,7 @@ import 'package:maibu_satabot_v2/features/main_container/presentation/cubit/tab_
import 'package:maibu_satabot_v2/features/remote_control/data/repositories/remote_control_repository_impl.dart';
import 'package:maibu_satabot_v2/features/remote_control/domain/repositories/remote_control_repository.dart';
import 'package:maibu_satabot_v2/features/remote_control/domain/usecase/diff_steer_usecase.dart';
import 'package:maibu_satabot_v2/features/remote_control/domain/usecase/request_control_permission_usecase.dart';
import 'package:shared_preferences/shared_preferences.dart';
import '../../features/auth/data/datasources/auth_http_datasource.dart';
@@ -111,6 +112,7 @@ import '../../features/home/presentation/bloc/permission_request_bloc.dart';
import '../network/dio_client.dart';
import '../network/net_message_dispatcher.dart';
import '../network/tcp/tcp_client.dart';
import '../network/tcp/tcp_status_cubit.dart';
import '../router/app_router.dart';
import '../storage/impl/user_storage_impl.dart';
import '../storage/user_storage.dart';
@@ -258,7 +260,9 @@ Future<void> init() async {
sl.registerLazySingleton<GetHomeDataUseCase>(() => GetHomeDataUseCase(sl()));
// Site (场站)
sl.registerLazySingleton<SiteDataSource>(() => SiteDataSourceImpl(sl<Dio>()));
sl.registerLazySingleton<SiteDataSource>(
() => SiteDataSourceImpl(sl<Dio>(), sl<UserStorage>(), sl<AppUserCubit>()),
);
sl.registerLazySingleton<SiteRepository>(() => SiteRepositoryImpl(sl()));
sl.registerLazySingleton<GetSiteListUseCase>(() => GetSiteListUseCase(sl()));
@@ -301,9 +305,7 @@ Future<void> init() async {
);
/// Robot List V2
sl.registerFactory<RobotListBloc>(
() => RobotListBloc(sl<Dio>()),
);
sl.registerFactory<RobotListBloc>(() => RobotListBloc(sl<Dio>()));
/// Alarm Center V2
sl.registerLazySingleton<AlarmRemoteDataSource>(
@@ -333,9 +335,7 @@ Future<void> init() async {
sl.registerLazySingleton<ConfirmAlarmUseCase>(
() => ConfirmAlarmUseCase(sl()),
);
sl.registerLazySingleton<AIDiagnosisUseCase>(
() => AIDiagnosisUseCase(sl()),
);
sl.registerLazySingleton<AIDiagnosisUseCase>(() => AIDiagnosisUseCase(sl()));
sl.registerFactory<AlarmDetailCubit>(
() => AlarmDetailCubit(
getAlarmDetailUseCase: sl(),
@@ -347,6 +347,9 @@ Future<void> init() async {
/// 5. 状态管理 (Cubit/Bloc)
sl.registerLazySingleton(() => AppUserCubit()); // AuthCubit 依赖它,必须先注册
// TCP状态管理 Cubit
sl.registerLazySingleton(() => TcpStatusCubit());
// 🔥 SiteCubit (全局共享,持久化选中场站)
sl.registerLazySingleton(() => SiteCubit(sl<SharedPreferences>()));
@@ -386,7 +389,7 @@ Future<void> init() async {
);
// 🔥 RemoteControlCubit 注入 DeviceStatusBloc(工厂模式,每次新建)
sl.registerFactory(() => RemoteControlCubit(sl(), sl(), sl(), sl()));
sl.registerFactory(() => RemoteControlCubit(sl(), sl(), sl(), sl(), sl()));
// 🔥 PermissionRequestBloc 用于首页权限弹窗(单例,通过 NetMessageDispatcher 监听)
sl.registerLazySingleton(