Wiselib
wiselib.testing/external_interface/trisos/trisos_clock.h
Go to the documentation of this file.
00001 // vim: set noexpandtab ts=4 sw=4:
00002 
00003 #ifndef TRISOS_CLOCK_H
00004 #define TRISOS_CLOCK_H
00005 
00006 // TODO: De-Boostification
00007 #include "src/sys/sys.h"
00008 #include "external_interface/trisos/trisos_os.h"
00009 
00010 namespace wiselib {
00011    template<typename OsModel_P>
00012    class TriSOSClockModel {
00013       public:
00014          typedef OsModel_P OsModel;
00015          
00016          typedef TriSOSClockModel<OsModel> self_type;
00017          typedef self_type* self_pointer_t;
00018          
00019          typedef uint32_t time_t;
00020          typedef time_t value_t;
00021          typedef uint16_t micros_t;
00022          typedef uint16_t millis_t;
00023          typedef uint32_t seconds_t;
00024          
00025          enum States
00026          {
00027             READY = OsModel::READY,
00028             NO_VALUE = OsModel::NO_VALUE,
00029             INACTIVE = OsModel::INACTIVE
00030          };
00031          
00032          TriSOSClockModel();
00033          TriSOSClockModel(TriSOSOsModel& os);
00034          
00035          int state();
00036          time_t time();
00037          //void set_time(time_t); // not supported
00038          micros_t microseconds(time_t);
00039          millis_t milliseconds(time_t);
00040          seconds_t seconds(time_t);
00041    };
00042    
00043    template<typename OsModel_P>
00044    TriSOSClockModel<OsModel_P>::
00045 	TriSOSClockModel() {
00046    }
00047    
00048    template<typename OsModel_P>
00049    TriSOSClockModel<OsModel_P>::
00050 	TriSOSClockModel(TriSOSOsModel& os) {
00051    }
00052    
00053    template<typename OsModel_P>
00054    int TriSOSClockModel<OsModel_P>::
00055 	state() {
00056       return READY;
00057    }
00058    
00059    template<typename OsModel_P>
00060    typename TriSOSClockModel<OsModel_P>::time_t TriSOSClockModel<OsModel_P>::
00061 	time() {
00062       return sys_get_system_time_ms();
00063    }
00064    
00065    template<typename OsModel_P>
00066    typename TriSOSClockModel<OsModel_P>::micros_t TriSOSClockModel<OsModel_P>::
00067 	microseconds(time_t t) {
00068       return 0;
00069    }
00070    
00071    template<typename OsModel_P>
00072    typename TriSOSClockModel<OsModel_P>::millis_t TriSOSClockModel<OsModel_P>::
00073 	milliseconds(time_t t) {
00074       return t%1000;
00075    }
00076    
00077    template<typename OsModel_P>
00078    typename TriSOSClockModel<OsModel_P>::seconds_t TriSOSClockModel<OsModel_P>::
00079 	seconds(time_t t) {
00080       return t/1000;
00081    }
00082    
00083 } // namespace wiselib
00084 
00085 #endif // TRISOS_CLOCK_H
00086 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines