nucho
/
RTno_digitalInOut
Embed:
(wiki syntax)
Show/hide line numbers
BasicDataType.h
00001 /******************************************* 00002 * BasicDataType.h 00003 * @author Yuki Suga 00004 * @copyright Yuki Suga (ysuga.net) Nov, 10th, 2010. 00005 * @license LGPLv3 00006 *****************************************/ 00007 00008 #ifndef BASIC_DATA_TYPE_HEADER_INCLUDED 00009 #define BASIC_DATA_TYPE_HEADER_INCLUDED 00010 00011 #include "SequenceDataType.h" 00012 #include "SequenceOctet.h" 00013 #include "SequenceChar.h" 00014 #include "SequenceBoolean.h" 00015 #include "SequenceLong.h" 00016 #include "SequenceDouble.h" 00017 #include "SequenceFloat.h" 00018 /* 00019 typedef struct __Time__ { 00020 long sec; 00021 long usec; 00022 }Time; 00023 */ 00024 00025 class TimedData { 00026 public: 00027 virtual void* GetBuffer() { 00028 return 0; 00029 } 00030 }; 00031 00032 class TimedBoolean : public TimedData { 00033 public: 00034 char data; 00035 virtual void* GetBuffer() { 00036 return &data; 00037 } 00038 const static char typecode = 'b'; 00039 }; 00040 00041 class TimedChar : public TimedData { 00042 public: 00043 char data; 00044 virtual void* GetBuffer() { 00045 return &data; 00046 } 00047 const static char typecode = 'c'; 00048 }; 00049 00050 class TimedOctet : public TimedData { 00051 public: 00052 char data; 00053 virtual void* GetBuffer() { 00054 return &data; 00055 } 00056 const static char typecode = 'o'; 00057 }; 00058 00059 class TimedLong : public TimedData { 00060 // Time timestamp; 00061 public: 00062 long data; 00063 virtual void* GetBuffer() { 00064 return &data; 00065 } 00066 const static char typecode = 'l'; 00067 }; 00068 00069 class TimedDouble : public TimedData { 00070 // Time timestamp; 00071 public: 00072 //double data; 00073 float data; 00074 virtual void* GetBuffer() { 00075 return &data; 00076 } 00077 const static char typecode = 'd'; 00078 }; 00079 00080 class TimedFloat : public TimedData { 00081 // unsigned char length; 00082 public: 00083 float data; 00084 virtual void* GetBuffer() { 00085 return &data; 00086 } 00087 const static char typecode = 'f'; 00088 }; 00089 00090 class TimedDataSeq { 00091 public: 00092 virtual SequenceDataType* GetBuffer() { 00093 return 0; 00094 } 00095 }; 00096 00097 class TimedOctetSeq : public TimedDataSeq { 00098 // Time timestamp; 00099 // long length; 00100 public: 00101 SequenceOctet data; 00102 virtual SequenceDataType* GetBuffer() { 00103 return &data; 00104 } 00105 const static char typecode = 'O'; 00106 }; 00107 00108 class TimedCharSeq : public TimedDataSeq { 00109 // Time timestamp; 00110 // long length; 00111 public: 00112 SequenceChar data; 00113 virtual SequenceDataType* GetBuffer() { 00114 return &data; 00115 } 00116 const static char typecode = 'C'; 00117 }; 00118 00119 class TimedBooleanSeq : public TimedDataSeq { 00120 // Time timestamp; 00121 // long length; 00122 public: 00123 SequenceBoolean data; 00124 virtual SequenceDataType* GetBuffer() { 00125 return &data; 00126 } 00127 const static char typecode = 'B'; 00128 }; 00129 00130 class TimedLongSeq : public TimedDataSeq { 00131 // Time timestamp; 00132 // long length; 00133 public: 00134 SequenceLong data; 00135 virtual SequenceDataType* GetBuffer() { 00136 return &data; 00137 } 00138 const static char typecode = 'L'; 00139 }; 00140 00141 class TimedFloatSeq : public TimedDataSeq { 00142 // Time timestamp; 00143 // long length; 00144 // float* data; 00145 public: 00146 SequenceFloat data; 00147 virtual SequenceDataType* GetBuffer() { 00148 return &data; 00149 } 00150 const static char typecode = 'F'; 00151 }; 00152 00153 struct TimedDoubleSeq : public TimedDataSeq { 00154 // Time timestamp; 00155 // long length; 00156 // double* data; 00157 public: 00158 SequenceDouble data; 00159 virtual SequenceDataType* GetBuffer() { 00160 return &data; 00161 } 00162 const static char typecode = 'D'; 00163 }; 00164 00165 00166 #endif
Generated on Wed Jul 13 2022 13:00:00 by 1.7.2