+int CmdT55xxSetConfig(const char *Cmd){\r
+\r
+ int len;\r
+ bool inverse;\r
+ bool errors = FALSE;\r
+ uint8_t cmdp = 0;\r
+ char modulation[4] = {0x00};\r
+ \r
+ while(param_getchar(Cmd, cmdp) != 0x00 && !errors)\r
+ {\r
+ switch(param_getchar(Cmd, cmdp))\r
+ {\r
+ case 'h':\r
+ case 'H':\r
+ return usage_t55xx_config();\r
+ case 'd':\r
+ len = param_getstr(Cmd, cmdp+1, modulation);\r
+ cmdp+= len+1;\r
+ //FSK|ASK|PSK|NZ|BI\r
+ if ( strcmp(modulation, "FSK" ) == 0)\r
+ len = 1;\r
+ else if ( strcmp(modulation, "ASK" ) == 0)\r
+ len = 2;\r
+ else if ( strcmp(modulation, "PSK" ) == 0)\r
+ len = 3;\r
+ else if ( strcmp(modulation, "NZ" ) == 0)\r
+ len = 4;\r
+ else if ( strcmp(modulation, "BI" ) == 0)\r
+ len = 5;\r
+ else {\r
+ PrintAndLog("Unknown modulation '%s'", modulation);\r
+ errors = TRUE;\r
+ }\r
+ break;\r
+ case 'i':\r
+ inverse = param_getchar(Cmd,cmdp+1) == '1';\r
+ cmdp+=2;\r
+ break;\r
+ default:\r
+ PrintAndLog("Unknown parameter '%c'", param_getchar(Cmd, cmdp));\r
+ errors = TRUE;\r
+ break;\r
+ }\r
+ }\r
+ // No args\r
+ if (cmdp == 0) {\r
+ PrintAndLog("Modulation: %d", config.modulation);\r
+ PrintAndLog("Invert : %d", config.inversed);\r
+ PrintAndLog("Block0 : %08X", config.block0);\r
+ return 0;\r
+ }\r
+ //Validations\r
+ if (errors)\r
+ return usage_t55xx_config();\r
+ \r
+ config.modulation = len;\r
+ config.inversed = inverse;\r
+ config.block0 = 0;\r
+ return 0;\r
+}\r
+// detect configuration?\r
+\r