diff --git a/Firmware/Chameleon-Mini/Application/TITagitstandard.c b/Firmware/Chameleon-Mini/Application/TITagitstandard.c index 31bb710..0b52743 100644 --- a/Firmware/Chameleon-Mini/Application/TITagitstandard.c +++ b/Firmware/Chameleon-Mini/Application/TITagitstandard.c @@ -69,7 +69,7 @@ uint16_t TITagitstandardAppProcess(uint8_t* FrameBuf, uint16_t FrameBytes) uint8_t Uid[8]; //MemoryReadBlock(actualTagIt, 0, 44); // read the whole tag from FRAM - MemoryReadBlock(Uid, MEM_UID_ADDRESS, ActiveConfiguration.UidSize); + TITagitstandardGetUid(Uid); //for (j==0 ; j < ActiveConfiguration.UidSize; j++) Uid[j] = actualTagIt[MEM_UID_ADDRESS + j] ; @@ -174,9 +174,25 @@ uint16_t TITagitstandardAppProcess(uint8_t* FrameBuf, uint16_t FrameBytes) void TITagitstandardGetUid(ConfigurationUidType Uid) { MemoryReadBlock(&Uid[0], MEM_UID_ADDRESS, ActiveConfiguration.UidSize); + + // Reverse UID after reading it + uint8_t* UidTemp = calloc(ActiveConfiguration.UidSize, sizeof(UidTemp)); + int i; + for (i = 0; i < ActiveConfiguration.UidSize; i++) + UidTemp[i] = Uid[i]; + for (i = 0; i < ActiveConfiguration.UidSize; i++) + Uid[i] = UidTemp[ActiveConfiguration.UidSize - i - 1]; } void TITagitstandardSetUid(ConfigurationUidType Uid) { + // Reverse UID before writing it + uint8_t* UidTemp = calloc(ActiveConfiguration.UidSize, sizeof(UidTemp)); + int i; + for (i = 0; i < ActiveConfiguration.UidSize; i++) + UidTemp[i] = Uid[i]; + for (i = 0; i < ActiveConfiguration.UidSize; i++) + Uid[i] = UidTemp[ActiveConfiguration.UidSize - i - 1]; + MemoryWriteBlock(Uid, MEM_UID_ADDRESS, ActiveConfiguration.UidSize); } \ No newline at end of file diff --git a/Firmware/Chameleon-Mini/Application/TITagitstandard.h b/Firmware/Chameleon-Mini/Application/TITagitstandard.h index 1562fbc..066d10e 100644 --- a/Firmware/Chameleon-Mini/Application/TITagitstandard.h +++ b/Firmware/Chameleon-Mini/Application/TITagitstandard.h @@ -12,8 +12,8 @@ #include "Application.h" #include "ISO15693-A.h" -#define ISO15693_GENERIC_UID_SIZE 8 //ISO15693_UID_SIZE -#define ISO15693_GENERIC_MEM_SIZE 44 //TAG-IT STANDARD MAX MEM SIZE +#define TITAGIT_STD_UID_SIZE ISO15693_GENERIC_UID_SIZE //ISO15693_UID_SIZE +#define TITAGIT_STD_MEM_SIZE 44 //TAG-IT STANDARD MAX MEM SIZE void TITagitstandardAppInit(void); void TITagitstandardAppReset(void); diff --git a/Firmware/Chameleon-Mini/Configuration.c b/Firmware/Chameleon-Mini/Configuration.c index 14c26df..1945549 100644 --- a/Firmware/Chameleon-Mini/Configuration.c +++ b/Firmware/Chameleon-Mini/Configuration.c @@ -297,8 +297,8 @@ static const PROGMEM ConfigurationType ConfigurationTable[] = { .ApplicationProcessFunc = TITagitstandardAppProcess, .ApplicationGetUidFunc = TITagitstandardGetUid, .ApplicationSetUidFunc = TITagitstandardSetUid, - .UidSize = ISO15693_GENERIC_UID_SIZE, - .MemorySize = ISO15693_GENERIC_MEM_SIZE, + .UidSize = TITAGIT_STD_UID_SIZE, + .MemorySize = TITAGIT_STD_MEM_SIZE, .ReadOnly = false }, #endif