Browse Source

1、修复尿常规问题

guanxinyi 1 year ago
parent
commit
47a2f03e96

+ 1 - 4
lib/pages/id_card_scan/widgets/camera_for_id_card.dart

@@ -31,10 +31,7 @@ class CameraForIdCard extends GetView<IdCardScanController> {
             ),
           ),
         ),
-        Align(
-          alignment: Alignment.centerRight,
-          child: _captureButton(),
-        ),
+        Align(alignment: Alignment.centerRight, child: _captureButton()),
         Align(
           alignment: Alignment.bottomCenter,
           child: Container(

+ 1 - 1
lib/pages/medical/widgets/heart_rate.dart

@@ -340,7 +340,7 @@ class _HeartRateState extends State<HeartRate> {
           ),
           IconButton(
             onPressed: () {
-              worker.connect();
+              tryReconnect();
               setState(() {
                 connectStatus = WorkerStatus.connecting;
                 isConnectFail = false;

+ 14 - 17
lib/pages/medical/widgets/urinalysis.dart

@@ -3,7 +3,6 @@ import 'package:get/get.dart';
 import 'package:vitalapp/components/dialog_input.dart';
 import 'package:vitalapp/managers/device_controller_manager.dart';
 import 'package:vitalapp/pages/mappers/urine.dart';
-import 'package:vitalapp/pages/medical/controllers/urinalysis.dart';
 import 'package:vitalapp/pages/medical/widgets/device_status_position.dart';
 import 'package:vnote_device_plugin/consts/types.dart';
 import 'package:vitalapp/managers/interfaces/models/device.dart';
@@ -74,6 +73,7 @@ class _ExamUrinalysisState extends State<Urinalysis> {
     connectStatus = urinaly.connectStatus;
 
     loadListeners();
+    worker.connect();
   }
 
   Future<void> initUrinlysis() async {
@@ -85,7 +85,6 @@ class _ExamUrinalysisState extends State<Urinalysis> {
     worker.connectErrorEvent.addListener(_onConnectFail);
     worker.connectedEvent.addListener(_onConnectSuccess);
     worker.disconnectedEvent.addListener(_onDisconnected);
-    worker.connect();
   }
 
   Future<void> initData() async {
@@ -99,13 +98,6 @@ class _ExamUrinalysisState extends State<Urinalysis> {
     setState(() {});
   }
 
-  Future<void> disconnect() async {
-    if (!(worker == null)) {
-      await worker.disconnect();
-      releaseListeners();
-    }
-  }
-
   void releaseListeners() {
     worker.connectErrorEvent.removeListener(_onConnectFail);
     worker.connectedEvent.removeListener(_onConnectSuccess);
@@ -113,11 +105,18 @@ class _ExamUrinalysisState extends State<Urinalysis> {
     worker.disconnectedEvent.removeListener(_onDisconnected);
   }
 
+  /// 尝试重连
+  Future<void> tryReconnect() async {
+    await worker.disconnect();
+    await worker.connect();
+  }
+
   @override
-  void dispose() {
+  void dispose() async {
     controller.changePatient.removeListener(_onPatientChange);
-    disconnect();
-    worker.dispose();
+    releaseListeners();
+    await worker.disconnect();
+
     super.dispose();
   }
 
@@ -140,8 +139,7 @@ class _ExamUrinalysisState extends State<Urinalysis> {
     logger.i("设备连接失败:${worker.mac}");
     if (errorCount < 3) {
       errorCount++;
-      disconnect();
-      worker.connect();
+      tryReconnect();
     } else {
       isConnectFail = true;
     }
@@ -163,8 +161,7 @@ class _ExamUrinalysisState extends State<Urinalysis> {
     logger.i("设备连接中断:${worker.mac}");
     if (errorCount < 3) {
       errorCount++;
-      disconnect();
-      worker.connect();
+      tryReconnect();
     } else {
       isConnectFail = true;
     }
@@ -197,7 +194,7 @@ class _ExamUrinalysisState extends State<Urinalysis> {
           ),
           IconButton(
             onPressed: () {
-              worker.connect();
+              tryReconnect();
               setState(() {
                 connectStatus = WorkerStatus.connecting;
                 isConnectFail = false;