public async Task PublishOutput(MbapHeader header, ushort transactionId) { if (!NativeEnabled && !AppInsightsEnabled) { return; } if (cache.Contains(transactionId.ToString())) { Tuple <byte, long> tuple = cache.Get <Tuple <byte, long> >(transactionId.ToString()); cache.Remove(transactionId.ToString()); TimeSpan ts = TimeSpan.FromTicks(DateTime.Now.Ticks - tuple.Item2); DiagnosticsEvent telem = new DiagnosticsEvent(name, header.UnitId, transactionId, header.TransactionId, Math.Round(ts.TotalMilliseconds), DateTime.UtcNow.ToString("dd-MM-yyyyThh:mm:ss.ffff")); if (NativeEnabled && mqttClient != null && mqttClient.IsConnected) { string jsonString = JsonConvert.SerializeObject(telem); byte[] data = Encoding.UTF8.GetBytes(jsonString); await mqttClient.PublishAsync(QualityOfServiceLevelType.AtMostOnce, outputPiSystem, "application/json", data); } if (AppInsightsEnabled) { tclient?.TrackEvent(name, telem.GetEventProperties(), telem.GetEventMetrics()); } } }
public async Task PublishInput(MbapHeader header, ushort transactionId) { if (!NativeEnabled && !AppInsightsEnabled) { return; } DiagnosticsEvent telem = new DiagnosticsEvent(name, header.UnitId, transactionId, header.TransactionId, DateTime.UtcNow.ToString("dd-MM-yyyyThh:mm:ss.ffff")); cache.Add(transactionId.ToString(), new Tuple <byte, long>(header.UnitId, DateTime.Now.Ticks), 20); if (NativeEnabled && mqttClient != null && mqttClient.IsConnected) { string jsonString = JsonConvert.SerializeObject(telem); byte[] msg = Encoding.UTF8.GetBytes(jsonString); await mqttClient.PublishAsync(QualityOfServiceLevelType.AtMostOnce, outputPiSystem, "application/json", msg); } if (AppInsightsEnabled) { tclient?.TrackEvent(name, telem.GetEventProperties(), telem.GetEventMetrics()); } }