Files
ADCLIB/examples/device_exam.cpp
Timur A. Fatkhullin 168b0f25ad ...
2026-06-21 23:13:19 +03:00

57 lines
1.3 KiB
C++

#include <print>
#include <adclib/adclib_device.h>
using namespace adc;
int main()
{
int i = 10;
double d = 8.1;
std::string s{"dwedjkwlk"};
AdcGenericDevice<> dev;
dev.addAttr(
"1", [&i]() -> adc_result_t<int> { return i; },
[&i](int ii) -> adc_error_t {
i = ii;
return AdcDeviceErrorCode::ERROR_OK;
},
std::tuple<double, long>{});
dev.addAttr("2", [&d]() -> adc_result_t<double> { return d; }, nullptr);
adc_result_t<int> ri = dev["1"];
if (ri) {
std::println("dev[1] = {}", ri.value());
} else {
std::println("cannot get dev[1] as int: {}", ri.error().message());
}
auto err = dev["1"] = 77;
if (err) {
std::println("cannot set dev[1] as int: {}", err.message());
}
adc_result_t<double> rd = dev["1"];
if (rd) {
std::println("dev[1] = {}", rd.value());
} else {
std::println("cannot get dev[1] as double: {}", rd.error().message());
}
ri = dev["1"];
if (ri) {
std::println("dev[1] = {}", ri.value());
} else {
std::println("cannot get dev[1] as int: {}", ri.error().message());
}
err = dev["2"] = 0.29817;
if (err) {
std::println("cannot set dev[2] as double: {}", err.message());
}
return 0;
}