ADD: printConfiguration method for a nice printout of the selected configuration.

This commit is contained in:
iceman1001 2015-03-13 19:12:11 +01:00
commit 710208245b
2 changed files with 50 additions and 15 deletions

View file

@ -26,17 +26,9 @@
#define LF_TRACE_BUFF_SIZE 20000 // 32 x 32 x 10 (32 bit times numofblock (7), times clock skip..) #define LF_TRACE_BUFF_SIZE 20000 // 32 x 32 x 10 (32 bit times numofblock (7), times clock skip..)
#define LF_BITSSTREAM_LEN 1000 // more then 1000 bits shouldn't happend.. 8block * 4 bytes * 8bits = #define LF_BITSSTREAM_LEN 1000 // more then 1000 bits shouldn't happend.. 8block * 4 bytes * 8bits =
// 0 = FSK
// 1 = ASK
// 2 = PSK
// 4 = NZR (direct)
typedef struct {
uint8_t modulation;
bool inversed;
uint32_t block0;
} t55xx_conf_block_t;
// Default configuration: FSK, not inversed.
// Default configuration: ASK, not inversed.
t55xx_conf_block_t config = { .modulation = 2, .inversed = FALSE, .block0 = 0x00}; t55xx_conf_block_t config = { .modulation = 2, .inversed = FALSE, .block0 = 0x00};
int usage_t55xx_config(){ int usage_t55xx_config(){
@ -164,9 +156,7 @@ int CmdT55xxSetConfig(const char *Cmd){
} }
// No args // No args
if (cmdp == 0) { if (cmdp == 0) {
PrintAndLog("Modulation: %d", config.modulation); printConfiguration( config );
PrintAndLog("Invert : %d", config.inversed);
PrintAndLog("Block0 : %08X", config.block0);
return 0; return 0;
} }
//Validations //Validations
@ -351,16 +341,16 @@ bool tryDetectModulation(){
// } // }
} }
if ( hits == 1) { if ( hits == 1) {
PrintAndLog("Modulation: %d Inverse: %d", tests[0].modulation, tests[0].inversed);
config.modulation = tests[0].modulation; config.modulation = tests[0].modulation;
config.inversed = tests[0].inversed; config.inversed = tests[0].inversed;
printConfiguration( config );
return TRUE; return TRUE;
} }
if ( hits > 1) { if ( hits > 1) {
PrintAndLog("Found [%d] possible matches for modulation.",hits); PrintAndLog("Found [%d] possible matches for modulation.",hits);
for(int i=0; i<hits; ++i){ for(int i=0; i<hits; ++i){
PrintAndLog("Modulation: %d Inverse: %d", tests[i].modulation, tests[i].inversed); printConfiguration( tests[i] );
} }
} }
return FALSE; return FALSE;
@ -405,6 +395,13 @@ void printT55xxBlock(const char *demodStr){
PrintAndLog("0x%08X %s [%s]", blockData, sprint_bin(bits+1,32), demodStr); PrintAndLog("0x%08X %s [%s]", blockData, sprint_bin(bits+1,32), demodStr);
} }
void printConfiguration( t55xx_conf_block_t b){
PrintAndLog("Modulation : %s", GetSelectedModulationStr(b.modulation) );
PrintAndLog("Inverted : %s", (b.inversed) ? "Yes" : "No" );
PrintAndLog("Block0 : %08X", b.block0);
PrintAndLog("");
}
/* /*
FSK1 / FSK1a FSK1 / FSK1a
size = fskdemod(dest, size, 32, 0, 8, 10); // fsk1 RF/32 size = fskdemod(dest, size, 32, 0, 8, 10); // fsk1 RF/32
@ -752,6 +749,34 @@ char * GetModulationStr( uint32_t id){
return buf; return buf;
} }
char * GetSelectedModulationStr( uint8_t id){
static char buf[16];
char *retStr = buf;
switch (id){
case 1:
sprintf(retStr,"FSK (%d)",id);
break;
case 2:
sprintf(retStr,"ASK (%d)",id);
break;
case 3:
sprintf(retStr,"DIRECT/NRZ (%d)",id);
break;
case 4:
sprintf(retStr,"PSK (%d)",id);
break;
case 5:
sprintf(retStr,"BIPHASE (%d)",id);
break;
default:
sprintf(retStr,"(Unknown)");
break;
}
return buf;
}
uint32_t PackBits(uint8_t start, uint8_t len, uint8_t* bits){ uint32_t PackBits(uint8_t start, uint8_t len, uint8_t* bits){
int i = start; int i = start;

View file

@ -10,6 +10,13 @@
#ifndef CMDLFT55XX_H__ #ifndef CMDLFT55XX_H__
#define CMDLFT55XX_H__ #define CMDLFT55XX_H__
typedef struct {
uint8_t modulation;
bool inversed;
uint32_t block0;
} t55xx_conf_block_t;
int CmdLFT55XX(const char *Cmd); int CmdLFT55XX(const char *Cmd);
int CmdT55xxSetConfig(const char *Cmd); int CmdT55xxSetConfig(const char *Cmd);
int CmdT55xxReadBlock(const char *Cmd); int CmdT55xxReadBlock(const char *Cmd);
@ -21,8 +28,11 @@ int CmdT55xxDetect(const char *Cmd);
char * GetBitRateStr(uint32_t id); char * GetBitRateStr(uint32_t id);
char * GetSaferStr(uint32_t id); char * GetSaferStr(uint32_t id);
char * GetModulationStr( uint32_t id); char * GetModulationStr( uint32_t id);
char * GetSelectedModulationStr( uint8_t id);
uint32_t PackBits(uint8_t start, uint8_t len, uint8_t* bitstream); uint32_t PackBits(uint8_t start, uint8_t len, uint8_t* bitstream);
void printT55xxBlock(const char *demodStr); void printT55xxBlock(const char *demodStr);
void printConfiguration( t55xx_conf_block_t b);
void DecodeT55xxBlock(); void DecodeT55xxBlock();
bool tryDetectModulation(); bool tryDetectModulation();
bool test(); bool test();