c8b36dd406
* Lib: new flipper file format library * Lib: flipper file format cpp wrapper * Storage: simple function for remove file and check error * iButton app: remove file worker, use new flipper file format instead * Dialogs: storage error message * Storage: simple function for mkdir and check error * iButton app: error messages * Libs: update makefile * RFID app: remove file worker, use new flipper file format instead * Flipper File: library documentation Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
96 lines
2.2 KiB
C++
96 lines
2.2 KiB
C++
#include "ibutton-key.h"
|
|
#include <furi.h>
|
|
|
|
uint8_t iButtonKey::get_size() {
|
|
return IBUTTON_KEY_DATA_SIZE;
|
|
}
|
|
|
|
void iButtonKey::set_data(uint8_t* _data, uint8_t _data_count) {
|
|
furi_check(_data_count > 0);
|
|
furi_check(_data_count <= get_size());
|
|
|
|
memset(data, 0, get_size());
|
|
memcpy(data, _data, _data_count);
|
|
}
|
|
|
|
void iButtonKey::clear_data() {
|
|
memset(data, 0, get_size());
|
|
}
|
|
|
|
uint8_t* iButtonKey::get_data() {
|
|
return data;
|
|
}
|
|
|
|
uint8_t iButtonKey::get_type_data_size() {
|
|
return get_type_data_size_by_type(type);
|
|
}
|
|
|
|
void iButtonKey::set_name(const char* _name) {
|
|
strlcpy(name, _name, IBUTTON_KEY_NAME_SIZE);
|
|
}
|
|
|
|
char* iButtonKey::get_name() {
|
|
return name;
|
|
}
|
|
|
|
void iButtonKey::set_type(iButtonKeyType _key_type) {
|
|
type = _key_type;
|
|
}
|
|
|
|
iButtonKeyType iButtonKey::get_key_type() {
|
|
return type;
|
|
}
|
|
|
|
const char* iButtonKey::get_key_type_string_by_type(iButtonKeyType key_type) {
|
|
switch(key_type) {
|
|
case iButtonKeyType::KeyCyfral:
|
|
return "Cyfral";
|
|
break;
|
|
case iButtonKeyType::KeyMetakom:
|
|
return "Metakom";
|
|
break;
|
|
case iButtonKeyType::KeyDallas:
|
|
return "Dallas";
|
|
break;
|
|
default:
|
|
furi_crash("Invalid iButton type");
|
|
return "";
|
|
break;
|
|
}
|
|
}
|
|
|
|
bool iButtonKey::get_key_type_by_type_string(const char* type_string, iButtonKeyType* key_type) {
|
|
if(strcmp(type_string, get_key_type_string_by_type(iButtonKeyType::KeyCyfral)) == 0) {
|
|
*key_type = iButtonKeyType::KeyCyfral;
|
|
} else if(strcmp(type_string, get_key_type_string_by_type(iButtonKeyType::KeyMetakom)) == 0) {
|
|
*key_type = iButtonKeyType::KeyMetakom;
|
|
} else if(strcmp(type_string, get_key_type_string_by_type(iButtonKeyType::KeyDallas)) == 0) {
|
|
*key_type = iButtonKeyType::KeyDallas;
|
|
} else {
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
uint8_t iButtonKey::get_type_data_size_by_type(iButtonKeyType key_type) {
|
|
uint8_t size = 0;
|
|
|
|
switch(key_type) {
|
|
case iButtonKeyType::KeyCyfral:
|
|
size = 2;
|
|
break;
|
|
case iButtonKeyType::KeyMetakom:
|
|
size = 4;
|
|
break;
|
|
case iButtonKeyType::KeyDallas:
|
|
size = 8;
|
|
break;
|
|
}
|
|
|
|
return size;
|
|
}
|
|
|
|
iButtonKey::iButtonKey() {
|
|
}
|