nucho
/
RTno_digitalInOut
Embed:
(wiki syntax)
Show/hide line numbers
PortBase.h
00001 /******************************************* 00002 * PortBase.h 00003 * @author Yuki Suga 00004 * @copyright Yuki Suga (ysuga.net) Nov, 10th, 2010. 00005 * @license LGPLv3 00006 *****************************************/ 00007 00008 #ifndef PORT_BASE_HEADER_INCLUDED 00009 #define PORT_BASE_HEADER_INCLUDED 00010 00011 #include "BasicDataType.h" 00012 00013 class PortBase { 00014 private: 00015 00016 00017 protected: 00018 void* m_pData; 00019 char* m_pName; 00020 char m_TypeCode; 00021 public: 00022 PortBase(char* name); 00023 ~PortBase(); 00024 00025 public: 00026 char* GetName() {return m_pName;} 00027 char GetTypeCode() {return m_TypeCode;} 00028 00029 int isSequenceType() { 00030 switch(m_TypeCode) { 00031 /* 00032 case 'b': 00033 case 'B': 00034 case 'o': 00035 case 'O': 00036 case 'c': 00037 case 'C': 00038 */ 00039 case 'b': 00040 case 'o': 00041 case 'c': 00042 case 'l': 00043 case 'f': 00044 case 'd': 00045 return 0; 00046 default: 00047 return 1; 00048 } 00049 } 00050 00051 int GetLength() { 00052 if(!isSequenceType()) { 00053 return 1; 00054 } else { 00055 return ((TimedDataSeq*)m_pData)->GetBuffer()->length(); 00056 } 00057 } 00058 00059 void SetLength(int len) { 00060 if(!isSequenceType()) { 00061 return; 00062 } 00063 SequenceDataType *seqData = ((TimedDataSeq*)m_pData)->GetBuffer(); 00064 seqData->length(len); 00065 } 00066 00067 void* GetBuffer() { 00068 void* pBuffer; 00069 if(!isSequenceType()) { 00070 // if (len != 1) return 0;// -INVALID_PACKET_DATASIZE; 00071 pBuffer = ((TimedData*)m_pData)->GetBuffer(); 00072 } else { 00073 SequenceDataType *seqData = ((TimedDataSeq*)m_pData)->GetBuffer(); 00074 pBuffer = seqData->GetBuffer(); 00075 } 00076 return pBuffer; 00077 } 00078 00079 }; 00080 00081 #endif
Generated on Wed Jul 13 2022 13:00:00 by 1.7.2