Compare commits

...
Author SHA1 Message Date
Iceman f524d97378 Update README.md
updated in order to trigger the actions to run.
2023-06-04 18:01:13 +02:00
Iceman 6e0b127af2 Update firmware-push.yml 2023-06-01 20:31:05 +02:00
Iceman 1994131251 Update firmware-push.yml 2023-06-01 20:28:14 +02:00
Iceman c50604ab28 Update firmware-push.yml 2023-06-01 20:14:04 +02:00
Iceman c090d1362d Update firmware-push.yml 2023-06-01 19:21:52 +02:00
Iceman a3c73cd710 Update firmware-push.yml 2023-06-01 19:18:56 +02:00
Iceman c0a3e35520 Update firmware-pr.yml 2023-06-01 19:18:41 +02:00
Iceman 1033042e0b Update firmware-push.yml 2023-06-01 19:17:52 +02:00
Iceman e547d1a139 Merge pull request #26 from monster1025/ProxgrindMifareFix
Fix timeout while working with russian subway validators.
2023-06-01 14:29:46 +02:00
Iceman db4488366f Merge pull request #99 from shidevil/proxgrind
Typo in readme
2023-06-01 14:27:02 +02:00
Iceman f1706f2c3e Merge pull request #101 from gentilkiwi/proxgrind
NTAG213 and NTAG216 support in addition to NTAG215
2023-06-01 14:26:21 +02:00
Benjamin DELPY fe15f7064b NTAG213 and NTAG216 support in addition to NTAG215
Inspired from @xeonxu 's https://github.com/iceman1001/ChameleonMini-rebooted/pull/194 , a PR to support NTAG213 and NTAG216 in ChameleonMini revG - without size problem
2023-06-01 11:02:42 +02:00
shidevil 3bc9207602 Typo in readme 2022-11-27 22:28:56 +08:00
Iceman bb13d083a3 Merge pull request #94 from nvx/bugfix/iclass_update
fix bug with iclass UPDATE command
2022-07-09 05:48:54 +02:00
nvx 7667c2430d fix bug with iclass UPDATE command 2022-07-09 11:34:25 +10:00
Iceman e24a1ddd47 Merge pull request #90 from sawft99/proxgrind
Update to Readme
2022-06-28 21:11:29 +02:00
Iceman 4de793f4b1 Merge pull request #85 from xeonxu/wsl
Use a variable named DFU_PROG to identify dfu-programmer.
2022-06-28 21:10:36 +02:00
Iceman 1132f7182c Merge pull request #91 from nvx/iclass
iClass support
2022-06-28 21:09:39 +02:00
nvx 4bb28e8617 iClass support
Requires enabling in Makefile and disabling other options to fit in program space below 64k
2022-06-28 16:57:39 +10:00
sawft99 70f66f1cb8 Update README.md 2022-06-07 15:50:08 -04:00
sawft99 516e67345c Update README.md 2022-06-07 15:47:29 -04:00
sawft99 0828ed9dea Update README.md 2022-06-07 15:09:10 -04:00
sawft99 2d31453780 Update README.md 2022-06-07 14:42:59 -04:00
sawft99 c9068c49b4 Add Clone_MFU command 2022-06-03 16:13:19 -04:00
sawft99 b15ba66e24 Update README.md 2022-06-03 14:11:19 -04:00
sawft99 11844d6a36 Update README.md 2022-06-03 13:59:31 -04:00
sawft99 c94d44d690 Add info on documentation 2022-06-03 11:27:04 -04:00
sawft99 f651832afd Update README.md 2022-06-03 09:19:29 -04:00
sawft99 87be57ec64 Update README.md 2022-06-03 09:12:18 -04:00
sawft99 871112d679 Added DFU Programmer Info 2022-06-03 01:54:48 -04:00
sawft99 34e1563f60 Update README.md 2022-06-03 01:07:52 -04:00
sawft99 32312b7563 Add driver instructions
Also reorganized some parts
2022-06-03 00:27:13 -04:00
sawft99 fc62b8b37d Update README.md 2022-06-02 23:19:27 -04:00
sawft99 a47c965388 Fix links 2022-06-02 23:01:11 -04:00
sawft99 ab4c789381 Update README.md 2022-06-02 22:47:58 -04:00
sawft99 77a39bcbe6 Consistent bolding
Other minor changes as well.
2022-06-02 19:31:25 -04:00
sawft99 4dd13e7246 Spacing 2022-06-02 16:22:28 -04:00
sawft99 0539337f70 Update README.md 2022-06-02 15:37:44 -04:00
sawft99 0e89d1037a Update README.md 2022-06-02 00:53:14 -04:00
sawft99 2f5e5c2a4c Update README.md 2022-06-01 09:57:58 -04:00
sawft99 3f8abc6dcc Update README.md 2022-06-01 08:59:16 -04:00
sawft99 d0458a1659 Update README.md 2022-06-01 08:56:54 -04:00
sawft99 091cfb77e9 Update README.md 2022-05-31 18:15:49 -04:00
sawft99 e49ad0a7e9 More minor changes 2022-05-31 17:20:58 -04:00
sawft99 91dcf1167d Minor fixes
Minor fixes
2022-05-31 17:08:01 -04:00
sawft99 78a1591392 Update to Readme
Reorganized much of the info.  Removed redundant entries. Grammar changes. Consistent wording and format. Added a small amount of new info.
2022-05-31 16:39:47 -04:00
Monster 285d2f9acd Merge branch 'RfidResearchGroup:proxgrind' into ProxgrindMifareFix 2022-04-26 21:24:28 +03:00
Noe Xu 93ce9450d1 Use a variable named DFU_PROG to identify dfu-programmer. And it's convenient for using `make dfu-prog' under WSL. 2022-02-08 20:03:20 +08:00
Iceman 17f32094d9 Merge pull request #83 from ceres-c/iso15_merge_rrg
ISO15693 sniffing codec
2022-02-01 19:09:08 +01:00
Federico Cerutti 59f68ac4c9 Fixed check-size in makefile and updated readme 2022-02-01 18:07:20 +01:00
Federico Cerutti d3299fee43 Calling AppProcess as suggested by @cacke-r 2022-02-01 00:03:15 +01:00
Federico Cerutti 3b53376b56 Ported fptrs fixes 2022-02-01 00:03:13 +01:00
Federico Cerutti 89dde5c609 Printing unknown log entries hex code 2022-02-01 00:01:54 +01:00
Federico Cerutti c692e0ea11 ISO15693 sniff codec 2022-01-31 23:59:50 +01:00
Iceman bea9cc45be Merge pull request #81 from bettse/patch-1
Update README.md
2022-01-08 21:14:47 +01:00
Eric Betts 4a7ab54bca Update README.md
Add link to iOS app
2022-01-08 09:57:24 -08:00
Iceman 90f04ac26a Merge pull request #66 from mgp25/proxgrind
NTAG 215 Support + ChamTool update
2021-08-18 20:42:31 +02:00
un1k0n eb9e3965b2 ChamTool: Updated clear slot function 2021-05-25 16:24:47 +02:00
mgp25 a35544b18f Chamtool: Clear slot 2021-05-25 01:25:37 +02:00
mgp25 74bf966f03 Create .gitignore 2021-05-24 22:50:31 +02:00
mgp25 1235ee1198 NTAG215 from @gcammisa 2021-05-24 22:50:24 +02:00
Iceman 6a2a976fd9 Merge pull request #59 from nieldk/proxgrind
Corrected check-size
2021-02-02 15:48:03 +01:00
Niel Nielsen 29463e885d Corrected check-size
Checksize added --mcu=atxmega128a4u to output programsize and not eep size
2021-02-02 15:26:25 +01:00
Iceman 33a87501db Merge pull request #58 from nieldk/proxgrind
Update Makefile
2021-02-02 14:30:15 +01:00
Niel Nielsen 5845b7bba9 Update Makefile
Makefile updated to calculate elf size correctly
2021-02-02 14:21:12 +01:00
iceman1001 e873206fb4 re-enable sniff/clone 14a. 2020-11-27 23:23:46 +01:00
Iceman 93d4ee1ebf Merge pull request #53 from The-White-Fox/FixComments
Fix mandarin chinese comments
2020-11-27 19:46:41 +01:00
Iceman 3ace917971 Merge pull request #48 from Smith-S/proxgrind
Fix some minor typo
2020-11-27 19:46:07 +01:00
Iceman 844843d248 Merge pull request #46 from nieldk/proxgrind
Update Makefile
2020-11-27 19:45:25 +01:00
Iceman 59846bbe11 Merge pull request #47 from ceres-c/elf-sections-fix-rrg
Elf sections size check before flashing
2020-11-27 19:44:38 +01:00
The-White-Fox 1c6e23b129 Fix mandarin chinese comments
Fix some nice but mandarin chinese comments and replaced  it with its google translation.
Should be buildable for now (cause some unexplicable build errors in first try).
2020-11-10 14:50:50 +01:00
Federico Cerutti 10ac19d698 Additional reader mode ifdefs 2020-10-15 21:02:24 +02:00
Federico Cerutti 5ef496816d Working in windows under cygwin 2020-10-15 02:02:02 +02:00
Federico Cerutti 9c135cd1e4 Disabled sniff/reader codecs compilation
Had to make some minor changes to Commands.c and CommandLine.c
to allow building without these codecs
2020-10-15 02:01:54 +02:00
Federico Cerutti bc3ae6b768 Elf sections check before flash
Due to the addition of new codecs and applications, code size grew to
overwrite the part of FRAM currently used to store card slots (settings).
This simple (although hacky) makefile command verifies if such an
issue will occur before flashing the firmware.
2020-10-15 01:59:57 +02:00
Niel Nielsen f9be25ea06 Update Makefile
Add LTO to reduce final binary size, which fixes issues witg eg long-press
2020-10-14 21:25:41 +02:00
Smith-S 353f945313 Fix some minor typo
Typo minor fix.
2020-10-13 16:18:42 +07:00
Iceman 7f310af7ad Merge pull request #41 from luminouw/feature/custom_atqa_sak
Added ATQA and SAK commands, ported from RevE firmware
2020-09-17 20:20:37 +02:00
luminouw 7055e26170 Added ATQA and SAK commands, ported from RevE firmware 2020-09-17 19:53:29 +02:00
Iceman d4a79265f1 Merge pull request #40 from aveao/rrg-cm-ceresfix
Port ISO15693 codec and applications updates by ceres-c to the right branch
2020-09-15 20:16:06 +02:00
Ave c5b07988dc Merge remote-tracking branch 'ceres/rrg-iso15693-codec-upd' into proxgrind 2020-09-15 21:08:19 +03:00
Iceman 152dc71cb3 Merge pull request #39 from linuxgemini/ghactions-improved
Improved Github Actions
2020-09-13 18:45:47 +02:00
İlteriş Eroğlu e356af95a7 Create firmware-pr.yml 2020-09-13 14:37:27 +03:00
İlteriş Eroğlu d0b3db9af6 Move current conf to push only + auto pre-release 2020-09-13 14:36:51 +03:00
Iceman 6b5857e90c Merge pull request #38 from linuxgemini/githubactions
Create initial CI configuration
2020-09-13 01:27:08 +02:00
İlteriş Eroğlu edb986656b Create firmware.yml 2020-09-13 02:14:37 +03:00
Iceman 2a9dcfadd2 Merge pull request #36 from aveao/rrgulfix
UL: Handle compatibility writes correctly
2020-09-13 00:53:48 +02:00
Federico Cerutti ebd6ab5842 Fixed timing issues with Read Multiple Blocks
ISO15693 CRC calculation is slow and it delayed too much transmission of long
frames. Some readers marked transmission as unsuccesfull and ignored data.
Moving CRC calculation inside the codec allows to start modulating the field
while the CRC is not yet ready but, by the time it has to be trasmitted,
calculation will be done.
This fixes https://github.com/emsec/ChameleonMini/issues/262

In EM4233, there still are issues with Read Multiple command when block
locking status is requested for more than 0x1F blocks

Implemented a check in ISO15693 codec to avoid out of bound CRC writes.
2020-09-10 16:05:35 +02:00
Federico Cerutti d43942469a Fixed hasty copy-paste 2020-09-09 20:13:59 +02:00
Ave b430b37f70 UL: Handle compatibility writes correctly 2020-09-08 00:10:35 +03:00
Federico Cerutti c6b936640f Improved ISO15693 applications performance
Removed the if-elseif in EM4233 to use a switch case which yields minor
speed improvements of ~1,5 microseconds
Avoid reading the UID every AppProcess tick in both EM4233 and TiTagIT
to save ~11 microseconds.
2020-09-04 01:48:39 +02:00
Federico Cerutti 4135ca135c ISO15693 Codec minor fixes
Unvarying interrupt configuration moved from StartISO15693Demod to CodecInit
Fixed an old issue (https://github.com/geo-rg/ChameleonMini/issues/4) properly
overwriting the PERBUF register when no data has to be sent
Loadmodulation ISR has a new GOTO label which is called when ISO t1 time is
elapsed, but data is not yet ready. This way it is possible to avoid checking
for state validity on every ISR hit
New inline function to clean up interrupts when field noise (garbage)
is incorrectly picked up
Bitrate configuration in ISO15693_EOC has been simplified

Cleaned up header file with useless defines. Moved defines to .c when there was
no need to share them with other source files

Annotated numer of clock cycles consumed by asm ISR sharing routine

As usual, this work was done with @MrModDom
2020-09-04 01:41:22 +02:00
Federico Cerutti 8494044b98 Merge fixes for GCC 10 2020-08-28 19:21:43 +02:00
Federico Cerutti c82572daf3 Updated code to build with GCC 10 - Updated ISR Sharing
Since GCC 10, the compiler defaults to -fno-common, thus variables with
multiple tentative definitions result in linker errors.
We've (me and @MrMoDDoM) extern-ed the shared variables to fix the issue.

Also, when I implemented ISR sharing, somehow I forgot about a function
which was shared as well, so I fixed that mistake and added a couple of
comments on how shared function calls work.
2020-08-26 20:19:33 +02:00
Federico Cerutti 86be22d2c7 Shared a function I forgot about, documented sharing practises 2020-08-26 17:19:05 +02:00
DXL cc2b0dbd20 Update README.md 2020-08-26 22:44:17 +08:00
DXL c4bf25920b Update README.md 2020-08-26 22:43:49 +08:00
DXL 3aa7f30c4a ChameleonTiny Android APK 2020-08-07 19:28:08 +08:00
DXL 5c6e4084f2 Delete Chameleon_Work_20200603-262956-o_1e9sqf190sg18bc1ftd121nr7pr-uid-2340331.apk 2020-08-07 19:27:35 +08:00
DXL a4f8b60921 Add files via upload 2020-08-07 19:25:56 +08:00
Monster1025 58209fc9f4 Fix timeout while working with russian subway validators. 2020-07-01 17:16:40 +03:00
Willok acdfb6c010 Merge branch 'proxgrind' of https://github.com/RfidResearchGroup/ChameleonMini into proxgrind 2020-06-22 11:22:04 +08:00
Willok 9b0e40f4c5 update hex file 2020-06-22 11:09:48 +08:00
Willok 4ac715463c not allow to write block 0 2020-06-22 11:07:52 +08:00
Iceman 7c8f7dd08f Merge pull request #24 from nieldk/proxgrind
L- and R- button long press options added
2020-05-20 18:39:56 +02:00
Niel Nielsen 2192178dd4 Update Makefile 2020-05-20 16:32:10 +02:00
Niel Nielsen c8718a976c Update Settings.c 2020-05-20 16:29:38 +02:00
Niel Nielsen 9b7b53478d Update Button.h 2020-05-20 16:27:36 +02:00
DXL ba1c451e10 Update README.md 2020-05-10 17:50:38 +08:00
Iceman 76c7ee803f Merge pull request #22 from grspy/proxgrind
Fixed commands list for complete help output
2020-04-20 19:54:45 +02:00
unknown 907fae6fdb Fixed commands list for complete help output 2020-04-19 21:50:36 +03:00
DXL d6b0254bf9 Update README.md 2020-04-20 00:57:42 +08:00
DXL ac12a04d31 Update README.md 2020-04-20 00:56:38 +08:00
DXL ffd0416d18 Add files via upload 2020-03-22 15:41:37 +08:00
DXL 00e3eb8674 Update README.md 2020-03-19 13:21:13 +08:00
DXL 9cb5d37b4e Update README.md 2020-03-19 13:13:36 +08:00
DXL 4a473d6023 Update README.md 2020-03-17 16:52:06 +08:00
DXL 83a27f3917 Update README.md 2020-03-17 12:40:13 +08:00
DXL dd41d79d43 Update README.md 2020-03-17 12:37:08 +08:00
DXL bff753628d Update README.md 2020-03-17 12:36:38 +08:00
DXL 09d065a16b Update README.md 2020-03-17 12:34:11 +08:00
DXL a20dd0f270 Update README.md 2020-03-17 12:30:31 +08:00
DXL 11b94241eb Update README.md 2020-03-17 12:30:06 +08:00
DXL 11633e29e1 Update README.md 2020-03-16 15:52:14 +08:00
DXL 86c837b0ce Update README.md 2020-03-16 15:49:36 +08:00
DXL a08fac39d8 Update README.md 2020-03-16 15:49:22 +08:00
DXL b5126deafd Update README.md 2020-03-16 15:46:29 +08:00
DXL a68ad0fca0 Update README.md 2020-03-16 15:06:05 +08:00
DXL 92981f9f34 Update README.md 2020-03-16 14:55:15 +08:00
DXL 6765b5d2b1 Update README.md 2020-03-16 14:54:00 +08:00
DXL 44838bc178 Update README.md 2020-03-16 14:51:48 +08:00
DXL 6971b02427 Update README.md 2020-03-16 14:50:36 +08:00
DXL 9757d6158c Update README.md 2020-03-16 14:49:46 +08:00
DXL d421dce64e Update README.md 2020-03-16 14:48:32 +08:00
DXL deb4719ce3 Update README.md 2020-03-16 14:33:20 +08:00
DXL a4e0ecd30d Update README.md 2020-03-16 14:31:46 +08:00
DXL e21eba770e Merge pull request #16 from xianglin1998/patch-1
Update README.md
2020-03-16 09:35:31 +08:00
DXL d298f9b816 Update README.md 2020-03-13 20:22:44 +08:00
Willok a83b6feb38 Does not respond to the RATS instruction unless SAK contains 0x20 2020-02-03 17:24:23 +08:00
Willok 11a8cc57ec Fix the UID mode under PM3 2020-01-08 18:39:48 +08:00
Willok 12fadd40d0 Commit new README.md 2019-12-26 20:22:20 +08:00
Willok ff461637ff modify default setting, add default card data 2019-12-24 12:22:11 +08:00
Fabian 22023b7356 add macro for shared isr call 2019-12-13 10:46:58 +01:00
Willok 51ce8fb67c Modify the state on DetectionMode 2019-12-13 17:44:35 +08:00
Fabian d81c339d5f update LATEST 2019-12-11 15:13:47 +01:00
fptrs 868d8b6ad9 Merge pull request #243 from ceres-c/master
Faster ISR sharing in ASM
2019-12-11 15:00:31 +01:00
Federico Cerutti 247a0ffd55 Faster ISR sharing in ASM
While in the process of writing a new codec I stumbled upon the long
standing issue of ISR sharing in AVR MCUs.
Actually this is accomplished with an ISR written in C, which simply
calls another plain C function referenced via a function pointer
updated at runtime.
This approach is slow because GCC can't optimize the ISR, since it
does not know which registers will be used, so it defaults to push/pop
all of them.

My solution keeps the concept of pointers to functions, but greatly
improves speed by reducing the ISR itself to the bare minimum to call
another function, which will be compiled by GCC as a signal.
This means all interrupt optimizations will be put in place by GCC,
while ISRs can be still written in plain C code, but the overhead is
now much smaller. It has proven to reduce by 20 the number of
instructions for every ISR, mainly pushes/pops, which cuts the clock
cycle count down by 30 cycles (1 cycle for every push, 2 for pop).
In time units, this means 1.1 uSec are saved for every ISR invocation
and every shared ISR now takes only 13 clock cycles more than the
"bare" one.

A new ISR_SHARED function type has been defined in Common.h to hide
away from the programmer GCC attributes. All new shared interrupt
handling routines should be defined of this type to prevent
stack and registers corruption.

Minor changes were made to Codec.h to allow including it in .S files.
2019-12-08 14:11:05 +01:00
Fabian 1a41b8a321 fix merge issue 2019-12-06 16:47:18 +01:00
Fabian 1c8b05db25 Merge branch 'master' of https://github.com/emsec/ChameleonMini 2019-12-06 15:01:53 +01:00
Fabian a1ea90a356 Merge branch 'epozzobon-master' 2019-12-06 15:00:46 +01:00
Fabian 7d204284c2 Merge branch 'master' of git://github.com/epozzobon/ChameleonMini into epozzobon-master 2019-12-06 14:59:12 +01:00
fptrs 3bb7fc0eb1 Merge pull request #241 from hsanjuan/docs/clone_mfu
Docs: add documentation for CLONE_MFU button and command actions
2019-12-06 14:47:35 +01:00
Willok 6606f8d0ff make style 2019-12-06 10:18:25 +01:00
Willok 1339e6350d Fix:not saving card data when it is smaller than one page(256B) 2019-12-06 10:18:22 +01:00
Willok 5dcf851734 upload the missing file 2019-12-06 10:18:20 +01:00
Willok 414960f733 Fix uidmode function
Adjust the serial communication buffer size
2019-12-06 10:18:18 +01:00
Willok 0cf47594ef RevG rebooted initial release 2019-12-06 10:18:01 +01:00
Hector Sanjuan e83cdcd4af Docs: add documentation for CLONE_MFU button and command actions 2019-11-25 10:41:17 -06:00
Fabian dabef1b757 update LATEST 2019-11-25 13:31:45 +01:00
Fabian c857696bab make style 2019-11-25 13:29:14 +01:00
fptrs 0290bb77a7 Merge pull request #239 from hsanjuan/feat/mfu_clone
CLONE_MFU: command and button action
2019-11-25 13:27:26 +01:00
Hector Sanjuan 31b0b6391a CLONE_MFU: command and button action
This adds automatic cloning of Mifare Ultralight cards to the selected
setting.

Currently, only the DUMP_MFU command existed. In order to clone a Mifare
Ultralight card, the user had to convert the hex output of DUMP_MFU to binary
and upload the result to the card.

The CLONE_MFU command will attempt to read and store the Mifare Ultralight
contents directy to the slot which is then transitioned to emulation mode.

The CLONE_MFU button action does the same, so the board can be configured to
clone cards by simply selecting a slot with one button and cloning with the
other.
2019-11-20 07:04:55 -06:00
Fabian a35610f6a7 run make style #237 2019-11-15 10:21:40 +01:00
fptrs c0845811d1 Merge pull request #237 from doegox/make_style
make style proposition
2019-11-15 10:02:00 +01:00
Fabian 3a57fee52d updated LATEST 2019-11-11 20:20:44 +01:00
Philippe Teuwen bece629f9c make style proposition 2019-11-07 12:36:34 +01:00
Enrico Pozzobon 0bca2781ab Modified Reader14443A to only use configured card types
This allows the Reader14443A.c file to be compiled successfully when
the support for some card types is disabled in the Makefile
2019-11-07 10:24:46 +01:00
fptrs 7061093657 Merge pull request #231 from slaenger/master
Mifare Ultralight C Implementation
2019-10-01 15:04:30 +02:00
slaenger b89ff71075 removed CryptoEncrypt-/DecryptDEA(). 2019-09-17 11:27:37 +02:00
slaenger abb021fd5c fixed indentation 2019-09-17 11:01:48 +02:00
slaenger 4923dc9322 Added triple DES Implementation (from dev-zzo's DESFire branch). 2019-09-17 10:48:44 +02:00
slaenger 96ff627f48 Added Mifare Ultralight C support.
Changed SettingsSetActiveById() to first MemoryRecall() before initializing Application.
2019-09-17 10:25:14 +02:00
slaenger f02a45b6ef 2019-09-17 10:24:23 +02:00
fptrs 64eef24483 Merge pull request #227 from lavanoid/master
Add Mifare Mini support
2019-08-19 17:15:26 +02:00
Lava Git 0fdc1b43ce Add Mifare Mini support 2019-08-16 14:27:48 +01:00
Georg 8ffa1aad95 updated LATEST 2019-03-21 17:12:29 +01:00
Georg aa5608cb7f fixes bug with single write in TI TagIt emu 2019-03-21 16:28:27 +01:00
Georg e4ce2cabc1 fixed bugs with status ID and return on end of non-void function 2019-03-21 16:27:56 +01:00
Georg 5e14948f73 add TODO tag 2019-03-21 16:27:36 +01:00
Georg 6e9b8563ee fixed bug with volatile position 2019-03-21 16:26:36 +01:00
Georg Land 8a2755eaa0 Merge pull request #182 from bosb/ISO15693_base
Iso15693 base
2019-03-21 16:04:22 +01:00
Federico Cerutti fc24f84a63 Fixed a couple of validity checks and updated Titagitstandard.c to new PrepareFrame 2019-03-05 21:35:11 +01:00
Federico Cerutti 9ae3aeced3 Added stub EM mutual auth commands and fixed a couple of bugs
E0 and E1 commands will be expanded as reverse engineering continues. At the moment E0 will be used to work on reader response to A1 random number.
Fixed 2 different bugs in Login. Fixed Lock DSFID command
Removed frame integrity checks from PrepareFrame, since it's already needed to do them before PrepareFrame should be called
2019-03-05 21:34:56 +01:00
Federico Cerutti 562764ef1a Fixed a bug with with addressed Custom/Proprietary commands 2019-03-05 21:34:36 +01:00
Georg Land 4cd514238b Update README.md 2019-02-27 09:14:02 +01:00
Thorsten f79101b28d Revert "Respect the chosen UID"
This reverts commit 9b2dd662ad.
2018-12-30 14:02:18 +00:00
Thorsten 9b2dd662ad Respect the chosen UID 2018-12-30 13:53:12 +00:00
Thorsten 6263f529ed merged ceres-c 2018-12-30 13:46:45 +00:00
Federico Cerutti 3c775c06cc Stupid me introduced a bug in Write_Single 2018-12-28 17:10:02 +01:00
Federico Cerutti 39c251c7d5 Fixed Select command and some minor bug fixes
Select command did not fall back to READY state if Select was issued on another tag.
PrepareFrame allowed the tag to respond to Selected requests even if we were not in SELECTED state.
Also fixed Read Single and Read Multiple out of bound reads in case of addressed commands.
2018-12-28 13:42:17 +01:00
Federico Cerutti 5f6c35d7a6 First draft of anticollision sequence
Only 1 slot mode has been implemented, but it seems to work even for 16 slots mode. This needs to be checked with other readers.
2018-12-28 00:28:22 +01:00
Federico Cerutti f3f59beb9a Added 010 hex Editor template file
To aid in quick dump modifications
2018-12-27 01:21:07 +01:00
Federico Cerutti 9b5dfc2708 Updated EM4233 header and example dump
We thought that the user had access to 64 blocks, while in EM4233 factsheet it's stated that only 52 blocks are available
2018-12-27 00:16:34 +01:00
Federico Cerutti ab1fdddb16 Removed old LockBit masks and updated a couple of commands to mimick real tag behaviour 2018-12-26 23:13:57 +01:00
Federico Cerutti 571795154f Merged EM4233 into ISO15693_base 2018-12-26 20:12:59 +01:00
Federico Cerutti 9a0ee807aa Added comments and fixed a bug in codec's source
ISO15693 codec was undocumented and without comments in relevant parts. I decided to spend 3 days diving into XMega interrupts and Chameleon's lowest level code. Now, I hope, it should be more readable for everyone, even newbies like my old self was before I started this deep dive.

Also, I fixed the bug referenced here https://github.com/geo-rg/ChameleonMini/issues/4 which locked the chameleon when no response was to be sent to the reader
2018-12-26 19:51:30 +01:00
Federico Cerutti e92b3588e0 Resetting LoadModState to avoid erratic behaviour 2018-12-26 00:53:17 +01:00
Federico Cerutti 9ba4f75b66 Current codec status, not working after APP_NO_RESPONSE 2018-12-25 13:46:30 +01:00
Federico Cerutti cf27a07a8d Indentation fixes 2018-12-19 17:26:58 +01:00
Federico Cerutti 1b38d14b2b Refactored ReadMultipleBlocks command to partially cope with timing issues 2018-12-19 16:17:13 +01:00
MrMoDDoM be729b7573 Fixed a bug in prepareFrame on uid pointer into buffer 2018-12-18 16:42:10 +01:00
MrMoDDoM d7f2b7525b Modified EM4233_STD_MEM_SIZE to reflect real tag size 2018-12-18 01:20:32 +01:00
MrMoDDoM 31d2320e8e Test to sniff EM4233 login password 2018-12-18 01:06:25 +01:00
MrMoDDoM 98141b6769 Added fake login command 2018-12-18 00:42:19 +01:00
Federico Cerutti aa237f0767 Implemented Select command and fixed PrepareFrame to be compliant with Custom and Proprietary commands 2018-12-18 00:13:57 +01:00
Federico Cerutti 7bc809cc16 Backporting bug fixes and additions from EM4233 branch 2018-12-16 20:03:02 +01:00
MrMoDDoM 0dfbe01b28 Added EM4233 example dump and bug fixes 2018-12-14 21:41:36 +01:00
MrMoDDoM 41d4f75ff6 Fixed some bugs and implemented almost all optionnal ISO standard commands 2018-12-14 17:02:15 +01:00
MrMoDDoM b28d8cb337 EM4233 first draft 2018-12-10 19:43:43 +01:00
Federico Cerutti fda9f07894 Fixed a bug in write and lock commands - Missing parenthesis 2018-12-10 12:55:38 +01:00
Federico Cerutti 82d5a2c562 Checked read and lock out of bound errors against real tag and implemented in software. Updated authors 2018-12-04 21:29:47 +01:00
MrMoDDoM 612724f5b0 Fixed nasty bug in ISO15693PrepareFrame, removed unnecessary includes and implemented failsafe to command not supported to fix problems with Android apps. Everything just works. 2018-12-04 21:29:25 +01:00
Federico Cerutti 314772a6ea Fixed couple of indent mistakes 2018-12-04 21:29:03 +01:00
Federico Cerutti ade5a9d5ab PrepareFrame function first draft, there might be performance issues 2018-12-04 21:28:17 +01:00
Federico Cerutti 3d253d2848 Removed unsupported command ISO15693_CMD_RESET_TO_READY 2018-12-04 21:26:04 +01:00
Federico Cerutti dfe0deccd7 Removed testing stuff and removed todo 2018-12-04 21:25:49 +01:00
Federico Cerutti 1c728851c6 Added bitmask to track locked blocks, Lock Block command, sanity checks on received data. 2018-12-04 21:25:33 +01:00
MrMoDDoM 3b88299a46 Added tag family configuration 2018-12-04 21:25:05 +01:00
Federico Cerutti 1da44037c6 Checked read and lock out of bound errors against real tag and implemented in software. Updated authors 2018-12-04 18:45:43 +01:00
Federico Cerutti edb1d93084 Checked read and lock out of bound errors against real tag and implemented in software. Updated authors 2018-12-04 18:00:37 +01:00
MrMoDDoM 168b565f23 Fixed nasty bug in ISO15693PrepareFrame, removed unnecessary includes and implemented failsafe to command not supported to fix problems with Android apps. Everything just works. 2018-12-04 17:33:46 +01:00
Federico Cerutti c8496d2087 Fixed couple of indent mistakes 2018-12-04 11:03:41 +01:00
Federico Cerutti d091e2291b PrepareFrame function first draft, there might be performance issues 2018-12-03 23:07:50 +01:00
Federico Cerutti 28f647818e Removed unsupported command ISO15693_CMD_RESET_TO_READY 2018-11-29 18:33:30 +01:00
Federico Cerutti 3ce502158d Removed testing stuff and removed todo 2018-11-29 18:17:34 +01:00
Federico Cerutti 4e03403b09 Added bitmask to track locked blocks, Lock Block command, sanity checks on received data. 2018-11-29 18:00:36 +01:00
MrMoDDoM b83b4f80e7 Added tag family configuration 2018-11-28 18:40:51 +01:00
Thorsten d6ac530972 ISO15693_MIN_FRAME_SIZE for iso15 should be 4 2018-11-22 17:00:29 +01:00
Federico Cerutti d65f88d408 Fixed indentation. Sorry, it's driving me nuts 2018-11-12 15:43:14 +01:00
Federico Cerutti 119096971e Fixed indentation. Sorry, it's driving me nuts 2018-11-12 15:22:49 +01:00
Rickventura 258ea95de2 TITagitstandardFlipUid refactored 2018-11-12 14:01:16 +01:00
Thorsten 8dbf39096b Merge branch 'master' into ISO15693_base 2018-11-12 12:40:58 +01:00
m2otech d1cc3e0256 Fixed flags in response to addressed signle read without option flags 2018-11-11 13:03:18 +01:00
Federico Cerutti 804ed4cb02 Added standard error codes and flags in ISO15693-A.h. Replaced magic numbers in TITagstandard.c and refined the state machine, also @m2otech moved UID flipping to TITagitstandardFlipUid. calloc is not used anymore (to avoid compiler warnings and unnecessary includes). Moved definitions to TITagstandard.h. Changed ISO15693Addressed calls in Vicinity.c and Sl2s2002.c to ISO15693AddressedLegacy. The latter should be removed sooner or later... 2018-11-10 23:05:55 +01:00
Federico Cerutti 10ad3cb491 Modified ISO15692-A.h CompareUid, temporary fix to Sl2s2002.c and Vicinity.c 2018-11-10 18:51:19 +01:00
Thorsten Bosbach db9dc8efd8 TITagitstandard to unix lineends 2018-11-10 10:11:50 +01:00
Federico Cerutti ede8b48820 Fu..ed up a define with commit 288f6721b10299548e6a4cdd34017535f9e0b542 2018-11-10 10:04:28 +01:00
Federico Cerutti 2ba1441d1b Switched to ISO15693Addressed. Fixing indentation 2018-11-10 10:03:59 +01:00
Federico Cerutti c9f0408917 Reverse the UID before sending or saving it (Thanks @m2otech). Fixed a double define on the same constant 2018-11-10 09:58:39 +01:00
Federico Cerutti be48e0b751 Checked with a real tag and the error is correct. Also fixed a small error which let the tag still go out of bound. 2018-11-10 09:58:01 +01:00
Federico Cerutti b0f40ebc9a Testing a check for out of bound access when requesting invalind sectors from the tag. Fixed indentation. 2018-11-10 09:57:36 +01:00
Federico Cerutti 681e793c8d Added all response error codes from the standard 2018-11-10 09:56:00 +01:00
Thorsten Bosbach cbfa4855bc Application.h back to unix lineends 2018-11-10 09:55:20 +01:00
Federico Cerutti 429f541eab Porting Rickventura changes to the main repo 2018-11-10 09:42:49 +01:00
Thorsten 9636574341 Update Sl2s2002.c
option bit also for sending security state in single read
2018-10-28 23:34:55 +01:00
Thorsten Bosbach 94a1f460eb forgot setting ISR - feels very slow now with sharing ISR 2018-10-20 21:28:16 +02:00
Georg Land cd21858b23 Update README.md 2018-10-17 16:59:45 +02:00
Thorsten Bosbach 35cd58d048 Buildable, ISR sharing 2018-10-17 07:46:57 +02:00
Thorsten 3484ce8288 Merge branch 'master' into ISO15693_base 2018-10-17 00:29:09 +02:00
Thorsten Bosbach ade2328087 ISO15: changed empty lines, fixed LOADMOD_SOF_DUAL + LOADMOD_BIT0_DUAL + LOADMOD_BIT1_DUAL 2018-10-16 23:45:43 +02:00
Georg Land a0b78908a5 Merge pull request #102 from j-xander/patch-1
Added New Options to chamtool
2018-10-04 10:28:40 +02:00
Georg Land 1fc8f129cd Merge branch 'master' into patch-1 2018-10-04 10:28:21 +02:00
Georg e8500b5db7 added LATEST firmware 2018-09-12 14:55:36 +02:00
Georg Land 10144f10d8 Merge pull request #181 from gypsophlia/DecodeMFDPython-pr
Upgrade chamlog tool, Decode Mifare DESFire and remove parity bit
2018-09-12 13:51:53 +02:00
Georg Land 1f435b8113 Merge branch 'master' into DecodeMFDPython-pr 2018-09-12 13:51:39 +02:00
Georg Land 409b0e428c Merge pull request #180 from gypsophlia/SniffBothWay14443-pr
Sniff Both Way 14443
2018-09-12 13:43:32 +02:00
chenzitai 2af62ab8f8 Add decode additional frame for readdata command 2018-08-19 15:39:49 +01:00
Thorsten Bosbach d0c0da7d70 get iso15 buildable, runable and accepted by android reader 2018-08-18 12:37:59 +02:00
georg 6c1dabd92f fixes (e.g. PageAddressCount instead of ...End) 2018-08-17 21:15:41 +02:00
georg 60607f37a8 added vdwels changes 2018-08-17 21:12:49 +02:00
georg b1f0da0c33 added ISO15693 codec 2018-08-17 21:05:17 +02:00
chenzitai 2be9b9e76e Fix chamtool: upgrade command gives exception
(cherry picked from commit 592b851)
2018-08-15 23:15:10 +01:00
chenzitai 9e89f19353 Fix bug: number of returnd FileIDs
(cherry picked from commit e1761af)
2018-08-15 23:15:02 +01:00
chenzitai 070ed1556b Fix bug(lengthCheck,decodeAPPIDs)
(cherry picked from commit d6ea321)
2018-08-15 23:14:58 +01:00
chenzitai 336a32d1e7 Add a parameter for setting logmode in chamtool
(cherry picked from commit 4fb21fa)
2018-08-15 23:14:53 +01:00
chenzitai 1d2847cdec Add decoder selection parameter
-d MFDESFire/None for different cards

(cherry picked from commit 93635d9)
2018-08-15 23:14:49 +01:00
chenzitai bc75cb982f Finish decoding # Application Level Commands commands of MFDESFire
(cherry picked from commit c0e0607)
2018-08-15 23:14:44 +01:00
chenzitai f2d78eeb25 Finish decoding Data Manipulation Commands commands of MFDESFire
(cherry picked from commit 502d951)
2018-08-15 23:14:39 +01:00
chenzitai f57207d2f1 Finish decoding PICC level commands of MFDESFire
(cherry picked from commit 84f636a)
2018-08-15 23:14:35 +01:00
chenzitai 89b29415aa Fix bug: parsing SAK and ATS wrong because of non-stateful
(cherry picked from commit 32b2e88)
2018-08-15 23:14:30 +01:00
chenzitai abff0402f6 Full implement decoding half-Duplex Data Trans Protocol in iso14443-4 (Show PCB Block infos)
(cherry picked from commit 9f469be)
2018-08-15 23:14:26 +01:00
chenzitai 0e26656eb4 Full implement decoding security related CMD in MFDESFire Sniffing
(cherry picked from commit 210fd9f)
2018-08-15 23:14:21 +01:00
chenzitai 9bfcb942dc Add Color to Note
(cherry picked from commit 2ef5769)
2018-08-15 23:14:16 +01:00
chenzitai 13e87a0b65 Decode Basic I-Block and MF DESFire Ev1 APP Data in SniffingMode
EV1: AuthAES, Select APP, GetAPPIDs, ReadData

and decode I-Block

(cherry picked from commit 5a14e1b)
2018-08-15 23:14:11 +01:00
chenzitai 56b17302df Add decoding ATS in sniffing mode
(cherry picked from commit 1ef1af2)
2018-08-15 23:14:05 +01:00
chenzitai 686cbf011e Add decode functions for card response in anti collision phase
(cherry picked from commit b4ca798)
2018-08-15 23:13:57 +01:00
chenzitai c145976f3f Add CRC_A check function for Decode Reader SELECT and RATS command
(cherry picked from commit 4eec449)
2018-08-15 23:13:44 +01:00
chenzitai 7cc3793033 Add commands for setting threshold and upgrade
(cherry picked from commit d43975e)
2018-08-15 23:13:37 +01:00
chenzitai 74010123cd Add basic ISO14443 log data parser for Reader side traffic
Can parse: SELECT, HALE, RATS, PPS, DESELECT

(cherry picked from commit aa46598)
2018-08-15 23:11:41 +01:00
chenzitai eea78c8f56 Decode sniffing data with parityBit in Python Software
If parity bit check failed, ! is appended to the data and raw data is diaplayed

Currently Software layer parity bit check and removal is only enabled in sniffing mode

(cherry picked from commit 2cfd54a)
2018-08-15 23:09:22 +01:00
chenzitai daf51f28d7 Continue threshold searching from the last searched value or the current configured value
(cherry picked from commit f3aa7b2)
2018-08-15 22:49:21 +01:00
chenzitai 86d47110a9 Basic auto calibrate for sniffing mode.
Started from the smallest threshold and when the first good threshold is obtained, stop.

May also need to extend the TIMEOUT to make this work.

Need the reader reading all the timing when sniffing in order to auto calibrate

(cherry picked from commit 2c3d5f5)
2018-08-15 22:49:15 +01:00
chenzitai 9c37cf758b Trace the Reader and card status in sniffing mode
This will prepare for the autocalibrate of threshold

If card selection fully detected, then the threshold is good,
Otherwise it is not good.

(cherry picked from commit f5c8485)
2018-08-15 22:49:10 +01:00
chenzitai 823602c721 Add Framework for autocalibrate of Sniffing Mode
(cherry picked from commit c8606be)
2018-08-15 22:49:02 +01:00
chenzitai 14e1738153 Optimise the Card->Reader Manchester decoder in Sniffing to make it faster
It now decode and sample in the same time, so the decode half bit sampling to Manchester in the CodecTask can be removed.

This optimisation may also fix the bug that the CodecTask not finished after start of Reader->Card Sampling and make the reader->Card sampling not in perfect timing and cause the  Reader ->Card Sniffed data to be wrong.

Trace from oscilloscope for the Problem:

ReaderSniffing Enable
    __________                                    _________
__|                |____________________|              |_________
CardSniffing Enable
                            _____________                          _______
________________|                     |______________|
Task
                       __                           ___----
_|__|__|__|___|  |__|__|__|__|__|_|           |__|__|__|__|

"-" indicate the problem

(cherry picked from commit a246b98)
2018-08-15 22:48:44 +01:00
chenzitai 59d8e1739d Refactor state and flags in SniffISO14443-2A.c
(cherry picked from commit f3dd397)
2018-08-15 22:48:37 +01:00
chenzitai 396cc21be1 Start reader sniffing right after card sniffing finished.
This fix the bug that the sniffing get wrong data when the time gap between card signal and reader signal is too small

(cherry picked from commit 573cb49)
2018-08-15 22:48:22 +01:00
chenzitai 7af4cc5ee1 Longer reader pending timeout according to ISO-14443-4 5.5
(cherry picked from commit 4347afc)
2018-08-15 22:48:14 +01:00
chenzitai 14a6bc3c74 Fix bug, card traffic is not right when using logmode=memory
Print log after a round finished

Otherwise it will take too much cpu cycles then the card traffic sniffing may not start in time

(cherry picked from commit 48c89f5)
2018-08-15 22:47:36 +01:00
chenzitai 2a3b5c51ef Add new log type for sniffing log
(cherry picked from commit e63396e)
2018-08-15 22:47:22 +01:00
chenzitai bf41815dbd Sniffing Code Optimization
Remove code related to FDT in sniffing mode

Remove some redundant variables

(cherry picked from commit 7254eb2)
2018-08-15 22:46:59 +01:00
chenzitai cb49799de1 Fix bug: ACA interrupt start after the card->Reader traffic start, so sometimes get not complete trace
Another buffer used for store card->reader traffic is added, so that card->reader traffic sniffing can start right after the reader->Card trafic sniffing finished.

(cherry picked from commit e074fcc)
2018-08-15 22:46:53 +01:00
chenzitai 6f020e492f Remove unused flags
Add timeout for resetting to Reader->Card sniffing when no data get from Card->Reader sniffing

(cherry picked from commit 6e88ae7)
2018-08-15 22:46:47 +01:00
chenzitai 2fa4a94fb9 name Interrupt vectors
(cherry picked from commit 8d15036)
2018-08-15 22:46:42 +01:00
chenzitai 56d5525beb Remove redundancy comments in SniffISO14443-2A.c
(cherry picked from commit b95dfda)
2018-08-15 22:46:35 +01:00
chenzitai 686691f30c Remove experimental code in Reader14443-2A.c, make sniffing code independent form Reader14443-2A.c and ISO14443-2A.c
(cherry picked from commit 16f4fb1)
2018-08-15 22:46:30 +01:00
chenzitai cd321aff3d Event Channel and PORTB int1 bug fix:
1. Use event CH2 for timer resetting

2.  Can not sniff the second round of traffic due to the PORTB int1 was disabled in CardSniffInit(). This is reenabled in ReaderSniffInit

(cherry picked from commit 24b87e2)
2018-08-15 22:46:23 +01:00
chenzitai c526ab3035 Separate Card->Reader code, works for only one round of traffic
Buggy commit.
Maybe fix the event channel and reinit the timer when switching

(cherry picked from commit a43869a)
2018-08-15 22:46:17 +01:00
chenzitai 08404604c2 Separate Reader->Card sniffing from the ISO14443-2A code
Use PORTB INT1, TCD0 CCD for sampling

The card->reader sniffing of this commint may be buggy

(cherry picked from commit 73b6c51)
2018-08-15 22:46:10 +01:00
chenzitai 4b23bc379b Refactor SniffISO14443-2A code structure for further modification
(cherry picked from commit cd07c68)
2018-08-15 22:46:04 +01:00
chenzitai 43ebccbb53 Remove redundancy code, disable sniff flag when deInit the siniff mode
(cherry picked from commit 58df0cd)
2018-08-15 22:45:03 +01:00
chenzitai 288ae73308 Remove repeately called function: CodecInitCommon and keep demod power on
(cherry picked from commit 8eb0d58)
2018-08-15 22:44:57 +01:00
chenzitai 64534c8912 Works for one round of traffic
(cherry picked from commit 800f72a)
2018-08-15 22:44:50 +01:00
chenzitai fd57c63ba8 Work in Card->Reader direction only, WIP
(cherry picked from commit 9ce138c)
2018-08-15 22:44:41 +01:00
chenzitai 38b7ea459a Add some comments for better understanding
(cherry picked from commit df39123)
2018-08-15 22:43:14 +01:00
chenzitai 5b46650edd Set up framework for sniffing
(cherry picked from commit 8a0b331)
2018-08-15 22:43:05 +01:00
Georg 691b8b2fd1 updated LATEST firmware 2018-02-28 16:45:40 +01:00
Georg 7ab8d3b185 added mf classic 4k 7b init function to config 2018-02-28 16:20:05 +01:00
Georg Land 392d5d71d6 Update README.md 2018-02-01 08:12:17 +01:00
Georg a9ab6c0340 updated LATEST firmware 2018-01-25 11:48:36 +01:00
Georg c6d2968628 added clone being permanent 2018-01-25 11:42:44 +01:00
Georg 254a6eb688 removed UL C and UL EV1 identification as it breaks the clone process for MFU 2018-01-25 10:33:03 +01:00
Georg c0c14899c3 Merge branch 'master' of https://github.com/robots/ChameleonMini 2018-01-24 18:27:52 +01:00
Georg be67058675 added function for storing single setting data to eeprom, added reader threshold being stored in eeprom 2018-01-24 15:38:10 +01:00
Georg 7c188b1f71 remove debug function 2018-01-22 11:21:57 +01:00
Georg 6c64bc39e0 updated LATEST firmware 2018-01-22 09:10:23 +01:00
Georg 7bd0ef1e60 removed project files 2018-01-22 08:53:14 +01:00
Georg a5d0a8d216 reader codec upgrade 2018-01-22 08:47:59 +01:00
Georg e53b0a067d doxygen update 2018-01-17 21:06:28 +01:00
Georg a1d5938d25 added new doxygen html files 2018-01-17 21:02:55 +01:00
Georg be007ef174 doxygen update 2018-01-17 20:44:36 +01:00
KaOs 8275b59f77 Fixes to Readme and schematics PDF of RevE-light 2017-11-23 15:17:49 +00:00
KaOs d270131062 RevE-light development version
WARNING: The files in this commit are our current development version. The hardware and software is not functional yet - so do not use it. We will not answer any support inquiry regarding this version at the moment.
2017-11-23 14:40:40 +00:00
Georg Land 43fac83781 Merge pull request #152 from dev-zzo/feature-MF0ULx1
Implement Ultralight EV1 functionality
2017-11-20 09:37:54 +01:00
dev_zzo e5506a6b32 UL EV1: make use of public define 2017-11-17 19:34:40 +01:00
dev_zzo ac8b1cc944 UL EV1: enable x21 size; minor improvements 2017-11-17 19:27:20 +01:00
dev_zzo d8e67a18c3 UL EV1: initial working version 2017-11-17 18:58:54 +01:00
Georg 154383ec66 more indentation changes 2017-11-07 17:05:56 +01:00
Georg 8a18378479 updated LATEST firmware 2017-11-07 16:37:14 +01:00
Georg 33f3525497 removed removeSOC function (not needed anymore) 2017-11-07 16:27:26 +01:00
Georg 4427ae1277 fixed bug in sram to fram function for log 2017-11-07 16:16:26 +01:00
Georg 94d24d95c6 unified indentation 2017-11-07 15:53:23 +01:00
Georg 44f2085401 fixed bug within cycle_settings button functionality 2017-11-07 15:29:23 +01:00
Georg 1dc6698915 fixed LED bug, now blinks faster without problems 2017-11-07 15:15:25 +01:00
Georg Land 28e56ade46 Update README.md 2017-09-26 15:12:25 +02:00
Michal Demin 62ba2e0ce4 fix: clone command was not visible in command list
Signed-off-by: Michal Demin <michaldemin@gmail.com>
2017-08-24 19:54:32 +02:00
Georg Land d33675cbd1 Update README.md 2017-08-03 15:14:34 +02:00
Georg e03fa97357 updated LATEST firmware 2017-07-12 11:45:59 +02:00
Georg 3c0435cde1 doxygen update 2017-07-12 11:27:20 +02:00
Georg 7c99c0131d short fix within autocalibrate 2017-07-12 11:14:04 +02:00
Georg d4ae2f2060 changed standard timeout so autocalibrate can run flawless 2017-07-12 10:56:56 +02:00
Georg c764e52bdc added autocalibrate command 2017-07-12 10:52:05 +02:00
Georg b6e920b984 updated LATEST firmware 2017-06-21 10:41:24 +02:00
Georg cbe50ba7d7 fixed bug within MF Classic application 2017-06-21 10:38:34 +02:00
Georg 63c8fb4812 chamlog python update 2017-06-20 18:33:35 +02:00
Michal Demin 80ddd96ac5 Add CLONE command to button.
Signed-off-by: Michal Demin <michaldemin@gmail.com>
2017-06-15 22:11:38 +02:00
Michal Demin c9ebec90f4 Add CLONE command
This command is extended original identify command. Upon execution it
will do following:
- change current config to "reader" mode
- identify card
- if multiple or no card detected -> end
- change config to identified card (mifare classic 1k/4k or ultralight)
- set UID of the card

Signed-off-by: Michal Demin <michaldemin@gmail.com>
2017-06-15 22:11:17 +02:00
Michal Demin 372fe67da4 Make terminal commands executable from within firmware.
Signed-off-by: Michal Demin <michaldemin@gmail.com>
2017-06-15 22:10:34 +02:00
Michal Demin 6016bb7944 ReaderThreshold is stored in eeprom.
Signed-off-by: Michal Demin <michaldemin@gmail.com>
2017-06-15 22:09:46 +02:00
Georg 0e61d2a47a updated LATEST firmware 2017-06-14 12:31:34 +02:00
Georg 2a2e0745d1 added auto-alignment for PCD->PICC commands 2017-06-14 12:22:39 +02:00
Georg e8d6c80f86 Merge branch 'MFClassic_patch' 2017-06-14 12:21:57 +02:00
Georg Land 05fa61c7db Merge pull request #115 from tned73/MFClassic_fix2
MFClassic_patch fix for 4K card
2017-06-14 12:13:10 +02:00
TNEd 2b127e4d32 remove partial auth all2 2017-06-06 13:18:31 +02:00
TNEd e579bfb469 remove partial auth all 2017-06-06 13:15:12 +02:00
TNEd fc519b713d remove partial auth 2017-06-06 12:59:59 +02:00
TNEd 136920bcdd 4K fixes for authentication 2017-06-06 12:02:17 +02:00
Georg 35dcd0eb0e doxygen update 2017-04-05 10:03:42 +02:00
Georg 2013c8fb4e updated latest version 2017-04-05 10:02:00 +02:00
Georg f6826c3b5e small changes in command functions 2017-04-04 16:52:52 +02:00
Georg 90b09342d4 fixed bug in log download backend function 2017-04-04 16:47:18 +02:00
Georg 02ec23e3a6 major changes in log function and memory functions:
1. relocated EEPROM accessing functions
2. current FRAM log address is stored in FRAM
3. EEPROM contains flag that indicates whether this address in FRAM is valid
4. the log is written from SRAM to FRAM automatically
5. on boot, the Chameleon logs that it boots right now
2017-04-04 16:43:43 +02:00
Georg 65e5383ce4 reader application fixes: changed identify typo, fixed identify bugs, select function resets Selected variable if necessary 2017-04-04 16:40:33 +02:00
Georg b1e457ca01 added reader restart function which may be called from application, so the reader field will be shut down and restarted after a given time 2017-04-04 16:26:09 +02:00
Georg 5850458dfb added new log type, so python knows that in reader mode the data also contain the parity bits 2017-04-04 16:23:56 +02:00
Georg 06f6d970ba added Reader_FWT variable
Application with this may now change the frame waiting time which may be helpful for ISO14443A-4 processing
2017-04-04 16:18:10 +02:00
Xander 42ea0bf3c7 Update chamtool.py 2017-03-23 16:32:58 -04:00
Xander ce87f0a4ff Added Options
Added GetUID, DumpMFU, Identify, LButton_Long and RButton_Long.
2017-03-23 12:42:15 -04:00
Xander 3b0e00d24e Added New Options
Added GetUID, DumpMFU, Identify, LButton_Long and RButton_Long.
2017-03-23 12:38:58 -04:00
Georg 2ed4034c94 updated doxygen 2017-02-13 10:31:34 +01:00
Georg 45de60a474 updated doxygen 2017-01-18 10:02:53 +01:00
Georg 2316aa5ee8 updated latest precompiled firmware 2017-01-18 10:02:21 +01:00
Georg ea9938bdc0 fixed MifareClassic 1k 7B init -- thanks to Niels van Dijkhuizen for submitting the patch 2017-01-18 10:01:02 +01:00
Georg 82ce8f0dbf added MiFare Classic and Crypto1 patch -- thanks to jsrFDED 2017-01-17 10:53:21 +01:00
Georg Land 64f297c36c Merge pull request #72 from doegox/uid7_fix_manufacturer_byte
Add option to fix manufacturer byte on UID_LEFT_(DE/IN)CREMENT on 7-byte UID
2017-01-17 09:52:15 +01:00
Georg Land 55fdc8dd48 Merge pull request #71 from doegox/fixdoc
SEND->SEND_RAW in Reader.txt
2016-11-21 12:45:30 +01:00
Georg Land 0d71dbf47d Merge pull request #74 from dev-zzo/pr-fix-chamlog2
chamlog: ensure it works on Python 2 and 3; take 2
2016-11-21 12:38:46 +01:00
Timo Kasper 45f5f9c28e webshop 2016-11-11 23:51:54 +01:00
dev-zzo 944a22cb37 chamlog: ensure it works on Python 2 and 3; take 2 2016-11-02 22:33:35 +01:00
Philippe Teuwen b95d3f2158 Add option to fix manufacturer byte on UID_LEFT_(DE/IN)CREMENT on 7-byte UID 2016-10-29 22:37:29 +02:00
Philippe Teuwen f65656ca34 SEND->SEND_RAW in Reader.txt 2016-10-29 15:58:45 +02:00
Georg Land 0d2f79dec2 Merge pull request #57 from doegox/move-fw
Move latest firmware images in a subdirectory
2016-10-28 16:55:26 +02:00
Georg fee143ffe5 doxygen update + Driver directory rename 2016-10-28 16:54:19 +02:00
Georg Land 0fffe429f0 Merge pull request #61 from 0x715C/master
Added link to udev rule in /Doc/DoxygenPages/GettingStarted.txt
2016-10-28 16:43:50 +02:00
Georg Land 4ca7c6e2b4 Update README.md 2016-10-28 16:38:19 +02:00
Georg Land 4ff5b61d01 Merge pull request #66 from dev-zzo/pr-arraycount
employ a macro to compute element counts in arrays
2016-10-28 16:35:24 +02:00
Georg Land 62d2157819 Merge pull request #59 from doegox/disable-mm
udev rules: tell Modem Manager to ignore ChameleonMini
2016-10-28 16:30:54 +02:00
dev_zzo ab3b4f21ea employ a macro to compute element counts in arrays 2016-10-28 10:55:46 +02:00
Georg Land e3369d5d6a Merge pull request #54 from doegox/pad-xmodem
chamtool xmodem: pad small dumps
2016-10-26 12:58:21 +02:00
Karl Lensson 27dc2bb411 Added link to udev rule in /Doc/DoxygenPages/GettingStarted.txt 2016-10-26 21:26:56 +11:00
Philippe Teuwen 884740705b udev rules: tell Modem Manager to ignore ChameleonMini 2016-10-26 11:46:36 +02:00
Philippe Teuwen e000833a3c Add makefile target to program directly the latest official firmware 2016-10-26 10:43:15 +02:00
Philippe Teuwen 21eba2b5bb Move latest firmware images is a subdirectory 2016-10-26 10:28:59 +02:00
Philippe Teuwen a5561e665f Fix pad type, thanks @ptu 2016-10-25 13:56:59 +02:00
Georg Land 9b159ee64a Merge pull request #53 from doegox/python-shebang
Fix python #! and exec rights
2016-10-25 09:14:54 +02:00
Philippe Teuwen 116c19d1c4 chamtool xmodem: pad small dumps 2016-10-25 08:29:03 +02:00
Philippe Teuwen c2cfe591ee Fix python #! and exec rights 2016-10-25 08:00:15 +02:00
Georg Land 046e289dc1 Merge pull request #40 from dev-zzo/master
fix build on Windows
2016-10-24 15:55:21 +02:00
dev_zzo f245b0ed2e fix build on Windows #3 2016-10-24 15:24:37 +02:00
Georg a636b63447 doxygen update 2016-10-24 14:44:06 +02:00
Georg eed02120e2 added new precompiled files with fixes 2016-10-24 13:58:06 +02:00
Georg Land 2005f469e0 Merge pull request #35 from dev-zzo/pr-const-crca
make CRCA checking const-correct
2016-10-24 13:55:40 +02:00
Georg Land 70587bc67a Merge pull request #49 from 0x715C/master
Added linux udev info to Doc/DoxygenPages/GettingStarted.txt
2016-10-24 13:35:25 +02:00
Georg Land 90c755972a Merge pull request #28 from leandre84/master
Fix wrong variable name in LEDSetFuncById() if LED_SETTING_GLOBAL disabled
2016-10-24 13:10:32 +02:00
Georg Land 8c3d2c3db2 Merge pull request #25 from mbaschnitzi/bugfix/version-oneline
Remove newlines from VERSION command. Fix for #16
2016-10-24 13:06:14 +02:00
Georg 2df383b9fa added anticollision 2016-10-24 12:57:25 +02:00
Georg 28db2471eb better handling of application reset in emulation 2016-10-24 12:54:42 +02:00
Georg 4c7b09962b improved the ISO14443A select protocol concerning HALT state 2016-10-24 11:19:46 +02:00
Georg Land 73d952717d Merge pull request #50 from doegox/Fix16
Handle HALT properly
2016-10-24 11:01:53 +02:00
Karl Lensson 369ecff322 Added linux udev info to Doc/DoxygenPages/GettingStarted.txt
Info on how to install Drivers/98-ChameleonMini.rules under linux.
2016-10-21 13:49:16 +11:00
Karl Lensson 642bf1b389 Merged branch master into master 2016-10-21 13:44:27 +11:00
Philippe Teuwen f56f270b82 Handle HALT properly 2016-10-20 17:35:58 +02:00
dev_zzo f591d03715 Merge remote-tracking branch 'upstream/master' 2016-10-20 15:59:07 +02:00
Georg c586b3dcd0 updated documentation: added note for Ubuntu 14.04 users 2016-10-19 12:36:40 +02:00
David Oswald 51178acaf6 Merge pull request #38 from cons0l3/issue18
added requirements.txt
2016-10-19 11:17:16 +01:00
David Oswald 09f8a00071 Merge pull request #48 from 0x715C/master
Added udev rule in Drivers/
2016-10-19 11:16:31 +01:00
Karl Lensson 3fad85d72b Added udev rule in Drivers/
Added udev rule, allowing non root users on a linux system(assuming udev is used) to open the serial port and talk with the chameleon.
Also included symlink in rule, so the interface always shows as /dev/chameleon.
2016-10-19 21:07:27 +11:00
Georg c3ef26bb46 updated Getting Started page (links to the files now do not result in text/plain pages) 2016-10-17 12:23:14 +02:00
dev_zzo 0ce5a6682b fix build on Windows #2 2016-10-17 12:20:48 +02:00
dev_zzo cf9d56dcc5 fix build on Windows 2016-10-17 11:50:22 +02:00
Georg 7599d6a680 doxygen update, recompiled after GettingStarted change 2016-10-17 11:29:35 +02:00
Carsten Steckel 452b47954f added requirements.txt with pyserial (most receent and not version pinned) 2016-10-17 09:01:20 +00:00
dev-zzo 3c99fefb6b make CRCA checking const-correct 2016-10-16 13:40:50 +02:00
Leandros 3789987425 Fix wrong parameter name in LEDSetFuncById() if LED_SETTING_GLOBAL disabled 2016-10-12 09:21:36 +02:00
Micha Ahrweiler e0529dde03 Remove newlines from VERSION command
The newlines from the VERSION command response are removed, as they differ from the specification of "101:OK WITH TEXT"
2016-10-11 13:11:01 +02:00
David Oswald bca913ca91 Update GettingStarted.txt
typos fixed
2016-10-08 13:29:25 +01:00
David Oswald eac7994070 Merge pull request #15 from uhei/patch-1
GettingStarted.txt: Add information for Mac OS
2016-10-08 13:28:12 +01:00
uhei 7fe88b4166 GettingStarted.txt: Add information for Mac OS 2016-10-08 13:19:11 +02:00
Chair for Embedded Security 79490e28f5 Update README.md 2016-10-08 00:08:59 +02:00
Georg ad2cbd5c7a doxygen update 2016-10-08 00:02:07 +02:00
Georg dcfb0b76ca added precompiled hex files 2016-10-07 23:53:00 +02:00
Georg f46f5b4fbf update to RevG 2016-10-07 23:44:50 +02:00
Georg 31c43c5bfa updated readme for RevE 2016-10-07 18:24:44 +02:00
Georg 5ac1cc7ed7 moved discontinued RevE files to own directory 2016-10-07 18:18:13 +02:00
Chair for Embedded Security 34ff98d571 Update README.md 2016-10-05 15:51:00 +02:00
Timo Kasper e038ae5f4d updated license to refer to emsec github 2015-07-30 17:32:10 +02:00
david-oswald b3f7afd335 Delete Chameleon-Mini.sym 2015-03-05 11:49:20 +01:00
david-oswald 70dd25f193 Delete Chameleon-Mini.map 2015-03-05 11:49:07 +01:00
david-oswald 67303530dc Delete Chameleon-Mini.lss
Removed unnecessary file
2015-03-05 11:49:01 +01:00
Chair for Embedded Security ca5606ca45 Update and rename Drivers to Drivers/ChameleonDriver.inf
Created driver .inf for new USB PID
2015-03-03 21:09:42 +01:00
Timo Kasper 36902b2487 Unique VID/PID, granted by Alexander Simonov, Thanks for supporting the project! 2015-03-04 02:17:14 +08:00
Timo Kasper 6ad9436a1e fix for AVR Toolchain 3.4.5 (WDT_PER_500CLK_gc) 2015-03-04 01:40:02 +08:00
Timo Kasper 49b2a19364 Major improvements (amongst others Mifare Ultralight and 7-Byte UID MF Plus support) and major bug fixes. Thanks to Simon KĂĽppers and Julius Schmalz. 2015-03-04 01:28:25 +08:00
Simon KĂĽppers d2acde526d Fixed a problem with the WDT_PER_500CLK_gc define in new Versions of the AVR Toolchain 2015-02-22 17:56:53 +01:00
Simon KĂĽppers 810fdeeded Corrected Typo in Makefile.
Thanks to Yves Fischer <yvesf-git@xapek.org>
2014-10-31 15:41:53 +01:00
Simon KĂĽppers c3c97f781a Update README.md 2014-10-03 16:04:45 +02:00
Simon KĂĽppers 6de7b9e757 Merge branch 'master' of https://github.com/emsec/ChameleonMini 2014-10-03 16:03:27 +02:00
Simon KĂĽppers 9ee7066015 Added pycham Tool by Chema GarcĂ­a to official repository thus making it an official tool for the Chameleon 2014-10-03 16:03:06 +02:00
Simon KĂĽppers 13fc6740b4 Merge branch 'master' of https://github.com/emsec/ChameleonMini 2014-10-03 16:01:58 +02:00
Simon KĂĽppers d11cc8e025 Merge branch 'master' of https://github.com/emsec/ChameleonMini 2014-10-03 15:58:40 +02:00
Simon KĂĽppers a06a457c08 Added pycham Tool by Chema GarcĂ­a to official repository thus making it an official tool for the Chameleon 2014-10-03 15:57:34 +02:00
Simon KĂĽppers 8f789654b4 This removes the warning of implicit declarations in Settings.c 2014-09-24 19:51:49 +02:00
Simon KĂĽppers 7b5573ef0f It looks like Atmel changed the naming of some defines in the avr-libc 2014-09-24 19:47:47 +02:00
Simon KĂĽppers b6b005c74a Due to some readers and/or card standards there might be problems with
the comparatively large write times of the external flash memory.
This is why we are looking for a better solution on this problem in the
next hardware revision.
Having the memory concept of future revisions in mind, we changed the
firmware from it's current memory concept, which is using the external
flash as a direct memory for reading/writing of card (or application)
memory contents to a different one.
With this new version, the memory that is directly accessed by the
application (through MemoryWrite and MemoryRead) now resides within the
local RAM of the microcontroller, thus limiting the maximum card size to
1KB.
However, the flash is still used to store multiple other card dumps,
that are now recalled and stored upon
  1) Changing the current setting to another card. This applies also to
using the CYCLE_SETTINGS button action.
  2) The newly introduced button actions MEM_RECALL and MEM_STORE

Consider this new concept as a feature, since it is now easily possible
to, for example emulate a payment card and recall the original contents
(stored in flash) upon button press. However, note that the modified
card contents are lost, if they are not written back to flash before
powering the Chameleon off.

For the future we are thinking about using external non-volatile RAM to
store the current card to prevent this from happening. That way, we can
have a very consistent memory concept and are still able to recall or
store the memory from flash.

Note that the previous Firmware version that uses the flash in a direct fashion is still available for those that don't care about the write times and need the full unlimited memory size.
2014-05-11 14:23:53 +02:00
1559 changed files with 284622 additions and 101628 deletions

No files matched your search

+36
View File
@@ -0,0 +1,36 @@
name: Firmware Build (Pull Request, Firmware Modified, Artifact in build job)
on:
pull_request:
paths:
- "Firmware/**"
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Make a firmware build folder
run: mkdir FirmwareBuild
- name: Print Kernel Ver
run: uname -a
- name: Update APT
run: sudo apt-get update -yqq
- name: Install AVR GCC Suite
run: sudo apt-get install -yqq make autoconf build-essential ca-certificates pkg-config libreadline-dev gcc-avr binutils-avr gdb-avr avr-libc avrdude
- name: Make Firmware
run: make
working-directory: Firmware/Chameleon-Mini/
- name: Move hex file to FirmwareBuild
run: mv Chameleon*.hex $GITHUB_WORKSPACE/FirmwareBuild/
working-directory: Firmware/Chameleon-Mini/
- name: Move eep file to FirmwareBuild
run: mv Chameleon*.eep $GITHUB_WORKSPACE/FirmwareBuild/
working-directory: Firmware/Chameleon-Mini/
- name: Upload Build Artifact to Action
uses: actions/upload-artifact@v3
with:
name: "ChameleonBuild"
path: "FirmwareBuild/**"
+52
View File
@@ -0,0 +1,52 @@
name: Firmware Build (proxgrind Branch Push, Pre-release with Artifacts)
on:
push:
branches: [ proxgrind ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Make a firmware build folder
run: mkdir FirmwareBuild
- name: Print Kernel Ver
run: uname -a
- name: Update APT
run: sudo apt-get update -yqq
- name: Install AVR GCC Suite
run: sudo apt-get install -yqq make autoconf build-essential ca-certificates pkg-config libreadline-dev gcc-avr binutils-avr gdb-avr avr-libc avrdude
- name: Make Firmware
run: make
working-directory: Firmware/Chameleon-Mini/
- name: Move hex file to FirmwareBuild
run: mv Chameleon*.hex $GITHUB_WORKSPACE/FirmwareBuild/
working-directory: Firmware/Chameleon-Mini/
- name: Move eep file to FirmwareBuild
run: mv Chameleon*.eep $GITHUB_WORKSPACE/FirmwareBuild/
working-directory: Firmware/Chameleon-Mini/
- name: Upload Build Artifact to Action
uses: actions/upload-artifact@v3
with:
name: "ChameleonBuild"
path: "FirmwareBuild/**"
- name: Create a Pre-release
uses: DonghaoFeng-Moloco/create-release@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: "${{ format('Build-{0}', github.sha) }}"
release_name: Firmware Build ${{ github.sha }}
body: Built at commit ${{ github.sha }} from ${{ github.actor }}
draft: false
prerelease: true
- name: Upload Pre-release Artifacts
uses: linuxgemini/github-upload-release-artifacts-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
created_tag: "${{ format('Build-{0}', github.sha) }}"
args: "FirmwareBuild/"
+3
View File
@@ -0,0 +1,3 @@
.DS_Store
*.pyc
+6 -6
View File
@@ -121,7 +121,7 @@ INLINE_INHERITED_MEMB = NO
# path before files name in the file list and in the header files. If set
# to NO the shortest path that makes the file name unique will be used.
FULL_PATH_NAMES = YES
FULL_PATH_NAMES = NO
# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
# can be used to strip a user-defined part of the path. Stripping is
@@ -366,7 +366,7 @@ EXTRACT_PACKAGE = NO
# If the EXTRACT_STATIC tag is set to YES all static members of a file
# will be included in the documentation.
EXTRACT_STATIC = NO
EXTRACT_STATIC = YES
# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
# defined locally in source files will be included in the documentation.
@@ -461,7 +461,7 @@ INLINE_INFO = YES
# alphabetically by member name. If set to NO the members will appear in
# declaration order.
SORT_MEMBER_DOCS = YES
SORT_MEMBER_DOCS = NO
# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
# brief documentation of file, namespace and class members alphabetically
@@ -549,7 +549,7 @@ MAX_INITIALIZER_LINES = 30
# at the bottom of the documentation of classes and structs. If set to YES the
# list will mention the files that were used to generate the documentation.
SHOW_USED_FILES = YES
SHOW_USED_FILES = NO
# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
# This will remove the Files entry from the Quick Index and from the
@@ -562,7 +562,7 @@ SHOW_FILES = YES
# This will remove the Namespaces entry from the Quick Index
# and from the Folder Tree View (if specified). The default is YES.
SHOW_NAMESPACES = YES
SHOW_NAMESPACES = NO
# The FILE_VERSION_FILTER tag can be used to specify a program or script that
# doxygen should invoke to get the current version for each file (typically from
@@ -1300,7 +1300,7 @@ EXTRA_SEARCH_MAPPINGS =
# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
# generate Latex output.
GENERATE_LATEX = YES
GENERATE_LATEX = NO
# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+19 -140
View File
@@ -3,16 +3,15 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>Chameleon-Mini: C:/Dokumente und Einstellungen/skuser/Eigene Dateien/Chameleon-Mini-GitHub/Chameleon-Mini-OpenSource/Firmware/Chameleon-Mini/AntennaLevel.h Source File</title>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Chameleon-Mini: AntennaLevel.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -21,7 +20,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Chameleon-Mini
</div>
</td>
@@ -30,46 +29,25 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.4 -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@@ -88,111 +66,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">AntennaLevel.h</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* Copyright 2013 Timo Kasper, Simon KĂĽppers, David Oswald (&quot;ORIGINAL</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * AUTHORS&quot;). All rights reserved.</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * DEFINITIONS:</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * &quot;WORK&quot;: The material covered by this license includes the schematic</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * diagrams, designs, circuit or circuit board layouts, mechanical</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * drawings, documentation (in electronic or printed form), source code,</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * binary software, data files, assembled devices, and any additional</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * material provided by the ORIGINAL AUTHORS in the ChameleonMini project</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * (https://github.com/skuep/ChameleonMini).</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * LICENSE TERMS:</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * Redistributions and use of this WORK, with or without modification, or</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * of substantial portions of this WORK are permitted provided that the</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * following conditions are met:</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * Redistributions and use of this WORK, with or without modification, or</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * of substantial portions of this WORK must include the above copyright</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * notice, this list of conditions, the below disclaimer, and the following</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * attribution:</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * &quot;Based on ChameleonMini an open-source RFID emulator:</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * https://github.com/skuep/ChameleonMini&quot;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * The attribution must be clearly visible to a user, for example, by being</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * printed on the circuit board and an enclosure, and by being displayed by</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * software (both in binary and source code form).</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * At any time, the majority of the ORIGINAL AUTHORS may decide to give</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> * written permission to an entity to use or redistribute the WORK (with or</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> * without modification) WITHOUT having to include the above copyright</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> * notice, this list of conditions, the below disclaimer, and the above</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> * attribution.</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment"> * DISCLAIMER:</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment"> * THIS PRODUCT IS PROVIDED BY THE ORIGINAL AUTHORS &quot;AS IS&quot; AND ANY EXPRESS</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"> * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"> * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment"> * DISCLAIMED. IN NO EVENT SHALL THE ORIGINAL AUTHORS OR CONTRIBUTORS BE</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"> * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS PRODUCT, EVEN IF ADVISED OF</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment"> * THE POSSIBILITY OF SUCH DAMAGE.</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"> * The views and conclusions contained in the hardware, software, and</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> * documentation should not be interpreted as representing official</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"> * policies, either expressed or implied, of the ORIGINAL AUTHORS.</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#ifndef ANTENNALEVEL_H_</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define ANTENNALEVEL_H_</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#include &quot;Common.h&quot;</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#define ANTENNA_LEVEL_R1 10E3</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define ANTENNA_LEVEL_R2 220E0</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define ANTENNA_LEVEL_VREF 1.0</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define ANTENNA_LEVEL_RES 4096</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define ANTENNA_LEVEL_OFFSET 190 </span><span class="comment">/* LSB */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#define ANTENNA_LEVEL_MILLIVOLT 1E3</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define ANTENNA_LEVEL_FACTOR (ANTENNA_LEVEL_VREF * (ANTENNA_LEVEL_R1 + ANTENNA_LEVEL_R2) / (ANTENNA_LEVEL_RES * ANTENNA_LEVEL_R2) )</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define ANTENNA_LEVEL_SCALE ((uint32_t) 1&lt;&lt;16)</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define ANTENNA_LEVEL_NUMERATOR ((uint32_t) (ANTENNA_LEVEL_MILLIVOLT * ANTENNA_LEVEL_FACTOR * ANTENNA_LEVEL_SCALE + .5))</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define ANTENNA_LEVEL_DENOMINATOR (ANTENNA_LEVEL_SCALE)</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="keywordtype">void</span> AntennaLevelInit(<span class="keywordtype">void</span>)</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;{</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; ADCA.CTRLA = ADC_ENABLE_bm;</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; ADCA.CTRLB = ADC_RESOLUTION_12BIT_gc;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; ADCA.REFCTRL = ADC_REFSEL_INT1V_gc | ADC_BANDGAP_bm;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; ADCA.PRESCALER = ADC_PRESCALER_DIV32_gc;</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; ADCA.CH0.CTRL = ADC_CH_INPUTMODE_SINGLEENDED_gc;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; ADCA.CH0.MUXCTRL = ADC_CH_MUXPOS_PIN7_gc;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;}</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;uint16_t AntennaLevelGet(<span class="keywordtype">void</span>)</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;{</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; ADCA.CH0.CTRL |= ADC_CH_START_bm;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">while</span>( !(ADCA.CH0.INTFLAGS &amp; ADC_CH_CHIF_bm) );</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; ADCA.CH0.INTFLAGS = ADC_CH_CHIF_bm;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; int16_t Result = ADCA.CH0RES - ANTENNA_LEVEL_OFFSET;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">if</span> (Result &lt; 0) Result = 0;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">return</span> (uint16_t) (((uint32_t) Result * ANTENNA_LEVEL_NUMERATOR) / ANTENNA_LEVEL_DENOMINATOR);</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;}</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* ANTENNALEVEL_H_ */</span><span class="preprocessor"></span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * AntennaLevel.h</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * Created on: 24.11.2013</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Author: skuser</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#ifndef ANTENNALEVEL_H_</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#define ANTENNALEVEL_H_</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &quot;Common.h&quot;</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#define ANTENNA_LEVEL_R1 47E3</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#define ANTENNA_LEVEL_R2 1E3</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#define ANTENNA_LEVEL_VREF 1.0</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocLine truncated
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Jan 2 2014 10:08:11 for Chameleon-Mini by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Wed Jan 17 2018 21:05:32 for Chameleon-Mini by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.4
</a> 1.8.13
</small></address>
</body>
</html>
+27 -130
View File
@@ -3,16 +3,15 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>Chameleon-Mini: C:/Dokumente und Einstellungen/skuser/Eigene Dateien/Chameleon-Mini-GitHub/Chameleon-Mini-OpenSource/Firmware/Chameleon-Mini/Application/Application.h Source File</title>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Chameleon-Mini: Application.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -21,7 +20,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Chameleon-Mini
</div>
</td>
@@ -30,46 +29,25 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.4 -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@@ -88,102 +66,21 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">Application.h</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* Copyright 2013 Timo Kasper, Simon KĂĽppers, David Oswald (&quot;ORIGINAL</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * AUTHORS&quot;). All rights reserved.</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * DEFINITIONS:</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * &quot;WORK&quot;: The material covered by this license includes the schematic</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * diagrams, designs, circuit or circuit board layouts, mechanical</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * drawings, documentation (in electronic or printed form), source code,</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * binary software, data files, assembled devices, and any additional</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * material provided by the ORIGINAL AUTHORS in the ChameleonMini project</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * (https://github.com/skuep/ChameleonMini).</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * LICENSE TERMS:</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * Redistributions and use of this WORK, with or without modification, or</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * of substantial portions of this WORK are permitted provided that the</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * following conditions are met:</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * Redistributions and use of this WORK, with or without modification, or</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * of substantial portions of this WORK must include the above copyright</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * notice, this list of conditions, the below disclaimer, and the following</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * attribution:</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * &quot;Based on ChameleonMini an open-source RFID emulator:</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * https://github.com/skuep/ChameleonMini&quot;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * The attribution must be clearly visible to a user, for example, by being</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * printed on the circuit board and an enclosure, and by being displayed by</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * software (both in binary and source code form).</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * At any time, the majority of the ORIGINAL AUTHORS may decide to give</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> * written permission to an entity to use or redistribute the WORK (with or</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> * without modification) WITHOUT having to include the above copyright</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> * notice, this list of conditions, the below disclaimer, and the above</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> * attribution.</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment"> * DISCLAIMER:</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment"> * THIS PRODUCT IS PROVIDED BY THE ORIGINAL AUTHORS &quot;AS IS&quot; AND ANY EXPRESS</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"> * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"> * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment"> * DISCLAIMED. IN NO EVENT SHALL THE ORIGINAL AUTHORS OR CONTRIBUTORS BE</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"> * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS PRODUCT, EVEN IF ADVISED OF</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment"> * THE POSSIBILITY OF SUCH DAMAGE.</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"> * The views and conclusions contained in the hardware, software, and</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> * documentation should not be interpreted as representing official</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"> * policies, either expressed or implied, of the ORIGINAL AUTHORS.</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#ifndef APPLICATION_H_</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define APPLICATION_H_</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#include &quot;../Common.h&quot;</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#include &quot;../Configuration.h&quot;</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment">/* Applications */</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#include &quot;MifareClassic.h&quot;</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="comment">/* Function wrappers */</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;INLINE <span class="keywordtype">void</span> ApplicationInit(<span class="keywordtype">void</span>) {</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; ActiveConfiguration.ApplicationInitFunc();</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;}</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;INLINE <span class="keywordtype">void</span> ApplicationTask(<span class="keywordtype">void</span>) {</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; ActiveConfiguration.ApplicationTaskFunc();</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;}</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;INLINE uint16_t ApplicationProcess(uint8_t* ByteBuffer, uint16_t ByteCount) {</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">return</span> ActiveConfiguration.ApplicationProcessFunc(ByteBuffer, ByteCount);</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;}</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;INLINE <span class="keywordtype">void</span> ApplicationReset(<span class="keywordtype">void</span>) {</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; ActiveConfiguration.ApplicationResetFunc();</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;}</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;INLINE <span class="keywordtype">void</span> ApplicationGetUid(ConfigurationUidType Uid) {</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; ActiveConfiguration.ApplicationGetUidFunc(Uid);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;}</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;INLINE <span class="keywordtype">void</span> ApplicationSetUid(ConfigurationUidType Uid) {</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; ActiveConfiguration.ApplicationSetUidFunc(Uid);</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;}</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* APPLICATION_H_ */</span><span class="preprocessor"></span></div>
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Application.h</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * Created on: 18.02.2013</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Author: skuser</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#ifndef APPLICATION_H_</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#define APPLICATION_H_</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &quot;../Common.h&quot;</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;../Configuration.h&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;../Log.h&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">/* Applications */</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#incluLine truncated
<div class="ttc" id="struct_configuration_type_html_a12036017f3f9e7a0c6a168539e262571"><div class="ttname"><a href="struct_configuration_type.html#a12036017f3f9e7a0c6a168539e262571">ConfigurationType::ApplicationProcessFunc</a></div><div class="ttdeci">uint16_t(* ApplicationProcessFunc)(uint8_t *ByteBuffer, uint16_t BitCount)</div><div class="ttdef"><b>Definition:</b> Configuration.h:95</div></div>
<div class="ttc" id="struct_configuration_type_html_abcb24589b62d04a8aa3e7d129e87e239"><div class="ttname"><a href="struct_configuration_type.html#abcb24589b62d04a8aa3e7d129e87e239">ConfigurationType::ApplicationResetFunc</a></div><div class="ttdeci">void(* ApplicationResetFunc)(void)</div><div class="ttdef"><b>Definition:</b> Configuration.h:79</div></div>
<div class="ttc" id="_log_8h_html_a34112fbd78128ae58dc7801690dfa6e0a54d679e676c487407959422049e43956"><div class="ttname"><a href="_log_8h.html#a34112fbd78128ae58dc7801690dfa6e0a54d679e676c487407959422049e43956">LOG_INFO_UID_SET</a></div><div class="ttdoc">UID change. </div><div class="ttdef"><b>Definition:</b> Log.h:17</div></div>
<div class="ttc" id="struct_configuration_type_html_a9d31886f03ebf75d59611b7dbe81aeca"><div class="ttname"><a href="struct_configuration_type.html#a9d31886f03ebf75d59611b7dbe81aeca">ConfigurationType::ApplicationGetUidFunc</a></div><div class="ttdeci">void(* ApplicationGetUidFunc)(ConfigurationUidType Uid)</div><div class="ttdef"><b>Definition:</b> Configuration.h:100</div></div>
<div class="ttc" id="struct_configuration_type_html_a902e157e8657cd7bb2ef5211c1a6bc58"><div class="ttname"><a href="struct_configuration_type.html#a902e157e8657cd7bb2ef5211c1a6bc58">ConfigurationType::ApplicationTickFunc</a></div><div class="ttdeci">void(* ApplicationTickFunc)(void)</div><div class="ttdef"><b>Definition:</b> Configuration.h:83</div></div>
<div class="ttc" id="struct_configuration_type_html_a9e695aaf0fd0bb6e5165b23c654e9346"><div class="ttname"><a href="struct_configuration_type.html#a9e695aaf0fd0bb6e5165b23c654e9346">ConfigurationType::ApplicationTaskFunc</a></div><div class="ttdeci">void(* ApplicationTaskFunc)(void)</div><div class="ttdef"><b>Definition:</b> Configuration.h:81</div></div>
<div class="ttc" id="struct_configuration_type_html_a835db40b131727b32d732585e8984d4a"><div class="ttname"><a href="struct_configuration_type.html#a835db40b131727b32d732585e8984d4a">ConfigurationType::ApplicationInitFunc</a></div><div class="ttdeci">void(* ApplicationInitFunc)(void)</div><div class="ttdef"><b>Definition:</b> Configuration.h:77</div></div>
<div class="ttc" id="struct_configuration_type_html_ac730d8b9dc9e728bb10069ea1917d99f"><div class="ttname"><a href="struct_configuration_type.html#ac730d8b9dc9e728bb10069ea1917d99f">ConfigurationType::UidSize</a></div><div class="ttdeci">uint8_t UidSize</div><div class="ttdef"><b>Definition:</b> Configuration.h:122</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Jan 2 2014 10:08:11 for Chameleon-Mini by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Wed Jan 17 2018 21:05:32 for Chameleon-Mini by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.4
</a> 1.8.13
</small></address>
</body>
</html>
+77
View File
@@ -0,0 +1,77 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Chameleon-Mini: Battery.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Chameleon-Mini
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_74b6a3b63f61c160c0f14b7a283a4c9b.html">Firmware</a></li><li class="navelem"><a class="el" href="dir_8465ec698d237f801ae9966d4551fcfa.html">Chameleon-Mini</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">Battery.h</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Battery.h</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * Created on: 20.08.2014</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Author: sk</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#ifndef BATTERY_H_</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#define BATTERY_H_</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &quot;Common.h&quot;</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#define BATTERY_PORT PORTD</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#define BATTERY_STAT_PIN PIN0_bm</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#define BATTERY_STAT_PINCTRL PIN0CTRL</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="prepLine truncated
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Jan 17 2018 21:05:32 for Chameleon-Mini by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>
+19 -129
View File
@@ -3,16 +3,15 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>Chameleon-Mini: C:/Dokumente und Einstellungen/skuser/Eigene Dateien/Chameleon-Mini-GitHub/Chameleon-Mini-OpenSource/Firmware/Chameleon-Mini/Button.h Source File</title>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Chameleon-Mini: Button.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -21,7 +20,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Chameleon-Mini
</div>
</td>
@@ -30,46 +29,25 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.4 -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@@ -88,100 +66,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">Button.h</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* Copyright 2013 Timo Kasper, Simon KĂĽppers, David Oswald (&quot;ORIGINAL</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * AUTHORS&quot;). All rights reserved.</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * DEFINITIONS:</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * &quot;WORK&quot;: The material covered by this license includes the schematic</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * diagrams, designs, circuit or circuit board layouts, mechanical</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * drawings, documentation (in electronic or printed form), source code,</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * binary software, data files, assembled devices, and any additional</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * material provided by the ORIGINAL AUTHORS in the ChameleonMini project</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * (https://github.com/skuep/ChameleonMini).</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * LICENSE TERMS:</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * Redistributions and use of this WORK, with or without modification, or</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * of substantial portions of this WORK are permitted provided that the</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * following conditions are met:</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * Redistributions and use of this WORK, with or without modification, or</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * of substantial portions of this WORK must include the above copyright</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * notice, this list of conditions, the below disclaimer, and the following</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * attribution:</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * &quot;Based on ChameleonMini an open-source RFID emulator:</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * https://github.com/skuep/ChameleonMini&quot;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * The attribution must be clearly visible to a user, for example, by being</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * printed on the circuit board and an enclosure, and by being displayed by</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * software (both in binary and source code form).</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * At any time, the majority of the ORIGINAL AUTHORS may decide to give</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> * written permission to an entity to use or redistribute the WORK (with or</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> * without modification) WITHOUT having to include the above copyright</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> * notice, this list of conditions, the below disclaimer, and the above</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> * attribution.</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment"> * DISCLAIMER:</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment"> * THIS PRODUCT IS PROVIDED BY THE ORIGINAL AUTHORS &quot;AS IS&quot; AND ANY EXPRESS</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"> * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"> * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment"> * DISCLAIMED. IN NO EVENT SHALL THE ORIGINAL AUTHORS OR CONTRIBUTORS BE</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"> * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS PRODUCT, EVEN IF ADVISED OF</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment"> * THE POSSIBILITY OF SUCH DAMAGE.</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"> * The views and conclusions contained in the hardware, software, and</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> * documentation should not be interpreted as representing official</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"> * policies, either expressed or implied, of the ORIGINAL AUTHORS.</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#ifndef BUTTON_H_</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define BUTTON_H_</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#include &quot;Common.h&quot;</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#include &lt;avr/io.h&gt;</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#include &quot;Application/Application.h&quot;</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#define BUTTON_PORT PORTA</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define BUTTON_MASK PIN6_bm</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define BUTTON_PINCTRL PIN6CTRL</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; BUTTON_ACTION_NONE,</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; BUTTON_ACTION_UID_RANDOM,</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; BUTTON_ACTION_UID_LEFT_INCREMENT,</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; BUTTON_ACTION_UID_RIGHT_INCREMENT,</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; BUTTON_ACTION_UID_LEFT_DECREMENT,</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; BUTTON_ACTION_UID_RIGHT_DECREMENT,</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; BUTTON_ACTION_CYCLE_SETTINGS,</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="comment">/* This has to be last element */</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; BUTTON_ACTION_COUNT</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;} ButtonActionEnum;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="keywordtype">void</span> ButtonInit(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="keywordtype">void</span> ButtonTick(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="keywordtype">void</span> ButtonGetActionList(<span class="keywordtype">char</span>* ListOut, uint16_t BufferSize);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="keywordtype">void</span> ButtonSetActionById(ButtonActionEnum Action);</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="keywordtype">void</span> ButtonGetActionByName(<span class="keywordtype">char</span>* ActionOut, uint16_t BufferSize);</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="keywordtype">bool</span> ButtonSetActionByName(<span class="keyword">const</span> <span class="keywordtype">char</span>* Action);</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* BUTTON_H_ */</span><span class="preprocessor"></span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Button.h</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * Created on: 13.05.2013</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Author: skuser</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#ifndef BUTTON_H_</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#define BUTTON_H_</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &quot;Common.h&quot;</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; BUTTON_R_PRESS_SHORT = 0,</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; BUTTON_R_PRESS_LONG,</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; BUTTON_L_PRESS_SHORT,</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;Line truncated
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Jan 2 2014 10:08:11 for Chameleon-Mini by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Wed Jan 17 2018 21:05:32 for Chameleon-Mini by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.4
</a> 1.8.13
</small></address>
</body>
</html>
+73
View File
@@ -0,0 +1,73 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Chameleon-Mini: Buttons.txt File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Chameleon-Mini
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">Buttons.txt File Reference</div> </div>
</div><!--header-->
<div class="contents">
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Jan 17 2018 21:05:32 for Chameleon-Mini by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>
+21 -119
View File
@@ -3,16 +3,15 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>Chameleon-Mini: C:/Dokumente und Einstellungen/skuser/Eigene Dateien/Chameleon-Mini-GitHub/Chameleon-Mini-OpenSource/Firmware/Chameleon-Mini/Chameleon-Mini.h Source File</title>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Chameleon-Mini: Chameleon-Mini.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -21,7 +20,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Chameleon-Mini
</div>
</td>
@@ -30,46 +29,25 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.4 -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@@ -88,91 +66,15 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">Chameleon-Mini.h</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* Copyright 2013 Timo Kasper, Simon KĂĽppers, David Oswald (&quot;ORIGINAL</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * AUTHORS&quot;). All rights reserved.</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * DEFINITIONS:</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * &quot;WORK&quot;: The material covered by this license includes the schematic</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * diagrams, designs, circuit or circuit board layouts, mechanical</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * drawings, documentation (in electronic or printed form), source code,</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * binary software, data files, assembled devices, and any additional</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * material provided by the ORIGINAL AUTHORS in the ChameleonMini project</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * (https://github.com/skuep/ChameleonMini).</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * LICENSE TERMS:</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * Redistributions and use of this WORK, with or without modification, or</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * of substantial portions of this WORK are permitted provided that the</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * following conditions are met:</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * Redistributions and use of this WORK, with or without modification, or</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * of substantial portions of this WORK must include the above copyright</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * notice, this list of conditions, the below disclaimer, and the following</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * attribution:</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * &quot;Based on ChameleonMini an open-source RFID emulator:</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * https://github.com/skuep/ChameleonMini&quot;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * The attribution must be clearly visible to a user, for example, by being</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * printed on the circuit board and an enclosure, and by being displayed by</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * software (both in binary and source code form).</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * At any time, the majority of the ORIGINAL AUTHORS may decide to give</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> * written permission to an entity to use or redistribute the WORK (with or</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> * without modification) WITHOUT having to include the above copyright</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> * notice, this list of conditions, the below disclaimer, and the above</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> * attribution.</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment"> * DISCLAIMER:</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment"> * THIS PRODUCT IS PROVIDED BY THE ORIGINAL AUTHORS &quot;AS IS&quot; AND ANY EXPRESS</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"> * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"> * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment"> * DISCLAIMED. IN NO EVENT SHALL THE ORIGINAL AUTHORS OR CONTRIBUTORS BE</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"> * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS PRODUCT, EVEN IF ADVISED OF</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment"> * THE POSSIBILITY OF SUCH DAMAGE.</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"> * The views and conclusions contained in the hardware, software, and</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> * documentation should not be interpreted as representing official</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"> * policies, either expressed or implied, of the ORIGINAL AUTHORS.</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#ifndef CHAMELEON_MINI_H</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CHAMELEON_MINI_H</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#include &lt;avr/io.h&gt;</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#include &lt;avr/wdt.h&gt;</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#include &lt;avr/interrupt.h&gt;</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#include &lt;avr/power.h&gt;</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#include &quot;System.h&quot;</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#include &quot;Memory.h&quot;</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#include &quot;LED.h&quot;</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#include &quot;Terminal/Terminal.h&quot;</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#include &quot;Codec/Codec.h&quot;</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#include &quot;Application/Application.h&quot;</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#include &quot;Configuration.h&quot;</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#include &quot;Random.h&quot;</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#include &quot;Button.h&quot;</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#include &quot;AntennaLevel.h&quot;</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#include &quot;Settings.h&quot;</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor">#define CHAMELEON_MINI_VERSION_STRING BUILD_DATE</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#endif //CHAMELEON_MINI_H</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor"></span></div>
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef CHAMELEON_MINI_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define CHAMELEON_MINI_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &lt;avr/io.h&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &lt;avr/wdt.h&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &lt;avr/interrupt.h&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &lt;avr/power.h&gt;</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;System.h&quot;</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &quot;Memory.h&quot;</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &quot;LED.h&quot;</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;LEDHook.h&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;Terminal/Terminal.h&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;Codec/Codec.h&quot;</span></div><div class="line"><a name="l00015"></a><span cLine truncated
<div class="ttc" id="_log_8h_html"><div class="ttname"><a href="_log_8h.html">Log.h</a></div></div>
<div class="ttc" id="_configuration_8h_html"><div class="ttname"><a href="_configuration_8h.html">Configuration.h</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Jan 2 2014 10:08:11 for Chameleon-Mini by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Wed Jan 17 2018 21:05:32 for Chameleon-Mini by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.4
</a> 1.8.13
</small></address>
</body>
</html>
+21 -162
View File
@@ -3,16 +3,15 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>Chameleon-Mini: C:/Dokumente und Einstellungen/skuser/Eigene Dateien/Chameleon-Mini-GitHub/Chameleon-Mini-OpenSource/Firmware/Chameleon-Mini/Codec/Codec.h Source File</title>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Chameleon-Mini: Codec.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -21,7 +20,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Chameleon-Mini
</div>
</td>
@@ -30,46 +29,25 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.4 -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@@ -88,134 +66,15 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">Codec.h</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* Copyright 2013 Timo Kasper, Simon KĂĽppers, David Oswald (&quot;ORIGINAL</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * AUTHORS&quot;). All rights reserved.</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * DEFINITIONS:</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * &quot;WORK&quot;: The material covered by this license includes the schematic</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * diagrams, designs, circuit or circuit board layouts, mechanical</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * drawings, documentation (in electronic or printed form), source code,</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * binary software, data files, assembled devices, and any additional</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * material provided by the ORIGINAL AUTHORS in the ChameleonMini project</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * (https://github.com/skuep/ChameleonMini).</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * LICENSE TERMS:</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * Redistributions and use of this WORK, with or without modification, or</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * of substantial portions of this WORK are permitted provided that the</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * following conditions are met:</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * Redistributions and use of this WORK, with or without modification, or</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * of substantial portions of this WORK must include the above copyright</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * notice, this list of conditions, the below disclaimer, and the following</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * attribution:</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * &quot;Based on ChameleonMini an open-source RFID emulator:</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * https://github.com/skuep/ChameleonMini&quot;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * The attribution must be clearly visible to a user, for example, by being</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * printed on the circuit board and an enclosure, and by being displayed by</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * software (both in binary and source code form).</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * At any time, the majority of the ORIGINAL AUTHORS may decide to give</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> * written permission to an entity to use or redistribute the WORK (with or</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> * without modification) WITHOUT having to include the above copyright</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> * notice, this list of conditions, the below disclaimer, and the above</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> * attribution.</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment"> * DISCLAIMER:</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment"> * THIS PRODUCT IS PROVIDED BY THE ORIGINAL AUTHORS &quot;AS IS&quot; AND ANY EXPRESS</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"> * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"> * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment"> * DISCLAIMED. IN NO EVENT SHALL THE ORIGINAL AUTHORS OR CONTRIBUTORS BE</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"> * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS PRODUCT, EVEN IF ADVISED OF</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment"> * THE POSSIBILITY OF SUCH DAMAGE.</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"> * The views and conclusions contained in the hardware, software, and</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> * documentation should not be interpreted as representing official</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"> * policies, either expressed or implied, of the ORIGINAL AUTHORS.</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#ifndef CODEC_H_</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CODEC_H_</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#include &lt;avr/io.h&gt;</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#include &lt;stdbool.h&gt;</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#include &quot;../Common.h&quot;</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#include &quot;../Configuration.h&quot;</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#include &quot;ISO14443-2A.h&quot;</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#define CODEC_DEMOD_POWER_PORT PORTB</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CODEC_DEMOD_POWER_MASK PIN1_bm</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CODEC_DEMOD_IN_PORT PORTB</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CODEC_DEMOD_IN_MASK (CODEC_DEMOD_IN_MASK0 | CODEC_DEMOD_IN_MASK1)</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CODEC_DEMOD_IN_MASK0 PIN0_bm</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CODEC_DEMOD_IN_MASK1 PIN2_bm</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CODEC_DEMOD_IN_PINCTRL0 PIN0CTRL</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CODEC_DEMOD_IN_PINCTRL1 PIN2CTRL</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CODEC_DEMOD_IN_EVMUX0 EVSYS_CHMUX_PORTB_PIN0_gc</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CODEC_DEMOD_IN_EVMUX1 EVSYS_CHMUX_PORTB_PIN2_gc</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CODEC_DEMOD_IN_INT0_VECT PORTB_INT0_vect</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CODEC_LOADMOD_PORT PORTC</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CODEC_LOADMOD_MASK PIN6_bm</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CODEC_CARRIER_IN_PORT PORTC</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CODEC_CARRIER_IN_MASK PIN2_bm</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CODEC_CARRIER_IN_PINCTRL PIN2CTRL</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CODEC_CARRIER_IN_EVMUX EVSYS_CHMUX_PORTC_PIN2_gc</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CODEC_SUBCARRIER_PORT PORTC</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CODEC_SUBCARRIER_MASK_PSK PIN0_bm</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CODEC_SUBCARRIER_MASK_OOK PIN1_bm</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CODEC_SUBCARRIER_MASK (CODEC_SUBCARRIER_MASK_PSK | CODEC_SUBCARRIER_MASK_OOK)</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CODEC_SUBCARRIER_TIMER TCC0</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CODEC_SUBCARRIER_CC_PSK CCA</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CODEC_SUBCARRIER_CC_OOK CCB</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CODEC_SUBCARRIER_CCEN_PSK TC0_CCAEN_bm</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CODEC_SUBCARRIER_CCEN_OOK TC0_CCBEN_bm</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CODEC_TIMER_SAMPLING TCC1</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CODEC_TIMER_SAMPLING_CCA_VECT TCC1_CCA_vect</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CODEC_TIMER_LOADMOD TCD1</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CODEC_TIMER_OVF_VECT TCD1_OVF_vect</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#define CODEC_BUFFER_SIZE 256 </span><span class="comment">/* Byte */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor">#define CODEC_CARRIER_FREQ 13560000</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="keyword">extern</span> uint8_t CodecBuffer[CODEC_BUFFER_SIZE];</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;INLINE <span class="keywordtype">void</span> CodecInit(<span class="keywordtype">void</span>) {</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; ActiveConfiguration.CodecInitFunc();</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;}</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;INLINE <span class="keywordtype">void</span> CodecTask(<span class="keywordtype">void</span>) {</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; ActiveConfiguration.CodecTaskFunc();</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;}</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;INLINE <span class="keywordtype">void</span> CodecSetDemodPower(<span class="keywordtype">bool</span> bOnOff) {</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; CODEC_DEMOD_POWER_PORT.DIRSET = CODEC_DEMOD_POWER_MASK;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">if</span> (bOnOff) {</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; CODEC_DEMOD_POWER_PORT.OUTSET = CODEC_DEMOD_POWER_MASK;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; CODEC_DEMOD_POWER_PORT.OUTCLR = CODEC_DEMOD_POWER_MASK;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;}</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* CODEC_H_ */</span><span class="preprocessor"></span></div>
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * CODEC.h</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * Created on: 18.02.2013</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Author: skuser</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#ifndef CODEC_H_</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#define CODEC_H_</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &lt;avr/io.h&gt;</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &lt;stdbool.h&gt;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;../Common.h&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;../Configuration.h&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno"> Line truncated
<div class="ttc" id="struct_configuration_type_html_afcabcce06f07798a43b95d0cf4d05db2"><div class="ttname"><a href="struct_configuration_type.html#afcabcce06f07798a43b95d0cf4d05db2">ConfigurationType::CodecTaskFunc</a></div><div class="ttdeci">void(* CodecTaskFunc)(void)</div><div class="ttdef"><b>Definition:</b> Configuration.h:65</div></div>
<div class="ttc" id="struct_configuration_type_html_a2b3fe0c8c0643102a8f07157fa0265f7"><div class="ttname"><a href="struct_configuration_type.html#a2b3fe0c8c0643102a8f07157fa0265f7">ConfigurationType::CodecDeInitFunc</a></div><div class="ttdeci">void(* CodecDeInitFunc)(void)</div><div class="ttdef"><b>Definition:</b> Configuration.h:61</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Jan 2 2014 10:08:11 for Chameleon-Mini by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Wed Jan 17 2018 21:05:32 for Chameleon-Mini by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.4
</a> 1.8.13
</small></address>
</body>
</html>
+19 -107
View File
@@ -3,16 +3,15 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>Chameleon-Mini: C:/Dokumente und Einstellungen/skuser/Eigene Dateien/Chameleon-Mini-GitHub/Chameleon-Mini-OpenSource/Firmware/Chameleon-Mini/Terminal/CommandLine.h Source File</title>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Chameleon-Mini: CommandLine.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -21,7 +20,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Chameleon-Mini
</div>
</td>
@@ -30,46 +29,25 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.4 -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@@ -88,78 +66,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">CommandLine.h</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* Copyright 2013 Timo Kasper, Simon KĂĽppers, David Oswald (&quot;ORIGINAL</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * AUTHORS&quot;). All rights reserved.</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * DEFINITIONS:</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * &quot;WORK&quot;: The material covered by this license includes the schematic</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * diagrams, designs, circuit or circuit board layouts, mechanical</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * drawings, documentation (in electronic or printed form), source code,</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * binary software, data files, assembled devices, and any additional</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * material provided by the ORIGINAL AUTHORS in the ChameleonMini project</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * (https://github.com/skuep/ChameleonMini).</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * LICENSE TERMS:</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * Redistributions and use of this WORK, with or without modification, or</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * of substantial portions of this WORK are permitted provided that the</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * following conditions are met:</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * Redistributions and use of this WORK, with or without modification, or</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * of substantial portions of this WORK must include the above copyright</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * notice, this list of conditions, the below disclaimer, and the following</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * attribution:</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * &quot;Based on ChameleonMini an open-source RFID emulator:</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * https://github.com/skuep/ChameleonMini&quot;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * The attribution must be clearly visible to a user, for example, by being</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * printed on the circuit board and an enclosure, and by being displayed by</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * software (both in binary and source code form).</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * At any time, the majority of the ORIGINAL AUTHORS may decide to give</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> * written permission to an entity to use or redistribute the WORK (with or</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> * without modification) WITHOUT having to include the above copyright</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> * notice, this list of conditions, the below disclaimer, and the above</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> * attribution.</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment"> * DISCLAIMER:</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment"> * THIS PRODUCT IS PROVIDED BY THE ORIGINAL AUTHORS &quot;AS IS&quot; AND ANY EXPRESS</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"> * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"> * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment"> * DISCLAIMED. IN NO EVENT SHALL THE ORIGINAL AUTHORS OR CONTRIBUTORS BE</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"> * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS PRODUCT, EVEN IF ADVISED OF</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment"> * THE POSSIBILITY OF SUCH DAMAGE.</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"> * The views and conclusions contained in the hardware, software, and</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> * documentation should not be interpreted as representing official</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"> * policies, either expressed or implied, of the ORIGINAL AUTHORS.</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#ifndef COMMANDLINE_H_</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define COMMANDLINE_H_</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#include &quot;Terminal.h&quot;</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keywordtype">void</span> CommandLineInit(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keywordtype">bool</span> CommandLineProcessByte(uint8_t Byte);</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keywordtype">void</span> CommandLineTick(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* COMMANDLINE_H_ */</span><span class="preprocessor"></span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * CommandLine.h</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * Created on: 04.05.2013</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Author: skuser</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#ifndef COMMANDLINE_H_</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#define COMMANDLINE_H_</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &quot;Terminal.h&quot;</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;Commands.h&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="keywordtype">void</span> CommandLineInit(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keywordtype">bool</span> CommandLineProcessByte(uint8_t Byte);</div><div class="line"><a name="l00016"></a><span class="lineno"> Line truncated
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Jan 2 2014 10:08:11 for Chameleon-Mini by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Wed Jan 17 2018 21:05:32 for Chameleon-Mini by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.4
</a> 1.8.13
</small></address>
</body>
</html>
+19 -41
View File
@@ -3,16 +3,15 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>Chameleon-Mini: DoxygenPages/CommandLine.txt File Reference</title>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Chameleon-Mini: CommandLine.txt File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -21,7 +20,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Chameleon-Mini
</div>
</td>
@@ -30,46 +29,25 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.4 -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@@ -81,15 +59,15 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">DoxygenPages/CommandLine.txt File Reference</div> </div>
<div class="title">CommandLine.txt File Reference</div> </div>
</div><!--header-->
<div class="contents">
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Jan 2 2014 10:08:11 for Chameleon-Mini by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Wed Jan 17 2018 21:05:32 for Chameleon-Mini by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.4
</a> 1.8.13
</small></address>
</body>
</html>
+19 -195
View File
@@ -3,16 +3,15 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>Chameleon-Mini: C:/Dokumente und Einstellungen/skuser/Eigene Dateien/Chameleon-Mini-GitHub/Chameleon-Mini-OpenSource/Firmware/Chameleon-Mini/Terminal/Commands.h Source File</title>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Chameleon-Mini: Commands.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -21,7 +20,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Chameleon-Mini
</div>
</td>
@@ -30,46 +29,25 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.4 -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@@ -88,166 +66,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">Commands.h</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* Copyright 2013 Timo Kasper, Simon KĂĽppers, David Oswald (&quot;ORIGINAL</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * AUTHORS&quot;). All rights reserved.</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * DEFINITIONS:</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * &quot;WORK&quot;: The material covered by this license includes the schematic</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * diagrams, designs, circuit or circuit board layouts, mechanical</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * drawings, documentation (in electronic or printed form), source code,</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * binary software, data files, assembled devices, and any additional</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * material provided by the ORIGINAL AUTHORS in the ChameleonMini project</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * (https://github.com/skuep/ChameleonMini).</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * LICENSE TERMS:</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * Redistributions and use of this WORK, with or without modification, or</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * of substantial portions of this WORK are permitted provided that the</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * following conditions are met:</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * Redistributions and use of this WORK, with or without modification, or</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * of substantial portions of this WORK must include the above copyright</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * notice, this list of conditions, the below disclaimer, and the following</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * attribution:</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * &quot;Based on ChameleonMini an open-source RFID emulator:</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * https://github.com/skuep/ChameleonMini&quot;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * The attribution must be clearly visible to a user, for example, by being</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * printed on the circuit board and an enclosure, and by being displayed by</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * software (both in binary and source code form).</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * At any time, the majority of the ORIGINAL AUTHORS may decide to give</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> * written permission to an entity to use or redistribute the WORK (with or</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> * without modification) WITHOUT having to include the above copyright</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> * notice, this list of conditions, the below disclaimer, and the above</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> * attribution.</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment"> * DISCLAIMER:</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment"> * THIS PRODUCT IS PROVIDED BY THE ORIGINAL AUTHORS &quot;AS IS&quot; AND ANY EXPRESS</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"> * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"> * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment"> * DISCLAIMED. IN NO EVENT SHALL THE ORIGINAL AUTHORS OR CONTRIBUTORS BE</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"> * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS PRODUCT, EVEN IF ADVISED OF</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment"> * THE POSSIBILITY OF SUCH DAMAGE.</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"> * The views and conclusions contained in the hardware, software, and</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> * documentation should not be interpreted as representing official</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"> * policies, either expressed or implied, of the ORIGINAL AUTHORS.</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#ifndef COMMANDS_H_</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define COMMANDS_H_</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#include &quot;../Common.h&quot;</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#define MAX_COMMAND_LENGTH 16</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define MAX_STATUS_LENGTH 32</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#define COMMAND_INFO_OK_ID 100</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define COMMAND_INFO_OK &quot;OK&quot;</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define COMMAND_INFO_OK_WITH_TEXT_ID 101</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define COMMAND_INFO_OK_WITH_TEXT &quot;OK WITH TEXT&quot;</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define COMMAND_INFO_XMODEM_WAIT_ID 110</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define COMMAND_INFO_XMODEM_WAIT &quot;WAITING FOR XMODEM&quot;</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define COMMAND_ERR_UNKNOWN_CMD_ID 200</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define COMMAND_ERR_UNKNOWN_CMD &quot;UNKNOWN COMMAND&quot;</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define COMMAND_ERR_INVALID_USAGE_ID 201</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define COMMAND_ERR_INVALID_USAGE &quot;INVALID COMMAND USAGE&quot;</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define COMMAND_ERR_INVALID_PARAM_ID 202</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define COMMAND_ERR_INVALID_PARAM &quot;INVALID PARAMETER&quot;</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#define COMMAND_CHAR_TRUE &#39;1&#39;</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define COMMAND_CHAR_FALSE &#39;0&#39;</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">#define COMMAND_UID_BUFSIZE 32</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="keyword">typedef</span> uint8_t CommandStatusIdType;</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keywordtype">char</span> CommandStatusMessageType[MAX_STATUS_LENGTH];</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="keyword">typedef</span> CommandStatusIdType (*CommandExecFuncType) (<span class="keywordtype">char</span>* OutMessage);</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="keyword">typedef</span> CommandStatusIdType (*CommandSetFuncType) (<span class="keyword">const</span> <span class="keywordtype">char</span>* InParam);</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="keyword">typedef</span> CommandStatusIdType (*CommandGetFuncType) (<span class="keywordtype">char</span>* OutParam);</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordtype">char</span> Command[MAX_COMMAND_LENGTH];</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; CommandExecFuncType ExecFunc;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; CommandSetFuncType SetFunc;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; CommandGetFuncType GetFunc;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;} CommandEntryType;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#define COMMAND_VERSION &quot;VERSION&quot;</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor"></span>CommandStatusIdType CommandGetVersion(<span class="keywordtype">char</span>* OutParam);</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor">#define COMMAND_CONFIG &quot;CONFIG&quot;</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor"></span>CommandStatusIdType CommandExecConfig(<span class="keywordtype">char</span>* OutMessage);</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;CommandStatusIdType CommandGetConfig(<span class="keywordtype">char</span>* OutParam);</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;CommandStatusIdType CommandSetConfig(<span class="keyword">const</span> <span class="keywordtype">char</span>* InParam);</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#define COMMAND_UID &quot;UID&quot;</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define COMMAND_UID_RANDOM &quot;RANDOM&quot;</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor"></span>CommandStatusIdType CommandGetUid(<span class="keywordtype">char</span>* OutParam);</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;CommandStatusIdType CommandSetUid(<span class="keyword">const</span> <span class="keywordtype">char</span>* InParam);</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor">#define COMMAND_READONLY &quot;READONLY&quot;</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor"></span>CommandStatusIdType CommandGetReadOnly(<span class="keywordtype">char</span>* OutParam);</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;CommandStatusIdType CommandSetReadOnly(<span class="keyword">const</span> <span class="keywordtype">char</span>* InParam);</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor">#define COMMAND_UPLOAD &quot;UPLOAD&quot;</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="preprocessor"></span>CommandStatusIdType CommandExecUpload(<span class="keywordtype">char</span>* OutMessage);</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor">#define COMMAND_DOWNLOAD &quot;DOWNLOAD&quot;</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor"></span>CommandStatusIdType CommandExecDownload(<span class="keywordtype">char</span>* OutMessage);</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor">#define COMMAND_RESET &quot;RESET&quot;</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="preprocessor"></span>CommandStatusIdType CommandExecReset(<span class="keywordtype">char</span>* OutMessage);</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="preprocessor">#define COMMAND_UPGRADE &quot;UPGRADE&quot;</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor"></span>CommandStatusIdType CommandExecUpgrade(<span class="keywordtype">char</span>* OutMessage);</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="preprocessor">#define COMMAND_MEMSIZE &quot;MEMSIZE&quot;</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor"></span>CommandStatusIdType CommandGetMemSize(<span class="keywordtype">char</span>* OutParam);</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="preprocessor">#define COMMAND_UIDSIZE &quot;UIDSIZE&quot;</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="preprocessor"></span>CommandStatusIdType CommandGetUidSize(<span class="keywordtype">char</span>* OutParam);</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="preprocessor">#define COMMAND_BUTTON &quot;BUTTON&quot;</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="preprocessor"></span>CommandStatusIdType CommandExecButton(<span class="keywordtype">char</span>* OutMessage);</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;CommandStatusIdType CommandGetButton(<span class="keywordtype">char</span>* OutParam);</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;CommandStatusIdType CommandSetButton(<span class="keyword">const</span> <span class="keywordtype">char</span>* InParam);</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="preprocessor">#define COMMAND_SETTING &quot;SETTING&quot;</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="preprocessor"></span>CommandStatusIdType CommandGetSetting(<span class="keywordtype">char</span>* OutParam);</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;CommandStatusIdType CommandSetSetting(<span class="keyword">const</span> <span class="keywordtype">char</span>* InParam);</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="preprocessor">#define COMMAND_CLEAR &quot;CLEAR&quot;</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="preprocessor"></span>CommandStatusIdType CommandExecClear(<span class="keywordtype">char</span>* OutParam);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="preprocessor">#define COMMAND_HELP &quot;HELP&quot;</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor"></span>CommandStatusIdType CommandExecHelp(<span class="keywordtype">char</span>* OutMessage);</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="preprocessor">#define COMMAND_RSSI &quot;RSSI&quot;</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="preprocessor"></span>CommandStatusIdType CommandGetRssi(<span class="keywordtype">char</span>* OutParam);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="preprocessor">#define COMMAND_LIST_END &quot;&quot;</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="preprocessor"></span><span class="comment">/* Defines the end of command list. This is no actual command */</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* COMMANDS_H_ */</span><span class="preprocessor"></span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#ifndef COMMANDS_H_</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#define COMMANDS_H_</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;../Common.h&quot;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#define MAX_COMMAND_LENGTH 16</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#define MAX_STATUS_LENGTH 32</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#define COMMAND_INFO_OK_ID 100</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#define COMMAND_INFO_OK &quot;OK&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#define COMMAND_INFO_OK_WITH_TEXT_ID 101</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#define COMMAND_INFO_OK_WITH_TEXT &quot;OK WITH TEXT&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno"> Line truncated
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Jan 2 2014 10:08:11 for Chameleon-Mini by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Wed Jan 17 2018 21:05:32 for Chameleon-Mini by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.4
</a> 1.8.13
</small></address>
</body>
</html>
+19 -122
View File
@@ -3,16 +3,15 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>Chameleon-Mini: C:/Dokumente und Einstellungen/skuser/Eigene Dateien/Chameleon-Mini-GitHub/Chameleon-Mini-OpenSource/Firmware/Chameleon-Mini/Common.h Source File</title>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Chameleon-Mini: Common.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -21,7 +20,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Chameleon-Mini
</div>
</td>
@@ -30,46 +29,25 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.4 -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@@ -88,93 +66,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">Common.h</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* Copyright 2013 Timo Kasper, Simon KĂĽppers, David Oswald (&quot;ORIGINAL</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * AUTHORS&quot;). All rights reserved.</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * DEFINITIONS:</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * &quot;WORK&quot;: The material covered by this license includes the schematic</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * diagrams, designs, circuit or circuit board layouts, mechanical</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * drawings, documentation (in electronic or printed form), source code,</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * binary software, data files, assembled devices, and any additional</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * material provided by the ORIGINAL AUTHORS in the ChameleonMini project</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * (https://github.com/skuep/ChameleonMini).</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * LICENSE TERMS:</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * Redistributions and use of this WORK, with or without modification, or</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * of substantial portions of this WORK are permitted provided that the</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * following conditions are met:</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * Redistributions and use of this WORK, with or without modification, or</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * of substantial portions of this WORK must include the above copyright</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * notice, this list of conditions, the below disclaimer, and the following</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * attribution:</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * &quot;Based on ChameleonMini an open-source RFID emulator:</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * https://github.com/skuep/ChameleonMini&quot;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * The attribution must be clearly visible to a user, for example, by being</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * printed on the circuit board and an enclosure, and by being displayed by</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * software (both in binary and source code form).</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * At any time, the majority of the ORIGINAL AUTHORS may decide to give</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> * written permission to an entity to use or redistribute the WORK (with or</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> * without modification) WITHOUT having to include the above copyright</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> * notice, this list of conditions, the below disclaimer, and the above</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> * attribution.</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment"> * DISCLAIMER:</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment"> * THIS PRODUCT IS PROVIDED BY THE ORIGINAL AUTHORS &quot;AS IS&quot; AND ANY EXPRESS</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"> * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"> * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment"> * DISCLAIMED. IN NO EVENT SHALL THE ORIGINAL AUTHORS OR CONTRIBUTORS BE</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"> * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS PRODUCT, EVEN IF ADVISED OF</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment"> * THE POSSIBILITY OF SUCH DAMAGE.</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"> * The views and conclusions contained in the hardware, software, and</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> * documentation should not be interpreted as representing official</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"> * policies, either expressed or implied, of the ORIGINAL AUTHORS.</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#ifndef COMMON_H_</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define COMMON_H_</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#include &lt;stdio.h&gt;</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#include &lt;stdbool.h&gt;</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#include &lt;util/parity.h&gt;</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#include &lt;util/delay.h&gt;</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#include &lt;avr/pgmspace.h&gt;</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#define ODD_PARITY(Value) (parity_even_bit(Value) ? 0 : 1)</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#define INLINE \</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor"> static inline __attribute__((always_inline))</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#define NIBBLE_TO_HEXCHAR(x) ( (x) &lt; 0x0A ? (x) + &#39;0&#39; : (x) + &#39;A&#39; - 0x0A )</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HEXCHAR_TO_NIBBLE(x) ( (x) &lt; &#39;A&#39; ? (x) - &#39;0&#39; : (x) - &#39;A&#39; + 0x0A )</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define VALID_HEXCHAR(x) ( ( (x) &gt;= &#39;0&#39; &amp;&amp; (x) &lt;= &#39;9&#39; ) || ( (x) &gt;= &#39;A&#39; &amp;&amp; (x) &lt;= &#39;F&#39; ) )</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define MIN(x,y) ( (x) &lt; (y) ? (x) : (y) )</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define MAX(x,y) ( (x) &gt; (y) ? (x) : (y) )</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor">#define BITS_PER_BYTE 8</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;uint16_t BufferToHexString(<span class="keywordtype">char</span>* HexOut, uint16_t MaxChars, <span class="keyword">const</span> <span class="keywordtype">void</span>* Buffer, uint16_t ByteCount);</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;uint16_t HexStringToBuffer(<span class="keywordtype">void</span>* Buffer, uint16_t MaxBytes, <span class="keyword">const</span> <span class="keywordtype">char</span>* HexIn);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* COMMON_H_ */</span><span class="preprocessor"></span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Common.h</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * Created on: 20.03.2013</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Author: skuser</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#ifndef COMMON_H_</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#define COMMON_H_</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &lt;stdio.h&gt;</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &lt;stdbool.h&gt;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &lt;util/parity.h&gt;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &lt;util/delay.h&gt;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &lt;avr/pgmspace.h&gt;</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16Line truncated
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Jan 2 2014 10:08:11 for Chameleon-Mini by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Wed Jan 17 2018 21:05:32 for Chameleon-Mini by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.4
</a> 1.8.13
</small></address>
</body>
</html>
+89
View File
@@ -0,0 +1,89 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Chameleon-Mini: Configuration.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Chameleon-Mini
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_74b6a3b63f61c160c0f14b7a283a4c9b.html">Firmware</a></li><li class="navelem"><a class="el" href="dir_8465ec698d237f801ae9966d4551fcfa.html">Chameleon-Mini</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> </div>
<div class="headertitle">
<div class="title">Configuration.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;stdint.h&gt;</code><br />
<code>#include &lt;stdbool.h&gt;</code><br />
</div>
<p><a href="_configuration_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_configuration_type.html">ConfigurationType</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Jan 17 2018 21:05:32 for Chameleon-Mini by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>
+22 -167
View File
@@ -3,16 +3,15 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>Chameleon-Mini: C:/Dokumente und Einstellungen/skuser/Eigene Dateien/Chameleon-Mini-GitHub/Chameleon-Mini-OpenSource/Firmware/Chameleon-Mini/Configuration.h Source File</title>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Chameleon-Mini: Configuration.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -21,7 +20,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Chameleon-Mini
</div>
</td>
@@ -30,46 +29,25 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.4 -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@@ -88,139 +66,16 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">Configuration.h</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* Copyright 2013 Timo Kasper, Simon KĂĽppers, David Oswald (&quot;ORIGINAL</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * AUTHORS&quot;). All rights reserved.</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * DEFINITIONS:</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * &quot;WORK&quot;: The material covered by this license includes the schematic</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * diagrams, designs, circuit or circuit board layouts, mechanical</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * drawings, documentation (in electronic or printed form), source code,</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * binary software, data files, assembled devices, and any additional</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * material provided by the ORIGINAL AUTHORS in the ChameleonMini project</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * (https://github.com/skuep/ChameleonMini).</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * LICENSE TERMS:</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * Redistributions and use of this WORK, with or without modification, or</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * of substantial portions of this WORK are permitted provided that the</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * following conditions are met:</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * Redistributions and use of this WORK, with or without modification, or</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * of substantial portions of this WORK must include the above copyright</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * notice, this list of conditions, the below disclaimer, and the following</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * attribution:</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * &quot;Based on ChameleonMini an open-source RFID emulator:</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * https://github.com/skuep/ChameleonMini&quot;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * The attribution must be clearly visible to a user, for example, by being</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * printed on the circuit board and an enclosure, and by being displayed by</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * software (both in binary and source code form).</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * At any time, the majority of the ORIGINAL AUTHORS may decide to give</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> * written permission to an entity to use or redistribute the WORK (with or</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> * without modification) WITHOUT having to include the above copyright</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> * notice, this list of conditions, the below disclaimer, and the above</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> * attribution.</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment"> * DISCLAIMER:</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment"> * THIS PRODUCT IS PROVIDED BY THE ORIGINAL AUTHORS &quot;AS IS&quot; AND ANY EXPRESS</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"> * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"> * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment"> * DISCLAIMED. IN NO EVENT SHALL THE ORIGINAL AUTHORS OR CONTRIBUTORS BE</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"> * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS PRODUCT, EVEN IF ADVISED OF</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment"> * THE POSSIBILITY OF SUCH DAMAGE.</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"> * The views and conclusions contained in the hardware, software, and</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> * documentation should not be interpreted as representing official</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"> * policies, either expressed or implied, of the ORIGINAL AUTHORS.</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#ifndef STANDARDS_H_</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define STANDARDS_H_</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#include &lt;stdbool.h&gt;</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#define CONFIGURATION_NAME_LENGTH_MAX 16</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CONFIGURATION_UID_SIZE_MAX 16</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="keyword">typedef</span> uint8_t ConfigurationUidType[CONFIGURATION_UID_SIZE_MAX];</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="comment">/* This HAS to be the first element */</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; CONFIG_NONE = 0,</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#ifdef CONFIG_MF_ULTRALIGHT_SUPPORT</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor"></span> CONFIG_MF_ULTRALIGHT,</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifdef CONFIG_MF_CLASSIC_1K_SUPPORT</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"></span> CONFIG_MF_CLASSIC_1K,</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifdef CONFIG_MF_CLASSIC_4K_SUPPORT</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor"></span> CONFIG_MF_CLASSIC_4K,</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifdef CONFIG_ISO15693_GEN_SUPPORT</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor"></span> CONFIG_ISO15693_GEN,</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifdef CONFIG_ISO14443A_SNIFF_SUPPORT</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor"></span> CONFIG_ISO14443A_SNIFF,</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifdef CONFIG_ISO15693_SNIFF_SUPPORT</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor"></span> CONFIG_ISO15693_SNIFF,</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor"></span> <span class="comment">//CONFIG_MF_DESFIRE,</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">//CONFIG_ISO14443A_RELAY</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="comment">/* This HAS to be the last element */</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; CONFIG_COUNT</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;} ConfigurationEnum;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; ConfigurationEnum ConfigurationID;</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordtype">char</span> ConfigurationName[CONFIGURATION_NAME_LENGTH_MAX];</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="comment">/* Codec used for this configuration */</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; void (*CodecInitFunc) (void);</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; void (*CodecTaskFunc) (void);</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="comment">/* Application used for this configuration */</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; void (*ApplicationInitFunc) (void);</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; void (*ApplicationResetFunc) (void);</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; void (*ApplicationTaskFunc) (void);</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; uint16_t (*ApplicationProcessFunc) (uint8_t* ByteBuffer, uint16_t ByteCount);</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; void (*ApplicationGetUidFunc) (ConfigurationUidType Uid);</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; void (*ApplicationSetUidFunc) (ConfigurationUidType Uid);</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; uint16_t MemorySize;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; uint8_t UidSize;</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordtype">bool</span> ReadOnly;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;} ConfigurationType;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="keyword">extern</span> ConfigurationType ActiveConfiguration;</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="keywordtype">void</span> ConfigurationInit(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="keywordtype">void</span> ConfigurationSetById(ConfigurationEnum Configuration);</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="keywordtype">bool</span> ConfigurationSetByName(<span class="keyword">const</span> <span class="keywordtype">char</span>* ConfigurationName);</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="keywordtype">void</span> ConfigurationGetList(<span class="keywordtype">char</span>* ConfigListOut, uint16_t ByteCount);</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* STANDARDS_H_ */</span><span class="preprocessor"></span></div>
<a href="_configuration_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Standards.h</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * Created on: 15.02.2013</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Author: skuser</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#ifndef STANDARDS_H_</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#define STANDARDS_H_</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &lt;stdbool.h&gt;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#define CONFIGURATION_NAME_LENGTH_MAX 32</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#define CONFIGURATION_UID_SIZE_MAX 16</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a Line truncated
<div class="ttc" id="struct_configuration_type_html"><div class="ttname"><a href="struct_configuration_type.html">ConfigurationType</a></div><div class="ttdef"><b>Definition:</b> Configuration.h:51</div></div>
<div class="ttc" id="struct_configuration_type_html_af1ed4e624b9bd8cb65743b5cbc0be2bf"><div class="ttname"><a href="struct_configuration_type.html#af1ed4e624b9bd8cb65743b5cbc0be2bf">ConfigurationType::ReadOnly</a></div><div class="ttdeci">bool ReadOnly</div><div class="ttdef"><b>Definition:</b> Configuration.h:126</div></div>
<div class="ttc" id="struct_configuration_type_html_ac730d8b9dc9e728bb10069ea1917d99f"><div class="ttname"><a href="struct_configuration_type.html#ac730d8b9dc9e728bb10069ea1917d99f">ConfigurationType::UidSize</a></div><div class="ttdeci">uint8_t UidSize</div><div class="ttdef"><b>Definition:</b> Configuration.h:122</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Jan 2 2014 10:08:11 for Chameleon-Mini by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Wed Jan 17 2018 21:05:32 for Chameleon-Mini by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.4
</a> 1.8.13
</small></address>
</body>
</html>
+19 -41
View File
@@ -3,16 +3,15 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>Chameleon-Mini: DoxygenPages/Configurations.txt File Reference</title>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Chameleon-Mini: Configurations.txt File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -21,7 +20,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Chameleon-Mini
</div>
</td>
@@ -30,46 +29,25 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.4 -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@@ -81,15 +59,15 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">DoxygenPages/Configurations.txt File Reference</div> </div>
<div class="title">Configurations.txt File Reference</div> </div>
</div><!--header-->
<div class="contents">
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sun Dec 22 2013 02:33:18 for Chameleon-Mini by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Wed Jan 17 2018 21:05:32 for Chameleon-Mini by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.4
</a> 1.8.13
</small></address>
</body>
</html>
+19 -121
View File
@@ -3,16 +3,15 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>Chameleon-Mini: C:/Dokumente und Einstellungen/skuser/Eigene Dateien/Chameleon-Mini-GitHub/Chameleon-Mini-OpenSource/Firmware/Chameleon-Mini/Application/Crypto1.h Source File</title>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Chameleon-Mini: Crypto1.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -21,7 +20,7 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Chameleon-Mini
</div>
</td>
@@ -30,46 +29,25 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.4 -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
@@ -88,92 +66,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">Crypto1.h</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* Copyright 2013 Timo Kasper, Simon KĂĽppers, David Oswald (&quot;ORIGINAL</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * AUTHORS&quot;). All rights reserved.</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * DEFINITIONS:</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * &quot;WORK&quot;: The material covered by this license includes the schematic</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * diagrams, designs, circuit or circuit board layouts, mechanical</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * drawings, documentation (in electronic or printed form), source code,</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * binary software, data files, assembled devices, and any additional</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * material provided by the ORIGINAL AUTHORS in the ChameleonMini project</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * (https://github.com/skuep/ChameleonMini).</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * LICENSE TERMS:</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * Redistributions and use of this WORK, with or without modification, or</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * of substantial portions of this WORK are permitted provided that the</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * following conditions are met:</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * Redistributions and use of this WORK, with or without modification, or</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * of substantial portions of this WORK must include the above copyright</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * notice, this list of conditions, the below disclaimer, and the following</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * attribution:</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * &quot;Based on ChameleonMini an open-source RFID emulator:</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * https://github.com/skuep/ChameleonMini&quot;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * The attribution must be clearly visible to a user, for example, by being</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * printed on the circuit board and an enclosure, and by being displayed by</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * software (both in binary and source code form).</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * At any time, the majority of the ORIGINAL AUTHORS may decide to give</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> * written permission to an entity to use or redistribute the WORK (with or</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> * without modification) WITHOUT having to include the above copyright</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> * notice, this list of conditions, the below disclaimer, and the above</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> * attribution.</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment"> * DISCLAIMER:</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment"> * THIS PRODUCT IS PROVIDED BY THE ORIGINAL AUTHORS &quot;AS IS&quot; AND ANY EXPRESS</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"> * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"> * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment"> * DISCLAIMED. IN NO EVENT SHALL THE ORIGINAL AUTHORS OR CONTRIBUTORS BE</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"> * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS PRODUCT, EVEN IF ADVISED OF</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment"> * THE POSSIBILITY OF SUCH DAMAGE.</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"> * The views and conclusions contained in the hardware, software, and</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> * documentation should not be interpreted as representing official</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"> * policies, either expressed or implied, of the ORIGINAL AUTHORS.</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#ifndef CRYPTO1_H</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CRYPTO1_H</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment">/* Gets the current keystream-bit, without shifting the internal LFSR */</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;uint8_t Crypto1FilterOutput(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="comment">/* Set up Crypto1 cipher using the given Key, Uid and CardNonce. Also encrypts</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="comment"> * the CardNonce in-place while in non-linear mode. */</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keywordtype">void</span> Crypto1Setup(uint8_t Key[6], uint8_t Uid[4], uint8_t CardNonce[4]);</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment">/* Load the decrypted ReaderNonce into the Crypto1 state LFSR */</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keywordtype">void</span> Crypto1Auth(uint8_t EncryptedReaderNonce[4]);</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment">/* Generate 8 Bits of key stream */</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;uint8_t Crypto1Byte(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment">/* Generate 4 Bits of key stream */</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;uint8_t Crypto1Nibble(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment">/* Execute &#39;ClockCount&#39; cycles on the PRNG state &#39;State&#39; */</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="keywordtype">void</span> Crypto1PRNG(uint8_t State[4], uint16_t ClockCount);</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor">#endif //CRYPTO1_H</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef CRYPTO1_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define CRYPTO1_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &lt;stdbool.h&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="keywordtype">void</span> Crypto1GetState(uint8_t* pEven, uint8_t* pOdd);</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">/* Gets the current keystream-bit, without shifting the internal LFSR */</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;uint8_t Crypto1FilterOutput(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">/* Set up Crypto1 cipher using the given Key, Uid and CardNonce. Also encrypts</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * the CardNonce in-place while in non-linear mode. */</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="keywordtype">void</span> Crypto1Setup(uint8_t Key[6], uint8_t Uid[4], uint8_t CardNonce[4]);</div><div class="line"><a name="l0001Line truncated
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Jan 2 2014 10:08:11 for Chameleon-Mini by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Wed Jan 17 2018 21:05:32 for Chameleon-Mini by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.4
</a> 1.8.13
</small></address>
</body>
</html>
Loaded 20 of 1559 files, more files were not shown because too many files have changed in this diff. Show more