Wiselib
wiselib.testing/external_interface/isense/tubs_hallway_rgb_actuator.h
Go to the documentation of this file.
00001 /***************************************************************************
00002  ** This file is part of the generic algorithm library Wiselib.           **
00003  ** Copyright (C) 2008,2009 by the Wisebed (www.wisebed.eu) project.      **
00004  **                                                                       **
00005  ** The Wiselib is free software: you can redistribute it and/or modify   **
00006  ** it under the terms of the GNU Lesser General Public License as        **
00007  ** published by the Free Software Foundation, either version 3 of the    **
00008  ** License, or (at your option) any later version.                       **
00009  **                                                                       **
00010  ** The Wiselib is distributed in the hope that it will be useful,        **
00011  ** but WITHOUT ANY WARRANTY; without even the implied warranty of        **
00012  ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         **
00013  ** GNU Lesser General Public License for more details.                   **
00014  **                                                                       **
00015  ** You should have received a copy of the GNU Lesser General Public      **
00016  ** License along with the Wiselib.                                       **
00017  ** If not, see <http://www.gnu.org/licenses/>.                           **
00018  ***************************************************************************/
00019 #ifndef CONNECTOR_ISENSE_ACTUATOR_TUBS_RGB_H
00020 #define CONNECTOR_ISENSE_ACTUATOR_TUBS_RGB_H
00021 
00022 #include "external_interface/isense/isense_types.h"
00023 #include <isense/os.h>
00024 
00025 
00026 namespace wiselib
00027 {
00028 
00034    template<typename OsModel_P,
00035             typename Uart_P>
00036    class TubsHallwayRgbActuator
00037    {
00038    public:
00039       typedef OsModel_P OsModel;
00040       typedef Uart_P Uart;
00041 
00042       typedef TubsHallwayRgbActuator<OsModel, Uart> self_type;
00043       typedef self_type* self_pointer_t;
00044       // --------------------------------------------------------------------
00045       struct RgbValue
00046       {
00047          RgbValue()
00048             : red(0), green(0), blue(0)
00049          {};
00050          RgbValue( int r, int g, int b )
00051          { red = r; green = g; blue = b; };
00052 
00053          int red;
00054          int green;
00055          int blue;
00056       };
00057       // --------------------------------------------------------------------
00058       typedef RgbValue value_t;
00059       // --------------------------------------------------------------------
00060       enum ErrorCodes
00061       {
00062          SUCCESS = OsModel::SUCCESS,
00063          ERR_UNSPEC = OsModel::ERR_UNSPEC,
00064          ERR_NOTIMPL = OsModel::ERR_NOTIMPL
00065       };
00066       // --------------------------------------------------------------------
00067       enum
00068       {
00069          READY = OsModel::READY,
00070          NO_VALUE = OsModel::NO_VALUE,
00071          INACTIVE = OsModel::INACTIVE
00072       };
00073       // --------------------------------------------------------------------
00074       TubsHallwayRgbActuator( typename OsModel::AppMainParameter& param )
00075       {}
00076       // --------------------------------------------------------------------
00077       int init()
00078       {
00079          return SUCCESS;
00080       }
00081       // --------------------------------------------------------------------
00082       int destruct()
00083       {
00084          return SUCCESS;
00085       }
00086       // --------------------------------------------------------------------
00087       int state()
00088       {
00089          return READY;
00090       }
00091       // --------------------------------------------------------------------
00092       value_t operator()()
00093       {
00094          return value_;
00095       }
00096       // --------------------------------------------------------------------
00097       void set_value( value_t value )
00098       {
00099          value_ = value;
00100 //          os().proc->owner_w().template write_simple_tag<value_t>( tagname(), value );
00101       }
00102 
00103    private:
00104 //       ShawnOs& os()
00105 //       { return os_; }
00106 //       // --------------------------------------------------------------------
00107 //       ShawnOs& os_;
00108       value_t value_;
00109    };
00110 
00111 }
00112 
00113 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines