kubtss / Mbed 2 deprecated BIRD2017

Dependencies:   mbed-rtos mbed

Committer:
shimogamo
Date:
Sat Oct 10 22:53:05 2015 +0000
Revision:
7:6f7bd18ce796
Parent:
6:0d9fa7152934
Child:
8:ca92cb674004
controllerManager???

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shimogamo 0:2a15bd367891 1 #include "mbed.h"
shimogamo 0:2a15bd367891 2 #include "Global.h"
shimogamo 3:e3c41153e5fe 3
shimogamo 3:e3c41153e5fe 4 //トリムはGlobalで足したほうがいいかも
shimogamo 3:e3c41153e5fe 5
shimogamo 3:e3c41153e5fe 6
shimogamo 3:e3c41153e5fe 7 //----------------普段は変動しない変数(定数)------------------------------------------------------
shimogamo 4:650af94bf062 8 //サーボのパラメータ(角度(deg)で設定)
shimogamo 4:650af94bf062 9 double Global::maxpitch = 5.0;
shimogamo 4:650af94bf062 10 double Global::minpitch = -5.0;
shimogamo 4:650af94bf062 11 double Global::neutralpitch = 0;
shimogamo 4:650af94bf062 12 double Global::maxyaw = 30.0;
shimogamo 4:650af94bf062 13 double Global::minyaw = -30.0;
shimogamo 4:650af94bf062 14 double Global::neutralyaw = 0;
shimogamo 4:650af94bf062 15 //ジョイスティックのパラメータ(mbedのAnalogIn値[0,1])
shimogamo 4:650af94bf062 16 double Global::maxpitchdegree = 1.0;
shimogamo 4:650af94bf062 17 double Global::minpitchdegree = 0;
shimogamo 4:650af94bf062 18 double Global::neutralpitchdegree = 0.5;
shimogamo 4:650af94bf062 19 double Global::maxyawdegree = 1.0;
shimogamo 4:650af94bf062 20 double Global::minyawdegree = 0;
shimogamo 4:650af94bf062 21 double Global::neutralyawdegree = 0.5;
shimogamo 3:e3c41153e5fe 22
shimogamo 3:e3c41153e5fe 23 //----------------周期的に変動する変数------------------------------------------------------
shimogamo 0:2a15bd367891 24 double Global::trimpitch;
shimogamo 0:2a15bd367891 25 double Global::trimyaw;
shimogamo 0:2a15bd367891 26 double Global::inttrimpitch;
shimogamo 0:2a15bd367891 27 double Global::inttrimyaw;
shimogamo 1:3f857674a290 28 double Global::pitch;
shimogamo 1:3f857674a290 29 double Global::yaw;
shimogamo 1:3f857674a290 30 double Global::airspeed;
shimogamo 1:3f857674a290 31 double Global::cadence;
shimogamo 1:3f857674a290 32 double Global::altitude;
shimogamo 0:2a15bd367891 33
shimogamo 4:650af94bf062 34 //----------------どこからでも使えるled,スイッチ,タイマーの一括管理-----------------------------
shimogamo 0:2a15bd367891 35 Timer Global::timer;
shimogamo 0:2a15bd367891 36 DigitalIn Global::initializeswitch(p23,PullUp);//否定で押しているとき
shimogamo 0:2a15bd367891 37 DigitalOut Global::led1(LED1);
shimogamo 0:2a15bd367891 38 DigitalOut Global::led2(LED2);
shimogamo 0:2a15bd367891 39 DigitalOut Global::led3(LED3);
shimogamo 0:2a15bd367891 40 DigitalOut Global::led4(LED4);
shimogamo 6:0d9fa7152934 41 LocalFileSystem Global::local("local");
shimogamo 6:0d9fa7152934 42
shimogamo 0:2a15bd367891 43
shimogamo 5:9a1ec02229dd 44 void Global::initialize(){
shimogamo 6:0d9fa7152934 45 timer.start();
shimogamo 6:0d9fa7152934 46 fileread();
shimogamo 6:0d9fa7152934 47 }
shimogamo 6:0d9fa7152934 48
shimogamo 6:0d9fa7152934 49 void Global::fileread(){
shimogamo 6:0d9fa7152934 50 float a, b, c, d, e, f;
shimogamo 6:0d9fa7152934 51
shimogamo 6:0d9fa7152934 52 FILE* fp = fopen("/local/init.csv", "r");
shimogamo 6:0d9fa7152934 53 if(fp == NULL) {
shimogamo 6:0d9fa7152934 54 filewrite();
shimogamo 6:0d9fa7152934 55 return;
shimogamo 6:0d9fa7152934 56 }
shimogamo 6:0d9fa7152934 57 //1行目
shimogamo 7:6f7bd18ce796 58 fscanf(fp, "%f,%f,%f,%f,%f,%f",&a, &b, &c, &d, &e, &f);
shimogamo 6:0d9fa7152934 59 setneutralpitch(a);
shimogamo 6:0d9fa7152934 60 setmaxpitch(b);
shimogamo 6:0d9fa7152934 61 setminpitch(c);
shimogamo 6:0d9fa7152934 62 setneutralyaw(d);
shimogamo 6:0d9fa7152934 63 setmaxyaw(e);
shimogamo 6:0d9fa7152934 64 setminyaw(f);
shimogamo 6:0d9fa7152934 65 fclose(fp);
shimogamo 6:0d9fa7152934 66 }
shimogamo 6:0d9fa7152934 67
shimogamo 6:0d9fa7152934 68 void Global::filewrite(){
shimogamo 6:0d9fa7152934 69 FILE* fp = fopen("/local/init.csv", "w");
shimogamo 6:0d9fa7152934 70 if(fp == NULL) {
shimogamo 6:0d9fa7152934 71 error("Could not open file for write\n");
shimogamo 6:0d9fa7152934 72 }
shimogamo 6:0d9fa7152934 73 fprintf(fp, "%f,%f,%f,%f,%f,%f\n",
shimogamo 6:0d9fa7152934 74 getneutralpitch(),
shimogamo 6:0d9fa7152934 75 getmaxpitch(),
shimogamo 6:0d9fa7152934 76 getminpitch(),
shimogamo 6:0d9fa7152934 77 getneutralyaw(),
shimogamo 6:0d9fa7152934 78 getmaxyaw(),
shimogamo 6:0d9fa7152934 79 getminyaw());
shimogamo 6:0d9fa7152934 80 fclose(fp);
shimogamo 5:9a1ec02229dd 81 }
shimogamo 5:9a1ec02229dd 82
shimogamo 1:3f857674a290 83
shimogamo 4:650af94bf062 84 //定数チックな変数
shimogamo 4:650af94bf062 85 double Global::getmaxpitch(){return maxpitch;}
shimogamo 4:650af94bf062 86 double Global::getminpitch(){return minpitch;}
shimogamo 4:650af94bf062 87 double Global::getneutralpitch(){return neutralpitch;}
shimogamo 4:650af94bf062 88 double Global::getmaxyaw(){return maxyaw;}
shimogamo 4:650af94bf062 89 double Global::getminyaw(){return minyaw;}
shimogamo 4:650af94bf062 90 double Global::getneutralyaw(){return neutralyaw;}
shimogamo 4:650af94bf062 91
shimogamo 4:650af94bf062 92 void Global::setmaxpitch(double _maxpitch){maxpitch = _maxpitch;}
shimogamo 4:650af94bf062 93 void Global::setminpitch(double _minpitch){minpitch = _minpitch;}
shimogamo 4:650af94bf062 94 void Global::setneutralpitch(double _neutralpitch){neutralpitch = _neutralpitch;}
shimogamo 4:650af94bf062 95 void Global::setmaxyaw(double _maxyaw){maxyaw = _maxyaw;}
shimogamo 4:650af94bf062 96 void Global::setminyaw(double _minyaw){minyaw = _minyaw;}
shimogamo 4:650af94bf062 97 void Global::setneutralyaw(double _neutralyaw){neutralyaw = _neutralyaw;}
shimogamo 4:650af94bf062 98
shimogamo 4:650af94bf062 99 double Global::getmaxpitchdegree(){return maxpitchdegree;}
shimogamo 4:650af94bf062 100 double Global::getneutralpitchdegree(){return neutralpitchdegree;}
shimogamo 4:650af94bf062 101 double Global::getminpitchdegree(){return minpitchdegree;}
shimogamo 4:650af94bf062 102 double Global::getmaxyawdegree(){return maxyawdegree;}
shimogamo 4:650af94bf062 103 double Global::getneutralyawdegree(){return neutralyawdegree;}
shimogamo 4:650af94bf062 104 double Global::getminyawdegree(){return minyawdegree;}
shimogamo 4:650af94bf062 105
shimogamo 0:2a15bd367891 106 void Global::setmaxpitchdegree(double _maxpitchdegree){maxpitchdegree=_maxpitchdegree;}
shimogamo 0:2a15bd367891 107 void Global::setneutralpitchdegree(double _neutralpitchdegree){neutralpitchdegree=_neutralpitchdegree;}
shimogamo 0:2a15bd367891 108 void Global::setminpitchdegree(double _minpitchdegree){minpitchdegree=_minpitchdegree;}
shimogamo 0:2a15bd367891 109 void Global::setmaxyawdegree(double _maxyawdegree){maxyawdegree=_maxyawdegree;}
shimogamo 0:2a15bd367891 110 void Global::setneutralyawdegree(double _neutralyawdegree){neutralyawdegree=_neutralyawdegree;}
shimogamo 0:2a15bd367891 111 void Global::setminyawdegree(double _minyawdegree){minyawdegree=_minyawdegree;}
shimogamo 4:650af94bf062 112
shimogamo 4:650af94bf062 113
shimogamo 1:3f857674a290 114
shimogamo 1:3f857674a290 115
shimogamo 1:3f857674a290 116
shimogamo 0:2a15bd367891 117 //変数
shimogamo 1:3f857674a290 118 double Global::getpitch(){return pitch;}
shimogamo 1:3f857674a290 119 double Global::gettrimpitch(){return trimpitch;}
shimogamo 1:3f857674a290 120 double Global::getinttrimpitch(){return inttrimpitch;}
shimogamo 1:3f857674a290 121 double Global::getyaw(){return yaw;}
shimogamo 1:3f857674a290 122 double Global::gettrimyaw(){return trimyaw;}
shimogamo 1:3f857674a290 123 double Global::getinttrimyaw(){return inttrimyaw;}
shimogamo 1:3f857674a290 124 double Global::getairspeed(){return airspeed;}
shimogamo 1:3f857674a290 125 double Global::getcadence(){return cadence;}
shimogamo 1:3f857674a290 126 double Global::getaltitude(){return altitude;}
shimogamo 0:2a15bd367891 127
shimogamo 1:3f857674a290 128 void Global::setpitch(double _pitch){pitch = _pitch;}
shimogamo 1:3f857674a290 129 void Global::settrimpitch(double _trimpitch){trimpitch = _trimpitch;}
shimogamo 1:3f857674a290 130 void Global::setinttrimpitch(double _inttrimpitch){inttrimpitch = _inttrimpitch;}
shimogamo 1:3f857674a290 131 void Global::setyaw(double _yaw){yaw = _yaw;}
shimogamo 1:3f857674a290 132 void Global::settrimyaw(double _trimyaw){trimyaw = _trimyaw;}
shimogamo 1:3f857674a290 133 void Global::setinttrimyaw(double _inttrimyaw){inttrimyaw = _inttrimyaw;}
shimogamo 1:3f857674a290 134 void Global::setairspeed(double _airspeed){airspeed = _airspeed;}
shimogamo 1:3f857674a290 135 void Global::setcadence(double _cadence){cadence = _cadence;}
shimogamo 1:3f857674a290 136 void Global::setaltitude(double _altitude){altitude = _altitude;}
shimogamo 4:650af94bf062 137