Step 1: Add ports, parsing and notification of Yarp Text Logging data (no auto search for the ports streaming the Yarp text logging)
In a first step we focus on the data parsing and sending to the visualizer, the dictionary definition and the actual data visualisation in the OpenMCT framework. For this purpose, the port names are fully defined in the configuration file servers.js, and edited every time the processes logging the data (yarprobotinterface, WalkingModule) are stopped and run again. => commits c9b285d837ed23d071b514f688bd734525736b2d to 126edf941d1448ba552ce3820859a1df3242c69b included.
In the configuration file
[x] Add the Yarprobotinterface and WalkingController logging ports to the port configuration.
On the telemetry server:
[x] Add the Yarp Text Logging to the state buffer.
[x] Add the parsing of the data to the main parser.
On OpenMCT framework
[x] Add a new folder "Modules process output logging".
[x] Add to the folder the two new entries related to the Yarprobotinterface and WalkingController processes.
[x] Add the respective dictionary and set the appropriate data type and format.
[x] Use plugin "Telemetry Table" to display the log data.
Note: There is a pop-up window when we hover above a given datum, and we have a "view full datum" option.
Step 2: Improved Version: auto search for ports streaming the logged data and refresh the connections
In the configuration file
[x] We replace the full port names by a syntax[^*] which is then evaluated by the telemetry server as a regular expression for matching existing Yarp ports. The user can integrate in the regexp the YARP_LOG_PROCESS_LABEL of his choice for matching the ports streaming the logging data fromyarprobotinterface and WalkingModule modules.
[^*]: The syntax is as follows: the pattern "@{...}" wraps a regular expression which, once unwrapped, can be directly interpreted by the Javascript code.
On the telemetry server
(Re)connect the Yarp text logging ports as soon as the client page is refreshed (servers.json config is reloaded)
[x] Trigger the operation in the config file servers.json route function.
[x] Build a list of all the port names integrating a regexp: <regexp-port-names-list>.
[x] If <regexp-port-names-list> is empty, return, otherwise continue.
[x] Disconnect all the existing telemetry port connections.
[x] Run a full scan of the existing Yarp ports => <yarp-ports-list>.
[x] For each port found in <regexp-port-names-list>, get the Yarp port name from <yarp-ports-list> matching the regexp pattern => <matched-yarp-remote-ports-list>.
[x] For each port in <matched-yarp-remote-ports-list>:
[x] ~Check if the respective <yarpjs-local-port> port exists => if not, create it.~ We consider that these didn't change, otherwise just restart the telemetry server.
[x] Connect <yarp-remote-port> to <yarpjs-local-port>.
[x] Trigger the regexp ports reconnection in the config file servers.json route function.
Below is an example of the displayed "Process Logging" folder and the contained Yarp Text Logging entries.
Implements #138 .
Step 1: Add ports, parsing and notification of Yarp Text Logging data (no auto search for the ports streaming the Yarp text logging)
In a first step we focus on the data parsing and sending to the visualizer, the dictionary definition and the actual data visualisation in the OpenMCT framework. For this purpose, the port names are fully defined in the configuration file
servers.js
, and edited every time the processes logging the data (yarprobotinterface
,WalkingModule
) are stopped and run again. => commits c9b285d837ed23d071b514f688bd734525736b2d to 126edf941d1448ba552ce3820859a1df3242c69b included.In the configuration file
On the telemetry server:
state
buffer.On OpenMCT framework
Note: There is a pop-up window when we hover above a given datum, and we have a "view full datum" option.
Step 2: Improved Version: auto search for ports streaming the logged data and refresh the connections
In the configuration file
YARP_LOG_PROCESS_LABEL
of his choice for matching the ports streaming the logging data fromyarprobotinterface
andWalkingModule
modules.[^*]: The syntax is as follows: the pattern
"@{...}"
wraps a regular expression which, once unwrapped, can be directly interpreted by the Javascript code.On the telemetry server
(Re)connect the Yarp text logging ports as soon as the client page is refreshed (servers.json config is reloaded)
servers.json
route function.<regexp-port-names-list>
.<regexp-port-names-list>
is empty, return, otherwise continue.<yarp-ports-list>
.<regexp-port-names-list>
, get the Yarp port name from<yarp-ports-list>
matching the regexp pattern =><matched-yarp-remote-ports-list>
.<matched-yarp-remote-ports-list>
:<yarpjs-local-port>
port exists => if not, create it.~ We consider that these didn't change, otherwise just restart the telemetry server.<yarp-remote-port>
to<yarpjs-local-port>
.servers.json
route function.Below is an example of the displayed "Process Logging" folder and the contained Yarp Text Logging entries.