removed old booz generation of radio_control ppm

This commit is contained in:
Felix Ruess
2010-10-27 14:56:13 +00:00
parent 4e9c8ad7c7
commit 8d02fa05f8
4 changed files with 12 additions and 181 deletions
+1 -8
View File
@@ -39,7 +39,6 @@ endif
PERIODIC_H=$(ACINCLUDE)/periodic.h PERIODIC_H=$(ACINCLUDE)/periodic.h
RADIO_H=$(ACINCLUDE)/radio.h RADIO_H=$(ACINCLUDE)/radio.h
CONF_RADIO_CONTROL_PPM_H=$(ACINCLUDE)/conf_radio_control_ppm.h
FLIGHT_PLAN_H=$(ACINCLUDE)/flight_plan.h FLIGHT_PLAN_H=$(ACINCLUDE)/flight_plan.h
FLIGHT_PLAN_XML=$(ACINCLUDE)/flight_plan.xml FLIGHT_PLAN_XML=$(ACINCLUDE)/flight_plan.xml
SETTINGS_H=$(ACINCLUDE)/settings.h SETTINGS_H=$(ACINCLUDE)/settings.h
@@ -76,7 +75,7 @@ all_ac_h: $(AIRFRAME_H) $(MODULES_H) $(SETTINGS_H) $(TUNING_H) $(MAKEFILE_AC) $(
@echo "CFLAGS: " $($(TARGET).CFLAGS) "\n" >> $(ACINCLUDE)/$(TARGET)_srcs.list @echo "CFLAGS: " $($(TARGET).CFLAGS) "\n" >> $(ACINCLUDE)/$(TARGET)_srcs.list
@echo "srcs: " $($(TARGET).srcs) >> $(ACINCLUDE)/$(TARGET)_srcs.list @echo "srcs: " $($(TARGET).srcs) >> $(ACINCLUDE)/$(TARGET)_srcs.list
radio_ac_h : $(RADIO_H) $(CONF_RADIO_CONTROL_PPM_H) radio_ac_h : $(RADIO_H)
flight_plan_ac_h : $(FLIGHT_PLAN_H) $(FLIGHT_PLAN_XML) flight_plan_ac_h : $(FLIGHT_PLAN_H) $(FLIGHT_PLAN_XML)
@@ -94,12 +93,6 @@ $(RADIO_H) : $(CONF)/$(RADIO) $(CONF_XML) $(TOOLS)/gen_radio.out
$(Q)mv /tmp/radio.h $@ $(Q)mv /tmp/radio.h $@
$(Q)cp $< $(AIRCRAFT_CONF_DIR)/radios $(Q)cp $< $(AIRCRAFT_CONF_DIR)/radios
$(CONF_RADIO_CONTROL_PPM_H) : $(CONF)/$(RADIO) $(CONF_XML) $(TOOLS)/gen_conf_radio_control_ppm.out
@echo BUILD $@
$(Q)$(TOOLS)/gen_conf_radio_control_ppm.out $< > /tmp/conf_radio_control_ppm.h
$(Q)mv /tmp/conf_radio_control_ppm.h $@
$(Q)cp $< $(AIRCRAFT_CONF_DIR)/radios
$(PERIODIC_H) : $(CONF)/$(AIRFRAME_XML) $(MESSAGES_XML) $(CONF_XML) $(CONF)/$(TELEMETRY) $(MAKEFILE_AC) $(PERIODIC_H) : $(CONF)/$(AIRFRAME_XML) $(MESSAGES_XML) $(CONF_XML) $(CONF)/$(TELEMETRY) $(MAKEFILE_AC)
@echo BUILD $@ @echo BUILD $@
$(Q)$(TOOLS)/gen_periodic.out $(CONF)/$(AIRFRAME_XML) $(MESSAGES_XML) $(CONF)/$(TELEMETRY) $(PERIODIC_FREQ) > $@ $(Q)$(TOOLS)/gen_periodic.out $(CONF)/$(AIRFRAME_XML) $(MESSAGES_XML) $(CONF)/$(TELEMETRY) $(PERIODIC_FREQ) > $@
+1 -1
View File
@@ -30,7 +30,7 @@ OCAMLNETCMA=$(shell ocamlfind query -r -a-format -predicates byte netstring)
OCAMLLEX=ocamllex OCAMLLEX=ocamllex
OCAMLYACC=ocamlyacc OCAMLYACC=ocamlyacc
all: gen_aircraft.out gen_airframe.out gen_messages2.out gen_messages.out gen_ubx.out gen_flight_plan.out gen_radio.out gen_periodic.out gen_settings.out gen_tuning.out gen_xsens.out gen_modules.out gen_conf_radio_control_ppm.out find_free_msg_id.out all: gen_aircraft.out gen_airframe.out gen_messages2.out gen_messages.out gen_ubx.out gen_flight_plan.out gen_radio.out gen_periodic.out gen_settings.out gen_tuning.out gen_xsens.out gen_modules.out find_free_msg_id.out
FP_CMO = fp_proc.cmo gen_flight_plan.cmo FP_CMO = fp_proc.cmo gen_flight_plan.cmo
ABS_FP = $(FP_CMO:%=$$PAPARAZZI_SRC/sw/tools/%) ABS_FP = $(FP_CMO:%=$$PAPARAZZI_SRC/sw/tools/%)
-162
View File
@@ -1,162 +0,0 @@
(*
* $Id: gen_radio.ml 3610 2009-07-02 16:35:18Z poine $
*
* XML preprocessing for radio-control parameters
*
* Copyright (C) 2003 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
open Xml2h
let h_name = "CONF_RADIO_CONTROL_PPM_H"
let fos = float_of_string
type us = int
type channel = {
name : string;
min : us;
max : us;
neutral : us;
averaged : bool }
(* Characters used in Gen_airframe.pprz_value *)
let check_function_name = fun s ->
for i = 0 to String.length s - 1 do
match s.[i] with
'A'..'Z' | '0'..'9' | '_' -> ()
| _ ->
failwith (sprintf "Character '%c' not allowed in function name '%s'" s.[i] s)
done
let parse_channel =
let no_channel = ref 0 in
fun c ->
let name = ExtXml.attrib c "function" in
check_function_name name;
let ctl = "RADIO_CTL_"^ExtXml.attrib c "ctl"
and fct = "RADIO_CONTROL_" ^ name in
define ctl (string_of_int !no_channel);
define fct ctl;
no_channel := !no_channel + 1;
let int_attrib = fun x -> int_of_string (ExtXml.attrib c x) in
{ min = int_attrib "min";
neutral = int_attrib "neutral";
max = int_attrib "max";
averaged = ExtXml.attrib_or_default c "average" "0" <> "0";
name = name
}
let norm1_ppm = fun c ->
if c.neutral = c.min then
sprintf "tmp_radio * (MAX_PPRZ / (float)(RC_PPM_SIGNED_TICS_OF_USEC(%d-%d)))" c.max c.min, "0"
else
sprintf "tmp_radio * (tmp_radio >=0 ? (MAX_PPRZ/(float)(RC_PPM_SIGNED_TICS_OF_USEC(%d-%d))) : (MIN_PPRZ/(float)(RC_PPM_SIGNED_TICS_OF_USEC(%d-%d))))" c.max c.neutral c.min c.neutral, "MIN_PPRZ"
let gen_normalize_ppm = fun channels ->
printf "#define NormalizePpm() {\\\n";
(* printf " static uint8_t avg_cpt = 0; /* Counter for averaging */\\\n";*)
printf " int16_t tmp_radio;\\\n";
List.iter
(fun c ->
let value, min_pprz = norm1_ppm c in
begin
printf " tmp_radio = booz_radio_control_ppm_pulses[RADIO_CONTROL_%s] - RC_PPM_TICS_OF_USEC(%d);\\\n" c.name c.neutral;
printf " radio_control.values[RADIO_CONTROL_%s] = %s;\\\n" c.name value;
printf " Bound(radio_control.values[RADIO_CONTROL_%s], %s, MAX_PPRZ); \\\n\\\n" c.name min_pprz;
end
)
channels;
(*
printf " avg_cpt++;\\\n";
printf " if (avg_cpt == RC_AVG_PERIOD) {\\\n";
printf " avg_cpt = 0;\\\n";
List.iter
(fun c ->
if c.averaged then begin
let value, min_pprz = norm1_ppm c in
printf " tmp_radio = avg_rc_values[RADIO_CONTROL_%s] / RC_AVG_PERIOD - RC_PPM_TICS_OF_USEC(%d);\\\n" c.name c.neutral;
printf " rc_values[RADIO_CONTROL_%s] = %s;\\\n" c.name value;
printf " avg_rc_values[RADIO_CONTROL_%s] = 0;\\\n" c.name;
printf " Bound(rc_values[RADIO_CONTROL_%s], %s, MAX_PPRZ); \\\n\\\n" c.name min_pprz;
end
)
channels;
printf " rc_values_contains_avg_channels = TRUE;\\\n";
printf " }\\\n";
*)
printf "}\n"
let _ =
if Array.length Sys.argv < 2 then
failwith "Usage: gen_radio xml_file";
let xml_file = Sys.argv.(1) in
let xml = Xml.parse_file xml_file in
printf "/* This file has been generated from %s */\n" xml_file;
printf "/* Please DO NOT EDIT */\n\n";
printf "#ifndef %s\n" h_name;
define h_name "";
nl ();
let channels = Xml.children xml in
let n = ExtXml.attrib xml "name" in
(* Xml2h.warning ("RADIO MODEL: "^n); *)
define_string "RADIO_NAME" n;
nl ();
define "RADIO_CONTROL_NB_CHANNEL" (string_of_int (List.length channels));
nl ();
let channels_params = List.map parse_channel channels in
nl ();
List.iter
(fun c ->
begin
printf "#define RADIO_CONTROL_%s_NEUTRAL %d\n" c.name c.neutral;
printf "#define RADIO_CONTROL_%s_MIN %d\n" c.name c.min;
printf "#define RADIO_CONTROL_%s_MAX %d\n" c.name c.max;
end
)
channels_params;
nl();
let ppm_pulse_type = ExtXml.attrib xml "pulse_type" in
let ppm_data_min = ExtXml.attrib xml "data_min" in
let ppm_data_max = ExtXml.attrib xml "data_max" in
let ppm_sync_min = ExtXml.attrib xml "sync_min" in
let ppm_sync_max = ExtXml.attrib xml "sync_max" in
printf "#define PPM_PULSE_TYPE PPM_PULSE_TYPE_%s\n" ppm_pulse_type;
printf "#define PPM_DATA_MIN_LEN (%sul)\n" ppm_data_min;
printf "#define PPM_DATA_MAX_LEN (%sul)\n" ppm_data_max;
printf "#define PPM_SYNC_MIN_LEN (%sul)\n" ppm_sync_min;
printf "#define PPM_SYNC_MAX_LEN (%sul)\n" ppm_sync_max;
nl ();
gen_normalize_ppm channels_params;
printf "\n#endif // %s\n" h_name