AEM
commsMgr Namespace Reference

Data Structures

class  CommsMgr
 
class  ReadInputThread
 
class  SerialServer
 

Functions

def packNbytes (bytes)
 
def unpackStruct (format, packed)
 
def grouper (iterable, n, fillvalue=None)
 

Variables

int pollDisplayIterations = 2000000
 for debugging, will display a heartbeat message after this number of polls More...
 

Function Documentation

def commsMgr.grouper (   iterable,
  n,
  fillvalue = None 
)
def commsMgr.packNbytes (   bytes)
This will return a pack of unsigned bytes, suitable for unpacking into their
original values.
the argument: bytes : is a list of any length of 
unsigned byte values.
[255, 0, 1, ...]
returns packed bytes of the form:
>>> packNbytes(sss)
b'\x01\n\x00\x00\x00\x00\x00\xc0?'
def commsMgr.unpackStruct (   format,
  packed 
)
This will return a list of values
after unpacking the packed bytes.
Some formats:
b/B : signed/unsigned byte 1
h/H : signed/unsigned short int 2
i/I : signed/unsigned int 4
f   : float 4
d   : double 8
size and byte order:
find the system byteorder by examining 
sys.byteorder
on Intel and RPI it is 'little'
@ native order native size, native alignment (needs examination)
= native order, standard size, no alignment
</> little/big endian, standard size, no alignment
!   big endian, standard size, no alignment
    the correct choice is '<' to get little endian, which is what is needed 
for Arduino and RPI and PC/Intel
Will return a list of things corresponding to format spec.
Ex:
if we have an unsigned byte, unsigned long, float = 9bytes
>>> unpack('<BIf' packNbytes([<9 numbers that are on [0,255]])
[uint8_t, uint32_t, f]

Variable Documentation

int commsMgr.pollDisplayIterations = 2000000

for debugging, will display a heartbeat message after this number of polls