 c8b36dd406
			
		
	
	
		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() {
 | |
| }
 |