| | |
| | | using System.Threading; |
| | | using System.IO; |
| | | using Pub_Class; |
| | | using System.IO.Ports; |
| | | using System.Linq; |
| | | |
| | | namespace WarM |
| | | { |
| | |
| | | grdMain.DataSource = null; |
| | | grdSub.DataSource = null; |
| | | chkHDYFlag.Checked = true; |
| | | |
| | | //è¯»å æå¼ä¸²å£çé
ç½®ä¿¡æ¯ |
| | | readParams(); |
| | | } |
| | | |
| | | //çªä½å è½½ |
| | |
| | | |
| | | private void tc_Click(object sender, EventArgs e) |
| | | { |
| | | this.Close(); |
| | | //éåºæ¶å
³éä¸²å£ |
| | | if (ComDevice != null) |
| | | { |
| | | CloseCom(); |
| | | } |
| | | |
| | | this.Close(); |
| | | } |
| | | |
| | | #endregion |
| | |
| | | |
| | | |
| | | |
| | | #region 读å设å¤ç§°éä¿¡æ¯ |
| | | |
| | | |
| | | |
| | | private static string repeatData = string.Empty; |
| | | private SerialPort ComDevice = null; |
| | | |
| | | private int HGetWeight = 0; |
| | | private string Message = ""; |
| | | |
| | | private int timeIndex = 0; |
| | | |
| | | private string value_COM = ""; //COM |
| | | private string value_BaudRate = "9600"; //æ¯ç¹ç |
| | | private string value_StopBits = "1"; //åæ¢ä½ |
| | | private string value_Parity = "0"; //æ ¡éªä½ |
| | | private string value_DataBits = "8"; //æ°æ®ä½ |
| | | |
| | | #region æå¼ä¸²å£æé®è§¦åäºä»¶ |
| | | private void button_OpenCom_Click(object sender, EventArgs e) |
| | | { |
| | | value_COM = textBox_COM.Text; |
| | | OpenCom(); |
| | | } |
| | | #endregion |
| | | |
| | | #region æå¼ä¸²å£ |
| | | public void OpenCom() |
| | | { |
| | | //åå§åä¸²å£ |
| | | ComDevice = new SerialPort(); |
| | | ComDevice.DataReceived += new SerialDataReceivedEventHandler(Com_DataReceived);//ç»å®äºä»¶ |
| | | string[] PortNames = SerialPort.GetPortNames(); |
| | | |
| | | if (!ComDevice.IsOpen) |
| | | { |
| | | try |
| | | { |
| | | ComDevice.PortName = value_COM; |
| | | ComDevice.BaudRate = int.Parse(value_BaudRate); |
| | | switch (value_Parity) |
| | | { |
| | | case "0": |
| | | ComDevice.Parity = Parity.None; |
| | | break; |
| | | case "1": |
| | | ComDevice.Parity = Parity.Odd; |
| | | break; |
| | | case "2": |
| | | ComDevice.Parity = Parity.Even; |
| | | break; |
| | | case "3": |
| | | ComDevice.Parity = Parity.Mark; |
| | | break; |
| | | case "4": |
| | | ComDevice.Parity = Parity.Space; |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | |
| | | ComDevice.DataBits = int.Parse(value_DataBits); |
| | | switch (value_StopBits) |
| | | { |
| | | case "0": |
| | | ComDevice.StopBits = StopBits.None; |
| | | break; |
| | | case "1": |
| | | ComDevice.StopBits = StopBits.One; |
| | | break; |
| | | case "2": |
| | | ComDevice.StopBits = StopBits.Two; |
| | | break; |
| | | case "1.5": |
| | | ComDevice.StopBits = StopBits.OnePointFive; |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | |
| | | ComDevice.Open(); |
| | | |
| | | MessageBox.Show("䏲壿弿åï¼"); |
| | | |
| | | //ä¿å串å£çé
ç½®ä¿¡æ¯ |
| | | saveParams(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MessageBox.Show("æå¼ä¸²å£å¤±è´¥ï¼" + ex.Message, "é误", MessageBoxButtons.OK, MessageBoxIcon.Error); |
| | | return; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region å
³éä¸²å£ |
| | | public void CloseCom() |
| | | { |
| | | if (!ComDevice.IsOpen) |
| | | { |
| | | MessageBox.Show("串å£å
³é失败ï¼å½å䏲壿ªæå¼ï¼"); |
| | | } |
| | | else |
| | | { |
| | | try |
| | | { |
| | | Thread.Sleep(100); |
| | | ComDevice.Close(); |
| | | |
| | | MessageBox.Show("串å£å
³éæåï¼"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MessageBox.Show(ex.Message, "é误", MessageBoxButtons.OK, MessageBoxIcon.Error); |
| | | return; |
| | | } |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region æ¥æ¶æ°æ® |
| | | private void Com_DataReceived(object sender, SerialDataReceivedEventArgs e) |
| | | { |
| | | if (HGetWeight == 1) |
| | | { |
| | | byte[] ReDatas = new byte[ComDevice.BytesToRead]; |
| | | ComDevice.Read(ReDatas, 0, ReDatas.Length);//è¯»åæ°æ® |
| | | this.AddData(ReDatas);//è¾åºæ°æ® |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region å¤çæ¥æ¶å°çæ°æ® |
| | | public void AddData(byte[] data) |
| | | { |
| | | StringBuilder sb = new StringBuilder(); |
| | | sb.Append(Encoding.ASCII.GetString(data)); |
| | | |
| | | var str = sb.ToString(); |
| | | str = str.Replace("w", "").Replace("n", "").Replace("kg\r\n", ";"); |
| | | |
| | | |
| | | if (str != repeatData) |
| | | { |
| | | repeatData = str; |
| | | string[] strArray = str.Split(';'); |
| | | |
| | | for (int i = 0; i < strArray.Length; i++) |
| | | { |
| | | if (double.TryParse(strArray[i], out double ret))//夿æ¯å¦æ¯æ°å |
| | | { |
| | | |
| | | Message += double.Parse(strArray[i]) + ";"; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region è·åæ°ç»ä¸åºç°é¢çæé«çæ°æ® |
| | | private string getMostStr(string message) |
| | | { |
| | | string[] strArray = message.Split(';'); |
| | | // 使ç¨LINQæ¥è¯¢åºç°æ¬¡æ°æå¤çå
ç´ |
| | | var maxElement = strArray.GroupBy(x => x) |
| | | .OrderByDescending(g => g.Count()) |
| | | .First() |
| | | .Key; |
| | | |
| | | |
| | | return maxElement; |
| | | } |
| | | #endregion |
| | | |
| | | #region 计æ¶å¨è§¦åäºä»¶ï¼ç¨äºè·åæ¶é´é´éå
æ¥æ¶å°çæ°æ® |
| | | private void timer2_Tick(object sender, EventArgs e) |
| | | { |
| | | if (timeIndex == 0) |
| | | { |
| | | timeIndex = 1; |
| | | } |
| | | else |
| | | { |
| | | timer2.Enabled = false; |
| | | |
| | | string str = getMostStr(Message); |
| | | |
| | | txtHWeightQyt.Text = str; |
| | | |
| | | |
| | | Message = ""; |
| | | timeIndex = 0; |
| | | HGetWeight = 0; |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region ç§°éæé®è§¦åäºä»¶ |
| | | private void button_getHWeight_Click(object sender, EventArgs e) |
| | | { |
| | | HGetWeight = 1; |
| | | timer2.Enabled = true; |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | #region ä¿åé
ç½®ä¿¡æ¯ |
| | | //åå
¥é
ç½®åæ° |
| | | private void saveParams() |
| | | { |
| | | //夿æä»¶æ¯å¦åå¨ |
| | | if (!File.Exists(Application.StartupPath + "//Kf_WeightToBarCodeParams.txt")) |
| | | { |
| | | FileStream fs1 = new FileStream(Application.StartupPath + "//Kf_WeightToBarCodeParams.txt", FileMode.Create, FileAccess.Write);//å建åå
¥æä»¶ |
| | | StreamWriter sw = new StreamWriter(fs1); |
| | | sw.WriteLine(value_COM);//å¼å§åå
¥å¼ |
| | | sw.WriteLine(value_BaudRate); |
| | | |
| | | sw.WriteLine(value_StopBits); |
| | | |
| | | sw.WriteLine(value_Parity); |
| | | sw.WriteLine(value_DataBits); |
| | | sw.Close(); |
| | | fs1.Close(); |
| | | } |
| | | else |
| | | { |
| | | FileStream fs1 = new FileStream(Application.StartupPath + "//Kf_WeightToBarCodeParams.txt", FileMode.Create, FileAccess.Write);//å建åå
¥æä»¶ |
| | | StreamWriter sw = new StreamWriter(fs1); |
| | | sw.WriteLine(value_COM);//å¼å§åå
¥å¼ |
| | | sw.WriteLine(value_BaudRate); |
| | | |
| | | sw.WriteLine(value_StopBits); |
| | | |
| | | sw.WriteLine(value_Parity); |
| | | sw.WriteLine(value_DataBits); |
| | | sw.Close(); |
| | | fs1.Close(); |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region 读åé
ç½®ä¿¡æ¯ |
| | | //读åé
ç½®æä»¶ |
| | | private void readParams() |
| | | { |
| | | //å
³éä¸²å£ |
| | | //CloseCom(); |
| | | |
| | | if (File.Exists(Application.StartupPath + "//Kf_WeightToBarCodeParams.txt")) |
| | | { |
| | | //读åæä»¶å¼å¹¶æ¾ç¤ºå°çªä½ |
| | | FileStream fs = new FileStream(Application.StartupPath + "//Kf_WeightToBarCodeParams.txt", FileMode.Open, FileAccess.ReadWrite); |
| | | StreamReader sr = new StreamReader(fs); |
| | | string line = sr.ReadLine(); |
| | | int curLine = 0; |
| | | while (line != null) |
| | | { |
| | | if (++curLine == 1) |
| | | { |
| | | value_COM = line; |
| | | textBox_COM.Text = value_COM; |
| | | } |
| | | else if (curLine == 2) |
| | | { |
| | | value_BaudRate = line; |
| | | } |
| | | else if (curLine == 3) |
| | | { |
| | | value_StopBits = line; |
| | | } |
| | | else if (curLine == 4) |
| | | { |
| | | value_Parity = line; |
| | | } |
| | | else if (curLine == 5) |
| | | { |
| | | value_DataBits = line; |
| | | } |
| | | else |
| | | { |
| | | |
| | | } |
| | | line = sr.ReadLine(); |
| | | } |
| | | sr.Close(); |
| | | fs.Close(); |
| | | } |
| | | } |
| | | #endregion |
| | | #endregion |
| | | } |
| | | } |