FIX: Removed a arrat from the struct configPcf in "LF PCF7931"

This commit is contained in:
iceman1001 2015-10-12 21:49:11 +02:00
parent 2285d9dd94
commit ba52aac40e
2 changed files with 25 additions and 17 deletions

View file

@ -29,26 +29,24 @@ static int CmdHelp(const char *Cmd);
struct pcf7931_config configPcf = {
{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
PCF7931_DEFAULT_INITDELAY,
{
PCF7931_DEFAULT_OFFSET_WIDTH,
PCF7931_DEFAULT_OFFSET_POSITION
}
PCF7931_DEFAULT_OFFSET_WIDTH,
PCF7931_DEFAULT_OFFSET_POSITION
};
// Resets the configuration settings to default values.
int pcf7931_resetConfig(){
memset(configPcf.Pwd, 0xFF, sizeof(configPcf.Pwd) );
configPcf.InitDelay = PCF7931_DEFAULT_INITDELAY;
configPcf.Offset[0] = PCF7931_DEFAULT_OFFSET_WIDTH;
configPcf.Offset[1] = PCF7931_DEFAULT_OFFSET_POSITION;
configPcf.OffsetWidth = PCF7931_DEFAULT_OFFSET_WIDTH;
configPcf.OffsetPosition = PCF7931_DEFAULT_OFFSET_POSITION;
return 0;
}
int pcf7931_printConfig(){
PrintAndLog("Password (LSB first on bytes) : %s", sprint_hex( configPcf.Pwd, sizeof(configPcf.Pwd)));
PrintAndLog("Tag initialization delay : %d us", configPcf.InitDelay);
PrintAndLog("Offset low pulses width : %d us", configPcf.Offset[0]);
PrintAndLog("Offset low pulses position : %d us", configPcf.Offset[1]);
PrintAndLog("Offset low pulses width : %d us", configPcf.OffsetWidth);
PrintAndLog("Offset low pulses position : %d us", configPcf.OffsetPosition);
return 0;
}
@ -121,8 +119,8 @@ int CmdLFPCF7931Config(const char *Cmd){
if ( param_gethex(Cmd, 0, configPcf.Pwd, 14) ) return usage_pcf7931_config();
configPcf.InitDelay = (param_get32ex(Cmd,1,0,10) & 0xFFFF);
configPcf.Offset[0] = (int)(param_get32ex(Cmd,2,0,10) & 0xFFFF);
configPcf.Offset[1] = (int)(param_get32ex(Cmd,3,0,10) & 0xFFFF);
configPcf.OffsetWidth = (int)(param_get32ex(Cmd,2,0,10) & 0xFFFF);
configPcf.OffsetPosition = (int)(param_get32ex(Cmd,3,0,10) & 0xFFFF);
pcf7931_printConfig();
return 0;
@ -137,7 +135,11 @@ int CmdLFPCF7931Write(const char *Cmd){
uint64_t byteaddress = param_get64ex(Cmd, 1, 0, 16);
uint8_t data = param_get8ex(Cmd,2,0,16);
PrintAndLog("Please specify the block address in hex");
if ( blockaddress == 0 ) {
PrintAndLog("Please specify the block address in hex");
return 1;
}
PrintAndLog("Please specify the byte address in hex");
PrintAndLog("Please specify the data in hex (1 byte)");
@ -145,9 +147,9 @@ int CmdLFPCF7931Write(const char *Cmd){
return 3;
UsbCommand c = {CMD_PCF7931_WRITE, { blockaddress, byteaddress, data} };
memcpy(c.d.asDwords, configPcf.Pwd, 7);
c.d.asDwords[7] = (configPcf.Offset[0]+128);
c.d.asDwords[8] = (configPcf.Offset[1]+128);
memcpy(c.d.asDwords, configPcf.Pwd, sizeof(configPcf.Pwd) );
c.d.asDwords[7] = (configPcf.OffsetWidth + 128);
c.d.asDwords[8] = (configPcf.OffsetPosition + 128);
c.d.asDwords[9] = configPcf.InitDelay;
clearCommandBuffer();

View file

@ -15,15 +15,21 @@
struct pcf7931_config{
uint8_t Pwd[7];
uint16_t InitDelay;
int16_t Offset[2];
int16_t OffsetWidth;
int16_t OffsetPosition;
};
int pcf7931_resetConfig();
int pcf7931_printConfig();
int usage_pcf7931_read();
int usage_pcf7931_write();
int usage_pcf7931_config();
int CmdLFPCF7931(const char *Cmd);
int CmdLFPCF7931Read(const char *Cmd);
int CmdLFPCF7931Write(const char *Cmd);
int CmdLFPCF7931Config(const char *Cmd);
#endif