bit names refactoring

This commit is contained in:
merlokk 2022-06-28 00:22:29 +03:00
parent a18e50b18a
commit 6bb71fb860
2 changed files with 18 additions and 11 deletions

View file

@ -244,37 +244,36 @@ static uint8_t TexcomTK17CRC(uint8_t* data) {
inline int TexcomTK17Get2Bits(uint32_t len1, uint32_t len2) { inline int TexcomTK17Get2Bits(uint32_t len1, uint32_t len2) {
uint32_t xlen = (len2 * 100) / (len1 + len2); uint32_t xlen = (len2 * 100) / (len1 + len2);
if (xlen < 10 || xlen > 90) if (xlen < 10 || xlen > 90)
return -1; return TK17WrongBit;
if (xlen < 30) if (xlen < 30)
return 0; return TK17Bit00;
if (xlen < 50) if (xlen < 50)
return 2; return TK17Bit10;
if (xlen < 70) if (xlen < 70)
return 1; return TK17Bit01;
return 3; return TK17Bit11;
} }
static bool TexcomTK17Decode(uint32_t* implengths, uint32_t implengthslen, char* bitstring, char* cbitstring, bool verbose) { static bool TexcomTK17Decode(uint32_t* implengths, uint32_t implengthslen, char* bitstring, char* cbitstring, bool verbose) {
bitstring[0] = 0; bitstring[0] = 0;
cbitstring[0] = 0; cbitstring[0] = 0;
for (uint32_t i = 0; i < implengthslen; i = i + 2) { for (uint32_t i = 0; i < implengthslen; i = i + 2) {
int dbit = TexcomTK17Get2Bits(implengths[i], implengths[i + 1]); int dbit = TexcomTK17Get2Bits(implengths[i], implengths[i + 1]);
if (dbit < 0) if (dbit == TK17WrongBit)
return false; return false;
switch (dbit) { switch (dbit) {
case 0: case TK17Bit00:
strcat(bitstring, "00"); strcat(bitstring, "00");
break; break;
case 1: case TK17Bit01:
strcat(bitstring, "01"); strcat(bitstring, "01");
break; break;
case 2: case TK17Bit10:
strcat(bitstring, "10"); strcat(bitstring, "10");
break; break;
case 3: case TK17Bit11:
strcat(bitstring, "11"); strcat(bitstring, "11");
break; break;
default: default:

View file

@ -22,6 +22,14 @@
#include "common.h" #include "common.h"
#include "pm3_cmd.h" #include "pm3_cmd.h"
enum TK17Bits {
TK17WrongBit,
TK17Bit00,
TK17Bit01,
TK17Bit10,
TK17Bit11
};
int CmdHFTexkom(const char *Cmd); int CmdHFTexkom(const char *Cmd);
#endif #endif