From 297e389057b702bbeb99139a8c248cfccfc0724e Mon Sep 17 00:00:00 2001 From: Manuel Traut Date: Thu, 7 Jun 2012 23:56:05 +0200 Subject: digital out can now be controlled by simple_device - extended libdistrio_common to enable easy access Signed-off-by: Manuel Traut --- common/distrio_helper.cpp | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) (limited to 'common/distrio_helper.cpp') diff --git a/common/distrio_helper.cpp b/common/distrio_helper.cpp index ad0a5cd..362217d 100644 --- a/common/distrio_helper.cpp +++ b/common/distrio_helper.cpp @@ -97,25 +97,31 @@ int register_digital (Distrio_Digital_i *digital) return 0; } -Distrio::Digital_ptr lookup_digital (std::string _name) +void get_digital_list (Distrio::Digital_list_var *dig_list) { CORBA::Object_var obj; - Distrio::Digital_var ret; - Distrio::Digital_list_var dig_list; Distrio::Error *e; if (ref.init != ORB_RUNNING) { std::cerr << "corba not initialized" << std::endl; - return NULL; + return; } try { - e = ref.manager->digital (dig_list); + e = ref.manager->digital (*dig_list); free (e); } catch (CORBA::Exception &_e) { - std::cerr << "CORBA lookup digital io "<< _name <<" failed: " + std::cerr << "CORBA get digital list failed: " << _e << std::endl; - return NULL; + } +} + +void lookup_digital (std::string _name, Distrio::Digital_list_var dig_list, + Distrio::Digital **ptr) +{ + if (ref.init != ORB_RUNNING) { + std::cerr << "corba not initialized" << std::endl; + return; } for (unsigned int i = 0; i < dig_list->length (); i++) { @@ -126,12 +132,12 @@ Distrio::Digital_ptr lookup_digital (std::string _name) free (e); if (! _name.compare (name.in ())) { - Distrio::Digital_ptr ptr = dig_list[i]; - return ptr; + *ptr = dig_list[i]; + (*ptr)->reset (); + std::cout << "yeah: " << *ptr << std::endl; + return; } } - - return NULL; } int register_device (std::string _name, Distrio_Device_i *dev) -- cgit v1.2.3