[FL-1744] CLI: rename tm to ikey, add onewire search command (#672)
* CLI: rename tm to ikey, add onewire search command * Cli onewire: removed delimiters in addresses Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
parent
08f7a290a4
commit
941b733046
@ -10,18 +10,20 @@
|
||||
#include <memory>
|
||||
|
||||
void ibutton_cli(Cli* cli, string_t args, void* context);
|
||||
void onewire_cli(Cli* cli, string_t args, void* context);
|
||||
|
||||
// app cli function
|
||||
extern "C" void ibutton_cli_init() {
|
||||
Cli* cli = static_cast<Cli*>(furi_record_open("cli"));
|
||||
cli_add_command(cli, "tm", CliCommandFlagDefault, ibutton_cli, cli);
|
||||
cli_add_command(cli, "ikey", CliCommandFlagDefault, ibutton_cli, cli);
|
||||
cli_add_command(cli, "onewire", CliCommandFlagDefault, onewire_cli, cli);
|
||||
furi_record_close("cli");
|
||||
}
|
||||
|
||||
void ibutton_cli_print_usage() {
|
||||
printf("Usage:\r\n");
|
||||
printf("tm read\r\n");
|
||||
printf("tm <write | emulate> <key_type> <key_data>\r\n");
|
||||
printf("ikey read\r\n");
|
||||
printf("ikey <write | emulate> <key_type> <key_data>\r\n");
|
||||
printf("\t<key_type> choose from:\r\n");
|
||||
printf("\tDallas (8 bytes key_data)\r\n");
|
||||
printf("\tCyfral (2 bytes key_data)\r\n");
|
||||
@ -232,3 +234,51 @@ void ibutton_cli(Cli* cli, string_t args, void* context) {
|
||||
|
||||
string_clear(cmd);
|
||||
}
|
||||
|
||||
void onewire_cli_print_usage() {
|
||||
printf("Usage:\r\n");
|
||||
printf("onewire search\r\n");
|
||||
};
|
||||
|
||||
void onewire_cli_search(Cli* cli) {
|
||||
OneWireMaster onewire(&ibutton_gpio);
|
||||
uint8_t address[8];
|
||||
bool done = false;
|
||||
|
||||
printf("Search started\r\n");
|
||||
|
||||
onewire.start();
|
||||
while(!done) {
|
||||
if(onewire.search(address, true) != 1) {
|
||||
printf("Search finished\r\n");
|
||||
onewire.reset_search();
|
||||
done = true;
|
||||
return;
|
||||
} else {
|
||||
printf("Found: ");
|
||||
for(uint8_t i = 0; i < 8; i++) {
|
||||
printf("%02X", address[i]);
|
||||
}
|
||||
printf("\r\n");
|
||||
}
|
||||
delay(100);
|
||||
}
|
||||
onewire.stop();
|
||||
}
|
||||
|
||||
void onewire_cli(Cli* cli, string_t args, void* context) {
|
||||
string_t cmd;
|
||||
string_init(cmd);
|
||||
|
||||
if(!args_read_string_and_trim(args, cmd)) {
|
||||
string_clear(cmd);
|
||||
onewire_cli_print_usage();
|
||||
return;
|
||||
}
|
||||
|
||||
if(string_cmp_str(cmd, "search") == 0) {
|
||||
onewire_cli_search(cli);
|
||||
}
|
||||
|
||||
string_clear(cmd);
|
||||
}
|
Loading…
Reference in New Issue
Block a user