Entire Solution. Final version
Dependencies: Hepta9axis HeptaBattery HeptaCamera_GPS HeptaTemp HeptaXbee SDFileSystem mbed
Fork of Team by
3daf572bcae1/main.cpp
- Committer:
- tuba
- Date:
- 2017-10-26
- Revision:
- 0:ea40bd156a1a
- Child:
- 1:20db10adb732
File content as of revision 0:ea40bd156a1a:
#include "mbed.h" #include "SDFileSystem.h" #include "HeptaXbee.h" #include "HeptaCamera_GPS.h" #include "Hepta9axis.h" #include "HeptaTemp.h" #include "HeptaBattery.h" Serial pc(USBTX,USBRX, 9600); SDFileSystem sd(p5, p6, p7, p8, "sd"); HeptaBattery bat(p16, p25); HeptaTemp temp(p17); Hepta9axis n_axis(p28, p27, 0xD0, 0x18); HeptaCamera_GPS cam_gps(p13, p14,p25, p24); HeptaXbee xbee(p9,p10); int main() { xbee.baud(9600); xbee.printf("Xbee comunication begin!\n\r"); char * dir_name = "/sd/Pictures"; mkdir(dir_name, 0777); HeptaCamera_GPS::ErrorNumber err1 = HeptaCamera_GPS::NoError; // mkdir("/sd/Data", 0777); pc.printf("Created!\n\r"); // while (true) { // pc.putc(cam_gps.getc()); //} while (true) { pc.printf("Begin messurment\n\r"); float batLev; float tempMes; FILE *fp = fopen("/sd/Data/Data.txt", "w"); if(fp == NULL) { error("Could not open file for write\n\r"); } for (int i =0; i < 5; ++i) { char fname[64]; snprintf(fname, sizeof(fname), "%s/Picture%d.jpg", dir_name, i); //snprintf(fname, sizeof(fname), "/sd/test.jpg"); FILE *fp_jpeg = fopen(fname, "w"); //cam_gps.set_image_file(fp_jpeg); cam_gps.Sync(); cam_gps.initialize(HeptaCamera_GPS::Baud115200, HeptaCamera_GPS::JpegResolution320x240); err1 = cam_gps.getJpegSnapshotPicture(fp_jpeg); //cam_gps.test_jpeg_snapshot_picture(1); if (HeptaCamera_GPS::NoError == err1) { printf("[ OK ] : Picture taken\r\n"); } else { printf("[FAIL] : Picture failed (Error=%02X)\r\n", (int)err1); } fclose(fp_jpeg); fprintf(fp, "Picture data - Name [%s]\n\r--------------------------------\n\r", fname); temp.temp_sense(&tempMes); fprintf(fp, "Temperature [%f]\n\r", tempMes); bat.vol(&batLev); fprintf(fp, "Battery Level is [%f] Temperature [%f] ", batLev, tempMes); float mx,my,mz; n_axis.sen_mag(&mx,&my,&mz); fprintf(fp, "Magnetometer[%f,%f,%f] ",mx,my,mz); //pc.printf("Magnet %f,%f,%f\r\n",mx,my,mz); float gx,gy,gz; n_axis.sen_gyro(&gx,&gy,&gz); fprintf(fp, "Gyroscope[%f,%f,%f] ",gx,gy,gz); // pc.printf("Gyroscope %f,%f,%f\r\n",gx,gy,gz); float ax,ay,az; n_axis.sen_acc(&ax,&ay,&az); fprintf(fp, "Acceletarion[%f,%f,%f]\r\n",ax,ay,az); // pc.printf("Acceletarion %f,%f,%f\r\n",ax,ay,az); int quality=0,stnum=0,gps_check=0; char ns='A',ew='B',aunit='m'; float time=0.0,latitude=0.0,longitude=0.0,hacu=0.0,altitude=0.0; cam_gps.gps_setting(); wait(1.0); cam_gps.gga_sensing(&time, &latitude, &ns, &longitude, &ew, &quality, &stnum, &hacu, &altitude, &aunit, &gps_check); if((gps_check==0)|(gps_check==1)) { fprintf(fp, "GPGGA,%f,%f,%c,%f,%c,%d,%d,%f,%f,%c\r\n",time,latitude,ns,longitude,ew,quality,stnum,hacu,altitude,aunit); } fprintf(fp, "Picture data - End\n\r--------------------------------\n\r"); wait(1.0); xbee.printf("num = %d\r\n",i); } fclose(fp); FILE *fp1 = fopen("/sd/Data/Data.txt", "r"); char buf[100]; int nread = 0; if (fp1) { while ((nread = fread(buf, 1, sizeof buf, fp1)) > 0){ for (int i =0; i<nread; i++) { xbee.printf("%c", buf[i]); } } } else error("Could not open file for write\n\r"); fclose(fp1); } }