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
sdk:connection-statistics [2015/10/05 12:01] fachetsdk:connection-statistics [2021/08/04 09:20] (current) – external edit 127.0.0.1
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 325: Line 358:
  
 u = new uploader("/logger/"); u = new uploader("/logger/");
-u.server="ftp://share.netmodule.com/router/public";+u.server="https://share.netmodule.com/router/public";
 u.serverpath="/logger/"; u.serverpath="/logger/";
 u.user="*******"; u.user="*******";
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>