You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.2 KiB
51 lines
1.2 KiB
import 'dart:ffi';
|
|
|
|
import '/core/utils/logger.dart';
|
|
import '/data/models/user_Info.dart';
|
|
import '/data/services/ble_manager.dart';
|
|
import '/data/services/network/api.dart';
|
|
import '/routes/app_routes.dart';
|
|
import 'package:get/get.dart';
|
|
import 'package:get/get_rx/get_rx.dart';
|
|
import 'package:get/get_state_manager/src/simple/get_controllers.dart';
|
|
|
|
/*
|
|
设备管理
|
|
*/
|
|
class DevicesController extends GetxController {
|
|
late final BleManager _bleManager;
|
|
late final Map<int, List<UserDevice>> devices;
|
|
|
|
@override
|
|
void onInit() {
|
|
super.onInit();
|
|
_bleManager = Get.find<BleManager>();
|
|
}
|
|
|
|
@override
|
|
void onClose() {
|
|
super.onClose();
|
|
for (var device in User.instance.devices) {
|
|
if (!devices.containsKey(device.id)) {
|
|
devices[device.devicetype] = [];
|
|
}
|
|
devices[device.devicetype]!.add(device);
|
|
}
|
|
}
|
|
|
|
void unbindearphone(UserDevice device) async {
|
|
final response = await Api.unbinddevice({
|
|
"id": device.id,
|
|
});
|
|
if (response != null) {
|
|
devices[device.devicetype]!.remove(device);
|
|
User.instance.removeUserDevice(device.id);
|
|
_bleManager.clearPairedDevices();
|
|
_bleManager.disconnect();
|
|
Get.toNamed(Routes.pairing);
|
|
return;
|
|
} else {
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|