• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

MissionEngineeringLtd / MissionEngineeringToolbox / 23765596749

30 Mar 2026 08:15PM UTC coverage: 70.201% (-0.05%) from 70.246%
23765596749

push

github

MissionEngineeringLtd
Merge branch 'main' of https://github.com/MissionEngineeringLtd/MissionEngineeringToolbox

100 of 164 branches covered (60.98%)

Branch coverage included in aggregate %.

1297 of 1826 relevant lines covered (71.03%)

1701.41 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

86.15
/MissionEngineering.Platform/Source/PlatformModel.cs
1
using MissionEngineering.Math;
2

3
namespace MissionEngineering.Platform;
4

5
public class PlatformModel
6
{
7
    public ILLAOrigin LLAOrigin { get; set; }
3,804✔
8

9
    public PlatformModel(ILLAOrigin llaOrigin)
2✔
10
    {
2✔
11
        LLAOrigin = llaOrigin;
2✔
12
    }
2✔
13

14
    public PlatformState Update(DateTime dateTime, double time_s, PlatformState platformState)
15
    {
3,802✔
16
        var deltaTime = time_s - platformState.Time_s;
3,802✔
17

18
        var dt = new DeltaTime(deltaTime);
3,802✔
19

20
        var accelerationTBA = GetAccelerationTBA();
3,802✔
21

22
        var accelerationNED = GetAccelerationNED(accelerationTBA, platformState.Attitude);
3,802✔
23

24
        var velocityNED = platformState.VelocityNED + accelerationNED * dt;
3,802✔
25
        var positionNED = platformState.PositionNED + velocityNED * dt;
3,802✔
26

27
        var positionLLA = MappingConversions.ConvertPositionNEDToPositionLLA(positionNED, LLAOrigin.PositionLLA);
3,802✔
28

29
        var attitude = FrameConversions.GetAttitudeFromVelocityVector(platformState.VelocityNED);
3,802✔
30
        var attitudeRate = GetAttitudeRate(platformState.Attitude, attitude, dt);
3,802✔
31

32
        var ps = platformState with
3,802✔
33
        {
3,802✔
34
            DateTime = dateTime,
3,802✔
35
            Time_s = time_s,
3,802✔
36
            PositionLLA = positionLLA,
3,802✔
37
            PositionNED = positionNED,
3,802✔
38
            VelocityNED = velocityNED,
3,802✔
39
            AccelerationNED = accelerationNED,
3,802✔
40
            AccelerationTBA = accelerationTBA,
3,802✔
41
            Attitude = attitude,
3,802✔
42
            AttitudeRate = attitudeRate
3,802✔
43
        };
3,802✔
44

45
        return ps;
3,802✔
46
    }
3,802✔
47

48
    public AccelerationTBA GetAccelerationTBA()
49
    {
3,802✔
50
        var accelerationTBA = new AccelerationTBA
3,802✔
51
        {
3,802✔
52
            AccelerationAxial_ms2 = 0.0,
3,802✔
53
            AccelerationLateral_ms2 = 0.0,
3,802✔
54
            AccelerationVertical_ms2 = 0.0
3,802✔
55
        };
3,802✔
56

57
        return accelerationTBA;
3,802✔
58
    }
3,802✔
59

60
    public AccelerationNED GetAccelerationNED(AccelerationTBA accelerationTBA, Attitude attitude)
61
    {
3,802✔
62
        var accelerationNED = FrameConversions.GetAccelerationNED(accelerationTBA, attitude);
3,802✔
63

64
        return accelerationNED;
3,802✔
65
    }
3,802✔
66

67
    public Attitude GetAttitude()
68
    {
×
69
        var attitude = new Attitude
×
70
        {
×
71
            HeadingAngle_deg = 0.0,
×
72
            BankAngle_deg = 0.0,
×
73
            PitchAngle_deg = 0.0,
×
74
        };
×
75

76
        return attitude;
×
77
    }
×
78

79
    public AttitudeRate GetAttitudeRate(Attitude attitudePrevious, Attitude attitudeCurrent, DeltaTime deltaTime_s)
80
    {
3,802✔
81
        if (deltaTime_s.DeltaTime_s == 0.0)
3,802✔
82
        {
2✔
83
            return new AttitudeRate
2✔
84
            {
2✔
85
                HeadingAngleRate_degs = 0.0,
2✔
86
                PitchAngleRate_degs = 0.0,
2✔
87
                BankAngleRate_degs = 0.0
2✔
88
            };
2✔
89
        }
90

91
        var attitudeRate = (attitudeCurrent - attitudePrevious) / deltaTime_s;
3,800✔
92

93
        return attitudeRate;
3,800✔
94
    }
3,802✔
95
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc