Ejemplo n.º 1
0
        /// <summary>
        /// 停止
        /// </summary>
        /// <param name="id">id 16进制 00</param>
        /// <returns></returns>
        public void UbxMoveStart(Common.SerialDevice com, int id = 0)
        {
            string tmp = string.Format("{0} 01 FE 00 01 F4", id.ToString("X2"));

            byte[] command = Common.HexStringToByteArray(tmp);
            this.SerialSend(com, command);
        }
Ejemplo n.º 2
0
        /// <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;
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// 发送数据
 /// </summary>
 /// <param name="device"></param>
 /// <param name="data"></param>
 public void SerialSend(Common.SerialDevice device, byte[] data)
 {
     System.IO.Ports.SerialPort serial = (System.IO.Ports.SerialPort)Serials[device];
     serial.DiscardInBuffer();
     serial.DiscardOutBuffer();
     serial.Write(data, 0, data.Length);
 }
Ejemplo n.º 4
0
        /// <summary>
        /// 启动
        /// </summary>
        public override void DoStart()
        {
            try
            {
                IDictionaryEnumerator enumerator = this.Serials.GetEnumerator();
                while (enumerator.MoveNext())
                {
                    try
                    {
                        System.IO.Ports.SerialPort serial = enumerator.Value as System.IO.Ports.SerialPort;
                        serial.Open();
                        //打开正常
                        foreach (Config.SerialItem item in this.config.SerialItems)
                        {
                            if (item.Tag == serial)
                            {
                                if (serial == (System.IO.Ports.SerialPort)item.Tag)
                                {
                                    item.IsConnected = true;
                                }
                                Common.SerialDevice device = (Common.SerialDevice)enumerator.Key;
                                //foreach (var cam in Config.ConfigManager.Instance.ConfigCamera.CamdeviceList)
                                //{
                                //    if (cam.SerialDevice == device)
                                //    {
                                //        try
                                //        {
                                //            switch (device)
                                //            {

                                //                default:
                                //                    break;
                                //            }
                                //        }
                                //        catch (Exception ex)
                                //        {

                                //        }
                                //        break;
                                //    }
                                //}
                                break;
                            }
                        }
                    }
                    catch
                    {
                    }
                }
            }
            catch (Exception ex)
            {
                throw new StartException(this.ToString(), ex.ToString());
            }
        }
Ejemplo n.º 5
0
 public string SerialReadLine(Common.SerialDevice device)
 {
     try
     {
         System.IO.Ports.SerialPort serial = (System.IO.Ports.SerialPort)Serials[device];
         return(serial.ReadLine());
     }
     catch
     {
         return("ERROR");
     }
 }
Ejemplo n.º 6
0
        public string SerialReadString(Common.SerialDevice device)
        {
            try
            {
                byte[] dataB = this.SerialRead(device);

                return("");
            }
            catch
            {
                return(null);
            }
        }
Ejemplo n.º 7
0
 public byte[] SerialRead(Common.SerialDevice device)
 {
     try
     {
         System.IO.Ports.SerialPort serial = (System.IO.Ports.SerialPort)Serials[device];
         System.Threading.Thread.Sleep(20);
         byte[] dataB = new byte[serial.BytesToRead];
         serial.Read(dataB, 0, dataB.Length);
         return(dataB);
     }
     catch
     {
         return(null);
     }
 }
Ejemplo n.º 8
0
        public Config.SerialItem GetConfig(Common.SerialDevice device)
        {
            IEnumerable ie = from lst in this.Config.SerialItems
                             where lst.SerialDevice == device
                             select lst;
            List <Config.SerialItem> ioLst = ie.Cast <Config.SerialItem>().ToList();

            if (ioLst.Count > 0)
            {
                return(ioLst[0]);
            }
            else
            {
                return(null);
            }
        }
Ejemplo n.º 9
0
 /// <summary>
 /// 发送数据
 /// </summary>
 /// <param name="device"></param>
 /// <param name="data"></param>
 public void SerialSend(Common.SerialDevice device, string data)
 {
     try
     {
         System.IO.Ports.SerialPort serial = (System.IO.Ports.SerialPort) this.Serials[device];
         byte[] buff = System.Text.Encoding.Default.GetBytes(data);
         serial.DiscardInBuffer();
         serial.DiscardOutBuffer();
         //this.SerialSend(device, buff);
         serial.Write(buff, 0, buff.Length);
     }
     catch (Exception ex)
     {
         Log.LogWriter.WriteException(ex);
     }
 }
Ejemplo n.º 10
0
/// <summary>
/// 串口接收数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
        private void Seria_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {
            try
            {
                // lock (this.seriallock)
                {
                    System.IO.Ports.SerialPort serial = (System.IO.Ports.SerialPort)sender;
                    string data  = null;
                    byte[] dataB = null;
                    Common.SerialDevice device = Common.SerialDevice.NULL;
                    foreach (Config.SerialItem item in this.config.SerialItems)
                    {
                        if (item.Tag == serial)
                        {
                            if (item.CallReceive)
                            {
                                if (item.SleepMs <= 0)
                                {
                                    item.SleepMs = 100;
                                }
                                System.Threading.Thread.Sleep(item.SleepMs);//等待保障缓冲区有一行数据
                                if (string.IsNullOrEmpty(item.NewLine))
                                {
                                    dataB = new byte[serial.BytesToRead];
                                    serial.Read(dataB, 0, dataB.Length);
                                    //编码缺省
                                    data   = Encoding.Default.GetString(dataB, 0, dataB.Length);
                                    device = item.SerialDevice;
                                }
                                else
                                {
                                    data   = serial.ReadLine();
                                    dataB  = Encoding.Default.GetBytes(data);
                                    device = item.SerialDevice;
                                }
                            }
                            break;
                        }
                    }

                    Logic.SearialHandle.Instance.SerialReceive(device, dataB, data);
                    // if (!string.IsNullOrEmpty(data))
                    //     this.Async_SerialReceive(device, dataB, data);
                }
            }
            catch { }
        }
Ejemplo n.º 11
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());
     }
 }
Ejemplo n.º 12
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());
     }
 }
Ejemplo n.º 13
0
 /// <summary>
 /// 停止
 /// </summary>
 public override void DoStop()
 {
     try
     {
         IDictionaryEnumerator enumerator = this.Serials.GetEnumerator();
         while (enumerator.MoveNext())
         {
             System.IO.Ports.SerialPort serial = enumerator.Value as System.IO.Ports.SerialPort;
             serial.DataReceived -= new System.IO.Ports.SerialDataReceivedEventHandler(Seria_DataReceived);
             Common.SerialDevice device = (Common.SerialDevice)enumerator.Key;
             //foreach (var cam in Config.ConfigManager.Instance.ConfigCamera.CamdeviceList)
             //{
             //    if (cam.SerialDevice == device)
             //    {
             //        try
             //        {
             //            switch (device)
             //            {
             //                default:
             //                    break;
             //            }
             //        }
             //        catch (Exception ex)
             //        {
             //        }
             //        break;
             //    }
             //}
             serial.Close();
         }
     }
     catch (Exception ex)
     {
         throw new StopException(this.ToString(), ex.ToString());
     }
 }
Ejemplo n.º 14
0
        /// <summary>
        /// PLC值改变
        /// </summary>
        ///// <param name="item"></param>
        //public override void PlcValueChange(Config.PlcDataItem item)
        //{
        //    try
        //    {
        //        base.PlcValueChange(item);

        //        switch (item.PlcDevice)
        //        {
        //            case Common.PlcDevice.NULL:
        //                break;
        //            case Common.PlcDevice.ERROR:
        //                break;
        //        }
        //    }
        //    catch (Exception ex)
        //    {
        //        Log.LogWriter.WriteException(ex);
        //    }
        //}


        /// <summary>
        /// 串口接收
        /// </summary>
        /// <param name="serial"></param>
        /// <param name="data"></param>
        /// <param name="data_byte"></param>
        public override void SerialReceive(Common.SerialDevice serial, string data, byte[] data_byte)
        {
            base.SerialReceive(serial, data, data_byte);
        }
Ejemplo n.º 15
0
 /// <summary>
 /// 串口发送string
 /// </summary>
 /// <param name="device"></param>
 /// <param name="data"></param>
 public void SerialSend(Common.SerialDevice device, string data)
 {
     Logic.SearialHandle.Instance.SerialSend(device, data);
 }
Ejemplo n.º 16
0
 public byte[] SerialRead(Common.SerialDevice device)
 {
     return(Device.DeviceManager.Instance.DeviceSerial.SerialRead(device));
 }
Ejemplo n.º 17
0
 public string SerialReadString(Common.SerialDevice device)
 {
     byte[] r = this.SerialRead(device);
     return(Encoding.Default.GetString(r));
 }
Ejemplo n.º 18
0
        public void Async_SerialReceive(business business, Common.SerialDevice device, byte[] dataB, string dataS)
        {
            delegate_serial_receive rece = new delegate_serial_receive(business.SerialReceive);

            rece.BeginInvoke(device, dataS, dataB, null, rece);
        }
Ejemplo n.º 19
0
        public void Async_SerialReceive(Common.SerialDevice device, byte[] dataB, string dataS)//异步调用委托
        {
            delegate_serial_receive rece = new delegate_serial_receive(Logic.SearialHandle.Instance.SerialReceive);

            rece.BeginInvoke(device, dataB, dataS, null, rece);
        }
Ejemplo n.º 20
0
 public string SerialReadLine(Common.SerialDevice device)
 {
     return(Device.DeviceManager.Instance.DeviceSerial.SerialReadLine(device));
 }
Ejemplo n.º 21
0
 /// <summary>
 /// 串口回调虚函数,机台重写
 /// </summary>
 /// <param name="serial"></param>
 /// <param name="frid"></param>
 public virtual void SerialReceive(Common.SerialDevice serial, string data, byte[] data_byte)
 {
     LogHandle.Instance.WriteRunLog(this.CfgBase.MachineID, "Serial", "收到:{0},{1}", serial, data);
     //业务
 }
Ejemplo n.º 22
0
 /// <summary>
 /// 发送该数据
 /// </summary>
 /// <param name="device"></param>
 /// <param name="data"></param>
 public void SerialSend(Common.SerialDevice device, byte[] data)
 {
     Device.DeviceManager.Instance.DeviceSerial.SerialSend(device, data);
 }