public void Activate() { timer.Enabled = true; timer.Interval = 100; timer.Start(); if (!MainV2.comPort.MAV.param.ContainsKey("RCMAP_ROLL")) { chroll = 1; chpitch = 2; chthro = 3; chyaw = 4; } else { //setup bindings chroll = (int)(float)MainV2.comPort.MAV.param["RCMAP_ROLL"]; chpitch = (int)(float)MainV2.comPort.MAV.param["RCMAP_PITCH"]; chthro = (int)(float)MainV2.comPort.MAV.param["RCMAP_THROTTLE"]; chyaw = (int)(float)MainV2.comPort.MAV.param["RCMAP_YAW"]; } BARroll.DataBindings.Clear(); BARpitch.DataBindings.Clear(); BARthrottle.DataBindings.Clear(); BARyaw.DataBindings.Clear(); BAR5.DataBindings.Clear(); BAR6.DataBindings.Clear(); BAR7.DataBindings.Clear(); BAR8.DataBindings.Clear(); BAR9.DataBindings.Clear(); BAR10.DataBindings.Clear(); BAR11.DataBindings.Clear(); BAR12.DataBindings.Clear(); BAR13.DataBindings.Clear(); BAR14.DataBindings.Clear(); BARroll.DataBindings.Add(new Binding("Value", currentStateBindingSource, "ch" + chroll + "in", true)); BARpitch.DataBindings.Add(new Binding("Value", currentStateBindingSource, "ch" + chpitch + "in", true)); BARthrottle.DataBindings.Add(new Binding("Value", currentStateBindingSource, "ch" + chthro + "in", true)); BARyaw.DataBindings.Add(new Binding("Value", currentStateBindingSource, "ch" + chyaw + "in", true)); BAR5.DataBindings.Add(new Binding("Value", currentStateBindingSource, "ch5in", true)); BAR6.DataBindings.Add(new Binding("Value", currentStateBindingSource, "ch6in", true)); BAR7.DataBindings.Add(new Binding("Value", currentStateBindingSource, "ch7in", true)); BAR8.DataBindings.Add(new Binding("Value", currentStateBindingSource, "ch8in", true)); BAR9.DataBindings.Add(new Binding("Value", currentStateBindingSource, "ch9in", true)); BAR10.DataBindings.Add(new Binding("Value", currentStateBindingSource, "ch10in", true)); BAR11.DataBindings.Add(new Binding("Value", currentStateBindingSource, "ch11in", true)); BAR12.DataBindings.Add(new Binding("Value", currentStateBindingSource, "ch12in", true)); BAR13.DataBindings.Add(new Binding("Value", currentStateBindingSource, "ch13in", true)); BAR14.DataBindings.Add(new Binding("Value", currentStateBindingSource, "ch14in", true)); try { // force this screen to work MainV2.comPort.requestDatastream(MAVLink.MAV_DATA_STREAM.RC_CHANNELS, 2); } catch { } startup = true; if (MainV2.comPort.MAV.cs.firmware == MainV2.Firmwares.ArduPlane || MainV2.comPort.MAV.cs.firmware == MainV2.Firmwares.Ateryx) { CHK_mixmode.setup(1, 0, "ELEVON_MIXING", MainV2.comPort.MAV.param); CHK_elevonrev.setup(1, 0, "ELEVON_REVERSE", MainV2.comPort.MAV.param); CHK_elevonch1rev.setup(1, 0, "ELEVON_CH1_REV", MainV2.comPort.MAV.param); CHK_elevonch2rev.setup(1, 0, "ELEVON_CH2_REV", MainV2.comPort.MAV.param); } else { groupBoxElevons.Visible = false; } // this controls the direction of the output, not the input. CHK_revch1.setup(new double[] { -1, 1 }, new double[] { 1, 0 }, new string[] { "RC1_REV", "SERVO1_REVERSED" }, MainV2.comPort.MAV.param); CHK_revch2.setup(new double[] { -1, 1 }, new double[] { 1, 0 }, new string[] { "RC2_REV", "SERVO2_REVERSED" }, MainV2.comPort.MAV.param); CHK_revch3.setup(new double[] { -1, 1 }, new double[] { 1, 0 }, new string[] { "RC3_REV", "SERVO3_REVERSED" }, MainV2.comPort.MAV.param); CHK_revch4.setup(new double[] { -1, 1 }, new double[] { 1, 0 }, new string[] { "RC4_REV", "SERVO4_REVERSED" }, MainV2.comPort.MAV.param); // run after to ensure they are disabled on copter if (MainV2.comPort.MAV.cs.firmware == MainV2.Firmwares.ArduCopter2) { CHK_revch1.Visible = false; CHK_revch2.Visible = false; CHK_revch3.Visible = false; CHK_revch4.Visible = false; } startup = false; if (MainV2.comPort.MAV.cs.firmware == MainV2.Firmwares.ArduPlane || MainV2.comPort.MAV.cs.firmware == MainV2.Firmwares.Ateryx) // APM { CB_simple1.Visible = false; CB_simple2.Visible = false; CB_simple3.Visible = false; CB_simple4.Visible = false; CB_simple5.Visible = false; CB_simple6.Visible = false; chk_ss1.Visible = false; chk_ss2.Visible = false; chk_ss3.Visible = false; chk_ss4.Visible = false; chk_ss5.Visible = false; chk_ss6.Visible = false; //linkLabel1_ss.Visible = false; try { updateDropDown(CMB_fmode1, "FLTMODE1"); updateDropDown(CMB_fmode2, "FLTMODE2"); updateDropDown(CMB_fmode3, "FLTMODE3"); updateDropDown(CMB_fmode4, "FLTMODE4"); updateDropDown(CMB_fmode5, "FLTMODE5"); updateDropDown(CMB_fmode6, "FLTMODE6"); CMB_fmode1.SelectedValue = int.Parse(MainV2.comPort.MAV.param["FLTMODE1"].ToString()); CMB_fmode2.SelectedValue = int.Parse(MainV2.comPort.MAV.param["FLTMODE2"].ToString()); CMB_fmode3.SelectedValue = int.Parse(MainV2.comPort.MAV.param["FLTMODE3"].ToString()); CMB_fmode4.SelectedValue = int.Parse(MainV2.comPort.MAV.param["FLTMODE4"].ToString()); CMB_fmode5.SelectedValue = int.Parse(MainV2.comPort.MAV.param["FLTMODE5"].ToString()); CMB_fmode6.Text = "Manual"; CMB_fmode6.Enabled = false; } catch { } } else if (MainV2.comPort.MAV.cs.firmware == MainV2.Firmwares.ArduRover) // APM { CB_simple1.Visible = false; CB_simple2.Visible = false; CB_simple3.Visible = false; CB_simple4.Visible = false; CB_simple5.Visible = false; CB_simple6.Visible = false; chk_ss1.Visible = false; chk_ss2.Visible = false; chk_ss3.Visible = false; chk_ss4.Visible = false; chk_ss5.Visible = false; chk_ss6.Visible = false; //linkLabel1_ss.Visible = false; try { updateDropDown(CMB_fmode1, "MODE1"); updateDropDown(CMB_fmode2, "MODE2"); updateDropDown(CMB_fmode3, "MODE3"); updateDropDown(CMB_fmode4, "MODE4"); updateDropDown(CMB_fmode5, "MODE5"); updateDropDown(CMB_fmode6, "MODE6"); CMB_fmode1.SelectedValue = int.Parse(MainV2.comPort.MAV.param["MODE1"].ToString()); CMB_fmode2.SelectedValue = int.Parse(MainV2.comPort.MAV.param["MODE2"].ToString()); CMB_fmode3.SelectedValue = int.Parse(MainV2.comPort.MAV.param["MODE3"].ToString()); CMB_fmode4.SelectedValue = int.Parse(MainV2.comPort.MAV.param["MODE4"].ToString()); CMB_fmode5.SelectedValue = int.Parse(MainV2.comPort.MAV.param["MODE5"].ToString()); CMB_fmode6.Text = "Manual"; CMB_fmode6.Enabled = false; } catch { } } else if (MainV2.comPort.MAV.cs.firmware == MainV2.Firmwares.ArduCopter2) // ac2 { try { updateDropDown(CMB_fmode1, "FLTMODE1"); updateDropDown(CMB_fmode2, "FLTMODE2"); updateDropDown(CMB_fmode3, "FLTMODE3"); updateDropDown(CMB_fmode4, "FLTMODE4"); updateDropDown(CMB_fmode5, "FLTMODE5"); updateDropDown(CMB_fmode6, "FLTMODE6"); CMB_fmode1.SelectedValue = int.Parse(MainV2.comPort.MAV.param["FLTMODE1"].ToString()); CMB_fmode2.SelectedValue = int.Parse(MainV2.comPort.MAV.param["FLTMODE2"].ToString()); CMB_fmode3.SelectedValue = int.Parse(MainV2.comPort.MAV.param["FLTMODE3"].ToString()); CMB_fmode4.SelectedValue = int.Parse(MainV2.comPort.MAV.param["FLTMODE4"].ToString()); CMB_fmode5.SelectedValue = int.Parse(MainV2.comPort.MAV.param["FLTMODE5"].ToString()); CMB_fmode6.SelectedValue = int.Parse(MainV2.comPort.MAV.param["FLTMODE6"].ToString()); CMB_fmode6.Enabled = true; if (MainV2.comPort.MAV.param.ContainsKey("SIMPLE")) { var simple = int.Parse(MainV2.comPort.MAV.param["SIMPLE"].ToString()); CB_simple1.Checked = ((simple >> 0 & 1) == 1); CB_simple2.Checked = ((simple >> 1 & 1) == 1); CB_simple3.Checked = ((simple >> 2 & 1) == 1); CB_simple4.Checked = ((simple >> 3 & 1) == 1); CB_simple5.Checked = ((simple >> 4 & 1) == 1); CB_simple6.Checked = ((simple >> 5 & 1) == 1); } if (MainV2.comPort.MAV.param.ContainsKey("SUPER_SIMPLE")) { var simple = int.Parse(MainV2.comPort.MAV.param["SUPER_SIMPLE"].ToString()); chk_ss1.Checked = ((simple >> 0 & 1) == 1); chk_ss2.Checked = ((simple >> 1 & 1) == 1); chk_ss3.Checked = ((simple >> 2 & 1) == 1); chk_ss4.Checked = ((simple >> 3 & 1) == 1); chk_ss5.Checked = ((simple >> 4 & 1) == 1); chk_ss6.Checked = ((simple >> 5 & 1) == 1); } } catch { } } else if (MainV2.comPort.MAV.cs.firmware == MainV2.Firmwares.PX4) // APM { CB_simple1.Visible = false; CB_simple2.Visible = false; CB_simple3.Visible = false; CB_simple4.Visible = false; CB_simple5.Visible = false; CB_simple6.Visible = false; chk_ss1.Visible = false; chk_ss2.Visible = false; chk_ss3.Visible = false; chk_ss4.Visible = false; chk_ss5.Visible = false; chk_ss6.Visible = false; //linkLabel1_ss.Visible = false; try { updateDropDown(CMB_fmode1, "COM_FLTMODE1"); CMB_fmode1.DataSource = ParameterMetaDataRepository.GetParameterOptionsInt("COM_FLTMODE1", "PX4"); updateDropDown(CMB_fmode2, "COM_FLTMODE2"); CMB_fmode2.DataSource = ParameterMetaDataRepository.GetParameterOptionsInt("COM_FLTMODE2", "PX4"); updateDropDown(CMB_fmode3, "COM_FLTMODE3"); CMB_fmode3.DataSource = ParameterMetaDataRepository.GetParameterOptionsInt("COM_FLTMODE3", "PX4"); updateDropDown(CMB_fmode4, "COM_FLTMODE4"); CMB_fmode4.DataSource = ParameterMetaDataRepository.GetParameterOptionsInt("COM_FLTMODE4", "PX4"); updateDropDown(CMB_fmode5, "COM_FLTMODE5"); CMB_fmode5.DataSource = ParameterMetaDataRepository.GetParameterOptionsInt("COM_FLTMODE5", "PX4"); updateDropDown(CMB_fmode6, "COM_FLTMODE6"); CMB_fmode6.DataSource = ParameterMetaDataRepository.GetParameterOptionsInt("COM_FLTMODE6", "PX4"); CMB_fmode1.SelectedValue = int.Parse(MainV2.comPort.MAV.param["COM_FLTMODE1"].ToString()); CMB_fmode2.SelectedValue = int.Parse(MainV2.comPort.MAV.param["COM_FLTMODE2"].ToString()); CMB_fmode3.SelectedValue = int.Parse(MainV2.comPort.MAV.param["COM_FLTMODE3"].ToString()); CMB_fmode4.SelectedValue = int.Parse(MainV2.comPort.MAV.param["COM_FLTMODE4"].ToString()); CMB_fmode5.SelectedValue = int.Parse(MainV2.comPort.MAV.param["COM_FLTMODE5"].ToString()); CMB_fmode6.SelectedValue = int.Parse(MainV2.comPort.MAV.param["COM_FLTMODE6"].ToString()); } catch { } } timer.Enabled = true; timer.Interval = 100; timer.Start(); }
public void Activate() { timer.Enabled = true; timer.Interval = 100; timer.Start(); if (!MainV2.comPort.MAV.param.ContainsKey("RCMAP_ROLL")) { chroll = 1; chpitch = 2; chthro = 3; chyaw = 4; } else { try { //setup bindings chroll = (int)(float)MainV2.comPort.MAV.param["RCMAP_ROLL"]; chpitch = (int)(float)MainV2.comPort.MAV.param["RCMAP_PITCH"]; chthro = (int)(float)MainV2.comPort.MAV.param["RCMAP_THROTTLE"]; chyaw = (int)(float)MainV2.comPort.MAV.param["RCMAP_YAW"]; } catch (Exception ex) { CustomMessageBox.Show(Strings.ErrorReceivingParams, Strings.ERROR); this.Enabled = false; return; } } BARroll.DataBindings.Clear(); BARpitch.DataBindings.Clear(); BARthrottle.DataBindings.Clear(); BARyaw.DataBindings.Clear(); BAR5.DataBindings.Clear(); BAR6.DataBindings.Clear(); BAR7.DataBindings.Clear(); BAR8.DataBindings.Clear(); BAR9.DataBindings.Clear(); BAR10.DataBindings.Clear(); BAR11.DataBindings.Clear(); BAR12.DataBindings.Clear(); BAR13.DataBindings.Clear(); BAR14.DataBindings.Clear(); BARroll.DataBindings.Add(new Binding("Value", currentStateBindingSource, "ch" + chroll + "in", true)); BARpitch.DataBindings.Add(new Binding("Value", currentStateBindingSource, "ch" + chpitch + "in", true)); BARthrottle.DataBindings.Add(new Binding("Value", currentStateBindingSource, "ch" + chthro + "in", true)); BARyaw.DataBindings.Add(new Binding("Value", currentStateBindingSource, "ch" + chyaw + "in", true)); BAR5.DataBindings.Add(new Binding("Value", currentStateBindingSource, "ch5in", true)); BAR6.DataBindings.Add(new Binding("Value", currentStateBindingSource, "ch6in", true)); BAR7.DataBindings.Add(new Binding("Value", currentStateBindingSource, "ch7in", true)); BAR8.DataBindings.Add(new Binding("Value", currentStateBindingSource, "ch8in", true)); BAR9.DataBindings.Add(new Binding("Value", currentStateBindingSource, "ch9in", true)); BAR10.DataBindings.Add(new Binding("Value", currentStateBindingSource, "ch10in", true)); BAR11.DataBindings.Add(new Binding("Value", currentStateBindingSource, "ch11in", true)); BAR12.DataBindings.Add(new Binding("Value", currentStateBindingSource, "ch12in", true)); BAR13.DataBindings.Add(new Binding("Value", currentStateBindingSource, "ch13in", true)); BAR14.DataBindings.Add(new Binding("Value", currentStateBindingSource, "ch14in", true)); try { // force this screen to work MainV2.comPort.requestDatastream(MAVLink.MAV_DATA_STREAM.RC_CHANNELS, 2); } catch { } startup = true; if (MainV2.comPort.MAV.cs.firmware == Firmwares.ArduPlane || MainV2.comPort.MAV.cs.firmware == Firmwares.Ateryx) { CHK_mixmode.setup(1, 0, "ELEVON_MIXING", MainV2.comPort.MAV.param); CHK_elevonrev.setup(1, 0, "ELEVON_REVERSE", MainV2.comPort.MAV.param); CHK_elevonch1rev.setup(1, 0, "ELEVON_CH1_REV", MainV2.comPort.MAV.param); CHK_elevonch2rev.setup(1, 0, "ELEVON_CH2_REV", MainV2.comPort.MAV.param); } else { groupBoxElevons.Visible = false; } // this controls the direction of the output, not the input. CHK_revch1.setup(new double[] { -1, 1 }, new double[] { 1, 0 }, new string[] { "RC1_REV", "RC1_REVERSED" }, MainV2.comPort.MAV.param); CHK_revch2.setup(new double[] { -1, 1 }, new double[] { 1, 0 }, new string[] { "RC2_REV", "RC2_REVERSED" }, MainV2.comPort.MAV.param); CHK_revch3.setup(new double[] { -1, 1 }, new double[] { 1, 0 }, new string[] { "RC3_REV", "RC3_REVERSED" }, MainV2.comPort.MAV.param); CHK_revch4.setup(new double[] { -1, 1 }, new double[] { 1, 0 }, new string[] { "RC4_REV", "RC4_REVERSED" }, MainV2.comPort.MAV.param); // run after to ensure they are disabled on copter if (MainV2.comPort.MAV.cs.firmware == Firmwares.ArduCopter2) { CHK_revch1.Visible = false; CHK_revch2.Visible = false; CHK_revch3.Visible = false; CHK_revch4.Visible = false; } startup = false; }