Repo for COM_MNG_TMTC_SIMPLE for integration with adf
Fork of COM_MNG_TMTC_SIMPLE by
Diff: SDCread.h
- Revision:
- 8:d1951bbdcdd8
- Parent:
- 1:a0055b3280c8
--- a/SDCread.h Thu Dec 31 08:25:11 2015 +0000 +++ b/SDCread.h Thu Dec 31 08:39:43 2015 +0000 @@ -1,5 +1,8 @@ // It takes 276us to read from sd card and write in 112 buffer - +//new variable : reset_adf. +//commented : spi.mutex , disk_read(), + + //~ #include"SDcard.h" #define T_frames 30 unsigned char buffer_112_counter,sent_tm = 0; @@ -19,35 +22,35 @@ unsigned char buffer_512[512], buffer_112[112],counter_in_S_frame=0,counter_in_SCH=0; unsigned char make_EOS_flag = true; bool reset = false; - + void differential_encode(unsigned char* ptr, int length){ - + for(int i=0; i<length;i++){ - + unsigned char s = ptr[i] , t; t = s ^ (s >> 1); (diff_prev == 0) ? t=t^0x00 : t=t^0x80 ; diff_prev = int(s & 0x01); ptr[i] = t; } - - } - + + } + void send_tm_from_SD_card(){ - + if(make_EOS_flag == true){ make_EOS_flag = false; Number_of_blocks_to_read = end_block_num - start_block_num +1; } - - + + for(buffer_112_counter=0;buffer_112_counter<112;buffer_112_counter++){ - - - if(new_session == true){ //check if it is beginnig of session - - buffer_112[buffer_112_counter]=S_frame[counter_in_S_frame++]; // sending S frame - + + + if(new_session == true){ //check if it is beginnig of session + + buffer_112[buffer_112_counter]=S_frame[counter_in_S_frame++]; // sending S frame + if(counter_in_S_frame==48){ // cout<<"new_session_over\n"; counter_in_S_frame=0; @@ -57,21 +60,21 @@ } } else if(enable_T_frame == true){ // To send t frames - - if(block_counter != Number_of_blocks_to_read){ - + + if(block_counter != Number_of_blocks_to_read){ + if(first_block){ // Read first block -// cout<<"brooooooo"<<start_block_num<<"yo"<<endl; - SPI_mutex.lock(); - disk_read(buffer_512,start_block_num ); - SPI_mutex.unlock(); +// cout<<"brooooooo"<<start_block_num<<"yo"<<endl; +// SPI_mutex.lock(); +// disk_read(buffer_512,start_block_num ); +// SPI_mutex.unlock(); counter_in_block = 0; block_counter++; - + first_block = false; // cout<<"first block exit\n"; // cout<<Number_of_blocks_to_read; - + //printf("\n"); // for(int j=0;j<512;j++){ // printf("%02X ",buffer_512[j]); @@ -80,15 +83,15 @@ // if(block_counter == Number_of_blocks_to_read){ // last_block = true; // } - - + + } if((counter_in_block == 318 )&&(sent_tm<38)){ // Read next block - + // cout<<"next block exit\n"; - SPI_mutex.lock(); - disk_read(buffer_512,start_block_num + block_counter ); - SPI_mutex.unlock(); +// SPI_mutex.lock(); +// disk_read(buffer_512,start_block_num + block_counter ); +// SPI_mutex.unlock(); counter_in_block = 0; block_counter++; if(block_counter == Number_of_blocks_to_read){ @@ -96,17 +99,17 @@ } } } - - if(!last_block){ - + + if(!last_block){ + // cout<<int(sent_tm)<<" "; if(sent_tm<38){ buffer_112[buffer_112_counter] = buffer_512[counter_in_block++]; // sending T frames // cout<<int (counter_in_block)<<" "; if(counter_in_block == 318){ - + sent_tm = sent_tm + 2; - } + } } else if(sent_tm == (T_frames-1)){ buffer_112[buffer_112_counter] = buffer_512[(counter_in_block++ )-159]; @@ -115,7 +118,7 @@ sent_tm = T_frames; } } - else if(sent_tm == T_frames){ // Give eos and start new session + else if(sent_tm == T_frames){ // Give eos and start new session buffer_112[buffer_112_counter]=EoS[EOS_counter++]; if(EOS_counter == 120){ enable_T_frame = false; @@ -136,7 +139,7 @@ sent_tm = T_frames; } } - if((sent_tm == T_frames) && (repeat_T_frame == false)){ // Give eos and start new session + if((sent_tm == T_frames) && (repeat_T_frame == false)){ // Give eos and start new session buffer_112[buffer_112_counter]=EoS[EOS_counter++]; if(EOS_counter == 120){ // cout<<"eos exit"; @@ -147,7 +150,7 @@ } } else if((sent_tm < (T_frames-1)) && (repeat_T_frame == false)){ - buffer_112[buffer_112_counter] = buffer_512[counter_in_block++]; // sending last two T frames + buffer_112[buffer_112_counter] = buffer_512[counter_in_block++]; // sending last two T frames if(counter_in_block == 318){ sent_tm = sent_tm + 2; repeat_T_frame= true; @@ -160,31 +163,31 @@ counter_in_block = counter_in_block-159; } } - else if((sent_tm == T_frames ) && (repeat_T_frame == true)){ // Give eos and start new session - + else if((sent_tm == T_frames ) && (repeat_T_frame == true)){ // Give eos and start new session + buffer_112[buffer_112_counter]=EoS[EOS_counter++]; if(EOS_counter == 120){ enable_T_frame = false; new_session = true; EOS_counter =0; -// printf("yoooo %d",int(sent_tm)); +// printf("yoooo %d",int(sent_tm)); sent_tm=0; - + last_block = false; last_buffer = true; - printf("?\r\n"); +// printf("?\r\n"); break; } } - - } - + + } + } - + } differential_encode(buffer_112, 112); if(last_buffer ==true){ diff_prev=0; } - -} \ No newline at end of file + +}