Go to the documentation of this file.00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00031 
00032 
00033 
00034 
00035 
00036 
00037 
00038 
00039 
00040 
00041 
00042 
00043 
00044 
00045 
00046 
00047 
00048 
00049 
00050 
00051 
00052 
00053 
00054 
00055 #ifndef CANMSG_INCLUDEDEF_H
00056 #define CANMSG_INCLUDEDEF_H
00057 
00058 #include <iostream>
00059 
00060 
00065 class CanMsg
00066 {
00067 public:
00069         typedef unsigned char BYTE;
00071         int m_iID;
00073         int m_iLen;
00075         int m_iType;
00076 
00077 protected:
00081         BYTE m_bDat[8];
00082 
00083 public:
00087         CanMsg()
00088         {
00089                 m_iID = 0;
00090                 m_iLen = 8;
00091                 m_iType = 0x00;
00092         }
00093 
00097         void set(BYTE Data0=0, BYTE Data1=0, BYTE Data2=0, BYTE Data3=0, BYTE Data4=0, BYTE Data5=0, BYTE Data6=0, BYTE Data7=0)
00098         {
00099                 m_bDat[0] = Data0;
00100                 m_bDat[1] = Data1;
00101                 m_bDat[2] = Data2;
00102                 m_bDat[3] = Data3;
00103                 m_bDat[4] = Data4;
00104                 m_bDat[5] = Data5;
00105                 m_bDat[6] = Data6;
00106                 m_bDat[7] = Data7;
00107         }
00108 
00112         void setAt(BYTE data, int iNr)
00113         {
00114                 m_bDat[iNr] = data;
00115         }
00116 
00120         void get(BYTE* pData0, BYTE* pData1, BYTE* pData2, BYTE* pData3, BYTE* pData4, BYTE* pData5, BYTE* pData6, BYTE* pData7)
00121         {
00122                 *pData0 = m_bDat[0];
00123                 *pData1 = m_bDat[1];
00124                 *pData2 = m_bDat[2];
00125                 *pData3 = m_bDat[3];
00126                 *pData4 = m_bDat[4];
00127                 *pData5 = m_bDat[5];
00128                 *pData6 = m_bDat[6];
00129                 *pData7 = m_bDat[7];
00130         }
00131 
00136         int getAt(int iNr)
00137         {
00138                 return m_bDat[iNr];
00139         }
00140 
00145         int printCanIdentMsgStatus()
00146         {
00147                 if(getStatus() == 0)
00148                 {
00149                         std::cout << "ID= " << m_iID << "  " << "Cmd= " << getCmd() << "   " << "Msg_OK" << std::endl;
00150                         return 0;
00151                 }
00152                 else
00153                 {
00154                         std::cout << "ID= " << m_iID << "  " << "Cmd= " << getCmd() << "   " << "Msg_Error" << std::endl;
00155                         return -1;
00156                 }
00157         }
00158 
00162         void print()
00163         {
00164                 std::cout << "id= " << m_iID << " type= " << m_iType << " len= " << m_iLen << " data= " <<
00165                         (int)m_bDat[0] << " " << (int)m_bDat[1] << " " << (int)m_bDat[2] << " " << (int)m_bDat[3] << " " <<
00166                         (int)m_bDat[4] << " " << (int)m_bDat[5] << " " << (int)m_bDat[6] << " " << (int)m_bDat[7] << std::endl;
00167         }
00168 
00172         int getStatus()
00173         {
00174                 
00175                 return (int)(m_bDat[7] & 0x0003);
00176         }
00177 
00181         int getCmd()
00182         {
00183                 return (m_bDat[7] >> 2);
00184         }
00185         
00190         int getID()
00191         {
00192                 return m_iID;
00193         }
00194 
00200         void setID(int id)
00201         {
00202                 if( (0 <= id) && (id <= 2047) )
00203                         m_iID = id;
00204         }
00205 
00210         int getLength()
00211         {
00212                 return m_iLen;
00213         }
00214 
00219         void setLength(int len)
00220         {
00221                 if( (0 <= len) && (len <= 8) )
00222                         m_iLen = len;
00223         }
00224 
00229         int getType()
00230         {
00231                 return m_iType;
00232         }
00233 
00238         void setType(int type)
00239         {
00240                 m_iType = type;
00241         }
00242 
00243 
00244 };
00245 
00246 #endif