From fda85f95a50426ca446eef0dbc03acd8b90976af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AD=8F=E5=B0=91=E9=98=B3?= <786612630@qq.com> Date: Fri, 29 Dec 2023 18:11:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AF=B9=E8=AE=B2=E5=8F=91?= =?UTF-8?q?=E9=80=81=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- star_lock/.flutter-plugins-dependencies 2 | 1 - star_lock/ios/Podfile.lock | 22 ++++-- .../monitoring/lockMonitoring_logic.dart | 74 ++++++++++++++++- .../monitoring/lockMonitoring_page.dart | 79 ++++++++----------- .../monitoring/lockMonitoring_state.dart | 6 +- star_lock/lib/talk/udp/udp_reciverData.dart | 2 + 6 files changed, 123 insertions(+), 61 deletions(-) delete mode 100644 star_lock/.flutter-plugins-dependencies 2 diff --git a/star_lock/.flutter-plugins-dependencies 2 b/star_lock/.flutter-plugins-dependencies 2 deleted file mode 100644 index 976fa555..00000000 --- a/star_lock/.flutter-plugins-dependencies 2 +++ /dev/null @@ -1 +0,0 @@ -{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"aj_captcha_flutter","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/aj_captcha_flutter-0.0.1/","native_build":true,"dependencies":[]},{"name":"aliyun_push","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/aliyun_push-0.1.6/","native_build":true,"dependencies":[]},{"name":"amap_flutter_location","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/amap_flutter_location-3.0.0/","native_build":true,"dependencies":[]},{"name":"amap_flutter_map","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/amap_flutter_map-3.0.0/","native_build":true,"dependencies":[]},{"name":"audio_session","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/audio_session-0.1.18/","native_build":true,"dependencies":[]},{"name":"audioplayers_darwin","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/audioplayers_darwin-5.0.2/","native_build":true,"dependencies":[]},{"name":"auto_orientation","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/auto_orientation-2.3.1/","native_build":true,"dependencies":[]},{"name":"camera_avfoundation","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/camera_avfoundation-0.9.13+6/","native_build":true,"dependencies":[]},{"name":"device_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus-8.2.2/","native_build":true,"dependencies":[]},{"name":"flutter_ffmpeg","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/flutter_ffmpeg-0.4.2/","native_build":true,"dependencies":[]},{"name":"flutter_native_contact_picker","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/flutter_native_contact_picker-0.0.4/","native_build":true,"dependencies":[]},{"name":"flutter_sound","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/flutter_sound-9.2.13/","native_build":true,"dependencies":[]},{"name":"fluttertoast","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/fluttertoast-8.2.2/","native_build":true,"dependencies":[]},{"name":"g711_flutter","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/g711_flutter-2.0.0/","native_build":true,"dependencies":[]},{"name":"google_maps_flutter_ios","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/google_maps_flutter_ios-2.3.2/","native_build":true,"dependencies":[]},{"name":"image_gallery_saver","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/image_gallery_saver-2.0.3/","native_build":true,"dependencies":[]},{"name":"image_picker_ios","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/image_picker_ios-0.8.8+2/","native_build":true,"dependencies":[]},{"name":"just_audio","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/just_audio-0.9.36/","native_build":true,"dependencies":["audio_session"]},{"name":"network_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/network_info_plus-4.1.0/","native_build":true,"dependencies":[]},{"name":"package_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/package_info_plus-3.1.2/","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/path_provider_foundation-2.3.1/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"permission_handler_apple","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/permission_handler_apple-9.1.4/","native_build":true,"dependencies":[]},{"name":"reactive_ble_mobile","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/reactive_ble_mobile-5.2.0/","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_foundation-2.3.4/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"sqflite","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/sqflite-2.3.0/","native_build":true,"dependencies":[]},{"name":"url_launcher_ios","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_ios-6.1.5/","native_build":true,"dependencies":[]},{"name":"video_player_avfoundation","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/video_player_avfoundation-2.4.11/","native_build":true,"dependencies":[]},{"name":"webview_flutter_wkwebview","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/webview_flutter_wkwebview-3.9.1/","native_build":true,"dependencies":[]}],"android":[{"name":"aj_captcha_flutter","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/aj_captcha_flutter-0.0.1/","native_build":true,"dependencies":[]},{"name":"aliyun_push","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/aliyun_push-0.1.6/","native_build":true,"dependencies":[]},{"name":"amap_flutter_location","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/amap_flutter_location-3.0.0/","native_build":true,"dependencies":[]},{"name":"amap_flutter_map","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/amap_flutter_map-3.0.0/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"audio_session","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/audio_session-0.1.18/","native_build":true,"dependencies":[]},{"name":"audioplayers_android","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/audioplayers_android-4.0.3/","native_build":true,"dependencies":[]},{"name":"auto_orientation","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/auto_orientation-2.3.1/","native_build":true,"dependencies":[]},{"name":"camera_android","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/camera_android-0.10.8+12/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"device_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus-8.2.2/","native_build":true,"dependencies":[]},{"name":"flutter_ffmpeg","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/flutter_ffmpeg-0.4.2/","native_build":true,"dependencies":[]},{"name":"flutter_native_contact_picker","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/flutter_native_contact_picker-0.0.4/","native_build":true,"dependencies":[]},{"name":"flutter_plugin_android_lifecycle","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/flutter_plugin_android_lifecycle-2.0.16/","native_build":true,"dependencies":[]},{"name":"flutter_sound","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/flutter_sound-9.2.13/","native_build":true,"dependencies":[]},{"name":"fluttertoast","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/fluttertoast-8.2.2/","native_build":true,"dependencies":[]},{"name":"g711_flutter","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/g711_flutter-2.0.0/","native_build":true,"dependencies":[]},{"name":"google_maps_flutter_android","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/google_maps_flutter_android-2.5.1/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"image_gallery_saver","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/image_gallery_saver-2.0.3/","native_build":true,"dependencies":[]},{"name":"image_picker_android","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/image_picker_android-0.8.8+1/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"just_audio","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/just_audio-0.9.36/","native_build":true,"dependencies":["audio_session"]},{"name":"network_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/network_info_plus-4.1.0/","native_build":true,"dependencies":[]},{"name":"package_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/package_info_plus-3.1.2/","native_build":true,"dependencies":[]},{"name":"path_provider_android","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/path_provider_android-2.2.0/","native_build":true,"dependencies":[]},{"name":"permission_handler_android","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/permission_handler_android-10.3.6/","native_build":true,"dependencies":[]},{"name":"reactive_ble_mobile","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/reactive_ble_mobile-5.2.0/","native_build":true,"dependencies":[]},{"name":"shared_preferences_android","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_android-2.2.1/","native_build":true,"dependencies":[]},{"name":"sqflite","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/sqflite-2.3.0/","native_build":true,"dependencies":[]},{"name":"url_launcher_android","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_android-6.1.0/","native_build":true,"dependencies":[]},{"name":"video_player_android","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/video_player_android-2.4.10/","native_build":true,"dependencies":[]},{"name":"webview_flutter_android","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/webview_flutter_android-3.12.0/","native_build":true,"dependencies":[]}],"macos":[{"name":"aj_captcha_flutter","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/aj_captcha_flutter-0.0.1/","native_build":true,"dependencies":[]},{"name":"audio_session","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/audio_session-0.1.18/","native_build":true,"dependencies":[]},{"name":"audioplayers_darwin","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/audioplayers_darwin-5.0.2/","native_build":true,"dependencies":[]},{"name":"device_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus-8.2.2/","native_build":true,"dependencies":[]},{"name":"file_selector_macos","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/file_selector_macos-0.9.3+3/","native_build":true,"dependencies":[]},{"name":"image_picker_macos","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/image_picker_macos-0.2.1+1/","native_build":false,"dependencies":["file_selector_macos"]},{"name":"just_audio","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/just_audio-0.9.36/","native_build":true,"dependencies":["audio_session"]},{"name":"network_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/network_info_plus-4.1.0/","native_build":true,"dependencies":[]},{"name":"package_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/package_info_plus-3.1.2/","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/path_provider_foundation-2.3.1/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_foundation-2.3.4/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"sqflite","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/sqflite-2.3.0/","native_build":true,"dependencies":[]},{"name":"url_launcher_macos","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_macos-3.0.7/","native_build":true,"dependencies":[]}],"linux":[{"name":"aj_captcha_flutter","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/aj_captcha_flutter-0.0.1/","native_build":true,"dependencies":[]},{"name":"audioplayers_linux","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/audioplayers_linux-3.1.0/","native_build":true,"dependencies":[]},{"name":"device_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus-8.2.2/","native_build":false,"dependencies":[]},{"name":"file_selector_linux","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/file_selector_linux-0.9.2+1/","native_build":true,"dependencies":[]},{"name":"image_picker_linux","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/image_picker_linux-0.2.1+1/","native_build":false,"dependencies":["file_selector_linux"]},{"name":"network_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/network_info_plus-4.1.0/","native_build":false,"dependencies":[]},{"name":"package_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/package_info_plus-3.1.2/","native_build":false,"dependencies":[]},{"name":"path_provider_linux","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/path_provider_linux-2.2.1/","native_build":false,"dependencies":[]},{"name":"shared_preferences_linux","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_linux-2.3.2/","native_build":false,"dependencies":["path_provider_linux"]},{"name":"url_launcher_linux","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_linux-3.0.6/","native_build":true,"dependencies":[]}],"windows":[{"name":"aj_captcha_flutter","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/aj_captcha_flutter-0.0.1/","native_build":true,"dependencies":[]},{"name":"audioplayers_windows","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/audioplayers_windows-3.1.0/","native_build":true,"dependencies":[]},{"name":"device_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus-8.2.2/","native_build":false,"dependencies":[]},{"name":"file_selector_windows","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/file_selector_windows-0.9.3+1/","native_build":true,"dependencies":[]},{"name":"image_picker_windows","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/image_picker_windows-0.2.1+1/","native_build":false,"dependencies":["file_selector_windows"]},{"name":"network_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/network_info_plus-4.1.0/","native_build":false,"dependencies":[]},{"name":"package_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/package_info_plus-3.1.2/","native_build":false,"dependencies":[]},{"name":"path_provider_windows","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/path_provider_windows-2.2.1/","native_build":false,"dependencies":[]},{"name":"permission_handler_windows","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/permission_handler_windows-0.1.3/","native_build":true,"dependencies":[]},{"name":"shared_preferences_windows","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_windows-2.3.2/","native_build":false,"dependencies":["path_provider_windows"]},{"name":"url_launcher_windows","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_windows-3.0.8/","native_build":true,"dependencies":[]}],"web":[{"name":"aj_captcha_flutter","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/aj_captcha_flutter-0.0.1/","dependencies":[]},{"name":"audio_session","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/audio_session-0.1.18/","dependencies":[]},{"name":"audioplayers_web","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/audioplayers_web-4.1.0/","dependencies":[]},{"name":"camera_web","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/camera_web-0.3.2+2/","dependencies":[]},{"name":"device_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus-8.2.2/","dependencies":[]},{"name":"flutter_sound_web","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/flutter_sound_web-9.2.13/","dependencies":[]},{"name":"fluttertoast","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/fluttertoast-8.2.2/","dependencies":[]},{"name":"google_maps_flutter_web","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/google_maps_flutter_web-0.5.4+1/","dependencies":[]},{"name":"image_picker_for_web","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/image_picker_for_web-3.0.1/","dependencies":[]},{"name":"just_audio_web","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/just_audio_web-0.4.9/","dependencies":[]},{"name":"network_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/network_info_plus-4.1.0/","dependencies":[]},{"name":"package_info_plus","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/package_info_plus-3.1.2/","dependencies":[]},{"name":"shared_preferences_web","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_web-2.2.1/","dependencies":[]},{"name":"url_launcher_web","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_web-2.0.19/","dependencies":[]},{"name":"video_player_web","path":"/Users/sky/.pub-cache/hosted/pub.flutter-io.cn/video_player_web-2.0.17/","dependencies":[]}]},"dependencyGraph":[{"name":"aj_captcha_flutter","dependencies":[]},{"name":"aliyun_push","dependencies":[]},{"name":"amap_flutter_location","dependencies":[]},{"name":"amap_flutter_map","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"audio_session","dependencies":[]},{"name":"audioplayers","dependencies":["audioplayers_android","audioplayers_darwin","audioplayers_linux","audioplayers_web","audioplayers_windows","path_provider"]},{"name":"audioplayers_android","dependencies":[]},{"name":"audioplayers_darwin","dependencies":[]},{"name":"audioplayers_linux","dependencies":[]},{"name":"audioplayers_web","dependencies":[]},{"name":"audioplayers_windows","dependencies":[]},{"name":"auto_orientation","dependencies":[]},{"name":"camera","dependencies":["camera_android","camera_avfoundation","camera_web","flutter_plugin_android_lifecycle"]},{"name":"camera_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"camera_avfoundation","dependencies":[]},{"name":"camera_web","dependencies":[]},{"name":"device_info_plus","dependencies":[]},{"name":"file_selector_linux","dependencies":[]},{"name":"file_selector_macos","dependencies":[]},{"name":"file_selector_windows","dependencies":[]},{"name":"flutter_ffmpeg","dependencies":[]},{"name":"flutter_native_contact_picker","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"flutter_reactive_ble","dependencies":["reactive_ble_mobile"]},{"name":"flutter_sound","dependencies":["path_provider","flutter_sound_web"]},{"name":"flutter_sound_web","dependencies":[]},{"name":"fluttertoast","dependencies":[]},{"name":"g711_flutter","dependencies":[]},{"name":"google_maps_flutter","dependencies":["google_maps_flutter_android","google_maps_flutter_ios","google_maps_flutter_web"]},{"name":"google_maps_flutter_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"google_maps_flutter_ios","dependencies":[]},{"name":"google_maps_flutter_web","dependencies":[]},{"name":"image_gallery_saver","dependencies":[]},{"name":"image_picker","dependencies":["image_picker_android","image_picker_for_web","image_picker_ios","image_picker_linux","image_picker_macos","image_picker_windows"]},{"name":"image_picker_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"image_picker_for_web","dependencies":[]},{"name":"image_picker_ios","dependencies":[]},{"name":"image_picker_linux","dependencies":["file_selector_linux"]},{"name":"image_picker_macos","dependencies":["file_selector_macos"]},{"name":"image_picker_windows","dependencies":["file_selector_windows"]},{"name":"just_audio","dependencies":["just_audio_web","audio_session","path_provider"]},{"name":"just_audio_web","dependencies":[]},{"name":"network_info_plus","dependencies":[]},{"name":"package_info_plus","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"permission_handler","dependencies":["permission_handler_android","permission_handler_apple","permission_handler_windows"]},{"name":"permission_handler_android","dependencies":[]},{"name":"permission_handler_apple","dependencies":[]},{"name":"permission_handler_windows","dependencies":[]},{"name":"reactive_ble_mobile","dependencies":[]},{"name":"shared_preferences","dependencies":["shared_preferences_android","shared_preferences_foundation","shared_preferences_linux","shared_preferences_web","shared_preferences_windows"]},{"name":"shared_preferences_android","dependencies":[]},{"name":"shared_preferences_foundation","dependencies":[]},{"name":"shared_preferences_linux","dependencies":["path_provider_linux"]},{"name":"shared_preferences_web","dependencies":[]},{"name":"shared_preferences_windows","dependencies":["path_provider_windows"]},{"name":"sqflite","dependencies":[]},{"name":"url_launcher","dependencies":["url_launcher_android","url_launcher_ios","url_launcher_linux","url_launcher_macos","url_launcher_web","url_launcher_windows"]},{"name":"url_launcher_android","dependencies":[]},{"name":"url_launcher_ios","dependencies":[]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_macos","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]},{"name":"video_player","dependencies":["video_player_android","video_player_avfoundation","video_player_web"]},{"name":"video_player_android","dependencies":[]},{"name":"video_player_avfoundation","dependencies":[]},{"name":"video_player_web","dependencies":[]},{"name":"webview_flutter","dependencies":["webview_flutter_android","webview_flutter_wkwebview"]},{"name":"webview_flutter_android","dependencies":[]},{"name":"webview_flutter_wkwebview","dependencies":[]}],"date_created":"2023-12-22 15:43:01.891206","version":"3.10.6"} \ No newline at end of file diff --git a/star_lock/ios/Podfile.lock b/star_lock/ios/Podfile.lock index b338036f..eb3ce1b3 100644 --- a/star_lock/ios/Podfile.lock +++ b/star_lock/ios/Podfile.lock @@ -47,6 +47,9 @@ PODS: - Flutter - flutter_sound_core (= 9.2.13) - flutter_sound_core (9.2.13) + - flutter_voice_processor (1.1.0): + - Flutter + - ios-voice-processor (~> 1.1.0) - fluttertoast (0.0.2): - Flutter - Toast @@ -58,15 +61,16 @@ PODS: - google_maps_flutter_ios (0.0.1): - Flutter - GoogleMaps (< 9.0) - - GoogleMaps (7.4.0): - - GoogleMaps/Maps (= 7.4.0) - - GoogleMaps/Base (7.4.0) - - GoogleMaps/Maps (7.4.0): + - GoogleMaps (6.2.1): + - GoogleMaps/Maps (= 6.2.1) + - GoogleMaps/Base (6.2.1) + - GoogleMaps/Maps (6.2.1): - GoogleMaps/Base - image_gallery_saver (2.0.2): - Flutter - image_picker_ios (0.0.1): - Flutter + - ios-voice-processor (1.1.0) - just_audio (0.0.1): - Flutter - network_info_plus (0.0.1): @@ -113,6 +117,7 @@ DEPENDENCIES: - flutter_native_contact_picker (from `.symlinks/plugins/flutter_native_contact_picker/ios`) - flutter_pcm_sound (from `.symlinks/plugins/flutter_pcm_sound/ios`) - flutter_sound (from `.symlinks/plugins/flutter_sound/ios`) + - flutter_voice_processor (from `.symlinks/plugins/flutter_voice_processor/ios`) - fluttertoast (from `.symlinks/plugins/fluttertoast/ios`) - g711_flutter (from `.symlinks/plugins/g711_flutter/ios`) - google_maps_flutter_ios (from `.symlinks/plugins/google_maps_flutter_ios/ios`) @@ -145,6 +150,7 @@ SPEC REPOS: - flutter_sound_core - FMDB - GoogleMaps + - ios-voice-processor - Protobuf - SwiftProtobuf - Toast @@ -176,6 +182,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/flutter_pcm_sound/ios" flutter_sound: :path: ".symlinks/plugins/flutter_sound/ios" + flutter_voice_processor: + :path: ".symlinks/plugins/flutter_voice_processor/ios" fluttertoast: :path: ".symlinks/plugins/fluttertoast/ios" g711_flutter: @@ -233,13 +241,15 @@ SPEC CHECKSUMS: flutter_pcm_sound: de0572ca4f99091cc2abfcc31601b8a4ddd33c0e flutter_sound: c60effa2a350fb977885f0db2fbc4c1ad5160900 flutter_sound_core: 26c10e5832e76aaacfae252d8925232281c486ae + flutter_voice_processor: 53afbf59ad3feb82f4a379fea9ed8dc98495210f fluttertoast: 31b00dabfa7fb7bacd9e7dbee580d7a2ff4bf265 FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a g711_flutter: 8f2769052d2cf3549f83d11e1c42d81d94441123 google_maps_flutter_ios: 590249c67f34f422122c232f2a626192adbc78ee - GoogleMaps: 032f676450ba0779bd8ce16840690915f84e57ac + GoogleMaps: 20d7b12be49a14287f797e88e0e31bc4156aaeb4 image_gallery_saver: cb43cc43141711190510e92c460eb1655cd343cb image_picker_ios: 4a8aadfbb6dc30ad5141a2ce3832af9214a705b5 + ios-voice-processor: 8e32d7f980a06d392d128ef1cd19cf6ddcaca3c1 just_audio: baa7252489dbcf47a4c7cc9ca663e9661c99aafa network_info_plus: 6d0c3eb8367b8164fa3fb0c19875e3f59d49697f package_info_plus: 6c92f08e1f853dc01228d6f553146438dafcd14e @@ -255,6 +265,6 @@ SPEC CHECKSUMS: video_player_avfoundation: 81e49bb3d9fb63dccf9fa0f6d877dc3ddbeac126 webview_flutter_wkwebview: 2e2d318f21a5e036e2c3f26171342e95908bd60a -PODFILE CHECKSUM: 85f69c27139c5112fdd69e85b95c1cc6de403d3e +PODFILE CHECKSUM: 42aa7ffc6134b996f93caa6a9b6a2b5b580ff28a COCOAPODS: 1.14.3 diff --git a/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_logic.dart b/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_logic.dart index 3b45b818..dcbe7fbe 100644 --- a/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_logic.dart +++ b/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_logic.dart @@ -38,14 +38,80 @@ class LockMonitoringLogic extends BaseGetXController { }); } - /// 收到接听状态 + /// 收到UDP发送的状态 StreamSubscription? _getUDPStatusRefreshUIEvent; void _getUDPStatusRefreshUIAction() { _getUDPStatusRefreshUIEvent = eventBus.on().listen((event) { state.udpStatus.value = event.udpStatus; + if(state.udpStatus.value == 8){ + // 接听成功了,然后刷新界面的时间 60秒以后自动挂断 + state.oneMinuteTimeTimer = Timer.periodic(const Duration(seconds:1), (Timer t) async { + state.oneMinuteTime.value++; + Get.log('state.oneMinuteTime.value:${state.oneMinuteTime.value}'); + if(state.oneMinuteTime.value >= 60){ + // 超过60秒了 + state.oneMinuteTimeTimer.cancel(); + state.oneMinuteTime.value = 0; + // 挂断 + UDPSenderManage.sendMainProtocol( + command: 150, + commandTypeIsCalling: 1, + subCommand: 30, + lockID: UDPManage().lockId, + lockIP: UDPManage().host, + userMobile: await state.userMobile, + userMobileIP: await state.userMobileIP, + endData: []); + + // 关闭当前界面 + Get.back(); + } + }); + } }); } + /// 接听 + udpAnswerAction() async { + UDPSenderManage.sendMainProtocol( + command: 150, + commandTypeIsCalling: 1, + subCommand: 6, + lockID: UDPManage().lockId, + lockIP: UDPManage().host, + userMobile: await state.userMobile, + userMobileIP: await state.userMobileIP, + endData: [] + ); + } + + /// 挂断 + udpHangUpAction() async { + UDPSenderManage.sendMainProtocol( + command: 150, + commandTypeIsCalling: 1, + subCommand: 30, + lockID: UDPManage().lockId, + lockIP: UDPManage().host, + userMobile: await state.userMobile, + userMobileIP: await state.userMobileIP, + endData: []); + } + + /// 开门 + udpOpenDoorAction() async { + UDPSenderManage.sendMainProtocol( + command: 150, + commandTypeIsCalling: 1, + subCommand: 10, + lockID: UDPManage().lockId, + lockIP: UDPManage().host, + userMobile: await state.userMobile, + userMobileIP: await state.userMobileIP, + endData: []); + Get.back(); + } + Future _readG711Data() async { String filePath = 'assets/s10-g711.bin'; List audioData = await G711().readAssetFile(filePath); @@ -83,11 +149,11 @@ class LockMonitoringLogic extends BaseGetXController { Future startProcessing() async { frameListener(List frame) async { - Get.log('Get data.length:${frame.length} Received data:$frame'); + // Get.log('Get data.length:${frame.length} Received data:$frame'); for (int i = 0; i < frame.length; i++) { frame[i] = linearToULaw(frame[i]); } - Get.log('change Get data.length:${frame.length} change Received data:$frame'); + // Get.log('change Get data.length:${frame.length} change Received data:$frame'); await Future.delayed(const Duration(milliseconds: 50)); sendRecordData({ "bytes": frame, @@ -330,7 +396,7 @@ class LockMonitoringLogic extends BaseGetXController { print("锁详情界面销毁了"); _getTVDataRefreshUIEvent!.cancel(); _getUDPStatusRefreshUIEvent!.cancel(); - + state.oneMinuteTimeTimer.cancel(); stopProcessing(); } } diff --git a/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart b/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart index 78d24564..1bfca06f 100644 --- a/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart +++ b/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart @@ -41,25 +41,34 @@ class _LockMonitoringPageState extends State { )), Positioned( top: ScreenUtil().statusBarHeight + 30.h, - child: Row(children: [ - SizedBox(width: 30.w), - GestureDetector( - onTap: () { - Get.back(); - }, - child: Container( - decoration: BoxDecoration( - color: Colors.white, - borderRadius: BorderRadius.circular(25.h)), - padding: EdgeInsets.all(10.w), - child: Image( - width: 40.w, - height: 40.w, - image: const AssetImage("images/icon_left_black.png"), - ), - ), - ), - ]), + width: 1.sw, + child: Obx(() { + var sec = (state.oneMinuteTime.value % 60).toString().padLeft(2,'0'); + var min = (state.oneMinuteTime.value ~/ 60).toString().padLeft(2,'0'); + return Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text("$min:$sec", style: TextStyle(fontSize: 26.sp, color: Colors.white)), + // SizedBox(width: 30.w), + // GestureDetector( + // onTap: () { + // Get.back(); + // }, + // child: Container( + // decoration: BoxDecoration( + // color: Colors.white, + // borderRadius: BorderRadius.circular(25.h)), + // padding: EdgeInsets.all(10.w), + // child: Image( + // width: 40.w, + // height: 40.w, + // image: const AssetImage("images/icon_left_black.png"), + // ), + // ), + // ), + ] + ); + }), ), Positioned( bottom: 10.w, @@ -156,16 +165,7 @@ class _LockMonitoringPageState extends State { // state.isSenderAudioData.value = false; print("发送接听了"); // 刚进来是接听状态,然后改为长按对讲 - UDPSenderManage.sendMainProtocol( - command: 150, - commandTypeIsCalling: 1, - subCommand: 6, - lockID: UDPManage().lockId, - lockIP: UDPManage().host, - userMobile: await state.userMobile, - userMobileIP: await state.userMobileIP, - endData: [] - ); + logic.udpAnswerAction(); }); }, longPress: (){ @@ -191,15 +191,7 @@ class _LockMonitoringPageState extends State { logic.stopProcessing(); // 挂断 - UDPSenderManage.sendMainProtocol( - command: 150, - commandTypeIsCalling: 1, - subCommand: 30, - lockID: UDPManage().lockId, - lockIP: UDPManage().host, - userMobile: await state.userMobile, - userMobileIP: await state.userMobileIP, - endData: []); + logic.udpHangUpAction(); }), bottomBtnItemWidget("images/main/icon_lockDetail_monitoringUnlock.png", "开锁", AppColors.mainColor, () { showDeletPasswordAlertDialog(context); @@ -280,16 +272,7 @@ class _LockMonitoringPageState extends State { } // 开锁 - UDPSenderManage.sendMainProtocol( - command: 150, - commandTypeIsCalling: 1, - subCommand: 10, - lockID: UDPManage().lockId, - lockIP: UDPManage().host, - userMobile: await state.userMobile, - userMobileIP: await state.userMobileIP, - endData: []); - Get.back(); + logic.udpOpenDoorAction(); }, cancelClick: () { Get.back(); diff --git a/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_state.dart b/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_state.dart index fe3391cf..1e3bec11 100644 --- a/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_state.dart +++ b/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_state.dart @@ -24,8 +24,10 @@ class LockMonitoringState { late final VoiceProcessor? voiceProcessor; - // 定时器超过60秒关闭当前界面 - late Timer oneMinuteTimeTimer; + + late Timer oneMinuteTimeTimer;// 定时器超过60秒关闭当前界面 + var oneMinuteTime = 0.obs;// 定时器秒数 + // 定时器如果发送了接听的命令 而没收到回复就每秒重复发送10次 late Timer answerTimer; late Timer hangUpTimer; diff --git a/star_lock/lib/talk/udp/udp_reciverData.dart b/star_lock/lib/talk/udp/udp_reciverData.dart index 52c1e380..aafcc339 100644 --- a/star_lock/lib/talk/udp/udp_reciverData.dart +++ b/star_lock/lib/talk/udp/udp_reciverData.dart @@ -10,6 +10,8 @@ import '../call/callTalk.dart'; import 'udp_talkClass.dart'; class CommandUDPReciverManager { + + static void appDataReceive(List data) async { ///解析数据 if (data.isEmpty) {