<!DOCTYPE module SYSTEM "module.dtd">

<module name="atmega_i2c_cam_ctrl" dir="digital_cam">
  <doc>
    <description>
      Digital Photo Camera Triggering (using a I2C channel)

      This module controls triggering of an attached device via an I2C command.
      Typically a remote microcontroller (atmega/arduino) will then use the triggering/zoom/power commands.
      Using the PAYLOAD_COMMAND, all functions of the camera can be controlled.
      It can trigger photos based on GPS distance, time or circle radius in both fixedwings and rotorcraft.
    </description>
    <configure name="ATMEGA_I2C_DEV" value="i2cX" description="select which i2c peripheral to use (default i2c0)"/>
    <define name="DC_SHOOT_ON_BUTTON_RELEASE" />
    <define name="DC_SHOT_SYNC_SEND" value="TRUE|FALSE" description="send DC_SHOT message when photo was taken (default: TRUE)"/>
  </doc>
  <conflicts>digital_cam,digital_cam_servo,digital_cam_uart,digital_cam_video</conflicts>
  <header>
    <file name="atmega_i2c_cam_ctrl.h"/>
    <file name="dc.h"/>
  </header>

  <init fun="atmega_i2c_cam_ctrl_init()"/>
  <periodic fun="atmega_i2c_cam_ctrl_periodic()"  autorun="TRUE" freq="10"/>
  <event fun="atmega_i2c_cam_ctrl_event()"/>

  <datalink message="PAYLOAD_COMMAND" fun="ParseCameraCommand()"/>

  <makefile target="ap">
    <configure name="ATMEGA_I2C_DEV" default="i2c0" case="upper|lower"/>
    <define name="USE_$(ATMEGA_I2C_DEV_UPPER)"/>
    <define name="ATMEGA_I2C_DEV" value="$(ATMEGA_I2C_DEV_LOWER)"/>
    <file name="atmega_i2c_cam_ctrl.c"/>
    <file name="dc.c"/>
  </makefile>

  <makefile target="sim">
    <file name="sim_i2c_cam_ctrl.c"/>
    <file name="dc.c"/>
  </makefile>

</module>

