mirror of
https://github.com/Proxmark/proxmark3.git
synced 2025-08-19 21:03:23 -07:00
Merge pull request #808 from MalteHillmann/master
Fixed bugs for FDX-B demod
This commit is contained in:
commit
1f61f19767
2 changed files with 12 additions and 10 deletions
|
@ -367,18 +367,20 @@ int Cmdmandecoderaw(const char *Cmd)
|
|||
return 1;
|
||||
}
|
||||
|
||||
//by marshmellow
|
||||
//biphase decode
|
||||
//take 01 or 10 = 0 and 11 or 00 = 1
|
||||
//takes 2 arguments "offset" default = 0 if 1 it will shift the decode by one bit
|
||||
// and "invert" default = 0 if 1 it will invert output
|
||||
// the argument offset allows us to manually shift if the output is incorrect - [EDIT: now auto detects]
|
||||
/**
|
||||
* @author marshmellow
|
||||
* biphase decode
|
||||
* decdoes 01 or 10 to 0 and 11 or 00 to 1
|
||||
* param offset adjust start position
|
||||
* param invert invert output
|
||||
* param maxErr maximum tolerated errors
|
||||
*/
|
||||
int CmdBiphaseDecodeRaw(const char *Cmd)
|
||||
{
|
||||
size_t size=0;
|
||||
int offset=0, invert=0, maxErr=20, errCnt=0;
|
||||
char cmdp = param_getchar(Cmd, 0);
|
||||
if (strlen(Cmd) > 3 || cmdp == 'h' || cmdp == 'H') {
|
||||
if (strlen(Cmd) > 7 || cmdp == 'h' || cmdp == 'H') {
|
||||
PrintAndLog("Usage: data biphaserawdecode [offset] [invert] [maxErr]");
|
||||
PrintAndLog(" Converts 10 or 01 to 1 and 11 or 00 to 0");
|
||||
PrintAndLog(" --must have binary sequence in demodbuffer (run data askrawdemod first)");
|
||||
|
@ -427,7 +429,7 @@ int CmdBiphaseDecodeRaw(const char *Cmd)
|
|||
int ASKbiphaseDemod(const char *Cmd, bool verbose)
|
||||
{
|
||||
//ask raw demod GraphBuffer first
|
||||
int offset=0, clk=0, invert=0, maxErr=0;
|
||||
int offset=0, clk=0, invert=0, maxErr=100;
|
||||
sscanf(Cmd, "%i %i %i %i", &offset, &clk, &invert, &maxErr);
|
||||
|
||||
uint8_t BitStream[MAX_GRAPH_TRACE_LEN];
|
||||
|
|
|
@ -137,7 +137,7 @@ int CmdFdxDemod(const char *Cmd){
|
|||
|
||||
//Differential Biphase / di-phase (inverted biphase)
|
||||
//get binary from ask wave
|
||||
if (!ASKbiphaseDemod("0 32 1 0", false)) {
|
||||
if (!ASKbiphaseDemod("0 32 1 100", false)) {
|
||||
if (g_debugMode) PrintAndLog("DEBUG: Error - FDX-B ASKbiphaseDemod failed");
|
||||
return 0;
|
||||
}
|
||||
|
@ -206,7 +206,7 @@ int CmdFdxDemod(const char *Cmd){
|
|||
}
|
||||
|
||||
int CmdFdxRead(const char *Cmd) {
|
||||
lf_read(true, 10000);
|
||||
lf_read(true, 39999);
|
||||
return CmdFdxDemod(Cmd);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue