Skip to content
Snippets Groups Projects
Select Git revision
  • v4.0.1_stable
  • master default protected
  • thesis
  • fmics-2021
  • vanadium
  • afadl-2021
  • functional-verification
  • v5.17_devel
  • v5.16.0_stable
  • v5.15_devel
  • v5.14.0_stable
  • v5.13.0_testing
  • v5.13_devel
  • v5.12_stable
  • v5.11_devel
  • v5.10_stable
  • v5.9.0_testing
  • v5.8.2_stable
  • v5.8.1_stable
  • v5.9_devel
  • v5.8.0_stable
  • v5.7.1_testing
  • v5.7.0_testing
  • v5.7_devel
  • v5.6.0_stable
  • v5.5.2_testing
  • v5.5.1_testing
27 results

data.ml

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    data.ml 2.29 KiB
    (*
     *  $Id$
     *
     * Usefull data for simulation
     *
     * Copyright (C) 2004 Pascal Brisset, Antoine Drouin
     *
     * 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.
     *
     *)
    
    open Printf
    
    let (//) = Filename.concat
    
    (* let pprz_conf_path = Env.paparazzi_src // "conf" *)
    let user_conf_path = Env.paparazzi_home // "conf"
    
    let conf_xml = Xml.parse_file (user_conf_path // "conf.xml")
    
    let messages_ap =
    (*  let xml = Xml.parse_file (pprz_conf_path // "messages.xml") in *)
      let xml = Xml.parse_file (user_conf_path // "messages.xml") in
      try
        ExtXml.child xml ~select:(fun x -> Xml.attrib x "name" = "telemetry") "class"
      with
        Not_found -> failwith "'telemetry' class missing in messages.xml"
    
    type aircraft = {
        name : string;
        id : int;
        airframe : Xml.xml;
        flight_plan : Xml.xml;
        radio: Xml.xml
      }
    
    
    let aircraft = fun name ->
      let aircraft_xml, id =
        let rec loop = function
    	[] -> failwith ("Aircraft not found : "^name)
          | x::_ when Xml.tag x = "aircraft" && Xml.attrib x "name" = name ->
    	  begin
    	    try
    	      (x, int_of_string (Xml.attrib x "ac_id"))
    	    with
    	      _ ->
    		failwith (sprintf "Int value expected for 'ac_id' in %s" (Xml.to_string x))
    	  end
          | _x::xs -> loop xs in
        loop (Xml.children conf_xml) in
    
      let airframe_file = user_conf_path // ExtXml.attrib aircraft_xml "airframe" in
    
      { id = id; name = name;