From 0e2e077d96118bccf6777297f76994be68172798 Mon Sep 17 00:00:00 2001
From: Mark Whitehorn <kd0aij@gmail.com>
Date: Mon, 4 Feb 2019 10:12:29 -0700
Subject: [PATCH] AP_AHRS: add method to set pitch trim

---
 libraries/AP_AHRS/AP_AHRS_View.cpp | 11 ++++++++---
 libraries/AP_AHRS/AP_AHRS_View.h   |  4 ++++
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/libraries/AP_AHRS/AP_AHRS_View.cpp b/libraries/AP_AHRS/AP_AHRS_View.cpp
index d075d45a07..0db18ecf6c 100644
--- a/libraries/AP_AHRS/AP_AHRS_View.cpp
+++ b/libraries/AP_AHRS/AP_AHRS_View.cpp
@@ -39,15 +39,20 @@ AP_AHRS_View::AP_AHRS_View(AP_AHRS &_ahrs, enum Rotation _rotation, float pitch_
         AP_HAL::panic("Unsupported AHRS view %u\n", (unsigned)rotation);
     }
 
+    _pitch_trim_deg = pitch_trim_deg;
     // Add pitch trim
-    y_angle = wrap_360(y_angle + pitch_trim_deg);
-
-    rot_view.from_euler(0, radians(y_angle), 0);
+    rot_view.from_euler(0, radians(wrap_360(y_angle + pitch_trim_deg)), 0);
 
     // setup initial state
     update();
 }
 
+// apply pitch trim
+void AP_AHRS_View::set_pitch_trim(float trim_deg) {
+    _pitch_trim_deg = trim_deg; 
+    rot_view.from_euler(0, radians(wrap_360(y_angle + _pitch_trim_deg)), 0);
+};
+
 // update state
 void AP_AHRS_View::update(bool skip_ins_update)
 {
diff --git a/libraries/AP_AHRS/AP_AHRS_View.h b/libraries/AP_AHRS/AP_AHRS_View.h
index 027732cef4..ca456178ef 100644
--- a/libraries/AP_AHRS/AP_AHRS_View.h
+++ b/libraries/AP_AHRS/AP_AHRS_View.h
@@ -48,6 +48,9 @@ public:
         return rot_body_to_ned;
     }
 
+    // apply pitch trim
+    void set_pitch_trim(float trim_deg);
+
     // helper trig value accessors
     float cos_roll() const {
         return trig.cos_roll;
@@ -190,4 +193,5 @@ private:
     } trig;
 
     float y_angle;
+    float _pitch_trim_deg;
 };