...
This commit is contained in:
@@ -14,14 +14,20 @@ int main()
|
|||||||
|
|
||||||
AdcGenericDevice<> dev("DEV#1");
|
AdcGenericDevice<> dev("DEV#1");
|
||||||
|
|
||||||
std::println("add RW-attr with id='{}' (val={})", id1, i);
|
std::println("add arith RW-attr with id='{}' (val={})", id1, i);
|
||||||
dev.addAttr(
|
dev.addArithAttr(
|
||||||
id1, [&i]() -> adc_result_t<int> { return i; },
|
id1, [&i]() -> adc_result_t<int> { return i; },
|
||||||
[&i](int ii) -> adc_error_t {
|
[&i](int ii) -> adc_error_t {
|
||||||
i = ii;
|
i = ii;
|
||||||
return AdcDeviceErrorCode::ERROR_OK;
|
return AdcDeviceErrorCode::ERROR_OK;
|
||||||
},
|
});
|
||||||
std::tuple<double, int, long>{});
|
// dev.addAttr(
|
||||||
|
// id1, [&i]() -> adc_result_t<int> { return i; },
|
||||||
|
// [&i](int ii) -> adc_error_t {
|
||||||
|
// i = ii;
|
||||||
|
// return AdcDeviceErrorCode::ERROR_OK;
|
||||||
|
// },
|
||||||
|
// std::tuple<double, int, long>{});
|
||||||
|
|
||||||
std::println("add RO-attr with id='{}' (val={})", id2, d);
|
std::println("add RO-attr with id='{}' (val={})", id2, d);
|
||||||
dev.addAttr(id2, [&d]() -> adc_result_t<double> { return d; }, nullptr);
|
dev.addAttr(id2, [&d]() -> adc_result_t<double> { return d; }, nullptr);
|
||||||
|
|||||||
@@ -283,7 +283,7 @@ public:
|
|||||||
float,
|
float,
|
||||||
double,
|
double,
|
||||||
long double>
|
long double>
|
||||||
arithmetic_t{};
|
arithmetic_types{};
|
||||||
|
|
||||||
typedef DEV_ID_T device_id_t;
|
typedef DEV_ID_T device_id_t;
|
||||||
typedef ATTR_ID_T attr_id_t;
|
typedef ATTR_ID_T attr_id_t;
|
||||||
@@ -326,6 +326,14 @@ public:
|
|||||||
std::tuple<attr_t<VTs>...>{});
|
std::tuple<attr_t<VTs>...>{});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// add attribute of one of arithmetic type
|
||||||
|
template <typename GT, typename ST>
|
||||||
|
requires std::is_arithmetic_v<snplib_attr_value_deduced_t<GT, ST>>
|
||||||
|
void addArithAttr(ATTR_ID_T id, GT&& getter, ST&& setter)
|
||||||
|
{
|
||||||
|
addAttr(std::move(id), std::forward<GT>(getter), std::forward<ST>(setter), AdcGenericDevice::arithmetic_types);
|
||||||
|
}
|
||||||
|
|
||||||
adc_error_t operator()(CMD_ID_T id)
|
adc_error_t operator()(CMD_ID_T id)
|
||||||
{
|
{
|
||||||
if (auto it = _commands.find(id); it != _commands.end()) {
|
if (auto it = _commands.find(id); it != _commands.end()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user