ITS
|
#include <denTriggeringManagement.h>
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 |
FakeGPSProvider * | m_paramGPS |
FakeApplicationProvider * | m_paramAppli |
ParameterDENM * | m_paramDENM |
ParameterConfiguration * | m_paramConf |
FakeCANProvider * | m_paramCan |
GeoNet * | m_geonet |
DestinationAreaData | m_defaultDestination |
quint16 | m_appPort |
Definition at line 27 of file denTriggeringManagement.h.
denTriggeringManagement::denTriggeringManagement | ( | FakeGPSProvider * | gps, |
FakeApplicationProvider * | appli, | ||
ParameterDENM * | denm, | ||
GeoNet * | gn, | ||
ParameterConfiguration * | conf, | ||
FakeCANProvider * | can, | ||
ParameterNetwork * | network | ||
) |
denTriggeringManagement denTriggeringManagement constructor.
gps | GPS. |
appli | Application parameters. |
denm | DENM configuration. |
gn | N&T layer. |
conf | Configuration parameters. |
can | CAN bus. |
network | Network 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.
void denTriggeringManagement::AppDENM_cancellation | ( | AppDenmTerminationData | termination, |
ActionID_t | actionID | ||
) |
AppDENM_cancellation Cancels a 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().
void denTriggeringManagement::AppDENM_result | ( | ActionID_t | actionID, |
bool | success, | ||
AppDenmResultData::e_failureNotification | failureNotification, | ||
DENM_t * | denm | ||
) |
AppDENM_result Result of request.
actionID | ActionID of the DENM. |
success | Success of the request. |
failureNotification | If success equals false, reason of the failure. |
denm | The 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().
void denTriggeringManagement::AppDENM_terminationIndication | ( | ActionID | actionID | ) |
AppDENM_terminationIndication Indication of the termination of a DENM.
Definition at line 551 of file denTriggeringManagement.cpp.
References m_appPort, and AppDenmTerminationIndication::toBin().
Referenced by discardDENMFromTriggeredTable().
void denTriggeringManagement::AppDENM_trigger | ( | QByteArray | datagram | ) |
AppDENM_trigger Triggers a DENM.
datagram | The 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().
void denTriggeringManagement::AppDENM_update | ( | QByteArray | datagram | ) |
AppDENM_update Updates a DENM.
datagram | The 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().
|
signal |
appDenmResult Signal used to send result to the Application layer.
Referenced by AppDENM_result().
|
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.
|
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().
void denTriggeringManagement::killTriggeredThreads | ( | ) |
killTriggeredThreads Kills the triggered threads.
Definition at line 30 of file denTriggeringManagement.cpp.
References m_triggeredDENM.
Referenced by utInitialize().
bool denTriggeringManagement::PassDenmToNetworkAndTransportLayerTrigger | ( | AppDenmTriggerData | data, |
char * | msg, | ||
int | denmLength | ||
) |
PassDenmToNetworkAndTransportLayerTrigger Pass DENM to the N&T layer.
data | Data to fill the GN DataRequest. |
msg | The encoded DENM. |
denmLength | The encoded DENM length. |
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().
|
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().
|
inline |
setSequenceNumber Set the local sequenceNumber.
s | The new sequenceNumber. |
Definition at line 71 of file denTriggeringManagement.h.
References m_sequenceNumber.
|
signal |
setSequenceNumberSignal Signal used when local sequenceNumber changes.
Referenced by AppDENM_trigger().
|
slot |
setSequenceNumberSlot Slot used to change local sequenceNumber.
Definition at line 63 of file denTriggeringManagement.cpp.
References m_sequenceNumber.
|
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().
|
private |
Application layer port.
Definition at line 142 of file denTriggeringManagement.h.
Referenced by AppDENM_terminationIndication(), and denTriggeringManagement().
|
private |
Destination area used when unknwon.
Definition at line 141 of file denTriggeringManagement.h.
|
private |
N&T layer.
Definition at line 139 of file denTriggeringManagement.h.
Referenced by denTriggeringManagement(), and PassDenmToNetworkAndTransportLayerTrigger().
|
private |
Mutex used when looking at message table.
Definition at line 132 of file denTriggeringManagement.h.
Referenced by AppDENM_cancellation(), AppDENM_update(), appendTriggeredDenm(), denTriggeringManagement(), repeatDENMFromTriggeredTable(), and utInitialize().
|
private |
Application parameters.
Definition at line 135 of file denTriggeringManagement.h.
Referenced by AppDENM_cancellation(), AppDENM_trigger(), AppDENM_update(), denTriggeringManagement(), and repeatDENMFromTriggeredTable().
|
private |
CAN bus.
Definition at line 138 of file denTriggeringManagement.h.
Referenced by denTriggeringManagement().
|
private |
Global configuration.
Definition at line 137 of file denTriggeringManagement.h.
Referenced by denTriggeringManagement().
|
private |
DENM configuration.
Definition at line 136 of file denTriggeringManagement.h.
Referenced by AppDENM_result(), and denTriggeringManagement().
|
private |
GPS.
Definition at line 134 of file denTriggeringManagement.h.
Referenced by AppDENM_cancellation(), AppDENM_trigger(), AppDENM_update(), denTriggeringManagement(), and PassDenmToNetworkAndTransportLayerTrigger().
|
private |
Local sequenceNumber.
Definition at line 129 of file denTriggeringManagement.h.
Referenced by AppDENM_trigger(), denTriggeringManagement(), setSequenceNumber(), setSequenceNumberSlot(), and utInitialize().
|
private |
DEN Message Table Source.
Definition at line 131 of file denTriggeringManagement.h.
Referenced by AppDENM_cancellation(), AppDENM_trigger(), AppDENM_update(), appendTriggeredDenm(), discardDENMFromTriggeredTable(), killTriggeredThreads(), repeatDENMFromTriggeredTable(), and utInitialize().