private void MergeBtn_Click(object sender, RoutedEventArgs e)
        {
            SaveFileDialog saveMergedDBC = new SaveFileDialog();

            saveMergedDBC.FileName   = "Merged_DBC_File";
            saveMergedDBC.DefaultExt = ".dbc";
            saveMergedDBC.Filter     = "CAN db files (.dbc)|*.dbc";

            if (saveMergedDBC.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                if (dbcParserA == null || dbcParserB == null)
                {
                    return;
                }

                try
                {
                    DBCWriter dbcWriter = new DBCWriter(saveMergedDBC.FileName);
                    ObservableCollection <DbcMessage> mergedMsg = MergeDBC(dbcParserA, dbcParserB);
                    dbcWriter.writeDBC(dbcParserA.DbVersion, dbcParserA.DbCustomer, dbcParserA.DbName + dbcParserB.DbName, String.IsNullOrEmpty(dbcParserA.DbBaudrate) ? "500000" : dbcParserA.DbBaudrate, mergedMsg);
                    dbcWriter.close();
                    System.Windows.Forms.MessageBox.Show("DBC File Merged successfully!", "OK", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                catch (Exception exp)
                {
                    System.Windows.Forms.MessageBox.Show("Cannot merge dbc file\n" + exp.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
Ejemplo n.º 2
0
        private void btn_dbc_open_click(object sender, RoutedEventArgs e)
        {
            string filename = Util.OpenFile("dbc文件|*.dbc|所有文件|*.*");

            Console.WriteLine(filename);

            dataGrid2.Columns.Clear();

            DataTable dt = DBCWriter.GetData(filename);

            int i = 0;

            foreach (DataColumn c in dt.Columns)
            {
                DataGridTextColumn col = new DataGridTextColumn();
                col.IsReadOnly = true;
                col.Header     = c.ColumnName;
                col.Binding    = new Binding(c.ColumnName);

                this.dataGrid2.Columns.Insert(i++, col);
            }



            dataGrid2.ItemsSource = dt.DefaultView;
        }
Ejemplo n.º 3
0
        private void btnSaveDBC_Click(object sender, RoutedEventArgs e)
        {
            if (dbcParser == null)
            {
                System.Windows.Forms.MessageBox.Show("Please load DBC before save!\n", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            SaveFileDialog saveDBC = new SaveFileDialog();

            saveDBC.FileName   = "DBC File";
            saveDBC.DefaultExt = ".dbc";
            saveDBC.Filter     = "CAN db files (.dbc)|*.dbc";

            if (saveDBC.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                try
                {
                    DBCWriter dbcWriter = new DBCWriter(saveDBC.FileName);
                    dbcWriter.writeDBC(dbcParser.DbVersion, dbcParser.DbCustomer, dbcParser.DbName, String.IsNullOrEmpty(dbcParser.DbBaudrate) ? "500000" : dbcParser.DbBaudrate, dbcParser.ExtGetAllMessages());
                    dbcWriter.close();
                    System.Windows.Forms.MessageBox.Show("DBC File Saved successfully!", "OK", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                catch (Exception exp)
                {
                    System.Windows.Forms.MessageBox.Show("Cannot save dbc file\n" + exp.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
Ejemplo n.º 4
0
        void doGenerateDBC(object obj)
        {
            EventHandler mi   = new EventHandler(invokeGenerate);
            EventHandler done = new EventHandler(invokeDone);

            try
            {
                string itemSQL = "SELECT entry,class,subclass,SoundOverrideSubclass,material,displayid,InventoryType,sheath FROM item_template ORDER BY entry ASC;";
                this.Dispatcher.Invoke(mi, new object[] { "查询item信息...", null });
                DataTable dt = this.manager.Db.query(itemSQL);
                this.Dispatcher.Invoke(mi, new object[] { "整理数据结构...", null });
                DataTable dt_item = new DataTable();
                dt_item.Columns.Add(string.Empty, typeof(uint));
                dt_item.Columns.Add(string.Empty, typeof(uint));
                dt_item.Columns.Add(string.Empty, typeof(uint));
                dt_item.Columns.Add(string.Empty, typeof(int));
                dt_item.Columns.Add(string.Empty, typeof(int));
                dt_item.Columns.Add(string.Empty, typeof(uint));
                dt_item.Columns.Add(string.Empty, typeof(uint));
                dt_item.Columns.Add(string.Empty, typeof(uint));
                foreach (DataRow dr in dt.Rows)
                {
                    dt_item.Rows.Add(dr.ItemArray);
                }
                dt.Dispose();
                dt = null;

                string dbcfilename = obj.ToString();
                this.Dispatcher.Invoke(mi, new object[] { "生成DBC文件...", null });

                DBCWriter.SaveData(dbcfilename, dt_item);
                this.Dispatcher.Invoke(mi, new object[] { "生成item.dbc成功。", null });
            }
            catch (ThreadAbortException err)
            {
                this.Dispatcher.Invoke(mi, new object[] { "取消生成.", null });
            }
            catch (Exception err)
            {
                this.Dispatcher.Invoke(mi, new object[] { "生成DBC出错。" + err.Message, null });
            }
            finally
            {
                this.Dispatcher.Invoke(done, new object[] { "", null });;
            }
        }