Dokumentace

This commit is contained in:
Pavel Brychta 2021-09-23 07:01:04 +02:00
parent b254c6f465
commit 94a5f46320
4 changed files with 244 additions and 158 deletions

View File

@ -2,7 +2,7 @@
Knihovna pro přístup k proměnným, uloženým v JSON formátovaných souborech. Knihovna pro přístup k proměnným, uloženým v JSON formátovaných souborech.
## Použití ## Použití (pro Platformio)
``` ```
git submodule init git submodule init
@ -10,4 +10,9 @@ git submodule add https://git.xpablo.cz/xPablo.cz/sysvars.git lib/sysvars
``` ```
Pro svoji práci potřebuje knihovnu ArduinoJSON Pro svoji práci potřebuje knihovnu ArduinoJSON.
Protože jsou v současnosti používané dva souborové systémy (SPIFFS a LittleFS/LITTLEFS), je možné definicí `USE_LITTLEFS` vynutit překlad pro LittleFS. Pokud tato definice není, použije se SPIFFS. Definice by se měla používat v rámci celého projektu, protože souborový systém může být použitý jen jeden!!!
POZOR!!! Protože mládenci v core pro ESP32 verze 2.0 předělali LITTLEFS na LittleFS, tak bude nutná úprava knihovny. Zatím ale není vystavená verze Core 2.0 pro Platformio, takže úprava zatím není.

29
library.json Normal file
View File

@ -0,0 +1,29 @@
{
"name":"sysvars",
"description":"Key-Value JSON file storage library the ESP8266 and ESP32 SoC",
"keywords":"file, storage",
"authors":
{
"name": "Pavel Brychta",
"maintainer": true
},
"repository":
{
"type": "git",
"url": "https://git.xpablo.cz/xPablo.cz/sysvars.git"
},
"dependencies": [
{
"name":"ArduinoJson",
"version":"https://github.com/bblanchon/ArduinoJson.git"
}
],
"version": "0.0.1",
"license": "MIT",
"frameworks": "arduino",
"platforms": ["espressif8266", "espressif32"],
"build": {
"libCompatMode": 2,
"libLDFMode": "deep"
}
}

9
library.properties Normal file
View File

@ -0,0 +1,9 @@
name=sysvars
version=0.0.1
author=Pavel Brychta
maintainer=Pavel Brychta <pablo@xpablo.cz>
sentence=Key-Value JSON file storage library.
paragraph=With this library you can easily store key-value pairs of data into JSON formatted file.
category=Other
url=https://www.xpablo.cz
architectures=esp8266,esp32

View File

@ -1,7 +1,9 @@
#ifndef _SYSVARS_H_ #pragma once
#define _SYSVARS_H_ /** Knihovna sysvars
// Key-Value JSON file store unit * Copyright (c) 2018-2021 Pavel Brychta, pablo@xpablo.cz
// Ma za ukol ukladat/nacitat pary key-value do/z JSON *
* Knihovna umoznuje ukladani a vycitani paru hodnot typu klic-hodnota do souboru ve formatu JSON
**/
#include <Arduino.h> #include <Arduino.h>
#include <ArduinoJson.h> #include <ArduinoJson.h>
@ -39,6 +41,16 @@ enum {
# define SYSVAR_DOCUMENT_SIZE (4096) # define SYSVAR_DOCUMENT_SIZE (4096)
#endif #endif
/**
* @brief Ziskani hodnoty
*
* @param[in] name Jmeno klice
* @param result Promenna pro ulozeni vysledku operace (SV_...)
*
* @tparam T Typ vysledne hodnoty
*
* @return Vracena hodnota zadaneho klice
*/
template <typename T> template <typename T>
T svGetV(const String& name, int* result = nullptr) T svGetV(const String& name, int* result = nullptr)
{ {
@ -69,6 +81,17 @@ T svGetV(const String& name, int* result = nullptr)
return retval; return retval;
} }
/**
* @brief Ziskani hodnoty klice
*
* @param[in] name Jmeno klice
* @param result Promenna pro ulozeni vysledku operace
* @param[in] fname Jmeno souboru s JSON parametry
*
* @tparam T Typ vysledne hodnoty
*
* @return Hodnota zadaneho klice
*/
template <typename T> template <typename T>
T svGetV(const String& name, int* result, const String& fname) T svGetV(const String& name, int* result, const String& fname)
{ {
@ -99,6 +122,16 @@ T svGetV(const String& name, int* result, const String& fname)
return retval; return retval;
} }
/**
* @brief Ulozeni hodnoty do klice
*
* @param[in] name Jmeno klice
* @param[in] value Ukladana hodnota
*
* @tparam T Typ ukladane hodnoty
*
* @return Chybovy stav operace (SV_...)
*/
template <typename T> template <typename T>
int svSetV(const String& name, T value) int svSetV(const String& name, T value)
{ {
@ -126,6 +159,17 @@ int svSetV(const String& name, T value)
return res; return res;
} }
/**
* @brief Ulozeni hodnoty klice
*
* @param[in] name Jmeno klice
* @param[in] value Ukladana hodnota
* @param[in] fname Jmeno souboru s JSON daty
*
* @tparam T Typ ukladane hodnoty
*
* @return Chybovy stav operace (SV_...)
*/
template <typename T> template <typename T>
int svSetV(const String& name, T value, const String& fname) int svSetV(const String& name, T value, const String& fname)
{ {
@ -153,4 +197,3 @@ int svSetV(const String& name, T value, const String& fname)
return res; return res;
} }
#endif