Main Page | Modules | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

StructuredTelemetryPacket.cpp

00001 // 00002 // Copyright 2004 P&P Software GmbH - All Rights Reserved 00003 // 00004 // StructuredTelemetryPacket.cpp 00005 // 00006 // Version 1.1 00007 // Date 23.02.03 (version 1.0) 00008 // Author A. Pasetti (P&P Software) 00009 // 00010 // Change Record: 00011 00012 #include "../GeneralInclude/CompilerSwitches.h" 00013 #include "../GeneralInclude/DebugSupport.h" 00014 #include "../GeneralInclude/ClassId.h" 00015 #include "../GeneralInclude/Constants.h" 00016 #include "../Base/CC_RootObject.h" 00017 #include "StructuredTelemetryPacket.h" 00018 00019 StructuredTelemetryPacket::StructuredTelemetryPacket(void) { 00020 pByteBuffer = pNULL; 00021 pShortBuffer = pNULL; 00022 pIntBuffer = pNULL; 00023 numberOfBytes = 0; 00024 } 00025 00026 void StructuredTelemetryPacket::setNumberOfBytes(unsigned int n) { 00027 assert( numberOfBytes == 0 ); // should not be called more than once 00028 assert( n > 0 ); 00029 00030 if (numberOfBytes == 0) { 00031 numberOfBytes = n; 00032 unsigned int nToBeAssigned; 00033 if ((n%sizeof(unsigned int)) == 0) 00034 nToBeAssigned = n/sizeof(unsigned int); 00035 else 00036 nToBeAssigned = n/sizeof(unsigned int) + 1; 00037 00038 pIntBuffer = new unsigned int[nToBeAssigned]; 00039 00040 assert( pIntBuffer != pNULL ); 00041 00042 pByteBuffer = (unsigned char*)pIntBuffer; 00043 pShortBuffer = (unsigned short*)pIntBuffer; 00044 } 00045 } 00046 00047 unsigned int StructuredTelemetryPacket::getNumberOfBytes(void) { 00048 return numberOfBytes; 00049 } 00050 00051 unsigned char StructuredTelemetryPacket::getUnsignedByte(unsigned int n) { 00052 assert( n<numberOfBytes ); 00053 assert( numberOfBytes > 0 ); 00054 return pByteBuffer[n]; 00055 } 00056 00057 void StructuredTelemetryPacket::setUnsignedByte(unsigned int index, unsigned char d) { 00058 assert( (numberOfBytes > 0) && (index < numberOfBytes) ); 00059 pByteBuffer[index] = d; 00060 } 00061 00062 void StructuredTelemetryPacket::setUnsignedShort(unsigned int index, unsigned short d) { 00063 assert( (numberOfBytes > 0) && ( sizeof(unsigned short)*(index+1) <= numberOfBytes) ); 00064 pShortBuffer[index] = d; 00065 } 00066 00067 void StructuredTelemetryPacket::setUnsignedInt(unsigned int index, unsigned int d) { 00068 assert( (numberOfBytes > 0) && ( sizeof(unsigned int)*(index+1) <= numberOfBytes) ); 00069 pIntBuffer[index] = d; 00070 } 00071 00072 unsigned short StructuredTelemetryPacket::getUnsignedShort(unsigned int index) { 00073 assert( sizeof(unsigned short)*(index+1)<=getNumberOfBytes() ); 00074 assert( numberOfBytes > 0 ); 00075 00076 return pShortBuffer[index]; 00077 } 00078 00079 unsigned int StructuredTelemetryPacket::getUnsignedInt(unsigned int index) { 00080 assert( sizeof(unsigned int)*(index+1)<=getNumberOfBytes() ); 00081 assert( numberOfBytes > 0 ); 00082 00083 return pIntBuffer[index]; 00084 } 00085 00086 bool StructuredTelemetryPacket::isObjectConfigured(void) { 00087 return (TelemetryPacket::isObjectConfigured() && 00088 numberOfBytes>0 && pByteBuffer!=pNULL); 00089 }
Copyright 2003 P&P Software GmbH - All Rights Reserved