def csum_words(msg, l): odd = False if l % 2: l -= 1 odd = True # l is in bytes. We need 16-bit words a = addressof(msg) x = 0 for i in range(0, l, 2): c = be16.from_address(a + i) x += c.c if odd: last = c_uint16(c_uint8.from_address(a + l).value << 8) x += last.value return x
def t_uint8(address): return c_uint8.from_address(address + sizeof(nlattr)).value
def t_state(address): return M_IF_OPER_REVERSE[c_uint8.from_address(address + sizeof(nlattr)).value][8:]
def readByte(self, address, isLocalAddress=False): if not isLocalAddress: address = self.remoteAddressToLocalAddress(address) return c_uint8.from_address(address).value