X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/69784c3801037d867278e1e6a54f11b6d7eea933..5f5b83b7435ae85f2ffa06f1f8994bda22ce64b2:/client/cmdlf.c

diff --git a/client/cmdlf.c b/client/cmdlf.c
index 43131428..31e747d3 100644
--- a/client/cmdlf.c
+++ b/client/cmdlf.c
@@ -36,11 +36,10 @@ int usage_lf_read(void){
 	return 0;
 }
 int usage_lf_snoop(void) {
-	PrintAndLog("Usage: lf snoop");
+	PrintAndLog("Snoop low frequence signal. Use 'lf config' to set parameters.");
+	PrintAndLog("Usage: lf snoop [h]");
 	PrintAndLog("Options:");
-	PrintAndLog("       h            This help");
-	PrintAndLog("This function takes no arguments. ");
-	PrintAndLog("Use 'lf config' to set parameters.");
+	PrintAndLog("      h         This help");
 	return 0;
 }
 int usage_lf_config(void) {
@@ -498,24 +497,24 @@ int CmdLFSetConfig(const char *Cmd) {
 			cmdp++;
 			break;
 		case 'q':
-			errors |= param_getdec(Cmd,cmdp+1,&divisor);
+			errors |= param_getdec(Cmd, cmdp+1, &divisor);
 			cmdp+=2;
 			break;
 		case 't':
-			errors |= param_getdec(Cmd,cmdp+1,&unsigned_trigg);
+			errors |= param_getdec(Cmd, cmdp+1, &unsigned_trigg);
 			cmdp+=2;
 			if(!errors) trigger_threshold = unsigned_trigg;
 			break;
 		case 'b':
-			errors |= param_getdec(Cmd,cmdp+1,&bps);
+			errors |= param_getdec(Cmd, cmdp+1, &bps);
 			cmdp+=2;
 			break;
 		case 'd':
-			errors |= param_getdec(Cmd,cmdp+1,&decimation);
+			errors |= param_getdec(Cmd, cmdp+1, &decimation);
 			cmdp+=2;
 			break;
 		case 'a':
-			averaging = param_getchar(Cmd,cmdp+1) == '1';
+			averaging = param_getchar(Cmd, cmdp+1) == '1';
 			cmdp+=2;
 			break;
 		default:
@@ -532,14 +531,13 @@ int CmdLFSetConfig(const char *Cmd) {
 	//Validations
 	if (errors) return usage_lf_config();
 	
-	//Bps is limited to 8, so fits in lower half of arg1
+	//Bps is limited to 8
 	if (bps >> 4) bps = 8;
 
 	sample_config config = { decimation, bps, averaging, divisor, trigger_threshold };
 
-	//Averaging is a flag on high-bit of arg[1]
-	UsbCommand c = {CMD_SET_LF_SAMPLING_CONFIG};
-	memcpy(c.d.asBytes,&config,sizeof(sample_config));
+	UsbCommand c = {CMD_SET_LF_SAMPLING_CONFIG, {0,0,0} };
+	memcpy(c.d.asBytes, &config, sizeof(sample_config));
 	clearCommandBuffer();
 	SendCommand(&c);
 	return 0;
@@ -557,7 +555,7 @@ int CmdLFRead(const char *Cmd) {
 	UsbCommand c = {CMD_ACQUIRE_RAW_ADC_SAMPLES_125K, {arg1,0,0}};
 	clearCommandBuffer();
 	SendCommand(&c);
-	if ( !WaitForResponseTimeout(CMD_ACK,NULL,2500) ) {
+	if ( !WaitForResponseTimeout(CMD_ACK, NULL ,2500) ) {
 		PrintAndLog("command execution time out");
 		return 1;
 	}
@@ -568,10 +566,11 @@ int CmdLFSnoop(const char *Cmd) {
 	uint8_t cmdp = param_getchar(Cmd, 0);
 	if(cmdp == 'h' || cmdp == 'H') return usage_lf_snoop();
 	
-	UsbCommand c = {CMD_LF_SNOOP_RAW_ADC_SAMPLES};
+	UsbCommand c = {CMD_LF_SNOOP_RAW_ADC_SAMPLES,{0,0,0}};
 	clearCommandBuffer();	
 	SendCommand(&c);
 	WaitForResponse(CMD_ACK,NULL);
+	getSamples("", false);
 	return 0;
 }
 
@@ -1011,7 +1010,7 @@ int CmdLFfind(const char *Cmd) {
 
 	if (!offline && (cmdp != '1')){
 		CmdLFRead("s");
-		getSamples("30000", TRUE);
+		getSamples("30000", false);
 	} else if (GraphTraceLen < 1000) {
 		PrintAndLog("Data in Graphbuffer was too small.");
 		return 0;
@@ -1118,13 +1117,15 @@ int CmdLFfind(const char *Cmd) {
 		return 1;
 	}
 	// TIdemod?
-	
+
+/*	
 	if (!offline && (cmdp != '1')){
 		ans=CmdLFHitagReader("26");
 		if (ans==0) {
 			return 1;
 		}
 	}
+*/
 
 	PrintAndLog("\nNo Known Tags Found!\n");
 	if (testRaw=='u' || testRaw=='U'){
@@ -1192,6 +1193,7 @@ static command_t CommandTable[] =
 	{"help",        CmdHelp,            1, "This help"},
 	{"animal",      CmdLFFdx,           1, "{ Animal RFIDs... }"},
 	{"awid",        CmdLFAWID,          1, "{ AWID RFIDs... }"},
+	{"cotag",       CmdLFCOTAG,         1, "{ COTAG RFIDs... }"},
 	{"em4x",        CmdLFEM4X,          1, "{ EM4X RFIDs... }"},
 	{"guard",       CmdLFGuard,         1, "{ Guardall RFIDs... }"},
 	{"hid",         CmdLFHID,           1, "{ HID RFIDs... }"},
@@ -1220,7 +1222,7 @@ static command_t CommandTable[] =
 	{"simfsk",      CmdLFfskSim,        0, "[c <clock>] [i] [H <fcHigh>] [L <fcLow>] [d <hexdata>] \n\t\t-- Simulate LF FSK tag from demodbuffer or input"},
 	{"simpsk",      CmdLFpskSim,        0, "[1|2|3] [c <clock>] [i] [r <carrier>] [d <raw hex to sim>] \n\t\t-- Simulate LF PSK tag from demodbuffer or input"},
 	{"simbidir",    CmdLFSimBidir,      0, "Simulate LF tag (with bidirectional data transmission between reader and tag)"},
-	{"snoop",       CmdLFSnoop,         0, "['l'|'h'|<divisor>] [trigger threshold]-- Snoop LF (l:125khz, h:134khz)"},
+	{"snoop",       CmdLFSnoop,         0, "Snoop LF"},
 	{"vchdemod",    CmdVchDemod,        1, "['clone'] -- Demodulate samples for VeriChip"},
 	{NULL, NULL, 0, NULL}
 };