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);
}