initialize method

  1. @override
Future<void> initialize(
  1. DataEndPoint dataEndPoint,
  2. SmartphoneDeployment deployment,
  3. Stream<Measurement> measurements
)
override

Initialize the data manager by specifying the study deployment, the dataEndPoint, and the stream of measurements events to handle.

Implementation

@override
Future<void> initialize(
  DataEndPoint dataEndPoint,
  SmartphoneDeployment deployment,
  Stream<Measurement> measurements,
) async {
  info("$runtimeType - Initializing, endpoint: $dataEndPoint");
  assert(dataEndPoint is CarpDataEndPoint);
  await super.initialize(dataEndPoint, deployment, measurements);
  carpEndPoint = dataEndPoint as CarpDataEndPoint;

  assert(CarpService().isConfigured,
      'CarpService is not configured -- cannot upload data to this end point.');

  buffer.initialize(deployment, measurements);

  // Set up a timer that uploads data on a regular basis
  uploadTimer = Timer.periodic(Duration(minutes: carpEndPoint.uploadInterval),
      (_) => uploadBufferedMeasurements());

  // listen to connectivity events
  Connectivity()
      .onConnectivityChanged
      .listen((status) => connectivity = status);

  if (!CarpDataStreamService().isConfigured) {
    CarpDataStreamService().configureFrom(CarpService());
  }
}