[FL-3260] Added API version to device info (#2611)
* hal: device_info: added API version to "firmware.api.major" & "firmware.api.minor" * FuriHal: bump device info version Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
parent
5c09bc5b2d
commit
c5b460b416
@ -6,6 +6,8 @@
|
|||||||
/* Generated table */
|
/* Generated table */
|
||||||
#include <firmware_api_table.h>
|
#include <firmware_api_table.h>
|
||||||
|
|
||||||
|
#include <furi_hal_info.h>
|
||||||
|
|
||||||
static_assert(!has_hash_collisions(elf_api_table), "Detected API method hash collision!");
|
static_assert(!has_hash_collisions(elf_api_table), "Detected API method hash collision!");
|
||||||
|
|
||||||
constexpr HashtableApiInterface elf_api_interface{
|
constexpr HashtableApiInterface elf_api_interface{
|
||||||
@ -19,3 +21,8 @@ constexpr HashtableApiInterface elf_api_interface{
|
|||||||
};
|
};
|
||||||
|
|
||||||
const ElfApiInterface* const firmware_api_interface = &elf_api_interface;
|
const ElfApiInterface* const firmware_api_interface = &elf_api_interface;
|
||||||
|
|
||||||
|
extern "C" void furi_hal_info_get_api_version(uint16_t* major, uint16_t* minor) {
|
||||||
|
*major = elf_api_interface.api_version_major;
|
||||||
|
*minor = elf_api_interface.api_version_minor;
|
||||||
|
}
|
||||||
@ -1,5 +1,5 @@
|
|||||||
entry,status,name,type,params
|
entry,status,name,type,params
|
||||||
Version,+,23.0,,
|
Version,+,23.1,,
|
||||||
Header,+,applications/services/bt/bt_service/bt.h,,
|
Header,+,applications/services/bt/bt_service/bt.h,,
|
||||||
Header,+,applications/services/cli/cli.h,,
|
Header,+,applications/services/cli/cli.h,,
|
||||||
Header,+,applications/services/cli/cli_vcp.h,,
|
Header,+,applications/services/cli/cli_vcp.h,,
|
||||||
@ -960,6 +960,7 @@ Function,+,furi_hal_i2c_write_mem,_Bool,"FuriHalI2cBusHandle*, uint8_t, uint8_t,
|
|||||||
Function,+,furi_hal_i2c_write_reg_16,_Bool,"FuriHalI2cBusHandle*, uint8_t, uint8_t, uint16_t, uint32_t"
|
Function,+,furi_hal_i2c_write_reg_16,_Bool,"FuriHalI2cBusHandle*, uint8_t, uint8_t, uint16_t, uint32_t"
|
||||||
Function,+,furi_hal_i2c_write_reg_8,_Bool,"FuriHalI2cBusHandle*, uint8_t, uint8_t, uint8_t, uint32_t"
|
Function,+,furi_hal_i2c_write_reg_8,_Bool,"FuriHalI2cBusHandle*, uint8_t, uint8_t, uint8_t, uint32_t"
|
||||||
Function,+,furi_hal_info_get,void,"PropertyValueCallback, char, void*"
|
Function,+,furi_hal_info_get,void,"PropertyValueCallback, char, void*"
|
||||||
|
Function,+,furi_hal_info_get_api_version,void,"uint16_t*, uint16_t*"
|
||||||
Function,-,furi_hal_init,void,
|
Function,-,furi_hal_init,void,
|
||||||
Function,-,furi_hal_init_early,void,
|
Function,-,furi_hal_init_early,void,
|
||||||
Function,-,furi_hal_interrupt_init,void,
|
Function,-,furi_hal_interrupt_init,void,
|
||||||
|
|||||||
|
@ -1,5 +1,5 @@
|
|||||||
entry,status,name,type,params
|
entry,status,name,type,params
|
||||||
Version,+,23.0,,
|
Version,+,23.1,,
|
||||||
Header,+,applications/services/bt/bt_service/bt.h,,
|
Header,+,applications/services/bt/bt_service/bt.h,,
|
||||||
Header,+,applications/services/cli/cli.h,,
|
Header,+,applications/services/cli/cli.h,,
|
||||||
Header,+,applications/services/cli/cli_vcp.h,,
|
Header,+,applications/services/cli/cli_vcp.h,,
|
||||||
@ -1148,6 +1148,7 @@ Function,+,furi_hal_ibutton_pin_configure,void,
|
|||||||
Function,+,furi_hal_ibutton_pin_reset,void,
|
Function,+,furi_hal_ibutton_pin_reset,void,
|
||||||
Function,+,furi_hal_ibutton_pin_write,void,const _Bool
|
Function,+,furi_hal_ibutton_pin_write,void,const _Bool
|
||||||
Function,+,furi_hal_info_get,void,"PropertyValueCallback, char, void*"
|
Function,+,furi_hal_info_get,void,"PropertyValueCallback, char, void*"
|
||||||
|
Function,+,furi_hal_info_get_api_version,void,"uint16_t*, uint16_t*"
|
||||||
Function,+,furi_hal_infrared_async_rx_set_capture_isr_callback,void,"FuriHalInfraredRxCaptureCallback, void*"
|
Function,+,furi_hal_infrared_async_rx_set_capture_isr_callback,void,"FuriHalInfraredRxCaptureCallback, void*"
|
||||||
Function,+,furi_hal_infrared_async_rx_set_timeout,void,uint32_t
|
Function,+,furi_hal_infrared_async_rx_set_timeout,void,uint32_t
|
||||||
Function,+,furi_hal_infrared_async_rx_set_timeout_isr_callback,void,"FuriHalInfraredRxTimeoutCallback, void*"
|
Function,+,furi_hal_infrared_async_rx_set_timeout_isr_callback,void,"FuriHalInfraredRxTimeoutCallback, void*"
|
||||||
|
|||||||
|
@ -8,6 +8,11 @@
|
|||||||
#include <furi.h>
|
#include <furi.h>
|
||||||
#include <protobuf_version.h>
|
#include <protobuf_version.h>
|
||||||
|
|
||||||
|
FURI_WEAK void furi_hal_info_get_api_version(uint16_t* major, uint16_t* minor) {
|
||||||
|
*major = 0;
|
||||||
|
*minor = 0;
|
||||||
|
}
|
||||||
|
|
||||||
void furi_hal_info_get(PropertyValueCallback out, char sep, void* context) {
|
void furi_hal_info_get(PropertyValueCallback out, char sep, void* context) {
|
||||||
FuriString* key = furi_string_alloc();
|
FuriString* key = furi_string_alloc();
|
||||||
FuriString* value = furi_string_alloc();
|
FuriString* value = furi_string_alloc();
|
||||||
@ -18,10 +23,10 @@ void furi_hal_info_get(PropertyValueCallback out, char sep, void* context) {
|
|||||||
// Device Info version
|
// Device Info version
|
||||||
if(sep == '.') {
|
if(sep == '.') {
|
||||||
property_value_out(&property_context, NULL, 2, "format", "major", "3");
|
property_value_out(&property_context, NULL, 2, "format", "major", "3");
|
||||||
property_value_out(&property_context, NULL, 2, "format", "minor", "0");
|
property_value_out(&property_context, NULL, 2, "format", "minor", "1");
|
||||||
} else {
|
} else {
|
||||||
property_value_out(&property_context, NULL, 3, "device", "info", "major", "2");
|
property_value_out(&property_context, NULL, 3, "device", "info", "major", "2");
|
||||||
property_value_out(&property_context, NULL, 3, "device", "info", "minor", "0");
|
property_value_out(&property_context, NULL, 3, "device", "info", "minor", "1");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Model name
|
// Model name
|
||||||
@ -161,6 +166,13 @@ void furi_hal_info_get(PropertyValueCallback out, char sep, void* context) {
|
|||||||
version_get_builddate(firmware_version));
|
version_get_builddate(firmware_version));
|
||||||
property_value_out(
|
property_value_out(
|
||||||
&property_context, "%d", 2, "firmware", "target", version_get_target(firmware_version));
|
&property_context, "%d", 2, "firmware", "target", version_get_target(firmware_version));
|
||||||
|
|
||||||
|
uint16_t api_version_major, api_version_minor;
|
||||||
|
furi_hal_info_get_api_version(&api_version_major, &api_version_minor);
|
||||||
|
property_value_out(
|
||||||
|
&property_context, "%d", 3, "firmware", "api", "major", api_version_major);
|
||||||
|
property_value_out(
|
||||||
|
&property_context, "%d", 3, "firmware", "api", "minor", api_version_minor);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(furi_hal_bt_is_alive()) {
|
if(furi_hal_bt_is_alive()) {
|
||||||
|
|||||||
@ -14,6 +14,8 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
void furi_hal_info_get_api_version(uint16_t* major, uint16_t* minor);
|
||||||
|
|
||||||
/** Get device information
|
/** Get device information
|
||||||
*
|
*
|
||||||
* @param[in] callback callback to provide with new data
|
* @param[in] callback callback to provide with new data
|
||||||
|
|||||||
@ -15,6 +15,10 @@ extern "C" {
|
|||||||
#define FURI_WARN_UNUSED __attribute__((warn_unused_result))
|
#define FURI_WARN_UNUSED __attribute__((warn_unused_result))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef FURI_WEAK
|
||||||
|
#define FURI_WEAK __attribute__((weak))
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef FURI_IS_IRQ_MASKED
|
#ifndef FURI_IS_IRQ_MASKED
|
||||||
#define FURI_IS_IRQ_MASKED() (__get_PRIMASK() != 0U)
|
#define FURI_IS_IRQ_MASKED() (__get_PRIMASK() != 0U)
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user