Example #1
0
        static void vJoyDataPack(float ROLL, float PITCH, float YAW, float THROTTLE, Frame thisFrame, Form1 sender)
        {
            //Display raw values
            sender.rollTXT.Text   = ROLL.ToString();
            sender.pitchTXT.Text  = PITCH.ToString();
            sender.yawTXT.Text    = YAW.ToString();
            sender.heightTXT.Text = THROTTLE.ToString();


            //Display raw values
            sender.rollJOY.Text   = RX.ToString();
            sender.pitchJOY.Text  = RY.ToString();
            sender.yawJOY.Text    = X.ToString();
            sender.heightJOY.Text = Y.ToString();

            sender.yawProg.Value    = (int)X;
            sender.rollProg.Value   = (int)RX;
            sender.pitchProg.Value  = (int)RY;
            sender.heightProg.Value = (int)Y;

            HandValue thisHand = new HandValue();

            thisHand.Roll      = RX;
            thisHand.Pitch     = RY;
            thisHand.Yaw       = X;
            thisHand.Height    = Y;
            thisHand.Timestamp = thisFrame.Timestamp;

            myLog.LogHand(thisHand);

            if (sender.chartCheckBox.Checked)
            {
                if ((thisFrame.Id % 3) == 0)
                {
                    myCircularBuff.Add(thisHand);
                }
            }
        }
Example #2
0
        static void serialCommData_pack(float ROLL, float PITCH, float YAW, float THROTTLE, Frame thisFrame, Form1 sender)
        {
            if (sender.serialPort1.IsOpen)
            {
                //Display raw values
                sender.rollTXT.Text   = ROLL.ToString();
                sender.pitchTXT.Text  = PITCH.ToString();
                sender.yawTXT.Text    = YAW.ToString();
                sender.heightTXT.Text = THROTTLE.ToString();

                //Display raw values
                sender.rollJOY.Text   = RX.ToString();
                sender.pitchJOY.Text  = RY.ToString();
                sender.yawJOY.Text    = X.ToString();
                sender.heightJOY.Text = Y.ToString();

                sender.yawProg.Value    = (int)X;
                sender.rollProg.Value   = (int)RX;
                sender.pitchProg.Value  = (int)RY;
                sender.heightProg.Value = (int)Y;

                HandValue thisHand = new HandValue();
                thisHand.Roll      = RX;
                thisHand.Pitch     = RY;
                thisHand.Yaw       = X;
                thisHand.Height    = Y;
                thisHand.Timestamp = thisFrame.Timestamp;

                if (ball_motion)
                {
                    int Roll_to_send  = (int)(((float)(RX >> 7)) / 1.422f);
                    int Pitch_to_send = (int)(((float)(RY >> 7)) / 1.422f);
                    dataOUT[0]  = (byte)'$';
                    dataOUT[1]  = (byte)'Y';
                    dataOUT[2]  = (byte)(((Roll_to_send % 1000) / 100) + 48);
                    dataOUT[3]  = (byte)(((Roll_to_send % 100) / 10) + 48);
                    dataOUT[4]  = (byte)((Roll_to_send % 10) + 48);
                    dataOUT[5]  = (byte)'#';
                    dataOUT[6]  = (byte)'$';
                    dataOUT[7]  = (byte)'X';
                    dataOUT[8]  = (byte)(((Pitch_to_send % 1000) / 100) + 48);
                    dataOUT[9]  = (byte)(((Pitch_to_send % 100) / 10) + 48);
                    dataOUT[10] = (byte)((Pitch_to_send % 10) + 48);
                    dataOUT[11] = (byte)'#';
                }
                else
                {
                    //scrittura nella seriale
                    dataOUT[0] = (byte)'$';
                    dataOUT[1] = 85;

                    uint Roll_to_send   = (uint)((float)((uint)RX >> 5) / 1.28f); // CH1
                    uint Pitch_to_send  = (uint)((float)((uint)RY >> 5) / 1.28f);
                    uint Height_to_send = (uint)((float)((uint)Y >> 5) / 1.28f);
                    uint Yaw_to_send    = (uint)((float)((uint)X >> 5) / 1.28f);
                    uint arm_disarm     = 800;
                    uint Air_mode       = 0;
                    uint Flight_mode    = (uint)sender.FlightMode;
                    uint CH8            = 0;

                    if (AirMode)
                    {
                        Air_mode = 800;
                    }
                    else
                    {
                        Air_mode = 0;
                    }


                    if (run)
                    {
                        arm_disarm = 0;     // armed
                    }
                    else
                    {
                        arm_disarm = 800;   // disarmed
                    }

                    dataOUT[2]  = (byte)(Roll_to_send >> 2);
                    dataOUT[3]  = (byte)((Roll_to_send << 6) | (Pitch_to_send >> 4));
                    dataOUT[4]  = (byte)((Pitch_to_send << 4) | (Height_to_send >> 6));
                    dataOUT[5]  = (byte)((Height_to_send << 2) | (Yaw_to_send >> 8));
                    dataOUT[6]  = (byte)(Yaw_to_send);
                    dataOUT[7]  = (byte)(arm_disarm >> 2);
                    dataOUT[8]  = (byte)((arm_disarm << 6) | (Air_mode >> 4));
                    dataOUT[9]  = (byte)((Air_mode << 4) | (Flight_mode >> 6));
                    dataOUT[10] = (byte)((Flight_mode << 2) | (CH8 >> 8));
                    dataOUT[11] = (byte)(CH8);
                    dataOUT[12] = (byte)'#';
                }
            }
        }