ITS
denTriggeringManagement Class Reference

#include <denTriggeringManagement.h>

Inheritance diagram for denTriggeringManagement:
[legend]
Collaboration diagram for denTriggeringManagement:
[legend]

Public Slots

void utInitialize ()
 utInitialize Initializes the DEN Triggering Management. More...
 
void appendTriggeredDenm (denMessageTableSource *)
 appendTriggeredDenm Slot used when a DENM is appended to the message table. More...
 
void setSequenceNumberSlot (quint16)
 setSequenceNumberSlot Slot used to change local sequenceNumber. More...
 
void discardDENMFromTriggeredTable (ActionID_t)
 discardDENMFromTriggeredTable Slot used to discard DENM from message table. More...
 
void repeatDENMFromTriggeredTable (ActionID_t)
 repeatDENMFromTriggeredTable Slot used to repeat a DENM. More...
 

Signals

void setSequenceNumberSignal (quint16)
 setSequenceNumberSignal Signal used when local sequenceNumber changes. More...
 
void appDenmResult (QByteArray)
 appDenmResult Signal used to send result to the Application layer. More...
 

Public Member Functions

 denTriggeringManagement (FakeGPSProvider *gps, FakeApplicationProvider *appli, ParameterDENM *denm, GeoNet *gn, ParameterConfiguration *conf, FakeCANProvider *can, ParameterNetwork *network)
 denTriggeringManagement denTriggeringManagement constructor. More...
 
void AppDENM_result (ActionID_t actionID, bool success, AppDenmResultData::e_failureNotification failureNotification, DENM_t *denm)
 AppDENM_result Result of request. More...
 
void killTriggeredThreads ()
 killTriggeredThreads Kills the triggered threads. More...
 
bool PassDenmToNetworkAndTransportLayerTrigger (AppDenmTriggerData data, char *msg, int denmLength)
 PassDenmToNetworkAndTransportLayerTrigger Pass DENM to the N&T layer. More...
 
void setSequenceNumber (SequenceNumber_t s)
 setSequenceNumber Set the local sequenceNumber. More...
 
void AppDENM_trigger (QByteArray datagram)
 AppDENM_trigger Triggers a DENM. More...
 
void AppDENM_update (QByteArray datagram)
 AppDENM_update Updates a DENM. More...
 
void AppDENM_cancellation (AppDenmTerminationData termination, ActionID_t actionID)
 AppDENM_cancellation Cancels a DENM. More...
 
void AppDENM_terminationIndication (ActionID actionID)
 AppDENM_terminationIndication Indication of the termination of a DENM. More...
 

Private Attributes

SequenceNumber_t m_sequenceNumber
 
QVector< denMessageTableSource * > m_triggeredDENM
 
QMutex * m_mutexTriggering
 
FakeGPSProviderm_paramGPS
 
FakeApplicationProviderm_paramAppli
 
ParameterDENMm_paramDENM
 
ParameterConfigurationm_paramConf
 
FakeCANProviderm_paramCan
 
GeoNetm_geonet
 
DestinationAreaData m_defaultDestination
 
quint16 m_appPort
 

Detailed Description

Definition at line 27 of file denTriggeringManagement.h.

Constructor & Destructor Documentation

◆ denTriggeringManagement()

denTriggeringManagement::denTriggeringManagement ( FakeGPSProvider gps,
FakeApplicationProvider appli,
ParameterDENM denm,
GeoNet gn,
ParameterConfiguration conf,
FakeCANProvider can,
ParameterNetwork network 
)

denTriggeringManagement denTriggeringManagement constructor.

Parameters
gpsGPS.
appliApplication parameters.
denmDENM configuration.
gnN&T layer.
confConfiguration parameters.
canCAN bus.
networkNetwork configuration.

Definition at line 3 of file denTriggeringManagement.cpp.

References ParameterNetwork::internalPort(), m_appPort, m_geonet, m_mutexTriggering, m_paramAppli, m_paramCan, m_paramConf, m_paramDENM, m_paramGPS, and m_sequenceNumber.

Here is the call graph for this function:

Member Function Documentation

◆ AppDENM_cancellation()

void denTriggeringManagement::AppDENM_cancellation ( AppDenmTerminationData  termination,
ActionID_t  actionID 
)

AppDENM_cancellation Cancels a DENM.

Parameters
terminationThe cancellation request.
actionIDActionID of the DENM.

Definition at line 435 of file denTriggeringManagement.cpp.

References ManagementContainer::actionID, AppDENM_result(), asn_DEF_DENM, asn_fprint(), asn_long2INTEGER(), AppDenmResultData::cannotCreateDENM_unableToEncodeDENM, AppDenmResultData::cannotSendDENM, FakeApplicationProvider::data(), DENM::denm, AppDenmTerminationData::destinationArea(), ManagementContainer::detectionTime, discardDENMFromTriggeredTable(), asn_enc_rval_s::encoded, AppDenmResultData::eventDoesNotExist, AppDenmResultData::eventNotActive, asn_enc_rval_s::failed_type, fill_ManagementContainer(), haveDENM(), DENM::header, m_mutexTriggering, m_paramAppli, m_paramGPS, m_triggeredDENM, DecentralizedEnvironmentalNotificationMessage::management, MSG_LENGTH, asn_TYPE_descriptor_s::name, ActionID::originatingStationID, PassDenmToNetworkAndTransportLayerTrigger(), print_hexa(), ManagementContainer::referenceTime, ActionID::sequenceNumber, denMessageTableSource::state_ACTIVE, AppDenmResultData::success, Termination_isCancellation, FakeGPSProvider::timestamp(), and uper_encode_to_buffer().

Referenced by denBasicService::AppDENM_terminate().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AppDENM_result()

void denTriggeringManagement::AppDENM_result ( ActionID_t  actionID,
bool  success,
AppDenmResultData::e_failureNotification  failureNotification,
DENM_t denm 
)

AppDENM_result Result of request.

Parameters
actionIDActionID of the DENM.
successSuccess of the request.
failureNotificationIf success equals false, reason of the failure.
denmThe DENM requested.

Definition at line 74 of file denTriggeringManagement.cpp.

References appDenmResult(), m_paramDENM, and AppDenmResultData::toBin().

Referenced by AppDENM_cancellation(), AppDENM_trigger(), and AppDENM_update().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AppDENM_terminationIndication()

void denTriggeringManagement::AppDENM_terminationIndication ( ActionID  actionID)

AppDENM_terminationIndication Indication of the termination of a DENM.

Parameters
actionIDActionID of the DENM.

Definition at line 551 of file denTriggeringManagement.cpp.

References m_appPort, and AppDenmTerminationIndication::toBin().

Referenced by discardDENMFromTriggeredTable().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AppDENM_trigger()

void denTriggeringManagement::AppDENM_trigger ( QByteArray  datagram)

AppDENM_trigger Triggers a DENM.

Parameters
datagramThe triggering request.

Definition at line 83 of file denTriggeringManagement.cpp.

References ManagementContainer::actionID, DecentralizedEnvironmentalNotificationMessage::alacarte, AppDenmTriggerData::alacarte(), AppDENM_result(), asn_DEF_DENM, asn_long2INTEGER(), ASN_SEQUENCE_ADD, assignUnusedActionID(), calculate_T_O_Validity(), AppDenmResultData::cannotCreateDENM_unableToCollectRequiredData, AppDenmResultData::cannotCreateDENM_unableToEncodeDENM, AppDenmResultData::cannotSendDENM, FakeGPSProvider::data(), FakeApplicationProvider::data(), defaultActionID(), DENM::denm, AppDenmTriggerData::destinationArea(), discardDENMFromTriggeredTable(), AppDenmResultData::eventIsInThePast, fill_AlacarteContainer(), fill_ItsPduHeader(), fill_LocationContainer(), fill_ManagementContainer(), fill_SituationContainer(), DENM::header, DecentralizedEnvironmentalNotificationMessage::location, AppDenmTriggerData::location(), m_paramAppli, m_paramGPS, m_sequenceNumber, denMessageTableSource::m_thread, m_triggeredDENM, DecentralizedEnvironmentalNotificationMessage::management, MSG_LENGTH, ActionID::originatingStationID, PassDenmToNetworkAndTransportLayerTrigger(), print_hexa(), ManagementContainer::referenceTime, repeatDENMFromTriggeredTable(), AppDenmTriggerData::repetitionDuration(), AppDenmTriggerData::repetitionInterval(), ActionID::sequenceNumber, denMessageTableSource::setActionID(), denMessageTableSource::setDENM(), denMessageTableSource::setDestinationArea(), setSequenceNumberSignal(), denMessageTableSource::setStatus(), denMessageTableSource::setT_O_Validity(), denMessageTableSource::setT_Repetition(), denMessageTableSource::setT_RepetitionDuration(), denMessageTableSource::setTrafficClass(), DecentralizedEnvironmentalNotificationMessage::situation, AppDenmTriggerData::situation(), denMessageTableSource::state_ACTIVE, ParameterApplication::stationID(), AppDenmResultData::success, FakeGPSProvider::timestamp(), TrafficClassData::toInt(), LocationContainer::traces, AppDenmTriggerData::trafficClass(), ManagementContainer::transmissionInterval, AppDenmTriggerData::transmissionInterval(), and uper_encode_to_buffer().

Referenced by denBasicService::getAppRequest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AppDENM_update()

void denTriggeringManagement::AppDENM_update ( QByteArray  datagram)

AppDENM_update Updates a DENM.

Parameters
datagramThe updating request.

Definition at line 242 of file denTriggeringManagement.cpp.

References ManagementContainer::actionID, AppDenmUpdateData::actionID(), DecentralizedEnvironmentalNotificationMessage::alacarte, AppDenmUpdateData::alacarte(), AppDENM_result(), asn_DEF_DENM, asn_long2INTEGER(), ASN_SEQUENCE_ADD, AppDenmResultData::cannotCreateDENM_unableToCollectRequiredData, AppDenmResultData::cannotCreateDENM_unableToEncodeDENM, AppDenmResultData::cannotSendDENM, FakeApplicationProvider::data(), DefaultValidity, DENM::denm, AppDenmUpdateData::destinationArea(), discardDENMFromTriggeredTable(), AppDenmResultData::eventDoesNotExist, AppDenmResultData::eventIsInThePast, AppDenmUpdateData::eventUpdateDetectionTime(), fill_AlacarteContainer(), fill_ItsPduHeader(), fill_LocationContainer(), fill_ManagementContainer(), fill_SituationContainer(), haveDENM(), DENM::header, itsGnDefaultTrafficClass, DecentralizedEnvironmentalNotificationMessage::location, AppDenmUpdateData::location(), m_mutexTriggering, m_paramAppli, m_paramGPS, m_triggeredDENM, DecentralizedEnvironmentalNotificationMessage::management, MSG_LENGTH, ActionIDData::originatingStationID(), PassDenmToNetworkAndTransportLayerTrigger(), ManagementContainer::referenceTime, repeatDENMFromTriggeredTable(), AppDenmUpdateData::repetitionDuration(), ActionIDData::sequenceNumber(), setSituationContainer(), DecentralizedEnvironmentalNotificationMessage::situation, AppDenmUpdateData::situation(), denMessageTableSource::state_ACTIVE, ParameterApplication::stationID(), AppDenmResultData::success, FakeGPSProvider::timestamp(), ActionIDData::toASN(), TrafficClassData::toInt(), LocationContainer::traces, AppDenmUpdateData::trafficClass(), ManagementContainer::transmissionInterval, AppDenmUpdateData::transmissionInterval(), uper_encode_to_buffer(), and AppDenmUpdateData::validityDuration().

Referenced by denBasicService::getAppRequest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ appDenmResult

void denTriggeringManagement::appDenmResult ( QByteArray  )
signal

appDenmResult Signal used to send result to the Application layer.

Referenced by AppDENM_result().

Here is the caller graph for this function:

◆ appendTriggeredDenm

void denTriggeringManagement::appendTriggeredDenm ( denMessageTableSource entry)
slot

appendTriggeredDenm Slot used when a DENM is appended to the message table.

Definition at line 68 of file denTriggeringManagement.cpp.

References m_mutexTriggering, and m_triggeredDENM.

◆ discardDENMFromTriggeredTable

void denTriggeringManagement::discardDENMFromTriggeredTable ( ActionID_t  actionID)
slot

discardDENMFromTriggeredTable Slot used to discard DENM from message table.

Definition at line 531 of file denTriggeringManagement.cpp.

References AppDENM_terminationIndication(), haveDENM(), m_triggeredDENM, ActionID::originatingStationID, ActionID::sequenceNumber, and denMessageTableSource::state_CANCELED.

Referenced by AppDENM_cancellation(), AppDENM_trigger(), and AppDENM_update().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ killTriggeredThreads()

void denTriggeringManagement::killTriggeredThreads ( )

killTriggeredThreads Kills the triggered threads.

Definition at line 30 of file denTriggeringManagement.cpp.

References m_triggeredDENM.

Referenced by utInitialize().

Here is the caller graph for this function:

◆ PassDenmToNetworkAndTransportLayerTrigger()

bool denTriggeringManagement::PassDenmToNetworkAndTransportLayerTrigger ( AppDenmTriggerData  data,
char *  msg,
int  denmLength 
)

PassDenmToNetworkAndTransportLayerTrigger Pass DENM to the N&T layer.

Parameters
dataData to fill the GN DataRequest.
msgThe encoded DENM.
denmLengthThe encoded DENM length.
Returns
True if the N&T layer succeeds to send DENM.

Definition at line 516 of file denTriggeringManagement.cpp.

References FakeGPSProvider::data(), GeoNet::geonetError_success, gnDataRequestFromAppDenmTriggerData(), m_geonet, m_paramGPS, gnDataRequest_s::payload, and GeoNet::send().

Referenced by AppDENM_cancellation(), AppDENM_trigger(), AppDENM_update(), and repeatDENMFromTriggeredTable().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ repeatDENMFromTriggeredTable

void denTriggeringManagement::repeatDENMFromTriggeredTable ( ActionID_t  actionID)
slot

repeatDENMFromTriggeredTable Slot used to repeat a DENM.

Definition at line 564 of file denTriggeringManagement.cpp.

References ManagementContainer::actionID, asn_DEF_DENM, FakeApplicationProvider::data(), DENM::denm, asn_enc_rval_s::encoded, asn_enc_rval_s::failed_type, haveDENM(), DENM::header, m_mutexTriggering, m_paramAppli, m_triggeredDENM, DecentralizedEnvironmentalNotificationMessage::management, MSG_LENGTH, asn_TYPE_descriptor_s::name, ActionID::originatingStationID, PassDenmToNetworkAndTransportLayerTrigger(), ActionID::sequenceNumber, ItsPduHeader::stationID, ParameterApplication::stationID(), and uper_encode_to_buffer().

Referenced by AppDENM_trigger(), and AppDENM_update().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setSequenceNumber()

void denTriggeringManagement::setSequenceNumber ( SequenceNumber_t  s)
inline

setSequenceNumber Set the local sequenceNumber.

Parameters
sThe new sequenceNumber.

Definition at line 71 of file denTriggeringManagement.h.

References m_sequenceNumber.

◆ setSequenceNumberSignal

void denTriggeringManagement::setSequenceNumberSignal ( quint16  )
signal

setSequenceNumberSignal Signal used when local sequenceNumber changes.

Referenced by AppDENM_trigger().

Here is the caller graph for this function:

◆ setSequenceNumberSlot

void denTriggeringManagement::setSequenceNumberSlot ( quint16  sequenceNumber)
slot

setSequenceNumberSlot Slot used to change local sequenceNumber.

Definition at line 63 of file denTriggeringManagement.cpp.

References m_sequenceNumber.

◆ utInitialize

void denTriggeringManagement::utInitialize ( )
slot

utInitialize Initializes the DEN Triggering Management.

Definition at line 20 of file denTriggeringManagement.cpp.

References killTriggeredThreads(), m_mutexTriggering, m_sequenceNumber, and m_triggeredDENM.

Referenced by denBasicService::utInitialize().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ m_appPort

quint16 denTriggeringManagement::m_appPort
private

Application layer port.

Definition at line 142 of file denTriggeringManagement.h.

Referenced by AppDENM_terminationIndication(), and denTriggeringManagement().

◆ m_defaultDestination

DestinationAreaData denTriggeringManagement::m_defaultDestination
private

Destination area used when unknwon.

Definition at line 141 of file denTriggeringManagement.h.

◆ m_geonet

GeoNet* denTriggeringManagement::m_geonet
private

N&T layer.

Definition at line 139 of file denTriggeringManagement.h.

Referenced by denTriggeringManagement(), and PassDenmToNetworkAndTransportLayerTrigger().

◆ m_mutexTriggering

QMutex* denTriggeringManagement::m_mutexTriggering
private

◆ m_paramAppli

FakeApplicationProvider* denTriggeringManagement::m_paramAppli
private

◆ m_paramCan

FakeCANProvider* denTriggeringManagement::m_paramCan
private

CAN bus.

Definition at line 138 of file denTriggeringManagement.h.

Referenced by denTriggeringManagement().

◆ m_paramConf

ParameterConfiguration* denTriggeringManagement::m_paramConf
private

Global configuration.

Definition at line 137 of file denTriggeringManagement.h.

Referenced by denTriggeringManagement().

◆ m_paramDENM

ParameterDENM* denTriggeringManagement::m_paramDENM
private

DENM configuration.

Definition at line 136 of file denTriggeringManagement.h.

Referenced by AppDENM_result(), and denTriggeringManagement().

◆ m_paramGPS

◆ m_sequenceNumber

SequenceNumber_t denTriggeringManagement::m_sequenceNumber
private

◆ m_triggeredDENM

QVector<denMessageTableSource*> denTriggeringManagement::m_triggeredDENM
private

The documentation for this class was generated from the following files: