SMM Ground Station Simulator (PERC Application)


The system-level testing of the framework consists in having an application instantiated from the framework running in either open-loop mode (system-level testing in the desktop environment) or closed-loop mode (system-level testing in the embedded environment). In both cases, the instantiated application will be sending telemetry data and will need to receive telecommand data. Since the ground station simulator (GSS) developed for the Jbed version of the SMM application was not suitable anymore, a new SMM Ground Station Simulator (GSS) was developed. The SMM-GSS is tailored to the needs of the PERC prototype SMM application. It can display and store the telemetry data that is generated by this application and it can send telecommands to the application. 

Telemetry Data Display

Telemetry data are displayed in two dedicated windows. The telemetry data window (left-hand side) has fields to show: the values of the data pool variables, the values of the controller parameters, the value of the generated disturbance (only for position controlling), the current on-board time and the current operational mode of the mission mode manager. Additionally, there are two graphic-displays visualizing the shown data above, depending on the operational mode of the mission mode manager. For position controlling the left-hand graphic-display is acitve, for speed controlling the right-hand graphic-display is active. The active panel is signed by a green frame. In the position controlling display the green pointer represents the measured value, the red one represents the reference value. In the speed controlling display the speed directions (referenced and measured speed) are represented by arrows. 

The telemetry message window (right-hand side) displays the events reported in telemetry. 

Back To Top, Back to Real-Time Java Project Home


Telemetry Data Storage

Telemetry data are stored in a file in the same format in which they are received from the SMM application. The file is called "RawTmData.txt" and can be found in the project directory. Since the raw telemetry data are sent in a format that is not easily readable, the telemetry data are on-line decoded and analyzed. The result of such procedure is stored in a file. The file is called "FormatedTmData.txt" and placed in the same directory as the file with raw data.

Back To Top, Back to Real-Time Java Project Home


Telecommand Sending

Telecommands can be sent from the telelcommand send window. Telecommands are sent as sequences of integers (see the telecommand approach for the prototype application) packaged as a string. A pull-down menu lets the user select the telecommand type and displays hints as to the number and function of the integers that make up the telecommand. The telecommand parameters are filled in an editable text field and are sent to SMM application when a button with the label "Send" is pressed (see GUI). Any telecommand other than "Set C-Parameters" (for setting the controller parameters) is available in every operational mode. "Set C-Parameters" is only available in the position controlling mode. In this telecommand you can optionally set the minimal value of the disturbance.

Telecommand

Parameters Description
Mode Change time tag, mode Changes the mode; mode: SBY=0, RUN_SPEED=1, RUN_POSITION=2
System Reset time tag resets the application
Ramp Manoeuvre time tag, start time, end time, end value Generates a ramp manoeuvre. starts at start time and reaches the end value at the end time. (time values in full seconds!)
Wave Manoeuvre time tag, start time, period, amplitude, cycles Generates a triangular wave manoeuvre. (time values in full seconds!)
Set C-Parameters time tag, p-, i-, d-parameter[, min. disturbance] Sets the controller p-, i- and d-parameters. Optionally also the minimal value of the disturbance output can be set (max. value = min. value + 0.5 Volts). Only available in RUN_POSITION mode.

Note: time tag can always be set as 0 and run only one manoeuvre at a time.

Back To Top, Back to Real-Time Java Project Home


Package Structure

The software for the ground station simulator is stored in a dedicated package called PercSmmGroundStationSimulator. This package can be downloaded together with the rest of the framework software. 

Back To Top, Back to Real-Time Java Project Home


Graphical User Interface

How to work with the GUI?

In order to run the ground station application set the GsGUI class as the main class. Run the program. From the main menu choose "Setting -> IP address" item and set the IP address of the target (a computer where is running SMM application). In the next step click on the "Start" item hidden under the menu option "Simulator". The ground station simulator will establish a connection and start the SMM application. If you wish to stop and exit the SMM ground station simulator choose from the main menu "Simulator -> Stop", "Simulator -> Exit". 

The telemetry window displays decoded telemetry data. The system mode, system time and telemetry message visualization components are updated every 200 milliseconds whereas new values of the measurement, reference, disturbance, control action, control error and control parameters are coming every 400 milliseconds. Nevertheless the ground station application runs with a period of 40 milliseconds. The reason is that there are delays expected on receiving telemetry datas. It might be that several telemetry packages are sent by the SMM application at once but the ground station simulator processes only one per period. So it gets a chance that it can fast come back working up to date. 

In the telecommand window telecommands can be configured and sent to SMM application. Once there is a requirement to send a telecommand, then in the first step the pull-down menu should be explored and an appropriate telecommand chosen. In the second step correct parameters filled in the text field "Parameters", and finally the telecommand is sent by pressing the button with the label "Send". 

The GUI interface is shown in the figure below. Its main fields are:

Back To Top, Back to Real-Time Java Project Home


Last updated on March 7-th 2003 by Alessandro Pasetti