The Monitor is a MoCA component in charge of gathering information about the mobile device and the wireless network, sending it periodicaly to CIS at the fixed network. It collects informations about the available device´s resources, such as: CPU usage, free memory and remaining battery energy and some connectivity data such as: MAC address, IP/Mask and the current Access Point. It also performs scans on the wireless network to identify all Access Points within the range of the device, obtaining their physical addresses (BSSIDs) and their RSSI (Received Signal Strength Indicator) values. The monitor also sends information when a handoff is detected, i.e. when either the current IP address or AP changes.
Currently, we have implemented monitor versions for Windows XP, for Windows CE, for Symbian OS/Nokia S60 and for Linux. For Monitor XP, there is the production version that actually communicates with the MoCA architecture and a demo version that does not depends on running MoCA services and should be used for debugging or testing purposes, e.g. to evaluate the signal quality for each network's AP.
Additionally, we have implemented a monitor simulator, for those who dont have a WiFi-enabled device or just want to simulate the device mobility. The monitor simulator simulates the sending of device's context to CIS so, from the CIS point of view, there is no difference between a context information received from a simulator or from an actual monitor, gathering information about wireless connectivity.
This page is organized as follows.
To install the monitor, unzip one of the files below and run
|Installer||Installer for the production mode|
|Installer with Demo||Installer of a partial monitor with a demo application that shows all information gathered in the device and published in CIS. Just for debugging purposes.|
To configure monitor, you should change the
monitor.properties file. This file
is stored in the directory
C:\Windows\MonitorXP and contains the
|Address where CIS service is running|
|Port where CIS service is waiting for requests (at |
|Periodicity (in seconds) of sending information to CIs service|
|Address where CS service is running|
|Port where CS service is waiting for requests|
|Interval for device scan. Value in miliseconds.|
|Port where monitor is waiting for client requests|
|Address where DS service is running|
|Port where DS service is waiting for requests|
CIS_ADDRESS = cis.lac.inf.puc-rio.br CIS_PORT = 55010 CIS_PERIODICITY = 3 CS_ADDRESS = cs.lac.inf.puc-rio.br CS_PORT = 55016 DS_ADDRESS = ds.lac.inf.puc-rio.br DS_PORT = 55017 DEFAULT_CARD_QUERY_INTERVAL = 250 MONITOR_PORT = 61555
This configuration file only applies to the production version.
After starting the monitor, the application will show the window below.
To install the monitor, download and run the .cab file below on a temporary folder of your Pocket PC device
|MocaMonitorCE-1.5-RC3 Installer||Installer for the latest version of Monitor CE|
|MocaMonitorCE Installer||Installer for the Monitor CE|
To configure monitor, you should change the
monitor_properties.txt file. This file
is stored in the application directory and contains the configuration
of some variables like the ones described for the Monitor XP version
<?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <!-- CIS IP and Port --> <cisAddress value = "18.104.22.168"/> <cisPort value = "55010"/> <!-- DS IP and Port --> <dsAddress value = "22.214.171.124"/> <dsPort value = "8500"/> <;!-- CS IP and Port --> <csAddress value = "126.96.36.199"/> <csPort value = "55016"/> <!-- Periodicity to send data to CIS --> <sendDataPeriodicity value = "15000"/> <!-- Periodicity to get device data --> <devDataPeriodicity value = "10000"/> <!-- Periodicity to scan APs --> <scanDataPeriodicity value = "1000"/> <!-- Periodicity to get GPS Data --> <gpsDataPeriodicity value = "2000"/> <!-- Scan query time interval --> <cardQueryInterval value = "5000"/> <!-- GPS query time interval --> <gpsQueryInterval value = "5000"/> </appSettings> </configuration>
This configuration file only applies to the Monitor CE version.
After starting the monitor, the application will show the user interface with the screens shown below:
Device data screen
Connectivity and Wireless Network data screen
GPS data screen
MoCA Services parameters screen
To install the monitor, download and run the .SIS file below on a temporary folder of your Nokia S60 3rd Edition device or, copy the .SIS file to the PC and install the monitor by the Nokia PC Suite.
|MocaMonitorSymbian-1.0 Installer||Installer for the latest version of Monitor Symbian.|
To install the monitor for Symbian you must follow these steps:
To use the Monitor, it is necessary to establish a connection with some wlan access point. To do so, you can use the WLAN Wizard to search for access points, or use some application (like the web browser) that connects to the network."
After the installation process, the application executable will be located on the phone application menu.
The application main window has two commands: "Options" and "Exit". The "Exit" command terminates the application. The "Options" command pops up a menu with further options. The "Edit MoCA Config" options lets the user change the MoCA Configuration. The following options area available:
|CIS Address||Address where CIS service is running|
|CIS Port||Port where CIS service is waiting for requests (at CIS_ADDRESS)|
|CIS Periodicity||Periodicity (in seconds) of sending information to CIS service|
|CS Port||Port where CS service is waiting for requests|
|DS Address||Address where DS service is running|
|DS Port||Port where DS service is waiting for requests|
|Monitor Port||Port where monitor is waiting for client requests|
The user should navigate the config screen and select the desired item with the D-pad. Then an editor pops up so that the user can edit the parameter. If the user selects "Ok" then the data is accepted. If the user selects "Cancel" the change is discarded. This screen has two commands: "Save" and "Cancel". The "Save" command saves all options to the config file. The "Cancel" command discards all changes, and closes the config screen.
The "Device Info" option displays the collected device information. The collected items are: the device vendor, device model, cpu usage (not yet implemented), amount of free memory, and the device MAC address.
The "Network Info" option displays the collected information about the network. This option displays the current IP address of the device, its network mask, the currently connected access point (if any), IP address and access point change (if the application detected those events), and the number of scanned access points in the vicinity. If any access point is detected, its MAC address, SSID, and signal strength are listed in that window.
The "MoCA" option displays the current MoCA configuration.
The D-pad can be used to scroll the information up/down when applicable.
To install the monitor for GNU/Linux, download and unzip the MocaMonitorLinux-1.0 Installer to any folder you like.
|MocaMonitorLinux-1.0 Installer||Installer for the latest version of Monitor Linux.|
|Monitor Client Test||This is a simple java TCP client program that connects to Monitor linux running on local machine (connects to 127.0.0.1) via TCP on the port 61555. See the README file to more details.|
Open the text file
monitor.properties and edit the following
cis.address = 127.0.0.1 cis.port = 55010 cis.periodicity = 2 monitor.port = 61555 default_card_query_interval = 2
Monitor sends UDP packages to CIS on the addreess and port defined above. So if you're under a firewall be sure you have outbound permission to these packages. After that, run monitor script as root to start the deamon.
The monitor is going to output the scans to the standard I/O if started with -v option. In case any error occur it generates a error.log file to the current directory describing the error.
If you are running monitor under a desktop you probably is going to see an error about battery, it's ok, just ignore it. Because desktops don't have baterry as power source anyway.
Attention: If you notice that Monitor is not getting the full list of all visible access points, run it as root.
The current release (candidate) is 1.5-RC1. Below is the link to latest release.
To install the monitor simulator you must follow these steps:
monitor-VERSION, where VERSION is the version downloaded (eg. 1.0). This directory contains all the Monitor related files beneath that.
JAVA_HOMEenvironment variable. This variable should be the directory where a Java Development Kit is installed.
MONITOR_HOMEenvironment variable which is the directory where you just unpacked the Monitor install archive.
MONITOR_HOME/binto your path so that you can run the scripts provided with Monitor.
The monitor simulator is configured through the property file
monitor.properties. You should provide the such file and put in
You should configure the following properties:
|monitor.scanInterval||Periodicity (in miliseconds) of sending information to CIS service|
|cis.server||IP Address of the CIS server|
|cis.port||Port where CIS service is waiting for requests|
|fileX||File that have scans samples|
|intervalX||Interval (in milliseconds) of sending information for fileX|
The information sent by simulator is configured through the pair of properties (fileX, intervalX). For instance:
monitor.scanInterval=1000 monitor.repeating=true cis.server.host=localhost cis.monitor.port=55010 file1=conf/Scan-Banco_01.txt interval1=5000 file2=conf/Scan-EspacoAberto.txt interval2=10000 file3=conf/Scan-Mesa_03.txt interval3=20000
will send a scan to the CIS for one second of interval (see
The first 5 scans will be read from the
file1 file, i.e.
conf/Scan-Banco_01.txt. The number of scans is defined by
the ratio intervalX/monitor.scanInterval. Thus, the 10 following scans will be
read from the
file2 file, and so on.
monitor.repeating property is equal to
simulator will send the scans indefinitely.
A scan file (like
scanX.txt) contains information about device type, CPU usage, memory level, MAC address, etc,
using a format composed by pairs of
<attribute name>=<attribute value>#:
|Vendor||A string containing the device's vendor|
|Model||A string contanining the device's model|
|CpuUsage||An integer value representing the percentual value of the CPU usage|
|Free Memory||An integer value representing the amount of memory free, in Kbytes|
|EnergyLevel||An integer value representing the percentual value of battery level|
|Periodicity||Periodicity this information will be sent to CIS|
|IPChange||A boolean value (0 for false and 1 for true) representing a change of the IP address|
|APChange||A boolean value (0 for false and 1 for true) representing a change of the AP|
|IP||The device's IP address|
|MacAddr||device's MAC address|
|Sequence of AP RSSIs||
Sequence of APs and the RSSI strengh of each one. Two sequences must be separated by the & separation character. Each AP information, contains the following information:
The character # is used for separate the
the translation of this section is pending
O 802.11 Wireless Network Scanner - WScanner tem o objetivo de identificar e obter a intensidade do sinal de todos Access Points (AP) que estão no raio de cobertura do dispositivo móvel, tal funcionalidade é implementada através de um scanning na rede sem fio. Além disso, o WScanner mostra na tela a lista de APs identificados com suas respectivas força de sinal, grava tais informações em um arquivo e se necessário as envia para um servidor local ou remoto.
A intensidade do sinal de cada AP identificado durante o scanning é representada em dBm. Essa informação é obtida diretamente do driver da placa de rede sem fio. A implementação atual do WScanner é específica para dispositivos móveis (laptop ou Desktop com placa de rede sem fio) com Windows XP.
O WScanner faz scanning em placas de rede sem fio 802.11 de diferentes fabricantes, pois na sua implementação ele não interage diretamente com o driver de cada fabricante, e sim com a arquitetura de rede do Windows. Esta arquitetura é ilustrada in the figure below.
Como ilustrado na Figura 1, a comunicação entre a aplicação e o driver da placa de rede sem fio não é direta. Os seguintes componentes da NDIS (Network Driver Interface Specification) são intermediários nessa comunicação:
O WScanner foi desenvolvido em ANSI C utilizando o Visual Studio .NET. Dentre as etapas de implementação envolvidas no trabalho temos:
Para obter as
informações da rede sem fio tanto no Windows XP quanto no Windows CE nós
utilizamos a arquitetura de rede da microsoft, conhecida por Network
Driver Interface Specification (NDIS). Através desta, o monitor
dispara e coleta os resultados dos scanning realizados na rede sem fio usando interfaces e comandos da NDIS
Wrapper comuns aos drivers de todas as placas de rede. %para obter informações
dos APs que estão no raio de cobertura do dispositivo móvel.
Uma visão geral
dessa arquitetura é mostrada in the figure below.
Dessa forma, a
implementação do monitor torna-se independente do fabricante da placa de rede
sem fio, pois toda a comunicação entre o monitor e o driver da placa de rede
ocorre via a NDIS Wrapper. As demais informações (CPU, Nível de energia, ...)
são obtidas utilizando APIs específicas da Microsoft. No Linux, a lista de APs
com as respectivas intensidade do sinal é obtida via chamadas
ioctl e, as
demais informações são coletadas a partir dos arquivos contidos no
na estrutura de diretórios do Linux.