diff --git a/conf/settings/antenna_settings.xml b/conf/settings/antenna_settings.xml index 4def560599..46eb8e62d8 100644 --- a/conf/settings/antenna_settings.xml +++ b/conf/settings/antenna_settings.xml @@ -5,10 +5,10 @@ - - - - + + + + diff --git a/conf/settings/settings.dtd b/conf/settings/settings.dtd index 0ac44e6777..0e8c0e0cc0 100644 --- a/conf/settings/settings.dtd +++ b/conf/settings/settings.dtd @@ -27,6 +27,8 @@ min CDATA #REQUIRED max CDATA #REQUIRED step CDATA #IMPLIED shortname CDATA #IMPLIED +module CDATA #IMPLIED +handler CDATA #IMPLIED > let print_dl_settings = fun settings -> let settings = flatten settings [] in + (** include headers **) + (** FIXME : add header only once **) + printf "\n"; + List.iter + (fun s -> + try + let v = ExtXml.attrib s "module" in + printf "#include \"%s.h\"\n" v + with ExtXml.Error e -> () + ) + settings; + printf "\n"; + (** Macro to call to set one variable *) lprintf "#define DlSetting(_idx, _value) { \\\n"; right (); @@ -59,7 +72,16 @@ let print_dl_settings = fun settings -> List.iter (fun s -> let v = ExtXml.attrib s "var" in - lprintf "case %d: %s = _value; break;\\\n" !idx v; incr idx) + begin + try + let h = ExtXml.attrib s "handler" and + m = ExtXml.attrib s "module" in + lprintf "case %d: %s_%s( _value ); break;\\\n" !idx m h + with + ExtXml.Error e -> lprintf "case %d: %s = _value; break;\\\n" !idx v + end; + incr idx + ) settings; left (); lprintf "}\\\n"; @@ -67,7 +89,7 @@ let print_dl_settings = fun settings -> lprintf "}\n"; let nb_values = !idx in - (** Macro to call to download current values *) + (** Macro to call to downlink current values *) lprintf "#define PeriodicSendDlValue() { \\\n"; if nb_values > 0 then begin right ();