mirror of
https://github.com/nymea/nymea-plugins.git
synced 2026-07-19 00:54:53 +02:00
Move sensor settings to deviceclass
This commit is contained in:
parent
431d56d366
commit
f40692adf2
@ -59,8 +59,6 @@ DevicePluginMultiSensor::~DevicePluginMultiSensor()
|
||||
|
||||
void DevicePluginMultiSensor::init()
|
||||
{
|
||||
connect(this, &DevicePluginMultiSensor::configValueChanged, this, &DevicePluginMultiSensor::onPluginConfigurationChanged);
|
||||
|
||||
m_reconnectTimer = hardwareManager()->pluginTimerManager()->registerTimer(10);
|
||||
connect(m_reconnectTimer, &PluginTimer::timeout, this, &DevicePluginMultiSensor::onPluginTimer);
|
||||
}
|
||||
@ -69,7 +67,7 @@ DeviceManager::DeviceError DevicePluginMultiSensor::discoverDevices(const Device
|
||||
{
|
||||
Q_UNUSED(params)
|
||||
|
||||
if (deviceClassId != sensortagDeviceClassId)
|
||||
if (deviceClassId != sensorTagDeviceClassId)
|
||||
return DeviceManager::DeviceErrorDeviceClassNotFound;
|
||||
|
||||
if (!hardwareManager()->bluetoothLowEnergyManager()->available())
|
||||
@ -87,26 +85,15 @@ DeviceManager::DeviceSetupStatus DevicePluginMultiSensor::setupDevice(Device *de
|
||||
{
|
||||
qCDebug(dcMultiSensor) << "Setting up Multi Sensor" << device->name() << device->params();
|
||||
|
||||
if (device->deviceClassId() == sensortagDeviceClassId) {
|
||||
if (device->deviceClassId() == sensorTagDeviceClassId) {
|
||||
|
||||
QBluetoothAddress address = QBluetoothAddress(device->paramValue(sensortagMacParamTypeId).toString());
|
||||
QString name = device->paramValue(sensortagNameParamTypeId).toString();
|
||||
QBluetoothAddress address = QBluetoothAddress(device->paramValue(sensorTagMacParamTypeId).toString());
|
||||
QString name = device->paramValue(sensorTagNameParamTypeId).toString();
|
||||
QBluetoothDeviceInfo deviceInfo = QBluetoothDeviceInfo(address, name, 0);
|
||||
|
||||
BluetoothLowEnergyDevice *bluetoothDevice = hardwareManager()->bluetoothLowEnergyManager()->registerDevice(deviceInfo, QLowEnergyController::PublicAddress);
|
||||
|
||||
SensorTag *sensor = new SensorTag(device, bluetoothDevice, this);
|
||||
// Preconfigure with plugin configurations
|
||||
sensor->setTemperatureSensorEnabled(configValue(MultiSensorTemperatureEnabledParamTypeId).toBool());
|
||||
sensor->setHumiditySensorEnabled(configValue(MultiSensorHumidityEnabledParamTypeId).toBool());
|
||||
sensor->setPressureSensorEnabled(configValue(MultiSensorPressureEnabledParamTypeId).toBool());
|
||||
sensor->setOpticalSensorEnabled(configValue(MultiSensorOpticalEnabledParamTypeId).toBool());
|
||||
sensor->setAccelerometerEnabled(configValue(MultiSensorAccelerometerEnabledParamTypeId).toBool());
|
||||
sensor->setGyroscopeEnabled(configValue(MultiSensorGyroscopeEnabledParamTypeId).toBool());
|
||||
sensor->setMagnetometerEnabled(configValue(MultiSensorMagnetometerEnabledParamTypeId).toBool());
|
||||
sensor->setMeasurementPeriod(configValue(MultiSensorMeasurementPeriodParamTypeId).toInt());
|
||||
sensor->setMeasurementPeriodMovement(configValue(MultiSensorMeasurementPeriodMovementParamTypeId).toInt());
|
||||
|
||||
m_sensors.insert(device, sensor);
|
||||
|
||||
return DeviceManager::DeviceSetupStatusSuccess;
|
||||
@ -118,6 +105,19 @@ void DevicePluginMultiSensor::postSetupDevice(Device *device)
|
||||
{
|
||||
// Try to connect right after setup
|
||||
SensorTag *sensor = m_sensors.value(device);
|
||||
|
||||
// Configure sensor with state configurations
|
||||
sensor->setTemperatureSensorEnabled(device->stateValue(sensorTagTemperatureSensorEnabledStateTypeId).toBool());
|
||||
sensor->setHumiditySensorEnabled(device->stateValue(sensorTagHumiditySensorEnabledStateTypeId).toBool());
|
||||
sensor->setPressureSensorEnabled(device->stateValue(sensorTagPressureSensorEnabledStateTypeId).toBool());
|
||||
sensor->setOpticalSensorEnabled(device->stateValue(sensorTagOpticalSensorEnabledStateTypeId).toBool());
|
||||
sensor->setAccelerometerEnabled(device->stateValue(sensorTagAccelerometerEnabledStateTypeId).toBool());
|
||||
sensor->setGyroscopeEnabled(device->stateValue(sensorTagGyroscopeEnabledStateTypeId).toBool());
|
||||
sensor->setMagnetometerEnabled(device->stateValue(sensorTagMagnetometerEnabledStateTypeId).toBool());
|
||||
sensor->setMeasurementPeriod(device->stateValue(sensorTagMeasurementPeriodStateTypeId).toInt());
|
||||
sensor->setMeasurementPeriodMovement(device->stateValue(sensorTagMeasurementPeriodMovementStateTypeId).toInt());
|
||||
|
||||
// Connect to the sensor
|
||||
sensor->bluetoothDevice()->connectDevice();
|
||||
}
|
||||
|
||||
@ -135,18 +135,68 @@ void DevicePluginMultiSensor::deviceRemoved(Device *device)
|
||||
DeviceManager::DeviceError DevicePluginMultiSensor::executeAction(Device *device, const Action &action)
|
||||
{
|
||||
SensorTag *sensor = m_sensors.value(device);
|
||||
if (action.actionTypeId() == sensortagBuzzerActionTypeId) {
|
||||
sensor->setBuzzerPower(action.param(sensortagBuzzerStateParamTypeId).value().toBool());
|
||||
if (action.actionTypeId() == sensorTagBuzzerActionTypeId) {
|
||||
sensor->setBuzzerPower(action.param(sensorTagBuzzerStateParamTypeId).value().toBool());
|
||||
return DeviceManager::DeviceErrorNoError;
|
||||
} else if (action.actionTypeId() == sensortagGreenLedActionTypeId) {
|
||||
sensor->setGreenLedPower(action.param(sensortagGreenLedStateParamTypeId).value().toBool());
|
||||
} else if (action.actionTypeId() == sensorTagGreenLedActionTypeId) {
|
||||
sensor->setGreenLedPower(action.param(sensorTagGreenLedStateParamTypeId).value().toBool());
|
||||
return DeviceManager::DeviceErrorNoError;
|
||||
} else if (action.actionTypeId() == sensortagRedLedActionTypeId) {
|
||||
sensor->setRedLedPower(action.param(sensortagRedLedStateParamTypeId).value().toBool());
|
||||
} else if (action.actionTypeId() == sensorTagRedLedActionTypeId) {
|
||||
sensor->setRedLedPower(action.param(sensorTagRedLedStateParamTypeId).value().toBool());
|
||||
return DeviceManager::DeviceErrorNoError;
|
||||
} else if (action.actionTypeId() == sensortagBuzzerImpulseActionTypeId) {
|
||||
} else if (action.actionTypeId() == sensorTagBuzzerImpulseActionTypeId) {
|
||||
sensor->buzzerImpulse();
|
||||
return DeviceManager::DeviceErrorNoError;
|
||||
} else if (action.actionTypeId() == sensorTagTemperatureSensorEnabledActionTypeId) {
|
||||
bool enabled = action.param(sensorTagTemperatureSensorEnabledStateParamTypeId).value().toBool();
|
||||
device->setStateValue(sensorTagTemperatureSensorEnabledStateTypeId, enabled);
|
||||
sensor->setTemperatureSensorEnabled(enabled);
|
||||
return DeviceManager::DeviceErrorNoError;
|
||||
} else if (action.actionTypeId() == sensorTagHumiditySensorEnabledActionTypeId) {
|
||||
bool enabled = action.param(sensorTagHumiditySensorEnabledStateParamTypeId).value().toBool();
|
||||
device->setStateValue(sensorTagHumiditySensorEnabledStateTypeId, enabled);
|
||||
sensor->setHumiditySensorEnabled(enabled);
|
||||
return DeviceManager::DeviceErrorNoError;
|
||||
} else if (action.actionTypeId() == sensorTagPressureSensorEnabledActionTypeId) {
|
||||
bool enabled = action.param(sensorTagPressureSensorEnabledStateParamTypeId).value().toBool();
|
||||
device->setStateValue(sensorTagPressureSensorEnabledStateTypeId, enabled);
|
||||
sensor->setPressureSensorEnabled(enabled);
|
||||
return DeviceManager::DeviceErrorNoError;
|
||||
} else if (action.actionTypeId() == sensorTagOpticalSensorEnabledActionTypeId) {
|
||||
bool enabled = action.param(sensorTagOpticalSensorEnabledStateParamTypeId).value().toBool();
|
||||
device->setStateValue(sensorTagOpticalSensorEnabledStateTypeId, enabled);
|
||||
sensor->setOpticalSensorEnabled(enabled);
|
||||
return DeviceManager::DeviceErrorNoError;
|
||||
} else if (action.actionTypeId() == sensorTagAccelerometerEnabledActionTypeId) {
|
||||
bool enabled = action.param(sensorTagAccelerometerEnabledStateParamTypeId).value().toBool();
|
||||
device->setStateValue(sensorTagAccelerometerEnabledStateTypeId, enabled);
|
||||
sensor->setAccelerometerEnabled(enabled);
|
||||
return DeviceManager::DeviceErrorNoError;
|
||||
} else if (action.actionTypeId() == sensorTagGyroscopeEnabledActionTypeId) {
|
||||
bool enabled = action.param(sensorTagGyroscopeEnabledStateParamTypeId).value().toBool();
|
||||
device->setStateValue(sensorTagGyroscopeEnabledStateTypeId, enabled);
|
||||
sensor->setGyroscopeEnabled(enabled);
|
||||
return DeviceManager::DeviceErrorNoError;
|
||||
} else if (action.actionTypeId() == sensorTagMagnetometerEnabledActionTypeId) {
|
||||
bool enabled = action.param(sensorTagMagnetometerEnabledStateParamTypeId).value().toBool();
|
||||
device->setStateValue(sensorTagMagnetometerEnabledStateTypeId, enabled);
|
||||
sensor->setMagnetometerEnabled(enabled);
|
||||
return DeviceManager::DeviceErrorNoError;
|
||||
} else if (action.actionTypeId() == sensorTagMeasurementPeriodActionTypeId) {
|
||||
int period = action.param(sensorTagMeasurementPeriodStateParamTypeId).value().toInt();
|
||||
device->setStateValue(sensorTagMeasurementPeriodStateTypeId, period);
|
||||
sensor->setMeasurementPeriod(period);
|
||||
return DeviceManager::DeviceErrorNoError;
|
||||
} else if (action.actionTypeId() == sensorTagMeasurementPeriodMovementActionTypeId) {
|
||||
int period = action.param(sensorTagMeasurementPeriodMovementStateParamTypeId).value().toInt();
|
||||
device->setStateValue(sensorTagMeasurementPeriodMovementStateTypeId, period);
|
||||
sensor->setMeasurementPeriodMovement(period);
|
||||
return DeviceManager::DeviceErrorNoError;
|
||||
} else if (action.actionTypeId() == sensorTagMovementSensitivityActionTypeId) {
|
||||
int sensitivity = action.param(sensorTagMovementSensitivityStateParamTypeId).value().toInt();
|
||||
device->setStateValue(sensorTagMovementSensitivityStateTypeId, sensitivity);
|
||||
sensor->setMovementSensitivity(sensitivity);
|
||||
return DeviceManager::DeviceErrorNoError;
|
||||
}
|
||||
|
||||
return DeviceManager::DeviceErrorActionTypeNotFound;
|
||||
@ -155,7 +205,7 @@ DeviceManager::DeviceError DevicePluginMultiSensor::executeAction(Device *device
|
||||
bool DevicePluginMultiSensor::verifyExistingDevices(const QBluetoothDeviceInfo &deviceInfo)
|
||||
{
|
||||
foreach (Device *device, m_sensors.keys()) {
|
||||
if (device->paramValue(sensortagMacParamTypeId).toString() == deviceInfo.address().toString())
|
||||
if (device->paramValue(sensorTagMacParamTypeId).toString() == deviceInfo.address().toString())
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -177,7 +227,7 @@ void DevicePluginMultiSensor::onBluetoothDiscoveryFinished()
|
||||
if (reply->error() != BluetoothDiscoveryReply::BluetoothDiscoveryReplyErrorNoError) {
|
||||
qCWarning(dcMultiSensor()) << "Bluetooth discovery error:" << reply->error();
|
||||
reply->deleteLater();
|
||||
emit devicesDiscovered(sensortagDeviceClassId, QList<DeviceDescriptor>());
|
||||
emit devicesDiscovered(sensorTagDeviceClassId, QList<DeviceDescriptor>());
|
||||
return;
|
||||
}
|
||||
|
||||
@ -185,10 +235,10 @@ void DevicePluginMultiSensor::onBluetoothDiscoveryFinished()
|
||||
foreach (const QBluetoothDeviceInfo &deviceInfo, reply->discoveredDevices()) {
|
||||
if (deviceInfo.name().contains("SensorTag")) {
|
||||
if (!verifyExistingDevices(deviceInfo)) {
|
||||
DeviceDescriptor descriptor(sensortagDeviceClassId, "Sensor Tag", deviceInfo.address().toString());
|
||||
DeviceDescriptor descriptor(sensorTagDeviceClassId, "Sensor Tag", deviceInfo.address().toString());
|
||||
ParamList params;
|
||||
params.append(Param(sensortagNameParamTypeId, deviceInfo.name()));
|
||||
params.append(Param(sensortagMacParamTypeId, deviceInfo.address().toString()));
|
||||
params.append(Param(sensorTagNameParamTypeId, deviceInfo.name()));
|
||||
params.append(Param(sensorTagMacParamTypeId, deviceInfo.address().toString()));
|
||||
descriptor.setParams(params);
|
||||
deviceDescriptors.append(descriptor);
|
||||
}
|
||||
@ -196,34 +246,5 @@ void DevicePluginMultiSensor::onBluetoothDiscoveryFinished()
|
||||
}
|
||||
|
||||
reply->deleteLater();
|
||||
emit devicesDiscovered(sensortagDeviceClassId, deviceDescriptors);
|
||||
}
|
||||
|
||||
void DevicePluginMultiSensor::onPluginConfigurationChanged(const ParamTypeId ¶mTypeId, const QVariant &value)
|
||||
{
|
||||
qCDebug(dcMultiSensor()) << "Plugin configuration changed" << paramTypeId.toString() << value;
|
||||
|
||||
foreach (SensorTag *sensor, m_sensors.values()) {
|
||||
if (paramTypeId == MultiSensorTemperatureEnabledParamTypeId) {
|
||||
sensor->setTemperatureSensorEnabled(value.toBool());
|
||||
} else if (paramTypeId == MultiSensorHumidityEnabledParamTypeId) {
|
||||
sensor->setHumiditySensorEnabled(value.toBool());
|
||||
} else if (paramTypeId == MultiSensorPressureEnabledParamTypeId) {
|
||||
sensor->setPressureSensorEnabled(value.toBool());
|
||||
} else if (paramTypeId == MultiSensorOpticalEnabledParamTypeId) {
|
||||
sensor->setOpticalSensorEnabled(value.toBool());
|
||||
} else if (paramTypeId == MultiSensorAccelerometerEnabledParamTypeId) {
|
||||
sensor->setAccelerometerEnabled(value.toBool());
|
||||
} else if (paramTypeId == MultiSensorGyroscopeEnabledParamTypeId) {
|
||||
sensor->setGyroscopeEnabled(value.toBool());
|
||||
} else if (paramTypeId == MultiSensorMagnetometerEnabledParamTypeId) {
|
||||
sensor->setMagnetometerEnabled(value.toBool());
|
||||
} else if (paramTypeId == MultiSensorMeasurementPeriodParamTypeId) {
|
||||
sensor->setMeasurementPeriod(value.toInt());
|
||||
} else if (paramTypeId == MultiSensorMeasurementPeriodParamTypeId) {
|
||||
sensor->setMeasurementPeriodMovement(value.toInt());
|
||||
} else if (paramTypeId == MultiSensorMovementSensitivityParamTypeId) {
|
||||
sensor->setMovementSensitivity(value.toInt());
|
||||
}
|
||||
}
|
||||
emit devicesDiscovered(sensorTagDeviceClassId, deviceDescriptors);
|
||||
}
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* *
|
||||
* Copyright (C) 2015-2018 Simon Stuerz <simon.stuerz@guh.io> *
|
||||
* Copyright (C) 2016 nicc *
|
||||
* *
|
||||
* This file is part of nymea. *
|
||||
* *
|
||||
@ -60,7 +59,7 @@ private:
|
||||
private slots:
|
||||
void onPluginTimer();
|
||||
void onBluetoothDiscoveryFinished();
|
||||
void onPluginConfigurationChanged(const ParamTypeId ¶mTypeId, const QVariant &value);
|
||||
|
||||
};
|
||||
|
||||
#endif // DEVICEPLUGINMULTISENSOR_H
|
||||
|
||||
@ -1,86 +1,7 @@
|
||||
{
|
||||
"displayName": "MultiSensor",
|
||||
"displayName": "Multi Sensor",
|
||||
"name": "MultiSensor",
|
||||
"id": "23bf0d8d-df7d-4bee-80ee-f015c5a7f52e",
|
||||
"paramTypes": [
|
||||
{
|
||||
"id": "6f0e40a2-0f97-4c1e-8229-757e3c18b345",
|
||||
"name": "temperatureEnabled",
|
||||
"displayName": "Temperature sensor enabled",
|
||||
"type": "bool",
|
||||
"defaultValue": true
|
||||
},
|
||||
{
|
||||
"id": "29881172-626a-42d5-83b8-3e2e5ca533be",
|
||||
"name": "humidityEnabled",
|
||||
"displayName": "Humidity sensor enabled",
|
||||
"type": "bool",
|
||||
"defaultValue": true
|
||||
},
|
||||
{
|
||||
"id": "50e5e282-9707-4b31-bb3f-a6ca30a7e1ff",
|
||||
"name": "pressureEnabled",
|
||||
"displayName": "Pressure sensor enabled",
|
||||
"type": "bool",
|
||||
"defaultValue": true
|
||||
},
|
||||
{
|
||||
"id": "1460a6d6-9fb4-4385-b27b-ee4b7594e454",
|
||||
"name": "opticalEnabled",
|
||||
"displayName": "Optical sensor enabled",
|
||||
"type": "bool",
|
||||
"defaultValue": true
|
||||
},
|
||||
{
|
||||
"id": "5786c91a-d94d-461a-8d22-f978dd1438ab",
|
||||
"name": "accelerometerEnabled",
|
||||
"displayName": "Accelerometer enabled",
|
||||
"type": "bool",
|
||||
"defaultValue": true
|
||||
},
|
||||
{
|
||||
"id": "94517544-cb97-4816-8993-cb4cf2651a1e",
|
||||
"name": "gyroscopeEnabled",
|
||||
"displayName": "Gyroscope enabled",
|
||||
"type": "bool",
|
||||
"defaultValue": false
|
||||
},
|
||||
{
|
||||
"id": "96aae111-b1c1-48a1-9b1f-b56efa546d0d",
|
||||
"name": "magnetometerEnabled",
|
||||
"displayName": "Magnetometer enabled",
|
||||
"type": "bool",
|
||||
"defaultValue": false
|
||||
},
|
||||
{
|
||||
"id": "c5308565-5dc9-409e-ae99-577c212c7a92",
|
||||
"name": "measurementPeriod",
|
||||
"displayName": "Measurement period for enviromental sensors",
|
||||
"type": "int",
|
||||
"minValue": 10,
|
||||
"maxValue": 2500,
|
||||
"defaultValue": 2000
|
||||
},
|
||||
{
|
||||
"id": "5237c89c-c21d-4d78-ac99-8be661b40da7",
|
||||
"name": "measurementPeriodMovement",
|
||||
"displayName": "Measurement period movement sensor",
|
||||
"type": "int",
|
||||
"minValue": 10,
|
||||
"maxValue": 2500,
|
||||
"defaultValue": 300
|
||||
},
|
||||
{
|
||||
"id": "a3298d16-eea6-4474-9061-90466e92d476",
|
||||
"name": "movementSensitivity",
|
||||
"displayName": "Movement sensitivity",
|
||||
"type": "int",
|
||||
"unit": "Percentage",
|
||||
"minValue": 0,
|
||||
"maxValue": 100,
|
||||
"defaultValue": 40
|
||||
}
|
||||
],
|
||||
"vendors": [
|
||||
{
|
||||
"id": "2edf543e-dc2c-4693-bb0c-e76c0d305fad",
|
||||
@ -89,7 +10,7 @@
|
||||
"deviceClasses": [
|
||||
{
|
||||
"id": "158a06b6-b27f-4951-957e-6f1e3b44f604",
|
||||
"name": "sensortag",
|
||||
"name": "sensorTag",
|
||||
"displayName": "Sensor Tag (CC2650)",
|
||||
"createMethods": ["discovery"],
|
||||
"deviceIcon": "Thermometer",
|
||||
@ -239,6 +160,113 @@
|
||||
"cached": false,
|
||||
"defaultValue": false,
|
||||
"writable": true
|
||||
},
|
||||
{
|
||||
"id": "6f0e40a2-0f97-4c1e-8229-757e3c18b345",
|
||||
"name": "temperatureSensorEnabled",
|
||||
"displayName": "Temperature sensor enabled",
|
||||
"displayNameEvent": "Temperature sensor enabled changed",
|
||||
"displayNameAction": "Set temperature sensor enabled",
|
||||
"type": "bool",
|
||||
"defaultValue": true,
|
||||
"writable": true
|
||||
},
|
||||
{
|
||||
"id": "29881172-626a-42d5-83b8-3e2e5ca533be",
|
||||
"name": "humiditySensorEnabled",
|
||||
"displayName": "Humidity sensor enabled",
|
||||
"displayNameEvent": "Humidity sensor enabled changed",
|
||||
"displayNameAction": "Set humidity sensor enabled",
|
||||
"type": "bool",
|
||||
"defaultValue": true,
|
||||
"writable": true
|
||||
},
|
||||
{
|
||||
"id": "50e5e282-9707-4b31-bb3f-a6ca30a7e1ff",
|
||||
"name": "pressureSensorEnabled",
|
||||
"displayName": "Pressure sensor enabled",
|
||||
"displayNameEvent": "Pressure sensor enabled changed",
|
||||
"displayNameAction": "Set pressure sensor enabled",
|
||||
"type": "bool",
|
||||
"defaultValue": true,
|
||||
"writable": true
|
||||
},
|
||||
{
|
||||
"id": "1460a6d6-9fb4-4385-b27b-ee4b7594e454",
|
||||
"name": "opticalSensorEnabled",
|
||||
"displayName": "Optical sensor enabled",
|
||||
"displayNameEvent": "Optical sensor enabled changed",
|
||||
"displayNameAction": "Set optical sensor enabled",
|
||||
"type": "bool",
|
||||
"defaultValue": true,
|
||||
"writable": true
|
||||
},
|
||||
{
|
||||
"id": "5786c91a-d94d-461a-8d22-f978dd1438ab",
|
||||
"name": "accelerometerEnabled",
|
||||
"displayName": "Accelerometer enabled",
|
||||
"displayNameEvent": "Accelerometer enabled changed",
|
||||
"displayNameAction": "Set accelerometer enabled",
|
||||
"type": "bool",
|
||||
"defaultValue": true,
|
||||
"writable": true
|
||||
},
|
||||
{
|
||||
"id": "94517544-cb97-4816-8993-cb4cf2651a1e",
|
||||
"name": "gyroscopeEnabled",
|
||||
"displayName": "Gyroscope enabled",
|
||||
"displayNameEvent": "Gyroscope enabled changed",
|
||||
"displayNameAction": "Set gyroscope enabled",
|
||||
"type": "bool",
|
||||
"defaultValue": true,
|
||||
"writable": true
|
||||
},
|
||||
{
|
||||
"id": "96aae111-b1c1-48a1-9b1f-b56efa546d0d",
|
||||
"name": "magnetometerEnabled",
|
||||
"displayName": "Magnetometer enabled",
|
||||
"displayNameEvent": "Magnetometer enabled changed",
|
||||
"displayNameAction": "Set magnetometer enabled",
|
||||
"type": "bool",
|
||||
"defaultValue": true,
|
||||
"writable": true
|
||||
},
|
||||
{
|
||||
"id": "c5308565-5dc9-409e-ae99-577c212c7a92",
|
||||
"name": "measurementPeriod",
|
||||
"displayName": "Measurement period for enviromental sensors",
|
||||
"displayNameEvent": "Measurement period for enviromental sensors changed",
|
||||
"displayNameAction": "Set measurement period for enviromental sensors",
|
||||
"type": "int",
|
||||
"minValue": 10,
|
||||
"maxValue": 2500,
|
||||
"defaultValue": 2000,
|
||||
"writable": true
|
||||
},
|
||||
{
|
||||
"id": "5237c89c-c21d-4d78-ac99-8be661b40da7",
|
||||
"name": "measurementPeriodMovement",
|
||||
"displayName": "Measurement period movement sensor",
|
||||
"displayNameEvent": "Measurement period movement sensor changed",
|
||||
"displayNameAction": "Set measurement period movement sensor",
|
||||
"type": "int",
|
||||
"minValue": 10,
|
||||
"maxValue": 2500,
|
||||
"defaultValue": 300,
|
||||
"writable": true
|
||||
},
|
||||
{
|
||||
"id": "a3298d16-eea6-4474-9061-90466e92d476",
|
||||
"name": "movementSensitivity",
|
||||
"displayName": "Movement sensitivity",
|
||||
"displayNameEvent": "Movement sensitivity changed",
|
||||
"displayNameAction": "Set movement sensitivity",
|
||||
"type": "int",
|
||||
"unit": "Percentage",
|
||||
"minValue": 0,
|
||||
"maxValue": 100,
|
||||
"defaultValue": 40,
|
||||
"writable": true
|
||||
}
|
||||
],
|
||||
"actionTypes": [
|
||||
|
||||
@ -99,12 +99,12 @@ void SensorDataProcessor::processTemperatureData(const QByteArray &data)
|
||||
double ambientTemperatureFiltered = m_temperatureFilter->filterValue(ambientTemperature);
|
||||
|
||||
if (m_objectTemperatureFilter->isReady()) {
|
||||
m_device->setStateValue(sensortagObjectTemperatureStateTypeId, roundValue(objectTemperatureFiltered));
|
||||
m_device->setStateValue(sensorTagObjectTemperatureStateTypeId, roundValue(objectTemperatureFiltered));
|
||||
}
|
||||
|
||||
// Note: only change the state once the filter has collected enought data
|
||||
if (m_temperatureFilter->isReady()) {
|
||||
m_device->setStateValue(sensortagTemperatureStateTypeId, roundValue(ambientTemperatureFiltered));
|
||||
m_device->setStateValue(sensorTagTemperatureStateTypeId, roundValue(ambientTemperatureFiltered));
|
||||
}
|
||||
|
||||
}
|
||||
@ -135,7 +135,7 @@ void SensorDataProcessor::processHumidityData(const QByteArray &data)
|
||||
double humidityFiltered = m_humidityFilter->filterValue(humidity);
|
||||
|
||||
if (m_humidityFilter->isReady()) {
|
||||
m_device->setStateValue(sensortagHumidityStateTypeId, roundValue(humidityFiltered));
|
||||
m_device->setStateValue(sensorTagHumidityStateTypeId, roundValue(humidityFiltered));
|
||||
}
|
||||
}
|
||||
|
||||
@ -163,7 +163,7 @@ void SensorDataProcessor::processPressureData(const QByteArray &data)
|
||||
|
||||
double pressureFiltered = m_pressureFilter->filterValue(rawPressure / 100.0);
|
||||
if (m_pressureFilter->isReady()) {
|
||||
m_device->setStateValue(sensortagPressureStateTypeId, roundValue(pressureFiltered));
|
||||
m_device->setStateValue(sensorTagPressureStateTypeId, roundValue(pressureFiltered));
|
||||
}
|
||||
}
|
||||
|
||||
@ -186,7 +186,7 @@ void SensorDataProcessor::processOpticalData(const QByteArray &data)
|
||||
|
||||
double luxFiltered = m_opticalFilter->filterValue(lux);
|
||||
if (m_opticalFilter->isReady()) {
|
||||
m_device->setStateValue(sensortagLightIntensityStateTypeId, qRound(luxFiltered));
|
||||
m_device->setStateValue(sensorTagLightIntensityStateTypeId, qRound(luxFiltered));
|
||||
}
|
||||
|
||||
logSensorValue(lux, qRound(luxFiltered));
|
||||
@ -247,7 +247,7 @@ void SensorDataProcessor::processMovementData(const QByteArray &data)
|
||||
|
||||
double delta = qAbs(qAbs(m_lastAccelerometerVectorLenght) - qAbs(filteredVectorLength));
|
||||
bool motionDetected = (delta >= m_movementSensitivity);
|
||||
m_device->setStateValue(sensortagMovingStateTypeId, motionDetected);
|
||||
m_device->setStateValue(sensorTagMovingStateTypeId, motionDetected);
|
||||
m_lastAccelerometerVectorLenght = filteredVectorLength;
|
||||
}
|
||||
|
||||
@ -271,7 +271,7 @@ void SensorDataProcessor::setLeftButtonPressed(bool pressed)
|
||||
|
||||
qCDebug(dcMultiSensor()) << "Left button" << (pressed ? "pressed" : "released");
|
||||
m_leftButtonPressed = pressed;
|
||||
m_device->setStateValue(sensortagLeftButtonPressedStateTypeId, m_leftButtonPressed);
|
||||
m_device->setStateValue(sensorTagLeftButtonPressedStateTypeId, m_leftButtonPressed);
|
||||
}
|
||||
|
||||
void SensorDataProcessor::setRightButtonPressed(bool pressed)
|
||||
@ -281,7 +281,7 @@ void SensorDataProcessor::setRightButtonPressed(bool pressed)
|
||||
|
||||
qCDebug(dcMultiSensor()) << "Right button" << (pressed ? "pressed" : "released");
|
||||
m_rightButtonPressed = pressed;
|
||||
m_device->setStateValue(sensortagRightButtonPressedStateTypeId, m_rightButtonPressed);
|
||||
m_device->setStateValue(sensorTagRightButtonPressedStateTypeId, m_rightButtonPressed);
|
||||
}
|
||||
|
||||
void SensorDataProcessor::setMagnetDetected(bool detected)
|
||||
@ -291,7 +291,7 @@ void SensorDataProcessor::setMagnetDetected(bool detected)
|
||||
|
||||
qCDebug(dcMultiSensor()) << "Magnet detector" << (detected ? "active" : "inactive");
|
||||
m_magnetDetected = detected;
|
||||
m_device->setStateValue(sensortagMagnetDetectedStateTypeId, m_magnetDetected);
|
||||
m_device->setStateValue(sensorTagMagnetDetectedStateTypeId, m_magnetDetected);
|
||||
}
|
||||
|
||||
void SensorDataProcessor::logSensorValue(double originalValue, double filteredValue)
|
||||
|
||||
@ -190,7 +190,7 @@ void SensorTag::setGreenLedPower(bool power)
|
||||
m_greenLedEnabled = power;
|
||||
qCDebug(dcMultiSensor()) << "Green LED" << (power ? "enabled" : "disabled");
|
||||
configureIo();
|
||||
m_device->setStateValue(sensortagGreenLedStateTypeId, m_greenLedEnabled);
|
||||
m_device->setStateValue(sensorTagGreenLedStateTypeId, m_greenLedEnabled);
|
||||
}
|
||||
|
||||
void SensorTag::setRedLedPower(bool power)
|
||||
@ -198,7 +198,7 @@ void SensorTag::setRedLedPower(bool power)
|
||||
m_redLedEnabled = power;
|
||||
qCDebug(dcMultiSensor()) << "Red LED" << (power ? "enabled" : "disabled");
|
||||
configureIo();
|
||||
m_device->setStateValue(sensortagRedLedStateTypeId, m_redLedEnabled);
|
||||
m_device->setStateValue(sensorTagRedLedStateTypeId, m_redLedEnabled);
|
||||
}
|
||||
|
||||
void SensorTag::setBuzzerPower(bool power)
|
||||
@ -206,7 +206,7 @@ void SensorTag::setBuzzerPower(bool power)
|
||||
m_buzzerEnabled = power;
|
||||
qCDebug(dcMultiSensor()) << "Buzzer" << (power ? "enabled" : "disabled");
|
||||
configureIo();
|
||||
m_device->setStateValue(sensortagBuzzerStateTypeId, m_buzzerEnabled);
|
||||
m_device->setStateValue(sensorTagBuzzerStateTypeId, m_buzzerEnabled);
|
||||
}
|
||||
|
||||
void SensorTag::buzzerImpulse()
|
||||
@ -360,7 +360,7 @@ void SensorTag::setOpticalSensorPower(bool power)
|
||||
void SensorTag::onConnectedChanged(const bool &connected)
|
||||
{
|
||||
qCDebug(dcMultiSensor()) << "Sensor" << m_bluetoothDevice->name() << m_bluetoothDevice->address().toString() << (connected ? "connected" : "disconnected");
|
||||
m_device->setStateValue(sensortagConnectedStateTypeId, connected);
|
||||
m_device->setStateValue(sensorTagConnectedStateTypeId, connected);
|
||||
|
||||
if (!connected) {
|
||||
// Clean up services
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user