Ejemplo n.º 1
0
        public void F06(int address, int data, ReturnReceive callback)
        {
            CommandData command = CommandCode.F06(address, data);

            AddListSand(new ListSendData {
                CommandData = command, RR = callback
            });
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 设置单个线圈 功能码=F05
        /// </summary>
        /// <param name="address">设置线圈地址</param>
        /// <param name="data">设置线圈状态 true通,false断</param>
        /// <returns>返回 IsSuccess:请求结果True=成功,Message:信息,Data.Data:返回数据</returns>
        public void F05(int address, Boolean data, ReturnReceive callback)
        {
            CommandData command = CommandCode.F05(address, data);

            AddListSand(new ListSendData {
                CommandData = command, RR = callback
            });
            //Send(command, callback);
            //return receive == null ? false : ReceiveData.F05(receive);
        }
Ejemplo n.º 3
0
 /// <summary>
 /// 执行Modbus请求&回去返回数据
 /// </summary>
 /// <param name="bs">Modbus命令</param>
 /// <param name="receiveDL">处理返回数据方法</param>
 /// <returns>返回操作结果数据</returns>
 public void Send(byte[] bs, ReturnReceive returnReceive)
 {
     if (Client != null && Client.Connected && IsSuccess)
     {
         //new Thread(async () =>
         //{
         try
         {
             Client.Send(bs);
             Client.Receive(ReviceByte);
             returnReceive?.Invoke(ReviceByte);
             //returnReceive?.Invoke(new CallbackData { Bytes = ReviceByte });
             //if (returnReceive != null && ReviceState)
             //{
             //    Client.Receive(ReviceByte);
             //}
             //Client.Send(bs);
             //if (returnReceive != null)
             //{
             //    Client.Receive(ReviceByte);
             //    //string receiveStr = Encoding.ASCII.GetString(ReviceByte, 0, bytesRec);
             //    returnReceive?.Invoke(new CallbackData { Bytes = ReviceByte });
             //    ReviceState = false;
             //}
             //else
             //{
             //    ReviceState = true;
             //}
         }
         catch (SocketException ex)
         {
             IsSuccess = false;
             ModbusLinkError?.Invoke(this.Name, $"{Name}请求错误--{ex.Message}");
         }
         //}).Start();
     }
     else
     {
         if (Client == null || !Client.Connected)
         {
             IsSuccess = false;
         }
     }
 }