X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/a152dea7b455ec09d0925311fe558e49e4b0f612..93b7aa8f883e27c286bb1becc51783c58aa3b78b:/client/cmddata.c

diff --git a/client/cmddata.c b/client/cmddata.c
index 4279e9b6..eb12fc84 100644
--- a/client/cmddata.c
+++ b/client/cmddata.c
@@ -258,8 +258,7 @@ void setDemodBuf(uint8_t *buff, size_t size, size_t startIdx)
 	for (; i < size; i++){
 		DemodBuffer[i]=buff[startIdx++];
 	}
-	DemodBufferLen=size;
-	return;
+	DemodBufferLen = size;
 }
 
 int CmdSetDebugMode(const char *Cmd)
@@ -1761,7 +1760,8 @@ int CmdIndalaDecode(const char *Cmd)
 			PrintAndLog("Error1: %d",ans);
 		return 0;
 	}
-	uint8_t invert=0;
+
+	uint8_t invert = 0;
 	size_t size = DemodBufferLen;
 	int startIdx = indala26decode(DemodBuffer, &size, &invert);
 	if (startIdx < 0 || size > 224) {
@@ -1800,12 +1800,18 @@ int CmdIndalaDecode(const char *Cmd)
 int CmdPSKNexWatch(const char *Cmd)
 {
 	if (!PSKDemod("", false)) return 0;
+
 	uint8_t preamble[28] = {0,0,0,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
 	size_t startIdx = 0, size = DemodBufferLen; 
+	
+	// sanity check. 
+	if ( size < sizeof(preamble) + 100) return 0;
+	
 	bool invert = false;
 	if (!preambleSearch(DemodBuffer, preamble, sizeof(preamble), &size, &startIdx)){
 		// if didn't find preamble try again inverting
 		if (!PSKDemod("1", false)) return 0; 
+
 		size = DemodBufferLen;
 		if (!preambleSearch(DemodBuffer, preamble, sizeof(preamble), &size, &startIdx)) return 0;
 		invert = true;
@@ -1906,7 +1912,6 @@ int CmdPSK1rawDemod(const char *Cmd)
 		if (g_debugMode) PrintAndLog("Error demoding: %d",ans); 
 		return 0;
 	}
- 
 	PrintAndLog("PSK1 demoded bitstream:");
 	// Now output the bitstream to the scrollback by line of 16 bits
 	printDemodBuff();
@@ -1917,12 +1922,12 @@ int CmdPSK1rawDemod(const char *Cmd)
 // takes same args as cmdpsk1rawdemod
 int CmdPSK2rawDemod(const char *Cmd)
 {
-	int ans=0;
+	int ans = 0;
 	char cmdp = param_getchar(Cmd, 0);
 	if (strlen(Cmd) > 10 || cmdp == 'h' || cmdp == 'H')
 		return usage_data_rawdemod_p2();
 
-	ans=PSKDemod(Cmd, TRUE);
+	ans = PSKDemod(Cmd, TRUE);
 	if (!ans){
 		if (g_debugMode) PrintAndLog("Error demoding: %d",ans);  
 		return 0;
@@ -2141,10 +2146,14 @@ int CmdTuneSamples(const char *Cmd)
 	peakf = resp.arg[2] & 0xffff;
 	peakv = resp.arg[2] >> 16;
 	PrintAndLog("");
-	PrintAndLog("# LF antenna: %5.2f V @   125.00 kHz", vLf125/1000.0);
-	PrintAndLog("# LF antenna: %5.2f V @   134.00 kHz", vLf134/1000.0);
-	PrintAndLog("# LF optimal: %5.2f V @%9.2f kHz", peakv/1000.0, 12000.0/(peakf+1));
-	PrintAndLog("# HF antenna: %5.2f V @    13.56 MHz", vHf/1000.0);
+	if ( vLf125 > 0 )
+		PrintAndLog("# LF antenna: %5.2f V @   125.00 kHz", vLf125/1000.0);
+	if ( vLf134 > 0 )
+		PrintAndLog("# LF antenna: %5.2f V @   134.00 kHz", vLf134/1000.0);
+	if ( peakv > 0 && peakf > 0 )
+		PrintAndLog("# LF optimal: %5.2f V @%9.2f kHz", peakv/1000.0, 12000.0/(peakf+1));
+	if ( vHf > 0 )
+		PrintAndLog("# HF antenna: %5.2f V @    13.56 MHz", vHf/1000.0);
 
  #define LF_UNUSABLE_V		2948		// was 2000. Changed due to bugfix in voltage measurements. LF results are now 47% higher.
  #define LF_MARGINAL_V		14739		// was 10000. Changed due to bugfix bug in voltage measurements. LF results are now 47% higher.
@@ -2417,7 +2426,10 @@ int Cmdhex2bin(const char *Cmd)
 }
 
 int CmdDataIIR(const char *Cmd){
-	iceIIR_Butterworth(GraphBuffer, GraphTraceLen);
+
+	uint8_t k = param_get8(Cmd,0);
+	//iceIIR_Butterworth(GraphBuffer, GraphTraceLen);
+	iceSimple_Filter(GraphBuffer, GraphTraceLen, k);
 	RepaintGraphWindow();
 	return 0;
 }