mirror of
https://github.com/DarkFlippers/unleashed-firmware.git
synced 2025-12-12 04:34:43 +04:00
Merge remote-tracking branch 'OFW/dev' into dev
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
entry,status,name,type,params
|
||||
Version,+,72.0,,
|
||||
Version,+,72.1,,
|
||||
Header,+,applications/services/bt/bt_service/bt.h,,
|
||||
Header,+,applications/services/bt/bt_service/bt_keys_storage.h,,
|
||||
Header,+,applications/services/cli/cli.h,,
|
||||
@@ -13,6 +13,7 @@ Header,+,applications/services/gui/icon_i.h,,
|
||||
Header,+,applications/services/gui/modules/button_menu.h,,
|
||||
Header,+,applications/services/gui/modules/button_panel.h,,
|
||||
Header,+,applications/services/gui/modules/byte_input.h,,
|
||||
Header,+,applications/services/gui/modules/number_input.h,,
|
||||
Header,+,applications/services/gui/modules/dialog_ex.h,,
|
||||
Header,+,applications/services/gui/modules/empty_screen.h,,
|
||||
Header,+,applications/services/gui/modules/file_browser.h,,
|
||||
@@ -722,6 +723,11 @@ Function,+,byte_input_free,void,ByteInput*
|
||||
Function,+,byte_input_get_view,View*,ByteInput*
|
||||
Function,+,byte_input_set_header_text,void,"ByteInput*, const char*"
|
||||
Function,+,byte_input_set_result_callback,void,"ByteInput*, ByteInputCallback, ByteChangedCallback, void*, uint8_t*, uint8_t"
|
||||
Function,+,number_input_alloc,NumberInput*,
|
||||
Function,+,number_input_free,void,NumberInput*
|
||||
Function,+,number_input_get_view,View*,NumberInput*
|
||||
Function,+,number_input_set_header_text,void,"NumberInput*, const char*"
|
||||
Function,+,number_input_set_result_callback,void,"NumberInput*, NumberInputCallback, void*, int32_t, int32_t, int32_t"
|
||||
Function,-,bzero,void,"void*, size_t"
|
||||
Function,+,calloc,void*,"size_t, size_t"
|
||||
Function,+,canvas_clear,void,Canvas*
|
||||
@@ -1576,6 +1582,8 @@ Function,+,furi_string_cmpi_str,int,"const FuriString*, const char[]"
|
||||
Function,+,furi_string_empty,_Bool,const FuriString*
|
||||
Function,+,furi_string_end_with,_Bool,"const FuriString*, const FuriString*"
|
||||
Function,+,furi_string_end_with_str,_Bool,"const FuriString*, const char[]"
|
||||
Function,+,furi_string_end_withi,_Bool,"const FuriString*, const FuriString*"
|
||||
Function,+,furi_string_end_withi_str,_Bool,"const FuriString*, const char[]"
|
||||
Function,+,furi_string_equal,_Bool,"const FuriString*, const FuriString*"
|
||||
Function,+,furi_string_equal_str,_Bool,"const FuriString*, const char[]"
|
||||
Function,+,furi_string_free,void,FuriString*
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
entry,status,name,type,params
|
||||
Version,+,72.0,,
|
||||
Version,+,72.1,,
|
||||
Header,+,applications/drivers/subghz/cc1101_ext/cc1101_ext_interconnect.h,,
|
||||
Header,+,applications/services/bt/bt_service/bt.h,,
|
||||
Header,+,applications/services/bt/bt_service/bt_keys_storage.h,,
|
||||
@@ -20,6 +20,7 @@ Header,+,applications/services/gui/modules/file_browser.h,,
|
||||
Header,+,applications/services/gui/modules/file_browser_worker.h,,
|
||||
Header,+,applications/services/gui/modules/loading.h,,
|
||||
Header,+,applications/services/gui/modules/menu.h,,
|
||||
Header,+,applications/services/gui/modules/number_input.h,,
|
||||
Header,+,applications/services/gui/modules/popup.h,,
|
||||
Header,+,applications/services/gui/modules/submenu.h,,
|
||||
Header,+,applications/services/gui/modules/text_box.h,,
|
||||
@@ -1829,6 +1830,8 @@ Function,+,furi_string_cmpi_str,int,"const FuriString*, const char[]"
|
||||
Function,+,furi_string_empty,_Bool,const FuriString*
|
||||
Function,+,furi_string_end_with,_Bool,"const FuriString*, const FuriString*"
|
||||
Function,+,furi_string_end_with_str,_Bool,"const FuriString*, const char[]"
|
||||
Function,+,furi_string_end_withi,_Bool,"const FuriString*, const FuriString*"
|
||||
Function,+,furi_string_end_withi_str,_Bool,"const FuriString*, const char[]"
|
||||
Function,+,furi_string_equal,_Bool,"const FuriString*, const FuriString*"
|
||||
Function,+,furi_string_equal_str,_Bool,"const FuriString*, const char[]"
|
||||
Function,+,furi_string_free,void,FuriString*
|
||||
@@ -2861,6 +2864,11 @@ Function,+,notification_internal_message_block,void,"NotificationApp*, const Not
|
||||
Function,+,notification_message,void,"NotificationApp*, const NotificationSequence*"
|
||||
Function,+,notification_message_block,void,"NotificationApp*, const NotificationSequence*"
|
||||
Function,-,nrand48,long,unsigned short[3]
|
||||
Function,+,number_input_alloc,NumberInput*,
|
||||
Function,+,number_input_free,void,NumberInput*
|
||||
Function,+,number_input_get_view,View*,NumberInput*
|
||||
Function,+,number_input_set_header_text,void,"NumberInput*, const char*"
|
||||
Function,+,number_input_set_result_callback,void,"NumberInput*, NumberInputCallback, void*, int32_t, int32_t, int32_t"
|
||||
Function,-,on_exit,int,"void (*)(int, void*), void*"
|
||||
Function,+,onewire_host_alloc,OneWireHost*,const GpioPin*
|
||||
Function,+,onewire_host_free,void,OneWireHost*
|
||||
|
||||
|
@@ -54,6 +54,7 @@ typedef struct {
|
||||
|
||||
typedef struct {
|
||||
float cycle_duration;
|
||||
float cycle_remainder;
|
||||
FuriHalInfraredTxGetDataISRCallback data_callback;
|
||||
FuriHalInfraredTxSignalSentISRCallback signal_sent_callback;
|
||||
void* data_context;
|
||||
@@ -512,7 +513,11 @@ static void furi_hal_infrared_tx_fill_buffer(uint8_t buf_num, uint8_t polarity_s
|
||||
|
||||
status = infrared_tim_tx.data_callback(infrared_tim_tx.data_context, &duration, &level);
|
||||
|
||||
uint32_t num_of_impulses = roundf(duration / infrared_tim_tx.cycle_duration);
|
||||
const float num_of_impulses_f =
|
||||
duration / infrared_tim_tx.cycle_duration + infrared_tim_tx.cycle_remainder;
|
||||
const uint32_t num_of_impulses = roundf(num_of_impulses_f);
|
||||
// Save the remainder (in carrier periods) for later use
|
||||
infrared_tim_tx.cycle_remainder = num_of_impulses_f - num_of_impulses;
|
||||
|
||||
if(num_of_impulses == 0) {
|
||||
if((*size == 0) && (status == FuriHalInfraredTxGetDataStateDone)) {
|
||||
@@ -521,7 +526,7 @@ static void furi_hal_infrared_tx_fill_buffer(uint8_t buf_num, uint8_t polarity_s
|
||||
*/
|
||||
status = FuriHalInfraredTxGetDataStateOk;
|
||||
}
|
||||
} else if((num_of_impulses - 1) > 0xFFFF) {
|
||||
} else if((num_of_impulses - 1) > UINT16_MAX) {
|
||||
infrared_tim_tx.tx_timing_rest_duration = num_of_impulses - 1;
|
||||
infrared_tim_tx.tx_timing_rest_status = status;
|
||||
infrared_tim_tx.tx_timing_rest_level = level;
|
||||
@@ -632,6 +637,7 @@ void furi_hal_infrared_async_tx_start(uint32_t freq, float duty_cycle) {
|
||||
infrared_tim_tx.stop_semaphore = furi_semaphore_alloc(1, 0);
|
||||
infrared_tim_tx.cycle_duration = 1000000.0 / freq;
|
||||
infrared_tim_tx.tx_timing_rest_duration = 0;
|
||||
infrared_tim_tx.cycle_remainder = 0;
|
||||
|
||||
furi_hal_infrared_tx_fill_buffer(0, INFRARED_POLARITY_SHIFT);
|
||||
|
||||
@@ -655,7 +661,7 @@ void furi_hal_infrared_async_tx_start(uint32_t freq, float duty_cycle) {
|
||||
const GpioPin* tx_gpio = infrared_tx_pins[infrared_tx_output];
|
||||
LL_GPIO_ResetOutputPin(tx_gpio->port, tx_gpio->pin); /* when disable it prevents false pulse */
|
||||
furi_hal_gpio_init_ex(
|
||||
tx_gpio, GpioModeAltFunctionPushPull, GpioPullUp, GpioSpeedHigh, GpioAltFn1TIM1);
|
||||
tx_gpio, GpioModeAltFunctionPushPull, GpioPullNo, GpioSpeedHigh, GpioAltFn1TIM1);
|
||||
|
||||
FURI_CRITICAL_ENTER();
|
||||
LL_TIM_GenerateEvent_UPDATE(INFRARED_DMA_TIMER); /* TIMx_RCR -> Repetition counter */
|
||||
|
||||
@@ -29,10 +29,9 @@ const FuriHalRegionBand* furi_hal_region_get_band(uint32_t frequency) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
for(size_t i = 0; i < furi_hal_region->bands_count; i++) {
|
||||
if(furi_hal_region->bands[i].start <= frequency &&
|
||||
furi_hal_region->bands[i].end >= frequency) {
|
||||
return &furi_hal_region->bands[i];
|
||||
for(size_t i = 0; i < region->bands_count; i++) {
|
||||
if(region->bands[i].start <= frequency && region->bands[i].end >= frequency) {
|
||||
return ®ion->bands[i];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user