[FL-2957] Unified Info API, App Error, Data Xchange (#1998)

* Update protobuf definitions
* Add Property subsystem entry point function
* Key-based system info and power info function stubs
* Remove unneeded functions
* Working power info
* Working system info
* Replace #defines with string literals
* Remove unneeded field
* Simplify system info formatting
* Refactor output callback handling
* Handle the last info element correctly
* Optimise power info, rename methods
* Add comments
* Add power debug
* Remove unneeded definitions
* Rename some files and functions
* Update protobuf definitions
* Implement App GetError and DataExchange APIs
* Send GetErrorReply with correct command_id
* Add RPC debug app stub
* Add more scenes
* Add warning, increase stack size
* Add receive data exchange scene
* Improve data exchange
* Add notifications
* Update application requirements
* Bump format version for property-based infos
* Correctly reset error text
* RCP: sync protobuf repo to latest release tag

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
This commit is contained in:
Georgii Surkov
2022-11-29 12:08:08 +03:00
committed by GitHub
parent 849afc8798
commit 0261dc3075
30 changed files with 1452 additions and 222 deletions

View File

@@ -7,27 +7,20 @@
#include <stdbool.h>
#include <stdint.h>
#include <core/string.h>
#include <toolbox/property.h>
#ifdef __cplusplus
extern "C" {
#endif
/** Callback type called every time another key-value pair of device information is ready
*
* @param key[in] device information type identifier
* @param value[in] device information value
* @param last[in] whether the passed key-value pair is the last one
* @param context[in] to pass to callback
*/
typedef void (
*FuriHalInfoValueCallback)(const char* key, const char* value, bool last, void* context);
/** Get device information
*
* @param[in] callback callback to provide with new data
* @param[in] sep category separator character
* @param[in] context context to pass to callback
*/
void furi_hal_info_get(FuriHalInfoValueCallback callback, void* context);
void furi_hal_info_get(PropertyValueCallback callback, char sep, void* context);
#ifdef __cplusplus
}

View File

@@ -7,6 +7,8 @@
#include <stdint.h>
#include <stdbool.h>
#include <core/string.h>
#include <toolbox/property.h>
#ifdef __cplusplus
extern "C" {
@@ -167,10 +169,6 @@ float furi_hal_power_get_battery_temperature(FuriHalPowerIC ic);
*/
float furi_hal_power_get_usb_voltage();
/** Get power system component state
*/
void furi_hal_power_dump_state();
/** Enable 3.3v on external gpio and sd card
*/
void furi_hal_power_enable_external_3_3v();
@@ -189,22 +187,20 @@ void furi_hal_power_suppress_charge_enter();
*/
void furi_hal_power_suppress_charge_exit();
/** Callback type called by furi_hal_power_info_get every time another key-value pair of information is ready
*
* @param key[in] power information type identifier
* @param value[in] power information value
* @param last[in] whether the passed key-value pair is the last one
* @param context[in] to pass to callback
*/
typedef void (
*FuriHalPowerInfoCallback)(const char* key, const char* value, bool last, void* context);
/** Get power information
*
* @param[in] callback callback to provide with new data
* @param[in] sep category separator character
* @param[in] context context to pass to callback
*/
void furi_hal_power_info_get(PropertyValueCallback callback, char sep, void* context);
/** Get power debug information
*
* @param[in] callback callback to provide with new data
* @param[in] context context to pass to callback
*/
void furi_hal_power_info_get(FuriHalPowerInfoCallback callback, void* context);
void furi_hal_power_debug_get(PropertyValueCallback callback, void* context);
#ifdef __cplusplus
}