mirror of
https://github.com/Proxmark/proxmark3.git
synced 2025-02-23 15:14:15 +08:00
finish gProxII_Demod
This commit is contained in:
parent
40b9bb85e6
commit
11081e0459
2 changed files with 23 additions and 1 deletions
|
@ -354,7 +354,6 @@ void askAmp(uint8_t *BitStream, size_t size)
|
||||||
//by marshmellow
|
//by marshmellow
|
||||||
//takes 3 arguments - clock, invert and maxErr as integers
|
//takes 3 arguments - clock, invert and maxErr as integers
|
||||||
//attempts to demodulate ask only
|
//attempts to demodulate ask only
|
||||||
//prints binary found and saves in graphbuffer for further commands
|
|
||||||
int askrawdemod(uint8_t *BinStream, size_t *size, int *clk, int *invert, int maxErr, uint8_t amp)
|
int askrawdemod(uint8_t *BinStream, size_t *size, int *clk, int *invert, int maxErr, uint8_t amp)
|
||||||
{
|
{
|
||||||
uint32_t i;
|
uint32_t i;
|
||||||
|
@ -501,6 +500,28 @@ int askrawdemod(uint8_t *BinStream, size_t *size, int *clk, int *invert, int max
|
||||||
}
|
}
|
||||||
return bestErrCnt;
|
return bestErrCnt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// demod gProxIIDemod
|
||||||
|
// error returns as -x
|
||||||
|
// success returns start position in BitStream
|
||||||
|
// BitStream must contain previously askrawdemod and biphasedemoded data
|
||||||
|
int gProxII_Demod(uint8_t BitStream[], size_t *size)
|
||||||
|
{
|
||||||
|
size_t startIdx=0;
|
||||||
|
uint8_t preamble[] = {1,1,1,1,1,0};
|
||||||
|
|
||||||
|
uint8_t errChk = preambleSearch(BitStream, preamble, sizeof(preamble), size, &startIdx);
|
||||||
|
if (errChk == 0) return -3; //preamble not found
|
||||||
|
if (*size != 96) return -2; //should have found 96 bits
|
||||||
|
//check first 6 spacer bits to verify format
|
||||||
|
if (!BitStream[startIdx+5] && !BitStream[startIdx+10] && !BitStream[startIdx+15] && !BitStream[startIdx+20] && !BitStream[startIdx+25] && !BitStream[startIdx+30]){
|
||||||
|
//confirmed proper separator bits found
|
||||||
|
//return start position
|
||||||
|
return (int) startIdx;
|
||||||
|
}
|
||||||
|
return -5;
|
||||||
|
}
|
||||||
|
|
||||||
//translate wave to 11111100000 (1 for each short wave 0 for each long wave)
|
//translate wave to 11111100000 (1 for each short wave 0 for each long wave)
|
||||||
size_t fsk_wave_demod(uint8_t * dest, size_t size, uint8_t fchigh, uint8_t fclow)
|
size_t fsk_wave_demod(uint8_t * dest, size_t size, uint8_t fchigh, uint8_t fclow)
|
||||||
{
|
{
|
||||||
|
|
|
@ -22,6 +22,7 @@ int ManchesterEncode(uint8_t *BitStream, size_t size);
|
||||||
int manrawdecode(uint8_t *BitStream, size_t *size);
|
int manrawdecode(uint8_t *BitStream, size_t *size);
|
||||||
int BiphaseRawDecode(uint8_t * BitStream, size_t *size, int offset, int invert);
|
int BiphaseRawDecode(uint8_t * BitStream, size_t *size, int offset, int invert);
|
||||||
int askrawdemod(uint8_t *BinStream, size_t *size, int *clk, int *invert, int maxErr, uint8_t amp);
|
int askrawdemod(uint8_t *BinStream, size_t *size, int *clk, int *invert, int maxErr, uint8_t amp);
|
||||||
|
int gProxII_Demod(uint8_t BitStream[], size_t *size);
|
||||||
int HIDdemodFSK(uint8_t *dest, size_t *size, uint32_t *hi2, uint32_t *hi, uint32_t *lo);
|
int HIDdemodFSK(uint8_t *dest, size_t *size, uint32_t *hi2, uint32_t *hi, uint32_t *lo);
|
||||||
int IOdemodFSK(uint8_t *dest, size_t size);
|
int IOdemodFSK(uint8_t *dest, size_t size);
|
||||||
int fskdemod(uint8_t *dest, size_t size, uint8_t rfLen, uint8_t invert, uint8_t fchigh, uint8_t fclow);
|
int fskdemod(uint8_t *dest, size_t size, uint8_t rfLen, uint8_t invert, uint8_t fchigh, uint8_t fclow);
|
||||||
|
|
Loading…
Reference in a new issue