00001 /* 00002 Object Oriented Mobile Robot Model (OOMRM) C++ Library Copyright (C) 2002-2007 Derek Jones 00003 00004 This library is free software; you can redistribute it and/or 00005 modify it under the terms of the GNU Lesser General Public 00006 License as published by the Free Software Foundation; either 00007 version 2.1 of the License, or (at your option) any later version. 00008 00009 This library is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 Lesser General Public License for more details. 00013 00014 You should have received a copy of the GNU Lesser General Public 00015 License along with this library; if not, write to the Free Software 00016 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00017 00018 $Id: bdio1.h,v 1.2 2007/06/10 22:41:29 derek Exp $ 00019 */ 00020 #ifndef _H_ODIO1 00021 #define _H_ODIO1 00022 #include <hardware/oomrm.h> 00032 #define _pin (1<<((_ioline&0x7))) 00033 00035 class bDI1 : public virtual OOMRM 00036 { 00037 public: 00038 friend class oDI4; // need protected method constructor 00039 friend class oDI3; 00040 friend class oDI2; 00042 bDI1(IOLINE pin, PORT port); 00043 bool value(void) const; 00044 static foo2 callback(void); 00045 protected: 00046 bDI1(void); 00047 IOLINE _ioline; 00048 PORT _port; 00049 }; 00051 class bDO1 : public virtual OOMRM 00052 { 00053 public: 00055 bDO1(IOLINE pin, PORT port); 00056 void value(bool b); 00057 static foo2 callback(void); 00058 protected: 00059 bDO1(void); 00060 IOLINE _ioline; 00061 PORT _port; 00062 }; 00063 #include <hardware/opwm.h> 00065 00068 typedef oPWM oDO1_TPU; 00070 00073 //#include <hardware/oencoder.h> 00074 //typedef oEncoder oDI1_TPU; // the way it should have been! 00075 00076 #endif 00077
1.3