python frame utilities
This commit is contained in:
@@ -29,6 +29,7 @@ endif()
|
|||||||
GR_PYTHON_INSTALL(
|
GR_PYTHON_INSTALL(
|
||||||
FILES
|
FILES
|
||||||
__init__.py
|
__init__.py
|
||||||
|
utils.py
|
||||||
DESTINATION ${GR_PYTHON_DIR}/ieee802_11
|
DESTINATION ${GR_PYTHON_DIR}/ieee802_11
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ if _RTLD_GLOBAL != 0:
|
|||||||
|
|
||||||
# import swig generated symbols into the test namespace
|
# import swig generated symbols into the test namespace
|
||||||
from ieee802_11_swig import *
|
from ieee802_11_swig import *
|
||||||
|
from utils import *
|
||||||
|
|
||||||
# import any pure python here
|
# import any pure python here
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -0,0 +1,52 @@
|
|||||||
|
|
||||||
|
def encoding_to_parameters(encoding):
|
||||||
|
|
||||||
|
encodings = [
|
||||||
|
{"bpsc": 1, "cbps": 48, "dbps": 24},
|
||||||
|
{"bpsc": 1, "cbps": 48, "dbps": 36},
|
||||||
|
{"bpsc": 2, "cbps": 96, "dbps": 48},
|
||||||
|
{"bpsc": 2, "cbps": 96, "dbps": 72},
|
||||||
|
{"bpsc": 4, "cbps": 192, "dbps": 96},
|
||||||
|
{"bpsc": 4, "cbps": 192, "dbps": 144},
|
||||||
|
{"bpsc": 6, "cbps": 288, "dbps": 192},
|
||||||
|
{"bpsc": 6, "cbps": 288, "dbps": 216}
|
||||||
|
]
|
||||||
|
|
||||||
|
enc = encodings[encoding]
|
||||||
|
|
||||||
|
return enc["bpsc"], enc["cbps"], enc["dbps"]
|
||||||
|
|
||||||
|
|
||||||
|
def payload_to_symbols(payload, encoding):
|
||||||
|
|
||||||
|
bpsc, cbps, dbps = encoding_to_parameters(encoding)
|
||||||
|
|
||||||
|
# 24 header + 4 crc + payload
|
||||||
|
data_byte = 24 + 4 + payload
|
||||||
|
symbols = int(round((16 + data_byte * 8 + 6) / float(dbps) + 0.5))
|
||||||
|
|
||||||
|
return symbols + 5
|
||||||
|
|
||||||
|
|
||||||
|
def mac_payload_to_payload(payload):
|
||||||
|
return payload - 28
|
||||||
|
|
||||||
|
|
||||||
|
def payload_to_mac_payload(payload):
|
||||||
|
return payload + 28
|
||||||
|
|
||||||
|
|
||||||
|
def payload_to_samples(payload, encoding):
|
||||||
|
return payload_to_symbols(payload, encoding) * 80 + 1
|
||||||
|
|
||||||
|
|
||||||
|
def symbols_to_payload(symbols, encoding):
|
||||||
|
|
||||||
|
bpsc, cbps, dbps = encoding_to_parameters(encoding)
|
||||||
|
|
||||||
|
|
||||||
|
bytes = (((symbols - 5) * dbps) - 16 - 6) / 8
|
||||||
|
|
||||||
|
assert(bytes > 28)
|
||||||
|
|
||||||
|
return bytes - 24 - 4
|
||||||
Reference in New Issue
Block a user