Skip to content

Upgrade to 1.3.1 and support stand alone airlift on other boards #1

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

Open
wants to merge 152 commits into
base: master
Choose a base branch
from

Conversation

alwayslinux2
Copy link

Merged from upstream 1.1.2 -> 1.3.1.
Fixed some misnamed #define's
Added ifdef branches such that any board that is attached to a stand alone airlift or airlift feather or airlift wing by defining HAS_ADAFRUIT_AIRLIFT in boards file, not just M4 airlift lite.

sandeepmistry and others added 30 commits September 18, 2019 12:15
CordioHCILoop: properly terminate bleLoop thread
3.4.1.1 of ATT protocol spec suggests that in the ATT_ERROR_RSP, the Request Opcode In Error should be set to the request that generated the error.  In this case it looks like it should actually be  ATT_FIND_BY_TYPE_VALUE_REQ (ATT_OP_READ_BY_GROUP_REQ)
…de-failure

PDU rejected due to wrong opcode set in 'Request Opcode In Error'
The 'nextCharacteristic' selection was wrong.
Thus, when using nextCharacteristic for taking the end handle for the request, the end handle of the current characteristic was taken.
This resulted in the following condition to be true: (reqStartHandle > reqEndHandle)
For such reason, in many cases the descriptors were not retrieved. Specifically, all the characteristics of a service, except the last one, will result without descriptors.
This will result in an error where trying to subscribe to a characteristic which has a descriptor before the CCCD one. (for instance the User Description Descriptor)
In case the subscription is made on a characteristic having the CCCD as first descriptor there are no errors, because if no descriptors are found the write request, needed for the subscription, will be made to the char value handle + 1.
…ta-fixes

Fix for advertised service data not working
The mbed ble stack is initialized at the beginning in order to exploit the service pack transfer.
Once it has been initialized, the queue used to dispatch the ble events is stopped.
At this point the mbed stack is no more used and ArduinoBLE exploits directly the low level uart transport layer.
…vicepack

[portenta] Send service pack updates through mbed initialization
Default local characteristics and services are now allocated in the HEAP.
This change is needed for CI integration. Indeed, if these attributes are allocated in the STACK they cannot be freed by the 'delete' statement used in their destructors.
Downside: their memory usage will not be counted in the estimated amount of RAM occupated by a resulting program that includes this library.
Change allocation of default services and characteristics
Now all the set methods of advertising data parameters return a bool value.
This bool indicates whether the parameter has been correctly set or not, depending on the size of the passed value.
A remaining length parameter of advertising data has been introduced. It can be publicly read, it indicates how many bytes can be still written into the packet.
In BLELocalDevice constructor, the flags field of the advertising data is set to a default value.
If a new advertising data is passed to BLELocalDevice, then:
     if it has no flags -> default flags are set (if there is enough space)
     if it already has flags -> nothing happens, the already set flags are used
Add raw data class.
When an AdvertisingData object has a rawData parameter set, the only advertised data will be the rawData parameter itself.
If the new value for the parameter is not valid, because too large, then
the old value will remain the actual value of the parameter.
This change is needed for mocking BLE classes in the CI environment
This change allows fake classes to override methods during unit testing.
This change allows to implement and use fake objects during unit testing
Classes to be mocked will be extended by fake classes. Each fake class will define a fake singleton instance
Each class under test will have a dedicated test file.
Each test file is placed in a dedicated folder in extras/test/src . Such dedicated folder will also contain the mock (Fake) objects needed by the test.
Finally, an executable file will be generated for each test.
…ies#101)

Peripherals having the supervision timeout set will execute a parameter update request when some central tries to connect to them.
Allowed supervisionTimeout value range: 0x000A to 0x0C80
Actual Timeout: (supervisionTimeout * 10 ms)
Warning: supervision timeout in milliseconds shall be larger than : (1 + Connection_Latency) * Connection_Interval_Max * 2, where Connection_Interval_Max is given in milliseconds.

Example scenario:
- peripheral has supervision timeout set to 1000 -> (actual timeout = 1000 * 10ms)
- central connects to the peripheral with a supervision timeout of 200.
- peripheral execute a parameter update request, putting supervision timeout at 1000.
- central eventually updates the connection parameters accordingly and sends a response containing the result of the update.
dependabot bot and others added 30 commits April 11, 2022 09:39
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2 to 3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](actions/upload-artifact@v2...v3)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
…dabot/github_actions/actions/upload-artifact-3

Bump actions/upload-artifact from 2 to 3
…dabot/github_actions/actions/download-artifact-3

Bump actions/download-artifact from 2 to 3
Bullet points in ### Parameters and ### Returns.
…-advertising

Add enhanced advertising examples
Bugfix: memory leak caused by variables not being deleted in end()
Kindly See the Docs, https://www.bluetooth.com/specifications/specs/core-specification-4-2/
In Pg. No: 1316/2772, you Can See "7.8.26 LE Long Term Key Request Negative Reply Command".
Kindly See the OFC Code, it is 0x001B.
Bumps [geekyeggo/delete-artifact](https://github.com/geekyeggo/delete-artifact) from 1 to 2.
- [Release notes](https://github.com/geekyeggo/delete-artifact/releases)
- [Commits](GeekyEggo/delete-artifact@v1...v2)

---
updated-dependencies:
- dependency-name: geekyeggo/delete-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [carlosperate/download-file-action](https://github.com/carlosperate/download-file-action) from 1 to 2.
- [Release notes](https://github.com/carlosperate/download-file-action/releases)
- [Commits](carlosperate/download-file-action@v1...v2)

---
updated-dependencies:
- dependency-name: carlosperate/download-file-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
…losperate/download-file-action-2

Bump carlosperate/download-file-action from 1 to 2
…kyeggo/delete-artifact-2

Bump geekyeggo/delete-artifact from 1 to 2
Previously write would hang forever waiting for nina cts pin to go low.
Also on failure during begin, BLELocalDevice would tell HCI to end(), before it
had called begin(), so it was dereferencing null pointers to service classes
which was also crashing things.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.