示例#1
0
        public List <clsVariableInfo> ParseMapFile()
        {
            string MapFile = CreateMapFile();

            VarList.Clear();

            try
            {
                if (File.Exists(MapFile))
                {
                    bool   SymboltableFound = false;
                    string line;

                    // Read the file and display it line by line.
                    System.IO.StreamReader file = new System.IO.StreamReader(MapFile);

                    while ((line = file.ReadLine()) != null)
                    {
                        if (SymboltableFound)
                        {
                            if (line.Contains(".bss"))
                            {
                                string[] Elements = line.Split(new string[] { " ", "\t" }, StringSplitOptions.RemoveEmptyEntries);

                                if (Elements[1].Trim() == "g" && Elements[2].Trim() == "O" && Elements[3].Trim() == ".bss")
                                {
                                    clsVariableInfo NewVar = new clsVariableInfo();

                                    if (UInt32.TryParse(Elements[0], NumberStyles.HexNumber, CultureInfo.InvariantCulture.NumberFormat, out NewVar.Address) && int.TryParse(Elements[4], NumberStyles.HexNumber, CultureInfo.InvariantCulture.NumberFormat, out NewVar.Size))
                                    {
                                        NewVar.Address = NewVar.Address - 0x800000;
                                        NewVar.VarName = Elements[5];

                                        VarList.Add(NewVar);
                                    }
                                }
                            }
                        }
                        else
                        {
                            if (line.Contains("SYMBOL TABLE:"))
                            {
                                SymboltableFound = true;
                            }
                        }
                    }

                    file.Close();
                }
            }
            catch
            {
            }

            return(VarList);
        }
示例#2
0
        private void listViewVarDebug_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            if (listViewVarDebug.SelectedItems != null && listViewVarDebug.SelectedItems.Count > 0)
            {
                clsVariableInfo  var        = listViewVarDebug.SelectedItems[0].Tag as clsVariableInfo;
                FormViewWatchVar frmViewVar = new FormViewWatchVar();

                frmViewVar.SetItem(var, ReaderArduino);
                frmViewVar.Show();
            }
        }
示例#3
0
        public void SetItem(clsVariableInfo ItemToSet)
        {
            if (ItemToSet != null)
            {
                Item = ItemToSet;

                lblVarName.Text = Item.VarName;
                lblSize.Text    = Item.Size.ToString();

                InitRadio();
            }
        }
示例#4
0
        private void UpdateWatchView()
        {
            lock (ReaderArduino.lockobj)
            {
                foreach (ListViewItem item in listViewVarDebug.Items)
                {
                    clsVariableInfo ele = item.Tag as clsVariableInfo;

                    if (ele != null)
                    {
                        item.SubItems[5].Text = ele.GetStringValue();
                    }
                }
            }
        }
示例#5
0
        private void listViewAllVars_DoubleClick(object sender, EventArgs e)
        {
            if (listViewAllVars.SelectedItems != null && listViewAllVars.SelectedItems.Count > 0)
            {
                clsVariableInfo var       = listViewAllVars.SelectedItems[0].Tag as clsVariableInfo;
                FormAddVarView  frmAddVAr = new FormAddVarView();

                frmAddVAr.SetItem(var);
                frmAddVAr.ShowDialog();

                if (frmAddVAr.IsConfirmed)
                {
                    AddListViewWatchVar(var);
                }
            }
        }
示例#6
0
        void UpdateVarDebug()
        {
            List <clsVariableInfo> VarList = new List <clsVariableInfo>();

            foreach (ListViewItem ele in listViewVarDebug.Items)
            {
                clsVariableInfo var = ele.Tag as clsVariableInfo;

                if (var != null)
                {
                    VarList.Add(var);
                }
            }

            ReaderArduino.SetVarList(VarList);
        }
        public void SendMessageForceVar(clsVariableInfo var, byte[] data)
        {
            int counter = 0;

            byte[] buffer = new byte[data.Length + 1 + 2];

            buffer[counter++] = (byte)('F');

            byte[] bufferaddress = BitConverter.GetBytes((UInt16)var.Address);
            buffer[counter++] = bufferaddress[0];
            buffer[counter++] = bufferaddress[1];

            for (int i = 0; i < data.Length; i++)
            {
                buffer[counter++] = data[i];
            }

            WriteSerial(buffer);
        }
示例#8
0
        void AddListViewWatchVar(clsVariableInfo VarToAdd)
        {
            if (listViewVarDebug.Items.Count < 5)
            {
                ListViewItem Item = new ListViewItem((listViewVarDebug.Items.Count + 1).ToString());

                Item.Tag = VarToAdd;
                Item.SubItems.Add(VarToAdd.VarName);
                Item.SubItems.Add(VarToAdd.Size.ToString());
                Item.SubItems.Add("0x" + VarToAdd.Address.ToString("X"));
                Item.SubItems.Add(VarToAdd.TypeName);
                Item.SubItems.Add("");

                listViewVarDebug.Items.Add(Item);

                UpdateVarDebug();
                CheckEnableButtonRemove();
            }
            else
            {
                MessageBox.Show("Max 5 variables");
            }
        }
        public void SetItem(clsVariableInfo ItemToSet, clsArduinoReader ReaderArduinoToSet)
        {
            ReaderArduino = ReaderArduinoToSet;

            if (ItemToSet != null)
            {
                Item = ItemToSet;

                lblVarName.Text = Item.VarName;
                lblSize.Text    = Item.Size.ToString();

                txtForceValue.Text = Item.GetStringValue();

                AllowGraph = !(Item.IsArray || Item.IsString);

                if (AllowGraph)
                {
                    InitGraph();
                }


                timer1.Start();
            }
        }