Beispiel #1
0
 private void Channel_OnReceive(object sender, ChannelReceivedEventArgs e)
 {
     logger?.LogDebug($"Slave channel '{e.ChannelId}' with Id = '{slave.UnitId}' received message.");
     byte[] msg = mapper.MapOut(e.Message);
     OnReceive?.Invoke(this, new ChannelReceivedEventArgs(e.ChannelId, msg));
     lastMessage = null;
 }
Beispiel #2
0
        private void Listen(object state)
        {
            AutoResetEvent are = (AutoResetEvent)state;

            OnMessage += (o, a) =>
            {
                byte[] msg = mapper.MapOut(a.Message);
                if (msg != null)
                {
                    result = a.Message;
                    are.Set();
                }
            };
        }
        private async void ReceiveOutput(string topic, string contentType, byte[] message)
        {
            logger?.LogDebug("SCADA client channel receiving output.");

            try
            {
                MbapHeader header = MbapHeader.Decode(message);
                byte[]     msg    = mapper.MapOut(message);
                await channel.SendAsync(msg);

                MbapHeader actual = MbapHeader.Decode(msg);
                await diagnostics.PublishOutput(actual, header.TransactionId);

                logger?.LogDebug("SCADA client channel was sent output message.");
            }
            catch (Exception ex)
            {
                logger?.LogError($"SCADA client receive output error - {ex.Message}");
                OnError?.Invoke(this, new AdapterErrorEventArgs(Id, ex));
            }
        }
Beispiel #4
0
 public byte[] Execute(byte[] message, byte?alias = null)
 {
     return(mapper.MapOut(message));
 }
Beispiel #5
0
 private void Connection_OnReceived(object sender, TcpReceivedEventArgs e)
 {
     byte[] message = mapper.MapOut(e.Message);
     OnReceived?.Invoke(this, new TcpReceivedEventArgs(e.Id, message));
 }