private void Params_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex == Value.Index) { var check = Params[e.ColumnIndex, e.RowIndex].EditedFormattedValue; var name = Params[Command.Index, e.RowIndex].Value.ToString(); var availableBitMask = ParameterMetaDataRepository.GetParameterBitMaskInt(name, MainV2.comPort.MAV.cs.firmware.ToString()); if (availableBitMask.Count > 0) { var mcb = new MavlinkCheckBoxBitMask(); var list = new MAVLink.MAVLinkParamList(); list.Add(new MAVLink.MAVLinkParam(name, double.Parse(check.ToString(), CultureInfo.InvariantCulture), MAVLink.MAV_PARAM_TYPE.INT32)); mcb.setup(name, list); mcb.ValueChanged += (o, s, value) => { Params[e.ColumnIndex, e.RowIndex].Value = value; Params.Invalidate(); mcb.Focus(); }; var frm = mcb.ShowUserControl(); frm.TopMost = true; } } }
public void setup(string[] paramnames, MAVLink.MAVLinkParamList paramlist) { base.SelectedIndexChanged -= MavlinkComboBox_SelectedIndexChanged; var paramname = paramnames.FirstOrDefault(a => paramlist.ContainsKey(a)); if (paramname != null) { var source = ParameterMetaDataRepository.GetParameterOptionsInt(paramname, MainV2.comPort.MAV.cs.firmware.ToString()); _source2 = source; this.DisplayMember = "Value"; this.ValueMember = "Key"; this.DataSource = source; this.ParamName = paramname; this.Enabled = true; this.Visible = true; enableControl(true); var item = paramlist[paramname]; this.SelectedValue = (int)paramlist[paramname].Value; } else { } base.SelectedIndexChanged += new EventHandler(MavlinkComboBox_SelectedIndexChanged); }
public void setup(string paramname, MAVLink.MAVLinkParamList paramlist) { this.ParamName = paramname; if (paramlist.ContainsKey(paramname)) { this.Enabled = true; list = ParameterMetaDataRepository.GetParameterBitMaskInt(ParamName, MainV2.comPort.MAV.cs.firmware.ToString()); chkcount = list.Count; int leftside = 9; int top = 9; uint value = (uint)paramlist[paramname].Value; Type = paramlist[paramname].TypeAP; for (int a = 0; a < chkcount; a++) { CheckBox chk = new CheckBox(); chk.AutoSize = true; chk.Text = list[a].Value.ToString(); chk.Location = new System.Drawing.Point(leftside, top); chk.CheckedChanged -= MavlinkCheckBoxBitMask_CheckedChanged; if ((value & (1 << list[a].Key)) > 0) { chk.Checked = true; } chklist.Add(new KeyValuePair <int, CheckBox>(list[a].Key, chk)); panel1.Controls.Add(chk); chk.CheckedChanged += MavlinkCheckBoxBitMask_CheckedChanged; //this.Controls.Add(new Label() { Location = chk.Location, Text = "test" }); leftside += chk.Width + 5; if (leftside > 500) { top += chk.Height + 5; leftside = 9; } } this.panel1.Height = top + 25; //this.Height = top + 25; } else { this.Enabled = false; } }
private bool setWPTotal(ushort wp_total) { MAVLink.MAVLinkParamList param = new MAVLink.MAVLinkParamList(); MAVLink.mavlink_mission_count_t req = new MAVLink.mavlink_mission_count_t(); req.target_system = TARGET_SYSTEM_ID; req.target_component = TARGET_SYS_COMPID; req.count = wp_total;//航点数量 generatePacket((byte)MAVLink.MAVLINK_MSG_ID.MISSION_COUNT, req); return(true); }
public void setup(double OnValue, double OffValue, string[] paramname, MAVLink.MAVLinkParamList paramlist, Control enabledisable = null) { foreach (var s in paramname) { if (paramlist.ContainsKey(s)) { setup(OnValue, OffValue, s, paramlist, enabledisable); return; } } }
/* * packed format: * uint8_t type:4; // AP_Param type NONE=0, INT8=1, INT16=2, INT32=3, FLOAT=4 * uint8_t type_len:4; // number of bytes in type * uint8_t common_len:4; // number of name bytes in common with previous entry, 0..15 * uint8_t name_len:4; // non-common length of param name -1 (0..15) * uint8_t name[name_len]; // name * uint8_t data[]; // value, may be truncated by record_length */ public static MAVLink.MAVLinkParamList unpack(byte[] data) { MAVLink.MAVLinkParamList list = new MAVLink.MAVLinkParamList(); var magic2 = BitConverter.ToInt32(data.Take(4).ToArray(), 0); if (magic != magic) { return(null); } data = data.Skip(4).ToArray(); var last_name = ""; while (true) { while (len(data) > 0 && ord(data[0]) == 0) { data = data.Skip(1).ToArray(); } if (len(data) == 0) { break; } var ptype = data[0]; var plen = data[1]; var type_len = (ptype >> 4) & 0x0F; ptype &= 0x0F; var name_len = ((plen >> 4) & 0x0F) + 1; var common_len = (plen & 0x0F); var name = new StringBuilder().Append(last_name.Take(common_len).ToArray()) .Append(data.Skip(2).Take(name_len).Select(a => (char)a).ToArray()).ToString(); var vdata = data.Skip(2 + name_len).Take(type_len); last_name = name; data = data.Skip(2 + name_len + type_len).ToArray(); var v = decode_value(ptype, vdata); Console.WriteLine("{0,-16} {1}", name, v); //print("%-16s %f" % (name, float (v))) list.Add(new MAVLink.MAVLinkParam(name, vdata.ToArray().MakeSize(4), (ptype == 1 ? MAVLink.MAV_PARAM_TYPE.INT8 : ptype == 2 ? MAVLink.MAV_PARAM_TYPE.INT16 : ptype == 3 ? MAVLink.MAV_PARAM_TYPE.INT32 : ptype == 4 ? MAVLink.MAV_PARAM_TYPE.REAL32 : (MAVLink.MAV_PARAM_TYPE) 0), (ptype == 1 ? MAVLink.MAV_PARAM_TYPE.INT8 : ptype == 2 ? MAVLink.MAV_PARAM_TYPE.INT16 : ptype == 3 ? MAVLink.MAV_PARAM_TYPE.INT32 : ptype == 4 ? MAVLink.MAV_PARAM_TYPE.REAL32 : (MAVLink.MAV_PARAM_TYPE) 0))); } return(list); }
public Hashtable getParamListBG() { // giveComport = true; List <int> indexsreceived = new List <int>(); // create new list so if canceled we use the old list MAVLink.MAVLinkParamList newparamlist = new MAVLink.MAVLinkParamList(); MAVLink.mavlink_param_request_list_t req = new MAVLink.mavlink_param_request_list_t(); req.target_system = TARGET_SYSTEM_ID; req.target_component = TARGET_SYS_COMPID; generatePacket((byte)MAVLink.MAVLINK_MSG_ID.PARAM_REQUEST_LIST, req); return(null); }
private void Params_CellClick(object sender, CellClickEventArgs e) { // Only process the Description column if (e.RowIndex == -1 || startup) { return; } if (e.ColumnIndex == olvColumn2.Index) { var it = ((data)e.Model); var check = it.Value; var name = it.paramname; var availableBitMask = ParameterMetaDataRepository.GetParameterBitMaskInt(name, MainV2.comPort.MAV.cs.firmware.ToString()); if (availableBitMask.Count > 0) { var mcb = new MavlinkCheckBoxBitMask(); var list = new MAVLink.MAVLinkParamList(); list.Add(new MAVLink.MAVLinkParam(name, double.Parse(check.ToString(), CultureInfo.InvariantCulture), MAVLink.MAV_PARAM_TYPE.INT32)); mcb.setup(name, list); mcb.ValueChanged += (o, s, value) => { paramCompareForm_dtlvcallback(s, int.Parse(value)); ((data)e.HitTest.RowObject).Value = value; Params.RefreshItem(e.HitTest.Item); e.HitTest.SubItem.Text = value; Params.CancelCellEdit(); e.Handled = true; mcb.Focus(); }; var frm = mcb.ShowUserControl(); frm.TopMost = true; } } try { string descStr = e.SubItem.ModelValue.ToString(); ConfigRawParams.CheckForUrlAndLaunchInBrowser(descStr); } catch { } }
public void setup(double OnValue, double OffValue, string paramname, MAVLink.MAVLinkParamList paramlist, Control enabledisable = null, Action callbackonchange = null) { base.CheckedChanged -= MavlinkCheckBox_CheckedChanged; this.CallBackOnChange = callbackonchange; this.OnValue = OnValue; this.OffValue = OffValue; this.ParamName = paramname; this._control = enabledisable; if (paramlist.ContainsKey(paramname)) { this.Enabled = true; this.Visible = true; if (paramlist[paramname].Value == OnValue) { this.Checked = true; enableBGControl(true); } else if (paramlist[paramname].Value == OffValue) { this.Checked = false; enableBGControl(false); } else { this.CheckState = System.Windows.Forms.CheckState.Indeterminate; enableBGControl(false); } } else { this.Enabled = false; } base.CheckedChanged += new EventHandler(MavlinkCheckBox_CheckedChanged); }
public void setup(Type source, string paramname, MAVLink.MAVLinkParamList paramlist)//, string paramname2 = "", Control enabledisable = null) { base.SelectedIndexChanged -= MavlinkComboBox_SelectedIndexChanged; _source = source; this.DataSource = Enum.GetNames(source); this.ParamName = paramname; if (paramlist.ContainsKey(paramname)) { this.Enabled = true; this.Visible = true; enableControl(true); this.Text = Enum.GetName(source, (Int32)paramlist[paramname].Value); } base.SelectedIndexChanged += new EventHandler(MavlinkComboBox_SelectedIndexChanged); }
public void setup(List <KeyValuePair <int, string> > source, string paramname, MAVLink.MAVLinkParamList paramlist) { base.SelectedIndexChanged -= MavlinkComboBox_SelectedIndexChanged; _source2 = source; this.DisplayMember = "Value"; this.ValueMember = "Key"; this.DataSource = source; this.ParamName = paramname; this.Name = paramname; if (paramlist.ContainsKey(paramname)) { this.Enabled = true; this.Visible = true; enableControl(true); var item = paramlist[paramname]; this.SelectedValue = (int)paramlist[paramname].Value; } base.SelectedIndexChanged += new EventHandler(MavlinkComboBox_SelectedIndexChanged); }
public void setup(float Min, float Max, float Scale, float Increment, string[] paramname, MAVLink.MAVLinkParamList paramlist, Control enabledisable = null) { this.ValueChanged -= MavlinkNumericUpDown_ValueChanged; // default to first item this.ParamName = paramname[0]; // set a new item is first item doesnt exist foreach (var paramn in paramname) { if (paramlist.ContainsKey(paramn)) { this.ParamName = paramn; break; } } // update local name Name = ParamName; // set min and max of both are equal double mint = Min, maxt = Max; if (ParameterMetaDataRepository.GetParameterRange(ParamName, ref mint, ref maxt, MainV2.comPort.MAV.cs.firmware.ToString())) { Min = (float)mint; Max = (float)maxt; } if (Min == Max) { log.InfoFormat("{0} {1} = {2}", ParamName, Min, Max); } double Inc = 0; if (ParameterMetaDataRepository.GetParameterIncrement(ParamName, ref Inc, MainV2.comPort.MAV.cs.firmware.ToString())) { if (Inc > this.DecimalPlaces) { Increment = (float)Inc; } } _scale = Scale; this.Minimum = (decimal)(Min); this.Maximum = (decimal)(Max); this.Increment = (decimal)(Increment); this.DecimalPlaces = BitConverter.GetBytes(decimal.GetBits((decimal)Increment)[3])[2]; this._control = enabledisable; if (paramlist.ContainsKey(ParamName)) { this.Enabled = true; this.Visible = true; enableControl(true); decimal value = (decimal)((float)paramlist[ParamName] / _scale); int dec = BitConverter.GetBytes(decimal.GetBits((decimal)value)[3])[2]; if (dec > this.DecimalPlaces) { this.DecimalPlaces = dec; } if (value < this.Minimum) { this.Minimum = value; } if (value > this.Maximum) { this.Maximum = value; } base.Value = value; } else { this.Enabled = false; enableControl(false); } this.ValueChanged += new EventHandler(MavlinkNumericUpDown_ValueChanged); }
public void setup(float Min, float Max, float Scale, float Increment, string paramname, MAVLink.MAVLinkParamList paramlist, Control enabledisable = null) { setup(Min, Max, Scale, Increment, new string[] { paramname }, paramlist, enabledisable); }
private void Params_CellContentClick(object sender, DataGridViewCellEventArgs e) { // Only process the Description column if (e.RowIndex == -1 || startup) { return; } if (e.ColumnIndex == 4) { try { string descStr = Params[e.ColumnIndex, e.RowIndex].Value.ToString(); CheckForUrlAndLaunchInBrowser(descStr); } catch { } } if (e.ColumnIndex == Value.Index) { var check = Params[e.ColumnIndex, e.RowIndex].EditedFormattedValue; var name = Params[Command.Index, e.RowIndex].Value.ToString(); var availableBitMask = ParameterMetaDataRepository.GetParameterBitMaskInt(name, MainV2.comPort.MAV.cs.firmware.ToString()); if (availableBitMask.Count > 0) { var mcb = new MavlinkCheckBoxBitMask(); var list = new MAVLink.MAVLinkParamList(); list.Add(new MAVLink.MAVLinkParam(name, double.Parse(check.ToString(), CultureInfo.InvariantCulture), MAVLink.MAV_PARAM_TYPE.INT32)); mcb.setup(name, list); mcb.ValueChanged += (o, s, value) => { Params[e.ColumnIndex, e.RowIndex].Value = value; Params.Invalidate(); mcb.Focus(); }; var frm = mcb.ShowUserControl(); frm.TopMost = true; } } if (e.ColumnIndex == 5) { var check = Params[e.ColumnIndex, e.RowIndex].EditedFormattedValue; var name = Params[Command.Index, e.RowIndex].Value.ToString(); if (check != null && (bool)check) { // add entry Settings.Instance.AppendList("fav_params", name); } else { // remove entry var list = Settings.Instance.GetList("fav_params"); Settings.Instance.SetList("fav_params", list.Where(s => s != name)); } Params.Sort(Command, ListSortDirection.Ascending); } }