Wiselib
wiselib.stable/external_interface/tinyos/tinyos_clock.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 
00020 
00021 #include "external_interface/tinyos/tinyos_types.h"
00022 #include "external_interface/tinyos/tinyos_os.h"
00023 
00024 extern "C" {
00025    #include "external_interface/tinyos/tinyos_wiselib_glue.h"
00026 }
00027 
00028 namespace wiselib
00029 {
00037    template<typename OsModel_P>
00038    class TinyOsClockModel
00039    {
00040    public:
00041       typedef OsModel_P OsModel;
00042 
00043       typedef TinyOsClockModel<OsModel> self_type;
00044       typedef self_type* self_pointer_t;
00045 
00046       typedef uint32_t time_t;
00047       // --------------------------------------------------------------------
00048       enum ErrorCodes
00049       {
00050          SUCCESS = OsModel::SUCCESS,
00051          ERR_UNSPEC = OsModel::ERR_UNSPEC
00052       };
00053       // --------------------------------------------------------------------
00054       enum
00055       {
00056          READY = OsModel::READY,
00057          NO_VALUE = OsModel::NO_VALUE,
00058          INACTIVE = OsModel::INACTIVE
00059       };
00060       // --------------------------------------------------------------------
00061       enum
00062       {
00063          CLOCKS_PER_SEC = 1000
00064       };
00065       // --------------------------------------------------------------------
00066       TinyOsClockModel(  )
00067       {}
00068       // --------------------------------------------------------------------
00069       int state()
00070       {
00071          return READY;
00072       }
00073       // --------------------------------------------------------------------
00074       time_t time()
00075       {
00076          return tinyos_get_time();
00077       }
00078       // --------------------------------------------------------------------
00079       uint16_t microseconds( time_t time )
00080       {
00081          return 0;
00082       }
00083       // --------------------------------------------------------------------
00084       uint16_t milliseconds( time_t time )
00085       {
00086          return time % 1000;
00087       }
00088       // --------------------------------------------------------------------
00089       uint32_t seconds( time_t time )
00090       {
00091          return time / 1000;
00092       }
00093    };
00094 }
00095 
00096 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines