Best Python code snippet using fMBT_python
fmbttizen-agent.py
Source:fmbttizen-agent.py  
...418        tsec, tusec, eventType, event, param))419def mtEventSend(eventType, event, param):420    """multitouch device event"""421    return inputEventSend(mtInputDevFd, eventType, event, param)422def mtGestureStart(x, y):423    mtGestureStart.trackingId += 1424    trackingId = mtGestureStart.trackingId425    for freeSlot in xrange(16):426        if not freeSlot in mtEvents: break427    else: raise ValueError("No free multitouch event slots available")428    mtEvents[freeSlot] = [trackingId, x, y]429    mtEventSend(_EV_ABS, _ABS_MT_SLOT, freeSlot)430    mtEventSend(_EV_ABS, _ABS_MT_TRACKING_ID, trackingId)431    mtEventSend(_EV_ABS, _ABS_MT_POSITION_X, x)432    mtEventSend(_EV_ABS, _ABS_MT_POSITION_Y, y)433    mtEventSend(_EV_ABS, _ABS_X, x)434    mtEventSend(_EV_ABS, _ABS_Y, y)435    mtEventSend(0, 0, 0) # SYNC436    return freeSlot437mtGestureStart.trackingId = 0438def mtGestureMove(slot, x, y):439    if x == mtEvents[slot][1] and y == mtEvents[slot][2]: return440    mtEventSend(_EV_ABS, _ABS_MT_SLOT, slot)441    mtEventSend(_EV_ABS, _ABS_MT_TRACKING_ID, mtEvents[slot][0])442    if x != mtEvents[slot][1] and 0 <= x <= root_width:443        mtEventSend(_EV_ABS, _ABS_MT_POSITION_X, x)444        mtEvents[slot][1] = x445    if y != mtEvents[slot][2] and 0 <= y <= root_height:446        mtEventSend(_EV_ABS, _ABS_MT_POSITION_Y, y)447        mtEvents[slot][2] = y448    if 0 <= x <= root_width:449        mtEventSend(_EV_ABS, _ABS_X, x)450    if 0 <= y <= root_height:451        mtEventSend(_EV_ABS, _ABS_Y, y)452    mtEventSend(0, 0, 0)453def mtGestureEnd(slot):454    mtEventSend(_EV_ABS, _ABS_MT_SLOT, slot)455    mtEventSend(_EV_ABS, _ABS_MT_TRACKING_ID, -1)456    mtEventSend(0, 0, 0) # SYNC457    del mtEvents[slot]458def mtLinearGesture(listOfStartEndPoints, duration, movePoints, sleepBeforeMove=0, sleepAfterMove=0):459    # listOfStartEndPoints: [ [(finger1startX, finger1startY), (finger1endX, finger1endY)],460    #                         [(finger2startX, finger2startY), (finger2endX, finger2endY)], ...]461    startPoints = [startEnd[0] for startEnd in listOfStartEndPoints]462    xDist = [startEnd[1][0] - startEnd[0][0] for startEnd in listOfStartEndPoints]463    yDist = [startEnd[1][1] - startEnd[0][1] for startEnd in listOfStartEndPoints]464    movePointsF = float(movePoints)465    fingers = []466    for (x, y) in startPoints:467        fingers.append(mtGestureStart(x, y))468    if sleepBeforeMove > 0: time.sleep(sleepBeforeMove)469    if movePoints > 0:470        intermediateSleep = float(duration) / movePoints471        for i in xrange(1, movePoints + 1):472            if intermediateSleep > 0:473                time.sleep(intermediateSleep)474            for fingerIndex, finger in enumerate(fingers):475                mtGestureMove(finger,476                              startPoints[fingerIndex][0] + int(xDist[fingerIndex]*i/movePointsF),477                              startPoints[fingerIndex][1] + int(yDist[fingerIndex]*i/movePointsF))478    if sleepAfterMove > 0: time.sleep(sleepAfterMove)479    for finger in fingers:480        mtGestureEnd(finger)481    return True, None...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
