ITS
UpperTester.h
Go to the documentation of this file.
1 
7 #ifndef UPPERTESTER_H
8 #define UPPERTESTER_H
9 
10 #include <QObject>
11 #include <QMutex>
12 #include <QThread>
13 #include <QUdpSocket>
14 #include <QHash>
15 #include <Manager.h>
16 #include <FakeGPSProvider.h>
17 #include <Geonet.h>
18 #include <Facilities.h>
19 #include <AppDenmTriggerData.h>
20 #include <AppDenmTerminationData.h>
21 #include <AppDenmUpdateData.h>
22 #include <UpperTesterPrimitives.h>
23 
24 #define NB_REQUEST 256
25 
26 class UpperTester : public QObject
27 {
28  Q_OBJECT
29 
30  typedef QByteArray(UpperTester::*UpperTesterPrimitive)(void);
35  enum e_utShape
36  {
40  };
41 
42 public:
46  UpperTester();
56  UpperTester(Manager* man, FakeCANProvider* can, FakeGPSProvider* gps, GeoNet* gn, Facilities* fac, QMutex* mutex = 0);
61  UpperTester(const UpperTester& other);
62 
63 signals:
67  void utInit();
68 
69 public slots:
73  void readPendingDatagrams();
77  void readInternalDatagrams();
78 
79 private:
80  // C.2. Common Upper Tester Primitives
88  QByteArray utInitialize();
96  QByteArray utInitializeResult(bool success);
97 
106  QByteArray utChangePosition();
114  QByteArray utChangePositionResult(bool success);
115 
123  QByteArray utChangePseudonym();
131  QByteArray utChangePseudonymResult(bool success);
132 
133  // C.3 CAM Upper Tester Primitives
141  QByteArray utCamTriggerResult(bool success);
142 
151  QByteArray utChangeCurvature();
160  QByteArray utChangeSpeed();
168  QByteArray utSetAccelerationControlStatus();
176  QByteArray utSetExteriorLightsStatus();
185  QByteArray utChangeHeading();
193  QByteArray utSetDriveDirection();
202  QByteArray utChangeYawRate();
210  QByteArray utSetStationType();
218  QByteArray utSetVehicleRole();
226  QByteArray utSetEmbarkationStatus();
234  QByteArray utSetPtActivation();
242  QByteArray utSetDangerousGoods();
250  QByteArray utSetLightBarSiren();
251 
252  // C.4. DENM Upper Tester Primitives
261  QByteArray utDenmResult(UpperTesterPrimitives::e_DENMUpperTesterPrimitives messageType, bool success, ActionID_t actionID);
270  QByteArray utDenmTriggerResult(bool success, ActionID_t actionID);
277  QByteArray utDenmTrigger();
286  QByteArray utDenmUpdateResult(bool success, ActionID_t actionID);
293  QByteArray utDenmUpdate();
302  QByteArray utDenmTerminateResult(bool success, ActionID_t actionID);
309  QByteArray utDenmTerminate();
310 
311  // C.5. GeoNetworking Upper Tester Primitives
319  QByteArray utGnTriggerResult(bool success);
326  QByteArray sendGUC();
333  QByteArray sendGBC();
340  QByteArray sendGAC();
347  QByteArray sendSHB();
354  QByteArray sendTSB();
355 
356  QUdpSocket* m_readSocket;
358  QUdpSocket* m_writeSocket;
359  QUdpSocket* m_denmSocket;
360  QMutex* m_mutex;
362  QHostAddress m_lastSenderAddress;
372  quint16 m_appPort;
373  QUdpSocket *m_appSocket;
374 };
375 
376 #endif // UPPERTESTER_H
void readPendingDatagrams()
readPendingDatagrams Slot used when receiving a primitive.
Definition: UpperTester.cpp:90
quint16 m_appPort
Definition: UpperTester.h:372
QByteArray utDenmTerminateResult(bool success, ActionID_t actionID)
utDenmTerminationResult UtDenmTerminationResult primitive.
QUdpSocket * m_denmSocket
Definition: UpperTester.h:359
QByteArray utSetAccelerationControlStatus()
utSetAccelerationControlStatus UtSetAccelerationControlStatus primitive
QByteArray utGnTriggerResult(bool success)
utGnTriggerResult utGnTriggerResult result primitive.
QByteArray utCamTriggerResult(bool success)
utCamTriggerResult UtCamTrigger result primitive.
QByteArray utSetDangerousGoods()
utSetDangerousGoods UtSetDangerousGoods primitive.
QByteArray utDenmUpdateResult(bool success, ActionID_t actionID)
utDenmUpdateResult UtDenmUpdateResult primitive.
QByteArray utSetExteriorLightsStatus()
utSetExteriorLightsStatus UtSetExteriorLightsStatus primitive.
QByteArray sendGBC()
sendGUC GenerateGeoBroadcast primitive.
QHostAddress m_lastSenderAddress
Definition: UpperTester.h:362
QByteArray utChangePositionResult(bool success)
utChangePositionResult UtChangePosition result primitive.
QByteArray utInitializeResult(bool success)
utInitializeResult UtInitialize result primitive.
Facilities * m_facilities
Definition: UpperTester.h:369
AppDenmTermination definition.
QUdpSocket * m_readSocket
Definition: UpperTester.h:356
Manager class.
QByteArray utDenmTriggerResult(bool success, ActionID_t actionID)
utDenmTriggerResult UtDenmTriggerResult primitive.
ParameterUpperTester * m_paramUpperTester
Definition: UpperTester.h:371
N&T layer.
FakeCANProvider * m_canProvider
Definition: UpperTester.h:367
UpperTesterPrimitive m_req[NB_REQUEST]
Definition: UpperTester.h:361
Manager * m_manager
Definition: UpperTester.h:365
QByteArray utSetVehicleRole()
utSetVehicleRole UtSetVehicleRole primitive.
Facilities layer.
QByteArray utInitialize()
utInitialize UtInitialize primitive.
QByteArray sendGAC()
sendGUC GenerateGeoAnycast primitive.
AppDenmTrigger definition.
e_utShape
The e_utShape enum defines destaination area shapes.
Definition: UpperTester.h:35
void utInit()
utInit Signal used when UtInitlize is received.
QByteArray utSetPtActivation()
utSetPtActivation UtSetPtActivation primitive.
Primitives message types definition.
void readInternalDatagrams()
readInternalDatagrams Slot used when receiving a result or an event indication.
QByteArray(UpperTester::* UpperTesterPrimitive)(void)
Definition: UpperTester.h:30
QUdpSocket * m_readEventIndicationSocket
Definition: UpperTester.h:357
#define NB_REQUEST
Definition: UpperTester.h:24
AppDenmUpdate serializer.
QByteArray utChangeCurvature()
utChangeCurvature UtChangecurvature primitive.
UpperTester()
UpperTester UpperTester constructor.
Definition: UpperTester.cpp:10
QByteArray utSetEmbarkationStatus()
utSetEmbarkationStatus UtSetEmbarkationStatus primitive.
QByteArray utChangeHeading()
utChangeHeading UtChangeHeading primitive.
QByteArray sendTSB()
sendGUC GenerateTSB primitive.
QByteArray utChangePosition()
utChangePosition UtChangePosition primitive.
QUdpSocket * m_writeSocket
Definition: UpperTester.h:358
QByteArray utChangeSpeed()
utChangeSpeed UtChangeSpeed primitive.
QByteArray utChangePseudonymResult(bool success)
utChangePseudonymResult UtChangePseudonym result primitive.
QByteArray utChangePseudonym()
utChangePseudonym UtChangePseudonym primitive.
int m_lastSenderPort
Definition: UpperTester.h:363
QByteArray sendGUC()
sendGUC GenerateGeoUnicast primitive.
QByteArray utSetDriveDirection()
utSetDriveDirection UtSetDriverDirection primitive.
QByteArray utSetStationType()
utSetStationType UtSetStationType primitive.
QUdpSocket * m_appSocket
Definition: UpperTester.h:373
QByteArray utDenmTrigger()
utDenmTrigger GenerateDenmEvent primitive.
QByteArray utSetLightBarSiren()
utSetLightBarSiren UtSetLightBarSiren primitive.
QByteArray utDenmTerminate()
utDenmTerminate TerminateDenmEvent primitive.
QByteArray utDenmUpdate()
utDenmUpdate UpdateDenmEvent primitive.
QByteArray sendSHB()
sendGUC GenerateSHB primitive.
GeoNet * m_geonet
Definition: UpperTester.h:368
enum UpperTesterPrimitives::DENMUpperTesterPrimitives_enum e_DENMUpperTesterPrimitives
The e_DENMUpperTesterPrimitives enum defines the DENM UpperTester primitives message types...
GPS provider for testing purposes.
ParameterConfiguration * m_paramConf
Definition: UpperTester.h:370
QByteArray utChangeYawRate()
utChangeYawRate UtChangeYawRate primitive.
FakeGPSProvider * m_gpsProvider
Definition: UpperTester.h:366
Definition: Geonet.h:42
QMutex * m_mutex
Definition: UpperTester.h:360
QByteArray utDenmResult(UpperTesterPrimitives::e_DENMUpperTesterPrimitives messageType, bool success, ActionID_t actionID)
utDenmResult Result of a DENM primitive.