Masahiko Yamazaki
/
Lab1-02_create_satcode_step2_lite
Lab1-02_create_satcode_step2_lite
Diff: main.cpp
- Revision:
- 0:b85daada95bc
diff -r 000000000000 -r b85daada95bc main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Aug 10 01:52:54 2021 +0000 @@ -0,0 +1,58 @@ +#include "mbed.h" +DigitalOut condition[]={LED1, PB_1}; +Serial gs(USBTX,USBRX,9600); +Timer sattime; +int rcmd = 0, cmdflag = 0; //command variable + +//getting command and command flag +void commandget() +{ + rcmd = gs.getc(); + cmdflag = 1; +} +//interrupting process by command receive +void receive(int rcmd, int cmdflag) +{ + gs.attach(commandget,Serial::RxIrq); +} +//initializing +void initialize() +{ + rcmd = 0; + cmdflag = 0; + condition[1] = 0; +} + +int main() +{ + gs.printf("From Sat : Nominal Operation\r\n"); + int flag = 0; //condition flag + float batvol, temp; //voltage, temperature + sattime.start(); + receive(rcmd,cmdflag); //interrupting + for(int i=0;i<50;i++){ + //satellite condition led + condition[0] = !condition[0]; + + //senssing HK data(dummy data) + batvol = 3.7; + temp = 28.5; + + //Transmitting HK data to Ground Station(GS) + gs.printf("HEPTASAT::Condition = %d, Time = %f [s], batvol = %2f [V], temp = %2f [deg C]\r\n",flag,sattime.read(),batvol,temp); + wait_ms(500); + + if(cmdflag == 1){ + if(rcmd == 'a'){ + for(int j=0;j<5;j++){ + gs.printf("Hello World!\r\n"); + condition[1] = !condition[1]; + wait_ms(1000); + } + } + initialize(); //initializing + } + } + sattime.stop(); + gs.printf("From Sat : End of operation\r\n"); +} \ No newline at end of file