//something in graphbuffer?
if (GraphTraceLen < 65) {
if (g_debugMode)PrintAndLog("DEBUG: not enough samples in GraphBuffer");
//something in graphbuffer?
if (GraphTraceLen < 65) {
if (g_debugMode)PrintAndLog("DEBUG: not enough samples in GraphBuffer");
- PrintAndLog("DEBUG: IO Prox Data not found - FSK Bits: %d",BitLen);
- if (BitLen > 92) PrintAndLog("%s", sprint_bin_break(BitStream,92,16));
+ PrintAndLog("DEBUG: IO Prox - Data not found - FSK Bits: %d", bitlen);
+ if (bitlen > 92) PrintAndLog("%s", sprint_bin_break(BitStream,92,16));
if (g_debugMode) {
PrintAndLog("%d%d%d%d%d%d%d%d %d", BitStream[idx], BitStream[idx+1], BitStream[idx+2], BitStream[idx+3], BitStream[idx+4], BitStream[idx+5], BitStream[idx+6], BitStream[idx+7], BitStream[idx+8]);
PrintAndLog("%d%d%d%d%d%d%d%d %d", BitStream[idx+9], BitStream[idx+10], BitStream[idx+11],BitStream[idx+12],BitStream[idx+13],BitStream[idx+14],BitStream[idx+15],BitStream[idx+16],BitStream[idx+17]);
if (g_debugMode) {
PrintAndLog("%d%d%d%d%d%d%d%d %d", BitStream[idx], BitStream[idx+1], BitStream[idx+2], BitStream[idx+3], BitStream[idx+4], BitStream[idx+5], BitStream[idx+6], BitStream[idx+7], BitStream[idx+8]);
PrintAndLog("%d%d%d%d%d%d%d%d %d", BitStream[idx+9], BitStream[idx+10], BitStream[idx+11],BitStream[idx+12],BitStream[idx+13],BitStream[idx+14],BitStream[idx+15],BitStream[idx+16],BitStream[idx+17]);
- for (uint8_t i=1; i<6; ++i){
- calccrc += bytebits_to_byte(BitStream+idx+9*i,8);
+ for (uint8_t i = 1; i < 6; ++i){
+ calccrc += bytebits_to_byte(BitStream + idx + 9 * i ,8);
- char *crcStr = (crc == calccrc) ? "crc ok": "!crc";
+ if (crc == calccrc) {
+ snprintf(crcStr, 3, "ok");
+ retval = 1;
+ } else {
+ if (g_debugMode) PrintAndLog("DEBUG: IO Prox - crc failed");
+
+ snprintf(crcStr, 20, "failed 0x%02X != 0x%02X", crc, calccrc);
+ retval = 0;
+ }
- PrintAndLog("IO Prox XSF(%02d)%02x:%05d (%08x%08x) [%02x %s]",version,facilitycode,number,code,code2, crc, crcStr);
+ PrintAndLog("IO Prox XSF(%02d)%02x:%05d (%08x%08x) [crc %s]",version,facilitycode,number,code,code2, crcStr);
- PrintAndLog("DEBUG: idx: %d, Len: %d, Printing demod buffer:",idx,64);
+ PrintAndLog("DEBUG: IO Prox - idx: %d, Len: %d, Printing demod buffer:", idx, 64);
PrintAndLog("reserved Code: %u", reservedCode);
PrintAndLog("Animal Tag: %s", animalBit ? "True" : "False");
PrintAndLog("CRC: 0x%04X - [%04X] - %s", crc16, calcCrc, (calcCrc == crc16) ? "Passed" : "Failed");
PrintAndLog("reserved Code: %u", reservedCode);
PrintAndLog("Animal Tag: %s", animalBit ? "True" : "False");
PrintAndLog("CRC: 0x%04X - [%04X] - %s", crc16, calcCrc, (calcCrc == crc16) ? "Passed" : "Failed");
size_t size = DemodBufferLen;
int startIdx = indala26decode(DemodBuffer, &size, &invert);
if (startIdx < 0 || size > 224) {
size_t size = DemodBufferLen;
int startIdx = indala26decode(DemodBuffer, &size, &invert);
if (startIdx < 0 || size > 224) {
PrintAndLog("BitLen: %d",DemodBufferLen);
//convert UID to HEX
uint32_t uid1, uid2, uid3, uid4, uid5, uid6, uid7;
PrintAndLog("BitLen: %d",DemodBufferLen);
//convert UID to HEX
uint32_t uid1, uid2, uid3, uid4, uid5, uid6, uid7;
- uid1=bytebits_to_byte(DemodBuffer,32);
- uid2=bytebits_to_byte(DemodBuffer+32,32);
+ uid1 = bytebits_to_byte(DemodBuffer,32);
+ uid2 = bytebits_to_byte(DemodBuffer+32,32);
if (DemodBufferLen==64){
PrintAndLog("Indala UID=%s (%x%08x)", sprint_bin_break(DemodBuffer,DemodBufferLen,16), uid1, uid2);
} else {
if (DemodBufferLen==64){
PrintAndLog("Indala UID=%s (%x%08x)", sprint_bin_break(DemodBuffer,DemodBufferLen,16), uid1, uid2);
} else {
- uid3=bytebits_to_byte(DemodBuffer+64,32);
- uid4=bytebits_to_byte(DemodBuffer+96,32);
- uid5=bytebits_to_byte(DemodBuffer+128,32);
- uid6=bytebits_to_byte(DemodBuffer+160,32);
- uid7=bytebits_to_byte(DemodBuffer+192,32);
+ uid3 = bytebits_to_byte(DemodBuffer+64,32);
+ uid4 = bytebits_to_byte(DemodBuffer+96,32);
+ uid5 = bytebits_to_byte(DemodBuffer+128,32);
+ uid6 = bytebits_to_byte(DemodBuffer+160,32);
+ uid7 = bytebits_to_byte(DemodBuffer+192,32);
PrintAndLog("Indala UID=%s (%x%08x%08x%08x%08x%08x%08x)",
sprint_bin_break(DemodBuffer,DemodBufferLen,16), uid1, uid2, uid3, uid4, uid5, uid6, uid7);
}
if (g_debugMode){
PrintAndLog("Indala UID=%s (%x%08x%08x%08x%08x%08x%08x)",
sprint_bin_break(DemodBuffer,DemodBufferLen,16), uid1, uid2, uid3, uid4, uid5, uid6, uid7);
}
if (g_debugMode){
UsbCommand response;
if ( !WaitForResponseTimeout(CMD_ACK, &response, 10000) ) {
PrintAndLog("timeout while waiting for reply.");
UsbCommand response;
if ( !WaitForResponseTimeout(CMD_ACK, &response, 10000) ) {
PrintAndLog("timeout while waiting for reply.");
//Old devices without this feature would send 0 at arg[0]
if (response.arg[0] > 0) {
sample_config *sc = (sample_config *) response.d.asBytes;
//Old devices without this feature would send 0 at arg[0]
if (response.arg[0] > 0) {
sample_config *sc = (sample_config *) response.d.asBytes;
- PrintAndLog("Samples @ %d bits/smpl, decimation 1:%d ", sc->bits_per_sample, sc->decimation);
+ if (!silent) PrintAndLog("Samples @ %d bits/smpl, decimation 1:%d ", sc->bits_per_sample, sc->decimation);
BitstreamOut bout = { got, bits_per_sample * n, 0};
int j =0;
for (j = 0; j * bits_per_sample < n * 8 && j < n; j++) {
BitstreamOut bout = { got, bits_per_sample * n, 0};
int j =0;
for (j = 0; j * bits_per_sample < n * 8 && j < n; j++) {