コード例 #1
0
 public void ReceiveLogs(string[] logs)
 {
     if (logs == null || logs.Length == 0)
     {
         return;
     }
     LogsReceived.Raise(this, new LogsReceivedEventArgs(StitchInstanceId, logs));
 }
コード例 #2
0
        public override void AdsWriteInd(AmsAddress rAddr, uint invokeId, uint indexGroup, uint indexOffset, uint cbLength, byte[] data)
        {
            // send response as soon as possible
            AdsWriteRes(rAddr, invokeId, AdsErrorCode.NoError);

            try
            {
                var entries = new List <LogEntry>();
                var reader  = new AdsBinaryReader(new AdsStream(data));

                while (reader.BaseStream.Length > reader.BaseStream.Position)
                {
                    LogEntry logEntry;

                    var version = reader.ReadByte();
                    if (version == 1)
                    {
                        logEntry = ReadLogEntryV1(reader);
                    }
                    else
                    {
                        throw new NotImplementedException($"Version {version}");
                    }

                    logEntry.Source   = rAddr.ToString();
                    logEntry.Hostname = _adsHostnameService.GetHostname(rAddr.NetId).ValueOr(string.Empty);

                    entries.Add(logEntry);
                }

                LogsReceived?.Invoke(this, new LogEntryEventArgs(entries));
            }
            catch (Exception e)
            {
                _logger.LogError(e, "Error parsing log message from plc.");
            }
        }
コード例 #3
0
 private void OnStitchLogsReceived(object sender, LogsReceivedEventArgs e)
 {
     LogsReceived.Raise(this, e);
 }