|
16 | 16 | from time import sleep
|
17 | 17 |
|
18 | 18 | URL='https://location.services.mozilla.com/v1/geolocate?key=test'
|
19 |
| -NMCMD = ['nmcli','-g','SSID,BSSID,FREQ,SIGNAL','device','wifi'] |
| 19 | +NMCMD = ['nmcli','-g','SSID,BSSID,FREQ,SIGNAL','device','wifi'] # Debian stretch, Ubuntu 17.10 |
| 20 | +NMLEG = ['nmcli','-t','-f','SSID,BSSID,FREQ,SIGNAL','device','wifi'] # ubuntu 16.04 |
20 | 21 | NMSCAN = ['nmcli','device','wifi','rescan']
|
21 | 22 |
|
22 | 23 |
|
23 | 24 | def get_nmcli():
|
24 | 25 |
|
25 | 26 |
|
26 |
| - ret = subprocess.check_output(NMCMD) |
| 27 | + ret = subprocess.check_output(NMLEG) |
27 | 28 | sleep(0.5) # nmcli crashed for less than about 0.2 sec.
|
28 | 29 | try:
|
29 | 30 | subprocess.check_call(NMSCAN) # takes several seconds to update, so do it now.
|
@@ -72,17 +73,19 @@ def get_nmcli():
|
72 | 73 | from argparse import ArgumentParser
|
73 | 74 | p = ArgumentParser()
|
74 | 75 | p.add_argument('logfile',help='logfile to append location to',nargs='?')
|
| 76 | + p.add_argument('-T','--cadence',help='how often to ping [sec]. Some laptops cannot go faster than 30 sec.', |
| 77 | + default=60,type=float) |
75 | 78 | p = p.parse_args()
|
76 | 79 |
|
77 |
| - T = 25 # nmcli fastest allowed polling cadence: crashes at 20 sec. OK at 25 sec? |
| 80 | + T = p.cadence |
78 | 81 |
|
79 | 82 | logfile = p.logfile
|
80 | 83 |
|
81 | 84 | print('updating every {} seconds'.format(T))
|
82 | 85 | while True:
|
83 | 86 | loc = get_nmcli()
|
84 | 87 | if loc is None:
|
85 |
| - sleep(T) |
| 88 | + sleep(p.T) |
86 | 89 | continue
|
87 | 90 |
|
88 | 91 | stat = '{} {} {} {} {}'.format(loc['t'].strftime('%xT%X'),
|
|
0 commit comments