logger
main.cpp@0:c3e3dc7923c8, 2019-12-09 (annotated)
- Committer:
- takuto003
- Date:
- Mon Dec 09 15:37:51 2019 +0000
- Revision:
- 0:c3e3dc7923c8
Logger apd
Who changed what in which revision?
User | Revision | Line number | New 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 | } |