/******************************************************************************* OpenAirInterface Copyright(c) 1999 - 2014 Eurecom OpenAirInterface is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. OpenAirInterface is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenAirInterface.The full GNU General Public License is included in this distribution in the file called "COPYING". If not, see <http://www.gnu.org/licenses/>. Contact Information OpenAirInterface Admin: openair_admin@eurecom.fr OpenAirInterface Tech : openair_tech@eurecom.fr OpenAirInterface Dev : openair4g-devel@eurecom.fr Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE *******************************************************************************/ #include <stdio.h> #include <stdlib.h> #include <math.h> #include <time.h> int main(int argc, char *argv[]) { FILE *file_id = NULL; struct iw_struct { char wday[8]; char mon[8]; int day; int hour; int min; int sec; int year; char addr[32]; char dev[32]; int inactive_time; int rx_bytes; int rx_packets; int tx_bytes; int tx_packets; int tx_retries; int tx_failed; int signal; int signal_ctl0; int signal_ctl1; float tx_bitrate; int tx_mcs; int tx_bw; char tx_gi1[32]; char tx_gi2[32]; float rx_bitrate; int rx_mcs; int rx_bw; char rx_gi1[32]; char rx_gi2[32]; } iw_field; char line[256]; int i; if (argc < 2) { printf("Program requires an argument (filename)\n"); return(-1); } file_id = fopen(argv[1],"r"); if (file_id == NULL) { printf("Error opening file %s\n", argv[1]); return(-1); } i=0; while (~feof(file_id)) { fgets(line, 256, file_id); if (feof(file_id)) break; sscanf(line,"%s %s %d %d:%d:%d GMT %d", iw_field.wday, iw_field.mon, &iw_field.day, &iw_field.hour, &iw_field.min, &iw_field.sec, &iw_field.year); fgets(line, 256, file_id); sscanf(line,"Station %s (on %s", iw_field.addr, iw_field.dev); fgets(line, 256, file_id); sscanf(line," inactive time: %d ms", &iw_field.inactive_time); fgets(line, 256, file_id); sscanf(line," rx bytes: %d", &iw_field.rx_bytes); fgets(line, 256, file_id); sscanf(line," rx packets: %d", &iw_field.rx_packets); fgets(line, 256, file_id); sscanf(line," tx bytes: %d", &iw_field.tx_bytes); fgets(line, 256, file_id); sscanf(line," tx packets: %d", &iw_field.tx_packets); fgets(line, 256, file_id); sscanf(line," tx retries: %d", &iw_field.tx_retries); fgets(line, 256, file_id); sscanf(line," tx failed: %d", &iw_field.tx_failed); fgets(line, 256, file_id); sscanf(line," signal: %d dBm", &iw_field.signal); fgets(line, 256, file_id); sscanf(line," signal_ctl0: %d dBm", &iw_field.signal_ctl0); fgets(line, 256, file_id); sscanf(line," signal_ctl1: %d dBm", &iw_field.signal_ctl1); fgets(line, 256, file_id); sscanf(line," tx bitrate: %e MBit/s MCS %d %dMhz %s %s", &iw_field.tx_bitrate, &iw_field.tx_mcs, &iw_field.tx_bw, iw_field.tx_gi1, iw_field.tx_gi2); fgets(line, 256, file_id); sscanf(line," rx bitrate: %e MBit/s MCS %d %dMhz %s %s", &iw_field.rx_bitrate, &iw_field.rx_mcs, &iw_field.rx_bw, iw_field.rx_gi1, iw_field.rx_gi2); //printf("read set %d, time %d:%d:%d\n",i,iw_field.hour,iw_field.min,iw_field.sec); if (i==0) { printf("num, date; inactive_time; rx_bytes; rx_packets; tx_bytes; tx_packets; tx_retries; tx_failed; signal; signal0; signal1; tx_bitrate; tx_mcs; rx_bitrate; rx_mcs\n"); } printf("%d; %d-%s-%d %d:%d:%d; %d; %d; %d; %d; %d; %d; %d; %d; %d; %d; %e; %d; %e; %d\n", i, iw_field.day, iw_field.mon, iw_field.year, iw_field.hour, iw_field.min, iw_field.sec, iw_field.inactive_time, iw_field.rx_bytes, iw_field.rx_packets, iw_field.tx_bytes, iw_field.tx_packets, iw_field.tx_retries, iw_field.tx_failed, iw_field.signal, iw_field.signal_ctl0, iw_field.signal_ctl1, iw_field.tx_bitrate, iw_field.tx_mcs, iw_field.rx_bitrate, iw_field.rx_mcs); i=i+1; } fclose(file_id); return (0); }