|
UniWidgets
1.0.0
|
00001 #ifndef _SENSORPROPERTY_H 00002 #define _SENSORPROPERTY_H 00003 // ------------------------------------------------------------------------- 00004 #include <gtkmm.h> 00005 #include <UniSetTypes.h> 00006 #include <MessageType.h> 00007 #include <uniwidgets/SensorProp.h> 00008 #include <uniwidgets/Connector.h> 00009 // ------------------------------------------------------------------------- 00010 class GuiPM; 00011 class USensorProperty; 00012 // ------------------------------------------------------------------------- 00013 namespace Glib 00014 { 00015 //TODO write documentation 00016 template <> 00017 class Property<USensorProperty> 00018 { 00019 public: 00020 // Property(Gtk::Widget& targ, const Glib::ustring& name, GuiPM **guipm_ptr, Glib::ustring uniset_name = "DefaultSensor") : 00021 Property(Gtk::Widget& targ, const Glib::ustring& name, ConnectorRef connector_ref, Glib::ustring uniset_name = "DefaultSensor") : 00022 m_property(&targ, name, connector_ref, uniset_name) 00023 // ,sens_name(&targ, name+"-sensor-name") 00024 // ,node_name(&targ, name+"-node-name") 00025 // ,sens_id(&targ, name+"-sensor-id") 00026 // ,node_id(&targ, name+"-node-id") 00027 // ,stype(&targ,name+"-stype") 00028 {} 00029 00030 ~Property(){} 00031 00032 void set_sens_name(std::string name) {m_property.set_sens_name(name); } 00033 void set_node_name(std::string name) {m_property.set_node_name(name); } 00034 void set_sens_id(UniSetTypes::ObjectId id) {m_property.set_sens_id(id); } 00035 void set_node_id(UniSetTypes::ObjectId id) {m_property.set_node_id(id); } 00036 void set_stype(std::string type) {m_property.set_stype(type); } 00037 UniSetTypes::ObjectId get_sens_id() { return m_property.get_sens_id();} 00038 Property& operator= (const Property& property) 00039 { 00040 if (this == &property) return *this; 00041 m_property.sens_name = property.m_property.sens_name.get_value(); 00042 m_property.node_name = property.m_property.node_name.get_value(); 00043 m_property.sens_id = property.m_property.sens_id.get_value(); 00044 m_property.node_id = property.m_property.node_id.get_value(); 00045 m_property.stype = property.m_property.stype.get_value(); 00046 return *this; 00047 } 00048 00049 void ask(UniversalIO::UIOCommand cmd) { m_property.ask(cmd); } 00050 void autoAsk(UniversalIO::UIOCommand cmd) {m_property.autoAsk(cmd); } 00051 00052 float get_current_value() {return m_property.get_current_value();} 00053 00054 SensorProp m_property; 00055 /* PropertyProxy<std::string> sens_name; 00056 PropertyProxy<std::string> node_name; 00057 PropertyProxy<UniSetTypes::ObjectId> sens_id; 00058 PropertyProxy<UniSetTypes::ObjectId> node_id; 00059 PropertyProxy<std::string> stype;*/ 00060 protected: 00061 00062 private: 00063 Property(); 00064 00065 }; 00066 00067 //temporary solution 00068 template <> 00069 class PropertyProxy<USensorProperty> 00070 { 00071 public: 00072 PropertyProxy(Property<USensorProperty> property) : 00073 property_(&property.m_property) 00074 {} 00075 00076 ~PropertyProxy() {} 00077 00078 void set_sens_name(std::string name) {property_->set_sens_name(name); } 00079 void set_node_name(std::string name) {property_->set_node_name(name); } 00080 void set_sens_id(UniSetTypes::ObjectId id) {property_->set_sens_id(id); } 00081 void set_node_id(UniSetTypes::ObjectId id) {property_->set_node_id(id); } 00082 void set_stype(std::string type) {property_->set_stype(type); } 00083 UniSetTypes::ObjectId get_sens_id() { return property_->get_sens_id();} 00084 00085 PropertyProxy& operator=(const Property<USensorProperty>& property) 00086 { 00087 //if (this == &property) return *this; 00088 property_->sens_name = property.m_property.sens_name.get_value(); 00089 property_->node_name = property.m_property.node_name.get_value(); 00090 property_->sens_id = property.m_property.sens_id.get_value(); 00091 property_->node_id = property.m_property.node_id.get_value(); 00092 property_->stype = property.m_property.stype.get_value(); 00093 return *this; 00094 } 00095 00096 void ask(UniversalIO::UIOCommand cmd) { property_->ask(cmd); } 00097 void autoAsk(UniversalIO::UIOCommand cmd) {property_->autoAsk(cmd); } 00098 00099 float get_current_value() {return property_->get_current_value();} 00100 00101 SensorProp* property_; 00102 protected: 00103 00104 private: 00105 PropertyProxy(); 00106 00107 }; 00108 } 00109 #endif
1.7.6.1