TELECOMMAND MANAGER V1

Dependencies:   mbed SLCD mbed-rtos

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?

UserRevisionLine numberNew 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 }