예제 #1
0
        private void RellenarValoresCoche(object sender, Telemetria.DatosCocheEventArgs e) //float ConsignaMarcha, float ConsignaRPMActual, float AnguloRuedaDerecha, float AnguloRuedaIzquierda, float ESC_VoltajeEntrada, float ESC_rpmActual, float ESC_avgMotorCurrent, float ESC_avgInputCurrent, float ESC_Dutycycle, float modo_actual)
        {
            if (trackBarRuedaDer.InvokeRequired)
            {
                nuevosValoresCocheDelegado delegado = new nuevosValoresCocheDelegado(RellenarValoresCoche);
                //ya que el delegado invocará a CambiarProgreso debemos indicarle los parámetros
                object[] parametros = new object[] { sender, e };
                //invocamos el método a través del mismo contexto del formulario (this) y enviamos los parámetros
                this.BeginInvoke(delegado, parametros);
            }
            else
            {
                labelCmarcha.Text   = e.ConsignaMarcha.ToString();
                labelCmotor.Text    = e.ConsignaMotor.ToString();
                labelCRuedaDer.Text = e.ConsignaRuedaDerecha.ToString();
                labelCRuedaIzq.Text = e.ConsignaRuedaIzquierda.ToString();
                labelT_control.Text = e.Modo_motor_actual.ToString();

                labelT_control.Text = e.Tipo_control_actual.ToString();
                labelT_control.Text = e.Tipo_regulacion_direccion.ToString();
                labelT_control.Text = e.Tipo_regulacion_potencia.ToString();

                labelVoltage.Text     = "V: " + e.ESC_VoltajeEntrada.ToString();
                labelCorriente.Text   = "A: " + e.ESC_avgMotorCurrent.ToString();
                labelRPM.Text         = "RPM: " + e.ESC_rpmActual.ToString();
                labelTemperatura.Text = "temp: " + e.ESC_Dutycycle.ToString();
                labelMAH.Text         = "MaH: " + e.ESC_avgInputCurrent.ToString();


                //TODO: no enviar esta informacion?
                Telemetria.DatosEstadoEventArgs par = new Telemetria.DatosEstadoEventArgs()
                {
                    Modo_motor_actual         = e.Modo_motor_actual,
                    Tipo_control_actual       = e.Tipo_control_actual,
                    Tipo_regulacion_direccion = e.Tipo_regulacion_direccion,
                    Tipo_regulacion_potencia  = e.Tipo_regulacion_potencia
                };
                RellenarValoresEstado(sender, par);

                //graficas
                AnadirPunto(-1, e.ConsignaRuedaDerecha, 7);
                AnadirPunto(-1, e.ConsignaRuedaIzquierda, 8);
                AnadirPunto(-1, e.ConsignaMotor, 9);
                AnadirPunto(-1, e.ConsignaMarcha, 10);

                AnadirPunto(-1, e.ESC_VoltajeEntrada, 11);
                AnadirPunto(-1, e.ESC_avgInputCurrent, 12);
                AnadirPunto(-1, e.ESC_rpmActual, 13);
                AnadirPunto(-1, e.ESC_Dutycycle, 14);
            }
        }
예제 #2
0
        private void RellenarValoresEstado(object sender, Telemetria.DatosEstadoEventArgs e)//(float pitch, float roll, float yaw, float[] velocidad, float[] aceleracion, float[] angulos, int tipo_control, float imu_temp)
        {
            if (labelControl.InvokeRequired)
            {
                nuevosValoresEstadoDelegado delegado = new nuevosValoresEstadoDelegado(RellenarValoresEstado);
                //ya que el delegado invocará a CambiarProgreso debemos indicarle los parámetros
                object[] parametros = new object[] { sender, e };
                //invocamos el método a través del mismo contexto del formulario (this) y enviamos los parámetros
                this.BeginInvoke(delegado, parametros);
            }
            else
            {
                switch (e.Modo_motor_actual)
                {
                case Telemetria.E_modo.e_modo_manual:
                    labelModo.BackColor = Color.LightSteelBlue;
                    labelModo.Text      = "manual";
                    break;

                case Telemetria.E_modo.e_modo_full_auto:
                    labelModo.BackColor = Color.Green;
                    labelModo.Text      = "Auto";
                    break;

                case Telemetria.E_modo.e_modo_semi_auto:
                    labelModo.BackColor = Color.LightYellow;
                    labelModo.Text      = "Semi-auto";
                    break;

                case Telemetria.E_modo.e_modo_sistema_salida:
                    labelModo.BackColor = Color.Magenta;
                    labelModo.Text      = "Sistema salida";
                    break;

                default:
                    labelModo.BackColor = Color.Gray;
                    labelModo.Text      = "-";
                    break;
                }

                switch (e.Tipo_control_actual)
                {
                case Telemetria.E_tipo_control.e_control_BT:
                    labelControl.BackColor = Color.LightSkyBlue;
                    labelControl.Text      = "Control Bluetooth";
                    break;

                case Telemetria.E_tipo_control.e_control_RC:
                    labelControl.BackColor = Color.LightGreen;
                    labelControl.Text      = "Control RC";
                    break;

                default:
                    labelControl.BackColor = Color.Gray;
                    labelControl.Text      = "-";
                    break;
                }

                switch (e.Tipo_regulacion_potencia)
                {
                case Telemetria.E_regulacion_potencia.e_reg_pot_agresiva:
                    labelPotencia.BackColor = Color.LightGoldenrodYellow;
                    labelPotencia.Text      = "pot. agresiva";
                    break;

                case Telemetria.E_regulacion_potencia.e_reg_pot_incremental:
                    labelPotencia.BackColor = Color.Coral;
                    labelPotencia.Text      = "pot. incremental";
                    break;

                case Telemetria.E_regulacion_potencia.e_reg_pot_max:
                    labelPotencia.BackColor = Color.Red;
                    labelPotencia.Text      = "pot. max";
                    break;

                case Telemetria.E_regulacion_potencia.e_reg_pot_conservadora:
                    labelPotencia.BackColor = Color.LightSeaGreen;
                    labelPotencia.Text      = "pot. conservadora";
                    break;

                case Telemetria.E_regulacion_potencia.e_reg_pot_directa:
                    labelPotencia.BackColor = Color.AliceBlue;
                    labelPotencia.Text      = "pot. directa";
                    break;

                default:
                    labelPotencia.BackColor = Color.Gray;
                    labelPotencia.Text      = "-";
                    break;
                }

                switch (e.Tipo_regulacion_direccion)
                {
                case Telemetria.E_regulacion_direccion.e_reg_dir_directa:
                    labelDireccion.BackColor = Color.LightSalmon;
                    labelDireccion.Text      = "Direcion norm";
                    break;

                case Telemetria.E_regulacion_direccion.e_reg_dir_Ackermann:
                    labelDireccion.BackColor = Color.Green;
                    labelDireccion.Text      = "Ackermann";
                    break;

                default:
                    labelDireccion.BackColor = Color.Gray;
                    labelDireccion.Text      = "-";
                    break;
                }
            }
        }