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); } }
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; } } }