initialize method
Initializes the BITalinoController. Throws BITalinoErrorType.CONTROLLER_FAILED_INITIALIZE if the controller fails to initialize.
Throws BITalinoException(BITalinoErrorType.CONTROLLER_FAILED_INITIALIZE) if the controller failed to initialize. Throws BITalinoException(BITalinoErrorType.CONTROLLER_ALREADY_INITIALIZED) if the controller was already initialize before. Throws BITalinoException(BITalinoErrorType.CUSTOM) if a native exception was raised.
Implementation
Future<void> initialize() async {
late bool initialized;
try {
if (Platform.isAndroid) {
initialized = await _channel.invokeMethod(
"initialize", <String, dynamic>{
"type": serializeCommunicationType(communicationType)
}).timeout(timeout);
} else if (Platform.isIOS) {
initialized = await _channel.invokeMethod("initialize",
<String, dynamic>{"address": address}).timeout(timeout);
}
} on TimeoutException {
throw BITalinoException(BITalinoErrorType.TIMEOUT);
} catch (e) {
print(e.toString());
throw BITalinoException(BITalinoErrorType.CONTROLLER_FAILED_INITIALIZE);
}
if (!initialized)
throw BITalinoException(BITalinoErrorType.CONTROLLER_FAILED_INITIALIZE);
this.initialized = true;
const EventChannel bitalinoEventChannel =
EventChannel('com.afonsoraposo.bitalino/dataStream');
_dataStreamSubscription =
bitalinoEventChannel.receiveBroadcastStream().listen(
(dynamic bitalinoData) {
if (_onBITalinoDataAvailable != null)
_onBITalinoDataAvailable!(
BITalinoFrame._fromPlatformData(bitalinoData));
},
);
}