SensorProperty.h
00001 #ifndef _SENSORPROPERTY_H
00002 #define _SENSORPROPERTY_H
00003
00004 #include <gtkmm.h>
00005 #include <UniSetTypes.h>
00006 #include <MessageType.h>
00007 #include <SensorProp.h>
00008 #include <Connector.h>
00009
00010 class GuiPM;
00011 class USensorProperty;
00012
00013 namespace Glib
00014 {
00015
00016 template <>
00017 class Property<USensorProperty>
00018 {
00019 public:
00020
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
00024
00025
00026
00027
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
00056
00057
00058
00059
00060 protected:
00061
00062 private:
00063 Property();
00064
00065 };
00066
00067
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
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