[FL-1419] new iButton cli (#521)
* iButton, helpers: add destructor * iButton app: new approach to cli commands, cli read * iButton app: cli write * iButton app: cli emulate * iButton app: remove old cli commands * iButton app: use unique_ptr for worker * iButton app: remove obsolete cli help * iButton app: fix help and key type parsing
This commit is contained in:
@@ -6,19 +6,16 @@
|
||||
#include "scene/ibutton-scene-generic.h"
|
||||
#include "scene/ibutton-scene-start.h"
|
||||
#include "scene/ibutton-scene-read.h"
|
||||
#include "scene/ibutton-scene-cli-read.h"
|
||||
#include "scene/ibutton-scene-read-crc-error.h"
|
||||
#include "scene/ibutton-scene-read-not-key-error.h"
|
||||
#include "scene/ibutton-scene-read-success.h"
|
||||
#include "scene/ibutton-scene-readed-key-menu.h"
|
||||
#include "scene/ibutton-scene-write.h"
|
||||
#include "scene/ibutton-scene-cli-write.h"
|
||||
#include "scene/ibutton-scene-write-success.h"
|
||||
#include "scene/ibutton-scene-saved-key-menu.h"
|
||||
#include "scene/ibutton-scene-delete-confirm.h"
|
||||
#include "scene/ibutton-scene-delete-success.h"
|
||||
#include "scene/ibutton-scene-emulate.h"
|
||||
#include "scene/ibutton-scene-cli-emulate.h"
|
||||
#include "scene/ibutton-scene-save-name.h"
|
||||
#include "scene/ibutton-scene-save-success.h"
|
||||
#include "scene/ibutton-scene-info.h"
|
||||
@@ -49,16 +46,13 @@ public:
|
||||
SceneExit,
|
||||
SceneStart,
|
||||
SceneRead,
|
||||
SceneCliRead,
|
||||
SceneReadNotKeyError,
|
||||
SceneReadCRCError,
|
||||
SceneReadSuccess,
|
||||
SceneReadedKeyMenu,
|
||||
SceneWrite,
|
||||
SceneCliWrite,
|
||||
SceneWriteSuccess,
|
||||
SceneEmulate,
|
||||
SceneCliEmulate,
|
||||
SceneSavedKeyMenu,
|
||||
SceneDeleteConfirm,
|
||||
SceneDeleteSuccess,
|
||||
@@ -70,16 +64,6 @@ public:
|
||||
SceneAddValue,
|
||||
};
|
||||
|
||||
enum class CliEvent : uint8_t {
|
||||
CliReadSuccess,
|
||||
CliReadCRCError,
|
||||
CliReadNotKeyError,
|
||||
CliWriteSuccess,
|
||||
CliWriteFail,
|
||||
CliTimeout,
|
||||
CliInterrupt,
|
||||
};
|
||||
|
||||
iButtonAppViewManager* get_view_manager();
|
||||
void switch_to_next_scene(Scene index);
|
||||
void search_and_switch_to_previous_scene(std::initializer_list<Scene> scenes_list);
|
||||
@@ -110,9 +94,6 @@ public:
|
||||
char* get_file_name();
|
||||
uint8_t get_file_name_size();
|
||||
|
||||
void cli_cmd_callback(Cli* cli, string_t args, void* context);
|
||||
void cli_send_event(CliEvent scene);
|
||||
|
||||
void generate_random_name(char* name, uint8_t max_name_size);
|
||||
|
||||
bool save_key(const char* key_name);
|
||||
@@ -123,21 +104,17 @@ private:
|
||||
std::list<Scene> previous_scenes_list = {Scene::SceneExit};
|
||||
Scene current_scene = Scene::SceneStart;
|
||||
iButtonAppViewManager view;
|
||||
osMessageQueueId_t cli_event_result;
|
||||
|
||||
std::map<Scene, iButtonScene*> scenes = {
|
||||
{Scene::SceneStart, new iButtonSceneStart()},
|
||||
{Scene::SceneRead, new iButtonSceneRead()},
|
||||
{Scene::SceneCliRead, new iButtonSceneCliRead()},
|
||||
{Scene::SceneReadCRCError, new iButtonSceneReadCRCError()},
|
||||
{Scene::SceneReadNotKeyError, new iButtonSceneReadNotKeyError()},
|
||||
{Scene::SceneReadSuccess, new iButtonSceneReadSuccess()},
|
||||
{Scene::SceneReadedKeyMenu, new iButtonSceneReadedKeyMenu()},
|
||||
{Scene::SceneWrite, new iButtonSceneWrite()},
|
||||
{Scene::SceneCliWrite, new iButtonSceneCliWrite()},
|
||||
{Scene::SceneWriteSuccess, new iButtonSceneWriteSuccess()},
|
||||
{Scene::SceneEmulate, new iButtonSceneEmulate()},
|
||||
{Scene::SceneCliEmulate, new iButtonSceneCliEmulate()},
|
||||
{Scene::SceneSavedKeyMenu, new iButtonSceneSavedKeyMenu()},
|
||||
{Scene::SceneDeleteConfirm, new iButtonSceneDeleteConfirm()},
|
||||
{Scene::SceneDeleteSuccess, new iButtonSceneDeleteSuccess()},
|
||||
@@ -164,9 +141,6 @@ private:
|
||||
|
||||
NotificationApp* notification;
|
||||
|
||||
bool read_hex_byte(string_t arg, uint8_t* byte);
|
||||
void print_key_data(void);
|
||||
|
||||
static const char* app_folder;
|
||||
static const char* app_extension;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user