C
Qt Cluster: Rendering on QNX and INTEGRITY
#ifndef CLUSTERDATA_H
#define CLUSTERDATA_H
#include <QObject>
#include <QQmlParserStatus>
#include <QQmlProperty>
#ifndef NO_NETWORK
#include "clusterdatabackend.h"
#endif
#ifndef NO_NETWORK
class ClusterDataBackend;
#endif
class ZonedProperties : public QObject
{
Q_OBJECT
Q_PROPERTY(bool doorOpen READ doorOpen NOTIFY doorOpenChanged)
public :
ZonedProperties(QObject * parent= 0 ) : QObject (parent), m_zone("" ), m_doorOpen(false ) {}
void setZone(const QString & zone) { m_zone = zone; }
QString zone() { return m_zone; }
bool doorOpen() { return m_doorOpen; }
void setDoorOpen(const bool & d) { m_doorOpen = d; emit doorOpenChanged(); }
signals :
void zoneChanged(const QString & zone);
void doorOpenChanged();
private :
QString m_zone;
bool m_doorOpen;
};
class QtIVIClusterData : public QObject , public QQmlParserStatus
{
Q_OBJECT
Q_INTERFACES(QQmlParserStatus )
Q_PROPERTY(double vehicleSpeed READ vehicleSpeed NOTIFY vehicleSpeedChanged)
Q_PROPERTY(double latitude READ latitude NOTIFY latitudeChanged)
Q_PROPERTY(double longitude READ longitude NOTIFY longitudeChanged)
Q_PROPERTY(double direction READ direction NOTIFY directionChanged)
Q_PROPERTY(bool flatTire READ flatTire NOTIFY flatTireChanged)
Q_PROPERTY(bool lightFailure READ lightFailure NOTIFY lightFailureChanged)
Q_PROPERTY(bool reverse READ reverse NOTIFY reverseChanged)
Q_PROPERTY(bool leftTurnLight READ leftTurnLight NOTIFY leftTurnLightChanged)
Q_PROPERTY(bool rightTurnLight READ rightTurnLight NOTIFY rightTurnLightChanged)
Q_PROPERTY(bool headLight READ headLight NOTIFY headLightChanged)
Q_PROPERTY(bool parkLight READ parkLight NOTIFY parkLightChanged)
Q_PROPERTY(int carId READ carId NOTIFY carIdChanged)
Q_PROPERTY(bool brake READ brake NOTIFY brakeChanged)
Q_PROPERTY(int engineTemp READ engineTemp NOTIFY engineTempChanged)
Q_PROPERTY(double oilTemp READ oilTemp NOTIFY oilTempChanged)
Q_PROPERTY(int oilPressure READ oilPressure NOTIFY oilPressureChanged)
Q_PROPERTY(double batteryPotential READ batteryPotential NOTIFY batteryPotentialChanged)
Q_PROPERTY(double gasLevel READ gasLevel NOTIFY gasLevelChanged)
Q_PROPERTY(int rpm READ rpm NOTIFY rpmChanged)
Q_PROPERTY(int gear READ gear NOTIFY gearChanged)
Q_PROPERTY(QVariantMap zoneAt READ zoneFeatureMap NOTIFY zonesChanged)
public :
QtIVIClusterData (QObject * parent= 0 );
double vehicleSpeed() const ;
double latitude() const ;
double longitude() const ;
double direction() const ;
bool flatTire() const ;
bool doorOpen() const ;
bool lightFailure() const ;
bool reverse() const ;
bool leftTurnLight() const ;
bool rightTurnLight() const ;
bool headLight() const ;
bool parkLight() const ;
int carId() const ;
bool brake() const ;
int engineTemp() const ;
double oilTemp() const ;
int oilPressure() const ;
double batteryPotential() const ;
double gasLevel() const ;
int rpm() const ;
int gear() const ;
Q_SIGNALS:
void vehicleSpeedChanged(double vehicleSpeed);
void latitudeChanged(double latitude);
void longitudeChanged(double longitude);
void directionChanged(double direction);
void flatTireChanged(bool flatTire);
void doorOpenChanged(bool doorOpen);
void lightFailureChanged(bool lightFailure);
void reverseChanged(bool Reverse);
void leftTurnLightChanged(bool leftTurnLight);
void rightTurnLightChanged(bool rightTurnLight);
void headLightChanged(bool headLight);
void parkLightChanged(bool parkLight);
void carIdChanged(int carId);
void brakeChanged(bool brakeOn );
void engineTempChanged(int engineTemp);
void oilTempChanged(double oilTemp);
void oilPressureChanged(int oilPressure);
void batteryPotentialChanged(double batteryPotential);
void gasLevelChanged(double gasLevel);
void rpmChanged(int rpm);
void gearChanged(int gear);
void zonesChanged();
protected :
virtual void classBegin();
virtual void componentComplete();
private Q_SLOTS:
void onVehicleSpeedChanged(double vehicleSpeed, const QString & zone);
void onLatitudeChanged(double latitude, const QString & zone);
void onLongitudeChanged(double longitude, const QString & zone);
void onDirectionChanged(double direction, const QString & zone);
void onFlatTireChanged(bool flatTire, const QString & zone);
void onDoorOpenChanged(bool doorOpen, const QString & zone);
void onLightFailureChanged(bool lightFailure, const QString & zone);
void onReverseChanged(bool reverse, const QString & zone);
void onLeftTurnLightChanged(bool leftTurnLight, const QString & zone);
void onRightTurnLightChanged(bool rightTurnLight, const QString & zone);
void onHeadLightChanged(bool headLight, const QString & zone);
void onParkLightChanged(bool parkLight, const QString & zone);
void onCarIdChanged(int carId, const QString & zone);
void onBrakeChanged(bool brakeOn, const QString & zone );
void onEngineTempChanged(int engineTemp, const QString & zone);
void onOilTempChanged(double oilTemp, const QString & zone);
void onOilPressureChanged(int oilPressure, const QString & zone);
void onBatteryPotentialChanged(double batteryPotential, const QString & zone);
void onGasLevelChanged(double gasLevel, const QString & zone);
void onRpmChanged(int rpm, const QString & zone);
void onGearChanged(int gear, const QString & zone);
protected :
private :
void connectToServiceObject();
QVariantMap zoneFeatureMap() const ;
void initializeZones();
ZonedProperties * zoneAt(const QString & zone) const ;
private :
#ifndef NO_NETWORK
ClusterDataBackend * backend;
#endif
double m_vehicleSpeed;
double m_latitude;
double m_longitude;
double m_direction;
bool m_flatTire;
bool m_doorOpen;
bool m_lightFailure;
bool m_reverse;
bool m_leftTurnLight;
bool m_rightTurnLight;
bool m_headLight;
bool m_parkLight;
int m_carId;
bool m_brake;
qint8 m_engineTemp;
double m_oilTemp;
int m_oilPressure;
double m_batteryPotential;
double m_gasLevel;
int m_rpm;
int m_gear;
QVariantMap m_zoneFeatureMap;
QList < ZonedProperties* > m_zoneFeatures;
QVariantList m_zoneFeatureList;
};
#endif // CLUSTERDATA_H