From 92a2264a35fe683c7114ade55554f522662931f8 Mon Sep 17 00:00:00 2001 From: Michael Clemens Date: Wed, 30 Dec 2020 00:29:10 +0100 Subject: [PATCH] added example graph --- README.md | 16 +++++++++++----- example.png | Bin 0 -> 16758 bytes 2 files changed, 11 insertions(+), 5 deletions(-) create mode 100644 example.png diff --git a/README.md b/README.md index 86a4ebf..257cea3 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# NoiseFloorLogger +# Noise Floor Logger The aim of this application is to log and monitor the signal strength of the noise floor at your QTH. This could be useful to locate sources of interference by correlating the collected data with other information, e.g. when sun collectors are active, your washing machine runs, your neighbours mowing their lawns etc. @@ -13,11 +13,11 @@ This tool needs the following libraries/packages: You can install all required packages with the following commands (Ubuntu/Debian): -''' +``` # sudo apt install rrdtool librrd-dev # sudo pip3 install rrdtool # sudo pip3 install airium -''' +``` You furthermore need to have your transceiver connected to a computer with rigctld (hamlib) running. This tool connects via Telnet to this computer and gets its data from there. @@ -30,6 +30,12 @@ Don't forget to create the directory where you want to store the database as wel Start the tool without any parameters like this: -''' +``` # python3 NoiseFloorLogger.py -''' +``` + +## Output + +You'll find a html file with some graphs in the directory you configured inside _config.py_. Here is an example of such graph: + +![Example graph](example.png) diff --git a/example.png b/example.png new file mode 100644 index 0000000000000000000000000000000000000000..82c3fa3260ea615b5238ad130b3f1b24d59ab21b GIT binary patch literal 16758 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 literal 0 HcmV?d00001