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:
//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;
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;
}
//by marshmellow
int CmdLFfind(const char *Cmd) {
int ans = 0;
+ size_t minLength = 1000;
char cmdp = param_getchar(Cmd, 0);
char testRaw = param_getchar(Cmd, 1);
if (strlen(Cmd) > 3 || cmdp == 'h' || cmdp == 'H') return usage_lf_find();
if (!offline && (cmdp != '1')){
CmdLFRead("s");
- getSamples("30000", TRUE);
- } else if (GraphTraceLen < 1000) {
+ getSamples("30000", false);
+ } else if (GraphTraceLen < minLength) {
PrintAndLog("Data in Graphbuffer was too small.");
return 0;
}
if (cmdp == 'u' || cmdp == 'U') testRaw = 'u';
- // if ( justNoise(GraphBuffer, GraphTraceLen) ) {
- // PrintAndLog("Signal looks just like noise. Quitting.");
- // return 0;
- // }
-
PrintAndLog("NOTE: some demods output possible binary\n if it finds something that looks like a tag");
PrintAndLog("False Positives ARE possible\n");
PrintAndLog("\nChecking for known tags:\n");
+ size_t testLen = minLength;
+
+ // only run these tests if device is online
+ if (!offline && (cmdp != '1')){
+
+ // only run if graphbuffer is just noise as it should be for hitag/cotag
+ if (graphJustNoise(GraphBuffer, testLen)) {
+
+ ans=CmdLFHitagReader("26");
+ if (ans==0)
+ return 1;
+
+ ans=CmdCOTAGRead("");
+ if (ans>0){
+ PrintAndLog("\nValid COTAG ID Found!");
+ return 1;
+ }
+ PrintAndLog("Signal looks just like noise. Quitting.");
+ return 0;
+ }
+ }
+
ans=CmdFSKdemodIO("");
if (ans>0) {
PrintAndLog("\nValid IO Prox ID Found!");
PrintAndLog("\nValid Presco ID Found!");
return 1;
}
- // TIdemod?
-
- if (!offline && (cmdp != '1')){
- ans=CmdLFHitagReader("26");
- if (ans==0) {
- return 1;
- }
- }
+ // TIdemod?
PrintAndLog("\nNo Known Tags Found!\n");
if (testRaw=='u' || testRaw=='U'){
//test unknown tag formats (raw mode)