Vesna
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
GPSBusinessLogic.h
Go to the documentation of this file.
1 #ifndef GPSBUSINESSLOGIC_H
2 #define GPSBUSINESSLOGIC_H
3 
4 #include <QObject>
5 
6 #include "GPSDefines.h"
8 
9 struct SGPSTimePal;
11 class RouteBusStop;
12 class RouteSynchroPoint;
13 class SynchroPointEvent;
14 class BusStopChangeEvent;
17 
18 class GPSBusinessLogic : public QObject, public BusinessLogic
19 {
20  Q_OBJECT
21 public:
23 
25  virtual ~GPSBusinessLogic();
26 
27  void IssueIn( const QList<RouteBusStop> &modelRoute, const int32_t actualTripBusStopindex );
28  void IssueOut();
29  void UpdateModelRoute( const QList<RouteBusStop> &modelRoute );
30 
31  void SetDelayRefreshTimeout( const long delayRefreshTimeoutSeconds );
32 
39  long CalculateDistance( long lonX1, long latY1, long lonX2, long latY2 );
40  void OnRequestManualBusStopChange( unsigned long requestedTripBusStopIndex );
41  void OnPositionChanged( long latitude, long longitude, double altitude, double speed, SGPSTimePal time );
42  void OnBusStopArrival( const int busStopTripIndex, const GPSDefines::BusStopChangeType busStopChangeType );
43  void OnBusStopDeparture( const int busStopTripIndex, const GPSDefines::BusStopChangeType busStopChangeType );
44  bool IsOnBusStop();
45 
46  void ResetDelayTimeout();
47 
49 
55  void GetLastKnownPosition( long &latitude, long &longitude );
56 
62  ApplicationDefines::ResultValue CalculateDelayAccordingToBusStop( const int tripBusStopIndex, int &delay );
63 
65 
66 protected:
67  virtual void ChangeAlgorithm( GPSDefines::GPSAlgorithmType gpsAlgorithmType );
68  virtual void PostApplicationEvent( long eventType, BusStopChangeEvent *event );
69  virtual void PostApplicationEvent( long eventType, SynchroPointEvent *event );
70  virtual void OnSynchronizationOnBusStopFinished( const int actualTripBusStopOrder );
71  virtual void OnSynchronizationOnRoutePointFinished( const int actualTripBusStopOrder, const RouteSynchroPoint &routeSynchroPoint );
72 
73 private slots:
74  void OnDelayTimeOut();
75 
76 private:
78 
79  friend class ApplicationStateManager;
82  friend class GPSAlgorithmOutOfIssue;
83  friend class GPSAlgorithmSynchronization;
84 
85  void StartSynchronization( const int actualTripBusStopOrder );
86 
87  class DataClass;
88  QScopedPointer<DataClass> d;
89 
91 };
92 
93 #endif
void OnBusStopDeparture(const int busStopTripIndex, const GPSDefines::BusStopChangeType busStopChangeType)
Definition: GPSBusinessLogic.cpp:273
Definition: GPSBusinessLogic.cpp:68
virtual void OnSynchronizationOnRoutePointFinished(const int actualTripBusStopOrder, const RouteSynchroPoint &routeSynchroPoint)
Definition: GPSBusinessLogic.cpp:335
virtual ~GPSBusinessLogic()
Definition: GPSBusinessLogic.cpp:135
Definition: ApplicationDefines.h:194
Definition: ApplicationStateManager.h:43
void OnManualBusStopSynchronization()
Definition: GPSBusinessLogic.cpp:486
Definition: GPSAlgorithmSynchronization.h:6
The BusinessLogic class is the base class of all business logic classes. Every inherited class has to...
Definition: BusinessLogic.h:11
ApplicationDefines::ResultValue CalculateDelayAccordingToBusStop(const int tripBusStopIndex, int &delay)
CalculateDelayOnBusStop - calculates delay by tariff time by defined trip bus stop order tripBusStopI...
Definition: GPSBusinessLogic.cpp:381
void IssueIn(const QList< RouteBusStop > &modelRoute, const int32_t actualTripBusStopindex)
Definition: GPSBusinessLogic.cpp:139
Definition: GPSBusinessLogic.h:18
ResultValue
Definition: ApplicationDefines.h:92
bool IsOnBusStop()
Definition: GPSBusinessLogic.cpp:280
virtual void ChangeAlgorithm(GPSDefines::GPSAlgorithmType gpsAlgorithmType)
Definition: GPSBusinessLogic.cpp:300
Definition: GPSAlgorithmArrivalOnFirstBusStop.h:6
void OnPositionChanged(long latitude, long longitude, double altitude, double speed, SGPSTimePal time)
Definition: GPSBusinessLogic.cpp:250
void UpdateModelRoute(const QList< RouteBusStop > &modelRoute)
Definition: GPSBusinessLogic.cpp:176
static const ApplicationDefines::BusinessLogicType mBusinessLogicType
Definition: GPSBusinessLogic.h:22
void OnBusStopArrival(const int busStopTripIndex, const GPSDefines::BusStopChangeType busStopChangeType)
Definition: GPSBusinessLogic.cpp:266
virtual void PostApplicationEvent(long eventType, BusStopChangeEvent *event)
Definition: GPSBusinessLogic.cpp:312
Definition: BusStopChangeEvent.h:6
long CalculateDistance(long lonX1, long latY1, long lonX2, long latY2)
Calculates distance between two points in meters.
Definition: GPSBusinessLogic.cpp:194
Definition: GPSAlgorithmArrivalOnNextBusStop.h:6
Definition: SynchroPointEvent.h:6
void GetLastKnownPosition(long &latitude, long &longitude)
GetLastKnownPosition - returns last known GPS coordinates.
Definition: GPSBusinessLogic.cpp:375
void SetDelayRefreshTimeout(const long delayRefreshTimeoutSeconds)
Definition: GPSBusinessLogic.cpp:189
virtual void OnSynchronizationOnBusStopFinished(const int actualTripBusStopOrder)
Definition: GPSBusinessLogic.cpp:322
BusinessLogicType
Definition: ApplicationDefines.h:186
void OnRequestManualBusStopChange(unsigned long requestedTripBusStopIndex)
Definition: GPSBusinessLogic.cpp:203
Definition: EMVTerminalBusinessLogic.h:10
Definition: QadraMessagesBusinessLogic.h:11
Definition: RouteData.h:129
Definition: GPSAlgorithmOutOfIssue.h:6
void IssueOut()
Definition: GPSBusinessLogic.cpp:169
void ResetDelayTimeout()
Definition: GPSBusinessLogic.cpp:285
Definition: RouteData.h:57
GPSBusinessLogic()
Definition: GPSBusinessLogic.cpp:126
GPSAlgorithmType
Definition: GPSDefines.h:11
int GetGPSBearingDegrees()
Definition: GPSBusinessLogic.cpp:295
BusStopChangeType
Definition: GPSDefines.h:30