00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
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 );
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 }