Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/dev' into better-pet
Browse files Browse the repository at this point in the history
  • Loading branch information
vollukas committed May 14, 2024
2 parents 286adc2 + c009c90 commit c537bb2
Show file tree
Hide file tree
Showing 128 changed files with 227 additions and 42 deletions.
2 changes: 1 addition & 1 deletion .github/workflow_data/devbuild.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
"content": None,
"embeds": [
{
"title": "New Devbuild!",
"title": f"New Devbuild: `{os.environ['VERSION_TAG']}`!",
"description": "",
"url": "",
"color": 16751147,
Expand Down
2 changes: 1 addition & 1 deletion .github/workflow_data/webhook.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
webhook = "RELEASE_WEBHOOK"
color = 9471191
version_tag = event['release']['tag_name']
title = f"New Release: `{version_tag}`"
title = f"New Release: `{version_tag}`!"
desc += f"> 💻 [**Web Installer**](https://momentum-fw.dev/update)\n\n"
desc += f"> 🐬 [**Changelog & Download**](https://github.com/Next-Flip/Momentum-Firmware/releases/tag/{version_tag})\n\n"
desc += f"> 🛞 [**Project Page**](https://github.com/Next-Flip/Momentum-Firmware)"
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ jobs:
- name: "Copy build output"
env:
INDEXER_URL: ${{ secrets.INDEXER_URL }}
if: ${{ env.INDEXER_URL != '' && github.event_name == 'push' && github.ref_name == 'dev' && !contains(github.event.head_commit.message, '--nobuild') }}
if: ${{ env.INDEXER_URL != '' && github.event_name == 'push' && ((github.ref_name == 'dev' && !contains(github.event.head_commit.message, '--nobuild')) || startsWith(github.ref, 'refs/tags/')) }}
run: |
set -e
rm -rf artifacts || true
Expand All @@ -89,11 +89,13 @@ jobs:
ARTIFACT_TAG=flipper-z-"$(basename "$(realpath .)")"
7z a ../../../artifacts/${ARTIFACT_TAG}.zip .
echo "ARTIFACT_TAG=$ARTIFACT_TAG" >> $GITHUB_ENV
VERSION_TAG="$(basename "$(realpath .)" | cut -d- -f3-)"
echo "VERSION_TAG=$VERSION_TAG" >> $GITHUB_ENV
- name: "Upload artifacts to update server"
env:
INDEXER_URL: ${{ secrets.INDEXER_URL }}
if: ${{ env.INDEXER_URL != '' && github.event_name == 'push' && github.ref_name == 'dev' && !contains(github.event.head_commit.message, '--nobuild') }}
if: ${{ env.INDEXER_URL != '' && github.event_name == 'push' && ((github.ref_name == 'dev' && !contains(github.event.head_commit.message, '--nobuild')) || startsWith(github.ref, 'refs/tags/')) }}
run: |
FILES=$(for ARTIFACT in $(find artifacts -maxdepth 1 -not -type d); do echo "-F files=@${ARTIFACT}"; done)
curl --fail -L -H "Token: ${{ secrets.INDEXER_TOKEN }}" \
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ name: "Lint"
on:
push:
branches:
- dev
- "**"
- "!release"
tags:
- "*"
pull_request:
Expand Down
5 changes: 3 additions & 2 deletions .vscode/example/clangd/extensions.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,13 @@
"amiralizadeh9480.cpp-helper",
"marus25.cortex-debug",
"zxh404.vscode-proto3",
"augustocdias.tasks-shell-input"
"augustocdias.tasks-shell-input",
"rioj7.command-variable"
],
// List of extensions recommended by VS Code that should not be recommended for users of this workspace.
"unwantedRecommendations": [
"twxs.cmake",
"ms-vscode.cpptools",
"ms-vscode.cmake-tools"
]
}
}
6 changes: 3 additions & 3 deletions .vscode/example/cpptools/c_cpp_properties.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,23 @@
"configurations": [
{
"name": "Win32",
"compilerPath": "${workspaceFolder}/toolchain/x86_64-windows/bin/arm-none-eabi-gcc.exe",
"compilerPath": "${workspaceFolder}/toolchain/current/bin/arm-none-eabi-gcc.exe",
"intelliSenseMode": "gcc-arm",
"compileCommands": "${workspaceFolder}/build/latest/compile_commands.json",
"cStandard": "gnu23",
"cppStandard": "c++20"
},
{
"name": "Linux",
"compilerPath": "${workspaceFolder}/toolchain/x86_64-linux/bin/arm-none-eabi-gcc",
"compilerPath": "${workspaceFolder}/toolchain/current/bin/arm-none-eabi-gcc",
"intelliSenseMode": "gcc-arm",
"compileCommands": "${workspaceFolder}/build/latest/compile_commands.json",
"cStandard": "gnu23",
"cppStandard": "c++20"
},
{
"name": "Mac",
"compilerPath": "${workspaceFolder}/toolchain/x86_64-darwin/bin/arm-none-eabi-gcc",
"compilerPath": "${workspaceFolder}/toolchain/current/bin/arm-none-eabi-gcc",
"intelliSenseMode": "gcc-arm",
"compileCommands": "${workspaceFolder}/build/latest/compile_commands.json",
"cStandard": "gnu23",
Expand Down
2 changes: 1 addition & 1 deletion applications/external
Submodule external updated 126 files
12 changes: 10 additions & 2 deletions applications/main/subghz/subghz_history.c
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@ bool subghz_history_add_to_history(
SubGhzProtocolDecoderBase* decoder_base = context;
uint32_t hash_data = subghz_protocol_decoder_base_get_hash_data_long(decoder_base);
if((instance->code_last_hash_data == hash_data) &&
((furi_get_tick() - instance->last_update_timestamp) < 500)) {
((furi_get_tick() - instance->last_update_timestamp) < 600)) {
instance->last_update_timestamp = furi_get_tick();
return false;
}
Expand All @@ -265,7 +265,6 @@ bool subghz_history_add_to_history(
instance->code_last_hash_data = hash_data;
instance->last_update_timestamp = furi_get_tick();

FuriString* text = furi_string_alloc();
SubGhzHistoryItem* item = SubGhzHistoryItemArray_push_raw(instance->history->data);
item->preset = malloc(sizeof(SubGhzRadioPreset));
item->type = decoder_base->protocol->type;
Expand All @@ -285,6 +284,15 @@ bool subghz_history_add_to_history(
item->flipper_string = flipper_format_string_alloc();
subghz_protocol_decoder_base_serialize(decoder_base, item->flipper_string, preset);

if(decoder_base->protocol && decoder_base->protocol->decoder &&
decoder_base->protocol->decoder->get_string_brief) {
decoder_base->protocol->decoder->get_string_brief(decoder_base, item->item_str);
instance->last_index_write++;
return true;
}

FuriString* text = furi_string_alloc();

do {
if(!flipper_format_rewind(item->flipper_string)) {
FURI_LOG_E(TAG, "Rewind error");
Expand Down
28 changes: 18 additions & 10 deletions applications/services/desktop/desktop.c
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,11 @@ static void desktop_clock_update(Desktop* desktop) {
furi_hal_rtc_get_datetime(&curr_dt);
bool time_format_12 = locale_get_time_format() == LocaleTimeFormat12h;

if(desktop->time_hour != curr_dt.hour || desktop->time_minute != curr_dt.minute ||
desktop->time_format_12 != time_format_12) {
desktop->time_format_12 = time_format_12;
desktop->time_hour = curr_dt.hour;
desktop->time_minute = curr_dt.minute;
if(desktop->clock.hour != curr_dt.hour || desktop->clock.minute != curr_dt.minute ||
desktop->clock.format_12 != time_format_12) {
desktop->clock.format_12 = time_format_12;
desktop->clock.hour = curr_dt.hour;
desktop->clock.minute = curr_dt.minute;
view_port_update(desktop->clock_viewport);
}
}
Expand All @@ -87,8 +87,8 @@ static void desktop_clock_draw_callback(Canvas* canvas, void* context) {

canvas_set_font(canvas, FontPrimary);

uint8_t hour = desktop->time_hour;
if(desktop->time_format_12) {
uint8_t hour = desktop->clock.hour;
if(desktop->clock.format_12) {
if(hour > 12) {
hour -= 12;
}
Expand All @@ -98,11 +98,11 @@ static void desktop_clock_draw_callback(Canvas* canvas, void* context) {
}

char buffer[20];
snprintf(buffer, sizeof(buffer), "%02u:%02u", hour, desktop->time_minute);
snprintf(buffer, sizeof(buffer), "%02u:%02u", hour, desktop->clock.minute);

view_port_set_width(
desktop->clock_viewport,
canvas_string_width(canvas, buffer) - 1 + (desktop->time_minute % 10 == 1));
canvas_string_width(canvas, buffer) - 1 + (desktop->clock.minute % 10 == 1));

canvas_draw_str_aligned(canvas, 0, 8, AlignLeft, AlignBottom, buffer);
}
Expand Down Expand Up @@ -131,7 +131,7 @@ static bool desktop_custom_event_callback(void* context, uint32_t event) {
desktop_auto_lock_arm(desktop);
return true;
case DesktopGlobalAutoLock:
if(!loader_is_locked(desktop->loader)) {
if(!loader_is_locked(desktop->loader) && !desktop->locked) {
desktop_lock(desktop, desktop->settings.auto_lock_with_pin);
}
return true;
Expand Down Expand Up @@ -215,6 +215,8 @@ static void desktop_clock_timer_callback(void* context) {
}

void desktop_lock(Desktop* desktop, bool pin_lock) {
furi_assert(!desktop->locked);

pin_lock = pin_lock && desktop_pin_is_valid(&desktop->settings.pin_code);
if(!furi_hal_rtc_is_flag_set(FuriHalRtcFlagLock)) {
furi_hal_rtc_set_pin_fails(0);
Expand All @@ -238,9 +240,13 @@ void desktop_lock(Desktop* desktop, bool pin_lock) {

DesktopStatus status = {.locked = true};
furi_pubsub_publish(desktop->status_pubsub, &status);

desktop->locked = true;
}

void desktop_unlock(Desktop* desktop) {
furi_assert(desktop->locked);

view_port_enabled_set(desktop->lock_icon_viewport, false);
Gui* gui = furi_record_open(RECORD_GUI);
gui_set_lockdown(gui, false);
Expand All @@ -263,6 +269,8 @@ void desktop_unlock(Desktop* desktop) {

DesktopStatus status = {.locked = false};
furi_pubsub_publish(desktop->status_pubsub, &status);

desktop->locked = false;
}

void desktop_set_stealth_mode_state(Desktop* desktop, bool enabled) {
Expand Down
11 changes: 8 additions & 3 deletions applications/services/desktop/desktop_i.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,12 @@ typedef enum {
DesktopViewIdTotal,
} DesktopViewId;

typedef struct {
uint8_t hour;
uint8_t minute;
bool format_12; // 1 - 12 hour, 0 - 24H
} DesktopClock;

struct Desktop {
// Scene
FuriThread* scene_thread;
Expand Down Expand Up @@ -75,11 +81,10 @@ struct Desktop {

FuriPubSub* status_pubsub;

uint8_t time_hour;
uint8_t time_minute;
bool time_format_12 : 1; // 1 - 12 hour, 0 - 24H
DesktopClock clock;

bool in_transition : 1;
bool locked : 1;

FuriSemaphore* animation_semaphore;

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 14 additions & 0 deletions assets/dolphin/external/L1_Akira_128x64/meta.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
Filetype: Flipper Animation
Version: 1

Width: 128
Height: 64
Passive frames: 15
Active frames: 21
Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
Active cycles: 1
Frame rate: 2
Duration: 360
Active cooldown: 7

Bubble slots: 0
7 changes: 7 additions & 0 deletions assets/dolphin/external/manifest.txt
Original file line number Diff line number Diff line change
Expand Up @@ -203,3 +203,10 @@ Max butthurt: 14
Min level: 11
Max level: 30
Weight: 6

Name: L1_Akira_128x64
Min butthurt: 0
Max butthurt: 14
Min level: 4
Max level: 30
Weight: 5
Binary file removed assets/icons/Dolphin/DolphinWait_61x59.png
Diff not rendered.
Diff not rendered.
2 changes: 1 addition & 1 deletion lib/ble_profile/extra_profiles/hid_profile.c
Original file line number Diff line number Diff line change
Expand Up @@ -381,7 +381,7 @@ static GapConfig template_config = {
.conn_param =
{
.conn_int_min = 0x18, // AN5289: 4.7, we need at least 25ms + advertisement, which is 30 ms
.conn_int_max = 0x18, // 30 ms
.conn_int_max = 0x24, // 45 ms
.slave_latency = 0,
.supervisor_timeout = 0,
},
Expand Down
5 changes: 5 additions & 0 deletions lib/flipper_application/elf/elf_file.c
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,7 @@ __attribute__((unused)) static const char* elf_reloc_type_to_str(int symt) {
STRCASE(R_ARM_NONE)
STRCASE(R_ARM_TARGET1)
STRCASE(R_ARM_ABS32)
STRCASE(R_ARM_REL32)
STRCASE(R_ARM_THM_PC22)
STRCASE(R_ARM_THM_JUMP24)
default:
Expand Down Expand Up @@ -329,6 +330,10 @@ static bool elf_relocate_symbol(ELFFile* elf, Elf32_Addr relAddr, int type, Elf3
*((uint32_t*)relAddr) += symAddr;
FURI_LOG_D(TAG, " R_ARM_ABS32 relocated is 0x%08X", (unsigned int)*((uint32_t*)relAddr));
break;
case R_ARM_REL32:
*((uint32_t*)relAddr) += symAddr - relAddr;
FURI_LOG_D(TAG, " R_ARM_REL32 relocated is 0x%08X", (unsigned int)*((uint32_t*)relAddr));
break;
case R_ARM_THM_PC22:
case R_ARM_CALL:
case R_ARM_THM_JUMP24:
Expand Down
1 change: 1 addition & 0 deletions lib/subghz/protocols/acurite_592txr.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ const SubGhzProtocolDecoder ws_protocol_acurite_592txr_decoder = {
.serialize = ws_protocol_decoder_acurite_592txr_serialize,
.deserialize = ws_protocol_decoder_acurite_592txr_deserialize,
.get_string = ws_protocol_decoder_acurite_592txr_get_string,
.get_string_brief = NULL,
};

const SubGhzProtocolEncoder ws_protocol_acurite_592txr_encoder = {
Expand Down
1 change: 1 addition & 0 deletions lib/subghz/protocols/acurite_606tx.c
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ const SubGhzProtocolDecoder ws_protocol_acurite_606tx_decoder = {
.serialize = ws_protocol_decoder_acurite_606tx_serialize,
.deserialize = ws_protocol_decoder_acurite_606tx_deserialize,
.get_string = ws_protocol_decoder_acurite_606tx_get_string,
.get_string_brief = NULL,
};

const SubGhzProtocolEncoder ws_protocol_acurite_606tx_encoder = {
Expand Down
1 change: 1 addition & 0 deletions lib/subghz/protocols/acurite_609txc.c
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ const SubGhzProtocolDecoder ws_protocol_acurite_609txc_decoder = {
.serialize = ws_protocol_decoder_acurite_609txc_serialize,
.deserialize = ws_protocol_decoder_acurite_609txc_deserialize,
.get_string = ws_protocol_decoder_acurite_609txc_get_string,
.get_string_brief = NULL,
};

const SubGhzProtocolEncoder ws_protocol_acurite_609txc_encoder = {
Expand Down
1 change: 1 addition & 0 deletions lib/subghz/protocols/acurite_986.c
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ const SubGhzProtocolDecoder ws_protocol_acurite_986_decoder = {
.serialize = ws_protocol_decoder_acurite_986_serialize,
.deserialize = ws_protocol_decoder_acurite_986_deserialize,
.get_string = ws_protocol_decoder_acurite_986_get_string,
.get_string_brief = NULL,
};

const SubGhzProtocolEncoder ws_protocol_acurite_986_encoder = {
Expand Down
1 change: 1 addition & 0 deletions lib/subghz/protocols/alutech_at_4n.c
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ const SubGhzProtocolDecoder subghz_protocol_alutech_at_4n_decoder = {
.serialize = subghz_protocol_decoder_alutech_at_4n_serialize,
.deserialize = subghz_protocol_decoder_alutech_at_4n_deserialize,
.get_string = subghz_protocol_decoder_alutech_at_4n_get_string,
.get_string_brief = NULL,
};

const SubGhzProtocolEncoder subghz_protocol_alutech_at_4n_encoder = {
Expand Down
1 change: 1 addition & 0 deletions lib/subghz/protocols/ambient_weather.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ const SubGhzProtocolDecoder ws_protocol_ambient_weather_decoder = {
.serialize = ws_protocol_decoder_ambient_weather_serialize,
.deserialize = ws_protocol_decoder_ambient_weather_deserialize,
.get_string = ws_protocol_decoder_ambient_weather_get_string,
.get_string_brief = NULL,
};

const SubGhzProtocolEncoder ws_protocol_ambient_weather_encoder = {
Expand Down
1 change: 1 addition & 0 deletions lib/subghz/protocols/ansonic.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ const SubGhzProtocolDecoder subghz_protocol_ansonic_decoder = {
.serialize = subghz_protocol_decoder_ansonic_serialize,
.deserialize = subghz_protocol_decoder_ansonic_deserialize,
.get_string = subghz_protocol_decoder_ansonic_get_string,
.get_string_brief = NULL,
};

const SubGhzProtocolEncoder subghz_protocol_ansonic_encoder = {
Expand Down
1 change: 1 addition & 0 deletions lib/subghz/protocols/auriol_ahfl.c
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ const SubGhzProtocolDecoder ws_protocol_auriol_ahfl_decoder = {
.serialize = ws_protocol_decoder_auriol_ahfl_serialize,
.deserialize = ws_protocol_decoder_auriol_ahfl_deserialize,
.get_string = ws_protocol_decoder_auriol_ahfl_get_string,
.get_string_brief = NULL,
};

const SubGhzProtocolEncoder ws_protocol_auriol_ahfl_encoder = {
Expand Down
1 change: 1 addition & 0 deletions lib/subghz/protocols/auriol_hg0601a.c
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ const SubGhzProtocolDecoder ws_protocol_auriol_th_decoder = {
.serialize = ws_protocol_decoder_auriol_th_serialize,
.deserialize = ws_protocol_decoder_auriol_th_deserialize,
.get_string = ws_protocol_decoder_auriol_th_get_string,
.get_string_brief = NULL,
};

const SubGhzProtocolEncoder ws_protocol_auriol_th_encoder = {
Expand Down
1 change: 1 addition & 0 deletions lib/subghz/protocols/bett.c
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ const SubGhzProtocolDecoder subghz_protocol_bett_decoder = {
.serialize = subghz_protocol_decoder_bett_serialize,
.deserialize = subghz_protocol_decoder_bett_deserialize,
.get_string = subghz_protocol_decoder_bett_get_string,
.get_string_brief = NULL,
};

const SubGhzProtocolEncoder subghz_protocol_bett_encoder = {
Expand Down
1 change: 1 addition & 0 deletions lib/subghz/protocols/bin_raw.c
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ const SubGhzProtocolDecoder subghz_protocol_bin_raw_decoder = {
.serialize = subghz_protocol_decoder_bin_raw_serialize,
.deserialize = subghz_protocol_decoder_bin_raw_deserialize,
.get_string = subghz_protocol_decoder_bin_raw_get_string,
.get_string_brief = NULL,
};

const SubGhzProtocolEncoder subghz_protocol_bin_raw_encoder = {
Expand Down
1 change: 1 addition & 0 deletions lib/subghz/protocols/came.c
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ const SubGhzProtocolDecoder subghz_protocol_came_decoder = {
.serialize = subghz_protocol_decoder_came_serialize,
.deserialize = subghz_protocol_decoder_came_deserialize,
.get_string = subghz_protocol_decoder_came_get_string,
.get_string_brief = NULL,
};

const SubGhzProtocolEncoder subghz_protocol_came_encoder = {
Expand Down
Loading

0 comments on commit c537bb2

Please sign in to comment.