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); } } }
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; }
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); } } }
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 });; } }