JavaScope#
The JavaScope is located in the main ultrazohm_sw repository in the folder ultrazohm_sw\javascope
.
The folder contains the following files
javascope_run.bat
is the executable for Windows, start by double-clickingUZ_GUI.jar
is the binary build file of the JavaScope, the sources are in a separate repositoryproperties.ini
is the configuration file that is loaded when starting the JavaScopeJS_plot_data.m
is a Matlab script, that reads and plots the measurement datalib
is the folder including the required Java librariesLog_yyyy-mm-dd-hh-mm-ss.csv
is a log file that is created at every startup of the GUI
Basics#
The GUI is shown in Fig. 65.
First, press the
connect
button (1) in order to connect your scope to the UltraZohm.You will see some moving signs at (2) if the connection was successful.
The
Stop
(3) respectivelyRun
button stops or restarts the scope. After the connection has been established, the Scope will be put into theRun
mode automatically.You can switch between a Lightmode and Darkmode for the GUI on the fly.
Go to the
Setup Scope
panel and presssendSelectData (all)
to get the pre-selected values from the drop-down menus on the scope. For changing the entries of the drop-down menus, see Customizing.In the time-based scope it is possible to debug up to 20 values by receiving data from the ISR (R5 processor).
In the top-panel it is possible to configure the data logging and time scale.
Customizing#
The GUI itself and the variables that are visualized can be customized by the user.
Adjusting the properties.ini file#
Some settings can be configured before the start-up of the GUI in the properties.ini
file.
The
smallestTimeStepUSEC
variable sets the time, with which data is assumed to be transferred to Java. It’s used to calculate the time-axis of the scope and logger. It should match the sample time of the ISR (e.q. ISR-frequency of 10kHz -> smallestTimeStepUSEC=100).The
initScaleChx
variable sets the initial scaling factor for each of the 20 channels in the scope. Use delimiter (;) to separate the scaling values for the channels.The
initOffsetCHx
variable sets the initial offset for each of the 20 channels in the scope. Use delimiter (;) to separate the scaling values for the channels.The
preSelectedChannelNumbers
variable sets the pre-selected channel number for each of the 20 channels in the scope. The numbers correspond to theJS_OberservableData
enum in thejavascope.h
file (E.g. selecting1
forCH1
will set CH1 to ISR_ExecTime_us). Use delimiter (;) to separate the scaling values for the channels.The
preSelectedChannelVisibility
variable sets the initial visibility for each of the 20 channels in the scope. Using0
disables the visibility of the specific channel, whilst1
turns it on. The visibility of the channels can still be changed during runtime by clicking on the appropriate channel in the legend of the scope. Use delimiter (;) to separate the scaling values for the channels.Panel extension selection. Setting the
ParameterID
variable to 1 enables this extension panel.
Add variables to the slow data table#
For adding a variable to the slow data table, two steps are required:
Open
javascope.h
(Vitis:Baremetal\src\include\
) and add the name that should appear in the slow data table into the enumJS_SlowData
insidejavascope.h
(see the blue box in the middle picture below). Pay attention to the naming convention starting withJSSD_INT_
orJSSD_FLOAT_
.Open
javascope.c
(Vitis:Baremetal\src\sw\
) and assign a variable to be viewed in the slow data table to the new enum entry from step 1 (see red and blue boxes in the right picture below).The GUI parses the enum
JS_SlowData
at startup and your new variable will appear in the slow data table (see green box in the left picture below). This way the user can add an almost infinite number of slow data variables to the list. The longer the table, the slower it is updated, because the slow data are sent one after another with each scope data frame.
Customize the Control tab in the GUI#
For better usability and presentations, one might want to customize the slow data variables to be shown in the receive_field_x
section as well as the description and physical units of send_field_x
and receive_field_x
entries in the control tab of the GUI.
All those can be customized in the javascope.h
file.
Towards the end of this file, you will notice a commented-out section that begins with /* Visualization Config for GUI */
.
The text below is parsed by the GUI at startup and configures some text and the slow data to be displayed in the receive_field
section.
As shown below, one can simply change the text strings to adopt the GUI for the user application.
The eight individual buttons can be labeled in the same way.
The selection of which slow data values are displayed in the receive_field
section works the same way. Simply copy the proper entries from the JS_SlowData
enum into
the commented out enum at the end of the file javascope.h
as shown below. The slow data values of the twenty JSSD_FLOAT_x
entries that are above the JSSD_FLOAT_Error_Code
will be displayed in the receive_fields 1 to 20 from top to bottom.
The JSSD_FLOAT_Error_Code
value is always mapped to the error code text field of the GUI and should not be changed.
If not every out of the 20 receive_fields
is needed, the unnecessary channels can be set to JSSD_FLOAT_ZEROVALUE
.
They will appear as value 0 in the receive fields.
Furthermore, to reduces the size of the .csv logging file, the receive_fields
with the value JSSD_FLOAT_ZEROVALUE
won’t be logged.
Known issues#
Warning
If the JavaScope is distorted or the font is not readable, this may is due to an old Java version.
If this is the case, just update your local Java version, as described in the section Installation.
See also#
Designed by#
Philipp Loehdefink (THN), Sebastian Wendel (THN), Eyke Liegmann (TUM), Michael Hoerner (THN) , Dennis Hufnagel (THN) in 04/2022