Hem Dutt Dabral / BLE_BlueNRG_fork

Fork of BLE_BlueNRG by Mridupawan Das

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Payload.cpp Source File

Payload.cpp

00001 #include <Payload.h>   
00002    
00003    Payload::Payload() {
00004         stringLength = 0;
00005         payloadUnitCount = 0;
00006         payload = NULL;
00007     }
00008     
00009     Payload::Payload(const uint8_t *tokenString, uint8_t string_ength) {
00010         // initialize private data members
00011         stringLength = string_ength;
00012         payloadUnitCount = 0;
00013         payload = NULL;
00014         
00015         int index = 0;
00016         while( index!=stringLength) {
00017             int len=tokenString[index];
00018             index=index+1+len;
00019             payloadUnitCount++;               
00020         }
00021     
00022         UnitPayload *obj = new UnitPayload[payloadUnitCount];
00023         int i=0;
00024         int c=0;
00025         int j,k;
00026 
00027         while(i<payloadUnitCount)
00028         {   
00029             obj[i].length=tokenString[c];
00030             obj[i].id=tokenString[c+1];
00031 
00032             obj[i].data = new uint8_t[obj[i].length];
00033             for(j=c+2,k=0;(j<(c+obj[i].length+1))&&(k<obj[i].length-1);j++,k++)
00034             {
00035                 obj[i].data[k]=tokenString[j];
00036         
00037             }           
00038             
00039             c=c+obj[i].length+1;
00040             i++;
00041 
00042         }
00043         payload = obj;
00044     }
00045 
00046 uint8_t Payload::getPayloadUnitCount() {
00047     return payloadUnitCount;
00048 }
00049 
00050 uint8_t Payload::getIDAtIndex(int index) {
00051     return payload[index].get_id();
00052 }
00053 
00054 uint8_t Payload::getLengthAtIndex(int index) {
00055     return payload[index].get_length();
00056 }
00057 
00058 uint8_t* Payload::getDataAtIndex(int index) {
00059     return payload[index].get_data();
00060 }