mirror of
https://github.com/Proxmark/proxmark3.git
synced 2025-07-16 02:03:00 -07:00
use different fsk field clock detection routine ...
... to prevent double call to getFromGraphBuf()... also adjust %hu to u and as there is a possible problem with %hu in printf.
This commit is contained in:
parent
b31ef4f510
commit
a0cc89b479
1 changed files with 14 additions and 14 deletions
|
@ -959,17 +959,18 @@ int FSKrawDemod(const char *Cmd, bool verbose)
|
||||||
uint8_t BitStream[MAX_GRAPH_TRACE_LEN]={0};
|
uint8_t BitStream[MAX_GRAPH_TRACE_LEN]={0};
|
||||||
size_t BitLen = getFromGraphBuf(BitStream);
|
size_t BitLen = getFromGraphBuf(BitStream);
|
||||||
if (BitLen==0) return 0;
|
if (BitLen==0) return 0;
|
||||||
|
if (g_debugMode==2) PrintAndLog("DEBUG: Got samples");
|
||||||
//get field clock lengths
|
//get field clock lengths
|
||||||
uint8_t fc1=0, fc2=0, rf1=0;
|
uint16_t fcs=0;
|
||||||
if (!fchigh || !fclow) {
|
if (!fchigh || !fclow) {
|
||||||
uint8_t ans = fskClocks(&fc1, &fc2, &rf1, false);
|
fcs = countFC(BitStream, BitLen, 1);
|
||||||
if (ans == 0) {
|
if (!fcs) {
|
||||||
if (g_debugMode) PrintAndLog("\nError: cannot detect valid fsk field clocks");
|
fchigh = 10;
|
||||||
return 0; // can't detect field clock
|
fclow = 8;
|
||||||
|
} else {
|
||||||
|
fchigh = (fcs >> 8) & 0x00FF;
|
||||||
|
fclow = fcs & 0x00FF;
|
||||||
}
|
}
|
||||||
fchigh = fc1;
|
|
||||||
fclow = fc2;
|
|
||||||
if (rfLen == 0) rfLen = rf1;
|
|
||||||
}
|
}
|
||||||
//get bit clock length
|
//get bit clock length
|
||||||
if (!rfLen) {
|
if (!rfLen) {
|
||||||
|
@ -982,11 +983,10 @@ int FSKrawDemod(const char *Cmd, bool verbose)
|
||||||
|
|
||||||
// Now output the bitstream to the scrollback by line of 16 bits
|
// Now output the bitstream to the scrollback by line of 16 bits
|
||||||
if (verbose || g_debugMode) {
|
if (verbose || g_debugMode) {
|
||||||
PrintAndLog("\nUsing Clock:%hu, invert:%hu, fchigh:%hu, fclow:%hu", rfLen, invert, fchigh, fclow);
|
PrintAndLog("\nUsing Clock:%u, invert:%u, fchigh:%u, fclow:%u", (unsigned int)rfLen, (unsigned int)invert, (unsigned int)fchigh, (unsigned int)fclow);
|
||||||
PrintAndLog("%s decoded bitstream:",GetFSKType(fchigh,fclow,invert));
|
PrintAndLog("%s decoded bitstream:",GetFSKType(fchigh,fclow,invert));
|
||||||
printDemodBuff();
|
printDemodBuff();
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
} else {
|
} else {
|
||||||
if (g_debugMode) PrintAndLog("no FSK data found");
|
if (g_debugMode) PrintAndLog("no FSK data found");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue