Kallisto Linux API
Library for interacting with Kallisto devices
|
#include <kallisto_sensor.hpp>
Public Member Functions | |
virtual | ~KallistoSensor () |
KallistoSensor (KallistoSensor const &)=delete | |
void | operator= (KallistoSensor const &)=delete |
Public Member Functions inherited from SensorImpl | |
virtual | ~SensorImpl () |
SensorImpl (SensorImpl const &)=delete | |
SensorImpl (SensorImpl &&)=delete | |
void | operator= (SensorImpl const &)=delete |
void | operator= (SensorImpl &&)=delete |
error::KallistoDetailedResult | registerListener (std::map< std::string, const void *> parameters, SensorEventListener &listener) |
error::KallistoDetailedResult | unregisterListener (SensorEventListener &listener) |
bool | getEnabled () |
void | onLinkLoss () |
error::KallistoDetailedResult | onLinkRecovered () |
Public Member Functions inherited from Sensor | |
unsigned int | getHandle () const |
std::string | getName () const |
std::string | getAddress () const |
std::string | getVendor () const |
unsigned int | getVersion () const |
SensorType | getType () const |
std::string | getStringType () const |
ReportingMode | getReportingMode () const |
unsigned int | getIdentifier () const |
float | getMaximumRange () const |
float | getResolution () const |
float | getPower () const |
std::chrono::microseconds | getMinDelay () const |
std::chrono::microseconds | getMaxDelay () const |
std::string | toString () |
bool | operator== (const Sensor &other) const |
bool | operator!= (const Sensor &other) const |
Protected Member Functions | |
KallistoSensor (std::string name, std::string address, std::string vendor, unsigned int version, SensorType type, std::string string_type, ReportingMode reporting_mode, unsigned int identifier, float max_range, float resolution, float power, std::chrono::microseconds min_delay, std::chrono::microseconds max_delay, util::Executor &event_dispatcher, bluetooth::BluetoothDispatcher &bluetooth_dispatcher, TimeSynchronizer *sensor_synchronizer, std::string service_uuid, std::string configuration_char_uuid, std::string data_char_uuid) | |
error::KallistoDetailedResult | start (std::map< std::string, const void *> parameters, InternalSensorEventListener internal_listener) |
error::KallistoDetailedResult | update (std::map< std::string, const void *> parameters) |
std::map< std::string, const void * > | getParameters () |
error::KallistoDetailedResult | stop (bool link_loss) |
void | onNotification (std::string address, std::string service_uuid, std::string characteristic_uuid, const std::vector< unsigned char > &values) |
virtual std::vector< unsigned char > | parseConfiguration (bool enable, std::chrono::microseconds delay)=0 |
virtual std::vector< SensorEvent > | parseData (const std::vector< unsigned char > &data)=0 |
Protected Member Functions inherited from SensorImpl | |
SensorImpl (std::string name, std::string address, std::string vendor, unsigned int version, SensorType type, std::string string_type, ReportingMode reporting_mode, unsigned int identifier, float max_range, float resolution, float power, std::chrono::microseconds min_delay, std::chrono::microseconds max_delay, util::Executor &event_dispatcher, bluetooth::BluetoothDispatcher &bluetooth_dispatcher, TimeSynchronizer *sensor_synchronizer) | |
Protected Member Functions inherited from Sensor | |
Sensor (unsigned int handle, std::string name, std::string address, std::string vendor, unsigned int version, SensorType type, std::string string_type, ReportingMode reporting_mode, unsigned int identifier, float max_range, float resolution, float power, std::chrono::microseconds min_delay, std::chrono::microseconds max_delay) | |
virtual | ~Sensor () |
Sensor (Sensor const &)=delete | |
Sensor (Sensor &&)=delete | |
void | operator= (Sensor const &)=delete |
void | operator= (Sensor &&)=delete |
Protected Member Functions inherited from BluetoothDispatcher::NotificationListener | |
NotificationListener () | |
virtual | ~NotificationListener () |
NotificationListener (NotificationListener const &)=delete | |
NotificationListener (NotificationListener &&)=delete | |
void | operator= (NotificationListener const &)=delete |
void | operator= (NotificationListener &&)=delete |
Protected Attributes | |
std::string | m_service_uuid |
std::string | m_configuration_char_uuid |
std::string | m_data_char_uuid |
std::chrono::microseconds | m_delay |
InternalSensorEventListener | m_listener |
Protected Attributes inherited from SensorImpl | |
bool | m_link_loss |
bluetooth::BluetoothDispatcher & | m_bluetooth_dispatcher |
TimeSynchronizer * | m_sensor_synchronizer |
Protected Attributes inherited from Sensor | |
const unsigned int | m_handle |
const std::string | m_name |
const std::string | m_address |
const std::string | m_vendor |
const unsigned int | m_version |
const SensorType | m_type |
const std::string | m_string_type |
const ReportingMode | m_reporting_mode |
const unsigned int | m_identifier |
const float | m_max_range |
const float | m_resolution |
const float | m_power |
const std::chrono::microseconds | m_min_delay |
const std::chrono::microseconds | m_max_delay |
Additional Inherited Members | |
Public Types inherited from Sensor | |
enum | SensorType { ACCELEROMETER, MAGNETIC_FIELD, GYROSCOPE, PRESSURE, RELATIVE_HUMIDITY, AMBIENT_TEMPERATURE, BATTERY_SOC, BATTERY_CHARGING_STATUS, RSSI, ANALOG, CO2_CONCENTRATION, TVOC_CONCENTRATION } |
enum | ReportingMode { REPORTING_MODE_CONTINUOUS, REPORTING_MODE_ON_CHANGE, REPORTING_MODE_ONE_SHOT, REPORTING_MODE_SPECIAL_TRIGGER } |
Static Public Member Functions inherited from SensorImpl | |
static unsigned int | generateHandle () |
static const std::string & | KEY_DELAY () |
static unsigned char | getTypeFromManufacturerData (unsigned char byte) |
static unsigned char | getIdFromManufacturerData (unsigned char byte) |
Static Public Member Functions inherited from Sensor | |
static unsigned int | getValueArraySize (SensorType type) |
Class that implements a Kallisto Sensor. The HAL communication is almost the same for all sensors so they are all subclasses of this class.
|
protected |
Constructor.
|
virtual |
Destructor.
|
delete |
Remove copy.
|
protectedvirtual |
Get the current configured parameters.
Implements SensorImpl.
|
protectedvirtual |
Called when there is a new notification of a characteristic.
address | The mac address of the device that generated this event. |
serviceUuid | The UUID of the service that contains the characteristic that generated this event. |
characteristicUuid | The UUID of the characteristic that generated this event. |
values | A byte buffer with the new values of the characteristics. |
Implements BluetoothDispatcher::NotificationListener.
|
delete |
Remove attribution.
|
protectedpure virtual |
Parses the passed delay into configuration to be sent to the device configuration characteristic. In the Kallistos HALs, the configuration is a single byte, where the LSB signals if the sensor should be enabled and the 3 MSB codify the sensor rate.
enable | If the sensor should be enabled or not. |
delay | The desired delay, in microseconds. |
Implemented in Ads1014Adc, Bme280Barometer, Bme280RelativeHumiditySensor, Bme280Thermometer, Bmi160Accelerometer, Bmi160Gyroscope, Bmi160Magnetometer, Ccs811Co2Sensor, and Ccs811TvocSensor.
|
protectedpure virtual |
Parses the received raw data into sensor events.
data | The received raw data. |
Implemented in Ads1014Adc, Bme280Barometer, Bme280RelativeHumiditySensor, Bme280Thermometer, Bmi160Accelerometer, Bmi160Gyroscope, Bmi160Magnetometer, Ccs811Co2Sensor, and Ccs811TvocSensor.
|
protectedvirtual |
Called when the sensor should be enabled and start reporting data.
parameters | Map of abstract parameters. The map follows a key/value structure where the key determines how the object should be parsed. |
internal_listener | All sensor events should be sent to this listener. |
Implements SensorImpl.
|
protectedvirtual |
Called when the sensor should be disabled and stop reporting data.
link_loss | True if the device is in link loss and there is no BLE connection. Should only clear data in this case. If it is false, BLE communication can be conducted to disable the sensor in the peripheral side. |
Implements SensorImpl.
|
protectedvirtual |
Called when when the sensor is already enabled and should update its' configurations.
parameters | Map of abstract parameters. The map follows a key/value structure where the key determines how the object should be parsed. |
Implements SensorImpl.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |