コード例 #1
0
        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;
                }
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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;
            }
        }
コード例 #4
0
 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);
 }
コード例 #5
0
ファイル: MavlinkCheckBox.cs プロジェクト: AUVL/oldAUV-GCS
 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;
         }
     }
 }
コード例 #6
0
ファイル: parampck.cs プロジェクト: ducat595/MissionPlanner
        /*
         * 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);
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        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 { }
        }
コード例 #9
0
        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);
        }
コード例 #10
0
        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);
        }
コード例 #11
0
        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);
        }
コード例 #12
0
        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);
        }
コード例 #13
0
 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);
 }
コード例 #14
0
        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);
            }
        }