Files
openairinterface5g/openair1/EMOS/GPS/read_iw.c
T
2013-06-25 09:05:02 +00:00

150 lines
3.5 KiB
C

#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);
}