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.


ClientManager<TPrimaryDevice extends PrimaryDeviceConfiguration<TRegistration>, TRegistration extends DeviceRegistration>
Allows managing StudyRuntimes on a client device.
DeviceDataCollector<TDeviceConfiguration extends DeviceConfiguration<DeviceRegistration>>
Collects Data for a single device.
Supports creating and holding a registry of DeviceDataCollectors for devices.
Allows managing studies on a smartphone.
A study deployment, identified by studyDeploymentId, which a client device participates in with the role deviceRoleName.
StudyRuntime<TRegistration extends DeviceRegistration>
Manage data collection for a specific primary device deployment on a client device.


Describes the status of a Study.