change2shinsu

Dependencies:   mbed mbedTimer SDFileSystem MU2 GPS

main.cpp

Committer:
Nerosho
Date:
2019-08-18
Revision:
7:c94dd56226a1
Parent:
5:6d0de80387cf

File content as of revision 7:c94dd56226a1:

#include "mbed.h"
#include "MU2.h"
#include "SDFileSystem.h"
#include "inletclose.h"
//#include "GPS.h"


MU2 MuPort(p28,p27);
SDFileSystem sd(p11, p12, p13, p14, "sd");
//GPS gps(p13,p14);
Serial gps(p9,p10); //tx, rx

Inlet inlet(p26,p15,p16);//モーター出力,感圧センサー1入力,感圧センサー2入力


//DigitalIn flight(p21);    //フライトピン
DigitalOut FIRE(p24);    //溶断

DigitalOut myled(LED1);
DigitalOut myled2(LED2);
DigitalOut myled3(LED3);
DigitalOut myled4(LED4);


int main()
{

    wait(0.5);//フライトピン抜けてから溶断までの時間

    //FILE* fp1= fopen("/sd/cansat/log3.txt", "w");
    FILE* fp2= fopen("/sd/cansat/gpsdata0806_2.csv", "w");

    /*if(fp1 == NULL || fp2 == NULL)
    {
    (fp1 == NULL) ? fprintf(stderr, "fname1 open error.\n") : fclose(fp1);
    (fp2 == NULL) ? fprintf(stderr, "fname2 open error.\n") : fclose(fp2);
    return -1;
    }*/
    
    //fprintf(fp2, "CanSat Start!\n");

//溶断機構部分

    //fprintf(fp1, "CanSat start!\r\n");

    //fprintf(fp1, "Fire!!\r\n");
    //FIRE=1;
    myled=1;//テストようにLED光らせてる
    wait(3);//溶断にかかる時間TBD秒
    //FIRE=0;
    myled=0;
    
//溶断機構終わり

    gps.baud(9600);
    char recvGPS=0;
    char getGPS[128];
    int i=0;
    int timer=0;

    //fprintf(fp2, "GPS start!!\n");

    while(1) 
    {
        myled3=1;
        myled2=0;
        if(gps.readable()) 
        {
            recvGPS=gps.getc();
            getGPS[i]=recvGPS;

            if(getGPS[i]=='\n')
            {

                if((getGPS[5]=='G')&&(getGPS[6]=='A')) 
                {
                    
                    MuPort.send(getGPS);
                    
                    /*if(fp == NULL) {
                        error("Could not open file for write\n");
                    }*/


                    fprintf(fp2, "%s\n",getGPS);
                    //fclose(fp);
                    
                    wait(0.1);
                    timer++;
                }

                i=0;
            }
            
            i++;
            if(timer>10)//落下開始してからTBD秒後whileを抜ける.
            {
                break;
            }
        }

        // wait(1);
        //fclose(fp);
    }
    
    while(1) 
    {
        myled3=0;
        myled2=1;
        if(gps.readable()) 
        {
            recvGPS=gps.getc();
            getGPS[i]=recvGPS;

            if(getGPS[i]=='\n')
            {

                if((getGPS[5]=='G')&&(getGPS[6]=='A')) 
                {
                    MuPort.send(getGPS);
                    
                    /*if(fp == NULL) {
                        error("Could not open file for write\n");
                    }*/

                    fprintf(fp2, "%s\n",getGPS);
                    //fclose(fp);
                    wait(0.1);
                }

                i=0;
            }
            i++;
            inlet.Close(0.9);
        }

        // wait(1);
        //fclose(fp);
    }
    
    
    //fclose(fp1);
    fclose(fp2);

}