From dbd020d393fd338a1d77bfc9805fa8624066d72b Mon Sep 17 00:00:00 2001 From: github-actions Date: Tue, 16 Apr 2024 20:56:42 +0000 Subject: [PATCH] Github Pages build from Action 8cddf9885a38a6ccaed0ade56ebd793f7054a700 --- assets/js/lunr/lunr-store.js | 2 +- contribution.html | 32 ++++---- faq.html | 20 ++++- feed.xml | 2 +- sitemap.xml | 22 ++--- tutorials/ble-protobuf.html | 38 ++++----- tutorials/ble-queries.html | 124 ++++++++++++++--------------- tutorials/camera-media-list.html | 46 +++++------ tutorials/cohn.html | 38 ++++----- tutorials/connect-ble.html | 60 +++++++------- tutorials/connect-wifi.html | 92 ++++++++++----------- tutorials/parse-ble-responses.html | 124 ++++++++++++++--------------- tutorials/send-ble-commands.html | 96 +++++++++++----------- tutorials/send-wifi-commands.html | 96 +++++++++++----------- 14 files changed, 404 insertions(+), 388 deletions(-) diff --git a/assets/js/lunr/lunr-store.js b/assets/js/lunr/lunr-store.js index e6b719be..80b6a8e5 100644 --- a/assets/js/lunr/lunr-store.js +++ b/assets/js/lunr/lunr-store.js @@ -1,7 +1,7 @@ var store = [ { "title": "FAQ and Known Issues: ", - "excerpt": "Frequently Asked Questions (FAQ) If you have somehow stumbled here first, note that there are specifications, demos, and tutorials which expand upon much of the information here. These can be found, among other places, from the home page. Connectivity What is the distance from the camera that BLE will still work? It is standard Bluetooth 4.0 range and it depends on external factors such as: Interference: anything interfering with the signal will shorten the range. The type of device that the camera is connected to: BT classification distinguishes 3 device classes based on their power levels. Depending on the class of the connected device, the range varies from less than 10 meters to 100 meters. Can I connect using WiFi only? Theoretically yes, if you already know the SSID, password, and the camera’s WiFi AP has been enabled. However, practically no because BLE is required in order to discover this information and configure the AP. Can I connect using BLE only? Yes, however there is some functionality that is not possible over BLE such as accessing the media list and downloading files. How to allow third-party devices to automatically discover close-by GoPro cameras? Devices can only be discovered via BLE by scanning for advertising GoPro cameras Multi Camera Setups How many devices can connect to the camera? Simultaneously, only one device can connect at a time. However, the camera stores BLE security keys and other connection information so it is possible to connect multiple devices sequentially. Is there currently a way to connect multiple cameras on the same Wifi network? No. Cameras can only be connected through Wi-Fi by becoming an access point itself (generating its own Wi-Fi network), not as a peripheral. What is the time offset between multiple cameras executing the same command? In cases when camera sync is important, we recommend using the USB connection, which minimizes the variance among devices. The time drift among cameras connected by USB cable to the same host will be up to ~35ms. Using BLE for that purpose will further increase it. Is there a way to precisely time sync cameras so the footage can be aligned during post-processing? The cameras set their time via GPS. By default, the camera seeks GPS at the beginning of every session, but this can be hindered by typical limitations of GPS signals. Additionally, there are two advanced options that require GoPro Labs firmware installed on the camera. The best bet is multi-cam GPS sync. Another option is precise time calibration via a dynamic QR scan from a smartphone or PC. Streaming What are the differences between the streaming options for GoPros? There are currently 3 different options on how to stream out of GoPro cameras. They are available either via Wi-Fi, USB, or both.   : Wifi :   : USB :       ViewFinder Preview LiveStream ViewFinder Preview Webcam Preview Webcam Orientation Floating or Fixed Landscape facing up Floating or Fixed Landscape: Floating or Fixed Landscape: Floating or Fixed Streaming Protocols UDP (MPEG-TS) RTMP UDP (MPEG-TS) UDP (MPEG-TS) UDP (MPEG-TS) \\         RTSP RTSP Connection Protocol Wifi - AP Mode WiFi - STA Mode NCM NCM NCM Resolution 480p, 720p 480p, 720p, 1080p 480p, 720p 720p, 1080p 720p, 1080p Frame Rate 30 30 30 30 30 Bitrate 2.5 - 4 mbps 0.8 - 8 mbps 2.5 - 4 mbps 6 mbps 6 mbps \\   depending on model configurable depending on model     Stabilization Basic Stabilization HyperSmooth or none Basic Stabilization None None Image Quality Basic Same as recorded content Basic Basic Same as recorded content Minimum Latency 210 ms > 100ms (un-stabilized) 210 ms 210 ms 210 ms \\     > 1,100ms (stabilized)       Audio None Stereo None None None Max Stream Time 150 minutes (720p on fully 85 minutes (720p on fully Unlimited (with external Unlimited(with external Unlimited (with external\\   charged Enduro battery) charged Enduro battery) power via USB) power via USB) power via USB How to achieve low latency feed streaming onto displays? The stream has a minimum latency of about 210ms. If you are seeing latency higher than that, we often find that as a result of using off-the-shelf libraries like ffmpeg which adds its own buffering. For preview and framing use cases, we don’t recommend using the live streaming RTMP protocol because it adds unnecessary steps in the pipeline, and puts the camera in the streaming preset, which offers little other control. A low latency streaming demo is available in the demos. How do I minimize latency of video preview with FFPLAY? FFPLAY by default will buffer remote streams. You can minimize the buffer using: --no-cache (receiving side) `-fflags nobuffer” (sender). However, the best latency can be achieved by building your own pipeline or ffmpegs library for decoding the bytes. Users should be able to achieve about 200-300 ms latency on the desktop and possibly optimize lower than that. How to view the video stream in VLC? To view the stream in VLC, you need to open network stream udp://@0.0.0.0:8554. You will still see latency because VLC uses its own caching. Power What are the power requirements for GoPro if connected over USB? All cameras have minimum power requirements, as specified here. As long as the power is supplied, cameras will be fully functional with or without an internal battery. Removing the battery and running on USB power alone will improve thermal performance and runtime. If you are seeing issues with insufficient power and have a charger with correct specs, the problems likely stem from low quality cables or low-quality adapters that are not able to consistently provide advertised amperage. We have encountered USB-C cables manufactured with poor quality control that transfer enough power only when their connectors face one side up, but not the other. We recommend using only high-quality components that deliver the correct power output How to enable automatic power on and off in wired setups? Cameras cannot be switched on remotely over USB, or “woken up” remotely after they “go to sleep”. The best workaround for this is via the GoPro Labs firmware that forces the camera to automatically switch on as soon as it detects USB power and switch off when the powering stops. Refer to the WAKE command here. Metadata Can I use the GPS track from the camera in real time? No. The GPS track on the camera as well as other metadata is not available until the file is written and saved. If the objective is to add metadata to the stream, currently the only option is to pull GPS data from another device (phone, wearable,… ) and sync it to the video feed. What can be accessed in the metadata file? Metadata exists as a proprietary GPMF (GoPro Metadata Format) and can be extracted from the file via API commands separately for GPS, Telemetry data, or the entire metadata container. The following data points can be extracted: Camera settings (Exposure time, ISO, Sensor Gain, White balance) Date and Time IMU: GPS, gyroscope, and accelerometer Smile detection Audio levels Face detection in bounding boxes Scene Classifiers (water, urban, vegetation, snow, beach, indoor) Is there a way to change the file names or otherwise classify my video file? Currently there are two options to do that, and both require GoPro Labs firmware. The stock firmware doesn’t provide that option. With GoPro Labs installed, you can either inject metadata into the file (and extract it later with the GPMF parser) or use custom naming for the file. Is there a way to add time stamps to the video files and mark specific moments? Open GoPro users can add time stamped markers, called “Hilights”, to flag specific moments in the video. Hilights can be injected into the video in the real time and then extracted for analytics or other post-processing purposes. The same Hilights are used in GoPro’s auto-editing engine Quik to determine the most interesting moments in the video. General Which cameras are supported by Open GoPro? The answer at a high level is >= Hero 9. However, there are also certain firmware requirements. For a complete answer, see the Specification. Camera Logic Do commands operate as priority-wise or time-related? The cameras use first-in, first-out logic. Is there an option to send the commands in cyclic format instead of sending requests for each command? If you want to receive information asynchronously, it is possible via registering for BLE notifications. See an example (tracking battery) in the Python SDK. Troubleshooting If you are able to consistently reproduce a problem, please file a bug on Github Issues Why is the camera not advertising? If you have not yet paired to the camera with the desired device, then you need to first set the camera into pairing mode (Connections->Connect Device->Quick App). If you have already paired, then the camera should be advertising and ready to connect. If it is not advertising, it is possible you are already connected to it from a previous session. To be sure, power cycle both the camera and the peer device. Workaround for intermittent Wifi AP Connection failure On >= Hero 11, try disabling and then re-enabling the camera’s Wifi AP using the AP Control BLE Command Known Issues Relevant to All Supported Cameras Webcam does not enter idle mode once plugged in The webcam status will be wrongly reported as IDLE instead of OFF after a new USB connection. The best workaround for this is to call Webcam Start followed by Webcam Stop after connecting USB in order to make the webcam truly IDLE and thus willing to accept setting changes. Intermittent failure to connect to the cameras Wifi Access Point On rare occasions, connections to the camera’s Wifi AP will continuously fail until the camera is reset. It is possible to workaround this as described in Troubleshooting Spurious Protobuf Notifications sent once camera is connected in Station mode Once the camera has been connected in station mode (STA), it will start sending protobuf notifications with action ID 0xFF. These should be ignored. Hero 11 (v01.10.00) Specific Wired Communication is broken after update mode This is fixed by Resetting Connections and then re-pairing.", + "excerpt": "Frequently Asked Questions (FAQ) If you have somehow stumbled here first, note that there are specifications, demos, and tutorials which expand upon much of the information here. These can be found, among other places, from the home page. Connectivity What is the distance from the camera that BLE will still work? It is standard Bluetooth 4.0 range and it depends on external factors such as: Interference: anything interfering with the signal will shorten the range. The type of device that the camera is connected to: BT classification distinguishes 3 device classes based on their power levels. Depending on the class of the connected device, the range varies from less than 10 meters to 100 meters. Can I connect using WiFi only? Theoretically yes, if you already know the SSID, password, and the camera’s WiFi AP has been enabled. However, practically no because BLE is required in order to discover this information and configure the AP. Can I connect using BLE only? Yes, however there is some functionality that is not possible over BLE such as accessing the media list and downloading files. How to allow third-party devices to automatically discover close-by GoPro cameras? Devices can only be discovered via BLE by scanning for advertising GoPro cameras Multi Camera Setups How many devices can connect to the camera? Simultaneously, only one device can connect at a time. However, the camera stores BLE security keys and other connection information so it is possible to connect multiple devices sequentially. Is there currently a way to connect multiple cameras on the same Wifi network? No. Cameras can only be connected through Wi-Fi by becoming an access point itself (generating its own Wi-Fi network), not as a peripheral. What is the time offset between multiple cameras executing the same command? In cases when camera sync is important, we recommend using the USB connection, which minimizes the variance among devices. The time drift among cameras connected by USB cable to the same host will be up to ~35ms. Using BLE for that purpose will further increase it. Is there a way to precisely time sync cameras so the footage can be aligned during post-processing? The cameras set their time via GPS. By default, the camera seeks GPS at the beginning of every session, but this can be hindered by typical limitations of GPS signals. Additionally, there are two advanced options that require GoPro Labs firmware installed on the camera. The best bet is multi-cam GPS sync. Another option is precise time calibration via a dynamic QR scan from a smartphone or PC. Streaming What are the differences between the streaming options for GoPros? There are currently 3 different options on how to stream out of GoPro cameras. They are available either via Wi-Fi, USB, or both.   : Wifi :   : USB :       ViewFinder Preview LiveStream ViewFinder Preview Webcam Preview Webcam Orientation Floating or Fixed Landscape facing up Floating or Fixed Landscape: Floating or Fixed Landscape: Floating or Fixed Streaming Protocols UDP (MPEG-TS) RTMP UDP (MPEG-TS) UDP (MPEG-TS) UDP (MPEG-TS) \\         RTSP RTSP Connection Protocol Wifi - AP Mode WiFi - STA Mode NCM NCM NCM Resolution 480p, 720p 480p, 720p, 1080p 480p, 720p 720p, 1080p 720p, 1080p Frame Rate 30 30 30 30 30 Bitrate 2.5 - 4 mbps 0.8 - 8 mbps 2.5 - 4 mbps 6 mbps 6 mbps \\   depending on model configurable depending on model     Stabilization Basic Stabilization HyperSmooth or none Basic Stabilization None None Image Quality Basic Same as recorded content Basic Basic Same as recorded content Minimum Latency 210 ms > 100ms (un-stabilized) 210 ms 210 ms 210 ms \\     > 1,100ms (stabilized)       Audio None Stereo None None None Max Stream Time 150 minutes (720p on fully 85 minutes (720p on fully Unlimited (with external Unlimited(with external Unlimited (with external\\   charged Enduro battery) charged Enduro battery) power via USB) power via USB) power via USB How to achieve low latency feed streaming onto displays? The stream has a minimum latency of about 210ms. If you are seeing latency higher than that, we often find that as a result of using off-the-shelf libraries like ffmpeg which adds its own buffering. For preview and framing use cases, we don’t recommend using the live streaming RTMP protocol because it adds unnecessary steps in the pipeline, and puts the camera in the streaming preset, which offers little other control. A low latency streaming demo is available in the demos. How do I minimize latency of video preview with FFPLAY? FFPLAY by default will buffer remote streams. You can minimize the buffer using: --no-cache (receiving side) `-fflags nobuffer” (sender). However, the best latency can be achieved by building your own pipeline or ffmpegs library for decoding the bytes. Users should be able to achieve about 200-300 ms latency on the desktop and possibly optimize lower than that. How to view the video stream in VLC? To view the stream in VLC, you need to open network stream udp://@0.0.0.0:8554. You will still see latency because VLC uses its own caching. Power What are the power requirements for GoPro if connected over USB? All cameras have minimum power requirements, as specified here. As long as the power is supplied, cameras will be fully functional with or without an internal battery. Removing the battery and running on USB power alone will improve thermal performance and runtime. If you are seeing issues with insufficient power and have a charger with correct specs, the problems likely stem from low quality cables or low-quality adapters that are not able to consistently provide advertised amperage. We have encountered USB-C cables manufactured with poor quality control that transfer enough power only when their connectors face one side up, but not the other. We recommend using only high-quality components that deliver the correct power output How to enable automatic power on and off in wired setups? Cameras cannot be switched on remotely over USB, or “woken up” remotely after they “go to sleep”. The best workaround for this is via the GoPro Labs firmware that forces the camera to automatically switch on as soon as it detects USB power and switch off when the powering stops. Refer to the WAKE command here. Metadata Can I use the GPS track from the camera in real time? No. The GPS track on the camera as well as other metadata is not available until the file is written and saved. If the objective is to add metadata to the stream, currently the only option is to pull GPS data from another device (phone, wearable,… ) and sync it to the video feed. What can be accessed in the metadata file? Metadata exists as a proprietary GPMF (GoPro Metadata Format) and can be extracted from the file via API commands separately for GPS, Telemetry data, or the entire metadata container. The following data points can be extracted: Camera settings (Exposure time, ISO, Sensor Gain, White balance) Date and Time IMU: GPS, gyroscope, and accelerometer Smile detection Audio levels Face detection in bounding boxes Scene Classifiers (water, urban, vegetation, snow, beach, indoor) Is there a way to change the file names or otherwise classify my video file? Currently there are two options to do that, and both require GoPro Labs firmware. The stock firmware doesn’t provide that option. With GoPro Labs installed, you can either inject metadata into the file (and extract it later with the GPMF parser) or use custom naming for the file. Is there a way to add time stamps to the video files and mark specific moments? Open GoPro users can add time stamped markers, called “Hilights”, to flag specific moments in the video. Hilights can be injected into the video in the real time and then extracted for analytics or other post-processing purposes. The same Hilights are used in GoPro’s auto-editing engine Quik to determine the most interesting moments in the video. General Which cameras are supported by Open GoPro? The answer at a high level is >= Hero 9. However, there are also certain firmware requirements. For a complete answer, see the Specification. How to get the remaining timelapse capability? First check the value of Setting 128. Then depending on whether this is Photo or Video, use: Status 34 (Remaining photos) Status 35 (Remaining videos) Camera Logic Do commands operate as priority-wise or time-related? The cameras use first-in, first-out logic. Is there an option to send the commands in cyclic format instead of sending requests for each command? If you want to receive information asynchronously, it is possible via registering for BLE notifications. See an example (tracking battery) in the Python SDK. Troubleshooting If you are able to consistently reproduce a problem, please file a bug on Github Issues Why is the camera not advertising? If you have not yet paired to the camera with the desired device, then you need to first set the camera into pairing mode (Connections->Connect Device->Quick App). If you have already paired, then the camera should be advertising and ready to connect. If it is not advertising, it is possible you are already connected to it from a previous session. To be sure, power cycle both the camera and the peer device. Workaround for intermittent Wifi AP Connection failure On >= Hero 11, try disabling and then re-enabling the camera’s Wifi AP using the AP Control BLE Command Known Issues Relevant to All Supported Cameras Webcam does not enter idle mode once plugged in The webcam status will be wrongly reported as IDLE instead of OFF after a new USB connection. The best workaround for this is to call Webcam Start followed by Webcam Stop after connecting USB in order to make the webcam truly IDLE and thus willing to accept setting changes. Intermittent failure to connect to the cameras Wifi Access Point On rare occasions, connections to the camera’s Wifi AP will continuously fail until the camera is reset. It is possible to workaround this as described in Troubleshooting Spurious Protobuf Notifications sent once camera is connected in Station mode Once the camera has been connected in station mode (STA), it will start sending protobuf notifications with action ID 0xFF. These should be ignored. Hero 11 (v01.10.00) Specific Wired Communication is broken after update mode This is fixed by Resetting Connections and then re-pairing.", "categories": [], "tags": [], "url": "/OpenGoPro/faq#" diff --git a/contribution.html b/contribution.html index c60c0301..daa94ad4 100644 --- a/contribution.html +++ b/contribution.html @@ -532,10 +532,10 @@

Quiz

%} -
+
-
What is the question?
-
+
What is the question?
+

@@ -548,10 +548,10 @@

Quiz

- - @@ -567,10 +567,10 @@

Quiz

%}
-
+
-
True or False?
-
+
True or False?
+

@@ -580,10 +580,10 @@

Quiz

- - @@ -606,7 +606,7 @@

Tabs

-
    +
    • tab1 @@ -621,7 +621,7 @@

      Tabs

    -
      +
      • This is the content of the first tab.

        diff --git a/faq.html b/faq.html index a4ad5f70..d9ef1bc3 100644 --- a/faq.html +++ b/faq.html @@ -752,7 +752,23 @@

        General

        The answer at a high level is >= Hero 9. However, there are also certain firmware requirements. For a complete -answer, see the Specification.

        +answer, see the Specification.

        +
        +
+ +
+ +
+

First check the value of Setting 128. Then depending on whether +this is Photo or Video, use:

+ + +
@@ -791,7 +807,7 @@

Troubleshooting

On >= Hero 11, try disabling and then re-enabling the camera’s Wifi AP using the -AP Control BLE Command

+AP Control BLE Command

diff --git a/feed.xml b/feed.xml index 06f352f9..cfae98a2 100644 --- a/feed.xml +++ b/feed.xml @@ -1 +1 @@ -Jekyll2024-04-16T13:24:33-07:00https://gopro.github.io/OpenGoPro/feed.xmlOpen GoProOpen Source GoPro InterfaceGoPro \ No newline at end of file +Jekyll2024-04-16T13:56:07-07:00https://gopro.github.io/OpenGoPro/feed.xmlOpen GoProOpen Source GoPro InterfaceGoPro \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index 40a89609..d631b6e5 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -2,39 +2,39 @@ https://gopro.github.io/OpenGoPro/tutorials/connect-ble -2024-04-16T13:24:33-07:00 +2024-04-16T13:56:07-07:00 https://gopro.github.io/OpenGoPro/tutorials/send-ble-commands -2024-04-16T13:24:33-07:00 +2024-04-16T13:56:07-07:00 https://gopro.github.io/OpenGoPro/tutorials/parse-ble-responses -2024-04-16T13:24:33-07:00 +2024-04-16T13:56:07-07:00 https://gopro.github.io/OpenGoPro/tutorials/ble-queries -2024-04-16T13:24:33-07:00 +2024-04-16T13:56:07-07:00 https://gopro.github.io/OpenGoPro/tutorials/ble-protobuf -2024-04-16T13:24:33-07:00 +2024-04-16T13:56:07-07:00 https://gopro.github.io/OpenGoPro/tutorials/connect-wifi -2024-04-16T13:24:33-07:00 +2024-04-16T13:56:07-07:00 https://gopro.github.io/OpenGoPro/tutorials/send-wifi-commands -2024-04-16T13:24:33-07:00 +2024-04-16T13:56:07-07:00 https://gopro.github.io/OpenGoPro/tutorials/camera-media-list -2024-04-16T13:24:33-07:00 +2024-04-16T13:56:07-07:00 https://gopro.github.io/OpenGoPro/tutorials/cohn -2024-04-16T13:24:33-07:00 +2024-04-16T13:56:07-07:00 https://gopro.github.io/OpenGoPro/ble/features/access_points.html @@ -110,10 +110,10 @@ https://gopro.github.io/OpenGoPro/ble_2_0.html -2024-04-16T13:24:08-07:00 +2024-04-16T13:55:45-07:00 https://gopro.github.io/OpenGoPro/http_2_0.html -2024-04-16T13:24:08-07:00 +2024-04-16T13:55:45-07:00 diff --git a/tutorials/ble-protobuf.html b/tutorials/ble-protobuf.html index fe97cf8f..b2067d4c 100644 --- a/tutorials/ble-protobuf.html +++ b/tutorials/ble-protobuf.html @@ -34,7 +34,7 @@ - + @@ -438,7 +438,7 @@

GoPro

- +
@@ -534,7 +534,7 @@

Requirements

Just Show me the Demo(s)!!

-
    +
    • python @@ -545,7 +545,7 @@

      Just Show me the Demo(s)!!

    -
      +
      • Each of the scripts for this tutorial can be found in the Tutorial 5 @@ -688,7 +688,7 @@

        Protobuf Message Example

-
    +
    • python @@ -699,7 +699,7 @@

      Protobuf Message Example

    -
      +
      • from tutorial_modules import proto
        @@ -733,7 +733,7 @@ 

        Protobuf Message Example

        ResponseGeneric object.

        -
          +
          • python @@ -744,7 +744,7 @@

            Protobuf Message Example

          -
            +
            • response_bytes = proto.ResponseGeneric(result=proto.EnumResultGeneric.RESULT_SUCCESS).SerializeToString()
              @@ -820,7 +820,7 @@ 

              Protobuf Response Parser

              -
                +
                • python @@ -831,7 +831,7 @@

                  Protobuf Response Parser

                -
                  +
                  • @@ -868,7 +868,7 @@

                    Set Turbo Transfer

                    Feature ID, Action ID, and length bytes:

                    -
                      +
                      • python @@ -879,7 +879,7 @@

                        Set Turbo Transfer

                      -
                        +
                        • turbo_mode_request = bytearray(
                          @@ -906,7 +906,7 @@ 

                          Set Turbo Transfer

                          from the Set Turbo Mode Documentation: ResponseGeneric.

                          -
                            +
                            • python @@ -917,7 +917,7 @@

                              Set Turbo Transfer

                            -
                              +
                              • await client.write_gatt_char(request_uuid.value, turbo_mode_request, response=True)
                                @@ -979,7 +979,7 @@ 

                                Response Manager

                                parsing of all response types:

                                -
                                  +
                                  • python @@ -990,7 +990,7 @@

                                    Response Manager

                                  -
                                    +
                                    • @@ -1073,7 +1073,7 @@

                                      Examples of Each Response Type

                                      Now let’s perform operations that will demonstrate each response type:

                                      -
                                        +
                                        • python @@ -1084,7 +1084,7 @@

                                          Examples of Each Response Type

                                        -
                                          +
                                          • # TLV Command (Setting)
                                            @@ -1167,7 +1167,7 @@ 

                                            Good Job!

                                            -

                                            Updated:

                                            +

                                            Updated:

                                            diff --git a/tutorials/ble-queries.html b/tutorials/ble-queries.html index 771e0a95..17f49017 100644 --- a/tutorials/ble-queries.html +++ b/tutorials/ble-queries.html @@ -34,7 +34,7 @@ - + @@ -438,7 +438,7 @@

                                            GoPro

                                            - +
                                            @@ -531,7 +531,7 @@

                                            Requirements

                                            Just Show me the Demo(s)!!

                                            -
                                              +
                                              • python @@ -542,7 +542,7 @@

                                                Just Show me the Demo(s)!!

                                              -
                                                +
                                                • Each of the scripts for this tutorial can be found in the Tutorial 4 @@ -668,7 +668,7 @@

                                                  Setup

                                                  connecting BLE tutorial.

                                                  -
                                                    + -
                                                      +
                                                      • We have slightly updated the notification handler from the previous tutorial to handle a QueryResponse instead of @@ -830,7 +830,7 @@

                                                        Parsing a Query Response

                                                        storing each value in a hash map indexed by ID for later access.

                                                        -
                                                          +
                                                          • python @@ -841,7 +841,7 @@

                                                            Parsing a Query Response

                                                          -
                                                            +
                                                            • class QueryResponse(TlvResponse):
                                                              @@ -897,10 +897,10 @@ 

                                                              Parsing a Query Response

                                                              -
                                                              +
                                                              -
                                                              How many packets are query responses?
                                                              -
                                                              +
                                                              How many packets are query responses?
                                                              +

                                                              @@ -913,19 +913,19 @@

                                                              Parsing a Query Response

                                                              - - -
                                                              +
                                                              -
                                                              Which field is not common to all TLV responses?
                                                              -
                                                              +
                                                              Which field is not common to all TLV responses?
                                                              +

                                                              @@ -941,10 +941,10 @@

                                                              Parsing a Query Response

                                                              - - @@ -1000,7 +1000,7 @@

                                                              Individual Query Poll

                                                              First we send the query:

                                                              -
                                                                +
                                                                • python @@ -1011,7 +1011,7 @@

                                                                  Individual Query Poll

                                                                -
                                                                  +
                                                                  • @@ -1039,7 +1039,7 @@

                                                                    Individual Query Poll

                                                                    QueryResponse class and extract the new resolution value.

                                                                    -
                                                                      +
                                                                      • python @@ -1050,7 +1050,7 @@

                                                                        Individual Query Poll

                                                                      -
                                                                        +
                                                                        • # Wait to receive the notification response
                                                                          @@ -1097,7 +1097,7 @@ 

                                                                          Individual Query Poll

                                                                          has changed:

                                                                          -
                                                                            +
                                                                            • python @@ -1108,7 +1108,7 @@

                                                                              Individual Query Poll

                                                                            -
                                                                              +
                                                                              • while resolution is not target_resolution:
                                                                                @@ -1178,7 +1178,7 @@ 

                                                                                Multiple Simultaneous Query Polls

                                                                                FOV.

                                                                                -
                                                                                  +
                                                                                  • python @@ -1189,7 +1189,7 @@

                                                                                    Multiple Simultaneous Query Polls

                                                                                  -
                                                                                    +
                                                                                    • RESOLUTION_ID = 2
                                                                                      @@ -1217,7 +1217,7 @@ 

                                                                                      Multiple Simultaneous Query Polls

                                                                                      We are also parsing the response to get all 3 values:

                                                                                      -
                                                                                        +
                                                                                        • python @@ -1228,7 +1228,7 @@

                                                                                          Multiple Simultaneous Query Polls

                                                                                        -
                                                                                          +
                                                                                          • response.parse()
                                                                                            @@ -1255,7 +1255,7 @@ 

                                                                                            Multiple Simultaneous Query Polls

                                                                                            They are then printed to the log which will look like the following:

                                                                                            -
                                                                                              +
                                                                                              • python @@ -1266,7 +1266,7 @@

                                                                                                Multiple Simultaneous Query Polls

                                                                                              -
                                                                                                +
                                                                                                • Getting the current resolution, fps, and fov.
                                                                                                  @@ -1326,10 +1326,10 @@ 

                                                                                                  Query All

                                                                                                  Quiz time! 📚 ✏️

                                                                                                  -
                                                                                                  +
                                                                                                  -
                                                                                                  How can we poll the encoding status and the resolution setting using one query?
                                                                                                  -
                                                                                                  +
                                                                                                  How can we poll the encoding status and the resolution setting using one query?
                                                                                                  +

                                                                                                  @@ -1342,10 +1342,10 @@

                                                                                                  Query All

                                                                                                  - -