diff options
author | Skorpionm <85568270+Skorpionm@users.noreply.github.com> | 2021-08-16 22:56:23 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-16 22:56:23 +0300 |
commit | a024e470b7878c3ff6c129e3b6cf4eac609cb1bf (patch) | |
tree | 31d97ffd9ed07fc76abd113088666ae8144ebadc /applications/subghz/views | |
parent | a548525d757e1e06729ffbcb405c5e5fa0de914f (diff) |
SubGhz: read and save static remotes. Create new static and dynamic remotes. (#646)
* SubGhz: the functions of saving loading KeeLog have been modified, saving KeeLog is prohibited
* SubGhz: Fix displaying Nice FlorS in the Raed scene
* SubGhz: Fix displaying Faac SLH in the Raed scene
* SubGhz: Fix displaying iDo in the Raed scene
* SubGhz: Fix displaying Star Line in the Raed scene
* SubGhz: Fix displaying Nice Flo in the Raed scene, added save and load functions. (testing needed, no remote control)
* SubGhz: subghz_beginadded common encoder upload signal
* SubGhz: add Came encoder
* SubGhz: modified pricenton encoder, fix view transmitter hide the "Send" button if there is no encoder
* SubGhz: add nice flo encoder, need testing no remote control
* SubGhz: add gate_tx encoder
* SubGhz: add nero_sketch encoder
* SubGhz: add keelog encoder
* SubGhz: add long upload upload while the button is pressed while releasing the transfer is over, with a check for sticking (maximum 200 upload repetitions)
* SubGhz: fix max upload
* SubGhz: Fix structure subghz add encoder
* SubGhz: add generating and sending a dynamic keelog key, refactoring the code
* SubGhz: add notifications
* SubGhz: add creating a new remote control (Pricenton, Nice Flo 12bit, Nice Flo 24bit, CAME 12bit, CAME 24bit, Gate TX, DoorHan)
* SubGhz: Fix load file, fix scene start
* Subghz: Fix show key
* SubGhz: Fix subghz_cli
* SubGhz: Fix furi-hal-subghz
* Format sources
* SubGhz: standard notification scheme, fix broken assert in DMA.
* SubGhz: move level alignment logic to furi-hal-subghz, fix spelling, cleanup.
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
Diffstat (limited to 'applications/subghz/views')
-rw-r--r-- | applications/subghz/views/subghz_receiver.c | 7 | ||||
-rw-r--r-- | applications/subghz/views/subghz_static.c | 2 | ||||
-rw-r--r-- | applications/subghz/views/subghz_test_packet.c | 2 | ||||
-rw-r--r-- | applications/subghz/views/subghz_transmitter.c | 22 | ||||
-rw-r--r-- | applications/subghz/views/subghz_transmitter.h | 3 |
5 files changed, 26 insertions, 10 deletions
diff --git a/applications/subghz/views/subghz_receiver.c b/applications/subghz/views/subghz_receiver.c index 11b030d1..a4d9aef7 100644 --- a/applications/subghz/views/subghz_receiver.c +++ b/applications/subghz/views/subghz_receiver.c @@ -47,7 +47,8 @@ void subghz_receiver_draw(Canvas* canvas, SubghzReceiverModel* model) { elements_multiline_text(canvas, 0, 10, string_get_cstr(model->text)); elements_button_left(canvas, "Back"); - if(model->protocol && model->protocol->to_save_string) { + if(model->protocol && model->protocol->to_save_string && + strcmp(model->protocol->name, "KeeLoq")) { elements_button_right(canvas, "Save"); } } @@ -61,7 +62,9 @@ bool subghz_receiver_input(InputEvent* event, void* context) { bool can_be_saved = false; with_view_model( subghz_receiver->view, (SubghzReceiverModel * model) { - can_be_saved = (model->protocol && model->protocol->to_save_string); + can_be_saved = + (model->protocol && model->protocol->to_save_string && + strcmp(model->protocol->name, "KeeLoq")); return false; }); diff --git a/applications/subghz/views/subghz_static.c b/applications/subghz/views/subghz_static.c index 52bf0ae6..d8937bf3 100644 --- a/applications/subghz/views/subghz_static.c +++ b/applications/subghz/views/subghz_static.c @@ -89,7 +89,7 @@ bool subghz_static_input(InputEvent* event, void* context) { NotificationApp* notification = furi_record_open("notification"); notification_message_block(notification, &sequence_set_red_255); - subghz_encoder_princeton_reset( + subghz_encoder_princeton_set( instance->encoder, subghz_static_keys[model->button], 20); furi_hal_subghz_start_async_tx( subghz_encoder_princeton_yield, instance->encoder); diff --git a/applications/subghz/views/subghz_test_packet.c b/applications/subghz/views/subghz_test_packet.c index 44841af2..a15cc33f 100644 --- a/applications/subghz/views/subghz_test_packet.c +++ b/applications/subghz/views/subghz_test_packet.c @@ -153,7 +153,7 @@ static bool subghz_test_packet_input(InputEvent* event, void* context) { if(model->status == SubghzTestPacketModelStatusRx) { furi_hal_subghz_start_async_rx(subghz_test_packet_rx_callback, instance); } else { - subghz_encoder_princeton_reset(instance->encoder, 0x00AABBCC, 1000); + subghz_encoder_princeton_set(instance->encoder, 0x00AABBCC, 1000); furi_hal_subghz_start_async_tx(subghz_encoder_princeton_yield, instance->encoder); } diff --git a/applications/subghz/views/subghz_transmitter.c b/applications/subghz/views/subghz_transmitter.c index 703d00d8..1ba76d97 100644 --- a/applications/subghz/views/subghz_transmitter.c +++ b/applications/subghz/views/subghz_transmitter.c @@ -48,19 +48,31 @@ void subghz_transmitter_draw(Canvas* canvas, SubghzTransmitterModel* model) { canvas_set_font(canvas, FontSecondary); elements_multiline_text(canvas, 0, 10, string_get_cstr(model->text)); - elements_button_center(canvas, "Send"); + if(model->protocol && model->protocol->get_upload_protocol) { + elements_button_center(canvas, "Send"); + } } bool subghz_transmitter_input(InputEvent* event, void* context) { furi_assert(context); SubghzTransmitter* subghz_transmitter = context; - - if(event->type != InputTypeShort) return false; + bool can_be_send = false; + with_view_model( + subghz_transmitter->view, (SubghzTransmitterModel * model) { + can_be_send = (model->protocol && model->protocol->get_upload_protocol); + string_clean(model->text); + model->protocol->to_string(model->protocol, model->text); + return true; + }); + //if(event->type != InputTypeShort) return false; if(event->key == InputKeyBack) { return false; - } else if(event->key == InputKeyOk) { - subghz_transmitter->callback(SubghzTransmitterEventSend, subghz_transmitter->context); + } else if(can_be_send && event->key == InputKeyOk && event->type == InputTypePress) { + subghz_transmitter->callback(SubghzTransmitterEventSendStart, subghz_transmitter->context); + return true; + } else if(can_be_send && event->key == InputKeyOk && event->type == InputTypeRelease) { + subghz_transmitter->callback(SubghzTransmitterEventSendStop, subghz_transmitter->context); return true; } diff --git a/applications/subghz/views/subghz_transmitter.h b/applications/subghz/views/subghz_transmitter.h index ffd27373..2c1f1b72 100644 --- a/applications/subghz/views/subghz_transmitter.h +++ b/applications/subghz/views/subghz_transmitter.h @@ -4,7 +4,8 @@ #include <lib/subghz/protocols/subghz_protocol_common.h> typedef enum { - SubghzTransmitterEventSend, + SubghzTransmitterEventSendStart, + SubghzTransmitterEventSendStop, SubghzTransmitterEventBack, } SubghzTransmitterEvent; |