00001 /** 00002 \file Robots/LoBot/irccm/LoRemote.h 00003 \brief Responding to the Roomba Remote. 00004 00005 This file defines an API for checking whether the iRobot Create has 00006 received any IR commands from the Roomba Remote and taking appropriate 00007 action depending on the remote control button pressed. 00008 */ 00009 00010 /* 00011 ************************************************************************ 00012 * The iLab Neuromorphic Vision C++ Toolkit - Copyright (C) 2000-2005 * 00013 * by the University of Southern California (USC) and the iLab at USC. * 00014 * See http://iLab.usc.edu for information about this project. * 00015 * * 00016 * Major portions of the iLab Neuromorphic Vision Toolkit are protected * 00017 * under the U.S. patent ``Computation of Intrinsic Perceptual Saliency * 00018 * in Visual Environments, and Applications'' by Christof Koch and * 00019 * Laurent Itti, California Institute of Technology, 2001 (patent * 00020 * pending; application number 09/912,225 filed July 23, 2001; see * 00021 * http://pair.uspto.gov/cgi-bin/final/home.pl for current status). * 00022 ************************************************************************ 00023 * This file is part of the iLab Neuromorphic Vision C++ Toolkit. * 00024 * * 00025 * The iLab Neuromorphic Vision C++ Toolkit is free software; you can * 00026 * redistribute it and/or modify it under the terms of the GNU General * 00027 * Public License as published by the Free Software Foundation; either * 00028 * version 2 of the License, or (at your option) any later version. * 00029 * * 00030 * The iLab Neuromorphic Vision C++ Toolkit is distributed in the hope * 00031 * that it will be useful, but WITHOUT ANY WARRANTY; without even the * 00032 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * 00033 * PURPOSE. See the GNU General Public License for more details. * 00034 * * 00035 * You should have received a copy of the GNU General Public License * 00036 * along with the iLab Neuromorphic Vision C++ Toolkit; if not, write * 00037 * to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, * 00038 * Boston, MA 02111-1307 USA. * 00039 ************************************************************************ 00040 */ 00041 00042 /* 00043 Primary maintainer for this file: mviswana usc edu 00044 $HeadURL: svn://isvn.usc.edu/software/invt/trunk/saliency/src/Robots/LoBot/irccm/LoRemote.h $ 00045 $Id: LoRemote.h 13745 2010-08-02 05:27:16Z mviswana $ 00046 */ 00047 00048 #ifndef LOBOT_IRCCM_REMOTE_CONTROL_DOT_H 00049 #define LOBOT_IRCCM_REMOTE_CONTROL_DOT_H 00050 00051 /*------------------------- LOW-LEVEL ACTIONS -------------------------*/ 00052 00053 /// This function reacts to the Roomba Remote commands. If a remote 00054 /// command was indeed sent by the user and handled by the low-level 00055 /// controller, it sets a flag to indicate to the main program that a 00056 /// remote control acknowledgement needs to be sent to the high level. 00057 void lo_remote(void) ; 00058 00059 /*------------------ REMOTE CONTROL ACKNOWLEDGEMENTS ------------------*/ 00060 00061 /// This function returns true if Robolocust's low-level Command Module 00062 /// control program reacted to a Roomba Remote button press and needs to 00063 /// send an acknowledgement to the high level letting it know what the 00064 /// low level did. 00065 char lo_remote_pending(void) ; 00066 00067 /// Send pending remote control acknowledgement to the high level. 00068 void lo_send_remote(void) ; 00069 00070 /*------------------- REMOTE CONTROL STATE QUERIES --------------------*/ 00071 00072 /// Returns true if the user is remote controlling the robot; false if 00073 /// the robot is operating autonomously. 00074 char lo_is_remote_control(void) ; 00075 00076 /// Returns true if the Roomba Remote's 'P' button has been pressed; 00077 /// false otherwise. 00078 /// 00079 /// NOTE: In addition to the 'P' button, the Roomba Remote's "Spot" and 00080 /// "Max" buttons may also be used to quit the low-level controller. 00081 char lo_remote_quit(void) ; 00082 00083 /*---------------------------------------------------------------------*/ 00084 00085 #endif