/** @file */ /** @page Page_Configurations Configurations * Each setting of the Chameleon-Mini has an active configuration, which defines the behavior of the Chameleon-Mini. A detailed description of what defines a configuration can be found at \ref ConfigurationType. * * Supported Codecs * ================ * A Configuration basically is defined by the codec it uses and by the application functions that use this codec. Currently there are two different codecs implemented: * -# The ISO14443A codec for emulation. * -# The ISO14443A codec for the reader function. * * Supported Configurations * ======================== * The following table shows which configurations are available currently. * Configuration name | Codec | Description * ------------------ | ----- | ----------- * `NONE` | None | No functionality, Chameleon-Mini does nothing, the current setting is skipped when cycling through the settings * `MF_ULTRALIGHT` | ISO14443A emulation | Emulates a MiFare Ultralight card * `MF_CLASSIC_1K` | ISO14443A emulation | Emulates a MiFare Classic 1k card * `MF_CLASSIC_4K` | ISO14443A emulation | Emulates a MiFare Classic 4k card * `MF_CLASSIC_1K_7B` | ISO14443A emulation | Emulates a MiFare Classic 1k card with 7-byte UID. * `MF_CLASSIC_4K_7B` | ISO14443A emulation | Emulates a MiFare Classic 4k card with 7-byte UID. * `ISO14443A_SNIFF` | ISO14443A emulation | Currently incomplete. Sniffs ISO14443A communication between a reader and a card. * `ISO14443A_READER` | ISO14443A reader | The Chameleon-Mini works as a reader and can process different procedures in order to obtain a cards UID etc. * * Configuration Changing procedure \anchor Anchor_ConfigurationChange * ================================ * When the configuration is changed, no matter whether by command line or during a setting change, the following steps are done: * -# The codec deinitialization function of the currently active configuration is called. * -# Possibly pending timeout commands are aborted. * -# The configuration struct (\ref ConfigurationType) for the currently active configuration is overwritten with the new configuration struct. * -# The codec initialization function of the new configuration is called. * -# The application initialization function of the new configuration is called. */