RPG Data server control¶
This documents the use of the RPG data server for the remote control of the RPG FMCW Cloud Radar and RPG HATPRO-G5 instrumentation from a linux interface.
Background and motivation¶
Both instruments require Windows software for operation. The Windows software packages (which are slightly different for each instrument) run on the Windows VM (192.168.1.3), and all aspects of instrument control are managed by these software packages. The software also provides houskeeping and data quicklooks that are useful for troubleshooting in the first instance.
Each instrument also runs a version of windows on their respective internal computers (192.168.1.10 for the HATPRO and 192.168.1.11 for the radar). Normally we don't need to access these machines, but it is possible to do so useing remote Desktop from the 192.168.1.3 virtual machine.
This set up poses two key problems for tbe autonomous operation and power management of the AURORA:
(1) The 'point and click' Windows software requires manual control.
(2) Windows machines are generally at higher risk from hard power outages and difficult to troubleshoot remotely.
For the AURORA, we need to be able to automate control of the Radar and HATPRO blowers in response to power availability and science priorities. We also need to be able to automate the safe shutdown of both instruments to save power when neccessary. To achieve this, we're using a new feature of the RPG instruments, which is through the instruments "Data server" - a platform independent capability to send commands directly to the instrument computers via the "Host machine". This was initially developed for near-real time data transfer (hence the name) but can now be used to send a variety of commands that historically were only possible via the windows software (make sure you're viewing a manual dated November 2025 or later for a description of the data server).
Note that the "Host machine" refers to the computer running the Windows control software, in our case, the aurora-ass-windows virtual machine, 192.168.1.3.
Sending commands to the data server¶
To send commands to the data server we're using the python class developed for remote control of FMCW radars by Alexander Myagkov at Radiometer Physics: RPGtools_RemoteSensingInstruments
This is designed to work with the radar data server, which is similar to the Hatpro data server, but the commands structures and responses are frustratingly different for each - but they are well documented in the respective instrument manuals. There are also new data server commands (specifically the blower control) that have not been implemented yet in Alexanders code. So for the AURORA, we're using two python scripts "aurora_RadarControl.py" and "aurora_HatproControl.py" both of which have been adapted from Alexanders publically available script "RadarControl.py" from the RPGtools_RemoteSensingInstruments package.
.... At this point of writing, aurora_HatproControl.py is not finished, and should be used with caution... This is all still a work in progress, but here is where we're at regarding ability to remote control the blowers and safely power off the computers....
| Function | Python Command | output example | To do |
|---|---|---|---|
| Get radar status report | python aurora_RadarControl.py get_radar_status 192.168.1.3 7001 0 | The HOST is connected to the radar Measurement running Number of MDFs in current measurement: 1 MDF 1: AURORA_20260509.MDF | |
| Turn off radar blower | python aurora_RadarControl.py set_blower 192.168.1.3 7001 0 0 | This uses the function "set_blower(HOSTIP,PORT,PASSWORD,BLWMODE)" which was added by me, and currently whether you select 1 or 0 fro BLWMODE, it switches the blower to 'auto'. I think this might be a problem with how I'm sedning the 'BLWMODE' through Alex's python package and needs further investigation. | |
| Switch radar blower to 'auto' (humidity threshold set in windows software) | python aurora_RadarControl.py set_blower 192.168.1.3 7001 0 1 | This uses the function "set_blower(HOSTIP,PORT,PASSWORD,BLWMODE)" which was added by me, and currently whether you select 1 or 0 fro BLWMODE, it switches the blower to 'auto'. I think this might be a problem with how I'm sedning the 'BLWMODE' through Alex's python package and needs further investigation. | |
| Power down radar internal PC | python aurora_RadarControl.py shutdown_radar_pc 192.168.1.3 7001 0 | Working as expected, but need to check what happens after a power cycle (do the measurements automatically restart, or do we need to run another command to select the batch file?) | |
| Get hatpro status report | Not implemented in python code, but can send data server command 173 successfully | Returned bytes from hatpro 173 command: | |
| bytearray(b'\xada\x00\x00\x00\xd8\xc3\xcd/\x01\x00\x00\x00\x00\xb4B\x00\x00\x00\x00\x00\x00\xb4B\x00\x00\x00\x00\x01\x00\x00\x00\x00\x14\x00\x00\x00AURORA_20260219.MDF\x00\x18\x00\x00\x00HATPROG5-AURORA-ICELAND\x00\x00\x945w\x84\x00\x00\x00\x01\xd0\xb9\xcd/\xdb\xc7\xcd/') | Need to write an interpreter for the output and add inot the python code... | ||
| Set hatpro blower humidity threshold | Started writing the function set_blower_hum_threshold(HOSTIP,PORT,PASSWORD,THRES), but not tested yet- figure out the issue with the radar one first.. | ||
| Power down hatrpo internal PC | python aurora_HatproControl.py shutdown_hatpro_pc 192.168.1.3 7000 0 | This works as expected, but only if there is no measurement running, I need to modify the function so that it attempts to terminate the current measurement before the shutdown |
Note that once the instrument internal PC's are powered down, they can only be started back up with an instrument power cycle.
AURORA configuration¶
Since both AURORA RPG instruments are using the same host computer, they need to be controlled through different ports. This is implemented at the initial software set up stage.
| Instrument | Instrument computer IP | Host computer IP | Data server access port | Data server password |
|---|---|---|---|---|
| Radar RPGFMCW94 | 192.168.1.11 | 192.168.1.3 | 7001 | None set (use 0 for password using python class) |
| HATPRO-G5 | 192.168.1.10 | 192.168.1.3 | 7000 | None set (use 0 for password using python class) |
Automated control¶
Not yet developed or implemented - comming soon....