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

datatypes/magneticfield.h

Go to the documentation of this file.
00001 
00028 #ifndef MAGNETICFIELDDATA_H
00029 #define MAGNETICFIELDDATA_H
00030 
00031 #include <QDBusArgument>
00032 #include <datatypes/orientationdata.h>
00033 
00037 class MagneticField : public QObject
00038 {
00039 public:
00040     Q_OBJECT;
00041 
00042 public:
00043 
00047     MagneticField() : QObject() {}
00048 
00054     MagneticField(const CalibratedMagneticFieldData& calibratedData) : QObject() {
00055         data_.timestamp_ = calibratedData.timestamp_;
00056         data_.level_ = calibratedData.level_;
00057         data_.x_ = calibratedData.x_;
00058         data_.y_ = calibratedData.y_;
00059         data_.z_ = calibratedData.z_;
00060         data_.rx_ = calibratedData.rx_;
00061         data_.ry_ = calibratedData.ry_;
00062         data_.rz_ = calibratedData.rz_;
00063     }
00064 
00070     MagneticField(const MagneticField& data) : QObject() {
00071         data_.timestamp_ = data.data_.timestamp_;
00072         data_.level_ = data.data_.level_;
00073         data_.x_ = data.data_.x_;
00074         data_.y_ = data.data_.y_;
00075         data_.z_ = data.data_.z_;
00076         data_.rx_ = data.data_.rx_;
00077         data_.ry_ = data.data_.ry_;
00078         data_.rz_ = data.data_.rz_;
00079     }
00080 
00086     const CalibratedMagneticFieldData& data() const { return data_; }
00087 
00093     MagneticField& operator=(const MagneticField& origin)
00094     {
00095         data_.timestamp_ = origin.data_.timestamp_;
00096         data_.level_ = origin.data_.level_;
00097         data_.x_ = origin.data_.x_;
00098         data_.y_ = origin.data_.y_;
00099         data_.z_ = origin.data_.z_;
00100         data_.rx_ = origin.data_.rx_;
00101         data_.ry_ = origin.data_.ry_;
00102         data_.rz_ = origin.data_.rz_;
00103 
00104         return *this;
00105     }
00106 
00113     bool operator==(const MagneticField& right) const
00114     {
00115         CalibratedMagneticFieldData rdata = right.data();
00116         return (data_.x_ == rdata.x_ &&
00117                 data_.y_ == rdata.y_ &&
00118                 data_.z_ == rdata.z_ &&
00119                 data_.rx_ == rdata.rx_ &&
00120                 data_.ry_ == rdata.ry_ &&
00121                 data_.rz_ == rdata.rz_ &&
00122                 data_.level_ == rdata.level_ &&
00123                 data_.timestamp_ == rdata.timestamp_);
00124     }
00125 
00130     int x() const { return data_.x_; }
00131 
00136     int y() const { return data_.y_; }
00137 
00142     int z() const { return data_.z_; }
00143 
00148     int rx() const { return data_.rx_; }
00149 
00154     int ry() const { return data_.ry_; }
00155 
00160     int rz() const { return data_.rz_; }
00161 
00166     int level() const { return data_.level_; }
00167 
00172     const quint64& timestamp() const { return data_.timestamp_; }
00173 
00174 private:
00175     CalibratedMagneticFieldData data_; 
00177     friend const QDBusArgument &operator>>(const QDBusArgument &argument, MagneticField& data);
00178 };
00179 
00180 Q_DECLARE_METATYPE( MagneticField )
00181 
00182 
00189 inline QDBusArgument &operator<<(QDBusArgument &argument, const MagneticField &data)
00190 {
00191     argument.beginStructure();
00192     argument << data.data().timestamp_ << data.data().level_;
00193     argument << data.data().x_ << data.data().y_ << data.data().z_;
00194     argument << data.data().rx_ << data.data().ry_ << data.data().rz_;
00195     argument.endStructure();
00196     return argument;
00197 }
00198 
00206 inline const QDBusArgument &operator>>(const QDBusArgument &argument, MagneticField &data)
00207 {
00208     argument.beginStructure();
00209     argument >> data.data_.timestamp_ >> data.data_.level_;
00210     argument >> data.data_.x_ >> data.data_.y_ >> data.data_.z_;
00211     argument >> data.data_.rx_ >> data.data_.ry_ >> data.data_.rz_;
00212     argument.endStructure();
00213     return argument;
00214 }
00215 
00216 #endif // MAGNETICFIELDDATA_H

Generated on Mon Jun 27 2011 14:38:47 for sensorfw by  doxygen 1.7.1