carp_client/carp_core_client library

This is the runtime which performs the actual data collection on a device (e.g., desktop computer or smartphone). This subsystem contains reusable components which understand the runtime configuration derived from a study protocol by the ‘deployment’ subsystem. Integrations with sensors are loaded through a 'device data collector' plug-in system to decouple sensing — not part of core — from sensing logic.

ClientManager is the main entry point into this subsystem. Concrete devices extend on it, e.g., the SmartphoneClient manages data collection on a smartphone and is implemented in CARP Mobile Sensing.

Contains the core client classes like ClientManager, DeviceDataCollectorFactory, DeviceDataCollector, and StudyRuntime.

See the carp.clients definition in Kotlin.

Classes

ClientManager
Allows managing StudyRuntimes on a client device.
DataManager
The DataManager interface is used to upload DataPoint data to any data manager that implements this interface.
DataManagerEvent
An event for a data manager.
DataManagerEventTypes
An enumeration of data manager event types.
DeviceDataCollector<TDeviceRegistration, TDeviceDescriptor>
Collects Data for a single device.
DeviceDataCollectorFactory
Supports creating and holding a registry of DeviceDataCollectors for devices.
Study
A study deployment, identified by studyDeploymentId, which a client device participates in with the role deviceRoleName.
StudyRuntime
Manage data collection for a specific master device deployment on a client device.

Enums

StudyStatus
Describes the possible status' of a StudyRuntime.