kirr has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/40082?usp=email )
Change subject: trx_toolkit/data_msg: Switch TxMsg .pwr from object to int ......................................................................
trx_toolkit/data_msg: Switch TxMsg .pwr from object to int
This is integer field, assigning C-level type avoid py-related overhead on access and arithmetics.
Change-Id: Ibf07cd99d758e516317a16b4df3cd0dc90fc5c07 --- M src/target/trx_toolkit/data_msg.pxd M src/target/trx_toolkit/data_msg.pyx 2 files changed, 5 insertions(+), 4 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/82/40082/1
diff --git a/src/target/trx_toolkit/data_msg.pxd b/src/target/trx_toolkit/data_msg.pxd index 823ec8d..e5c605e 100644 --- a/src/target/trx_toolkit/data_msg.pxd +++ b/src/target/trx_toolkit/data_msg.pxd @@ -60,7 +60,8 @@ @final cdef class TxMsg(Msg): cdef public bytearray burst # | None - cdef readonly object pwr # int | None + cdef readonly int pwr # -1 if unset +
cpdef validate(self)
diff --git a/src/target/trx_toolkit/data_msg.pyx b/src/target/trx_toolkit/data_msg.pyx index 64139a4..1d40726 100644 --- a/src/target/trx_toolkit/data_msg.pyx +++ b/src/target/trx_toolkit/data_msg.pyx @@ -323,7 +323,7 @@
def __cinit__(self): self.burst = None - self.pwr = None + self.pwr = -1
cdef int HDR_LEN(self) except -1: ''' Calculate header length depending on its version. ''' @@ -345,7 +345,7 @@ # Validate common fields Msg._validate(self)
- if self.pwr is None: + if self.pwr == -1: raise ValueError("Tx Attenuation level is not set")
if self.pwr < PWR_MIN or self.pwr > PWR_MAX: @@ -382,7 +382,7 @@ # Describe the common part result = Msg.desc_hdr(self)
- if self.pwr is not None: + if self.pwr != -1: result += ("pwr=%u " % self.pwr)
# Strip useless whitespace and return