Wiselib
|
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