TELECOMMAND MANAGER V1

Dependencies:   mbed SLCD mbed-rtos

Committer:
shreeshas95
Date:
Thu Sep 17 13:54:08 2015 +0000
Revision:
16:de2224dd9a0d
Parent:
13:7b27a8e9cbb4
Child:
14:a4c259ca0325
DUMMY program to demostrate the problems

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shreeshas95 13:7b27a8e9cbb4 1 //without warning
shreeshas95 13:7b27a8e9cbb4 2 void adf_not_SDcard();
shreeshas95 13:7b27a8e9cbb4 3
shreeshas95 13:7b27a8e9cbb4 4 #define S_FRAME_SIZE 48
shreeshas95 13:7b27a8e9cbb4 5 #define EoS_SIZE 120
shreeshas95 13:7b27a8e9cbb4 6 #define SEGMENT_SIZE 40
shreeshas95 13:7b27a8e9cbb4 7 #define TM_FRAME_SIZE 134
shreeshas95 13:7b27a8e9cbb4 8
shreeshas95 13:7b27a8e9cbb4 9 class SND_TM{
shreeshas95 13:7b27a8e9cbb4 10
shreeshas95 13:7b27a8e9cbb4 11 int diff_prev;
shreeshas95 13:7b27a8e9cbb4 12 int type0_no; //number of type zero frames
shreeshas95 13:7b27a8e9cbb4 13 int type1_no;
shreeshas95 13:7b27a8e9cbb4 14 int total_frames; //number of type one packe (TMP)
shreeshas95 13:7b27a8e9cbb4 15 int segment_no; //number of type one packe (TMP)
shreeshas95 13:7b27a8e9cbb4 16 TM_list * list_ptr;
shreeshas95 13:7b27a8e9cbb4 17 unsigned char SCH40[5];
shreeshas95 13:7b27a8e9cbb4 18 unsigned char FCCH80[10];
shreeshas95 13:7b27a8e9cbb4 19 bool reset_flag; //for reseting all the static variables when new list is given.
shreeshas95 13:7b27a8e9cbb4 20
shreeshas95 13:7b27a8e9cbb4 21 void differential_encode(unsigned char* ptr, int length){
shreeshas95 13:7b27a8e9cbb4 22
shreeshas95 13:7b27a8e9cbb4 23 for(int i=0; i<length;i++){
shreeshas95 13:7b27a8e9cbb4 24
shreeshas95 13:7b27a8e9cbb4 25 unsigned char s = ptr[i] , t;
shreeshas95 13:7b27a8e9cbb4 26 t = s ^ (s >> 1);
shreeshas95 13:7b27a8e9cbb4 27 (diff_prev == 0) ? t=t^0x00 : t=t^0x80 ;
shreeshas95 13:7b27a8e9cbb4 28 diff_prev = int(s & 0x01);
shreeshas95 13:7b27a8e9cbb4 29 ptr[i] = t;
shreeshas95 13:7b27a8e9cbb4 30 }
shreeshas95 13:7b27a8e9cbb4 31
shreeshas95 13:7b27a8e9cbb4 32 }
shreeshas95 13:7b27a8e9cbb4 33
shreeshas95 13:7b27a8e9cbb4 34 int decide_type(unsigned char tmid){
shreeshas95 13:7b27a8e9cbb4 35 int type = 0;
shreeshas95 13:7b27a8e9cbb4 36
shreeshas95 13:7b27a8e9cbb4 37 switch(tmid){
shreeshas95 13:7b27a8e9cbb4 38 case 0x1:
shreeshas95 13:7b27a8e9cbb4 39 case 0x2:
shreeshas95 13:7b27a8e9cbb4 40 case 0x3:
shreeshas95 13:7b27a8e9cbb4 41 case 0x4:
shreeshas95 13:7b27a8e9cbb4 42 case 0x5:
shreeshas95 13:7b27a8e9cbb4 43 case 0x6:
shreeshas95 13:7b27a8e9cbb4 44 case 0x7:
shreeshas95 13:7b27a8e9cbb4 45 case 0x8:
shreeshas95 13:7b27a8e9cbb4 46 type = 0;
shreeshas95 13:7b27a8e9cbb4 47 break;
shreeshas95 13:7b27a8e9cbb4 48 case 0xA:
shreeshas95 13:7b27a8e9cbb4 49 case 0xB:
shreeshas95 13:7b27a8e9cbb4 50 case 0xC:
shreeshas95 13:7b27a8e9cbb4 51 case 0xD:
shreeshas95 13:7b27a8e9cbb4 52 case 0xE:
shreeshas95 13:7b27a8e9cbb4 53 type = 1;
shreeshas95 13:7b27a8e9cbb4 54 break;
shreeshas95 13:7b27a8e9cbb4 55 }
shreeshas95 13:7b27a8e9cbb4 56
shreeshas95 13:7b27a8e9cbb4 57 return type;
shreeshas95 13:7b27a8e9cbb4 58 }
shreeshas95 13:7b27a8e9cbb4 59
shreeshas95 13:7b27a8e9cbb4 60 void data_number(){
shreeshas95 13:7b27a8e9cbb4 61
shreeshas95 13:7b27a8e9cbb4 62 int type1_frame_no;
shreeshas95 13:7b27a8e9cbb4 63 TM_list *head = list_ptr;
shreeshas95 13:7b27a8e9cbb4 64
shreeshas95 13:7b27a8e9cbb4 65 type0_no = 0;
shreeshas95 13:7b27a8e9cbb4 66 type1_no = 0;
shreeshas95 13:7b27a8e9cbb4 67
shreeshas95 13:7b27a8e9cbb4 68 do{
shreeshas95 13:7b27a8e9cbb4 69
shreeshas95 13:7b27a8e9cbb4 70 switch( decide_type(head->tmid) ){
shreeshas95 13:7b27a8e9cbb4 71 case 0:
shreeshas95 13:7b27a8e9cbb4 72 type0_no++;
shreeshas95 13:7b27a8e9cbb4 73 break;
shreeshas95 13:7b27a8e9cbb4 74 case 1:
shreeshas95 13:7b27a8e9cbb4 75 type1_no++;
shreeshas95 13:7b27a8e9cbb4 76
shreeshas95 13:7b27a8e9cbb4 77 }
shreeshas95 13:7b27a8e9cbb4 78
shreeshas95 13:7b27a8e9cbb4 79 head=head->next_TM;
shreeshas95 13:7b27a8e9cbb4 80
shreeshas95 13:7b27a8e9cbb4 81 }
shreeshas95 13:7b27a8e9cbb4 82 while(head->next_TM != NULL);
shreeshas95 13:7b27a8e9cbb4 83
shreeshas95 13:7b27a8e9cbb4 84 type1_frame_no = ( type1_no % 10 == 0 )? (type1_no / 10) : ( (type1_no / 10) + 1);
shreeshas95 13:7b27a8e9cbb4 85 total_frames = type0_no + type1_frame_no ;
shreeshas95 13:7b27a8e9cbb4 86 segment_no = (total_frames*2 % (SEGMENT_SIZE-1) == 0) ? ( total_frames*2/(SEGMENT_SIZE-1) ) : (total_frames*2/(SEGMENT_SIZE-1) + 1); //subtracting 1 since the last Tframe is not detected
shreeshas95 13:7b27a8e9cbb4 87
shreeshas95 13:7b27a8e9cbb4 88 }
shreeshas95 13:7b27a8e9cbb4 89
shreeshas95 13:7b27a8e9cbb4 90
shreeshas95 13:7b27a8e9cbb4 91 TM_list* next_type_structure(TM_list *ptr){
shreeshas95 13:7b27a8e9cbb4 92
shreeshas95 13:7b27a8e9cbb4 93 if(ptr == NULL){
shreeshas95 13:7b27a8e9cbb4 94 return NULL;
shreeshas95 13:7b27a8e9cbb4 95 }
shreeshas95 13:7b27a8e9cbb4 96
shreeshas95 13:7b27a8e9cbb4 97 int temp = decide_type(ptr->tmid);
shreeshas95 13:7b27a8e9cbb4 98
shreeshas95 13:7b27a8e9cbb4 99 if((temp == 0) && (ptr->next_TM != NULL) ){
shreeshas95 13:7b27a8e9cbb4 100
shreeshas95 13:7b27a8e9cbb4 101 do{
shreeshas95 13:7b27a8e9cbb4 102 ptr = ptr->next_TM;
shreeshas95 13:7b27a8e9cbb4 103 temp = decide_type(ptr->tmid);
shreeshas95 13:7b27a8e9cbb4 104 }
shreeshas95 13:7b27a8e9cbb4 105 while(temp == 1 && ptr->next_TM != NULL);
shreeshas95 13:7b27a8e9cbb4 106
shreeshas95 13:7b27a8e9cbb4 107 if(temp == 1){
shreeshas95 13:7b27a8e9cbb4 108 return NULL;
shreeshas95 13:7b27a8e9cbb4 109 }
shreeshas95 13:7b27a8e9cbb4 110
shreeshas95 13:7b27a8e9cbb4 111 }
shreeshas95 13:7b27a8e9cbb4 112
shreeshas95 13:7b27a8e9cbb4 113 else if((temp == 1) && (ptr->next_TM != NULL)){
shreeshas95 13:7b27a8e9cbb4 114
shreeshas95 13:7b27a8e9cbb4 115 do{
shreeshas95 13:7b27a8e9cbb4 116 ptr = ptr->next_TM;
shreeshas95 13:7b27a8e9cbb4 117 temp = decide_type(ptr->tmid);
shreeshas95 13:7b27a8e9cbb4 118 }
shreeshas95 13:7b27a8e9cbb4 119 while(temp == 0 && ptr->next_TM != NULL);
shreeshas95 13:7b27a8e9cbb4 120
shreeshas95 13:7b27a8e9cbb4 121 if(temp == 0){
shreeshas95 13:7b27a8e9cbb4 122 return NULL;
shreeshas95 13:7b27a8e9cbb4 123 }
shreeshas95 13:7b27a8e9cbb4 124
shreeshas95 13:7b27a8e9cbb4 125
shreeshas95 13:7b27a8e9cbb4 126 }
shreeshas95 13:7b27a8e9cbb4 127
shreeshas95 13:7b27a8e9cbb4 128 else{
shreeshas95 13:7b27a8e9cbb4 129
shreeshas95 13:7b27a8e9cbb4 130 // cout<<"\nNULL returned by next_type_structure\n";
shreeshas95 13:7b27a8e9cbb4 131 return NULL;
shreeshas95 13:7b27a8e9cbb4 132
shreeshas95 13:7b27a8e9cbb4 133 }
shreeshas95 13:7b27a8e9cbb4 134 return ptr;
shreeshas95 13:7b27a8e9cbb4 135 }
shreeshas95 13:7b27a8e9cbb4 136
shreeshas95 13:7b27a8e9cbb4 137 /*
shreeshas95 13:7b27a8e9cbb4 138 brief: take input type 0 or 1 and return the address of the first node in the list that have that type
shreeshas95 13:7b27a8e9cbb4 139 parameter: type 0 or 1
shreeshas95 13:7b27a8e9cbb4 140 return: pointer of the first node having same type
shreeshas95 13:7b27a8e9cbb4 141 */
shreeshas95 13:7b27a8e9cbb4 142 TM_list* first_type_structure(int type){
shreeshas95 13:7b27a8e9cbb4 143 TM_list* temp_ptr = list_ptr;
shreeshas95 13:7b27a8e9cbb4 144
shreeshas95 13:7b27a8e9cbb4 145 if(type == 0){
shreeshas95 13:7b27a8e9cbb4 146 while((decide_type(temp_ptr->tmid) == 1)){
shreeshas95 13:7b27a8e9cbb4 147 temp_ptr = temp_ptr->next_TM;
shreeshas95 13:7b27a8e9cbb4 148
shreeshas95 13:7b27a8e9cbb4 149 if(temp_ptr == NULL){
shreeshas95 13:7b27a8e9cbb4 150 return NULL ;
shreeshas95 13:7b27a8e9cbb4 151 }
shreeshas95 13:7b27a8e9cbb4 152 }
shreeshas95 13:7b27a8e9cbb4 153 }
shreeshas95 13:7b27a8e9cbb4 154
shreeshas95 13:7b27a8e9cbb4 155 else if(type == 1){
shreeshas95 13:7b27a8e9cbb4 156 while((decide_type(temp_ptr->tmid) == 0) ){
shreeshas95 13:7b27a8e9cbb4 157 temp_ptr = temp_ptr->next_TM;
shreeshas95 13:7b27a8e9cbb4 158
shreeshas95 13:7b27a8e9cbb4 159 if(temp_ptr == NULL){
shreeshas95 13:7b27a8e9cbb4 160 return NULL;
shreeshas95 13:7b27a8e9cbb4 161 }
shreeshas95 13:7b27a8e9cbb4 162 }
shreeshas95 13:7b27a8e9cbb4 163 }
shreeshas95 13:7b27a8e9cbb4 164 return temp_ptr;
shreeshas95 13:7b27a8e9cbb4 165 }
shreeshas95 13:7b27a8e9cbb4 166
shreeshas95 13:7b27a8e9cbb4 167 unsigned char TMframe_type1[TM_FRAME_SIZE];
shreeshas95 13:7b27a8e9cbb4 168 bool type1_frame_flag; //should be true for every new list
shreeshas95 13:7b27a8e9cbb4 169
shreeshas95 13:7b27a8e9cbb4 170 unsigned char * type1_frame(){
shreeshas95 13:7b27a8e9cbb4 171
shreeshas95 13:7b27a8e9cbb4 172 int i;
shreeshas95 13:7b27a8e9cbb4 173 static TM_list *pointer ;
shreeshas95 13:7b27a8e9cbb4 174 static int counter = 0;
shreeshas95 13:7b27a8e9cbb4 175
shreeshas95 13:7b27a8e9cbb4 176 if(type1_frame_flag){
shreeshas95 13:7b27a8e9cbb4 177 pointer = first_type_structure(1);
shreeshas95 13:7b27a8e9cbb4 178 counter = 0;
shreeshas95 13:7b27a8e9cbb4 179 type1_frame_flag = false;
shreeshas95 13:7b27a8e9cbb4 180 }
shreeshas95 13:7b27a8e9cbb4 181
shreeshas95 13:7b27a8e9cbb4 182
shreeshas95 13:7b27a8e9cbb4 183
shreeshas95 13:7b27a8e9cbb4 184 for(i = 4 ; (i < 134) && (pointer != NULL) ; i++){
shreeshas95 13:7b27a8e9cbb4 185 TMframe_type1[i] = pointer->TM_string[counter];
shreeshas95 13:7b27a8e9cbb4 186
shreeshas95 13:7b27a8e9cbb4 187 if(counter++ == 12){
shreeshas95 13:7b27a8e9cbb4 188 counter = 0;
shreeshas95 13:7b27a8e9cbb4 189 pointer = next_type_structure(pointer);
shreeshas95 13:7b27a8e9cbb4 190 }
shreeshas95 13:7b27a8e9cbb4 191 }
shreeshas95 13:7b27a8e9cbb4 192
shreeshas95 13:7b27a8e9cbb4 193 // header
shreeshas95 13:7b27a8e9cbb4 194 TMframe_type1[0] = 1<<7 + ( (i-4)/10 )<<3; //( (i-4)/10 ) gives number of packets in the frame
shreeshas95 13:7b27a8e9cbb4 195 //insert time ;
shreeshas95 13:7b27a8e9cbb4 196 TMframe_type1[3] = CRC::crc16_gen(TMframe_type1,3);
shreeshas95 13:7b27a8e9cbb4 197 //end header
shreeshas95 13:7b27a8e9cbb4 198
shreeshas95 13:7b27a8e9cbb4 199 if(pointer == NULL){
shreeshas95 13:7b27a8e9cbb4 200 for( ; i < 134 ; i++){ //repeating ;ast packet to fill up the extra space
shreeshas95 13:7b27a8e9cbb4 201 TMframe_type1[i] = TMframe_type1[i-13];
shreeshas95 13:7b27a8e9cbb4 202 }
shreeshas95 13:7b27a8e9cbb4 203
shreeshas95 13:7b27a8e9cbb4 204 }
shreeshas95 13:7b27a8e9cbb4 205 return TMframe_type1;
shreeshas95 13:7b27a8e9cbb4 206
shreeshas95 13:7b27a8e9cbb4 207 }
shreeshas95 13:7b27a8e9cbb4 208
shreeshas95 13:7b27a8e9cbb4 209 bool type0_frame_flag;
shreeshas95 13:7b27a8e9cbb4 210
shreeshas95 13:7b27a8e9cbb4 211 unsigned char* type0_frame(){
shreeshas95 13:7b27a8e9cbb4 212 static TM_list *pointer ;
shreeshas95 13:7b27a8e9cbb4 213
shreeshas95 13:7b27a8e9cbb4 214 if(type0_frame_flag){
shreeshas95 13:7b27a8e9cbb4 215 pointer = first_type_structure(0);
shreeshas95 13:7b27a8e9cbb4 216 type0_frame_flag = false;
shreeshas95 13:7b27a8e9cbb4 217 }
shreeshas95 13:7b27a8e9cbb4 218
shreeshas95 13:7b27a8e9cbb4 219 else {
shreeshas95 13:7b27a8e9cbb4 220 pointer = next_type_structure(pointer);
shreeshas95 13:7b27a8e9cbb4 221
shreeshas95 13:7b27a8e9cbb4 222 }
shreeshas95 13:7b27a8e9cbb4 223 return pointer->TM_string;
shreeshas95 13:7b27a8e9cbb4 224 }
shreeshas95 13:7b27a8e9cbb4 225
shreeshas95 13:7b27a8e9cbb4 226
shreeshas95 13:7b27a8e9cbb4 227
shreeshas95 13:7b27a8e9cbb4 228 void interleave( unsigned char *input, unsigned char *output ){
shreeshas95 13:7b27a8e9cbb4 229
shreeshas95 13:7b27a8e9cbb4 230 unsigned int outState = 0;
shreeshas95 13:7b27a8e9cbb4 231 unsigned int outByte = 0;
shreeshas95 13:7b27a8e9cbb4 232
shreeshas95 13:7b27a8e9cbb4 233 for( unsigned int i = 0 ; i < 36 ; ++i ){
shreeshas95 13:7b27a8e9cbb4 234 for(unsigned int j = 0 ; j < 30 ; ++j){
shreeshas95 13:7b27a8e9cbb4 235 unsigned int x = j*36+i;
shreeshas95 13:7b27a8e9cbb4 236 unsigned char tempBit = ((input[x >> 3]) >> (7-(x % 8))) & 1;
shreeshas95 13:7b27a8e9cbb4 237 switch(outState){
shreeshas95 13:7b27a8e9cbb4 238 case 0:
shreeshas95 13:7b27a8e9cbb4 239 outState = 1;
shreeshas95 13:7b27a8e9cbb4 240 output[outByte] = tempBit << 7;
shreeshas95 13:7b27a8e9cbb4 241 break;
shreeshas95 13:7b27a8e9cbb4 242 case 1:
shreeshas95 13:7b27a8e9cbb4 243 outState = 2;
shreeshas95 13:7b27a8e9cbb4 244 output[outByte] += tempBit << 6;
shreeshas95 13:7b27a8e9cbb4 245 break;
shreeshas95 13:7b27a8e9cbb4 246 case 2:
shreeshas95 13:7b27a8e9cbb4 247 outState = 3;
shreeshas95 13:7b27a8e9cbb4 248 output[outByte] += tempBit << 5;
shreeshas95 13:7b27a8e9cbb4 249 break;
shreeshas95 13:7b27a8e9cbb4 250 case 3:
shreeshas95 13:7b27a8e9cbb4 251 outState = 4;
shreeshas95 13:7b27a8e9cbb4 252 output[outByte] += tempBit << 4;
shreeshas95 13:7b27a8e9cbb4 253 break;
shreeshas95 13:7b27a8e9cbb4 254 case 4:
shreeshas95 13:7b27a8e9cbb4 255 outState = 5;
shreeshas95 13:7b27a8e9cbb4 256 output[outByte] += tempBit << 3;
shreeshas95 13:7b27a8e9cbb4 257 break;
shreeshas95 13:7b27a8e9cbb4 258 case 5:
shreeshas95 13:7b27a8e9cbb4 259 outState = 6;
shreeshas95 13:7b27a8e9cbb4 260 output[outByte] += tempBit << 2;
shreeshas95 13:7b27a8e9cbb4 261 break;
shreeshas95 13:7b27a8e9cbb4 262 case 6:
shreeshas95 13:7b27a8e9cbb4 263 outState = 7;
shreeshas95 13:7b27a8e9cbb4 264 output[outByte] += tempBit << 1;
shreeshas95 13:7b27a8e9cbb4 265 break;
shreeshas95 13:7b27a8e9cbb4 266 case 7:
shreeshas95 13:7b27a8e9cbb4 267 outState = 0;
shreeshas95 13:7b27a8e9cbb4 268 output[outByte] += tempBit;
shreeshas95 13:7b27a8e9cbb4 269 ++outByte;
shreeshas95 13:7b27a8e9cbb4 270 break;
shreeshas95 13:7b27a8e9cbb4 271 }
shreeshas95 13:7b27a8e9cbb4 272 }
shreeshas95 13:7b27a8e9cbb4 273 for(unsigned int j = 0 ; j < 2 ; ++j){
shreeshas95 13:7b27a8e9cbb4 274 switch(outState){
shreeshas95 13:7b27a8e9cbb4 275 case 0:
shreeshas95 13:7b27a8e9cbb4 276 output[outByte] = 0;
shreeshas95 13:7b27a8e9cbb4 277 outState = 1;
shreeshas95 13:7b27a8e9cbb4 278 break;
shreeshas95 13:7b27a8e9cbb4 279 case 1:
shreeshas95 13:7b27a8e9cbb4 280 outState = 2;
shreeshas95 13:7b27a8e9cbb4 281 break;
shreeshas95 13:7b27a8e9cbb4 282 case 2:
shreeshas95 13:7b27a8e9cbb4 283 outState = 3;
shreeshas95 13:7b27a8e9cbb4 284 break;
shreeshas95 13:7b27a8e9cbb4 285 case 3:
shreeshas95 13:7b27a8e9cbb4 286 outState = 4;
shreeshas95 13:7b27a8e9cbb4 287 break;
shreeshas95 13:7b27a8e9cbb4 288 case 4:
shreeshas95 13:7b27a8e9cbb4 289 outState = 5;
shreeshas95 13:7b27a8e9cbb4 290 break;
shreeshas95 13:7b27a8e9cbb4 291 case 5:
shreeshas95 13:7b27a8e9cbb4 292 outState = 6;
shreeshas95 13:7b27a8e9cbb4 293 break;
shreeshas95 13:7b27a8e9cbb4 294 case 6:
shreeshas95 13:7b27a8e9cbb4 295 outState = 7;
shreeshas95 13:7b27a8e9cbb4 296 break;
shreeshas95 13:7b27a8e9cbb4 297 case 7:
shreeshas95 13:7b27a8e9cbb4 298 outState = 0;
shreeshas95 13:7b27a8e9cbb4 299 ++outByte;
shreeshas95 13:7b27a8e9cbb4 300 break;
shreeshas95 13:7b27a8e9cbb4 301 }
shreeshas95 13:7b27a8e9cbb4 302 }
shreeshas95 13:7b27a8e9cbb4 303 }
shreeshas95 13:7b27a8e9cbb4 304 }
shreeshas95 13:7b27a8e9cbb4 305
shreeshas95 13:7b27a8e9cbb4 306
shreeshas95 13:7b27a8e9cbb4 307
shreeshas95 13:7b27a8e9cbb4 308 public:
shreeshas95 13:7b27a8e9cbb4 309
shreeshas95 13:7b27a8e9cbb4 310 bool give_buffer ;
shreeshas95 13:7b27a8e9cbb4 311 bool transmission_done;
shreeshas95 13:7b27a8e9cbb4 312 unsigned char S_frame[S_FRAME_SIZE];
shreeshas95 13:7b27a8e9cbb4 313 unsigned char EoS[EoS_SIZE];
shreeshas95 13:7b27a8e9cbb4 314 SND_TM(){
shreeshas95 13:7b27a8e9cbb4 315
shreeshas95 13:7b27a8e9cbb4 316 // list_ptr = x;
shreeshas95 13:7b27a8e9cbb4 317
shreeshas95 13:7b27a8e9cbb4 318 diff_prev = 0;
shreeshas95 13:7b27a8e9cbb4 319
shreeshas95 13:7b27a8e9cbb4 320 type0_no= 0;
shreeshas95 13:7b27a8e9cbb4 321 type1_no= 0;
shreeshas95 13:7b27a8e9cbb4 322 //~ S-FRAME
shreeshas95 13:7b27a8e9cbb4 323 //~ SCH_64 * 2
shreeshas95 13:7b27a8e9cbb4 324 S_frame[0] = 0x46;
shreeshas95 13:7b27a8e9cbb4 325 S_frame[1] = 0x9d;
shreeshas95 13:7b27a8e9cbb4 326 S_frame[2] = 0xfb;
shreeshas95 13:7b27a8e9cbb4 327 S_frame[3] = 0xf0;
shreeshas95 13:7b27a8e9cbb4 328 S_frame[4] = 0xd2;
shreeshas95 13:7b27a8e9cbb4 329 S_frame[5] = 0xba;
shreeshas95 13:7b27a8e9cbb4 330 S_frame[6] = 0x89;
shreeshas95 13:7b27a8e9cbb4 331 S_frame[7] = 0xe4;
shreeshas95 13:7b27a8e9cbb4 332
shreeshas95 13:7b27a8e9cbb4 333 S_frame[8] = 0x46;
shreeshas95 13:7b27a8e9cbb4 334 S_frame[9] = 0x9d;
shreeshas95 13:7b27a8e9cbb4 335 S_frame[10] = 0xfb;
shreeshas95 13:7b27a8e9cbb4 336 S_frame[11] = 0xf0;
shreeshas95 13:7b27a8e9cbb4 337 S_frame[12] = 0xd2;
shreeshas95 13:7b27a8e9cbb4 338 S_frame[13] = 0xba;
shreeshas95 13:7b27a8e9cbb4 339 S_frame[14] = 0x89;
shreeshas95 13:7b27a8e9cbb4 340 S_frame[15] = 0xe4;
shreeshas95 13:7b27a8e9cbb4 341
shreeshas95 13:7b27a8e9cbb4 342 //~ FCCH
shreeshas95 13:7b27a8e9cbb4 343 for(int i = 16 ; i < 48 ; ++i ){
shreeshas95 13:7b27a8e9cbb4 344 S_frame[i] = 0x00;
shreeshas95 13:7b27a8e9cbb4 345 }
shreeshas95 13:7b27a8e9cbb4 346
shreeshas95 13:7b27a8e9cbb4 347
shreeshas95 13:7b27a8e9cbb4 348 for(int i = 0 ; i < 24 ; ++i){
shreeshas95 13:7b27a8e9cbb4 349 EoS[i] = 0x00;
shreeshas95 13:7b27a8e9cbb4 350 }
shreeshas95 13:7b27a8e9cbb4 351
shreeshas95 13:7b27a8e9cbb4 352 //~ S-FRAME [1]
shreeshas95 13:7b27a8e9cbb4 353 //~ first two bits of S-FRAME
shreeshas95 13:7b27a8e9cbb4 354 EoS[23] = 0x01;
shreeshas95 13:7b27a8e9cbb4 355
shreeshas95 13:7b27a8e9cbb4 356 EoS[24] = 0x1a;
shreeshas95 13:7b27a8e9cbb4 357 EoS[25] = 0x77;
shreeshas95 13:7b27a8e9cbb4 358 EoS[26] = 0xef;
shreeshas95 13:7b27a8e9cbb4 359 EoS[27] = 0xc3;
shreeshas95 13:7b27a8e9cbb4 360 EoS[28] = 0x4a;
shreeshas95 13:7b27a8e9cbb4 361 EoS[29] = 0xea;
shreeshas95 13:7b27a8e9cbb4 362 EoS[30] = 0x27;
shreeshas95 13:7b27a8e9cbb4 363 EoS[31] = 0x91;
shreeshas95 13:7b27a8e9cbb4 364 EoS[32] = 0x1a;
shreeshas95 13:7b27a8e9cbb4 365 EoS[33] = 0x77;
shreeshas95 13:7b27a8e9cbb4 366 EoS[34] = 0xef;
shreeshas95 13:7b27a8e9cbb4 367 EoS[35] = 0xc3;
shreeshas95 13:7b27a8e9cbb4 368 EoS[36] = 0x4a;
shreeshas95 13:7b27a8e9cbb4 369 EoS[37] = 0xea;
shreeshas95 13:7b27a8e9cbb4 370 EoS[38] = 0x27;
shreeshas95 13:7b27a8e9cbb4 371 EoS[39] = 0x90;
shreeshas95 13:7b27a8e9cbb4 372
shreeshas95 13:7b27a8e9cbb4 373 for(int i = 40 ; i < 72 ; ++i){
shreeshas95 13:7b27a8e9cbb4 374 EoS[i] = 0x00;
shreeshas95 13:7b27a8e9cbb4 375 }
shreeshas95 13:7b27a8e9cbb4 376
shreeshas95 13:7b27a8e9cbb4 377 //~ S-FRAME [2]
shreeshas95 13:7b27a8e9cbb4 378 //~ first two bits of S-FRAME
shreeshas95 13:7b27a8e9cbb4 379 EoS[71] = 0x01;
shreeshas95 13:7b27a8e9cbb4 380
shreeshas95 13:7b27a8e9cbb4 381 EoS[72] = 0x1a;
shreeshas95 13:7b27a8e9cbb4 382 EoS[73] = 0x77;
shreeshas95 13:7b27a8e9cbb4 383 EoS[74] = 0xef;
shreeshas95 13:7b27a8e9cbb4 384 EoS[75] = 0xc3;
shreeshas95 13:7b27a8e9cbb4 385 EoS[76] = 0x4a;
shreeshas95 13:7b27a8e9cbb4 386 EoS[77] = 0xea;
shreeshas95 13:7b27a8e9cbb4 387 EoS[78] = 0x27;
shreeshas95 13:7b27a8e9cbb4 388 EoS[79] = 0x91;
shreeshas95 13:7b27a8e9cbb4 389 EoS[80] = 0x1a;
shreeshas95 13:7b27a8e9cbb4 390 EoS[81] = 0x77;
shreeshas95 13:7b27a8e9cbb4 391 EoS[82] = 0xef;
shreeshas95 13:7b27a8e9cbb4 392 EoS[83] = 0xc3;
shreeshas95 13:7b27a8e9cbb4 393 EoS[84] = 0x4a;
shreeshas95 13:7b27a8e9cbb4 394 EoS[85] = 0xea;
shreeshas95 13:7b27a8e9cbb4 395 EoS[86] = 0x27;
shreeshas95 13:7b27a8e9cbb4 396 EoS[87] = 0x90;
shreeshas95 13:7b27a8e9cbb4 397
shreeshas95 13:7b27a8e9cbb4 398 for(int i = 88 ; i < 120 ; ++i){
shreeshas95 13:7b27a8e9cbb4 399 EoS[i] = 0x00;
shreeshas95 13:7b27a8e9cbb4 400 }
shreeshas95 13:7b27a8e9cbb4 401
shreeshas95 13:7b27a8e9cbb4 402 for(int i = 0 ; i < 10 ; ++i){
shreeshas95 13:7b27a8e9cbb4 403 FCCH80[i] = 0x00;
shreeshas95 13:7b27a8e9cbb4 404 }
shreeshas95 13:7b27a8e9cbb4 405
shreeshas95 13:7b27a8e9cbb4 406 SCH40[0] = 0x0a;
shreeshas95 13:7b27a8e9cbb4 407 SCH40[1] = 0x3f;
shreeshas95 13:7b27a8e9cbb4 408 SCH40[2] = 0x46;
shreeshas95 13:7b27a8e9cbb4 409 SCH40[3] = 0xb4;
shreeshas95 13:7b27a8e9cbb4 410 SCH40[4] = 0x00;
shreeshas95 13:7b27a8e9cbb4 411
shreeshas95 13:7b27a8e9cbb4 412 // give_buffer = false;
shreeshas95 13:7b27a8e9cbb4 413 transmission_done=false;
shreeshas95 13:7b27a8e9cbb4 414
shreeshas95 13:7b27a8e9cbb4 415 }
shreeshas95 13:7b27a8e9cbb4 416
shreeshas95 13:7b27a8e9cbb4 417 void head_pointer(TM_list * ptr){
shreeshas95 13:7b27a8e9cbb4 418 list_ptr = ptr ;
shreeshas95 13:7b27a8e9cbb4 419 type1_frame_flag = true;
shreeshas95 13:7b27a8e9cbb4 420 type0_frame_flag = true;
shreeshas95 13:7b27a8e9cbb4 421 make_DataStream_flag = true;
shreeshas95 13:7b27a8e9cbb4 422 transmit_data_flag = true;
shreeshas95 13:7b27a8e9cbb4 423 transmission_done=false;
shreeshas95 13:7b27a8e9cbb4 424 adf_not_SDcard();
shreeshas95 13:7b27a8e9cbb4 425 }
shreeshas95 13:7b27a8e9cbb4 426
shreeshas95 13:7b27a8e9cbb4 427 unsigned char convoluted_frame[270];
shreeshas95 13:7b27a8e9cbb4 428
shreeshas95 13:7b27a8e9cbb4 429 Convolution ConvObj;
shreeshas95 13:7b27a8e9cbb4 430
shreeshas95 13:7b27a8e9cbb4 431 void convolution (unsigned char * ptr){
shreeshas95 13:7b27a8e9cbb4 432
shreeshas95 13:7b27a8e9cbb4 433 ConvObj.convolutionEncode(ptr, convoluted_frame);
shreeshas95 13:7b27a8e9cbb4 434 ConvObj.convolutionEncode(ptr + 67, convoluted_frame + 135);
shreeshas95 13:7b27a8e9cbb4 435 }
shreeshas95 13:7b27a8e9cbb4 436
shreeshas95 13:7b27a8e9cbb4 437 unsigned char interleave_data[2][144]; //initialize to zero how;
shreeshas95 13:7b27a8e9cbb4 438
shreeshas95 13:7b27a8e9cbb4 439 bool make_DataStream_flag;
shreeshas95 13:7b27a8e9cbb4 440
shreeshas95 13:7b27a8e9cbb4 441 int make_DataStream(){
shreeshas95 13:7b27a8e9cbb4 442 static bool state = true;
shreeshas95 13:7b27a8e9cbb4 443 static int counter = 0;
shreeshas95 13:7b27a8e9cbb4 444 static unsigned char * ptr;
shreeshas95 13:7b27a8e9cbb4 445 static bool flag = false;
shreeshas95 13:7b27a8e9cbb4 446
shreeshas95 13:7b27a8e9cbb4 447 if(make_DataStream_flag){
shreeshas95 13:7b27a8e9cbb4 448 data_number();
shreeshas95 13:7b27a8e9cbb4 449 state = true;
shreeshas95 13:7b27a8e9cbb4 450 counter = 0;
shreeshas95 13:7b27a8e9cbb4 451 flag = false;
shreeshas95 13:7b27a8e9cbb4 452 make_DataStream_flag = false;
shreeshas95 13:7b27a8e9cbb4 453 }
shreeshas95 13:7b27a8e9cbb4 454
shreeshas95 13:7b27a8e9cbb4 455 if(state){
shreeshas95 13:7b27a8e9cbb4 456
shreeshas95 13:7b27a8e9cbb4 457 if(counter < type0_no){
shreeshas95 13:7b27a8e9cbb4 458 ptr = type0_frame();
shreeshas95 13:7b27a8e9cbb4 459 flag = true;
shreeshas95 13:7b27a8e9cbb4 460
shreeshas95 13:7b27a8e9cbb4 461 }
shreeshas95 13:7b27a8e9cbb4 462
shreeshas95 13:7b27a8e9cbb4 463 else if(counter < total_frames ){
shreeshas95 13:7b27a8e9cbb4 464 ptr = type1_frame();
shreeshas95 13:7b27a8e9cbb4 465 flag = true;
shreeshas95 13:7b27a8e9cbb4 466 }
shreeshas95 13:7b27a8e9cbb4 467
shreeshas95 13:7b27a8e9cbb4 468 counter++;
shreeshas95 13:7b27a8e9cbb4 469
shreeshas95 13:7b27a8e9cbb4 470 }
shreeshas95 13:7b27a8e9cbb4 471
shreeshas95 13:7b27a8e9cbb4 472 state = !state;
shreeshas95 13:7b27a8e9cbb4 473
shreeshas95 13:7b27a8e9cbb4 474 if (flag){
shreeshas95 13:7b27a8e9cbb4 475 // cout<<"i m here";
shreeshas95 13:7b27a8e9cbb4 476
shreeshas95 13:7b27a8e9cbb4 477 // printf("------inside convolution\r\n");
shreeshas95 13:7b27a8e9cbb4 478 convolution(ptr);
shreeshas95 13:7b27a8e9cbb4 479 // printf("-------out of convolution\n");
shreeshas95 13:7b27a8e9cbb4 480 interleave(convoluted_frame,interleave_data[0]);
shreeshas95 13:7b27a8e9cbb4 481 interleave(convoluted_frame+ 135,interleave_data[1]);
shreeshas95 13:7b27a8e9cbb4 482 // printf("completed intrleave\n");
shreeshas95 13:7b27a8e9cbb4 483 flag = false;
shreeshas95 13:7b27a8e9cbb4 484
shreeshas95 13:7b27a8e9cbb4 485 }
shreeshas95 13:7b27a8e9cbb4 486
shreeshas95 13:7b27a8e9cbb4 487
shreeshas95 13:7b27a8e9cbb4 488 int temp = (state == false) ? 0 : 1 ;
shreeshas95 13:7b27a8e9cbb4 489
shreeshas95 13:7b27a8e9cbb4 490 return temp;
shreeshas95 13:7b27a8e9cbb4 491
shreeshas95 13:7b27a8e9cbb4 492 }
shreeshas95 13:7b27a8e9cbb4 493
shreeshas95 13:7b27a8e9cbb4 494 //112 bytes - half rolling buffer
shreeshas95 13:7b27a8e9cbb4 495 bool transmit_data_flag;
shreeshas95 13:7b27a8e9cbb4 496
shreeshas95 13:7b27a8e9cbb4 497 void transmit_data(unsigned char * transmit , bool * last_buffer){
shreeshas95 13:7b27a8e9cbb4 498 static int Tframe_counter = 0; //contains the number of Tframes in a segment had been written
shreeshas95 13:7b27a8e9cbb4 499 static int EOS_counter = 0; //count no of byres of eos have been weitten in the buffer
shreeshas95 13:7b27a8e9cbb4 500 static int Sframe_Counter = 0;
shreeshas95 13:7b27a8e9cbb4 501 static int SCH40_counter = 0;
shreeshas95 13:7b27a8e9cbb4 502 static int string_space_counter = 0;
shreeshas95 13:7b27a8e9cbb4 503 static int FCCH80_counter = 0;
shreeshas95 13:7b27a8e9cbb4 504 int rolling_buffer_counter = 0; //maximum it can be 1152 bits
shreeshas95 13:7b27a8e9cbb4 505 static bool Sframe_flag = true;
shreeshas95 13:7b27a8e9cbb4 506 static bool new_Tframe_flag = false;
shreeshas95 13:7b27a8e9cbb4 507 static bool FCCH80_flag = false;
shreeshas95 13:7b27a8e9cbb4 508 static bool data_flag = false;
shreeshas95 13:7b27a8e9cbb4 509 static int i;
shreeshas95 13:7b27a8e9cbb4 510 static bool repete_data_flag = false;
shreeshas95 13:7b27a8e9cbb4 511 static int segment_counter = 0;
shreeshas95 13:7b27a8e9cbb4 512 static bool diff_enc_flag = false;
shreeshas95 13:7b27a8e9cbb4 513
shreeshas95 13:7b27a8e9cbb4 514 if(transmit_data_flag){
shreeshas95 13:7b27a8e9cbb4 515 rolling_buffer_counter = 0;
shreeshas95 13:7b27a8e9cbb4 516 Sframe_Counter = 0;
shreeshas95 13:7b27a8e9cbb4 517 SCH40_counter = 0;
shreeshas95 13:7b27a8e9cbb4 518 FCCH80_counter = 0;
shreeshas95 13:7b27a8e9cbb4 519 Tframe_counter = 0;
shreeshas95 13:7b27a8e9cbb4 520 EOS_counter = 0;
shreeshas95 13:7b27a8e9cbb4 521 segment_counter = 0;
shreeshas95 13:7b27a8e9cbb4 522 string_space_counter = 0;
shreeshas95 13:7b27a8e9cbb4 523
shreeshas95 13:7b27a8e9cbb4 524 Sframe_flag = true;
shreeshas95 13:7b27a8e9cbb4 525 new_Tframe_flag = false;
shreeshas95 13:7b27a8e9cbb4 526 repete_data_flag = false;
shreeshas95 13:7b27a8e9cbb4 527 data_flag = false;
shreeshas95 13:7b27a8e9cbb4 528 FCCH80_flag = false;
shreeshas95 13:7b27a8e9cbb4 529 transmit_data_flag = false;
shreeshas95 13:7b27a8e9cbb4 530 diff_enc_flag = false;
shreeshas95 13:7b27a8e9cbb4 531 }
shreeshas95 13:7b27a8e9cbb4 532
shreeshas95 13:7b27a8e9cbb4 533 for(rolling_buffer_counter = 0 ; rolling_buffer_counter<112 ; rolling_buffer_counter++){
shreeshas95 13:7b27a8e9cbb4 534
shreeshas95 13:7b27a8e9cbb4 535 if(diff_enc_flag){
shreeshas95 13:7b27a8e9cbb4 536 transmit[rolling_buffer_counter] = 0;
shreeshas95 13:7b27a8e9cbb4 537 continue;
shreeshas95 13:7b27a8e9cbb4 538 }
shreeshas95 13:7b27a8e9cbb4 539
shreeshas95 13:7b27a8e9cbb4 540 if(Sframe_flag){
shreeshas95 13:7b27a8e9cbb4 541 transmit[rolling_buffer_counter] = S_frame[Sframe_Counter++];
shreeshas95 13:7b27a8e9cbb4 542
shreeshas95 13:7b27a8e9cbb4 543 if(Sframe_Counter == 48){
shreeshas95 13:7b27a8e9cbb4 544 // printf("sframe quit\n");
shreeshas95 13:7b27a8e9cbb4 545 Sframe_Counter = 0;
shreeshas95 13:7b27a8e9cbb4 546 Sframe_flag = false;
shreeshas95 13:7b27a8e9cbb4 547 new_Tframe_flag =true;
shreeshas95 13:7b27a8e9cbb4 548 }
shreeshas95 13:7b27a8e9cbb4 549
shreeshas95 13:7b27a8e9cbb4 550 }
shreeshas95 13:7b27a8e9cbb4 551
shreeshas95 13:7b27a8e9cbb4 552 else if(new_Tframe_flag){
shreeshas95 13:7b27a8e9cbb4 553 transmit[rolling_buffer_counter] = SCH40[SCH40_counter++];
shreeshas95 13:7b27a8e9cbb4 554
shreeshas95 13:7b27a8e9cbb4 555 if(SCH40_counter == 5 ){
shreeshas95 13:7b27a8e9cbb4 556 SCH40_counter = 0;
shreeshas95 13:7b27a8e9cbb4 557 new_Tframe_flag = false;
shreeshas95 13:7b27a8e9cbb4 558 // printf("new Tframe flag quit\n");
shreeshas95 13:7b27a8e9cbb4 559 // data_flag = (Tframe_counter == 38)? false : true;
shreeshas95 13:7b27a8e9cbb4 560 // put_F = !data_flag;
shreeshas95 13:7b27a8e9cbb4 561
shreeshas95 13:7b27a8e9cbb4 562 repete_data_flag = (Tframe_counter == SEGMENT_SIZE -1)?true:false;
shreeshas95 13:7b27a8e9cbb4 563 data_flag = !repete_data_flag;
shreeshas95 13:7b27a8e9cbb4 564
shreeshas95 13:7b27a8e9cbb4 565 }
shreeshas95 13:7b27a8e9cbb4 566
shreeshas95 13:7b27a8e9cbb4 567 }
shreeshas95 13:7b27a8e9cbb4 568
shreeshas95 13:7b27a8e9cbb4 569 else if(data_flag){
shreeshas95 13:7b27a8e9cbb4 570
shreeshas95 13:7b27a8e9cbb4 571 if(!string_space_counter ){
shreeshas95 13:7b27a8e9cbb4 572 i = make_DataStream();
shreeshas95 13:7b27a8e9cbb4 573 }
shreeshas95 13:7b27a8e9cbb4 574
shreeshas95 13:7b27a8e9cbb4 575 transmit[rolling_buffer_counter] = interleave_data[i][string_space_counter++];
shreeshas95 13:7b27a8e9cbb4 576 if(string_space_counter == 144){
shreeshas95 13:7b27a8e9cbb4 577 // printf("data_flag quit\n");
shreeshas95 13:7b27a8e9cbb4 578 string_space_counter = 0;
shreeshas95 13:7b27a8e9cbb4 579 FCCH80_flag = true;
shreeshas95 13:7b27a8e9cbb4 580 data_flag = false;
shreeshas95 13:7b27a8e9cbb4 581 }
shreeshas95 13:7b27a8e9cbb4 582
shreeshas95 13:7b27a8e9cbb4 583 }
shreeshas95 13:7b27a8e9cbb4 584
shreeshas95 13:7b27a8e9cbb4 585 else if(repete_data_flag){
shreeshas95 13:7b27a8e9cbb4 586 transmit[rolling_buffer_counter] = interleave_data[i][string_space_counter];;
shreeshas95 13:7b27a8e9cbb4 587 if(++string_space_counter == 144){
shreeshas95 13:7b27a8e9cbb4 588 repete_data_flag = false;
shreeshas95 13:7b27a8e9cbb4 589 FCCH80_flag = true;
shreeshas95 13:7b27a8e9cbb4 590 string_space_counter = 0;
shreeshas95 13:7b27a8e9cbb4 591 // cout<<"repete_data_flag quit\n";
shreeshas95 13:7b27a8e9cbb4 592 }
shreeshas95 13:7b27a8e9cbb4 593 }
shreeshas95 13:7b27a8e9cbb4 594
shreeshas95 13:7b27a8e9cbb4 595 else if(FCCH80_flag){
shreeshas95 13:7b27a8e9cbb4 596
shreeshas95 13:7b27a8e9cbb4 597 transmit[rolling_buffer_counter] = FCCH80[FCCH80_counter++];
shreeshas95 13:7b27a8e9cbb4 598 // cout<<FCCH80_counter;
shreeshas95 13:7b27a8e9cbb4 599 if(FCCH80_counter == 10){
shreeshas95 13:7b27a8e9cbb4 600 // printf("FCCH80 quit\n");
shreeshas95 13:7b27a8e9cbb4 601 FCCH80_counter = 0;
shreeshas95 13:7b27a8e9cbb4 602 FCCH80_flag = false;
shreeshas95 13:7b27a8e9cbb4 603
shreeshas95 13:7b27a8e9cbb4 604 if(++Tframe_counter != SEGMENT_SIZE)
shreeshas95 13:7b27a8e9cbb4 605 new_Tframe_flag = true;
shreeshas95 13:7b27a8e9cbb4 606
shreeshas95 13:7b27a8e9cbb4 607 }
shreeshas95 13:7b27a8e9cbb4 608
shreeshas95 13:7b27a8e9cbb4 609 }
shreeshas95 13:7b27a8e9cbb4 610
shreeshas95 13:7b27a8e9cbb4 611
shreeshas95 13:7b27a8e9cbb4 612
shreeshas95 13:7b27a8e9cbb4 613 else if(Tframe_counter == SEGMENT_SIZE){
shreeshas95 13:7b27a8e9cbb4 614
shreeshas95 13:7b27a8e9cbb4 615 transmit[rolling_buffer_counter] = EoS[EOS_counter++];
shreeshas95 13:7b27a8e9cbb4 616
shreeshas95 13:7b27a8e9cbb4 617 if(EOS_counter == 120){
shreeshas95 13:7b27a8e9cbb4 618 diff_enc_flag = true;
shreeshas95 13:7b27a8e9cbb4 619 Tframe_counter = 0;
shreeshas95 13:7b27a8e9cbb4 620 EOS_counter = 0;
shreeshas95 13:7b27a8e9cbb4 621
shreeshas95 13:7b27a8e9cbb4 622 if(++segment_counter == segment_no){
shreeshas95 13:7b27a8e9cbb4 623 // cout<<"transmit_counter = "<<++transmit_counter;
shreeshas95 13:7b27a8e9cbb4 624 *last_buffer = true;
shreeshas95 13:7b27a8e9cbb4 625 break;
shreeshas95 13:7b27a8e9cbb4 626
shreeshas95 13:7b27a8e9cbb4 627 }
shreeshas95 13:7b27a8e9cbb4 628 else{
shreeshas95 13:7b27a8e9cbb4 629 Sframe_flag = true;
shreeshas95 13:7b27a8e9cbb4 630 continue;
shreeshas95 13:7b27a8e9cbb4 631 }
shreeshas95 13:7b27a8e9cbb4 632
shreeshas95 13:7b27a8e9cbb4 633 }
shreeshas95 13:7b27a8e9cbb4 634 continue;
shreeshas95 13:7b27a8e9cbb4 635 }
shreeshas95 13:7b27a8e9cbb4 636
shreeshas95 13:7b27a8e9cbb4 637 }
shreeshas95 13:7b27a8e9cbb4 638
shreeshas95 13:7b27a8e9cbb4 639
shreeshas95 13:7b27a8e9cbb4 640
shreeshas95 13:7b27a8e9cbb4 641 differential_encode(transmit,112);
shreeshas95 13:7b27a8e9cbb4 642
shreeshas95 13:7b27a8e9cbb4 643 if(diff_enc_flag){
shreeshas95 13:7b27a8e9cbb4 644 diff_prev = 0;
shreeshas95 13:7b27a8e9cbb4 645 diff_enc_flag = false;
shreeshas95 13:7b27a8e9cbb4 646 Sframe_flag = true;
shreeshas95 13:7b27a8e9cbb4 647
shreeshas95 13:7b27a8e9cbb4 648 }
shreeshas95 13:7b27a8e9cbb4 649
shreeshas95 13:7b27a8e9cbb4 650 }
shreeshas95 13:7b27a8e9cbb4 651
shreeshas95 13:7b27a8e9cbb4 652 }snd_tm;