Qt Virtual Chart Table (QVCT)
CDevice.hpp
Go to the documentation of this file.
1 // INDENTING (emacs/vi): -*- mode:c++; tab-width:2; c-basic-offset:2; intent-tabs-mode:nil; -*- ex: set tabstop=2 expandtab:
2 
3 /*
4  * Qt Virtual Chart Table (QVCT)
5  * Copyright (C) 2012 Cedric Dufour <http://cedric.dufour.name>
6  * Author: Cedric Dufour <http://cedric.dufour.name>
7  *
8  * The Qt Virtual Chart Table (QVCT) is free software:
9  * you can redistribute it and/or modify it under the terms of the GNU General
10  * Public License as published by the Free Software Foundation, Version 3.
11  *
12  * The Qt Virtual Chart Table (QVCT) is distributed in the hope
13  * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
14  * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15  *
16  * See the GNU General Public License for more details.
17  */
18 
19 #ifndef QVCT_CDEVICE_HPP
20 #define QVCT_CDEVICE_HPP
21 
22 // QT
23 #include <QDomElement> // QtXml module
24 #include <QString>
25 #include <QXmlStreamWriter>
26 
27 // QVCT
28 #include "QVCT.hpp"
31 class CDeviceDataFix;
32 class CDeviceDataSkyView;
33 
34 
36 
42 class CDevice: public COverlayItem
43 {
44  Q_OBJECT;
45 
46  //------------------------------------------------------------------------------
47  // CONSTANTS / STATIC
48  //------------------------------------------------------------------------------
49 
50 public:
52  // NOTE: use only power of 2! (so capabalities can be aggregated/differentiated)
53  enum ECapability {
54  FIX = 1,
55  SKYVIEW = 2
56  };
59 
60 
61  //------------------------------------------------------------------------------
62  // FIELDS
63  //------------------------------------------------------------------------------
64 
65 private:
67 
69 
70 
71  //------------------------------------------------------------------------------
72  // CONSTRUCTORS / DESTRUCTOR
73  //------------------------------------------------------------------------------
74 
75 protected:
76  CDevice( const QString& _rqsName );
77 
78 public:
79  virtual ~CDevice() {};
80 
81 
82  //------------------------------------------------------------------------------
83  // METHODS: COverlayObject (implement/override)
84  //------------------------------------------------------------------------------
85 
86 private:
87  virtual void serialize( QDataStream& _rqDataStream ) const {};
88  virtual void unserialize( QDataStream& _rqDataStream ) {};
89 
90 public:
91  virtual COverlay* useOverlay() { return (COverlay*)QTreeWidgetItem::parent(); };
92 
93 private:
94  virtual void draw( const CChart* _poChart, QPainter* _pqPainter ) {};
95 
96 
97  //------------------------------------------------------------------------------
98  // METHODS
99  //------------------------------------------------------------------------------
100 
101  // SLOTS
102 private slots:
104  void slotOperatingMode( CDevice::EOperatingMode _eOperatingMode ) { eOperatingMode = _eOperatingMode; } ;
105 
106  // SIGNALS
107 signals:
113  void signalDataFix( const CDeviceDataFix& _roDeviceDataFix );
115  void signalDataSkyView( const CDeviceDataSkyView& _roDeviceDataSkyView );
117  void signalError( const QString& _rqsErrorMessage );
118 
119  // SETTERS
120 public:
122  virtual QVCT::EStatus setOperatingMode( EOperatingMode _eOperatingMode ) = 0;
123 
124  // GETTERS
125 public:
127  virtual CDeviceDriver::EDriver getDriver() const = 0;
129 
130  virtual int getCapabilities() const = 0;
133 
134  // OTHER
135 public:
137  virtual void showDetail() = 0;
139  virtual void showEdit() = 0;
140 
141 public:
143  virtual void parseQVCT( const QDomElement& _rqDomElement ) = 0;
145  virtual void dumpQVCT( QXmlStreamWriter & _rqXmlStreamWriter ) const = 0;
146 
147 };
148 
149 #endif // QVCT_CDEVICE_HPP
[UI] Chart (view)
Definition: CChart.hpp:44
Fix data [source,time,position,course,DOPs,...].
Sky view data (satellites details)
EDriver
Driver ID.
Generic navigation device (GPS, speedometer, compass, etc.)
Definition: CDevice.hpp:43
ECapability
Device capabilities.
Definition: CDevice.hpp:53
@ SKYVIEW
Device emits 'newDataSkyView' signal.
Definition: CDevice.hpp:55
@ FIX
Device emits 'newDataFix' signal.
Definition: CDevice.hpp:54
void slotOperatingMode(CDevice::EOperatingMode _eOperatingMode)
[Slot] Slot to handle operating mode changes
Definition: CDevice.hpp:104
virtual void showDetail()=0
Displays the device's details (in the appropriate widget/view)
void signalDataFix(const CDeviceDataFix &_roDeviceDataFix)
Signal emitted by the device when an updated fix is available.
virtual void unserialize(QDataStream &_rqDataStream)
Unserializes (restore) this object's data from binary format.
Definition: CDevice.hpp:88
virtual void parseQVCT(const QDomElement &_rqDomElement)=0
Retrieves the device's configuration from the given QVCT source (file)
void signalActivity()
Signal emitted by the device when activity occures.
virtual CDeviceDriver::EDriver getDriver() const =0
Returns the device's driver ID.
EOperatingMode
Device operating mode (stop, start, pause)
Definition: CDevice.hpp:58
@ PAUSE
Definition: CDevice.hpp:58
@ STOP
Definition: CDevice.hpp:58
@ UNDEFINED
Definition: CDevice.hpp:58
@ START
Definition: CDevice.hpp:58
virtual QVCT::EStatus setOperatingMode(EOperatingMode _eOperatingMode)=0
Sets the device's operating mode.
EOperatingMode eOperatingMode
Device's operating mode.
Definition: CDevice.hpp:68
void signalDataSkyView(const CDeviceDataSkyView &_roDeviceDataSkyView)
Signal emitted by the device when an updated sky view is available.
virtual ~CDevice()
Definition: CDevice.hpp:79
virtual int getCapabilities() const =0
Returns the device's capabilities.
void signalError(const QString &_rqsErrorMessage)
Signal emitted by the device when an error occured.
virtual void serialize(QDataStream &_rqDataStream) const
Serializes (store) this object's data to binary format.
Definition: CDevice.hpp:87
virtual EOperatingMode getOperatingMode()
Returns the device's operating mode.
Definition: CDevice.hpp:132
virtual void draw(const CChart *_poChart, QPainter *_pqPainter)
Draws this object (itself or its content)
Definition: CDevice.hpp:94
virtual void dumpQVCT(QXmlStreamWriter &_rqXmlStreamWriter) const =0
Stores the device's configuration to the given QVCT destination (file)
virtual void showEdit()=0
Displays the device's edit (configuration) widget/view.
CDevice(const QString &_rqsName)
Definition: CDevice.cpp:32
virtual COverlay * useOverlay()
Returns this object's (base) overlay.
Definition: CDevice.hpp:91
void signalOperatingMode(CDevice::EOperatingMode _eOperatingMode)
Signal emitted by the device when its operating mode changed.
Generic overlay item.
Generic overlay.
Definition: COverlay.hpp:45
EStatus
Definition: QVCT.hpp:41