#include #include using namespace adc; int main() { int i = 10; double d = 8.1; std::string s{"dwedjkwlk"}; AdcGenericDevice<> dev("DEV#1"); dev.addAttr( "1", [&i]() -> adc_result_t { return i; }, [&i](int ii) -> adc_error_t { i = ii; return AdcDeviceErrorCode::ERROR_OK; }); dev.addAttr("2", [&d]() -> adc_result_t { return d; }, nullptr); adc_result_t 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 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; }