Lab5
Dependencies: HEPTA_SENSOR mbed HEPTA_EPS HEPTA_COM HEPTA_CDH
main.cpp@30:8f80364613f6, 2019-11-04 (annotated)
- Committer:
- HeptaSatTraining2019
- Date:
- Mon Nov 04 18:52:58 2019 +0000
- Revision:
- 30:8f80364613f6
- Parent:
- 26:ca2ec26c83ec
Who changed what in which revision?
User | Revision | Line number | New 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 | 26:ca2ec26c83ec | 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); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 14 | DigitalOut myleds[] = {LED1,LED2,LED3,LED4};; |
umeume | 5:c5ccb1b07e8f | 15 | |
umeume | 2:1c5cdb2c3e0f | 16 | int main() |
umeume | 2:1c5cdb2c3e0f | 17 | { |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 18 | pc.baud(9600); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 19 | float bt; |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 20 | float temper; |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 21 | const char* warning; |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 22 | char str[100]; |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 23 | float gx,gy,gz,mx,my,mz; |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 24 | |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 25 | int quality=0,stnum=0,gps_check=0; |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 26 | char ns='A',ew='B',aunit='m'; |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 27 | float time=0.0,latitude=0.0,longitude=0.0,hacu=0.0,altitude=0.0; |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 28 | |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 29 | int flag = 0; |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 30 | int rcmd=0,cmdflag=0; |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 31 | mkdir("/sd/MissionData", 0777); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 32 | FILE *dummy = fopen("/sd/MissionData/dummy.txt","w"); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 33 | fclose(dummy); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 34 | while(1) { |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 35 | eps.power_saving_mode(&flag,&bt); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 36 | sensor.temp_sense(&temper); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 37 | wait(0.5); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 38 | com.printf("flag = %d, bt = %.2f [V], temp = %.1f [C]\r\n",flag,bt,temper); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 39 | com.xbee_receive(&rcmd,&cmdflag); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 40 | |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 41 | if(flag == 1) { |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 42 | warning = "Low Battery\r\n"; |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 43 | com.printf("%s",warning); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 44 | } else if(temper > 35.0) { |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 45 | warning = "High Temperature\r\n"; |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 46 | com.printf("%s",warning); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 47 | } else if((flag == 1) & (temper > 35.0)) { |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 48 | warning = "Low Battery and High Temperature\r\n"; |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 49 | com.printf("%s",warning); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 50 | } else {} |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 51 | |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 52 | if (cmdflag == 1) { |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 53 | com.printf("Command Get = %d\r\n",rcmd); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 54 | |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 55 | if (rcmd == 'a') { |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 56 | FILE *fp = fopen("/sd/MissionData/GyroMag.txt","w"); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 57 | if(fp == NULL) { |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 58 | error("Could not open file for write\r\n"); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 59 | } else { |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 60 | for(int i = 0; i < 10; i++) { |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 61 | sensor.sen_gyro(&gx,&gy,&gz); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 62 | sensor.sen_mag(&mx,&my,&mz); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 63 | fprintf(fp,"Wx = %f, Wy = %f, Wz = %f, mx = %f, my = %f, mz = %f\r\n",gx,gy,gz,mx,my,mz); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 64 | wait(1.0); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 65 | } |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 66 | fclose(fp); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 67 | } |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 68 | FILE *fp1 = fopen("/sd/MissionData/GyroMag.txt","r"); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 69 | if(fp1 == NULL) { |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 70 | error("Could not open file for read\r\n"); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 71 | } else { |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 72 | for(int i = 0; i < 10; i++) { |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 73 | fgets(str,100,fp1); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 74 | com.printf("%s",str); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 75 | wait(1.0); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 76 | } |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 77 | fclose(fp1); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 78 | } |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 79 | |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 80 | } |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 81 | if (rcmd == 'b') { |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 82 | FILE *fp = fopen("/sd/MissionData/Position.txt","w"); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 83 | if(fp == NULL) { |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 84 | error("Could not open file for write\r\n"); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 85 | } else { |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 86 | sensor.gps_setting(); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 87 | for(int i = 0; i < 10; i++) { |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 88 | sensor.gga_sensing(&time, &latitude, &ns, &longitude, &ew, &quality, &stnum, &hacu, &altitude, &aunit, &gps_check); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 89 | fprintf(fp,"time: %f, lat: %f,%c, long: %f,%c, altitude:%f\r\n",time,latitude,ns,longitude,ew,altitude); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 90 | wait(1.0); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 91 | } |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 92 | fclose(fp); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 93 | } |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 94 | |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 95 | FILE *fp1 = fopen("/sd/MissionData/Position.txt","r"); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 96 | if(fp1 == NULL) { |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 97 | error("Could not open file for read\r\n"); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 98 | } else { |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 99 | for(int i = 0; i < 10; i++) { |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 100 | fgets(str,100,fp1); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 101 | com.printf("%s",str); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 102 | wait(1.0); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 103 | } |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 104 | fclose(fp1); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 105 | } |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 106 | }//b |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 107 | |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 108 | if (rcmd == 'c') { |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 109 | sensor.Sync(); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 110 | sensor.initialize(HeptaCamera_GPS::Baud115200, HeptaCamera_GPS::JpegResolution320x240); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 111 | sensor.test_jpeg_snapshot_picture("/sd/MissionData/picture.jpg"); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 112 | |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 113 | }//c |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 114 | com.initialize(); |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 115 | } |
HeptaSatTraining2019 | 26:ca2ec26c83ec | 116 | } |
umeume | 2:1c5cdb2c3e0f | 117 | } |