Dummy program to demonstrate problems: working code

Dependencies:   SLCD mbed-rtos mbed

Fork of MNG_TC by Shreesha S

Committer:
shreeshas95
Date:
Thu Sep 17 14:15:00 2015 +0000
Revision:
17:2b04e53f3b1d
Parent:
14:a4c259ca0325
DUMMP program to demonstrate the problems : working

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shreeshas95 10:024c2ef51cb1 1 void reset_all(){
shreeshas95 10:024c2ef51cb1 2 printf("resetting all\r\n");
shreeshas95 10:024c2ef51cb1 3 // reset MNG_TC
shreeshas95 10:024c2ef51cb1 4 MNG_TC::init();
shreeshas95 10:024c2ef51cb1 5 TC_list *tcp = VAR_SPACE::Head_node;
shreeshas95 10:024c2ef51cb1 6 while(tcp != NULL){
shreeshas95 10:024c2ef51cb1 7 TC_list *temp = tcp->next_TC;
shreeshas95 10:024c2ef51cb1 8 delete tcp;
shreeshas95 10:024c2ef51cb1 9 tcp = temp;
shreeshas95 10:024c2ef51cb1 10 }
shreeshas95 10:024c2ef51cb1 11
shreeshas95 10:024c2ef51cb1 12 // reset COM_RCV_TC
shreeshas95 10:024c2ef51cb1 13 // handle reset
shreeshas95 10:024c2ef51cb1 14
shreeshas95 10:024c2ef51cb1 15 // reset data linked list
shreeshas95 10:024c2ef51cb1 16 data_list *dataptr = VAR_SPACE::head_data;
shreeshas95 10:024c2ef51cb1 17 while( dataptr != NULL ){
shreeshas95 10:024c2ef51cb1 18 data_list *temp = dataptr->next;
shreeshas95 10:024c2ef51cb1 19 delete dataptr;
shreeshas95 10:024c2ef51cb1 20 dataptr = temp;
shreeshas95 10:024c2ef51cb1 21 }
shreeshas95 10:024c2ef51cb1 22 VAR_SPACE::head_data = new data_list;
shreeshas95 10:024c2ef51cb1 23 VAR_SPACE::rx_new_node = VAR_SPACE::head_data;
shreeshas95 10:024c2ef51cb1 24 }
shreeshas95 10:024c2ef51cb1 25
shreeshas95 13:7b27a8e9cbb4 26 void after_receive(void){
shreeshas95 13:7b27a8e9cbb4 27 rx_timeout.detach();
shreeshas95 13:7b27a8e9cbb4 28 VAR_SPACE::rx_new_node->val = 0x00;
shreeshas95 13:7b27a8e9cbb4 29
shreeshas95 13:7b27a8e9cbb4 30 if(first_time){
shreeshas95 13:7b27a8e9cbb4 31 first_time = false;
shreeshas95 13:7b27a8e9cbb4 32 pass_time.attach(&after_pass, PASS_TIME_LIMIT);
shreeshas95 13:7b27a8e9cbb4 33 }
shreeshas95 13:7b27a8e9cbb4 34
shreeshas95 13:7b27a8e9cbb4 35 VAR_SPACE::new_tc_received = true;
shreeshas95 13:7b27a8e9cbb4 36 VAR_SPACE::mng_tmtc_thread->signal_set(0x01);
shreeshas95 13:7b27a8e9cbb4 37 }
shreeshas95 13:7b27a8e9cbb4 38
shreeshas95 13:7b27a8e9cbb4 39
shreeshas95 13:7b27a8e9cbb4 40 void com_rcv_tc_fun(const void *args){
shreeshas95 13:7b27a8e9cbb4 41
shreeshas95 13:7b27a8e9cbb4 42 while(true){
shreeshas95 13:7b27a8e9cbb4 43 Thread::signal_wait(0x01);
shreeshas95 13:7b27a8e9cbb4 44
shreeshas95 13:7b27a8e9cbb4 45 //~ allocate new node
shreeshas95 13:7b27a8e9cbb4 46 VAR_SPACE::rx_new_node->next = new data_list;
shreeshas95 13:7b27a8e9cbb4 47 VAR_SPACE::rx_new_node = VAR_SPACE::rx_new_node->next;
shreeshas95 13:7b27a8e9cbb4 48 VAR_SPACE::rx_new_node->next = NULL;
shreeshas95 13:7b27a8e9cbb4 49
shreeshas95 13:7b27a8e9cbb4 50 rx_timeout.attach(&after_receive, RX_TIMEOUT_LIMIT);
shreeshas95 13:7b27a8e9cbb4 51 }
shreeshas95 13:7b27a8e9cbb4 52 }
shreeshas95 13:7b27a8e9cbb4 53
shreeshas95 10:024c2ef51cb1 54 void com_mng_fun(const void *args){
shreeshas95 10:024c2ef51cb1 55 while(true){
shreeshas95 10:024c2ef51cb1 56
shreeshas95 14:a4c259ca0325 57 Thread::signal_wait(0x01);
shreeshas95 10:024c2ef51cb1 58 ledr = !ledr;
shreeshas95 10:024c2ef51cb1 59
shreeshas95 10:024c2ef51cb1 60 if( VAR_SPACE::new_tc_received ){
shreeshas95 10:024c2ef51cb1 61 VAR_SPACE::new_tc_received = false;
shreeshas95 10:024c2ef51cb1 62 struct data_list *haha = VAR_SPACE::head_data;
shreeshas95 14:a4c259ca0325 63
shreeshas95 10:024c2ef51cb1 64 unsigned int count = 0;
shreeshas95 10:024c2ef51cb1 65 while( haha != NULL ){
shreeshas95 10:024c2ef51cb1 66 ++count;
shreeshas95 10:024c2ef51cb1 67 printf("%x ", haha->val);
shreeshas95 10:024c2ef51cb1 68 haha = haha->next;
shreeshas95 10:024c2ef51cb1 69 }
shreeshas95 10:024c2ef51cb1 70 printf("\t count = %u \r\n", count);
shreeshas95 10:024c2ef51cb1 71 printf("new tc received : state = %u\r\n", VAR_SPACE::rx_state);
shreeshas95 14:a4c259ca0325 72
shreeshas95 10:024c2ef51cb1 73 if( VAR_SPACE::rx_state == 0 ){
shreeshas95 10:024c2ef51cb1 74 VAR_SPACE::data_node = VAR_SPACE::head_data;
shreeshas95 10:024c2ef51cb1 75 COM_RCV_TC::rx_rcv_tc();
shreeshas95 10:024c2ef51cb1 76 MNG_TC::start_with();
shreeshas95 10:024c2ef51cb1 77 if( MNG_TC::check_for_missing_TC() ){
shreeshas95 10:024c2ef51cb1 78 printf("everything pass\r\n");
shreeshas95 10:024c2ef51cb1 79 VAR_SPACE::rx_state = 1;
shreeshas95 10:024c2ef51cb1 80 MNG_TC::execute_TC();
shreeshas95 10:024c2ef51cb1 81 }
shreeshas95 10:024c2ef51cb1 82 }
shreeshas95 10:024c2ef51cb1 83 else if( VAR_SPACE::rx_state == 3 ){
shreeshas95 10:024c2ef51cb1 84 VAR_SPACE::data_node = VAR_SPACE::head_data;
shreeshas95 10:024c2ef51cb1 85 COM_RCV_TC::rx_rcv_tc();
shreeshas95 10:024c2ef51cb1 86 MNG_TC::start_with();
shreeshas95 10:024c2ef51cb1 87 if( MNG_TC::check_for_missing_TC() ){
shreeshas95 10:024c2ef51cb1 88 VAR_SPACE::execute_obosc = true;
shreeshas95 10:024c2ef51cb1 89 VAR_SPACE::rx_state = 2;
shreeshas95 10:024c2ef51cb1 90 MNG_TC::execute_TC();
shreeshas95 10:024c2ef51cb1 91 }
shreeshas95 10:024c2ef51cb1 92 }
shreeshas95 10:024c2ef51cb1 93 else{
shreeshas95 10:024c2ef51cb1 94 // invalid state in main found reset
shreeshas95 10:024c2ef51cb1 95 reset_all();
shreeshas95 10:024c2ef51cb1 96 }
shreeshas95 10:024c2ef51cb1 97 }
shreeshas95 10:024c2ef51cb1 98 }
shreeshas95 13:7b27a8e9cbb4 99 }
shreeshas95 13:7b27a8e9cbb4 100
shreeshas95 13:7b27a8e9cbb4 101
shreeshas95 13:7b27a8e9cbb4 102 //void com_pay_thread_fun(void const *args){
shreeshas95 13:7b27a8e9cbb4 103 // while(true){
shreeshas95 13:7b27a8e9cbb4 104 // VAR_SPACE::COM_payload_thread->signal_wait(0x01);
shreeshas95 13:7b27a8e9cbb4 105 // //read rtc time later
shreeshas95 13:7b27a8e9cbb4 106 // uint64_t RTC_time = 0;
shreeshas95 13:7b27a8e9cbb4 107 // Science_Data_Compression::complete_compression( VAR_SPACE::payload_dma_buffer , RTC_time);
shreeshas95 13:7b27a8e9cbb4 108 // }
shreeshas95 13:7b27a8e9cbb4 109 //}