def METHOD_NAME(self, rawdata):
    if rawdata[0] == 1: #translation
        #print np.array(rawdata[1:], 'uint8').view('int16')
        self.x, self.y, self.z = np.array(rawdata[1:], 'uint8').view('int16')
        for cb in self.WantPosNotification:
            cb(self)
    elif rawdata[0] == 2: #rotation
        self.rho, self.theta, self.phi = np.array(rawdata[1:], 'uint8').view('int16')
        for cb in self.WantAngleNotification:
            cb(self)
    if rawdata[0] == 3: # buttons
        #self.x, self.y, self.z = np.array(rawdata[1:], 'uint8').view('int16')
        bs = rawdata[1]
        if self.buttonState == 1 and bs == 0: #clicked left button
            for cb in self.OnLeftButtonUp:
                cb(self)
        if self.buttonState == 2 and bs == 0: #clicked left button
            for cb in self.OnRightButtonUp:
                cb(self)
        self.buttonState = bs
        for cb in self.WantButtonNotification:
            cb(self)