private HeartbeatEvent CreateHeartbeatEvent() { var process = Process.GetCurrentProcess(); PerformanceCounterDto[] performanceCounterHistory; lock (_mutex) { performanceCounterHistory = _performanceCounterHistory.ToArray(); _performanceCounterHistory.Clear(); } var heartbeatEvent = new HeartbeatEvent { Timestamp = _clock.UtcNow, ProcessId = process.Id, ProcessName = process.ProcessName, MachineName = Environment.MachineName, OSVersion = Environment.OSVersion.VersionString, ProcessorCount = Environment.ProcessorCount, StartTime = new DateTimeOffset(process.StartTime), UserProcessorTime = process.UserProcessorTime, TotalProcessorTime = process.TotalProcessorTime, WorkingSet64 = process.WorkingSet64, PeakWorkingSet64 = process.PeakWorkingSet64, VirtualMemorySize64 = process.VirtualMemorySize64, PerformanceCounters = performanceCounterHistory, }; return(heartbeatEvent); }
private void OnMavLinkPacketReceived(object sender, MavLinkPacket packet) { switch (packet.MessageId) { case (byte)MavlinkMessageID.HEARTBEAT: { HeartbeatEvent?.Invoke(packet.Message as UasHeartbeat); break; } case (byte)MavlinkMessageID.SYS_STATUS: { SysStatusEvent?.Invoke(packet.Message as UasSysStatus); break; } case (byte)MavlinkMessageID.GPS_RAW_INT: { GpsRawIntEvent?.Invoke(packet.Message as UasGpsRawInt); break; } case (byte)MavlinkMessageID.ATTITUDE: { AttitudeEvent?.Invoke(packet.Message as UasAttitude); break; } case (byte)MavlinkMessageID.LOCAL_POSITION_NED: { LocalPositionNedEvent?.Invoke(packet.Message as UasLocalPositionNed); break; } case (byte)MavlinkMessageID.SERVO_OUTPUT_RAW: { ServoOutputRawEvent?.Invoke(packet.Message as UasServoOutputRaw); break; } case (byte)MavlinkMessageID.VFR_HUD: { VfrHudEvent?.Invoke(packet.Message as UasVfrHud); break; } case (byte)MavlinkMessageID.POSITION_TARGET_GLOBAL_INT: { PositionTargetGlobalIntEvent?.Invoke(packet.Message as UasPositionTargetGlobalInt); break; } case (byte)MavlinkMessageID.HIGHRES_IMU: { HighresImuEvent?.Invoke(packet.Message as UasHighresImu); break; } case (byte)MavlinkMessageID.ALTITUDE: { AltitudeEvent?.Invoke(packet.Message as UasAltitude); break; } case (byte)MavlinkMessageID.BATTERY_STATUS: { BatteryStatusEvent?.Invoke(packet.Message as UasBatteryStatus); break; } default: Debug.WriteLine(packet.MessageId); break; } MavlinkReceivedEvent?.Invoke(packet.Message); }