ITS
Facilities.cpp
Go to the documentation of this file.
1 #include "Facilities.h"
2 
3 Facilities::Facilities(Manager *man, GeoNet *geonet, bool cam, bool denm, bool bluetooth, bool ut, QMutex* mutex)
4 {
5  m_mutex = mutex;
6  if(m_mutex != 0)
7  m_mutex->lock();
8 
9  m_geonet = geonet;
10  m_paramGPS = (FakeGPSProvider*)man->hashMap["GPS"];
11  m_paramConf = (ParameterConfiguration*)man->hashMap["Configuration"];
12  m_paramAppli = (FakeApplicationProvider*)man->hashMap["Application"];
13  m_paramCAN = (FakeCANProvider*)man->hashMap["CAN"];
14  m_paramDENM = (ParameterDENM*)man->hashMap["DENM"];
15  m_paramUt = (ParameterUpperTester*)man->hashMap["UpperTester"];
16  m_paramNetwork = (ParameterNetwork*)man->hashMap["Network"];
17  m_cam = cam;
18  m_denm = denm;
19  m_bluetooth = bluetooth;
20  m_ut = ut;
21 
22  if(!m_cam && !m_denm)
23  {
24  m_cam=true;
25  m_denm=true;
26  }
27 
28  if(m_mutex != 0)
29  m_mutex->unlock();
30 }
31 
33 {
34  if(m_mutex != 0)
35  m_mutex->lock();
36 
37  if(m_cam)
38  {
39  threadCA = new QThread;
41  m_caBasicService->moveToThread(threadCA);
42  QObject::connect(threadCA, SIGNAL(started()), m_caBasicService, SLOT(execute()));
43  threadCA->start();
44 
45  QThread* threadCARM = new QThread;
47  ca->moveToThread(threadCARM);
48  QObject::connect(threadCARM, SIGNAL(started()), ca, SLOT(execute()));
49  threadCARM->start();
50  }
51 
52  if(m_denm)
53  {
54  printf("DUT=%d\n", m_ut);
55  threadDEN = new QThread;
58  m_denBasicService->moveToThread(threadDEN);
59  //QObject::connect(threadDEN, SIGNAL(started()), m_denBasicService, SLOT(getAppRequest()));
60  threadDEN->start();
61  }
62 
63  if(m_mutex != 0)
64  m_mutex->unlock();
65 }
66 
68 {
69  while(udpSocket_ind->hasPendingDatagrams())
70  {
71  quint16 destination;
72  QByteArray datagram;
73  datagram.resize(udpSocket_ind->pendingDatagramSize());
74 
75  udpSocket_ind->readDatagram(datagram.data(), datagram.size());
76  destination = split((const unsigned char*)datagram.data(), 0, 2);
77 /*
78  switch (destination)
79  {
80  case btpPort_CAM:
81  udpSocket_ind->writeDatagram(datagram, QHostAddress::LocalHost, btpPort_CAM);
82  break;
83  case btpPort_DENM:
84  udpSocket_ind->writeDatagram(datagram, QHostAddress::LocalHost, btpPort_DENM);
85  break;
86  default:
87  break;
88  }
89 */
90  udpSocket_ind->writeDatagram(datagram, QHostAddress::LocalHost, destination);
91  }
92 }
93 
95 {
96  if(m_cam)
98  if(m_denm)
100 }
FakeApplicationProvider * m_paramAppli
Definition: Facilities.h:63
ParameterDENM * m_paramDENM
Definition: Facilities.h:65
bool m_ut
Definition: Facilities.h:71
void getNetworkAndTransportLayerIndication()
getNetworkAndTransportLayerIndication Slot used to receive payload.
Definition: Facilities.cpp:67
ParameterUpperTester * m_paramUt
Definition: Facilities.h:66
unsigned long long int split(const unsigned char *msg, int begin, int end)
split Extract number from byte array.
Definition: api.cpp:47
bool m_cam
Definition: Facilities.h:68
void execute()
execute Execute the CAM and DENM if needed.
Definition: Facilities.cpp:32
QHash< QString, void * > hashMap
Definition: Manager.h:53
Facilities layer.
QThread * threadDEN
Definition: Facilities.h:74
QMutex * m_mutex
Definition: Facilities.h:72
FakeGPSProvider * m_paramGPS
Definition: Facilities.h:61
void utInitialize()
utInitialize Initialize the Facilities layer.
Definition: Facilities.cpp:94
QThread * threadCA
Definition: Facilities.h:73
bool m_denm
Definition: Facilities.h:69
QUdpSocket * udpSocket_ind
Definition: Facilities.h:59
bool m_bluetooth
Definition: Facilities.h:70
GeoNet * m_geonet
Definition: Facilities.h:60
void utInitialize()
utInitialize Initialize the ITS-S.
FakeCANProvider * m_paramCAN
Definition: Facilities.h:64
Facilities(Manager *man, GeoNet *geonet=0, bool cam=0, bool denm=0, bool bluetooth=false, bool ut=false, QMutex *mutex=0)
Facilities Facilities constructor.
Definition: Facilities.cpp:3
ParameterNetwork * m_paramNetwork
Definition: Facilities.h:67
caBasicService * m_caBasicService
Definition: Facilities.h:76
Definition: Geonet.h:42
ParameterConfiguration * m_paramConf
Definition: Facilities.h:62
void utInitialize()
utInitialize Initialize the CA Basic Service.
denBasicService * m_denBasicService
Definition: Facilities.h:77