blob: 034216d2215bbcf5779be8a9f65f98f34cadb779 [file] [log] [blame]
# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Traverse the boundary of a touchpad. Useful for determining if the values
are good/safe and tweaking them or simply as a basic example to start with.
"""
import sys
import roibot
import run_program
def program(robot, bounds):
"""Upload a new program to the robot. This program moves the finger along
the border of the touchpad.
"""
SPEED_SLOW = 30
SPEED_TABLE_SLOW = 1
SPEED_FAST = 60
SPEED_TABLE_FAST = 2
STEPS = 10
TOUCH_Z = bounds.paperZ()
UP_Z = TOUCH_Z - 15
# Set up the speed tables
robot.setParam("T2 V%02d=%06.01f" % (SPEED_TABLE_SLOW, SPEED_SLOW))
robot.setParam("T2 V%02d=%06.01f" % (SPEED_TABLE_FAST, SPEED_FAST))
# Get into position
robot.addCmd("SPD V=%02d" % SPEED_TABLE_FAST)
pt = robot.addPoint(bounds.minX(), bounds.minY(), bounds.upZ())
robot.addCmd("MOVP a PT=%03d CN=00 S V=00 POST" % pt)
pt1 = robot.addPoint(bounds.minX(), bounds.minY(), bounds.paperZ())
robot.addCmd("MOVP a PT=%03d CN=00 S V=00 POST" % pt1)
# Go around the border
robot.addCmd("SPD V=%02d" % SPEED_TABLE_SLOW)
pt = robot.addPoint(bounds.maxX(), bounds.minY(), bounds.paperZ())
robot.addCmd("MOVP a PT=%03d CN=00 S V=00 POST" % pt)
pt = robot.addPoint(bounds.maxX(), bounds.maxY(), bounds.paperZ())
robot.addCmd("MOVP a PT=%03d CN=00 S V=00 POST" % pt)
pt = robot.addPoint(bounds.minX(), bounds.maxY(), bounds.paperZ())
robot.addCmd("MOVP a PT=%03d CN=00 S V=00 POST" % pt)
robot.addCmd("MOVP a PT=%03d CN=00 S V=00 POST" % pt1)
# Lift up, now that it's done
pt = robot.addPoint(bounds.minX(), bounds.minY(), bounds.upZ())
robot.addCmd("MOVP a PT=%03d CN=00 S V=00 POST" % pt)
if __name__=="__main__":
if len(sys.argv) != 2:
print "Usage: ./basic device_name"
else:
device = sys.argv[1]
run_program.run_program(program, device)