Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/flipperzero-firmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSkorpionm <85568270+Skorpionm@users.noreply.github.com>2021-08-16 22:56:23 +0300
committerGitHub <noreply@github.com>2021-08-16 22:56:23 +0300
commita024e470b7878c3ff6c129e3b6cf4eac609cb1bf (patch)
tree31d97ffd9ed07fc76abd113088666ae8144ebadc /applications/subghz/views
parenta548525d757e1e06729ffbcb405c5e5fa0de914f (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.c7
-rw-r--r--applications/subghz/views/subghz_static.c2
-rw-r--r--applications/subghz/views/subghz_test_packet.c2
-rw-r--r--applications/subghz/views/subghz_transmitter.c22
-rw-r--r--applications/subghz/views/subghz_transmitter.h3
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;