Dummy program to demonstrate problems: working code
Dependencies: SLCD mbed-rtos mbed
Fork of MNG_TC by
main.cpp@9:934fdce72b3d, 2015-07-16 (annotated)
- Committer:
- shreeshas95
- Date:
- Thu Jul 16 06:53:38 2015 +0000
- Revision:
- 9:934fdce72b3d
- Parent:
- 8:cb93c1d3209a
thread testing
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
shreeshas95 | 3:eec1097c0dd6 | 1 | #include "mbed.h" |
shreeshas95 | 9:934fdce72b3d | 2 | #include "rtos.h" |
shreeshas95 | 6:6e9ae3b44e60 | 3 | #define ENDL "\r" << endl |
shreeshas95 | 2:994e741028c7 | 4 | |
shreeshas95 | 5:a5a5300d7d49 | 5 | #include "SLCD.h" |
shreeshas95 | 5:a5a5300d7d49 | 6 | SLCD lcd; |
shreeshas95 | 5:a5a5300d7d49 | 7 | |
shreeshas95 | 8:cb93c1d3209a | 8 | #define RX_TIMEOUT_LIMIT 2 |
shreeshas95 | 8:cb93c1d3209a | 9 | #define PASS_TIME_LIMIT 1200 |
shreeshas95 | 3:eec1097c0dd6 | 10 | |
shreeshas95 | 3:eec1097c0dd6 | 11 | Serial PC(USBTX, USBRX); |
shreeshas95 | 4:f95195748a0c | 12 | Serial rx1m(PTE0, PTE1); |
shreeshas95 | 2:994e741028c7 | 13 | |
shreeshas95 | 2:994e741028c7 | 14 | DigitalOut ledr(LED_RED); |
shreeshas95 | 2:994e741028c7 | 15 | DigitalOut ledg(LED_GREEN); |
shreeshas95 | 2:994e741028c7 | 16 | |
shreeshas95 | 3:eec1097c0dd6 | 17 | #include "Structures.h" |
shreeshas95 | 2:994e741028c7 | 18 | |
shreeshas95 | 4:f95195748a0c | 19 | struct data_list{ |
shreeshas95 | 8:cb93c1d3209a | 20 | unsigned char val; |
shreeshas95 | 4:f95195748a0c | 21 | struct data_list* next; |
shreeshas95 | 4:f95195748a0c | 22 | }; |
shreeshas95 | 4:f95195748a0c | 23 | |
shreeshas95 | 3:eec1097c0dd6 | 24 | namespace VAR_SPACE{ |
shreeshas95 | 3:eec1097c0dd6 | 25 | |
shreeshas95 | 8:cb93c1d3209a | 26 | TC_list *Head_node = NULL; |
shreeshas95 | 8:cb93c1d3209a | 27 | TC_list *last_node = NULL; |
shreeshas95 | 3:eec1097c0dd6 | 28 | |
shreeshas95 | 8:cb93c1d3209a | 29 | int rx_state = 0; |
shreeshas95 | 3:eec1097c0dd6 | 30 | /* |
shreeshas95 | 8:cb93c1d3209a | 31 | 0 : idle |
shreeshas95 | 8:cb93c1d3209a | 32 | 1 : executing normal |
shreeshas95 | 8:cb93c1d3209a | 33 | 2 : executing obosc |
shreeshas95 | 8:cb93c1d3209a | 34 | 3 : idle 2 : obosc received incorrectly |
shreeshas95 | 8:cb93c1d3209a | 35 | */ |
shreeshas95 | 8:cb93c1d3209a | 36 | |
shreeshas95 | 4:f95195748a0c | 37 | struct data_list *head_data; |
shreeshas95 | 8:cb93c1d3209a | 38 | data_list *data_node; |
shreeshas95 | 7:e71ecfe3a340 | 39 | struct data_list *rx_new_node; |
shreeshas95 | 9:934fdce72b3d | 40 | unsigned char rx_char = 0; |
shreeshas95 | 8:cb93c1d3209a | 41 | |
shreeshas95 | 8:cb93c1d3209a | 42 | bool new_tc_received = false; |
shreeshas95 | 8:cb93c1d3209a | 43 | bool execute_obosc = false; |
shreeshas95 | 9:934fdce72b3d | 44 | |
shreeshas95 | 9:934fdce72b3d | 45 | Thread *mng_tmtc_thread = NULL; |
shreeshas95 | 9:934fdce72b3d | 46 | } |
shreeshas95 | 8:cb93c1d3209a | 47 | |
shreeshas95 | 9:934fdce72b3d | 48 | #include "crc.h" |
shreeshas95 | 9:934fdce72b3d | 49 | #include "SND_TM.h" |
shreeshas95 | 9:934fdce72b3d | 50 | #include "COM_RCV_TC.h" |
shreeshas95 | 9:934fdce72b3d | 51 | #include "MNG_TC.h" |
shreeshas95 | 2:994e741028c7 | 52 | |
shreeshas95 | 8:cb93c1d3209a | 53 | Timeout rx_timeout; |
shreeshas95 | 8:cb93c1d3209a | 54 | bool pass_over = false; |
shreeshas95 | 8:cb93c1d3209a | 55 | bool first_time = true; |
shreeshas95 | 8:cb93c1d3209a | 56 | Timeout pass_time; |
shreeshas95 | 4:f95195748a0c | 57 | |
shreeshas95 | 8:cb93c1d3209a | 58 | void after_pass(){ |
shreeshas95 | 8:cb93c1d3209a | 59 | pass_time.detach(); |
shreeshas95 | 8:cb93c1d3209a | 60 | pass_over = true; |
shreeshas95 | 8:cb93c1d3209a | 61 | } |
shreeshas95 | 8:cb93c1d3209a | 62 | |
shreeshas95 | 8:cb93c1d3209a | 63 | void after_receive(void){ |
shreeshas95 | 8:cb93c1d3209a | 64 | rx_timeout.detach(); |
shreeshas95 | 8:cb93c1d3209a | 65 | VAR_SPACE::rx_new_node->val = 0x00; |
shreeshas95 | 8:cb93c1d3209a | 66 | |
shreeshas95 | 8:cb93c1d3209a | 67 | VAR_SPACE::new_tc_received = true; |
shreeshas95 | 8:cb93c1d3209a | 68 | |
shreeshas95 | 8:cb93c1d3209a | 69 | if(first_time){ |
shreeshas95 | 8:cb93c1d3209a | 70 | first_time = false; |
shreeshas95 | 8:cb93c1d3209a | 71 | pass_time.attach(&after_pass, PASS_TIME_LIMIT); |
shreeshas95 | 8:cb93c1d3209a | 72 | } |
shreeshas95 | 8:cb93c1d3209a | 73 | } |
shreeshas95 | 8:cb93c1d3209a | 74 | |
shreeshas95 | 8:cb93c1d3209a | 75 | void rx_read() { |
shreeshas95 | 9:934fdce72b3d | 76 | VAR_SPACE::rx_char = rx1m.getc(); |
shreeshas95 | 9:934fdce72b3d | 77 | ledg = !ledg; |
shreeshas95 | 9:934fdce72b3d | 78 | VAR_SPACE::mng_tmtc_thread->signal_set(0x01); |
shreeshas95 | 8:cb93c1d3209a | 79 | } |
shreeshas95 | 8:cb93c1d3209a | 80 | |
shreeshas95 | 9:934fdce72b3d | 81 | #include "Threadfunctions.h" |
shreeshas95 | 2:994e741028c7 | 82 | |
shreeshas95 | 2:994e741028c7 | 83 | int main(){ |
shreeshas95 | 8:cb93c1d3209a | 84 | |
shreeshas95 | 6:6e9ae3b44e60 | 85 | printf("welcome to mng_tm_tc\r\n"); |
shreeshas95 | 4:f95195748a0c | 86 | ledr = 1; |
shreeshas95 | 2:994e741028c7 | 87 | |
shreeshas95 | 2:994e741028c7 | 88 | PC.baud(9600); |
shreeshas95 | 3:eec1097c0dd6 | 89 | |
shreeshas95 | 9:934fdce72b3d | 90 | VAR_SPACE::mng_tmtc_thread = new Thread( &mng_tmtc_thread_fun ); |
shreeshas95 | 8:cb93c1d3209a | 91 | MNG_TC::init(); |
shreeshas95 | 8:cb93c1d3209a | 92 | |
shreeshas95 | 9:934fdce72b3d | 93 | lcd.printf("0000"); |
shreeshas95 | 9:934fdce72b3d | 94 | |
shreeshas95 | 2:994e741028c7 | 95 | while(true){ |
shreeshas95 | 9:934fdce72b3d | 96 | // ledg = !ledg; |
shreeshas95 | 0:b5b370873460 | 97 | } |
shreeshas95 | 8:cb93c1d3209a | 98 | } |