Lab4

Dependencies:   HEPTA_SENSOR mbed HEPTA_EPS HEPTA_COM HEPTA_CDH

Committer:
HeptaSatTraining2019
Date:
Tue Aug 27 02:10:44 2019 +0000
Revision:
26:865498da8af9
Parent:
25:5fd40a170032

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 0:bdbd3d6fc5d5 1 #include "mbed.h"
HeptaSatTraining2019 25:5fd40a170032 2 #include "HEPTA_EPS.h"
HeptaSatTraining2019 25:5fd40a170032 3 #include "HEPTA_CDH.h"
HeptaSatTraining2019 25:5fd40a170032 4 #include "HEPTA_SENSOR.h"
HeptaSatTraining2019 25:5fd40a170032 5 #include "HEPTA_COM.h"
umeume 2:1c5cdb2c3e0f 6
umeume 2:1c5cdb2c3e0f 7 Serial pc(USBTX,USBRX);
HeptaSatTraining2019 21:92c25e853b87 8 HEPTA_EPS eps(p16,p26);
HeptaSatTraining2019 25:5fd40a170032 9 HEPTA_CDH cdh(p5,p6,p7,p8,"sd");
HeptaSatTraining2019 21:92c25e853b87 10 HEPTA_SENSOR sensor(p17,
HeptaSatTraining2019 21:92c25e853b87 11 p28,p27,0xD0,0x18,
HeptaSatTraining2019 25:5fd40a170032 12 p13,p14,p25,p24);
HeptaSatTraining2019 21:92c25e853b87 13 HEPTA_COM com(p9,p10);
umeume 2:1c5cdb2c3e0f 14
HeptaSatTraining2019 26:865498da8af9 15 DigitalOut myleds[] = {LED1,LED2,LED3,LED4};;
HeptaSatTraining2019 26:865498da8af9 16
HeptaSatTraining2019 26:865498da8af9 17 int rcmd = 0,cmdflag = 0;
HeptaSatTraining2019 26:865498da8af9 18
HeptaSatTraining2019 26:865498da8af9 19 void commandget()
HeptaSatTraining2019 26:865498da8af9 20 {
HeptaSatTraining2019 26:865498da8af9 21 rcmd=pc.getc();
HeptaSatTraining2019 26:865498da8af9 22 cmdflag = 1;
HeptaSatTraining2019 26:865498da8af9 23 }
HeptaSatTraining2019 26:865498da8af9 24 void receive(int *xrcmd, int *xcmdflag)
HeptaSatTraining2019 26:865498da8af9 25 {
HeptaSatTraining2019 26:865498da8af9 26 pc.attach(commandget,Serial::RxIrq);
HeptaSatTraining2019 26:865498da8af9 27 *xrcmd = rcmd;
HeptaSatTraining2019 26:865498da8af9 28 *xcmdflag = cmdflag;
HeptaSatTraining2019 26:865498da8af9 29 }
HeptaSatTraining2019 26:865498da8af9 30
HeptaSatTraining2019 26:865498da8af9 31 void initialize()
HeptaSatTraining2019 26:865498da8af9 32 {
HeptaSatTraining2019 26:865498da8af9 33 rcmd = 0;
HeptaSatTraining2019 26:865498da8af9 34 cmdflag = 0;
HeptaSatTraining2019 26:865498da8af9 35 }
HeptaSatTraining2019 26:865498da8af9 36
umeume 2:1c5cdb2c3e0f 37 int main()
umeume 2:1c5cdb2c3e0f 38 {
HeptaSatTraining2019 26:865498da8af9 39 pc.baud(9600);
HeptaSatTraining2019 26:865498da8af9 40 float bt;
HeptaSatTraining2019 26:865498da8af9 41 float temper;
HeptaSatTraining2019 26:865498da8af9 42 char str[100];
HeptaSatTraining2019 26:865498da8af9 43 float ax,ay,az;
HeptaSatTraining2019 26:865498da8af9 44 float gx,gy,gz;
HeptaSatTraining2019 26:865498da8af9 45 float mx,my,mz;
HeptaSatTraining2019 26:865498da8af9 46 int quality=0,stnum=0,gps_check=0;
HeptaSatTraining2019 26:865498da8af9 47 char ns='A',ew='B',aunit='m';
HeptaSatTraining2019 26:865498da8af9 48 float time=0.0,latitude=0.0,longitude=0.0,hacu=0.0,altitude=0.0;
HeptaSatTraining2019 26:865498da8af9 49 int flag = 0;
HeptaSatTraining2019 26:865498da8af9 50 receive(&rcmd,&cmdflag);
HeptaSatTraining2019 26:865498da8af9 51 while(1) {
HeptaSatTraining2019 26:865498da8af9 52 eps.power_saving_mode(&flag,&bt);
HeptaSatTraining2019 26:865498da8af9 53 sensor.temp_sense(&temper);
HeptaSatTraining2019 26:865498da8af9 54 wait(0.5);
HeptaSatTraining2019 26:865498da8af9 55 pc.printf("flag = %d, bt = %.2f [V], temp = %.1f [C]\r\n",flag,bt,temper);
HeptaSatTraining2019 26:865498da8af9 56 if(flag == 1) {
HeptaSatTraining2019 26:865498da8af9 57 pc.printf("Low Battery\r\n");
HeptaSatTraining2019 26:865498da8af9 58 } else if(temper > 35.0) {
HeptaSatTraining2019 26:865498da8af9 59 pc.printf("High Temperature\r\n");
HeptaSatTraining2019 26:865498da8af9 60 } else if((flag == 1) & (temper > 35.0)) {
HeptaSatTraining2019 26:865498da8af9 61 pc.printf("Low Battery and High Temperaturer\n");
HeptaSatTraining2019 26:865498da8af9 62 }
HeptaSatTraining2019 26:865498da8af9 63 if (cmdflag == 1) {
HeptaSatTraining2019 26:865498da8af9 64 pc.printf("Command Get = %d\r\n",rcmd);
HeptaSatTraining2019 26:865498da8af9 65 if (rcmd == 'a') {
HeptaSatTraining2019 26:865498da8af9 66 for(int i = 0; i < 10; i++) {
HeptaSatTraining2019 26:865498da8af9 67 pc.printf("Count = %d\r\n",i);
HeptaSatTraining2019 26:865498da8af9 68 wait(1.0);
HeptaSatTraining2019 26:865498da8af9 69 }
HeptaSatTraining2019 26:865498da8af9 70 }
HeptaSatTraining2019 26:865498da8af9 71 if (rcmd == 'b') {
HeptaSatTraining2019 26:865498da8af9 72 mkdir("/sd/mydir", 0777);
HeptaSatTraining2019 26:865498da8af9 73 FILE *fp = fopen("/sd/mydir/battery.txt","w");
HeptaSatTraining2019 26:865498da8af9 74 if(fp == NULL) {
HeptaSatTraining2019 26:865498da8af9 75 error("Could not open file for write\r\n");
HeptaSatTraining2019 26:865498da8af9 76 } else {
HeptaSatTraining2019 26:865498da8af9 77 for(int i = 0; i < 10; i++) {
HeptaSatTraining2019 26:865498da8af9 78 eps.vol(&bt);
HeptaSatTraining2019 26:865498da8af9 79 fprintf(fp,"%f\r\n",bt);
HeptaSatTraining2019 26:865498da8af9 80 wait(1.0);
HeptaSatTraining2019 26:865498da8af9 81 }
HeptaSatTraining2019 26:865498da8af9 82 fclose(fp);
HeptaSatTraining2019 26:865498da8af9 83 }
HeptaSatTraining2019 26:865498da8af9 84 FILE *fp1 = fopen("/sd/mydir/battery.txt","r");
HeptaSatTraining2019 26:865498da8af9 85 if(fp1 == NULL) {
HeptaSatTraining2019 26:865498da8af9 86 error("Could not open file for read\r\n");
HeptaSatTraining2019 26:865498da8af9 87 } else {
HeptaSatTraining2019 26:865498da8af9 88 for(int i = 0; i < 10; i++) {
HeptaSatTraining2019 26:865498da8af9 89 fgets(str,100,fp1);
HeptaSatTraining2019 26:865498da8af9 90 puts(str);
HeptaSatTraining2019 26:865498da8af9 91 wait(1.0);
HeptaSatTraining2019 26:865498da8af9 92 }
HeptaSatTraining2019 26:865498da8af9 93 fclose(fp1);
HeptaSatTraining2019 26:865498da8af9 94 }
HeptaSatTraining2019 26:865498da8af9 95 }//
HeptaSatTraining2019 26:865498da8af9 96 if (rcmd == 'c') {
HeptaSatTraining2019 26:865498da8af9 97
HeptaSatTraining2019 26:865498da8af9 98
HeptaSatTraining2019 26:865498da8af9 99
HeptaSatTraining2019 26:865498da8af9 100
HeptaSatTraining2019 26:865498da8af9 101 }
HeptaSatTraining2019 26:865498da8af9 102 if (rcmd == 'd') {
HeptaSatTraining2019 26:865498da8af9 103
HeptaSatTraining2019 26:865498da8af9 104
HeptaSatTraining2019 26:865498da8af9 105
HeptaSatTraining2019 26:865498da8af9 106
HeptaSatTraining2019 26:865498da8af9 107 }
HeptaSatTraining2019 26:865498da8af9 108 initialize();
HeptaSatTraining2019 26:865498da8af9 109 }
HeptaSatTraining2019 26:865498da8af9 110 }
umeume 2:1c5cdb2c3e0f 111 }