示例#1
0
文件: SerialHandle.cs 项目: Gz1d/Gz
        /// <summary>
        /// Serial数据接收
        /// </summary>
        /// <param name="device"></param>
        /// <param name="dataB"></param>
        /// <param name="dataS"></param>
        public void SerialReceive(Common.SerialDevice device, byte[] dataB, string dataS)
        {
            Config.SerialItem item = this.GetConfig(device);
            if (item.IsHex)
            {
                item.BuffReceive = Common.ByteArrayToHexString(dataB);
            }
            else
            {
                item.BuffReceive = dataS;
            }
            switch (item.SerialDevice)
            {
            default:
                item.Value = item.BuffReceive;
                item.Reset.Set();
                business kylin = SystemHandle.Instance.GetMachineKylin(item.MachineID);
                if (kylin != null)
                {
                    // kylin.SerialReceive(device, dataS, dataB);
                    this.Async_SerialReceive(kylin, device, dataB, dataS);
                }
                break;

            case Common.SerialDevice.TEST:
                break;
            }
        }
示例#2
0
文件: SerialHandle.cs 项目: Gz1d/Gz
 /// <summary>
 /// Serial数据接收
 /// </summary>
 /// <param name="device"></param>
 /// <param name="dataB"></param>
 /// <param name="dataS"></param>
 public void SerialReceive(Config.SerialItem device, byte[] dataB, string dataS)
 {
     if (device.IsHex)
     {
         device.BuffReceive = Common.ByteArrayToHexString(dataB);
     }
     else
     {
         device.BuffReceive = dataS;
     }
 }
示例#3
0
文件: frmSerial.cs 项目: Gz1d/Gz
        private void dgvSerial_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                if (e.RowIndex >= 0)
                {
                    //当前串口
                    Config.SerialItem item = (Config.SerialItem) this.dgvSerial.CurrentRow.DataBoundItem;

                    switch (dgvSerial.Columns[e.ColumnIndex].Name)
                    {
                    case "btnDelete":       //删除
                        if (MessageBox.Show("是否删除该项设备?    ", "删除提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
                        {
                            return;
                        }
                        Config.ConfigManager.Instance.ConfigSerial.SerialItems.Remove(item);
                        break;

                    case "btnSend":       //发送
                        if (item.IsHex)
                        {
                            Logic.SearialHandle.Instance.SerialSend(item.SerialDevice, Common.HexStringToByteArray(item.BuffSend));
                        }
                        else
                        {
                            Logic.SearialHandle.Instance.SerialSend(item.SerialDevice, item.BuffSend);
                        }
                        break;

                    case "btnReceive":       //读取
                        item.BuffReceive = Logic.SearialHandle.Instance.SerialReadLine(item.SerialDevice);
                        this.dgvSerial.UpdateCellValue(e.ColumnIndex, e.RowIndex);
                        break;

                    default:
                        break;
                    }
                }
            }
            catch
            {
            }
        }
示例#4
0
文件: frmSerial.cs 项目: Gz1d/Gz
 private void dgvSerial_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
 {
     try
     {
         if (this.dgvSerial.Columns[e.ColumnIndex].Name.Equals("isConnected"))
         {
             Config.SerialItem item = (Config.SerialItem) this.dgvSerial.Rows[e.RowIndex].DataBoundItem;
             if (item == null)
             {
                 e.Value = this.imageList1.Images[3];
             }
             else
             {
                 e.Value = (item.IsConnected == true) ? this.imageList1.Images[1] : this.imageList1.Images[2];
             }
         }
     }
     catch
     { }
 }
示例#5
0
 /// <summary>
 /// 串口加锁byte[]
 /// </summary>
 /// <param name="device"></param>
 /// <param name="data"></param>
 public string SerialSendReturn(Common.SerialDevice device, byte[] data)
 {
     LogHandle.Instance.WriteRunLog(this.CfgBase.MachineID, "Serial", "{0}:发送,{1}", device.ToString(), Encoding.Default.GetString(data));
     lock (lock_send_serial_byte)
     {
         Config.SerialItem serial = SearialHandle.Instance.GetConfig(device);
         //暂存包编号
         serial.Value = "";
         serial.Reset.Reset();
         SearialHandle.Instance.SerialSend(device, data);
         if (serial.ReadTimeout < 200)
         {
             serial.Reset.WaitOne(200);
         }
         else
         {
             serial.Reset.WaitOne(serial.ReadTimeout);
         }
         return(serial.Value.ToString());
     }
 }
示例#6
0
 /// <summary>
 /// 串口发送string,返回string
 /// </summary>
 /// <param name="device"></param>
 /// <param name="data"></param>
 public string SerialSendReturn(Common.SerialDevice device, string data)
 {
     lock (lock_send_serial_string)
     {
         Config.SerialItem serial = SearialHandle.Instance.GetConfig(device);
         //暂存包编号
         serial.Value = "";
         serial.Reset.Reset();
         SearialHandle.Instance.SerialSend(device, data);
         if (serial.ReadTimeout < 200)
         {
             serial.Reset.WaitOne(200);
         }
         else
         {
             serial.Reset.WaitOne(serial.ReadTimeout);
         }
         if (serial.Value == "")
         {
         }
         return(serial.Value.ToString());
     }
 }