decode: decode more WMC commands and fix some command names
This commit is contained in:
@@ -106,7 +106,7 @@ def show_device_info(data, prefix, direction):
|
|||||||
print prefix + " MCC: %s" % mcc
|
print prefix + " MCC: %s" % mcc
|
||||||
print prefix + " MNC: %s" % mnc
|
print prefix + " MNC: %s" % mnc
|
||||||
|
|
||||||
def show_ip_info(data, prefix, direction):
|
def show_connection_info(data, prefix, direction):
|
||||||
if direction != defs.TO_HOST:
|
if direction != defs.TO_HOST:
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -136,7 +136,7 @@ def get_signal(item):
|
|||||||
else:
|
else:
|
||||||
return (item * -1, "")
|
return (item * -1, "")
|
||||||
|
|
||||||
def show_status(data, prefix, direction):
|
def show_network_info(data, prefix, direction):
|
||||||
if direction != defs.TO_HOST:
|
if direction != defs.TO_HOST:
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -185,9 +185,63 @@ def show_init(data, prefix, direction):
|
|||||||
def show_bearer_info(data, prefix, direction):
|
def show_bearer_info(data, prefix, direction):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
cmds = { 0x06: ("DEVICE_INFO", show_device_info),
|
def mode_to_string(mode):
|
||||||
0x0A: ("IP_INFO", show_ip_info),
|
if mode == 0x00:
|
||||||
0x0B: ("STATUS", show_status),
|
return "CDMA/EVDO"
|
||||||
|
elif mode == 0x01:
|
||||||
|
return "CDMA only"
|
||||||
|
elif mode == 0x02:
|
||||||
|
return "EVDO only"
|
||||||
|
elif mode == 0x0A:
|
||||||
|
return "GSM/UMTS"
|
||||||
|
elif mode == 0x0B:
|
||||||
|
return "GSM/GPRS/EDGE only"
|
||||||
|
elif mode == 0x0C:
|
||||||
|
return "UMTS/HSPA only"
|
||||||
|
elif mode == 0x14:
|
||||||
|
return "Auto"
|
||||||
|
return "unknown"
|
||||||
|
|
||||||
|
def show_get_global_mode(data, prefix, direction):
|
||||||
|
if direction != defs.TO_HOST:
|
||||||
|
return
|
||||||
|
|
||||||
|
fmt = "<"
|
||||||
|
fmt = fmt + "B" # unknown1
|
||||||
|
fmt = fmt + "B" # mode
|
||||||
|
fmt = fmt + "B" # unknown2
|
||||||
|
fmt = fmt + "B" # unknown3
|
||||||
|
|
||||||
|
expected = struct.calcsize(fmt)
|
||||||
|
if len(data) != expected:
|
||||||
|
raise ValueError("Unexpected GET_GLOBAL_MODE command response len (got %d expected %d)" % (len(data), expected))
|
||||||
|
(u1, mode, u2, u3) = struct.unpack(fmt, data)
|
||||||
|
|
||||||
|
print prefix + " Mode: 0x%X (%s)" % (mode, mode_to_string(mode))
|
||||||
|
|
||||||
|
def show_set_global_mode(data, prefix, direction):
|
||||||
|
if direction != defs.TO_MODEM:
|
||||||
|
return;
|
||||||
|
|
||||||
|
fmt = "<"
|
||||||
|
fmt = fmt + "B" # unknown1
|
||||||
|
fmt = fmt + "B" # mode
|
||||||
|
fmt = fmt + "B" # unknown2
|
||||||
|
fmt = fmt + "B" # unknown3
|
||||||
|
|
||||||
|
expected = struct.calcsize(fmt)
|
||||||
|
if len(data) != expected:
|
||||||
|
raise ValueError("Unexpected SET_GLOBAL_MODE command response len (got %d expected %d)" % (len(data), expected))
|
||||||
|
(u1, mode, u2, u3) = struct.unpack(fmt, data)
|
||||||
|
|
||||||
|
print prefix + " Mode: 0x%X (%s)" % (mode, mode_to_string(mode))
|
||||||
|
|
||||||
|
|
||||||
|
cmds = { 0x03: ("GET_GLOBAL_MODE", show_get_global_mode),
|
||||||
|
0x04: ("SET_GLOBAL_MODE", show_set_global_mode),
|
||||||
|
0x06: ("DEVICE_INFO", show_device_info),
|
||||||
|
0x0A: ("CONNECTION_INFO", show_connection_info),
|
||||||
|
0x0B: ("NETWORK_INFO", show_network_info),
|
||||||
0x0D: ("INIT", show_init),
|
0x0D: ("INIT", show_init),
|
||||||
0x4D: ("EPS_BEARER_INFO", show_bearer_info)
|
0x4D: ("EPS_BEARER_INFO", show_bearer_info)
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user