Kallisto Linux API
Library for interacting with Kallisto devices
RssiSensor Class Reference
Inheritance diagram for RssiSensor:
Collaboration diagram for RssiSensor:

Public Member Functions

 ~RssiSensor ()
 
 RssiSensor (RssiSensor const &)=delete
 
void operator= (RssiSensor 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
 

Static Public Member Functions

static std::vector< std::unique_ptr< SensorImpl > > build (std::string address, util::Executor &event_dispatcher, bluetooth::BluetoothDispatcher &bluetooth_dispatcher, const std::map< uint16_t, std::vector< uint8_t > > &manufacturer_data)
 
- 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)
 

Protected Member Functions

 RssiSensor (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)
 
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 startWorker ()
 
- 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
 

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 }
 
- Protected Attributes inherited from SensorImpl
bool m_link_loss
 
bluetooth::BluetoothDispatcherm_bluetooth_dispatcher
 
TimeSynchronizerm_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
 

Constructor & Destructor Documentation

◆ RssiSensor() [1/2]

RssiSensor ( 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 
)
protected

Constructor.

◆ ~RssiSensor()

~RssiSensor ( )

Destructor.

◆ RssiSensor() [2/2]

RssiSensor ( RssiSensor const &  )
delete

Remove copy.

Member Function Documentation

◆ build()

static std::vector<std::unique_ptr<SensorImpl> > build ( std::string  address,
util::Executor event_dispatcher,
bluetooth::BluetoothDispatcher bluetooth_dispatcher,
const std::map< uint16_t, std::vector< uint8_t > > &  manufacturer_data 
)
static

Builds the instances of the RSSI sensor. This sensor always exists.

Parameters
addressThe MAC address of the device under discovery.
event_dispatcherSensor event dispatcher.
bluetooth_dispatcherBLE operations dispatcher.
manufacturer_dataThe advertised manufacturer data of the device. Each key represents an company ID and each value is a byte array of the service data.
Returns
A list of Sensors.

◆ getParameters()

std::map<std::string, const void*> getParameters ( )
protectedvirtual

Get the current configured parameters.

Returns
The current configured parameter map.

Implements SensorImpl.

◆ operator=()

void operator= ( RssiSensor const &  )
delete

Remove attribution.

◆ start()

error::KallistoDetailedResult start ( std::map< std::string, const void *>  parameters,
InternalSensorEventListener  internal_listener 
)
protectedvirtual

Called when the sensor should be enabled and start reporting data.

See also
registerListener for parameter informations.
Parameters
parametersMap of abstract parameters. The map follows a key/value structure where the key determines how the object should be parsed.
internal_listenerAll sensor events should be sent to this listener.
Returns
A detailed result.

Implements SensorImpl.

◆ startWorker()

void startWorker ( )
protected

Starts the RSSI reader.

◆ stop()

error::KallistoDetailedResult stop ( bool  link_loss)
protectedvirtual

Called when the sensor should be disabled and stop reporting data.

Parameters
link_lossTrue 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.
Returns
A detailed result.

Implements SensorImpl.

◆ update()

error::KallistoDetailedResult update ( std::map< std::string, const void *>  parameters)
protectedvirtual

Called when when the sensor is already enabled and should update its' configurations.

See also
registerListener for parameter informations.
Parameters
parametersMap of abstract parameters. The map follows a key/value structure where the key determines how the object should be parsed.
Returns
A detailed result.

Implements SensorImpl.


The documentation for this class was generated from the following file: