Dummy program to demonstrate problems: working code
Dependencies: SLCD mbed-rtos mbed
Fork of MNG_TC by
ThreadFunctions.h@17:2b04e53f3b1d, 2015-09-17 (annotated)
- 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?
User | Revision | Line number | New 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 | //} |