Project

General

Profile

Download (1.65 KB) Statistics
| Branch: | Tag: | Revision:
1
#!/usr/local/bin/php -f
2
<?php
3

    
4
if(empty($argv[1])) {
5
	echo "No modem device given \n";
6
	exit(0);
7
}
8

    
9
/* Huawei example */
10
$device = "/dev/{$argv[1]}";
11
$statfile = "/tmp/3gstats.{$argv[2]}";
12
$header = "#seconds,rssi,mode,upstream,downstream,sentbytes,receivedbyts,bwupstream,bwdownstream\n";
13

    
14
$i = 0;
15

    
16
$record = array();
17
$handle = fopen($device, "r");
18
if(! $handle) {
19
	echo "Can not open modem stats device\n";
20
	exit(1);
21
}
22
$record['mode'] = 0;
23
$record['rssi'] = 0;
24
$record['time'] = 0;
25
$record['upstream'] = 0;
26
$record['downstream'] = 0;
27
$record['sent'] = 0;
28
$record['received'] = 0;
29
$record['bwupstream'] = 0;
30
$record['bwdownstream'] = 0;
31
while(true) {
32
	$string = "";
33
	$string = fgets($handle, 256);
34

    
35
	$elements = array();
36
	$elements = split(":", $string);
37
	$elements[0] = trim($elements[0]);
38
	$elements[1] = trim($elements[1]);
39

    
40
	switch($elements[0]) {
41
		case "^MODE":
42
			$record['mode'] = $elements[1];
43
			break;
44
		case "^RSSI":
45
			$record['rssi'] = $elements[1];
46
			break;
47
		case "^DSFLOWRPT":
48
			$items = array();
49
			$items = split(",", $elements[1]);
50
			$record['time'] = hexdec($items[0]);
51
			$record['upstream'] = hexdec($items[1]);
52
			$record['downstream'] = hexdec($items[2]);
53
			$record['sent'] = hexdec($items[3]);
54
			$record['received'] = hexdec($items[4]);
55
			$record['bwupstream'] = hexdec($items[5]);
56
			$record['bwdownstream'] = hexdec($items[6]);
57
			break;
58
	}
59

    
60
	if($i > 10) {
61
		$csv = $header . "{$record['time']},{$record['rssi']},{$record['mode']},{$record['upstream']},{$record['downstream']},{$record['sent']},{$record['received']},{$record['bwupstream']},{$record['bwdownstream']}\n";
62
		file_put_contents($statfile, $csv);
63
		$i = 0;
64
	}
65
	$i++;
66
}
67
fclose($handle);
68
?>
(1-1/10)