
Figure 1: Hardware Information Updates

Figure 2: Basic Database Configuration
As highlighted in the server configuration, the Watchdog will observe a specified directory for incoming data in specific formats. Figure 1 highlights the information that the Watchdog needs to receive before any other data arrives. In order to relate incoming data, status information, and statistics to specific hardware, the hardware table needs to be populated. For that purpose, every sensor will generate a YYYY-MM-DD-hardware.json file at every bootup and drop it into the sync folder, sending it to the storage server. The watchdog will read this hardware file and populate the storage, hardware, RPi, SDR, and WR-LEN tables. With this data added to the database, it is ready to consume data.
Every time a RF sensor records data, it will generate 3 files:
.sc16 (should be changed to .fc32 if floats are used instead of integers)..json extension. This file contains information crucial for being able to process and use the data file.-status.json containing dynamic information such as device temperatures, remaining storage, CPU usage, etc.As before, the Raspberry Pi will write these files to the sync directory and have them sent to the server for storage. On the server, the watchdog will move the files into the appropriate directory or add the status information to the database and then delete the status information file. Figure 2 illustrates how the Watchdog decides what to do with the 3 different options:
At the same time, a separate process watches the directory where data files are moved to and if it finds one that exists in the table, but doesn’t have any statistics in the outputs table yet, it will calculate the statistics, add them to the outputs table, and delete the file.
Catalogs all possible status codes.