logger

Committer:
takuto003
Date:
Mon Dec 09 15:37:51 2019 +0000
Revision:
0:c3e3dc7923c8
Logger apd

Who changed what in which revision?

UserRevisionLine numberNew contents of line
takuto003 0:c3e3dc7923c8 1 #include "mbed.h"
takuto003 0:c3e3dc7923c8 2 #include "logger.h"
takuto003 0:c3e3dc7923c8 3 #include "SDFileSystem.h"
takuto003 0:c3e3dc7923c8 4 DigitalOut L1(PA_4);
takuto003 0:c3e3dc7923c8 5 DigitalOut L2(PA_6);
takuto003 0:c3e3dc7923c8 6 DigitalOut L3(PA_5);
takuto003 0:c3e3dc7923c8 7 Serial gps(PA_9,PA_10);
takuto003 0:c3e3dc7923c8 8 Serial pc(PA_2,PA_3);
takuto003 0:c3e3dc7923c8 9 SDFileSystem sd(PB_5, PB_4, PB_3, PA_15, "sd");
takuto003 0:c3e3dc7923c8 10 FILE* fp;
takuto003 0:c3e3dc7923c8 11 LOGGER logg;
takuto003 0:c3e3dc7923c8 12 Timer t;
takuto003 0:c3e3dc7923c8 13 float sum = 0;
takuto003 0:c3e3dc7923c8 14 uint32_t sumCount = 0;
takuto003 0:c3e3dc7923c8 15 char buffer[14];
takuto003 0:c3e3dc7923c8 16 int log_count=0;
takuto003 0:c3e3dc7923c8 17 int16_t gyr[3], acc[3], mag[3],Temp;
takuto003 0:c3e3dc7923c8 18 float mag_init[3];
takuto003 0:c3e3dc7923c8 19 int COU=0;
takuto003 0:c3e3dc7923c8 20 int i,rlock,mode;
takuto003 0:c3e3dc7923c8 21 char gps_data[256];
takuto003 0:c3e3dc7923c8 22 char ns,ew;
takuto003 0:c3e3dc7923c8 23 float w_time,hokui,tokei;
takuto003 0:c3e3dc7923c8 24 float g_hokui,g_tokei;
takuto003 0:c3e3dc7923c8 25 float d_hokui,m_hokui,d_tokei,m_tokei;
takuto003 0:c3e3dc7923c8 26 unsigned char c;
takuto003 0:c3e3dc7923c8 27
takuto003 0:c3e3dc7923c8 28 void getGPS() {
takuto003 0:c3e3dc7923c8 29 c = gps.getc();
takuto003 0:c3e3dc7923c8 30 if( c=='$' || i == 256){
takuto003 0:c3e3dc7923c8 31 mode = 0;
takuto003 0:c3e3dc7923c8 32 i = 0;
takuto003 0:c3e3dc7923c8 33 for(int j=0; j<256; j++){
takuto003 0:c3e3dc7923c8 34 gps_data[j]=NULL;
takuto003 0:c3e3dc7923c8 35 }
takuto003 0:c3e3dc7923c8 36 }
takuto003 0:c3e3dc7923c8 37 if(mode==0){
takuto003 0:c3e3dc7923c8 38 if((gps_data[i]=c) != '\r'){
takuto003 0:c3e3dc7923c8 39 i++;
takuto003 0:c3e3dc7923c8 40 }else{
takuto003 0:c3e3dc7923c8 41 gps_data[i]='\0';
takuto003 0:c3e3dc7923c8 42
takuto003 0:c3e3dc7923c8 43 if( sscanf(gps_data, "$GPGGA,%f,%f,%c,%f,%c,%d",&w_time,&hokui,&ns,&tokei,&ew,&rlock) >= 1){
takuto003 0:c3e3dc7923c8 44 if(rlock==1){
takuto003 0:c3e3dc7923c8 45 L1=1;
takuto003 0:c3e3dc7923c8 46 d_tokei= int(tokei/100);
takuto003 0:c3e3dc7923c8 47 m_tokei= (tokei-d_tokei*100)/60;
takuto003 0:c3e3dc7923c8 48 g_tokei= d_tokei+m_tokei;
takuto003 0:c3e3dc7923c8 49 //Latitude
takuto003 0:c3e3dc7923c8 50 d_hokui=int(hokui/100);
takuto003 0:c3e3dc7923c8 51 m_hokui=(hokui-d_hokui*100)/60;
takuto003 0:c3e3dc7923c8 52 g_hokui=d_hokui+m_hokui;
takuto003 0:c3e3dc7923c8 53 }
takuto003 0:c3e3dc7923c8 54 else{
takuto003 0:c3e3dc7923c8 55 }
takuto003 0:c3e3dc7923c8 56 sprintf(gps_data, "");
takuto003 0:c3e3dc7923c8 57 }
takuto003 0:c3e3dc7923c8 58 }
takuto003 0:c3e3dc7923c8 59 }
takuto003 0:c3e3dc7923c8 60 }
takuto003 0:c3e3dc7923c8 61 int main()
takuto003 0:c3e3dc7923c8 62 {
takuto003 0:c3e3dc7923c8 63 i2c.frequency(400000);
takuto003 0:c3e3dc7923c8 64 t.start();
takuto003 0:c3e3dc7923c8 65 pc.printf("gps start!\r\n");
takuto003 0:c3e3dc7923c8 66 gps.baud(9600);
takuto003 0:c3e3dc7923c8 67 logg.initialize();
takuto003 0:c3e3dc7923c8 68 mkdir("/sd/mydir", 0777);
takuto003 0:c3e3dc7923c8 69 FILE *fp=fopen("/sd/test.txt","w");
takuto003 0:c3e3dc7923c8 70 fprintf(fp,"start");
takuto003 0:c3e3dc7923c8 71 fclose(fp);
takuto003 0:c3e3dc7923c8 72
takuto003 0:c3e3dc7923c8 73 gps.attach(getGPS,Serial::RxIrq);
takuto003 0:c3e3dc7923c8 74 while(1) {
takuto003 0:c3e3dc7923c8 75 FILE *fp = fopen("/sd/test.txt","a");
takuto003 0:c3e3dc7923c8 76 COU++;
takuto003 0:c3e3dc7923c8 77 fprintf(fp,"ID=%d,",COU);
takuto003 0:c3e3dc7923c8 78 fprintf(fp,"%f", t.read());
takuto003 0:c3e3dc7923c8 79 logg.readGyroData(gyr);
takuto003 0:c3e3dc7923c8 80 logg.readAccelData(acc);
takuto003 0:c3e3dc7923c8 81 logg.readMagData(mag);
takuto003 0:c3e3dc7923c8 82 Temp = logg.readTempData();
takuto003 0:c3e3dc7923c8 83 ax = acc[0] * 2.0 / 32768.0;
takuto003 0:c3e3dc7923c8 84 ay = acc[1] * 2.0 / 32768.0;
takuto003 0:c3e3dc7923c8 85 az = acc[2] * 2.0 / 32768.0;
takuto003 0:c3e3dc7923c8 86 fprintf(fp,"%d, %d, %d,", gyr[0], gyr[1], gyr[2]);
takuto003 0:c3e3dc7923c8 87 fprintf(fp,"%d, %d, %d,", acc[0], acc[1], acc[2]);
takuto003 0:c3e3dc7923c8 88 fprintf(fp,"%f, %f, %f,", ax, ay, az);
takuto003 0:c3e3dc7923c8 89 fprintf(fp,"%d, %d, %d", mag[0], mag[1], mag[2]);
takuto003 0:c3e3dc7923c8 90 fprintf(fp,"%d,",(Temp/100));
takuto003 0:c3e3dc7923c8 91 fprintf(fp,"%2.2f, %04.2f", logg.getTemperature(), logg.getPressure());
takuto003 0:c3e3dc7923c8 92 fprintf(fp,"%.1f,%.6f,%.6f\n",w_time,g_tokei, g_hokui);
takuto003 0:c3e3dc7923c8 93 wait(0.2);
takuto003 0:c3e3dc7923c8 94 fclose(fp);
takuto003 0:c3e3dc7923c8 95 L1=0;
takuto003 0:c3e3dc7923c8 96 }
takuto003 0:c3e3dc7923c8 97 }