MX 3 лет назад
Родитель
Сommit
96913d166c
4 измененных файлов с 89 добавлено и 27 удалено
  1. 3 0
      helpers/subbrute_worker.c
  2. 3 0
      subbrute_device.c
  3. 77 25
      subbrute_protocols.c
  4. 6 2
      subbrute_protocols.h

+ 3 - 0
helpers/subbrute_worker.c

@@ -3,6 +3,7 @@
 #include <toolbox/stream/stream.h>
 #include <flipper_format.h>
 #include <flipper_format_i.h>
+#include <lib/subghz/protocols/protocol_items.h>
 
 #define TAG "SubBruteWorker"
 #define SUBBRUTE_TX_TIMEOUT 5
@@ -30,6 +31,8 @@ SubBruteWorker* subbrute_worker_alloc() {
     instance->decoder_result = NULL;
     instance->transmitter = NULL;
     instance->environment = subghz_environment_alloc();
+    subghz_environment_set_protocol_registry(
+        instance->environment, (void*)&subghz_protocol_registry);
 
     instance->transmit_mode = false;
 

+ 3 - 0
subbrute_device.c

@@ -5,6 +5,7 @@
 #include <lib/toolbox/stream/stream.h>
 #include <lib/flipper_format/flipper_format.h>
 #include <lib/flipper_format/flipper_format_i.h>
+#include <lib/subghz/protocols/protocol_items.h>
 
 #define TAG "SubBruteDevice"
 
@@ -18,6 +19,8 @@ SubBruteDevice* subbrute_device_alloc() {
     instance->decoder_result = NULL;
     instance->receiver = NULL;
     instance->environment = subghz_environment_alloc();
+    subghz_environment_set_protocol_registry(
+        instance->environment, (void*)&subghz_protocol_registry);
 
 #ifdef FURI_DEBUG
     subbrute_device_attack_set_default_values(instance, SubBruteAttackCAME12bit433);

+ 77 - 25
subbrute_protocols.c

@@ -70,32 +70,43 @@ const SubBruteProtocol subbrute_protocol_nice_12bit_868 = {
     .file = NICEFileProtocol};
 
 /**
- * Chamberlain 7bit 390MHz
+ * Chamberlain 9bit 300MHz
  */
-const SubBruteProtocol subbrute_protocol_chamberlain_7bit_390 = {
-    .frequency = 390000000,
-    .bits = 7,
+const SubBruteProtocol subbrute_protocol_chamberlain_9bit_300 = {
+    .frequency = 300000000,
+    .bits = 9,
     .te = 0,
     .repeat = 3,
-    .preset = FuriHalSubGhzPresetOok270Async,
+    .preset = FuriHalSubGhzPresetOok650Async,
     .file = ChamberlainFileProtocol};
 
 /**
- * Chamberlain 8bit 390MHz
+ * Chamberlain 9bit 315MHz
  */
-const SubBruteProtocol subbrute_protocol_chamberlain_8bit_390 = {
+const SubBruteProtocol subbrute_protocol_chamberlain_9bit_315 = {
+    .frequency = 315000000,
+    .bits = 9,
+    .te = 0,
+    .repeat = 3,
+    .preset = FuriHalSubGhzPresetOok650Async,
+    .file = ChamberlainFileProtocol};
+
+/**
+ * Chamberlain 9bit 390MHz
+ */
+const SubBruteProtocol subbrute_protocol_chamberlain_9bit_390 = {
     .frequency = 390000000,
-    .bits = 8,
+    .bits = 9,
     .te = 0,
     .repeat = 3,
     .preset = FuriHalSubGhzPresetOok650Async,
     .file = ChamberlainFileProtocol};
 
 /**
- * Chamberlain 9bit 300MHz
+ * Chamberlain 9bit 433MHz
  */
-const SubBruteProtocol subbrute_protocol_chamberlain_9bit_300 = {
-    .frequency = 300000000,
+const SubBruteProtocol subbrute_protocol_chamberlain_9bit_433 = {
+    .frequency = 433920000,
     .bits = 9,
     .te = 0,
     .repeat = 3,
@@ -103,33 +114,66 @@ const SubBruteProtocol subbrute_protocol_chamberlain_9bit_300 = {
     .file = ChamberlainFileProtocol};
 
 /**
- * Chamberlain 9bit 315MHz
+ * Chamberlain 8bit 300MHz
  */
-const SubBruteProtocol subbrute_protocol_chamberlain_9bit_315 = {
+const SubBruteProtocol subbrute_protocol_chamberlain_8bit_300 = {
+    .frequency = 300000000,
+    .bits = 8,
+    .te = 0,
+    .repeat = 3,
+    .preset = FuriHalSubGhzPresetOok650Async,
+    .file = ChamberlainFileProtocol};
+
+/**
+ * Chamberlain 8bit 315MHz
+ */
+const SubBruteProtocol subbrute_protocol_chamberlain_8bit_315 = {
     .frequency = 315000000,
-    .bits = 9,
+    .bits = 8,
     .te = 0,
     .repeat = 3,
     .preset = FuriHalSubGhzPresetOok650Async,
     .file = ChamberlainFileProtocol};
 
 /**
- * Chamberlain 9bit 390MHz
+ * Chamberlain 8bit 390MHz
  */
-const SubBruteProtocol subbrute_protocol_chamberlain_9bit_390 = {
+const SubBruteProtocol subbrute_protocol_chamberlain_8bit_390 = {
     .frequency = 390000000,
-    .bits = 9,
+    .bits = 8,
     .te = 0,
     .repeat = 3,
     .preset = FuriHalSubGhzPresetOok650Async,
     .file = ChamberlainFileProtocol};
 
 /**
- * Chamberlain 9bit 433MHz
+ * Chamberlain 7bit 300MHz
  */
-const SubBruteProtocol subbrute_protocol_chamberlain_9bit_433 = {
-    .frequency = 433920000,
-    .bits = 9,
+const SubBruteProtocol subbrute_protocol_chamberlain_7bit_300 = {
+    .frequency = 300000000,
+    .bits = 7,
+    .te = 0,
+    .repeat = 3,
+    .preset = FuriHalSubGhzPresetOok650Async,
+    .file = ChamberlainFileProtocol};
+
+/**
+ * Chamberlain 7bit 315MHz
+ */
+const SubBruteProtocol subbrute_protocol_chamberlain_7bit_315 = {
+    .frequency = 315000000,
+    .bits = 7,
+    .te = 0,
+    .repeat = 3,
+    .preset = FuriHalSubGhzPresetOok650Async,
+    .file = ChamberlainFileProtocol};
+
+/**
+ * Chamberlain 7bit 390MHz
+ */
+const SubBruteProtocol subbrute_protocol_chamberlain_7bit_390 = {
+    .frequency = 390000000,
+    .bits = 7,
     .te = 0,
     .repeat = 3,
     .preset = FuriHalSubGhzPresetOok650Async,
@@ -170,12 +214,16 @@ static const char* subbrute_protocol_names[] = {
     [SubBruteAttackCAME12bit868] = "CAME 12bit 868MHz",
     [SubBruteAttackNICE12bit433] = "NICE 12bit 433MHz",
     [SubBruteAttackNICE12bit868] = "NICE 12bit 868MHz",
-    [SubBruteAttackChamberlain7bit390] = "Chamberlain 7bit 390MHz",
-    [SubBruteAttackChamberlain8bit390] = "Chamberlain 8bit 390MHz",
     [SubBruteAttackChamberlain9bit300] = "Chamberlain 9bit 300MHz",
     [SubBruteAttackChamberlain9bit315] = "Chamberlain 9bit 315MHz",
     [SubBruteAttackChamberlain9bit390] = "Chamberlain 9bit 390MHz",
     [SubBruteAttackChamberlain9bit433] = "Chamberlain 9bit 433MHz",
+    [SubBruteAttackChamberlain8bit300] = "Chamberlain 8bit 300MHz",
+    [SubBruteAttackChamberlain8bit315] = "Chamberlain 8bit 315MHz",
+    [SubBruteAttackChamberlain8bit390] = "Chamberlain 8bit 390MHz",
+    [SubBruteAttackChamberlain7bit300] = "Chamberlain 7bit 300MHz",
+    [SubBruteAttackChamberlain7bit315] = "Chamberlain 7bit 315MHz",
+    [SubBruteAttackChamberlain7bit390] = "Chamberlain 7bit 390MHz",
     [SubBruteAttackLinear10bit300] = "Linear 10bit 300MHz",
     [SubBruteAttackLinear10bit310] = "Linear 10bit 310MHz",
     [SubBruteAttackLoadFile] = "BF existing dump",
@@ -199,12 +247,16 @@ const SubBruteProtocol* subbrute_protocol_registry[] = {
     [SubBruteAttackCAME12bit868] = &subbrute_protocol_came_12bit_868,
     [SubBruteAttackNICE12bit433] = &subbrute_protocol_nice_12bit_433,
     [SubBruteAttackNICE12bit868] = &subbrute_protocol_nice_12bit_868,
-    [SubBruteAttackChamberlain7bit390] = &subbrute_protocol_chamberlain_7bit_390,
-    [SubBruteAttackChamberlain8bit390] = &subbrute_protocol_chamberlain_8bit_390,
     [SubBruteAttackChamberlain9bit300] = &subbrute_protocol_chamberlain_9bit_300,
     [SubBruteAttackChamberlain9bit315] = &subbrute_protocol_chamberlain_9bit_315,
     [SubBruteAttackChamberlain9bit390] = &subbrute_protocol_chamberlain_9bit_390,
     [SubBruteAttackChamberlain9bit433] = &subbrute_protocol_chamberlain_9bit_433,
+    [SubBruteAttackChamberlain8bit300] = &subbrute_protocol_chamberlain_8bit_300,
+    [SubBruteAttackChamberlain8bit315] = &subbrute_protocol_chamberlain_8bit_315,
+    [SubBruteAttackChamberlain8bit390] = &subbrute_protocol_chamberlain_8bit_390,
+    [SubBruteAttackChamberlain7bit300] = &subbrute_protocol_chamberlain_7bit_300,
+    [SubBruteAttackChamberlain7bit315] = &subbrute_protocol_chamberlain_7bit_315,
+    [SubBruteAttackChamberlain7bit390] = &subbrute_protocol_chamberlain_7bit_390,
     [SubBruteAttackLinear10bit300] = &subbrute_protocol_linear_10bit_300,
     [SubBruteAttackLinear10bit310] = &subbrute_protocol_linear_10bit_310,
     [SubBruteAttackLoadFile] = &subbrute_protocol_load_file};

+ 6 - 2
subbrute_protocols.h

@@ -31,12 +31,16 @@ typedef enum {
     SubBruteAttackCAME12bit868,
     SubBruteAttackNICE12bit433,
     SubBruteAttackNICE12bit868,
-    SubBruteAttackChamberlain7bit390,
-    SubBruteAttackChamberlain8bit390,
     SubBruteAttackChamberlain9bit300,
     SubBruteAttackChamberlain9bit315,
     SubBruteAttackChamberlain9bit390,
     SubBruteAttackChamberlain9bit433,
+    SubBruteAttackChamberlain8bit300,
+    SubBruteAttackChamberlain8bit315,
+    SubBruteAttackChamberlain8bit390,
+    SubBruteAttackChamberlain7bit300,
+    SubBruteAttackChamberlain7bit315,
+    SubBruteAttackChamberlain7bit390,
     SubBruteAttackLinear10bit300,
     SubBruteAttackLinear10bit310,
     SubBruteAttackLoadFile,