CHG: minor LF adjustments.

CHG: `lf visa2000` - removed askedgedetect, it seemed it destroyed more than enhanced.
This commit is contained in:
iceman1001 2017-02-28 16:55:16 +01:00
commit 4eabb8ad38
6 changed files with 30 additions and 15 deletions

View file

@ -834,7 +834,7 @@ int CmdVikingDemod(const char *Cmd)
return 0;
}
size_t size = DemodBufferLen;
//call lfdemod.c demod for Viking
int ans = VikingDemod_AM(DemodBuffer, &size);
if (ans < 0) {
if (g_debugMode) PrintAndLog("DEBUG: Error - Viking Demod %d %s", ans, (ans == -5)?"[chksum error]":"");
@ -2095,6 +2095,11 @@ int CmdGrid(const char *Cmd)
RepaintGraphWindow();
return 0;
}
void setGrid_Clock(uint8_t clock){
PlotGridXdefault = clock;
RepaintGraphWindow();
}
int CmdHexsamples(const char *Cmd)
{

View file

@ -80,6 +80,8 @@ int NRZrawDemod(const char *Cmd, bool verbose);
void printEM410x(uint32_t hi, uint64_t id);
int getSamples(const char *Cmd, bool silent);
void setGrid_Clock(uint8_t clock);
int CmdDataIIR(const char *Cmd);
extern uint8_t DemodBuffer[MAX_DEMOD_BUF_LEN];

View file

@ -443,7 +443,7 @@ int EM4x50Read(const char *Cmd, bool verbose) {
}
}
if (!clk) {
PrintAndLog("ERROR: EM4x50 - didn't find a clock");
if (verbose || g_debugMode) PrintAndLog("ERROR: EM4x50 - didn't find a clock");
return 0;
}
} else tol = clk/8;

View file

@ -97,6 +97,7 @@ int CmdJablotronDemod(const char *Cmd) {
}
setDemodBuf(DemodBuffer+ans, 64, 0);
setGrid_Clock(64);
//got a good demod
uint32_t raw1 = bytebits_to_byte(DemodBuffer, 32);
@ -125,7 +126,7 @@ int CmdJablotronDemod(const char *Cmd) {
int CmdJablotronRead(const char *Cmd) {
CmdLFRead("s");
getSamples("12000", TRUE);
getSamples("10000", TRUE);
return CmdJablotronDemod(Cmd);
}

View file

@ -62,7 +62,7 @@ int CmdVisa2kDemod(const char *Cmd) {
// save GraphBuffer - to restore it later
save_restoreGB(1);
CmdAskEdgeDetect("");
//sCmdAskEdgeDetect("");
//ASK / Manchester
bool st = TRUE;
@ -88,6 +88,7 @@ int CmdVisa2kDemod(const char *Cmd) {
return 0;
}
setDemodBuf(DemodBuffer, 96, ans);
setGrid_Clock(64);
//got a good demod
uint32_t raw1 = bytebits_to_byte(DemodBuffer, 32);
@ -110,7 +111,7 @@ int CmdVisa2kDemod(const char *Cmd) {
int CmdVisa2kRead(const char *Cmd) {
CmdLFRead("s");
getSamples("16000",TRUE);
getSamples("12000",TRUE);
return CmdVisa2kDemod(Cmd);
}

View file

@ -243,6 +243,7 @@ int Em410xDecode(uint8_t *BitStream, size_t *size, size_t *startIdx, uint32_t *h
//by marshmellow
//demodulates strong heavily clipped samples
//RETURN: num of errors. if 0, is ok.
int cleanAskRawDemod(uint8_t *BinStream, size_t *size, int clk, int invert, int high, int low)
{
size_t bitCnt=0, smplCnt=0, errCnt=0;
@ -386,25 +387,30 @@ int askdemod(uint8_t *BinStream, size_t *size, int *clk, int *invert, int maxErr
//by marshmellow
//take 10 and 01 and manchester decode
//run through 2 times and take least errCnt
int manrawdecode(uint8_t * BitStream, size_t *size, uint8_t invert){
int manrawdecode(uint8_t *BitStream, size_t *size, uint8_t invert){
// sanity check
if (*size < 16) return -1;
int errCnt = 0, bestErr = 1000;
uint16_t bitnum = 0, MaxBits = 512, bestRun = 0;
size_t i, k;
if (*size < 16) return -1;
//find correct start position [alignment]
for (k=0; k < 2; ++k){
for (i=k; i<*size-3; i += 2)
for (k = 0; k < 2; ++k){
for (i = k; i < *size-3; i += 2) {
if (BitStream[i] == BitStream[i+1])
errCnt++;
}
if (bestErr > errCnt){
bestErr = errCnt;
bestRun = k;
}
errCnt=0;
errCnt = 0;
}
//decode
for (i=bestRun; i < *size-3; i += 2){
for (i = bestRun; i < *size-3; i += 2){
if (BitStream[i] == 1 && (BitStream[i+1] == 0)){
BitStream[bitnum++] = invert;
} else if ((BitStream[i] == 0) && BitStream[i+1] == 1){
@ -412,9 +418,9 @@ int manrawdecode(uint8_t * BitStream, size_t *size, uint8_t invert){
} else {
BitStream[bitnum++] = 7;
}
if (bitnum>MaxBits) break;
if (bitnum > MaxBits) break;
}
*size=bitnum;
*size = bitnum;
return bestErr;
}