Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bluetooth measure takes many samples and writes in invalid JSON format #287

Closed
koenniem opened this issue Nov 24, 2022 · 2 comments
Closed
Assignees
Labels
bug Something isn't working enhancement New feature or request

Comments

@koenniem
Copy link

Device / Emulator and OS

Please complete the following information for each phone and/or emulator you're experiencing this bug on:

  • Device: Xiaomi Mi 10T Lite and Samsung S20 FE
  • OS: Android 12

Describe the bug

When using the Bluetooth measure in carp_connectivity_package, the output are cumulative intermediate measurements instead of only the final result. In other words, instead of waiting for results, multiple measurements appear in the output with an increasing number of devices found in the Bluetooth scan. Concretely, the first result is likely to contain no found Bluetooth devices in the vicinity, the second measurement a few, in the third measurement, a few more, et cetera. The total number of measurement on my phone was 12 instead of just 1.

Additionally, in the case of using a FileDataEndPoint, the measurements appear in invalid JSON format (see attachment).

To Reproduce

  1. Download the example app in apps/carp_mobile_sensing_app
  2. In pubspec.yaml change research_package to research_package: ^1.2.0 (otherwise pub get doesn't work)
  3. Do pub get
  4. Go to getStudyProtocol in Sensing/local_study_protocol_mananger.dart
    Replace everything after protocol.addMasterDevice(phone); with the following code (to focus on one sensor):
    Measure bluetoothMeasure = Measure(type: ConnectivitySamplingPackage.BLUETOOTH);
    bluetoothMeasure.overrideSamplingConfiguration = PeriodicSamplingConfiguration(
      interval: const Duration(seconds: 20),
      duration: const Duration(seconds: 5),
    );

    protocol.addTriggeredTask(
        ImmediateTrigger(),
        BackgroundTask()
          ..addMeasure(bluetoothMeasure),
        phone);

    return protocol;
  1. Run the app
  2. After 20 seconds, the number of samples will appear on-screen and in the terminal.
    I then get the following output after a couple of minutes:

Expected behavior

A properly formatted JSON file with exactly one Bluetooth measurement.

Actual behavior

Output
[
{"carp_header":{"study_id":"9498b4f0-69bb-11ed-b196-6fe3b5cd024f","device_role_name":"masterphone","trigger_id":"0","user_id":"94bc1b70-69bb-11ed-be10-eb304a0ea062","start_time":"2022-11-23T13:07:34.882635Z","data_format":{"namespace":"dk.cachet.carp","name":"bluetooth"}},"carp_body":{"id":"cc03cef0-6b2f-11ed-8503-c9d2f73b762a","timestamp":"2022-11-23T13:07:34.879608Z","scan_result":[]}}{"carp_header":{"study_id":"9498b4f0-69bb-11ed-b196-6fe3b5cd024f","device_role_name":"masterphone","trigger_id":"0","user_id":"94bc1b70-69bb-11ed-be10-eb304a0ea062","start_time":"2022-11-23T13:07:34.895827Z","data_format":{"namespace":"dk.cachet.carp","name":"bluetooth"}},"carp_body":{"id":"cc041d10-6b2f-11ed-9862-554bf89cf15e","timestamp":"2022-11-23T13:07:34.881143Z","scan_result":[]}}
,

,
{"carp_header":{"study_id":"9498b4f0-69bb-11ed-b196-6fe3b5cd024f","device_role_name":"masterphone","trigger_id":"0","user_id":"94bc1b70-69bb-11ed-be10-eb304a0ea062","start_time":"2022-11-23T13:07:35.073206Z","data_format":{"namespace":"dk.cachet.carp","name":"bluetooth"}},"carp_body":{"id":"cc214200-6b2f-11ed-a9be-9145482eb747","timestamp":"2022-11-23T13:07:35.072020Z","scan_result":[{"advertisement_name":"","bluetooth_device_id":"17:D8:C8:11:C2:A6","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-82}]}}{"carp_header":{"study_id":"9498b4f0-69bb-11ed-b196-6fe3b5cd024f","device_role_name":"masterphone","trigger_id":"0","user_id":"94bc1b70-69bb-11ed-be10-eb304a0ea062","start_time":"2022-11-23T13:07:35.078492Z","data_format":{"namespace":"dk.cachet.carp","name":"bluetooth"}},"carp_body":{"id":"cc222c60-6b2f-11ed-8223-0dba721fdd3a","timestamp":"2022-11-23T13:07:35.078175Z","scan_result":[{"advertisement_name":"","bluetooth_device_id":"17:D8:C8:11:C2:A6","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-82},{"advertisement_name":"","bluetooth_device_id":"64:F7:12:93:4C:30","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-43}]}}{"carp_header":{"study_id":"9498b4f0-69bb-11ed-b196-6fe3b5cd024f","device_role_name":"masterphone","trigger_id":"0","user_id":"94bc1b70-69bb-11ed-be10-eb304a0ea062","start_time":"2022-11-23T13:07:35.081574Z","data_format":{"namespace":"dk.cachet.carp","name":"bluetooth"}},"carp_body":{"id":"cc22a190-6b2f-11ed-98cf-71ef64eca64a","timestamp":"2022-11-23T13:07:35.081305Z","scan_result":[{"advertisement_name":"","bluetooth_device_id":"17:D8:C8:11:C2:A6","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-82},{"advertisement_name":"","bluetooth_device_id":"64:F7:12:93:4C:30","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-43},{"advertisement_name":"","bluetooth_device_id":"30:67:8A:65:69:8C","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-46}]}}{"carp_header":{"study_id":"9498b4f0-69bb-11ed-b196-6fe3b5cd024f","device_role_name":"masterphone","trigger_id":"0","user_id":"94bc1b70-69bb-11ed-be10-eb304a0ea062","start_time":"2022-11-23T13:07:35.087396Z","data_format":{"namespace":"dk.cachet.carp","name":"bluetooth"}},"carp_body":{"id":"cc238bf0-6b2f-11ed-9964-a96ba5434091","timestamp":"2022-11-23T13:07:35.086825Z","scan_result":[{"advertisement_name":"","bluetooth_device_id":"17:D8:C8:11:C2:A6","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-82},{"advertisement_name":"","bluetooth_device_id":"64:F7:12:93:4C:30","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-43},{"advertisement_name":"","bluetooth_device_id":"30:67:8A:65:69:8C","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-46},{"advertisement_name":"","bluetooth_device_id":"33:1B:BD:D6:B9:F7","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-91}]}}{"carp_header":{"study_id":"9498b4f0-69bb-11ed-b196-6fe3b5cd024f","device_role_name":"masterphone","trigger_id":"0","user_id":"94bc1b70-69bb-11ed-be10-eb304a0ea062","start_time":"2022-11-23T13:07:35.091241Z","data_format":{"namespace":"dk.cachet.carp","name":"bluetooth"}},"carp_body":{"id":"cc242830-6b2f-11ed-998e-695bb6a6d872","timestamp":"2022-11-23T13:07:35.090956Z","scan_result":[{"advertisement_name":"","bluetooth_device_id":"17:D8:C8:11:C2:A6","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-82},{"advertisement_name":"","bluetooth_device_id":"64:F7:12:93:4C:30","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-43},{"advertisement_name":"","bluetooth_device_id":"30:67:8A:65:69:8C","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-46},{"advertisement_name":"","bluetooth_device_id":"33:1B:BD:D6:B9:F7","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-91},{"advertisement_name":"","bluetooth_device_id":"20:90:37:52:A5:AD","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-70}]}}{"carp_header":{"study_id":"9498b4f0-69bb-11ed-b196-6fe3b5cd024f","device_role_name":"masterphone","trigger_id":"0","user_id":"94bc1b70-69bb-11ed-be10-eb304a0ea062","start_time":"2022-11-23T13:07:35.095525Z","data_format":{"namespace":"dk.cachet.carp","name":"bluetooth"}},"carp_body":{"id":"cc24c470-6b2f-11ed-bb8d-57f5cc5b1a36","timestamp":"2022-11-23T13:07:35.095259Z","scan_result":[{"advertisement_name":"","bluetooth_device_id":"17:D8:C8:11:C2:A6","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-82},{"advertisement_name":"","bluetooth_device_id":"64:F7:12:93:4C:30","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-43},{"advertisement_name":"","bluetooth_device_id":"30:67:8A:65:69:8C","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-46},{"advertisement_name":"","bluetooth_device_id":"33:1B:BD:D6:B9:F7","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-91},{"advertisement_name":"","bluetooth_device_id":"20:90:37:52:A5:AD","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-70},{"advertisement_name":"","bluetooth_device_id":"70:06:BA:EC:A1:32","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-81}]}}{"carp_header":{"study_id":"9498b4f0-69bb-11ed-b196-6fe3b5cd024f","device_role_name":"masterphone","trigger_id":"0","user_id":"94bc1b70-69bb-11ed-be10-eb304a0ea062","start_time":"2022-11-23T13:07:35.101354Z","data_format":{"namespace":"dk.cachet.carp","name":"bluetooth"}},"carp_body":{"id":"cc25aed0-6b2f-11ed-9b77-df91374205b1","timestamp":"2022-11-23T13:07:35.101119Z","scan_result":[{"advertisement_name":"","bluetooth_device_id":"17:D8:C8:11:C2:A6","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-82},{"advertisement_name":"","bluetooth_device_id":"64:F7:12:93:4C:30","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-43},{"advertisement_name":"","bluetooth_device_id":"30:67:8A:65:69:8C","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-46},{"advertisement_name":"","bluetooth_device_id":"33:1B:BD:D6:B9:F7","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-91},{"advertisement_name":"","bluetooth_device_id":"20:90:37:52:A5:AD","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-70},{"advertisement_name":"","bluetooth_device_id":"70:06:BA:EC:A1:32","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-81},{"advertisement_name":"","bluetooth_device_id":"3B:F9:4A:83:E6:AF","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-86}]}}{"carp_header":{"study_id":"9498b4f0-69bb-11ed-b196-6fe3b5cd024f","device_role_name":"masterphone","trigger_id":"0","user_id":"94bc1b70-69bb-11ed-be10-eb304a0ea062","start_time":"2022-11-23T13:07:35.104586Z","data_format":{"namespace":"dk.cachet.carp","name":"bluetooth"}},"carp_body":{"id":"cc262400-6b2f-11ed-853b-ef9c42b95104","timestamp":"2022-11-23T13:07:35.104309Z","scan_result":[{"advertisement_name":"","bluetooth_device_id":"17:D8:C8:11:C2:A6","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-82},{"advertisement_name":"","bluetooth_device_id":"64:F7:12:93:4C:30","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-43},{"advertisement_name":"","bluetooth_device_id":"30:67:8A:65:69:8C","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-46},{"advertisement_name":"","bluetooth_device_id":"33:1B:BD:D6:B9:F7","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-91},{"advertisement_name":"","bluetooth_device_id":"20:90:37:52:A5:AD","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-70},{"advertisement_name":"","bluetooth_device_id":"70:06:BA:EC:A1:32","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-81},{"advertisement_name":"","bluetooth_device_id":"3B:F9:4A:83:E6:AF","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-86},{"advertisement_name":"","bluetooth_device_id":"07:DC:E1:A3:FB:26","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-91}]}}
,

,

,

,

,

,

,

,
{"carp_header":{"study_id":"9498b4f0-69bb-11ed-b196-6fe3b5cd024f","device_role_name":"masterphone","trigger_id":"0","user_id":"94bc1b70-69bb-11ed-be10-eb304a0ea062","start_time":"2022-11-23T13:07:36.228051Z","data_format":{"namespace":"dk.cachet.carp","name":"bluetooth"}},"carp_body":{"id":"ccd17f30-6b2f-11ed-92f6-b7b5c573ff03","timestamp":"2022-11-23T13:07:36.227653Z","scan_result":[{"advertisement_name":"","bluetooth_device_id":"17:D8:C8:11:C2:A6","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-82},{"advertisement_name":"","bluetooth_device_id":"64:F7:12:93:4C:30","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-43},{"advertisement_name":"","bluetooth_device_id":"30:67:8A:65:69:8C","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-46},{"advertisement_name":"","bluetooth_device_id":"33:1B:BD:D6:B9:F7","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-91},{"advertisement_name":"","bluetooth_device_id":"20:90:37:52:A5:AD","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-70},{"advertisement_name":"","bluetooth_device_id":"70:06:BA:EC:A1:32","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-81},{"advertisement_name":"","bluetooth_device_id":"3B:F9:4A:83:E6:AF","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-86},{"advertisement_name":"","bluetooth_device_id":"07:DC:E1:A3:FB:26","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":false,"rssi":-91},{"advertisement_name":"","bluetooth_device_id":"5E:32:A5:A1:9C:F3","bluetooth_device_name":"","bluetooth_device_type":"unknown","connectable":true,"rssi":-74}]}}
,
Flutter doctor
Flutter doctor -v
> flutter doctor -v
[√] Flutter (Channel stable, 3.3.8, on Microsoft Windows [Version 10.0.19044.2251], locale en-GB)
    • Flutter version 3.3.8 on channel stable at C:\Flutter                                      
    • Upstream repository https://github.com/flutter/flutter.git                                 
    • Framework revision 52b3dc25f6 (2 weeks ago), 2022-11-09 12:09:26 +0800
    • Engine revision 857bd6b74c                                            
    • Dart version 2.18.4                                                   
    • DevTools version 2.15.0                                               
                                                                            
[√] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at C:\Users\u0134047\AppData\Local\Android\sdk                
    • Platform android-33, build-tools 33.0.0
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop for Windows (Visual Studio Community 2022 17.1.2)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.1.32319.34
    • Windows 10 SDK version 10.0.20348.0

[√] Android Studio (version 2021.3)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)

[√] VS Code (version 1.72.2)
    • VS Code at C:\Users\u0134047\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension can be installed from:
       https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[√] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.19044.2251]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 107.0.5304.107
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 107.0.1418.56

[√] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!
@bardram bardram self-assigned this Nov 25, 2022
@bardram bardram added the bug Something isn't working label Nov 25, 2022
@bardram
Copy link
Contributor

bardram commented Dec 6, 2022

You're right. Looking at this now.

@bardram bardram added enhancement New feature or request bug Something isn't working and removed bug Something isn't working labels Dec 6, 2022
@bardram
Copy link
Contributor

bardram commented Dec 6, 2022

Released as version 0.40.1 of the carp_connectivity_package package.

@bardram bardram closed this as completed Dec 6, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants