Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion applications/main/gpio/usb_uart_bridge.c
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ static void usb_uart_vcp_init(UsbUartBridge* usb_uart, uint8_t vcp_ch) {
furi_check(furi_hal_usb_set_config(&usb_cdc_dual, NULL) == true);
cli_vcp_enable(usb_uart->cli_vcp);
}
furi_hal_cdc_set_callbacks(vcp_ch, (CdcCallbacks*)&cdc_cb, usb_uart);
furi_hal_cdc_set_callbacks(vcp_ch, &cdc_cb, usb_uart);
}

static void usb_uart_vcp_deinit(UsbUartBridge* usb_uart, uint8_t vcp_ch) {
Expand Down
11 changes: 6 additions & 5 deletions applications/main/subghz/views/subghz_read_raw.c
Original file line number Diff line number Diff line change
Expand Up @@ -146,11 +146,12 @@ void subghz_read_raw_update_sin(SubGhzReadRAW* instance) {
}

static int8_t subghz_read_raw_tab_sin(uint8_t x) {
const uint8_t tab_sin[64] = {0, 3, 6, 9, 12, 16, 19, 22, 25, 28, 31, 34, 37,
40, 43, 46, 49, 51, 54, 57, 60, 63, 65, 68, 71, 73,
76, 78, 81, 83, 85, 88, 90, 92, 94, 96, 98, 100, 102,
104, 106, 107, 109, 111, 112, 113, 115, 116, 117, 118, 120, 121,
122, 122, 123, 124, 125, 125, 126, 126, 126, 127, 127, 127};
static const uint8_t tab_sin[64] = {0, 3, 6, 9, 12, 16, 19, 22, 25, 28, 31,
34, 37, 40, 43, 46, 49, 51, 54, 57, 60, 63,
65, 68, 71, 73, 76, 78, 81, 83, 85, 88, 90,
92, 94, 96, 98, 100, 102, 104, 106, 107, 109, 111,
112, 113, 115, 116, 117, 118, 120, 121, 122, 122, 123,
124, 125, 125, 126, 126, 126, 127, 127, 127};

int8_t r = tab_sin[((x & 0x40) ? -x - 1 : x) & 0x3f];
if(x & 0x80) return -r;
Expand Down
2 changes: 1 addition & 1 deletion applications/services/cli/cli_vcp.c
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ static void cli_vcp_cdc_ctrl_line_callback(void* context, CdcCtrlLine ctrl_lines
}
}

static CdcCallbacks cdc_callbacks = {
static const CdcCallbacks cdc_callbacks = {
.tx_ep_callback = cli_vcp_cdc_tx_done,
.rx_ep_callback = cli_vcp_cdc_rx,
.state_callback = cli_vcp_cdc_state_callback,
Expand Down
45 changes: 20 additions & 25 deletions lib/lfrfid/protocols/protocol_nexwatch.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,6 @@
#define NEXWATCH_US_PER_BIT (255)
#define NEXWATCH_ENCODER_PULSES_PER_BIT (16)

typedef struct {
uint8_t magic;
char desc[13];
uint8_t chk;
} ProtocolNexwatchMagic;

static ProtocolNexwatchMagic magic_items[] = {
{0xBE, "Quadrakey", 0},
{0x88, "Nexkey", 0},
{0x86, "Honeywell", 0}};

typedef struct {
uint8_t data_index;
uint8_t bit_clock_index;
Expand Down Expand Up @@ -143,10 +132,10 @@ static bool protocol_nexwatch_decoder_feed_internal(bool polarity, uint32_t time
return result;
}

static void protocol_nexwatch_descramble(uint32_t* id, uint32_t* scrambled) {
static void protocol_nexwatch_descramble(uint32_t* id, const uint32_t* scrambled) {
// 255 = Not used/Unknown other values are the bit offset in the ID/FC values
const uint8_t hex_2_id[] = {31, 27, 23, 19, 15, 11, 7, 3, 30, 26, 22, 18, 14, 10, 6, 2,
29, 25, 21, 17, 13, 9, 5, 1, 28, 24, 20, 16, 12, 8, 4, 0};
static const uint8_t hex_2_id[] = {31, 27, 23, 19, 15, 11, 7, 3, 30, 26, 22, 18, 14, 10, 6, 2,
29, 25, 21, 17, 13, 9, 5, 1, 28, 24, 20, 16, 12, 8, 4, 0};

*id = 0;
for(uint8_t idx = 0; idx < 32; idx++) {
Expand Down Expand Up @@ -264,27 +253,33 @@ LevelDuration protocol_nexwatch_encoder_yield(ProtocolNexwatch* protocol) {
}

static void protocol_nexwatch_render_data_internal(
ProtocolNexwatch* protocol,
const ProtocolNexwatch* protocol,
FuriString* result,
bool brief) {
uint32_t id = 0;
uint32_t scrambled = bit_lib_get_bits_32(protocol->data, 8, 32);
const uint32_t scrambled = bit_lib_get_bits_32(protocol->data, 8, 32);
protocol_nexwatch_descramble(&id, &scrambled);

uint8_t m_idx;
uint8_t mode = bit_lib_get_bits(protocol->data, 40, 4);
uint8_t parity = bit_lib_get_bits(protocol->data, 44, 4);
uint8_t chk = bit_lib_get_bits(protocol->data, 48, 8);
const uint8_t mode = bit_lib_get_bits(protocol->data, 40, 4);
const uint8_t parity = bit_lib_get_bits(protocol->data, 44, 4);
const uint8_t chk = bit_lib_get_bits(protocol->data, 48, 8);

for(m_idx = 0; m_idx < COUNT_OF(magic_items); m_idx++) {
magic_items[m_idx].chk = protocol_nexwatch_checksum(magic_items[m_idx].magic, id, parity);
if(magic_items[m_idx].chk == chk) {
typedef struct {
const char* desc;
uint8_t magic;
} ProtocolNexwatchMagic;

static const ProtocolNexwatchMagic magic_items[] = {
{"Quadrakey", 0xBE}, {"Nexkey", 0x88}, {"Honeywell", 0x86}};

const char* type = "Unknown";
for(size_t idx = 0; idx < COUNT_OF(magic_items); idx++) {
if(protocol_nexwatch_checksum(magic_items[idx].magic, id, parity) == chk) {
type = magic_items[idx].desc;
break;
}
}

const char* type = m_idx < COUNT_OF(magic_items) ? magic_items[m_idx].desc : "Unknown";

if(brief) {
furi_string_printf(
result,
Expand Down
9 changes: 5 additions & 4 deletions lib/toolbox/cli/shell/cli_shell.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ typedef enum {
CliShellComponentMAX, //<! do not use
} CliShellComponent;

CliShellKeyComboSet* component_key_combo_sets[] = {
static const CliShellKeyComboSet* const component_key_combo_sets[] = {
[CliShellComponentCompletions] = &cli_shell_completions_key_combo_set,
[CliShellComponentLine] = &cli_shell_line_key_combo_set,
};
Expand Down Expand Up @@ -213,8 +213,9 @@ void cli_shell_execute_command(CliShell* cli_shell, FuriString* command) {
if(!(command_data.flags & CliCommandFlagParallelSafe)) {
loader_locked = loader_lock(loader);
if(!loader_locked) {
printf(ANSI_FG_RED
"this command cannot be run while an application is open" ANSI_RESET);
printf(
ANSI_FG_RED
"this command cannot be run while an application is open" ANSI_RESET);
break;
}
}
Expand Down Expand Up @@ -299,7 +300,7 @@ static void
if(key_combo.key == CliKeyUnrecognized) return;

for(size_t i = 0; i < CliShellComponentMAX; i++) { // -V1008
CliShellKeyComboSet* set = component_key_combo_sets[i];
const CliShellKeyComboSet* set = component_key_combo_sets[i];
void* component_context = cli_shell->components[i];

for(size_t j = 0; j < set->count; j++) {
Expand Down
2 changes: 1 addition & 1 deletion lib/toolbox/cli/shell/cli_shell_completions.c
Original file line number Diff line number Diff line change
Expand Up @@ -351,7 +351,7 @@ static bool key_combo_esc(CliKeyCombo combo, void* context) {
return true;
}

CliShellKeyComboSet cli_shell_completions_key_combo_set = {
const CliShellKeyComboSet cli_shell_completions_key_combo_set = {
.fallback = hide_if_open_and_continue_handling,
.count = 7,
.records =
Expand Down
2 changes: 1 addition & 1 deletion lib/toolbox/cli/shell/cli_shell_completions.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ CliShellCompletions*

void cli_shell_completions_free(CliShellCompletions* completions);

extern CliShellKeyComboSet cli_shell_completions_key_combo_set;
extern const CliShellKeyComboSet cli_shell_completions_key_combo_set;

#ifdef __cplusplus
}
Expand Down
2 changes: 1 addition & 1 deletion lib/toolbox/cli/shell/cli_shell_line.c
Original file line number Diff line number Diff line change
Expand Up @@ -355,7 +355,7 @@ static bool cli_shell_line_input_normal(CliKeyCombo combo, void* context) {
return true;
}

CliShellKeyComboSet cli_shell_line_key_combo_set = {
const CliShellKeyComboSet cli_shell_line_key_combo_set = {
.fallback = cli_shell_line_input_normal,
.count = 14,
.records =
Expand Down
2 changes: 1 addition & 1 deletion lib/toolbox/cli/shell/cli_shell_line.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ void cli_shell_line_ensure_not_overwriting_history(CliShellLine* line);

void cli_shell_line_set_about_to_exit(CliShellLine* line);

extern CliShellKeyComboSet cli_shell_line_key_combo_set;
extern const CliShellKeyComboSet cli_shell_line_key_combo_set;

#ifdef __cplusplus
}
Expand Down
6 changes: 3 additions & 3 deletions targets/f18/api_symbols.csv
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
entry,status,name,type,params
Version,+,87.0,,
Version,+,88.0,,
Header,+,applications/services/bt/bt_service/bt.h,,
Header,+,applications/services/bt/bt_service/bt_keys_storage.h,,
Header,+,applications/services/cli/cli.h,,
Expand Down Expand Up @@ -1227,8 +1227,8 @@ Function,+,furi_hal_bus_reset,void,FuriHalBus
Function,+,furi_hal_cdc_get_ctrl_line_state,uint8_t,uint8_t
Function,+,furi_hal_cdc_get_port_settings,usb_cdc_line_coding*,uint8_t
Function,+,furi_hal_cdc_receive,int32_t,"uint8_t, uint8_t*, uint16_t"
Function,+,furi_hal_cdc_send,void,"uint8_t, uint8_t*, uint16_t"
Function,+,furi_hal_cdc_set_callbacks,void,"uint8_t, CdcCallbacks*, void*"
Function,+,furi_hal_cdc_send,void,"uint8_t, const uint8_t*, uint16_t"
Function,+,furi_hal_cdc_set_callbacks,void,"uint8_t, const CdcCallbacks*, void*"
Function,-,furi_hal_clock_deinit_early,void,
Function,-,furi_hal_clock_init,void,
Function,-,furi_hal_clock_init_early,void,
Expand Down
6 changes: 3 additions & 3 deletions targets/f7/api_symbols.csv
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
entry,status,name,type,params
Version,+,87.0,,
Version,+,88.0,,
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,,
Expand Down Expand Up @@ -1348,8 +1348,8 @@ Function,+,furi_hal_bus_reset,void,FuriHalBus
Function,+,furi_hal_cdc_get_ctrl_line_state,uint8_t,uint8_t
Function,+,furi_hal_cdc_get_port_settings,usb_cdc_line_coding*,uint8_t
Function,+,furi_hal_cdc_receive,int32_t,"uint8_t, uint8_t*, uint16_t"
Function,+,furi_hal_cdc_send,void,"uint8_t, uint8_t*, uint16_t"
Function,+,furi_hal_cdc_set_callbacks,void,"uint8_t, CdcCallbacks*, void*"
Function,+,furi_hal_cdc_send,void,"uint8_t, const uint8_t*, uint16_t"
Function,+,furi_hal_cdc_set_callbacks,void,"uint8_t, const CdcCallbacks*, void*"
Function,-,furi_hal_clock_deinit_early,void,
Function,-,furi_hal_clock_init,void,
Function,-,furi_hal_clock_init_early,void,
Expand Down
6 changes: 3 additions & 3 deletions targets/f7/furi_hal/furi_hal_usb_cdc.c
Original file line number Diff line number Diff line change
Expand Up @@ -396,7 +396,7 @@ static usbd_respond cdc_control(usbd_device* dev, usbd_ctlreq* req, usbd_rqc_cal
static usbd_device* usb_dev;
static volatile FuriHalUsbInterface* cdc_if_cur = NULL;
static volatile bool connected = false;
static volatile CdcCallbacks* callbacks[IF_NUM_MAX] = {NULL};
static volatile const CdcCallbacks* callbacks[IF_NUM_MAX] = {};
static void* cb_ctx[IF_NUM_MAX];

FuriHalUsbInterface usb_cdc_single = {
Expand Down Expand Up @@ -472,7 +472,7 @@ static void cdc_deinit(usbd_device* dev) {
cdc_if_cur = NULL;
}

void furi_hal_cdc_set_callbacks(uint8_t if_num, CdcCallbacks* cb, void* context) {
void furi_hal_cdc_set_callbacks(uint8_t if_num, const CdcCallbacks* cb, void* context) {
furi_check(if_num < IF_NUM_MAX);

if(callbacks[if_num] != NULL) {
Expand Down Expand Up @@ -504,7 +504,7 @@ uint8_t furi_hal_cdc_get_ctrl_line_state(uint8_t if_num) {
return cdc_ctrl_line_state[if_num];
}

void furi_hal_cdc_send(uint8_t if_num, uint8_t* buf, uint16_t len) {
void furi_hal_cdc_send(uint8_t if_num, const uint8_t* buf, uint16_t len) {
if(if_num == 0) {
usbd_ep_write(usb_dev, CDC0_TXD_EP, buf, len);
} else if(if_num == 1) {
Expand Down
4 changes: 2 additions & 2 deletions targets/f7/furi_hal/furi_hal_usb_cdc.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,13 @@ typedef struct {
void (*config_callback)(void* context, struct usb_cdc_line_coding* config);
} CdcCallbacks;

void furi_hal_cdc_set_callbacks(uint8_t if_num, CdcCallbacks* cb, void* context);
void furi_hal_cdc_set_callbacks(uint8_t if_num, const CdcCallbacks* cb, void* context);

struct usb_cdc_line_coding* furi_hal_cdc_get_port_settings(uint8_t if_num);

uint8_t furi_hal_cdc_get_ctrl_line_state(uint8_t if_num);

void furi_hal_cdc_send(uint8_t if_num, uint8_t* buf, uint16_t len);
void furi_hal_cdc_send(uint8_t if_num, const uint8_t* buf, uint16_t len);

int32_t furi_hal_cdc_receive(uint8_t if_num, uint8_t* buf, uint16_t max_len);

Expand Down