Last updated:
0 purchases
bitalino
BITalino #
Open source Flutter plugin that integrates the communication with BITalino devices.
Made by Afonso Raposo.
See the an example app here.
Tested with BITalino Core BT (MCU+BT+PWR) and BITalino Core BLE/BT.
Currently supporting: #
This plugin uses the available native APIs available at https://bitalino.com/en/development/apis.
Plaftorm
Supported
Native Repository
Date
Android
✅
revolution-android-api
Jul 16, 2020
IOS
✅
BITalinoBLE-iOS
Jun 22, 2016
Installation #
Add this plugin to the pubspec.yaml file:
dependencies:
flutter:
sdk: flutter
bitalino: ^1.1.1 // add bitalino plugin
copied to clipboard
Android #
On Android, you must set the minSdkVersion to 18 (or higher) in your android/app/build.gradle file.
minSdkVersion 18
copied to clipboard
IOS #
On IOS, you have to add the following lines to the bottom of the /ios/Runner/Info.plist file:
<key>NSBluetoothAlwaysUsageDescription</key>
<string>This application needs access to bluetooth to communicate with BITalino device</string>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>This application needs access to BLE to communicate with BITalino device</string>
copied to clipboard
Examples #
Initialize controller #
Android #
On Android, the user must provide the device MAC address and can choose between BTH or BLE for communication protocols. If available, BTH is advised.
BITalinoController bitalinoController = BITalinoController(
"20:16:07:18:17:02",
CommunicationType.BTH,
);
try {
await bitalinoController.initialize();
} on PlatformException catch (Exception) {
print("Initialization failed: ${Exception.message}");
}
copied to clipboard
IOS #
On IOS, the user must provide the device UUID and can only use BLE regarding communication protocol.
The UUID can be found with this application: Bluetooth Smart Scanner .
On IOS, there is no frame identifier.
BITalinoController bitalinoController = BITalinoController(
"03A1C0AB-018F-5B39-9567-471DDE5B0322",
CommunicationType.BLE,
);
try {
await bitalinoController.initialize(
);
} on PlatformException catch (Exception) {
print("Initialization failed: ${Exception.message}");
}
copied to clipboard
Connect to device #
Connect to a device by providing its address.
await bitalinoController.connect(
onConnectionLost: () {
print("Connection lost");
},
)
copied to clipboard
Start acquisition #
Start acquiring analog channels: A0, A2, A4, and A5, with a Sampling Rate of 10Hz.
onDataAvailable is called everytime the application receives data during recording.
bool success = await bitalinoController.start(
[0, 2, 4, 5],
Frequency.HZ10,
onDataAvailable: (BITalinoFrame frame) {
print(frame.sequence); // [int]
print(frame.analog); // [List<int>]
print(frame.digital); // [List<int>]
},),
);
copied to clipboard
During acquisiton, the onDataAvailable callback is called.
Stop acquisition #
bool success = await bitalinoController.stop();
copied to clipboard
Get the device state #
Android #
BITalinoState state = await bitalinoController.state();
print(state.identifier); // [String]
print(state.battery); // [int]
print(state.batteryThreshold); // [int]
print(state.analog); // [List<int>]
print(state.digital); // [List<int>]
copied to clipboard
IOS #
This method is not available for IOS.
Disconnect from device #
bool success = await bitalinoController.disconnect();
copied to clipboard
Dispose controller #
When you're done using the controller, dispose it.
bool success = await bitalinoController.dispose();
copied to clipboard
More #
You can find all the information regarding this plugin on the API reference page.
Future #
If you have any suggestion or problem, let me know and I'll try to improve or fix it.
Also, feel free to contribute to this project! :)
License #
GNU General Public License v3.0, see the LICENSE.md file for details.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.