예제 #1
0
from HexStrDataParser import HexStrDataParser, DataToHexStr

parser = HexStrDataParser('b')
assert(parser.stringToData('0A')[0] == 10)

parser = HexStrDataParser('I')
assert(parser.stringToData('0A000000')[0] == 10)

parser = HexStrDataParser('I')
assert(parser.stringToData('00000080')[0] == 2**31)

parser = HexStrDataParser('I')
assert(parser.stringToData('00010000')[0] == 256)

parser = HexStrDataParser('Ib')
assert(parser.stringToData('000100000A')[0] == 256)
assert(parser.stringToData('000100000A')[1] == 10)

parser = HexStrDataParser('fb')
assert(parser.stringToData('0000803f0A')[0] == 1.0)
assert(parser.stringToData('0000803f0A')[1] == 10)

parser = HexStrDataParser('ff')
assert(parser.stringToData('0000803f000080bf')[0] == 1.0)
assert(parser.stringToData('0000803f000080bf')[1] == -1.0)

packer = DataToHexStr('ffB')
packedStr = packer.dataToString([1.0, -1.0, 255])

parser = HexStrDataParser('ffB')
assert(parser.stringToData(packedStr)[0] == 1.0)
예제 #2
0
while True:
    sercom.readline()
    line = sercom.next()

    if not firstLine:
        firstLine = True
        continue

    dataOk = True

    if line[0] != chr(0x02) or line[-1] != chr(0x0A):
        dataOk = False
        break
    try:
        if dataOk:
            data = parser.stringToData(line[1:-1])
    except Exception as e:
        dataOk = False

    currentDataWin.clear()

    if dataOk:
        timeTick = data[0]
        lineSensors = data[1]
        usedSensors = data[2]
        pidFeedback = data[4]
        leftPwm = data[9]
        rightPwm = data[10]
        pidU = data[8]
        pidP = data[5]
        pidI = data[6]