Changeset 4556
- Timestamp:
- 04/22/09 21:25:43 (4 years ago)
- Location:
- branch/UMPA
- Files:
-
- 3 modified
-
tests/unit/test_utils/test_bits.py (modified) (1 diff)
-
umpa/_packets.py (modified) (1 diff)
-
umpa/utils/bits.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branch/UMPA/tests/unit/test_utils/test_bits.py
r4553 r4556 44 44 assert split_number_into_chunks(0xFFFFF,4) == [0xF, 0xF, 0xF, 0xF, 0xF] 45 45 assert split_number_into_chunks(0xFFFFF, 5) == [0x1F, 0x1F, 0x1F, 0x1F] 46 47 def test_amount(self): 48 assert split_number_into_chunks(0xFFFF,chunk_amount=3) == [0,0xFF,0xFF] 49 assert split_number_into_chunks(0xFFFF, 16, 2) == [0, 0xFFFF] 50 51 py.test.raises(UMPAException, split_number_into_chunks, 0xF, 1, 1) -
branch/UMPA/umpa/_packets.py
r4540 r4556 170 170 # we make it because we need string for socket object 171 171 # so after that we pack it by struct module.pack() 172 byte_chunks = umpa.utils.bits.split_number_into_chunks(self.raw) 172 byte_chunks = umpa.utils.bits.split_number_into_chunks( 173 self.raw, chunk_amount=self.bits/BYTE) 173 174 return struct.pack('!' + 'B'*(self.bits/BYTE), *byte_chunks) 174 175 -
branch/UMPA/umpa/utils/bits.py
r4540 r4556 24 24 """ 25 25 26 from umpa.utils.exceptions import UMPAException 27 26 28 BYTE = 8 27 29 28 def split_number_into_chunks(number, chunk_size=BYTE ):30 def split_number_into_chunks(number, chunk_size=BYTE, chunk_amount=None): 29 31 """ 30 32 Split the big number into small chunks. … … 45 47 chunks.append(number & mask) 46 48 number >>= chunk_size 49 50 if chunk_amount is not None: 51 extend_zero = chunk_amount - len(chunks) 52 if extend_zero < 0: 53 raise UMPAException("Wrong amount of requested chunks. Requested " 54 "%d, minimum %d." % (chunk_amount,len(chunks))) 55 chunks.extend([0]*extend_zero) 56 47 57 chunks.reverse() 48 58 return chunks
