kubtss / Mbed 2 deprecated BIRD2017

Dependencies:   mbed-rtos mbed

Global.cpp

Committer:
shimogamo
Date:
2015-10-10
Revision:
6:0d9fa7152934
Parent:
5:9a1ec02229dd
Child:
7:6f7bd18ce796

File content as of revision 6:0d9fa7152934:

#include "mbed.h"
#include "Global.h"

//トリムはGlobalで足したほうがいいかも


//----------------普段は変動しない変数(定数)------------------------------------------------------
//サーボのパラメータ(角度(deg)で設定)
double Global::maxpitch = 5.0;
double Global::minpitch = -5.0;
double Global::neutralpitch = 0;
double Global::maxyaw = 30.0;
double Global::minyaw = -30.0;
double Global::neutralyaw = 0;
//ジョイスティックのパラメータ(mbedのAnalogIn値[0,1])
double Global::maxpitchdegree = 1.0;
double Global::minpitchdegree = 0;
double Global::neutralpitchdegree = 0.5;
double Global::maxyawdegree = 1.0;
double Global::minyawdegree = 0;
double Global::neutralyawdegree = 0.5;

//----------------周期的に変動する変数------------------------------------------------------
double Global::trimpitch;
double Global::trimyaw;
double Global::inttrimpitch;
double Global::inttrimyaw;
double Global::pitch;
double Global::yaw;
double Global::airspeed;
double Global::cadence;
double Global::altitude;

//----------------どこからでも使えるled,スイッチ,タイマーの一括管理-----------------------------
Timer Global::timer;
DigitalIn Global::initializeswitch(p23,PullUp);//否定で押しているとき
DigitalOut Global::led1(LED1);
DigitalOut Global::led2(LED2);
DigitalOut Global::led3(LED3);
DigitalOut Global::led4(LED4);
LocalFileSystem Global::local("local"); 


void Global::initialize(){
    timer.start();
    fileread();
}

void Global::fileread(){
    float a, b, c, d, e, f;
 
    FILE* fp = fopen("/local/init.csv", "r");
    if(fp == NULL) {
        filewrite();
        return;
    }
    //1行目
    fscanf( fp, "%f,%f,%f,%f,%f,%f",&a, &b, &c, &d, &e, &f);
    setneutralpitch(a);
    setmaxpitch(b);
    setminpitch(c);
    setneutralyaw(d);
    setmaxyaw(e);
    setminyaw(f);
    fclose(fp);
}

void Global::filewrite(){
    FILE* fp = fopen("/local/init.csv", "w");
    if(fp == NULL) {
        error("Could not open file for write\n");
    }
    fprintf(fp, "%f,%f,%f,%f,%f,%f\n", 
        getneutralpitch(), 
        getmaxpitch(),
        getminpitch(),
        getneutralyaw(),
        getmaxyaw(),
        getminyaw());
    fclose(fp);
}


//定数チックな変数
double Global::getmaxpitch(){return maxpitch;}
double Global::getminpitch(){return minpitch;}
double Global::getneutralpitch(){return neutralpitch;}
double Global::getmaxyaw(){return maxyaw;}
double Global::getminyaw(){return minyaw;}
double Global::getneutralyaw(){return neutralyaw;}

void Global::setmaxpitch(double _maxpitch){maxpitch = _maxpitch;}
void Global::setminpitch(double _minpitch){minpitch = _minpitch;}
void Global::setneutralpitch(double _neutralpitch){neutralpitch = _neutralpitch;}
void Global::setmaxyaw(double _maxyaw){maxyaw = _maxyaw;}
void Global::setminyaw(double _minyaw){minyaw = _minyaw;}
void Global::setneutralyaw(double _neutralyaw){neutralyaw = _neutralyaw;}

double Global::getmaxpitchdegree(){return maxpitchdegree;}
double Global::getneutralpitchdegree(){return neutralpitchdegree;}
double Global::getminpitchdegree(){return minpitchdegree;}
double Global::getmaxyawdegree(){return maxyawdegree;}
double Global::getneutralyawdegree(){return neutralyawdegree;}
double Global::getminyawdegree(){return minyawdegree;}

void Global::setmaxpitchdegree(double _maxpitchdegree){maxpitchdegree=_maxpitchdegree;}
void Global::setneutralpitchdegree(double _neutralpitchdegree){neutralpitchdegree=_neutralpitchdegree;}
void Global::setminpitchdegree(double _minpitchdegree){minpitchdegree=_minpitchdegree;}
void Global::setmaxyawdegree(double _maxyawdegree){maxyawdegree=_maxyawdegree;}
void Global::setneutralyawdegree(double _neutralyawdegree){neutralyawdegree=_neutralyawdegree;}
void Global::setminyawdegree(double _minyawdegree){minyawdegree=_minyawdegree;}





//変数
double Global::getpitch(){return pitch;}
double Global::gettrimpitch(){return trimpitch;}
double Global::getinttrimpitch(){return inttrimpitch;}
double Global::getyaw(){return yaw;}
double Global::gettrimyaw(){return trimyaw;}
double Global::getinttrimyaw(){return inttrimyaw;}
double Global::getairspeed(){return airspeed;}
double Global::getcadence(){return cadence;}
double Global::getaltitude(){return altitude;}

void Global::setpitch(double _pitch){pitch = _pitch;}
void Global::settrimpitch(double _trimpitch){trimpitch = _trimpitch;}
void Global::setinttrimpitch(double _inttrimpitch){inttrimpitch = _inttrimpitch;}
void Global::setyaw(double _yaw){yaw = _yaw;}
void Global::settrimyaw(double _trimyaw){trimyaw = _trimyaw;}
void Global::setinttrimyaw(double _inttrimyaw){inttrimyaw = _inttrimyaw;}
void Global::setairspeed(double _airspeed){airspeed = _airspeed;}
void Global::setcadence(double _cadence){cadence = _cadence;}
void Global::setaltitude(double _altitude){altitude = _altitude;}