using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using System.IO.Ports; using System.Configuration; using System.Data.SqlClient; using System.Data; using System.IO; using System.Runtime.Serialization.Formatters.Binary; namespace WpfApplication19 { /// /// Interaction logic for Settings.xaml /// public partial class Settings : Window { SerialPort comport = new SerialPort(); MainWindow _win; int _currentMachine; public Settings() { InitializeComponent(); } private void init(object sender, RoutedEventArgs e) { _win = (MainWindow)Application.Current.MainWindow; //Console.WriteLine("hello"); ComboBoxItem cb = new ComboBoxItem(); cb.Tag = "None"; cb.Content = "Select COM Port"; //COMPorts.Items.Add(cb); Dictionary friendlyPorts = Utils.BuildPortNameHash(SerialPort.GetPortNames()); foreach (KeyValuePair kvp in friendlyPorts) { //Console.WriteLine("Port '{0}' is better known as '{1}'", kvp.Key, kvp.Value); cb = new ComboBoxItem(); cb.Tag = kvp.Key; cb.Content = "Port " + kvp.Key + " " + kvp.Value; COMPorts.Items.Add(cb); } foreach (ComboBoxItem item in COMPorts.Items) { if (item.Tag.ToString() == Utils.getSetting("machinePort")) { COMPorts.SelectedItem = item; //MessageBox.Show("help"); } } //configDbCs.Text = Utils.getSetting("configDbCS"); //masterDbCs.Text = Utils.getSetting("masterDbCS"); //transDbCs.Text = Utils.getSetting("tranDbCS"); productionDbCS.Text = Utils.getSetting("productionDbCS"); //webServerURL.Text = Utils.getSetting("webServerURL"); /* var baudRateValue = Utils.getSetting("baudRate"); var dataBitsValue = Utils.getSetting("dataBits"); var stopBitsValue = Utils.getSetting("stopBits"); var parityValue = Utils.getSetting("parity");*/ _currentMachine = Convert.ToInt32(Utils.getSetting("currentMachine")); /* setSelectBox(baudRateValue, baudRate); setSelectBox(dataBitsValue, dataBits); setSelectBox(stopBitsValue, stopBits); setSelectBox(parityValue, parity); */ //Console.ReadLine(); initMachineList(); } void initMachineList() { SqlDataReader reader = Utils.Query(_win.proConn, "select * from machines"); while (reader.Read()) { var id = Convert.ToInt32(reader["id"]); var cbi = new ComboBoxItem() { Tag = id, Content = reader["name"].ToString() }; MachineCB.Items.Add(cbi); if (id == _currentMachine) { MachineCB.SelectedItem = cbi; } } reader.Close(); } private static void setSelectBox(string v, ComboBox cb) { foreach (ComboBoxItem item in cb.Items) { if (item.Content.ToString() == v) { cb.SelectedItem = item; //MessageBox.Show("help"); } } } private void save_Click(object sender, RoutedEventArgs e) { ComboBoxItem cb = (ComboBoxItem)COMPorts.SelectedItem; if(cb != null){ //debugText.Text = cb.Tag.ToString(); Utils.UpdateSetting("machinePort",cb.Tag.ToString()); } //Utils.UpdateSetting("configDbCS", configDbCs.Text); //Utils.UpdateSetting("masterDbCS", masterDbCs.Text); //Utils.UpdateSetting("tranDbCS", transDbCs.Text); Utils.UpdateSetting("productionDbCS", productionDbCS.Text); //Utils.UpdateSetting("baudRate", baudRate.Text); //Utils.UpdateSetting("dataBits", dataBits.Text); //Utils.UpdateSetting("stopBits", stopBits.Text); //Utils.UpdateSetting("parity", parity.Text); var cbi = MachineCB.SelectedItem as ComboBoxItem; Utils.UpdateSetting("currentMachine", cbi.Tag.ToString()); //Utils.UpdateSetting("webServerURL", webServerURL.Text); this.Close(); } private void testConnection_Click(object sender, RoutedEventArgs e) { connectDB(); } private void connectDB() { } private void testConfig_Click(object sender, RoutedEventArgs e) { //testConnection(configDbCs.Text); } private void testConnection(string cs) { using (SqlConnection sqlConn = new SqlConnection()) { try { sqlConn.ConnectionString = cs; sqlConn.Open(); MessageBox.Show("Connectoin Success!!"); } catch (SqlException se) { MessageBox.Show(se.Message); } } } private void portTest_Click(object sender, RoutedEventArgs e) { bool error = false; //comport.BaudRate = int.Parse(baudRate.Text); //comport.DataBits = int.Parse(dataBits.Text); //comport.StopBits = (StopBits)Enum.Parse(typeof(StopBits), stopBits.Text); //comport.Parity; ComboBoxItem cbi = (ComboBoxItem)COMPorts.SelectedItem; comport.PortName = cbi.Tag.ToString(); Console.WriteLine("br : {0}", comport.BaudRate); Console.WriteLine("dbit: {0}", comport.DataBits); Console.WriteLine("stb: {0}", comport.StopBits); Console.WriteLine("par: {0}", comport.Parity); /* comport.BaudRate = int.Parse(baudRate.Text); comport.DataBits = int.Parse(dataBits.Text); comport.StopBits = (StopBits)Enum.Parse(typeof(StopBits), stopBits.Text); comport.Parity = (Parity)Enum.Parse(typeof(Parity), parity.Text); */ var w = (MainWindow)Application.Current.MainWindow; if((w.comport.PortName == comport.PortName) && w.comport.IsOpen == true){ MessageBox.Show("Open Port Success"); return; } try { comport.Open(); MessageBox.Show("Open Port Success"); comport.Close(); } catch (UnauthorizedAccessException) { error = true; } catch (IOException) { error = true; } catch (ArgumentException) { error = true; } if (error) { MessageBox.Show("Open Port Fail"); } } private void testPro_Click(object sender, RoutedEventArgs e) { testConnection(productionDbCS.Text); } private void cancelBtn_Click(object sender, RoutedEventArgs e) { this.Close(); } } }