From e491eb6b962bd066547f7eabb5cd6cf22c9b7454 Mon Sep 17 00:00:00 2001 From: Philippe Teuwen Date: Wed, 4 Mar 2020 16:58:59 +0530 Subject: [PATCH] 'set hextobin on/off' for uid/reader, untested --- firmware/Pic32/RFIDler.X/include/rfidler.h | 1 + firmware/Pic32/RFIDler.X/src/main.c | 23 ++++++++++++++++++++-- firmware/Pic32/RFIDler.X/src/nvm.c | 1 + firmware/Pic32/RFIDler.X/src/tags.c | 1 + 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/firmware/Pic32/RFIDler.X/include/rfidler.h b/firmware/Pic32/RFIDler.X/include/rfidler.h index 53017cb..5948eb7 100644 --- a/firmware/Pic32/RFIDler.X/include/rfidler.h +++ b/firmware/Pic32/RFIDler.X/include/rfidler.h @@ -215,6 +215,7 @@ typedef struct { BOOL BiPhase; BOOL Invert; BOOL Manchester; + BOOL Hextobin; BOOL HalfDuplex; unsigned int Repeat; unsigned int PotLow; diff --git a/firmware/Pic32/RFIDler.X/src/main.c b/firmware/Pic32/RFIDler.X/src/main.c index 371d376..8110bc0 100644 --- a/firmware/Pic32/RFIDler.X/src/main.c +++ b/firmware/Pic32/RFIDler.X/src/main.c @@ -910,6 +910,7 @@ void show_usage(char *command) "SET BIPHASE Set BiPhase encoding\r\n", "SET BITS Set number of data bits\r\n", "SET FC Set Field Clock in uS/100\r\n", + "SET HEXTOBIN Set hextobin conversion\r\n", "SET INVERT Set data inversion\r\n", "SET MANCHESTER Set Manchester encoding\r\n", "SET MOD Set modulation scheme\r\n", @@ -1886,7 +1887,10 @@ BYTE ProcessSerialCommand(char *command) while(!get_user_abort()) { if(get_interpreted_tag_uid(DataBuff, RFIDlerConfig.TagType)) - UserMessage("%s\r\n", DataBuff); + if(RFIDlerConfig.Hex2bin) + printhexasbin(DataBuff); + else + UserMessage("%s\r\n", DataBuff); mLED_Comms_Toggle(); } eod(); @@ -1986,6 +1990,18 @@ BYTE ProcessSerialCommand(char *command) commandok= command_nack("Invalid FC period!"); } + if (strcmp(command, "SET HEXTOBIN OFF") == 0) + { + RFIDlerConfig.Hextobin= FALSE; + commandok= command_ack(NO_DATA); + } + + if (strcmp(command, "SET HEXTOBIN ON") == 0) + { + RFIDlerConfig.Hextobin= TRUE; + commandok= command_ack(NO_DATA); + } + if (strcmp(command, "SET INVERT OFF") == 0) { RFIDlerConfig.Invert= FALSE; @@ -2359,7 +2375,10 @@ BYTE ProcessSerialCommand(char *command) if(get_interpreted_tag_uid(DataBuff, RFIDlerConfig.TagType)) { commandok= command_ack(DATA); - UserMessage("%s\r\n", DataBuff); + if(RFIDlerConfig.Hex2bin) + printhexasbin(DataBuff); + else + UserMessage("%s\r\n", DataBuff); eod(); } else diff --git a/firmware/Pic32/RFIDler.X/src/nvm.c b/firmware/Pic32/RFIDler.X/src/nvm.c index b0922ca..4bdc138 100644 --- a/firmware/Pic32/RFIDler.X/src/nvm.c +++ b/firmware/Pic32/RFIDler.X/src/nvm.c @@ -188,6 +188,7 @@ void showconfig(void) UserMessage("\r\n Manchester: %s", (BYTE *) OnOff[RFIDlerConfig.Manchester]); UserMessage("\r\n BiPhase: %s", (BYTE *) OnOff[RFIDlerConfig.BiPhase]); UserMessage("\r\n Invert: %s", (BYTE *) OnOff[RFIDlerConfig.Invert]); + UserMessage("\r\n Hextobin: %s", (BYTE *) OnOff[RFIDlerConfig.Hextobin]); UserMessageNum("\r\n Data Rate RF/n: %d", RFIDlerConfig.DataRate); UserMessageNum("\r\n Data Rate Sub 0: %d", RFIDlerConfig.DataRateSub0); UserMessageNum("\r\n Data Rate Sub 1: %d", RFIDlerConfig.DataRateSub1); diff --git a/firmware/Pic32/RFIDler.X/src/tags.c b/firmware/Pic32/RFIDler.X/src/tags.c index 377cfff..551278e 100644 --- a/firmware/Pic32/RFIDler.X/src/tags.c +++ b/firmware/Pic32/RFIDler.X/src/tags.c @@ -366,6 +366,7 @@ BOOL tag_set(BYTE tag) RFIDlerConfig.Manchester= FALSE; RFIDlerConfig.HalfDuplex= FALSE; RFIDlerConfig.Invert= FALSE; + RFIDlerConfig.Hextobin= FALSE; RFIDlerConfig.Modulation= MOD_MODE_NONE; RFIDlerConfig.PotLow= 0; RFIDlerConfig.PotHigh= 0;