Ejemplo n.º 1
0
        private void decodeMessagesBackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            List <string[]> decodedFramesList = new List <string[]>();

            // Get the BackgroundWorker that raised this event.
            BackgroundWorker worker = sender as BackgroundWorker;

            // Assign the result of the computation
            // to the Result property of the DoWorkEventArgs
            // object. This is will be available to the
            // RunWorkerCompleted eventhandler.
            int i = 0;

            toolStripProgressBar.Maximum = filesToRead.GetLength(0);

            foreach (String FileName in filesToRead)
            {
                byte[]       fileBytes   = File.ReadAllBytes(@FileName);
                ListOfFrames decodedList = new ListOfFrames();
                decodedFramesList = decodedList.DecodeFileAsList(fileBytes);


                int percents = (i * 100) / filesToRead.GetLength(0);
                //decodeMessagesBackgroundWorker.ReportProgress(percents);
                decodeMessagesBackgroundWorker.ReportProgress(percents, i++);


                foreach (var row in decodedFramesList)
                {
                    if (decodeMessagesBackgroundWorker.CancellationPending == true)
                    {
                        e.Cancel = true;
                        return; // abort work, if it's cancelled
                    }
                    table.Rows.Add(row);
                }
            }
        }
Ejemplo n.º 2
0
        private void showData(string[] filesToRead)
        {
            //tabControl.SelectTab(tabPageDecEventTable);
            //List<string[]> decodedFramesList = new List<string[]>();

            ////https://msdn.microsoft.com/en-us/library/system.windows.forms.bindingsource.filter(v=vs.110).aspx
            ////https://msdn.microsoft.com/en-us/library/aa480727.aspx
            ////https://docs.microsoft.com/en-us/dotnet/framework/winforms/controls/bind-data-to-the-datagrid-using-the-designer

            //DataTable table = new DataTable();
            //table.Columns.Add(resmgr.GetString("labelTime", ci), typeof(string));
            //table.Columns.Add(resmgr.GetString("labelLxNumber", ci), typeof(string));
            //table.Columns.Add(resmgr.GetString("labelChannel", ci), typeof(string));
            //table.Columns.Add(resmgr.GetString("labelNumber", ci), typeof(string));
            //table.Columns.Add(resmgr.GetString("labelName", ci), typeof(string));
            //table.Columns.Add(resmgr.GetString("labelStatus", ci), typeof(string));
            //table.Columns.Add(resmgr.GetString("labelCategory", ci), typeof(string));
            //table.Columns.Add(resmgr.GetString("labelGroup", ci), typeof(string));
            ////binding1 = new BindingSource(DataTable table);

            //foreach (String FileName in filesToRead)
            //{
            //    byte[] fileBytes = File.ReadAllBytes(@FileName);
            //    ListOfFrames decodedList = new ListOfFrames();
            //    decodedFramesList = decodedList.DecodeFileAsList(fileBytes);

            //    foreach (var row in decodedFramesList)
            //    {
            //        table.Rows.Add(row);
            //    }

            //    dataGridViewEventsAndAlarms.DataSource = table;
            //}

            //DataGridViewColumn column = dataGridViewEventsAndAlarms.Columns[0];
            //column.Width = 130;
            ////column.
            //column = dataGridViewEventsAndAlarms.Columns[1];
            //column.Width = 60;
            ////column.HeaderCell = new DataGridViewAutoFilterColumnHeaderCell(column);
            //column = dataGridViewEventsAndAlarms.Columns[2];
            //column.Width = 60;
            //column = dataGridViewEventsAndAlarms.Columns[3];
            //column.Width = 110;
            //column = dataGridViewEventsAndAlarms.Columns[4];
            //column.Width = 200;
            //column = dataGridViewEventsAndAlarms.Columns[7];
            //column.Width = 70;
            ////dataGridViewEventsAndAlarms.Sort(dataGridViewEventsAndAlarms.Columns[1], ListSortDirection.Ascending); to nic nie daje

            //// Do tego miejsca było robione po staremu



            // od tego miejsca po nowemu
            // https://msdn.microsoft.com/en-us/library/Aa480727.aspx

            tabControl.SelectTab(tabPageDecEventTable);
            List <string[]> decodedFramesList = new List <string[]>();

            //DataTable table = new DataTable();
            table = null;
            table = new DataTable();
            //table.Clear();
            table.Columns.Add(resmgr.GetString("labelTime", ci), typeof(string));
            table.Columns.Add(resmgr.GetString("labelLxNumber", ci), typeof(string));
            table.Columns.Add(resmgr.GetString("labelChannel", ci), typeof(string));
            table.Columns.Add(resmgr.GetString("labelNumber", ci), typeof(string));
            table.Columns.Add(resmgr.GetString("labelName", ci), typeof(string));
            table.Columns.Add(resmgr.GetString("labelStatus", ci), typeof(string));
            table.Columns.Add(resmgr.GetString("labelCategory", ci), typeof(string));
            table.Columns.Add(resmgr.GetString("labelGroup", ci), typeof(string));

            foreach (String FileName in filesToRead)
            {
                byte[]       fileBytes   = File.ReadAllBytes(@FileName);
                ListOfFrames decodedList = new ListOfFrames();
                decodedFramesList = decodedList.DecodeFileAsList(fileBytes);

                foreach (var row in decodedFramesList)
                {
                    table.Rows.Add(row);
                }
            }

            //dataGridViewEventsAndAlarms.DataSource = table;
            updateDataGridViewEventsAndAlarms(table);

            //https://stackoverflow.com/questions/199642/how-to-insert-empty-field-in-combobox-bound-to-datatable

            //List<KeyValuePair<string, Guid>> list = new List<KeyValuePair<string, Guid>>(table.Rows.Cast<DataRow>().Select(row => new KeyValuePair<string, Guid>(row["Name"].ToString(), (Guid)row["Guid"])));
            List <string> listLxNum = new List <string>(table.Rows.Cast <DataRow>().Select(row => row[resmgr.GetString("labelLxNumber", ci)].ToString()));

            //list.Insert(0, new KeyValuePair<string, Guid>(string.Empty, Guid.Empty));
            listLxNum.Insert(0, "*");
            listLxNum = listLxNum.Distinct().ToList();
            comboBoxLxNumber.DataSource = listLxNum;
            //comboBoxLxNumber.ValueMember = "Value";
            //comboBoxLxNumber.DisplayMember = "Key";

            List <string> listLxChannel = new List <string>(table.Rows.Cast <DataRow>().Select(row => row[resmgr.GetString("labelChannel", ci)].ToString()));

            listLxChannel.Insert(0, "*");
            listLxChannel = listLxChannel.Distinct().ToList();
            comboBoxLxChannel.DataSource = listLxChannel;

            List <string> listLxEvAl = new List <string>();

            listLxEvAl.Insert(0, "*");
            listLxEvAl.Insert(1, resmgr.GetString("labelAlert", ci));
            listLxEvAl.Insert(2, resmgr.GetString("labelEvent", ci));
            comboBoxEvAl.DataSource = listLxEvAl;

            List <string> listDecodedMessages = new List <string>(table.Rows.Cast <DataRow>().Select(row => row[resmgr.GetString("labelName", ci)].ToString()));

            listDecodedMessages = listDecodedMessages.Distinct().ToList();
            listDecodedMessages.Sort();
            listDecodedMessages.Insert(0, "*");
            comboBoxMessageText.DataSource = listDecodedMessages;

            //List<string> listStatus = new List<string>(table.Rows.Cast<DataRow>().Select(row => row[resmgr.GetString("labelStatus", ci)].ToString()));
            List <string> listStatus = new List <string>();

            listStatus.Insert(0, "*");
            listStatus.Insert(1, " ");
            listStatus.Insert(2, resmgr.GetString("labelActive", ci));
            listStatus.Insert(3, resmgr.GetString("labelNotActive", ci));
            comboBoxStatus.DataSource = listStatus;

            List <string> listCategory = new List <string>(table.Rows.Cast <DataRow>().Select(row => row[resmgr.GetString("labelCategory", ci)].ToString()));

            listCategory.Insert(0, "*");
            listCategory = listCategory.Distinct().ToList();
            comboBoxCategory.DataSource = listCategory;

            List <string> listGroup = new List <string>(table.Rows.Cast <DataRow>().Select(row => row[resmgr.GetString("labelGroup", ci)].ToString()));

            listGroup.Insert(0, "*");
            listGroup = listGroup.Distinct().ToList();
            comboBoxGroup.DataSource = listGroup;
        }
Ejemplo n.º 3
0
        private void labelReadToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var openFileDialog1 = new OpenFileDialog();
            var iResult         = DialogResult;

            openFileDialog1.Title  = "Podaj plik czarnej skrzynki";
            openFileDialog1.Filter = "BIN Files (*.bin) | *.bin";

            openFileDialog1.CheckFileExists = true;
            iResult = openFileDialog1.ShowDialog();

            if ((iResult != System.Windows.Forms.DialogResult.Cancel) && (openFileDialog1.FileName.Length != 0))
            {
                sConStr = openFileDialog1.FileName;
                byte[] fileBytes = File.ReadAllBytes(@sConStr);


                if (tabControl.SelectedTab == tabControl.TabPages["tabPageBin"])
                {
                    richTextBoxBin.Clear();

                    ////To działa - jest średnio szybkie
                    //if (null == binHexBackgroundWorker)
                    //{
                    //    binHexBackgroundWorker = new BackgroundWorker();
                    //    binHexBackgroundWorker.DoWork += new DoWorkEventHandler(binHexBackgroundWorker_DoWork);
                    //    binHexBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(binHexBackgroundWorker_RunWorkerCompleted);
                    //    binHexBackgroundWorker.ProgressChanged += new ProgressChangedEventHandler(binHexBackgroundWorker_ProgressChanged);
                    //    binHexBackgroundWorker.WorkerReportsProgress = true;
                    //    binHexBackgroundWorker.WorkerSupportsCancellation = true;
                    //}
                    //binHexBackgroundWorker.RunWorkerAsync();


                    //to jest szybkie ale wykorzystuje listę
                    string bufor = "";
                    int    hexNumber = 0, lineNumber = 0;

                    itemsList.Clear();
                    foreach (byte b in fileBytes)
                    {
                        if (hexNumber == 0)
                        {
                            bufor += lineNumber.ToString() + ": ";
                        }
                        bufor += " ";
                        if (b < 16)
                        {
                            bufor += "0";
                        }
                        bufor += b.ToString("x").ToUpperInvariant();
                        hexNumber++;
                        if (hexNumber > 16)
                        {
                            itemsList.Add(bufor);
                            bufor       = "";
                            hexNumber   = 0;
                            lineNumber += 16;
                        }
                    }

                    string calosc = "";
                    ////for (int i = itemsList.Count - 1; i >= 0; i--)
                    for (int i = 0; i < itemsList.Count; i++)
                    {
                        calosc = calosc + itemsList[i] + '\n';
                    }
                    richTextBoxBin.Text = calosc;
                    // koniec fragmentu z listą
                }
                else if (tabControl.SelectedTab == tabControl.TabPages["tabPageDecEvent"])
                {
                    ListOfFrames decodedList = new ListOfFrames();
                    decodedFramesList = decodedList.DecodeFileAsList(fileBytes);

                    richTextBoxZdekodowane.Clear();

                    string calosc = "";
                    ////for (int i = itemsList.Count - 1; i >= 0; i--)
                    for (int i = 0; i < decodedFramesList.Count; i++)
                    {
                        calosc = calosc + decodedFramesList[i] + '\n';
                    }
                    richTextBoxZdekodowane.Text = calosc;

                    //if (null == decodeMessagesBackgroundWorker)
                    //{
                    //decodeMessagesBackgroundWorker = new BackgroundWorker();
                    //decodeMessagesBackgroundWorker.DoWork += new DoWorkEventHandler(decodeMessagesBackgroundWorker_DoWork);
                    //decodeMessagesBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(decodeMessagesBackgroundWorker_RunWorkerCompleted);
                    //decodeMessagesBackgroundWorker.ProgressChanged += new ProgressChangedEventHandler(decodeMessagesBackgroundWorker_ProgressChanged);
                    //decodeMessagesBackgroundWorker.WorkerReportsProgress = true;
                    //decodeMessagesBackgroundWorker.WorkerSupportsCancellation = true;
                    //}
                    //decodeMessagesBackgroundWorker.RunWorkerAsync();
                }
                else
                {
                    DataTable table = new DataTable();
                    table.Columns.Add(resmgr.GetString("labelTime", ci), typeof(string));
                    table.Columns.Add(resmgr.GetString("labelLxNumber", ci), typeof(string));
                    table.Columns.Add(resmgr.GetString("labelChannel", ci), typeof(string));
                    table.Columns.Add(resmgr.GetString("labelNumber", ci), typeof(string));
                    table.Columns.Add(resmgr.GetString("labelName", ci), typeof(string));
                    table.Columns.Add(resmgr.GetString("labelStatus", ci), typeof(string));
                    table.Columns.Add(resmgr.GetString("labelCategory", ci), typeof(string));
                    table.Columns.Add(resmgr.GetString("labelGroup", ci), typeof(string));

                    ListOfFrames decodedList = new ListOfFrames();
                    decodedFramesList = decodedList.DecodeFileAsList(fileBytes);

                    foreach (var row in decodedFramesList)
                    {
                        table.Rows.Add(row);
                    }

                    dataGridViewEventsAndAlarms.DataSource = table;
                }
            }
        }