Kim Youngsik / Mbed 2 deprecated 1TEST_Flight_Protocol_v1

Dependencies:   mbed

Fork of 1TEST_Flight_Protocol by Kim Youngsik

main.cpp

Committer:
skyyoungsik
Date:
2017-05-17
Revision:
0:c466d770ffa7
Child:
1:e8a99f19604e

File content as of revision 0:c466d770ffa7:

#include "mbed.h"
#include "ROBOFRIEN_GUI.h"
#include <math.h>

#define PI 3.14159265359    // This value will be used when calculating angles

Timer MainTimer;
DigitalOut myled1(LED1);
DigitalOut myled2(LED2);
DigitalOut myled3(LED3);
DigitalOut myled4(LED4);
ROBOFRIEN_GUI GUI;
int cnt;
int main() {
    GUI.Configuration_init();
    while(1) {
        GUI.pc_rx_update();
          if(GUI.rx_bool() == true){
            cnt ++;
            /////////////////////////////////////////////////////////////////////////////////////////////////////////
            //////////////////////////////////////////// [M/S] Mode and State ///////////////////////////////////////
            /////////////////////////////////////////////////////////////////////////////////////////////////////////
            GUI.Mode1 = 8 * sin( PI/180 + cnt/50.0) + 8;
            GUI.Mode2 = 8 * cos( PI/180 + cnt/50.0) + 8;
            GUI.MissionState = 8 * sin( PI/180 + cnt/50.0) + 8;
            GUI.CurrentMarker = 11 * cos( PI/180 + cnt/100.0) + 10;
            GUI.Bat1 = 50 * sin(PI/180 + cnt/50.0) + 50;   // 21.6 ~ 24.6 ( 6cell )
            GUI.Bat2 = 50 * cos(PI/180 + cnt/50.0) + 50;  // 11.1 ~ 12.6 ( 3cell )
            // Button State is change automatically in "ROBOFRIEN_GUI.cpp" //
            // You Can not change this setting, just use it ///
            if(GUI.button[0] == true) myled1 = 1;
            else myled1 = 0;
            if(GUI.button[1] == true) myled2 = 1;
            else myled2 = 0;
            if(GUI.button[2] == true) myled3 = 1;
            else myled3 = 0;
            if(GUI.button[3] == true) myled4 = 1;
            else myled4 = 0;
//            if(GUI.button[4] == true) myled5 = 1;
//            else myled5 = 0;

            /////////////////////////////////////////////////////////////////////////////////////////////////////////
            //////////////////////////////////////////////// [GPS] GPS //////////////////////////////////////////////
            /////////////////////////////////////////////////////////////////////////////////////////////////////////
//            GUI.utc_time = cnt * 10;
//            GUI.latitude = 35117030 + 10000 * sin( PI/180 + cnt/50.0);
//            GUI.longitude = 129087896 + 10000 * cos( PI/180 + cnt/50.0);
//            GUI.altitude = 22768 + 32768 * sin( PI/180 + cnt/50.0);
            GUI.utc_time = GUI.Marker_Speed[0];
            GUI.latitude = GUI.Marker_Lat[0];
            GUI.longitude = GUI.Marker_Lng[0];
            GUI.altitude = GUI.Marker_Alt[0];
            GUI.SatNum = 10 + 10 * sin( PI/180 + cnt/50.0);

            /////////////////////////////////////////////////////////////////////////////////////////////////////////
            ///////////////////////////////////////////////// AHRS //////////////////////////////////////////////////
            /////////////////////////////////////////////////////////////////////////////////////////////////////////
            GUI.rollx100 = 4500 * sin( PI/180 + cnt/50.0);
            GUI.pitchx100 = -4500 * sin( PI/180 + cnt/50.0);
            GUI.yawx100 = 18000 * sin( PI/180 + cnt/50.0) + 18000;
            GUI.roll_ratex100 =  30000 * sin( PI/180 + cnt/50.0);
            GUI.pitch_ratex100 =  30000 * sin( PI/180 + cnt/50.0 + PI/4);
            GUI.yaw_ratex100 =  30000 * sin( PI/180 + cnt/50.0 + PI*3/4);
            GUI.VXx100 = 1000 * sin(PI/180 + cnt/50.0);
            GUI.VYx100 = 1000 * cos(PI/180 + cnt/50.0);
            GUI.VZx100 = 1000 * sin(PI/180 + cnt/50.0 + PI/4);
            
            /////////////////////////////////////////////////////////////////////////////////////////////////////////
            ////////////////////////////////////////////// [C/P] CAP/PWM ////////////////////////////////////////////
            /////////////////////////////////////////////////////////////////////////////////////////////////////////
            GUI.cap[0] = 100 * sin(PI/180 + cnt/50.0);
            GUI.cap[1] = 100 * sin(PI/180 + cnt/50.0 + PI/8);
            GUI.cap[2] = 100 * sin(PI/180 + cnt/50.0 + 2*PI/8);
            GUI.cap[3] = 100 * sin(PI/180 + cnt/50.0 + 3*PI/8);
            GUI.cap[4] = 100 * sin(PI/180 + cnt/50.0 + 4*PI/8);
            GUI.cap[5] = 100 * sin(PI/180 + cnt/50.0 + 5*PI/8);
            GUI.cap[6] = 100 * sin(PI/180 + cnt/50.0 + 6*PI/8);
            GUI.cap[7] = 100 * sin(PI/180 + cnt/50.0 + 7*PI/8);
            GUI.pwm[0] = 100 * sin(PI/180 + cnt/50.0) + 100;
            GUI.pwm[1] = 100 * sin(PI/180 + cnt/50.0 + PI/8) + 100;
            GUI.pwm[2] = 100 * sin(PI/180 + cnt/50.0 + 2*PI/8) + 100;
            GUI.pwm[3] = 100 * sin(PI/180 + cnt/50.0 + 3*PI/8) + 100;
            GUI.pwm[4] = 100 * sin(PI/180 + cnt/50.0 + 4*PI/8) + 100;
            GUI.pwm[5] = 100 * sin(PI/180 + cnt/50.0 + 5*PI/8) + 100;
            GUI.pwm[6] = 100 * sin(PI/180 + cnt/50.0 + 6*PI/8) + 100;
            GUI.pwm[7] = 100 * sin(PI/180 + cnt/50.0 + 7*PI/8) + 100;
            
            /////////////////////////////////////////////////////////////////////////////////////////////////////////
            /////////////////////////////////////////// [E/D] Extra & Debug /////////////////////////////////////////
            /////////////////////////////////////////////////////////////////////////////////////////////////////////
            GUI.DEBUGx100[0] = 9000 * sin(PI/180 + cnt/50.0) + 9000;
            GUI.DEBUGx100[1] += 100;
            if(GUI.DEBUGx100[1] >= 36000) GUI.DEBUGx100[1] = 0;
            GUI.DEBUGx100[2] = 25000 * sin(PI/180 + cnt/50.0) + 25000;
            GUI.DEBUGx100[3] = 11111;
            GUI.DEBUGx100[4] = 22222;
            GUI.DEBUGx100[5] = 33333;
            GUI.DEBUGx100[6] = 44444;
            GUI.DEBUGx100[7] = 55555;

            /////////////////////////////////////////////////////////////////////////////////////////////////////////
            //////////////////////////////////////////////// Refresh ////////////////////////////////////////////////
            /////////////////////////////////////////////////////////////////////////////////////////////////////////
            GUI.Refresh();
            
        }

    }
}