paparazzi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[paparazzi-commits] [6337] XSens driver update: UTC / direct float lat/l


From: Christophe De Wagter
Subject: [paparazzi-commits] [6337] XSens driver update: UTC / direct float lat/lon
Date: Thu, 04 Nov 2010 15:44:57 +0000

Revision: 6337
          http://svn.sv.gnu.org/viewvc/?view=rev&root=paparazzi&revision=6337
Author:   dewagter
Date:     2010-11-04 15:44:56 +0000 (Thu, 04 Nov 2010)
Log Message:
-----------
XSens driver update: UTC / direct float lat/lon

Modified Paths:
--------------
    paparazzi3/trunk/conf/messages.xml
    paparazzi3/trunk/conf/xsens_MTi-G.xml
    paparazzi3/trunk/sw/airborne/modules/ins/ins_xsens.c

Added Paths:
-----------
    paparazzi3/trunk/sw/airborne/modules/ins/ins_xsens.h

Modified: paparazzi3/trunk/conf/messages.xml
===================================================================
--- paparazzi3/trunk/conf/messages.xml  2010-11-04 15:44:42 UTC (rev 6336)
+++ paparazzi3/trunk/conf/messages.xml  2010-11-04 15:44:56 UTC (rev 6337)
@@ -412,6 +412,9 @@
     <field name="min" type="uint8" unit=""/>
     <field name="sec" type="uint8" unit=""/>
     <field name="nanosec" type="uint32" unit=""/>
+    <field name="year" type="uint16" unit=""/>
+    <field name="month" type="uint8" unit=""/>
+    <field name="day" type="uint8" unit=""/>
 
   </message>
 

Modified: paparazzi3/trunk/conf/xsens_MTi-G.xml
===================================================================
--- paparazzi3/trunk/conf/xsens_MTi-G.xml       2010-11-04 15:44:42 UTC (rev 
6336)
+++ paparazzi3/trunk/conf/xsens_MTi-G.xml       2010-11-04 15:44:56 UTC (rev 
6337)
@@ -230,6 +230,17 @@
     <field name="ts" format="U2"/>
   </data>
 
+  <data name="UTC" length="12">
+    <field name="nanosec" format="U4"/>
+    <field name="year" format="U2"/>
+    <field name="month" format="U1"/>
+    <field name="day" format="U1"/>
+    <field name="hour" format="U1"/>
+    <field name="min" format="U1"/>
+    <field name="sec" format="U1"/>
+    <field name="valid" format="U1"/>
+  </data>
+
   <mask name="Temp"         bitmask="0x0001"/>
   <mask name="Calibrated"   bitmask="0x0002"/>
   <mask name="Orientation"  bitmask="0x0004"/>
@@ -240,7 +251,8 @@
   <mask name="RAWGPS"       bitmask="0x1000"/>
   <mask name="RAWInertial"  bitmask="0x4000"/>
 
-  <mask name="TimeStamp"        bitmask="0x00000003"/>
+  <mask name="TimeStamp"        bitmask="0x00000001"/>
+  <mask name="UTC"             bitmask="0x00000002"/>
   <mask name="OrientationMode"  bitmask="0x0000000C" shift=">>2"/>
   <mask name="AccOut"           bitmask="0x00000010"/>
   <mask name="GyrOut"           bitmask="0x00000020"/>

Modified: paparazzi3/trunk/sw/airborne/modules/ins/ins_xsens.c
===================================================================
--- paparazzi3/trunk/sw/airborne/modules/ins/ins_xsens.c        2010-11-04 
15:44:42 UTC (rev 6336)
+++ paparazzi3/trunk/sw/airborne/modules/ins/ins_xsens.c        2010-11-04 
15:44:56 UTC (rev 6337)
@@ -158,6 +158,17 @@
 uint16_t xsens_output_mode;
 uint32_t xsens_output_settings;
 
+int8_t xsens_hour;
+int8_t xsens_min;
+int8_t xsens_sec;
+int32_t xsens_nanosec;
+int16_t xsens_year;
+int8_t xsens_month;
+int8_t xsens_day;
+float xsens_lat;
+float xsens_lon;
+
+
 static uint8_t xsens_id;
 static uint8_t xsens_status;
 static uint8_t xsens_len;
@@ -329,12 +340,12 @@
       }
       if (XSENS_MASK_Position(xsens_output_mode)) {
 #if (!defined(USE_GPS_XSENS_RAW_DATA)) && defined(USE_GPS_XSENS)
-        float lat = XSENS_DATA_Position_lat(xsens_msg_buf,offset);
-        float lon = XSENS_DATA_Position_lon(xsens_msg_buf,offset);
-        gps_lat = (int32_t)(lat * 1e7);
-        gps_lon = (int32_t)(lon * 1e7);
-        gps_utm_zone = (lon+180) / 6 + 1;
-        latlong_utm_of(RadOfDeg(lat), RadOfDeg(lon), gps_utm_zone);
+        xsens_lat = XSENS_DATA_Position_lat(xsens_msg_buf,offset);
+        xsens_lon = XSENS_DATA_Position_lon(xsens_msg_buf,offset);
+        gps_lat = (int32_t)(xsens_lat * 1e7);
+        gps_lon = (int32_t)(xsens_lon * 1e7);
+        gps_utm_zone = (xsens_lon+180) / 6 + 1;
+        latlong_utm_of(RadOfDeg(xsens_lat), RadOfDeg(xsens_lon), gps_utm_zone);
         ins_x = latlong_utm_x;
         ins_y = latlong_utm_y;
         gps_utm_east  = ins_x * 100;
@@ -368,6 +379,17 @@
 #endif
         offset += XSENS_DATA_TimeStamp_LENGTH;
       }
+      if (XSENS_MASK_UTC(xsens_output_settings)) {
+        xsens_hour = XSENS_DATA_UTC_hour(xsens_msg_buf,offset);
+        xsens_min = XSENS_DATA_UTC_min(xsens_msg_buf,offset);
+        xsens_sec = XSENS_DATA_UTC_sec(xsens_msg_buf,offset);
+        xsens_nanosec = XSENS_DATA_UTC_nanosec(xsens_msg_buf,offset);
+        xsens_year = XSENS_DATA_UTC_year(xsens_msg_buf,offset);
+        xsens_month = XSENS_DATA_UTC_month(xsens_msg_buf,offset);
+        xsens_day = XSENS_DATA_UTC_day(xsens_msg_buf,offset);
+
+        offset += XSENS_DATA_UTC_LENGTH;
+      }
     //}
   }
 

Added: paparazzi3/trunk/sw/airborne/modules/ins/ins_xsens.h
===================================================================
--- paparazzi3/trunk/sw/airborne/modules/ins/ins_xsens.h                        
        (rev 0)
+++ paparazzi3/trunk/sw/airborne/modules/ins/ins_xsens.h        2010-11-04 
15:44:56 UTC (rev 6337)
@@ -0,0 +1,48 @@
+/*
+ * Paparazzi $Id: $
+ *  
+ * Copyright (C) 2010 ENAC
+ *
+ * This file is part of paparazzi.
+ *
+ * paparazzi is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * paparazzi is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with paparazzi; see the file COPYING.  If not, write to
+ * the Free Software Foundation, 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA. 
+ *
+ */
+
+/**
+ * \brief Library for the XSENS AHRS
+ */
+
+#ifndef INS_XSENS_H
+#define INS_XSENS_H
+
+#include "std.h"
+
+extern int8_t xsens_hour;
+extern int8_t xsens_min;
+extern int8_t xsens_sec;
+extern int32_t xsens_nanosec;
+extern int16_t xsens_year;
+extern int8_t xsens_month;
+extern int8_t xsens_day;
+extern float xsens_lat;
+extern float xsens_lon;
+extern uint8_t xsens_msg_status;
+extern uint16_t xsens_time_stamp;
+
+
+
+#endif




reply via email to

[Prev in Thread] Current Thread [Next in Thread]