Difference between revisions of "User/AirborneCodeReorg"

From PaparazziUAV
Jump to navigation Jump to search
(moved the available susbsytem table to the dev page - let's keep this page as simple as possible to ensure success - we'll add subsystem as they become available)
Line 1: Line 1:
This page summarizes the changes needed to switch from the "raw makefile in airframes" to a new "xml only aiframes" syntax
This page summarizes the changes needed to switch from the "raw makefile in airframes" to a new "xml only aiframes" syntax


==First step==
==FixedWing==
*fixed wings users:
 
The idea is to replace the '''<makefile>''' section with a '''<target>''' section
 
Typicaly, replace:
<makefile>
  CONFIG=\"tiny_0_99.h\"
  include $(PAPARAZZI_SRC)/conf/autopilot/tiny.makefile
  FLASH_MODE=IAP
  ap.CFLAGS +=  -DFBW -DAP -DBOARD_CONFIG=$(CONFIG) -DLED -DTIME_LED=1
  ap.srcs = sys_time.c $(SRC_ARCH)/sys_time_hw.c $(SRC_ARCH)/armVIC.c main_fbw.c main_ap.c main.c
  ap.srcs += commands.c
  ap.CFLAGS += -DACTUATORS=\"servos_4015_MAT_hw.h\" -DSERVOS_4015_MAT
  ap.srcs += $(SRC_ARCH)/servos_4015_MAT_hw.c actuators.c
  ap.CFLAGS += -DRADIO_CONTROL
  ap.srcs += radio_control.c $(SRC_ARCH)/ppm_hw.c 
  ap.CFLAGS += -DDOWNLINK -DUSE_UART0 -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_FBW_DEVICE=Uart0 -DDOWNLINK_AP_DEVICE=Uart0 -DPPRZ_UART=Uart0 -DDATALINK=PPRZ -DUART0_BAUD=B9600
  ap.srcs += downlink.c $(SRC_ARCH)/uart_hw.c datalink.c pprz_transport.c
  ap.CFLAGS += -DINTER_MCU
  ap.srcs += inter_mcu.c
  ap.CFLAGS += -DADC -DUSE_ADC_0 -DUSE_ADC_1 -DUSE_ADC_2 -DUSE_ADC_3
  ap.srcs += $(SRC_ARCH)/adc_hw.c
  ap.CFLAGS += -DGPS -DUBX -DUSE_UART1 -DGPS_LINK=Uart1 -DUART1_BAUD=B38400
  ap.CFLAGS += -DGPS_CONFIGURE -DGPS_BAUD=38400
  ap.srcs += gps_ubx.c gps.c latlong.c
  ap.CFLAGS += -DINFRARED
  ap.srcs += infrared.c estimator.c
  ap.CFLAGS += -DNAV -DAGR_CLIMB -DLOITER_TRIM -DALT_KALMAN -DWIND_INFO
  ap.srcs += nav.c fw_h_ctl.c fw_v_ctl.c
  ap.srcs += nav_line.c nav_survey_rectangle.c
</makefile>
 
with
 
  <target name="fixedwing" board="tiny_2.11">
    <param name="FLASH_MODE" value="IAP"/>
    <subsystem name="autopilot"/>
    <subsystem name="testing"/>
    <subsystem name="radio_control" type="ppm"/>
    <!-- Communication -->
    <subsystem name="telemetry" type="transparent">
      <param name="MODEM_BAUD" value="9600"/>
    </subsystem>
    <!-- Actuators -->
    <subsystem name="actuators" type="4017"/>
    <!-- Sensors -->
    <subsystem name="gyro"/>
    <subsystem name="attitude" type="infrared"/>
    <subsystem name="gps" type="ublox_lea4p"/>
    <subsystem name="navigation">
      <define name="AGR_CLIMB" value="1" />
      <define name="LOITER_TRIM" value="1" />
      <define name="WIND_INFO" value="1" />
    </subsystem>
  </target>
 
Let's look in more detail how this is done


Comment out or remove the following lines in the makefile section of your airframe.xml
Comment out or remove the following lines in the makefile section of your airframe.xml

Revision as of 23:06, 18 August 2010

This page summarizes the changes needed to switch from the "raw makefile in airframes" to a new "xml only aiframes" syntax

FixedWing

The idea is to replace the <makefile> section with a <target> section

Typicaly, replace:

<makefile>
 CONFIG=\"tiny_0_99.h\"
 include $(PAPARAZZI_SRC)/conf/autopilot/tiny.makefile
 FLASH_MODE=IAP
 ap.CFLAGS +=  -DFBW -DAP -DBOARD_CONFIG=$(CONFIG) -DLED -DTIME_LED=1
 ap.srcs = sys_time.c $(SRC_ARCH)/sys_time_hw.c $(SRC_ARCH)/armVIC.c main_fbw.c main_ap.c main.c
 ap.srcs += commands.c
 ap.CFLAGS += -DACTUATORS=\"servos_4015_MAT_hw.h\" -DSERVOS_4015_MAT
 ap.srcs += $(SRC_ARCH)/servos_4015_MAT_hw.c actuators.c
 ap.CFLAGS += -DRADIO_CONTROL
 ap.srcs += radio_control.c $(SRC_ARCH)/ppm_hw.c  
 ap.CFLAGS += -DDOWNLINK -DUSE_UART0 -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_FBW_DEVICE=Uart0 -DDOWNLINK_AP_DEVICE=Uart0 -DPPRZ_UART=Uart0 -DDATALINK=PPRZ -DUART0_BAUD=B9600
 ap.srcs += downlink.c $(SRC_ARCH)/uart_hw.c datalink.c pprz_transport.c
 ap.CFLAGS += -DINTER_MCU
 ap.srcs += inter_mcu.c 
 ap.CFLAGS += -DADC -DUSE_ADC_0 -DUSE_ADC_1 -DUSE_ADC_2 -DUSE_ADC_3
 ap.srcs += $(SRC_ARCH)/adc_hw.c
 ap.CFLAGS += -DGPS -DUBX -DUSE_UART1 -DGPS_LINK=Uart1 -DUART1_BAUD=B38400
 ap.CFLAGS += -DGPS_CONFIGURE -DGPS_BAUD=38400
 ap.srcs += gps_ubx.c gps.c latlong.c
 ap.CFLAGS += -DINFRARED
 ap.srcs += infrared.c estimator.c
 ap.CFLAGS += -DNAV -DAGR_CLIMB -DLOITER_TRIM -DALT_KALMAN -DWIND_INFO
 ap.srcs += nav.c fw_h_ctl.c fw_v_ctl.c
 ap.srcs += nav_line.c nav_survey_rectangle.c
</makefile>

with

 <target name="fixedwing" board="tiny_2.11">
   <param name="FLASH_MODE" value="IAP"/>
   <subsystem name="autopilot"/>
   <subsystem name="testing"/>
   <subsystem name="radio_control" type="ppm"/>
   <subsystem name="telemetry" type="transparent">
     <param name="MODEM_BAUD" value="9600"/>
   </subsystem>
   <subsystem name="actuators" type="4017"/>
   <subsystem name="gyro"/>
   <subsystem name="attitude" type="infrared"/>
   <subsystem name="gps" type="ublox_lea4p"/>
   <subsystem name="navigation">
     <define name="AGR_CLIMB" value="1" />
     <define name="LOITER_TRIM" value="1" />
     <define name="WIND_INFO" value="1" />
   </subsystem>
 </target>

Let's look in more detail how this is done

Comment out or remove the following lines in the makefile section of your airframe.xml

ap.CFLAGS += -DRADIO_CONTROL
ap.srcs += radio_control.c $(SRC_ARCH)/ppm_hw.c  

Add a new xml section like this:

 <target name="fixed_wings" board="tiny_2.11">
   <subsystem name="radio_control" type="ppm"/>
 </target>

you can look in conf/airframes/microjet5.xml to see how it's done. The list of supported boards is

  • "twog_1"
  • "tiny_2.11"
  • "tiny_2.1"
  • "tiny_1.1"
  • "tiny_0.99"
  • "booz"
  • "lisa_l_1.0"