summaryrefslogtreecommitdiff
path: root/modules/remote-hip/examples/hip_transfer_data.cpp
diff options
context:
space:
mode:
authorClaudius 'keldu' Holeksa <mail@keldu.de>2024-09-06 16:57:23 +0200
committerClaudius 'keldu' Holeksa <mail@keldu.de>2024-09-06 16:57:23 +0200
commit001c23fcdb1e881cbcb0532d108218fbdb271cb9 (patch)
tree2c222029e04696e207da5491da11a15c61318c9f /modules/remote-hip/examples/hip_transfer_data.cpp
parent762cea6f0f8603960e9669d69bc5400c7497a2b5 (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.cpp51
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;
+}