mouse_click.py
Go to the documentation of this file.
00001 #!/usr/bin/env python
00002 # Copyright (c) 2013, Oregon State University
00003 # All rights reserved.
00004 
00005 # Redistribution and use in source and binary forms, with or without
00006 # modification, are permitted provided that the following conditions are met:
00007 #     * Redistributions of source code must retain the above copyright
00008 #       notice, this list of conditions and the following disclaimer.
00009 #     * Redistributions in binary form must reproduce the above copyright
00010 #       notice, this list of conditions and the following disclaimer in the
00011 #       documentation and/or other materials provided with the distribution.
00012 #     * Neither the name of the Oregon State University nor the
00013 #       names of its contributors may be used to endorse or promote products
00014 #       derived from this software without specific prior written permission.
00015 
00016 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
00017 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
00018 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00019 # DISCLAIMED. IN NO EVENT SHALL OREGON STATE UNIVERSITY BE LIABLE FOR ANY
00020 # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
00021 # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00022 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
00023 # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00024 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00025 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00026 
00027 # Author Dan Lazewatsky/lazewatd@engr.orst.edu
00028 
00029 import roslib; roslib.load_manifest('world_intersect')
00030 import rospy
00031 from std_msgs.msg import Empty
00032 
00033 from pymouse import PyMouse
00034 import random, time
00035 from signal import signal, SIGINT
00036 
00037 def stop(signum, frame):
00038     cleanup_stop_thread();
00039     sys.exit()
00040     signal(SIGINT, stop)
00041 
00042 from pymouse import PyMouseEvent
00043 
00044 class event(PyMouseEvent):
00045     def __init__(self):
00046         super(event, self).__init__()
00047         self.click_pub = rospy.Publisher('click', Empty)
00048 
00049     def move(self, x, y):
00050         pass
00051 
00052     def click(self, x, y, button, press):
00053         if not press:
00054             self.click_pub.publish()
00055 
00056 if __name__ == '__main__':
00057         rospy.init_node('mouse_click')
00058         e = event()
00059         e.capture = False
00060         e.daemon = False
00061         e.start()
00062         m = PyMouse()
00063         try:
00064             while not rospy.is_shutdown():
00065                 rospy.sleep(1)
00066         except KeyboardInterrupt:
00067             pass
00068         e.stop()


world_intersect
Author(s): Daniel Lazewatsky
autogenerated on Mon Oct 6 2014 10:19:35