• Main Page
  • Related Pages
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

datatypes/proximity.h

Go to the documentation of this file.
00001 
00026 #ifndef PROXIMITY_H
00027 #define PROXIMITY_H
00028 
00029 #include <QDBusArgument>
00030 
00031 #include <datatypes/unsigned.h>
00032 #include <datatypes/orientationdata.h>
00033 
00037 class Proximity : public Unsigned
00038 {
00039     Q_OBJECT
00040 
00041     Q_PROPERTY(int reflectance READ reflectance)
00042     Q_PROPERTY(int withinProximity READ withinProximity)
00043 
00044 public:
00045 
00049     Proximity() {}
00050 
00056     Proximity(const ProximityData& data) :
00057         Unsigned(TimedUnsigned(data.timestamp_, data.withinProximity_)),
00058         data_(data.timestamp_, data.value_, data.withinProximity_)
00059         {}
00060 
00066     Proximity(const Proximity& data) :
00067         Unsigned(data.UnsignedData()), data_(data.proximityData().timestamp_, data.proximityData().value_, data.proximityData().withinProximity_)
00068         {}
00069 
00074     const ProximityData& proximityData() const { return data_; }
00075 
00081     bool withinProximity() const { return data_.withinProximity_; }
00082 
00088     int reflectance() const { return data_.value_; }
00089 
00095     Proximity& operator=(const Proximity& origin)
00096     {
00097         data_ = origin.proximityData();
00098         return *this;
00099     }
00100 
00107     bool operator==(const Proximity& right) const
00108     {
00109         ProximityData rdata = right.proximityData();
00110         return (data_.value_ == rdata.value_ &&
00111                 data_.withinProximity_ == rdata.withinProximity_ &&
00112                 data_.timestamp_ == rdata.timestamp_);
00113     }
00114 
00115 private:
00116     ProximityData data_; 
00118     friend const QDBusArgument &operator>>(const QDBusArgument &argument, Proximity& data);
00119 };
00120 
00121 Q_DECLARE_METATYPE( Proximity )
00122 
00123 
00130 inline QDBusArgument &operator<<(QDBusArgument &argument, const Proximity &data)
00131 {
00132     argument.beginStructure();
00133     argument << data.proximityData().timestamp_ << data.proximityData().value_ << data.proximityData().withinProximity_;
00134     argument.endStructure();
00135     return argument;
00136 }
00137 
00145 inline const QDBusArgument &operator>>(const QDBusArgument &argument, Proximity &data)
00146 {
00147     argument.beginStructure();
00148     argument >> data.data_.timestamp_ >> data.data_.value_ >> data.data_.withinProximity_;
00149     argument.endStructure();
00150     return argument;
00151 }
00152 
00153 #endif // PROXIMITY_H

Generated on Tue Jun 10 2014 06:25:07 for sensorfw by  doxygen 1.7.1