My favorites | Sign in
Project Home Downloads Wiki Issues Source
Project Information
Members

So, You wanna monitor RF spectrum in organized way ...

WEB application for handling and presenting RF monitoring measurement results

Project is meant to be central point for handling and presenting RF spectrum measured data for authorities and as well as for licensed telecom operators, radio and TV broadcasters etc. with different level of privileges, of course. Most measurement is supposed to occur automatically with no at all or a little operator intervention. This version of application is actually only tested with Rohde&Schwarz (EM550, ESMB, ESMD) measurement equipment but even it seems highly Rohde&Schwarz centric, it is not, and there is no reason not to work with any other measurement equipment. If it is possible to control an Instrument externally (by using serial port or TCP/IP socket) It should be possible to write an application that can cooperate with RFdjango web application. Some extension for integration with R&S measurement software by using its ORM module is planned, but not under this license.

1. Components in short

Database only holds all necessary data for performing and saving measurement. WEB application is "responsible" for editing database stored data, and presenting it in user-friendly form. An Agent program is responsible to interpret configuration from database and applies it on measurement equipment then takes measured data, applies "adjustments", and saves it in database. It is presumption You have measurement receiver and accompanied antenna switcher with antenna(s) connected to, accesible through TCP/IP socket, preferably on Your own LAN or VPN network. I don't recommend you to put your equipment directly on the Internet. WEB application handle not only measurement receiver/analyzer but antenna switcher also. Extension for antenna rotator is ready but not implemented yet under this license. WEB interface is built on the Django WEB framework. As database backend the PostgreSQL relational database server is used. All configuration data for accessing and setting measurement receiver are stored in database and it is necessary to be present in the database before We could start measurement. These data are provided by some of WEB system administration staff and technical persons responsible for specific monitoring station.

2. Initial configuration

I plan to prepare manual for initial configuration of system with minimal initial set of data for importing in database. Since I have busy schedule, it is on waiting list. Many things are self understandable and it is enough to walk around the administration interface to get an idea about system configuration. To convince yourself access admin interface at address http://<FQDN/IPaddress>/admin/, after You've successfully installed RFdjango.

3. Running automatic measurement

This version doesn't have scheduler of its own that's why it is using operation system scheduling service (crontab on Linux for instance). Sample "dirty" coded program 88-108_band.py with accompanied configuration file is included in rfdjango_300711.tar.gz in download section. After unpacking you can find it under agent folder. This program is capable to select antenna, and start measurement with R&S measurement receiver (ESMD,EM550,ESMB), then save gathered results in database. That way measurement becomes available through any WEB browser in convenient, user friendly form.

3.1 How does it work?

You should only provide name of the Monitoring Station to the 88-108_band.py, exactly as it is stated in database (e.g. python 88-108_band.py MON_STA_01). Highly simplified description of program operation follows. Program consults database about this monitoring station (capabilities, type and position of antennas, measurement receiver, wich transmitters are accompanied to be measured from this monitoring station etc.). Program then sends command to select appropriate antenna, sends settings to the measurement receiver, and then sends command to perform actual measurement, reads results, and stores gathered data in SQL database. But before it stores in database, program applies correction for the transducer and the cable loss. Your system corrections are important as much as You want more accurate measurement results. RFdjango supports coefficients for polynomial approximation up to fifth order, your equipment calibration data series. If you don't know What am I talking about, please refer to http://en.wikipedia.org/wiki/Curve_fitting to get an overall picture.

4. Installation

I've successfully installed RFdjango on a Windows XP professional operation system couple of times, but here I assume installation on a Linux Ubuntu system and good knowledge of Linux command line. I am not tested this thoroughly and What should I say except "It works for me!". To make whole process painless creating complete Linux distribution with RFdjango application ready for running and VirtualBox image is planned also, but till then ...

Next prerequisites must be fulfilled:

  • Apache2 should be installed and running with WSGI module loaded.
  • Python and Python-Django web framework must be installed and working. Django-pagination is also requirement.
  • In addition it is necessary that python-psycopg2, Python adapter for PostgreSQL, is installed.
  • You must also have working Postgresql database server with database rfdjango created, owned by user rfdjango with password rfdjango123. You can change this but then you must know how to accomodate settings_production.py and settings.py of RFdjango WEB application.

Create folder /home/projects/Monitoring, and unpack file rfdjango_<version>.tar.gz here. The folder spectrum is going to be created with whole neccesary structure and files. Now go to the new created folder /home/projects/Monitoring/spectrum and execute command python manage.py syncdb. If everything goes well then it is going to create schemas in the database and asks you to create web application administrator with a password (This is not the same as database owner). In this stage it is possible to test application by issuing command python manage.py runserver in console windows, then fire up your web browser and type http://localhost:8000/admin/ in the address bar window. You should see login window. Type username and password you've just created. Now take the file /home/projects/Monitoring/spectrum/apache/rfdjango and copy or move it to the folder /etc/apache2/sites-available/. Change ServerName in the rfdjango file to something meaningful to you (ie. change example.server.net to resolvable name under your control). In the file /home/projects/Monitoring/spectrum/settings_production.py consider changing database connection parameters in accordance with your preferences and change MEDIA_URL to the name you've set for Apache2 ServerName in previous step.

Change ownership of the /home/projects and all subfolders to www-data and group www-data. Now, everything is ready to enable new django virtual web site by executing command a2ensite rfdjango, after apache2 server restarts you should be able to access your new RFdjango web site.

Powered by Google Project Hosting