| | |
| | | using System.IO.Ports; |
| | | using System.Linq; |
| | | |
| | | using System.IO.Ports; |
| | | using System.Linq; |
| | | |
| | | namespace WarM |
| | | { |
| | | public partial class Kf_WeighToBarCode : Form |
| | |
| | | public DAL.ClsGy_BarCodeBill_Ctl oBar = new DAL.ClsGy_BarCodeBill_Ctl(); |
| | | public DBUtility.ClsPub.Enum_BillStatus BillStatus; |
| | | SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); |
| | | |
| | | |
| | | private static string repeatData = string.Empty; |
| | | private SerialPort ComDevice = null; |
| | | private int HGetWeight = 0; |
| | | private string Message = ""; |
| | | private int timeIndex = 0; |
| | | |
| | | #region //åºå®ä»£ç |
| | | |
| | |
| | | DBUtility.Xt_BaseBillFun.DefaultGridView(grdMain, this.Name); |
| | | DBUtility.Xt_BaseBillFun.DefaultGridView(grdSub, this.Name + "grdSub"); |
| | | } |
| | | |
| | | |
| | | //æå¼ä¸²å£ |
| | | private void button3_Click(object sender, EventArgs e) |
| | | { |
| | | OpenCom(); |
| | | } |
| | | public void OpenCom() |
| | | { |
| | | //åå§åä¸²å£ |
| | | ComDevice = new SerialPort(); |
| | | ComDevice.DataReceived += new SerialDataReceivedEventHandler(Com_DataReceived);//ç»å®äºä»¶ |
| | | string[] PortNames = SerialPort.GetPortNames(); |
| | | |
| | | |
| | | if (!ComDevice.IsOpen) |
| | | { |
| | | |
| | | try |
| | | { |
| | | ComDevice.PortName = txtPortName.Text; |
| | | ComDevice.BaudRate = int.Parse(txtBaudRate.Text); |
| | | switch (cmbParity.SelectedItem.ToString()) |
| | | { |
| | | 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(txtDataBits.Text); |
| | | switch (cmbStopBits.SelectedItem.ToString()) |
| | | { |
| | | 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(); |
| | | |
| | | //lblComStatus.Text = "串å£ç¶æï¼å¼å¯"; |
| | | timer3.Enabled = true; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MessageBox.Show("æå¼ä¸²å£å¤±è´¥ï¼" + ex.Message, "é误", MessageBoxButtons.OK, MessageBoxIcon.Error); |
| | | return; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | |
| | | } |
| | | } |
| | | |
| | | //å
³éä¸²å£ |
| | | private void button2_Click(object sender, EventArgs e) |
| | | { |
| | | CloseCom(); |
| | | } |
| | | public void CloseCom() |
| | | { |
| | | if (!ComDevice.IsOpen) |
| | | { |
| | | |
| | | } |
| | | else |
| | | { |
| | | try |
| | | { |
| | | timer3.Enabled = false; |
| | | Thread.Sleep(100); |
| | | ComDevice.Close(); |
| | | // valueCounts = new Dictionary<string, int>(); |
| | | // lblComStatus.Text = "串å£ç¶æï¼å
³é"; |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MessageBox.Show(ex.Message, "é误", MessageBoxButtons.OK, MessageBoxIcon.Error); |
| | | return; |
| | | } |
| | | } |
| | | } |
| | | |
| | | //åéæ°æ® |
| | | public bool SendData(byte[] data) |
| | | { |
| | | if (ComDevice.IsOpen) |
| | | { |
| | | try |
| | | { |
| | | ComDevice.Write(data, 0, data.Length);//åéæ°æ® |
| | | return true; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MessageBox.Show(ex.Message, "é误", MessageBoxButtons.OK, MessageBoxIcon.Error); |
| | | } |
| | | finally |
| | | { |
| | | |
| | | } |
| | | } |
| | | else |
| | | { |
| | | MessageBox.Show("䏲壿ªæå¼", "é误", MessageBoxButtons.OK, MessageBoxIcon.Error); |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | //æ¥æ¶æ°æ® |
| | | private void Com_DataReceived(object sender, SerialDataReceivedEventArgs e) |
| | | { |
| | | //if (!ComDevice.IsOpen) |
| | | // { |
| | | // return; |
| | | // } |
| | | // Thread.Sleep(100); |
| | | if (HGetWeight == 1) |
| | | { |
| | | byte[] ReDatas = new byte[ComDevice.BytesToRead]; |
| | | ComDevice.Read(ReDatas, 0, ReDatas.Length);//è¯»åæ°æ® |
| | | this.AddData(ReDatas);//è¾åºæ°æ® |
| | | } |
| | | } |
| | | |
| | | //å¤çæ¥æ¶å°çæ°æ® |
| | | public void AddData(byte[] data) |
| | | { |
| | | //Thread.Sleep(100); |
| | | 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]) + ";"; |
| | | |
| | | //UpdateLabel(ret.ToString()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | //è·åæ°ç»ä¸åºç°é¢çæé«çæ°æ® |
| | | private string getMostStr(string message) |
| | | { |
| | | string[] strArray = message.Split(';'); |
| | | // 使ç¨LINQæ¥è¯¢åºç°æ¬¡æ°æå¤çå
ç´ |
| | | var maxElement = strArray.GroupBy(x => x) |
| | | .OrderByDescending(g => g.Count()) |
| | | .First() |
| | | .Key; |
| | | |
| | | |
| | | return maxElement; |
| | | } |
| | | |
| | | //便®çº¿ç¨ï¼å°æ°æ®åå
¥çé¢ç»ä»¶ |
| | | private void UpdateLabel(string text) |
| | | { |
| | | if (txtHWeightQyt.InvokeRequired) |
| | | { |
| | | // å¨UI线ç¨ä¸è°ç¨ UpdateLabel |
| | | txtHWeightQyt.Invoke(new Action<string>(UpdateLabel), text); |
| | | } |
| | | else |
| | | { |
| | | // ç´æ¥æ´æ° txtHWeightQyt.Text |
| | | txtHWeightQyt.Text = text; |
| | | } |
| | | } |
| | | |
| | | //è·åæ°æ®æé®ï¼å¯å¨è®¡æ¶å¨ |
| | | private void button4_Click(object sender, EventArgs e) |
| | | { |
| | | HGetWeight = 1; |
| | | timer2.Enabled = true; |
| | | } |
| | | |
| | | //计æ¶å¨äºä»¶ |
| | | private void timer2_Tick(object sender, EventArgs e) |
| | | { |
| | | |
| | | } |
| | | |
| | | |
| | | #endregion |
| | | |
| | |
| | | this.txtHRemark.Tag = oBadReason.oModel.HItemID.ToString(); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | #endregion |
| | | |