Changes between Version 8 and Version 9 of Tutorials/Wireless/Outdoor Spectrum Usage


Ignore:
Timestamp:
Jun 16, 2020, 5:44:55 PM (4 years ago)
Author:
nilanjan
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Tutorials/Wireless/Outdoor Spectrum Usage

    v8 v9  
    294294
    295295
    296 In the [next part of this tutorial] we'll edit the the receiving sdr application to store measured data to a remote network Influx database.
    297 
     296In the [next part] we'll briefly show how to access measure data on Influx DB.
     297
     298=== View recorded data parameters in Influx DB using Grafana ===
     299
     300On the receiving side sdrapp, enable the OML recording capability by recompiling the application with the _USE_OML_ flag. (If the application is still running, be sure to stop the application by doing Ctrl-C and exit out of the node back to the console again.)
     301
     302Edit the Makefile by adding ''-D_USE_OML_'' at the end of CPPFLAGS.
     303
     304{{{#!shell
     305CPPFLAGS ?= $(INC_FLAGS) -MMD -MP -Ofast --fast-math -finline-functions -std=c++11 -D_USE_OML_
     306}}}
     307
     308Now rebuild the application from the console. This enables the recording of  paramters displayed on the console into Influx DB - namely: seq_num, pkt_len, corr_strength. These values will be written to InFlux DB under a database name ''collectd'' and a sender id ''rx_data_link_0''.
     309
     310{{{#!shell-session
     311user@console:~$ make remote-make
     312}}}
     313
     314
     315We'll run the application for a longer duration so a large set of values are recorded for viewing. Edit the ''run_data_script.sh'' script so the receive and transmit handlers are run for 2000 seconds.
     316
     317{{{#!shell
     318## BEGIN data transfer
     319##  Invoke receive handler
     320##                       rxsig_data <runtime_in_milliseconds> <correlation threshold>
     321python rc.py $RXNODE 5180 "rxsig_data 2000000 10000"
     322
     323
     324##  Invoke transmit handler
     325##                       txsig_data <runtime_in_milliseconds> <delay_between_burst_in_msec>
     326python rc.py $TXNODE 5180 "txsig_data 2000000 1000"
     327
     328echo "DONE!"
     329}}}
     330
     331Rerun both applications also make sure the RF front end is turned on. The receiver will record the paramters for each detected packet.
     332{{{#!shell
     333user@console:~$ curl "am1.cosmos-lab.org:5054/rf_control/set_tx_path?node=sdr2-s3-lg1.bed.cosmos-lab.org&rf_port=0&power_amp=on&f_lower=2500&f_upper=2680"
     334}}}
     335
     336The recorded values can be queried from the console with a call to the [https://docs.influxdata.com/influxdb/v1.7/guides/querying_data/ InfluxDB API].
     337
     338{{{#!shell
     339curl -XPOST 'http://idb2:8086/query?db=collectd&pretty=true' --data-binary 'q=select * from _mp__collectd'
     340:
     341    "results": [
     342        {
     343            "statement_id": 0,
     344            "series": [
     345                {
     346                    "name": "_mp__collectd",
     347                    "columns": [
     348                        "time",
     349                        "corr_threshold",
     350                        "pkt_len",
     351                        "sender_id",
     352                        "seq_no",
     353                        "seq_num",
     354                        "time_stamp",
     355                        "time_stamp_server"
     356                    ],
     357                    "values": [
     358                        [
     359                            "2020-06-16T15:44:04.310022857Z",
     360                            32221.601562,
     361                            7,
     362                            "rx_data_link_0",
     363                            "1",
     364                            1,
     365                            "2.266386",
     366                            "2.309666"
     367                        ],
     368
     369:
     370:
     371:
     372                        [
     373                            "2020-06-16T16:17:20.274931375Z",
     374                            35238.019531,
     375                            2,
     376                            "rx_data_link_0",
     377                            "2049",
     378                            205,
     379                            "1998.270517",
     380                            "1998.274432"
     381                        ],
     382                        [
     383                            "2020-06-16T16:17:21.276384485Z",
     384                            35233.40625,
     385                            63,
     386                            "rx_data_link_0",
     387                            "2050",
     388                            206,
     389                            "1999.272047",
     390                            "1999.276026"
     391                        ],
     392                        [
     393                            "2020-06-16T16:17:22.276512538Z",
     394                            35226.476562,
     395                            34,
     396                            "rx_data_link_0",
     397                            "2051",
     398                            207,
     399                            "2000.272036",
     400                            "2000.276081"
     401                        ]
     402
     403:
     404}}}
     405
     406
     407The recorded values can also be view on a web browser using Grafana as the front end. In order to have the web browser access the Grafana server, a tunnel was created from localhost port 3000 to idb2:3000.
     408
     409Following is a trace of the correlation threshold.
     410[[Image(wiki:WikiFormatting:influx_corr_thresh)]]
     411
     412At the end of you session remember to turn off the RF front end with the following command.
     413
     414{{{#!shell-session
     415user@console:~$ curl "am1.cosmos-lab.org:5054/rf_control/set_tx_path?node=sdr2-s3-lg1.bed.cosmos-lab.org&rf_port=0&power_amp=off"
     416<response status="OK">
     417  <message>OK</message>
     418</response>
     419}}}