mirror of
				https://git.kernel.org/pub/scm/network/wireless/iwd.git
				synced 2025-10-30 20:27:30 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			39 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/python3
 | |
| 
 | |
| import sys
 | |
| import dbus
 | |
| 
 | |
| # Map dict keys to units. Units can be a function/lambda which should return the
 | |
| # entire value with units as a string.
 | |
| unit_map = {
 | |
|     "ConnectedBss" : None,
 | |
|     "RSSI" : "dBm",
 | |
|     "RxMode" : None,
 | |
|     "RxBitrate" : lambda k : str(100 * int(k)) + ' Kbps',
 | |
|     "RxMCS" : lambda i : str(int(i)),
 | |
|     "TxMode" : None,
 | |
|     "TxBitrate" : lambda k : str(100 * int(k)) + ' Kbps',
 | |
|     "TxMCS" : lambda i : str(int(i)),
 | |
|     "ExpectedThroughput" : "Kbps"
 | |
| }
 | |
| 
 | |
| if (len(sys.argv) != 2):
 | |
|     print("Usage: %s <device>" % (sys.argv[0]))
 | |
|     sys.exit(1)
 | |
| 
 | |
| bus = dbus.SystemBus()
 | |
| device = dbus.Interface(bus.get_object("net.connman.iwd", sys.argv[1]),
 | |
|                                     "net.connman.iwd.StationDiagnostic")
 | |
| diagnostics = device.GetDiagnostics()
 | |
| 
 | |
| for key, value in diagnostics.items():
 | |
|     if key in unit_map:
 | |
|         units = unit_map[key]
 | |
|         if units is None:
 | |
|             units = ''
 | |
|         elif callable(units):
 | |
|             value = units(value)
 | |
|             units = ''
 | |
| 
 | |
|         print('%s : %s %s' % (key, value, units))
 | 
