Merge remote-tracking branch 'origin/dev' into release-candidate
This commit is contained in:
commit
9cedac9adf
@ -135,7 +135,6 @@ static void desktop_auto_lock_inhibit(Desktop* desktop) {
|
|||||||
|
|
||||||
void desktop_lock(Desktop* desktop) {
|
void desktop_lock(Desktop* desktop) {
|
||||||
furi_hal_rtc_set_flag(FuriHalRtcFlagLock);
|
furi_hal_rtc_set_flag(FuriHalRtcFlagLock);
|
||||||
furi_hal_rtc_set_pin_fails(0);
|
|
||||||
|
|
||||||
if(desktop->settings.pin_code.length) {
|
if(desktop->settings.pin_code.length) {
|
||||||
Cli* cli = furi_record_open(RECORD_CLI);
|
Cli* cli = furi_record_open(RECORD_CLI);
|
||||||
@ -159,6 +158,7 @@ void desktop_unlock(Desktop* desktop) {
|
|||||||
scene_manager_search_and_switch_to_previous_scene(desktop->scene_manager, DesktopSceneMain);
|
scene_manager_search_and_switch_to_previous_scene(desktop->scene_manager, DesktopSceneMain);
|
||||||
desktop_auto_lock_arm(desktop);
|
desktop_auto_lock_arm(desktop);
|
||||||
furi_hal_rtc_reset_flag(FuriHalRtcFlagLock);
|
furi_hal_rtc_reset_flag(FuriHalRtcFlagLock);
|
||||||
|
furi_hal_rtc_set_pin_fails(0);
|
||||||
|
|
||||||
if(desktop->settings.pin_code.length) {
|
if(desktop->settings.pin_code.length) {
|
||||||
Cli* cli = furi_record_open(RECORD_CLI);
|
Cli* cli = furi_record_open(RECORD_CLI);
|
||||||
|
|||||||
@ -55,7 +55,6 @@ static void desktop_scene_pin_input_back_callback(void* context) {
|
|||||||
static void desktop_scene_pin_input_done_callback(const PinCode* pin_code, void* context) {
|
static void desktop_scene_pin_input_done_callback(const PinCode* pin_code, void* context) {
|
||||||
Desktop* desktop = (Desktop*)context;
|
Desktop* desktop = (Desktop*)context;
|
||||||
if(desktop_pin_compare(&desktop->settings.pin_code, pin_code)) {
|
if(desktop_pin_compare(&desktop->settings.pin_code, pin_code)) {
|
||||||
furi_hal_rtc_set_pin_fails(0);
|
|
||||||
view_dispatcher_send_custom_event(desktop->view_dispatcher, DesktopPinInputEventUnlocked);
|
view_dispatcher_send_custom_event(desktop->view_dispatcher, DesktopPinInputEventUnlocked);
|
||||||
} else {
|
} else {
|
||||||
uint32_t pin_fails = furi_hal_rtc_get_pin_fails();
|
uint32_t pin_fails = furi_hal_rtc_get_pin_fails();
|
||||||
|
|||||||
@ -47,7 +47,7 @@ Only two parameters are mandatory: **_appid_** and **_apptype_**. Others are opt
|
|||||||
The following parameters are used only for [FAPs](./AppsOnSDCard.md):
|
The following parameters are used only for [FAPs](./AppsOnSDCard.md):
|
||||||
|
|
||||||
- **sources**: list of strings, file name masks used for gathering sources within the app folder. The default value of `["*.c*"]` includes C and C++ source files. Applications cannot use the `"lib"` folder for their own source code, as it is reserved for **fap_private_libs**.
|
- **sources**: list of strings, file name masks used for gathering sources within the app folder. The default value of `["*.c*"]` includes C and C++ source files. Applications cannot use the `"lib"` folder for their own source code, as it is reserved for **fap_private_libs**.
|
||||||
- **fap_version**: tuple, 2 numbers in the form of (x,y): application version to be embedded within .fap file. The default value is (0,1), meaning version "0.1".
|
- **fap_version**: string, application version. The default value is "0.1". You can also use a tuple of 2 numbers in the form of (x,y) to specify the version. It is also possible to add more dot-separated parts to the version, like patch number, but only major and minor version numbers are stored in the built .fap.
|
||||||
- **fap_icon**: name of a `.png` file, 1-bit color depth, 10x10px, to be embedded within `.fap` file.
|
- **fap_icon**: name of a `.png` file, 1-bit color depth, 10x10px, to be embedded within `.fap` file.
|
||||||
- **fap_libs**: list of extra libraries to link the application against. Provides access to extra functions that are not exported as a part of main firmware at the expense of increased `.fap` file size and RAM consumption.
|
- **fap_libs**: list of extra libraries to link the application against. Provides access to extra functions that are not exported as a part of main firmware at the expense of increased `.fap` file size and RAM consumption.
|
||||||
- **fap_category**: string, may be empty. App subcategory, also determines the path of the FAP within the apps folder in the file system.
|
- **fap_category**: string, may be empty. App subcategory, also determines the path of the FAP within the apps folder in the file system.
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
# Furi HAL Debugging
|
# Furi HAL Debugging
|
||||||
|
|
||||||
Some Furi subsystem got additional debugging features that can be enabled by adding additional defines to firmware compilation.
|
Some Furi subsystems got additional debugging features that can be enabled by adding additional defines to firmware compilation.
|
||||||
Usually they are used for low level tracing and profiling or signal redirection/duplication.
|
Usually they are used for low level tracing and profiling or signal redirection/duplication.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
entry,status,name,type,params
|
entry,status,name,type,params
|
||||||
Version,+,26.2,,
|
Version,+,26.3,,
|
||||||
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,,
|
||||||
|
|||||||
|
@ -1,5 +1,5 @@
|
|||||||
entry,status,name,type,params
|
entry,status,name,type,params
|
||||||
Version,+,26.2,,
|
Version,+,26.3,,
|
||||||
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,,
|
||||||
@ -144,10 +144,12 @@ Header,+,lib/mlib/m-rbtree.h,,
|
|||||||
Header,+,lib/mlib/m-tuple.h,,
|
Header,+,lib/mlib/m-tuple.h,,
|
||||||
Header,+,lib/mlib/m-variant.h,,
|
Header,+,lib/mlib/m-variant.h,,
|
||||||
Header,+,lib/nfc/nfc_device.h,,
|
Header,+,lib/nfc/nfc_device.h,,
|
||||||
|
Header,+,lib/nfc/protocols/nfc_util.h,,
|
||||||
Header,+,lib/one_wire/maxim_crc.h,,
|
Header,+,lib/one_wire/maxim_crc.h,,
|
||||||
Header,+,lib/one_wire/one_wire_host.h,,
|
Header,+,lib/one_wire/one_wire_host.h,,
|
||||||
Header,+,lib/one_wire/one_wire_slave.h,,
|
Header,+,lib/one_wire/one_wire_slave.h,,
|
||||||
Header,+,lib/print/wrappers.h,,
|
Header,+,lib/print/wrappers.h,,
|
||||||
|
Header,+,lib/pulse_reader/pulse_reader.h,,
|
||||||
Header,+,lib/stm32wb_hal/Inc/stm32wbxx_ll_adc.h,,
|
Header,+,lib/stm32wb_hal/Inc/stm32wbxx_ll_adc.h,,
|
||||||
Header,+,lib/stm32wb_hal/Inc/stm32wbxx_ll_bus.h,,
|
Header,+,lib/stm32wb_hal/Inc/stm32wbxx_ll_bus.h,,
|
||||||
Header,+,lib/stm32wb_hal/Inc/stm32wbxx_ll_comp.h,,
|
Header,+,lib/stm32wb_hal/Inc/stm32wbxx_ll_comp.h,,
|
||||||
@ -175,7 +177,6 @@ Header,+,lib/stm32wb_hal/Inc/stm32wbxx_ll_tim.h,,
|
|||||||
Header,+,lib/stm32wb_hal/Inc/stm32wbxx_ll_usart.h,,
|
Header,+,lib/stm32wb_hal/Inc/stm32wbxx_ll_usart.h,,
|
||||||
Header,+,lib/stm32wb_hal/Inc/stm32wbxx_ll_utils.h,,
|
Header,+,lib/stm32wb_hal/Inc/stm32wbxx_ll_utils.h,,
|
||||||
Header,+,lib/stm32wb_hal/Inc/stm32wbxx_ll_wwdg.h,,
|
Header,+,lib/stm32wb_hal/Inc/stm32wbxx_ll_wwdg.h,,
|
||||||
Header,+,lib/pulse_reader/pulse_reader.h,,
|
|
||||||
Header,+,lib/subghz/blocks/const.h,,
|
Header,+,lib/subghz/blocks/const.h,,
|
||||||
Header,+,lib/subghz/blocks/decoder.h,,
|
Header,+,lib/subghz/blocks/decoder.h,,
|
||||||
Header,+,lib/subghz/blocks/encoder.h,,
|
Header,+,lib/subghz/blocks/encoder.h,,
|
||||||
@ -2064,6 +2065,11 @@ Function,+,nfc_device_save_shadow,_Bool,"NfcDevice*, const char*"
|
|||||||
Function,+,nfc_device_set_loading_callback,void,"NfcDevice*, NfcLoadingCallback, void*"
|
Function,+,nfc_device_set_loading_callback,void,"NfcDevice*, NfcLoadingCallback, void*"
|
||||||
Function,+,nfc_device_set_name,void,"NfcDevice*, const char*"
|
Function,+,nfc_device_set_name,void,"NfcDevice*, const char*"
|
||||||
Function,+,nfc_file_select,_Bool,NfcDevice*
|
Function,+,nfc_file_select,_Bool,NfcDevice*
|
||||||
|
Function,+,nfc_util_bytes2num,uint64_t,"const uint8_t*, uint8_t"
|
||||||
|
Function,+,nfc_util_even_parity32,uint8_t,uint32_t
|
||||||
|
Function,+,nfc_util_num2bytes,void,"uint64_t, uint8_t, uint8_t*"
|
||||||
|
Function,+,nfc_util_odd_parity,void,"const uint8_t*, uint8_t*, uint8_t"
|
||||||
|
Function,+,nfc_util_odd_parity8,uint8_t,uint8_t
|
||||||
Function,-,nfca_append_crc16,void,"uint8_t*, uint16_t"
|
Function,-,nfca_append_crc16,void,"uint8_t*, uint16_t"
|
||||||
Function,-,nfca_emulation_handler,_Bool,"uint8_t*, uint16_t, uint8_t*, uint16_t*"
|
Function,-,nfca_emulation_handler,_Bool,"uint8_t*, uint16_t, uint8_t*, uint16_t*"
|
||||||
Function,-,nfca_get_crc16,uint16_t,"uint8_t*, uint16_t"
|
Function,-,nfca_get_crc16,uint16_t,"uint8_t*, uint16_t"
|
||||||
|
|||||||
|
@ -6,6 +6,7 @@ env.Append(
|
|||||||
],
|
],
|
||||||
SDK_HEADERS=[
|
SDK_HEADERS=[
|
||||||
File("nfc_device.h"),
|
File("nfc_device.h"),
|
||||||
|
File("protocols/nfc_util.h"),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@ -2,6 +2,10 @@
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
void nfc_util_num2bytes(uint64_t src, uint8_t len, uint8_t* dest);
|
void nfc_util_num2bytes(uint64_t src, uint8_t len, uint8_t* dest);
|
||||||
|
|
||||||
uint64_t nfc_util_bytes2num(const uint8_t* src, uint8_t len);
|
uint64_t nfc_util_bytes2num(const uint8_t* src, uint8_t len);
|
||||||
@ -11,3 +15,7 @@ uint8_t nfc_util_even_parity32(uint32_t data);
|
|||||||
uint8_t nfc_util_odd_parity8(uint8_t data);
|
uint8_t nfc_util_odd_parity8(uint8_t data);
|
||||||
|
|
||||||
void nfc_util_odd_parity(const uint8_t* src, uint8_t* dst, uint8_t len);
|
void nfc_util_odd_parity(const uint8_t* src, uint8_t* dst, uint8_t len);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@ -196,7 +196,10 @@ class FlipperAppStateHelper:
|
|||||||
self.set_debug_mode(False)
|
self.set_debug_mode(False)
|
||||||
|
|
||||||
def set_debug_mode(self, mode: bool) -> None:
|
def set_debug_mode(self, mode: bool) -> None:
|
||||||
gdb.execute(f"set variable furi_hal_debug_gdb_session_active = {int(mode)}")
|
try:
|
||||||
|
gdb.execute(f"set variable furi_hal_debug_gdb_session_active = {int(mode)}")
|
||||||
|
except gdb.error as e:
|
||||||
|
print(f"Failed to set debug mode: {e}")
|
||||||
|
|
||||||
|
|
||||||
# Init additional 'fap-set-debug-elf-root' command and set up hooks
|
# Init additional 'fap-set-debug-elf-root' command and set up hooks
|
||||||
|
|||||||
@ -56,7 +56,7 @@ class FlipperApplication:
|
|||||||
|
|
||||||
# .fap-specific
|
# .fap-specific
|
||||||
sources: List[str] = field(default_factory=lambda: ["*.c*"])
|
sources: List[str] = field(default_factory=lambda: ["*.c*"])
|
||||||
fap_version: Tuple[int] = field(default_factory=lambda: (0, 1))
|
fap_version: str | Tuple[int] = "0.1"
|
||||||
fap_icon: Optional[str] = None
|
fap_icon: Optional[str] = None
|
||||||
fap_libs: List[str] = field(default_factory=list)
|
fap_libs: List[str] = field(default_factory=list)
|
||||||
fap_category: str = ""
|
fap_category: str = ""
|
||||||
@ -84,6 +84,13 @@ class FlipperApplication:
|
|||||||
def __post_init__(self):
|
def __post_init__(self):
|
||||||
if self.apptype == FlipperAppType.PLUGIN:
|
if self.apptype == FlipperAppType.PLUGIN:
|
||||||
self.stack_size = 0
|
self.stack_size = 0
|
||||||
|
if isinstance(self.fap_version, str):
|
||||||
|
try:
|
||||||
|
self.fap_version = tuple(int(v) for v in self.fap_version.split("."))
|
||||||
|
except ValueError:
|
||||||
|
raise FlipperManifestException(
|
||||||
|
f"Invalid version string '{self.fap_version}'. Must be in the form 'major.minor'"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class AppManager:
|
class AppManager:
|
||||||
|
|||||||
@ -8,7 +8,7 @@ App(
|
|||||||
stack_size=2 * 1024,
|
stack_size=2 * 1024,
|
||||||
fap_category="Examples",
|
fap_category="Examples",
|
||||||
# Optional values
|
# Optional values
|
||||||
# fap_version=(0, 1), # (major, minor)
|
# fap_version="0.1",
|
||||||
fap_icon="@FBT_APPID@.png", # 10x10 1-bit PNG
|
fap_icon="@FBT_APPID@.png", # 10x10 1-bit PNG
|
||||||
# fap_description="A simple app",
|
# fap_description="A simple app",
|
||||||
# fap_author="J. Doe",
|
# fap_author="J. Doe",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user