openETCS
case study for the European Train Control System developed for the authors dissertation
|
#include <QtCore>
#include <QtDBus>
#include <QMutex>
#include "oETCS/DF/OdometerAdaptor.h"
#include "oETCS/DF/EmergencyBrakeAdaptor.h"
#include "oETCS/DF/ServiceBrakeAdaptor.h"
#include "oETCS/DF/BaliseDeviceInAdaptor.h"
#include "oETCS/DF/BaliseDeviceOutAdaptor.h"
#include "oETCS/DF/PS/SIM/DMIInterface.h"
#include "Simulation.h"
Go to the source code of this file.
Macros | |
#define | __EVC_DBUS__ "tcp:host=192.168.56.1,port=2222" |
C wrapper functions for the simulative PSM classes. |
Functions | |
int | DMIHasInput () |
gets the DMI input status | |
void | EvaluateDMIInputs (int *pDMIType) |
gets the type of the first DMI input | |
void | GetDMIOutput (const char *const pName, char **const ppValue) |
gets a certain DMI output value | |
int | GetEmergencyActivation () |
gets the activation state | |
double | GetPosition () |
gets the current position from the odometer object | |
double | GetServiceIntensity () |
gets the activation intensity | |
double | GetVelocity () |
gets the current speed from the odometer object | |
int | InitDMI () |
initialises the module global DMI proxy | |
void | InitPSM () |
PSM D-Bus adaptor initialisations. | |
static void | QAppThread (bool *pInitialised) |
thread function for the QCoreApplication instance | |
void | ResetPosition (double dPosition) |
(re)sets the position of the odometer object | |
void | SetAdhesion (double dAdhesion) |
sets the virtual adhesion | |
void | SetDMIBooleanValue (const char *const pInputName, int iValue) |
sets a boolean input value in the DMI | |
void | SetDMIDoubleValue (const char *const pInputName, double dValue) |
sets a double input value in the DMI | |
void | SetDMIIntegerValue (const char *const pInputName, int iValue) |
sets an integer input value in the DMI | |
void | SetDMIStringValue (const char *const pInputName, const char *const pValue) |
sets a string input value in the DMI | |
void | SetEmergencyActivation (int iActication) |
sets the activation state | |
void | SetMass (double dMass) |
sets the virtual mass | |
void | SetNewInputTelegram (char *pTelegram, int iBits) |
sets a telegram as received for the PIM | |
void | SetNewInputTelegramBinary (const int *const pTelegram, int iBits) |
sets a telegram as received for the PIM in a binary format | |
void | SetServiceIntensity (double dIntensity) |
sets the activation intensity | |
void | SetVelocity (double dVelocity) |
sets the speed in the odomoeter object |
Variables | |
const int | G_SIZE_TELEGRAM_LEVEL_0_TO_1 |
global size of global telegram for ETCS Application Level switchtes from 0 to 1 | |
const int | G_SIZE_TELEGRAM_STOP_IN_SR |
global size of global telegram for ETCS Application Level switchtes from 0 to 1 | |
const int | G_TELEGRAM_LEVEL_0_TO_1 [] |
global telegram for ETCS Application Level switchtes from 0 to 1 | |
const int | G_TELEGRAM_LEVEL_STOP_IN_SR [] |
global telegram for ETCS Application Level switchtes from 0 to 1 |
#define __EVC_DBUS__ "tcp:host=192.168.56.1,port=2222" |
C wrapper functions for the simulative PSM classes.
Definition at line 49 of file WrapperFunctions.h.
int DMIHasInput | ( | ) |
gets the DMI input status
Definition at line 290 of file WrapperFunctions.cpp.
References InitDMI(), and m_pDMI.
void EvaluateDMIInputs | ( | int * | pDMIType | ) |
gets the type of the first DMI input
[out] | pDMIType | pointer to the integer with the current DMI type value |
Definition at line 655 of file WrapperFunctions.cpp.
References InitDMI(), and m_pDMI.
void GetDMIOutput | ( | const char *const | pName, |
char **const | ppValue | ||
) |
gets a certain DMI output value
[in] | pName | pointer to name of the output field |
[out] | ppValue | pointer of pointer to value of the output field, de- and allocated by this function |
Definition at line 337 of file WrapperFunctions.cpp.
References InitDMI(), and m_pDMI.
int GetEmergencyActivation | ( | ) |
gets the activation state
Definition at line 951 of file WrapperFunctions.cpp.
References oETCS::DF::PS::SIM::CEmergencyBrake::GetActivation(), and m_pEmergencyBrake.
double GetPosition | ( | ) |
gets the current position from the odometer object
Definition at line 879 of file WrapperFunctions.cpp.
References oETCS::DF::PS::SIM::COdometer::GetAbsolutePosition(), and m_pOdometer.
double GetServiceIntensity | ( | ) |
gets the activation intensity
Definition at line 903 of file WrapperFunctions.cpp.
References oETCS::DF::PS::SIM::CServiceBrake::GetIntensity(), and m_pServiceBrake.
double GetVelocity | ( | ) |
gets the current speed from the odometer object
Definition at line 843 of file WrapperFunctions.cpp.
References oETCS::DF::PS::SIM::COdometer::GetVelocity(), and m_pOdometer.
int InitDMI | ( | ) |
initialises the module global DMI proxy
Definition at line 232 of file WrapperFunctions.cpp.
References m_pDMI.
Referenced by DMIHasInput(), EvaluateDMIInputs(), GetDMIOutput(), SetDMIBooleanValue(), SetDMIDoubleValue(), SetDMIIntegerValue(), and SetDMIStringValue().
void InitPSM | ( | ) |
PSM D-Bus adaptor initialisations.
Definition at line 198 of file WrapperFunctions.cpp.
References QAppThread().
|
static |
thread function for the QCoreApplication instance
[out] | pInitialised | pointer to boolean to the set initialisation status |
Definition at line 106 of file WrapperFunctions.cpp.
References m_pBaliseInDevice, m_pBaliseOutDevice, m_pDMI, m_pEmergencyBrake, m_pOdometer, and m_pServiceBrake.
Referenced by InitPSM().
void ResetPosition | ( | double | dPosition | ) |
(re)sets the position of the odometer object
[in] | dPosition | new position in [m] |
Definition at line 867 of file WrapperFunctions.cpp.
References m_pOdometer, and oETCS::DF::PS::SIM::COdometer::ResetPosition().
void SetAdhesion | ( | double | dAdhesion | ) |
sets the virtual adhesion
[in] | dAdhesion | new virtual adhesion factor (0...1) |
Definition at line 927 of file WrapperFunctions.cpp.
References m_pServiceBrake, and oETCS::DF::PS::SIM::CServiceBrake::SetAdhesion().
void SetDMIBooleanValue | ( | const char *const | pInputName, |
int | iValue | ||
) |
sets a boolean input value in the DMI
[in] | pInputName | literal name of the input field |
[in] | iValue | input value |
Definition at line 413 of file WrapperFunctions.cpp.
References InitDMI(), and m_pDMI.
void SetDMIDoubleValue | ( | const char *const | pInputName, |
double | dValue | ||
) |
sets a double input value in the DMI
[in] | pInputName | literal name of the input field |
[in] | iValue | input value |
Definition at line 505 of file WrapperFunctions.cpp.
References InitDMI(), and m_pDMI.
void SetDMIIntegerValue | ( | const char *const | pInputName, |
int | iValue | ||
) |
sets an integer input value in the DMI
[in] | pInputName | literal name of the input field |
[in] | iValue | input value |
Definition at line 464 of file WrapperFunctions.cpp.
References InitDMI(), and m_pDMI.
void SetDMIStringValue | ( | const char *const | pInputName, |
const char *const | pValue | ||
) |
sets a string input value in the DMI
[in] | pInputName | literal name of the input field |
[in] | pValue | input value (C-string) |
Definition at line 546 of file WrapperFunctions.cpp.
References InitDMI(), and m_pDMI.
void SetEmergencyActivation | ( | int | iActication | ) |
sets the activation state
[in] | iActivated | the new activation flag (!=0: true) |
Definition at line 939 of file WrapperFunctions.cpp.
References m_pEmergencyBrake, and oETCS::DF::PS::SIM::CEmergencyBrake::SetActivation().
void SetMass | ( | double | dMass | ) |
sets the virtual mass
[in] | dMass | new mass in [kg] |
Definition at line 915 of file WrapperFunctions.cpp.
References m_pServiceBrake, and oETCS::DF::PS::SIM::CServiceBrake::SetMass().
void SetNewInputTelegram | ( | char * | pTelegram, |
int | iBits | ||
) |
sets a telegram as received for the PIM
[in] | pTelegram | pointer to bytes of the telegram |
[in] | iBits | number bits included in the telegram |
Definition at line 588 of file WrapperFunctions.cpp.
References m_pBaliseInDevice, and oETCS::DF::PS::SIM::CBaliseDeviceIn::SetNewInputTelegram().
void SetNewInputTelegramBinary | ( | const int *const | pTelegram, |
int | iBits | ||
) |
sets a telegram as received for the PIM in a binary format
[in] | pTelegram | pointer to bits of the telegram |
[in] | iBits | number bits included in the telegram |
Definition at line 622 of file WrapperFunctions.cpp.
References m_pBaliseInDevice, and oETCS::DF::PS::SIM::CBaliseDeviceIn::SetNewInputTelegram().
void SetServiceIntensity | ( | double | dIntensity | ) |
sets the activation intensity
[in] | bIntensity | the new activation intensity in [%] |
Definition at line 891 of file WrapperFunctions.cpp.
References m_pServiceBrake, and oETCS::DF::PS::SIM::CServiceBrake::SetIntensity().
void SetVelocity | ( | double | dVelocity | ) |
sets the speed in the odomoeter object
[in] | dVelocity | new speed in [km/h] |
Definition at line 855 of file WrapperFunctions.cpp.
References m_pOdometer, and oETCS::DF::PS::SIM::COdometer::SetVelocity().
const int G_SIZE_TELEGRAM_LEVEL_0_TO_1 |
global size of global telegram for ETCS Application Level switchtes from 0 to 1
Definition at line 83 of file WrapperFunctions.cpp.
const int G_SIZE_TELEGRAM_STOP_IN_SR |
global size of global telegram for ETCS Application Level switchtes from 0 to 1
Definition at line 100 of file WrapperFunctions.cpp.
const int G_TELEGRAM_LEVEL_0_TO_1[] |
global telegram for ETCS Application Level switchtes from 0 to 1
Definition at line 73 of file WrapperFunctions.cpp.
const int G_TELEGRAM_LEVEL_STOP_IN_SR[] |
global telegram for ETCS Application Level switchtes from 0 to 1
Definition at line 90 of file WrapperFunctions.cpp.
Copyright (C) 2010-2012 Johannes Feuser (feuser@uni-bremen.de)
The openETCS library is free software: you can redistribute it
and/or modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, either version 3 of
the License, or any later version.
The openETCS library is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied warranty
of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with the openETCS library. If not, see
"http://www.gnu.org/licenses/.