MeshManagerApi constructor
MeshManagerApi()
Implementation
MeshManagerApi() {
// initialize main event stream listener
_eventChannelStream =
_eventChannel.receiveBroadcastStream().cast<Map>().map((event) => event.cast<String, dynamic>());
if (kDebugMode) {
_eventChannelStream.doOnData((data) => debugPrint('$data'));
}
// network events
_onNetworkLoadedSubscription =
_onMeshNetworkEventSucceed(MeshManagerApiEvent.loaded).listen(_onNetworkLoadedStreamController.add);
_onNetworkImportedSubscription =
_onMeshNetworkEventSucceed(MeshManagerApiEvent.imported).listen(_onNetworkImportedController.add);
_onNetworkUpdatedSubscription =
_onMeshNetworkEventSucceed(MeshManagerApiEvent.updated).listen(_onNetworkUpdatedController.add);
_onNetworkLoadFailedSubscription =
_onMeshNetworkEventFailed(MeshManagerApiEvent.loadFailed).listen(_onNetworkLoadedStreamController.addError);
_onNetworkImportFailedSubscription =
_onMeshNetworkEventFailed(MeshManagerApiEvent.importFailed).listen(_onNetworkImportedController.addError);
// pdu events
_onMeshPduCreatedSubscription = _eventChannelStream
.where((event) => event['eventName'] == MeshManagerApiEvent.meshPduCreated.value)
.map((event) => event['pdu'] as List)
.map((event) => event.cast<int>())
.listen(_onMeshPduCreatedController.add);
_sendProvisioningPduSubscription = _eventChannelStream
.where((event) => event['eventName'] == MeshManagerApiEvent.sendProvisioningPdu.value)
.map((event) => SendProvisioningPduData.fromJson(event))
.listen(_sendProvisioningPduController.add);
// provisioning events
_onProvisioningStateChangedSubscription = _eventChannelStream
.where((event) => event['eventName'] == MeshManagerApiEvent.provisioningStateChanged.value)
.map((event) => MeshProvisioningStatusData.fromJson(event))
.listen(_onProvisioningStateChangedController.add);
_onProvisioningCompletedSubscription = _eventChannelStream
.where((event) => event['eventName'] == MeshManagerApiEvent.provisioningCompleted.value)
.map((event) => MeshProvisioningCompletedData.fromJson(event))
.listen(_onProvisioningCompletedController.add);
_onProvisioningFailedSubscription = _eventChannelStream
.where((event) => event['eventName'] == MeshManagerApiEvent.provisioningFailed.value)
.map((event) => MeshProvisioningStatusData.fromJson(event))
.listen(_onProvisioningFailedController.add);
// mesh status events
_onConfigCompositionDataStatusSubscription = _eventChannelStream
.where((event) => event['eventName'] == MeshManagerApiEvent.configCompositionDataStatus.value)
.map((event) => ConfigCompositionDataStatusData.fromJson(event))
.listen(_onConfigCompositionDataStatusController.add);
_onConfigAppKeyStatusSubscription = _eventChannelStream
.where((event) => event['eventName'] == MeshManagerApiEvent.configAppKeyStatus.value)
.map((event) => ConfigAppKeyStatusData.fromJson(event))
.listen(_onConfigAppKeyStatusController.add);
_onGenericLevelStatusSubscription = _eventChannelStream
.where((event) => event['eventName'] == MeshManagerApiEvent.genericLevelStatus.value)
.map((event) => GenericLevelStatusData.fromJson(event))
.listen(_onGenericLevelStatusController.add);
_onGenericOnOffStatusSubscription = _eventChannelStream
.where((event) => event['eventName'] == MeshManagerApiEvent.genericOnOffStatus.value)
.map((event) => GenericOnOffStatusData.fromJson(event))
.listen(_onGenericOnOffStatusController.add);
_onDoozScenarioStatusSubscription = _eventChannelStream
.where((event) => event['eventName'] == MeshManagerApiEvent.doozScenarioStatus.value)
.map((event) => DoozScenarioStatusData.fromJson(event))
.listen(_onDoozScenarioStatusController.add);
_onDoozEpochStatusSubscription = _eventChannelStream
.where((event) => event['eventName'] == MeshManagerApiEvent.doozEpochStatus.value)
.map(_onRawDoozEpochStatus)
.listen(_onDoozEpochStatusController.add);
_onV2MagicLevelSetStatusSubscription = _eventChannelStream
.where((event) => event['eventName'] == MeshManagerApiEvent.v2MagicLevelSetStatus.value)
.map((event) => MagicLevelSetStatusData.fromJson(event))
.listen(_onV2MagicLevelSetStatusController.add);
_onV2MagicLevelGetStatusSubscription = _eventChannelStream
.where((event) => event['eventName'] == MeshManagerApiEvent.v2MagicLevelGetStatus.value)
.map((event) => MagicLevelGetStatusData.fromJson(event))
.listen(_onV2MagicLevelGetStatusController.add);
_onLightLightnessStatusSubscription = _eventChannelStream
.where((event) => event['eventName'] == MeshManagerApiEvent.lightLightnessStatus.value)
.map((event) => LightLightnessStatusData.fromJson(event))
.listen(_onLightLightnessStatusController.add);
_onLightCtlStatusSubscription = _eventChannelStream
.where((event) => event['eventName'] == MeshManagerApiEvent.lightCtlStatus.value)
.map((event) => LightCtlStatusData.fromJson(event))
.listen(_onLightCtlStatusController.add);
_onLightHslStatusSubscription = _eventChannelStream
.where((event) => event['eventName'] == MeshManagerApiEvent.lightHslStatus.value)
.map((event) => LightHslStatusData.fromJson(event))
.listen(_onLightHslStatusController.add);
_onConfigModelAppStatusSubscription = _eventChannelStream
.where((event) => event['eventName'] == MeshManagerApiEvent.configModelAppStatus.value)
.map((event) => ConfigModelAppStatusData.fromJson(event))
.listen(_onConfigModelAppStatusController.add);
_onConfigModelSubscriptionStatusSubscription = _eventChannelStream
.where((event) => event['eventName'] == MeshManagerApiEvent.configModelSubscriptionStatus.value)
.map((event) => ConfigModelSubscriptionStatus.fromJson(event))
.listen(_onConfigModelSubscriptionStatusController.add);
_onConfigModelPublicationStatusSubscription = _eventChannelStream
.where((event) => event['eventName'] == MeshManagerApiEvent.configModelPublicationStatus.value)
.map((event) => ConfigModelPublicationStatus.fromJson(event))
.listen(_onConfigModelPublicationStatusController.add);
_onConfigNodeResetStatusSubscription = _eventChannelStream
.where((event) => event['eventName'] == MeshManagerApiEvent.configNodeResetStatus.value)
.map((event) => ConfigNodeResetStatus.fromJson(event))
.listen(_onConfigNodeResetStatusController.add);
_onConfigNetworkTransmitStatusSubscription = _eventChannelStream
.where((event) => event['eventName'] == MeshManagerApiEvent.configNetworkTransmitStatus.value)
.map((event) => ConfigNetworkTransmitStatus.fromJson(event))
.listen(_onConfigNetworkTransmitStatusController.add);
_onConfigDefaultTtlStatusSubscription = _eventChannelStream
.where((event) => event['eventName'] == MeshManagerApiEvent.configDefaultTtlStatus.value)
.map((event) => ConfigDefaultTtlStatus.fromJson(event))
.listen(_onConfigDefaultTtlStatusController.add);
_onConfigKeyRefreshPhaseStatusSubscription = _eventChannelStream
.where((event) => event['eventName'] == MeshManagerApiEvent.configKeyRefreshPhaseStatus.value)
.map((event) => ConfigKeyRefreshPhaseStatus.fromJson(event))
.listen(_onConfigKeyRefreshPhaseStatusController.add);
_onConfigBeaconStatusSubscription = _eventChannelStream
.where((event) => event['eventName'] == MeshManagerApiEvent.configBeaconStatus.value)
.map((event) => ConfigBeaconStatus.fromJson(event))
.listen(_onConfigBeaconStatusController.add);
}