diff options
author | Claudius 'keldu' Holeksa <mail@keldu.de> | 2024-09-06 16:57:23 +0200 |
---|---|---|
committer | Claudius 'keldu' Holeksa <mail@keldu.de> | 2024-09-06 16:57:23 +0200 |
commit | 001c23fcdb1e881cbcb0532d108218fbdb271cb9 (patch) | |
tree | 2c222029e04696e207da5491da11a15c61318c9f /modules/remote-hip/examples/hip_transfer_data.cpp | |
parent | 762cea6f0f8603960e9669d69bc5400c7497a2b5 (diff) |
Working on a data transfer test
Diffstat (limited to 'modules/remote-hip/examples/hip_transfer_data.cpp')
-rw-r--r-- | modules/remote-hip/examples/hip_transfer_data.cpp | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/modules/remote-hip/examples/hip_transfer_data.cpp b/modules/remote-hip/examples/hip_transfer_data.cpp new file mode 100644 index 0000000..49ff856 --- /dev/null +++ b/modules/remote-hip/examples/hip_transfer_data.cpp @@ -0,0 +1,51 @@ +#include "../c++/remote.hpp" +#include "../c++/transfer.hpp" + +#include <iostream> + +namespace sch { +using namespace saw::schema; +} + +saw::error_or<void> real_main(){ + using namespace saw; + + remote<rmt::Hip> rmt; + + auto eo_addr = rmt.parse_address(0); + if(eo_addr.is_error()){ + return std::move(eo_addr.get_error()); + } + auto& addr = eo_addr.get_value(); + + auto eo_dat_srv = rmt.data_listen<sch::Int16, encode::Native>(*addr); + if(eo_dat_srv.is_error()){ + return std::move(eo_dat_srv.get_error()); + } + auto& dat_srv = eo_dat_srv.get_value(); + + data<sch::Int16> val{42}; + + id<sch::Int16> id_val{0u}; + auto eo_send = dat_srv->send(val, id_val); + if(eo_send.is_error()){ + return std::move(eo_send.get_error()); + } + + return make_void(); +} + +int main(){ + auto eov = real_main(); + if(eov.is_error()){ + auto& err = eov.get_error(); + std::cerr<<"Error: "<<err.get_category(); + auto err_msg = err.get_message(); + if(err_msg.size() > 0u){ + std::cerr<<" - "<<err_msg; + } + std::cerr<<"\n"<<std::endl; + return err.get_id(); + } + return 0; +} |