Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
sdk:connection-statistics [2015/10/05 12:01] fachetsdk:connection-statistics [2019/06/18 07:52] juraschek
Line 6: Line 6:
 A second script will upload the log files in the working directory from time to time to a FTP server. A second script will upload the log files in the working directory from time to time to a FTP server.
 Once having the data on the server, it can be evaluated, e.g. by drawing it onto a map or analyse it with Excel or NI DIAdem. Once having the data on the server, it can be evaluated, e.g. by drawing it onto a map or analyse it with Excel or NI DIAdem.
 +
 +
 +===== Logging Skript =====
 +
 <code c logger.are> <code c logger.are>
 /* DESC: A script that can be used for a longtime logging of a NetModule Router.  /* DESC: A script that can be used for a longtime logging of a NetModule Router. 
Line 131: Line 135:
     int logNow()  {     int logNow()  {
         //get current status output         //get current status output
-        sections=mkarray("system","wan","wwan","wlan","gnss","lan","openvpn","ipsec","dio","license");+        sections=mkarray("system","wan","wwan","wlan","gnss","lan","openvpn","ipsec","dio","license", "hotspot");
         status=mkstruct();         status=mkstruct();
         for (i=0;i<length(sections);i++) {         for (i=0;i<length(sections);i++) {
Line 182: Line 186:
         nb_syslog("Current Logsize: %i byte",this.currentLogSize);         nb_syslog("Current Logsize: %i byte",this.currentLogSize);
         //if we don't have enough space delete enough old ones to have enough space         //if we don't have enough space delete enough old ones to have enough space
-        for(i=0;i<length(files);i++) { 
-        if (this.currentLogSize < (this.maxLogSize-this.freespace)) break; 
-            if(remove(sprintf("%s%s",this.path,files[i]))) { 
-                this.currentLogSize=this.currentLogSize-size[i]; 
-                nb_syslog("Removed %s%s",this.path,files[i]); 
-            } else { 
-                nb_syslog("could not remove %s%s",this.path,files[i]); 
-            } 
-        } 
-       nb_syslog("new logsize: %i", this.currentLogSize); 
     return 0;     return 0;
     }     }
  
 +// ######################################################
 +// ######################################################
 +// ######################################################
  
 l = new logger("/logger/"); l = new logger("/logger/");
 +// Timestamp of the Logentry
 l.addField("SYSTEM_TIME"); l.addField("SYSTEM_TIME");
 +
 +
 +// GPS Fields
 l.addField("GNSS1_LONGITUDE"); l.addField("GNSS1_LONGITUDE");
 l.addField("GNSS1_LATITUDE"); l.addField("GNSS1_LATITUDE");
 l.addField("GNSS1_SATELLITES_INVIEW"); l.addField("GNSS1_SATELLITES_INVIEW");
-l.addField("MOBILE1_SIGNAL");+ 
 + 
 +// LTE Connection Fields 
 +// Can be cloneed with MOBILE2 in case more LTE Connections are used 
 +// Arbitrary Strength Unit (ASU) https://en.wikipedia.org/wiki/Mobile_phone_signal#ASU 
 +l.addField("MOBILE1_SIGNAL_LEVEL"); 
 +// received signal code power  https://en.wikipedia.org/wiki/Received_signal_code_power 
 +l.addField("MOBILE1_SIGNAL_RSCP"); 
 +// Received signal strength indication https://en.wikipedia.org/wiki/Received_signal_strength_indication            
 +l.addField("MOBILE1_SIGNAL_RSSI");           
 +// Service Type: LTE/HSPA/3G/2G/EDGE        
 l.addField("MOBILE1_SERVICE_TYPE"); l.addField("MOBILE1_SERVICE_TYPE");
 +// NETWORK ID of the LTE Network we are connected to
 l.addField("MOBILE1_LAI"); l.addField("MOBILE1_LAI");
 +// Area Code in  LTE Network
 l.addField("MOBILE1_LAC"); l.addField("MOBILE1_LAC");
 +// Cell ID we are connected to
 l.addField("MOBILE1_CID"); l.addField("MOBILE1_CID");
 +// Is the SIM registered in Home or Roaming
 +l.addField("MOBILE1_REGISTRATION_STATE");
 +
 +
 +// WAN Data Connection field
 +// Connection that is current default Gateway
 l.addField("WAN_HOTLINK"); l.addField("WAN_HOTLINK");
 +// Per WANLINK/LTE Connection:
 +// Current State: up/down/dialin
 l.addField("WANLINK1_STATE"); l.addField("WANLINK1_STATE");
 +// Current upload and download rates 
 l.addField("WANLINK1_DOWNLOAD_RATE"); l.addField("WANLINK1_DOWNLOAD_RATE");
 l.addField("WANLINK1_UPLOAD_RATE"); l.addField("WANLINK1_UPLOAD_RATE");
 +// Bytes that are already down- or uploaded.
 l.addField("WANLINK1_DATA_DOWNLOADED"); l.addField("WANLINK1_DATA_DOWNLOADED");
 l.addField("WANLINK1_DATA_UPLOADED"); l.addField("WANLINK1_DATA_UPLOADED");
 +
 +// WLAN Fields
 +// WLAN Clients Attached to the Accesspoint
 l.addField("WLAN1_STATION_COUNT"); l.addField("WLAN1_STATION_COUNT");
  
Line 217: Line 244:
 l.intervall=5; // log every 5sec l.intervall=5; // log every 5sec
 l.logfileIntervall=3600; // create a new file every 5 min l.logfileIntervall=3600; // create a new file every 5 min
 +
 +// ######################################################
 +// ######################################################
 +// ######################################################
 +// ######################################################
  
  
Line 255: Line 287:
  
  
 +===== Skript to periodcly upload the csv Files =====
  
 <code c uploader.are> <code c uploader.are>
Line 332: Line 365:
 u.uploadfiles(); u.uploadfiles();
 </code> </code>
 +
 +
 +
 +Example Python script to visualize the Data:
 +
 +
  
 <code python scatter.py> <code python scatter.py>