SubGhz: add frequencies and add DoorHan 315.00 (#1028)
* SubGhz: add frequencies and add DoorHan 315.00 * SubGhz: fix syntax Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
		@@ -17,7 +17,8 @@ enum SubmenuIndex {
 | 
			
		||||
    SubmenuIndexNeroSketch,
 | 
			
		||||
    SubmenuIndexNeroRadio,
 | 
			
		||||
    SubmenuIndexGateTX,
 | 
			
		||||
    SubmenuIndexDoorHan,
 | 
			
		||||
    SubmenuIndexDoorHan_315_00,
 | 
			
		||||
    SubmenuIndexDoorHan_433_92,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
bool subghz_scene_set_type_submenu_gen_data_protocol(
 | 
			
		||||
@@ -122,10 +123,16 @@ void subghz_scene_set_type_on_enter(void* context) {
 | 
			
		||||
        SubmenuIndexGateTX,
 | 
			
		||||
        subghz_scene_set_type_submenu_callback,
 | 
			
		||||
        subghz);
 | 
			
		||||
    submenu_add_item(
 | 
			
		||||
        subghz->submenu,
 | 
			
		||||
        "DoorHan_315",
 | 
			
		||||
        SubmenuIndexDoorHan_315_00,
 | 
			
		||||
        subghz_scene_set_type_submenu_callback,
 | 
			
		||||
        subghz);
 | 
			
		||||
    submenu_add_item(
 | 
			
		||||
        subghz->submenu,
 | 
			
		||||
        "DoorHan_433",
 | 
			
		||||
        SubmenuIndexDoorHan,
 | 
			
		||||
        SubmenuIndexDoorHan_433_92,
 | 
			
		||||
        subghz_scene_set_type_submenu_callback,
 | 
			
		||||
        subghz);
 | 
			
		||||
 | 
			
		||||
@@ -195,7 +202,7 @@ bool subghz_scene_set_type_on_event(void* context, SceneManagerEvent event) {
 | 
			
		||||
                generated_protocol = true;
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
        case SubmenuIndexDoorHan:
 | 
			
		||||
        case SubmenuIndexDoorHan_433_92:
 | 
			
		||||
            subghz->txrx->transmitter =
 | 
			
		||||
                subghz_transmitter_alloc_init(subghz->txrx->environment, "KeeLoq");
 | 
			
		||||
            if(subghz->txrx->transmitter) {
 | 
			
		||||
@@ -219,6 +226,30 @@ bool subghz_scene_set_type_on_event(void* context, SceneManagerEvent event) {
 | 
			
		||||
                scene_manager_next_scene(subghz->scene_manager, SubGhzSceneShowError);
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
        case SubmenuIndexDoorHan_315_00:
 | 
			
		||||
            subghz->txrx->transmitter =
 | 
			
		||||
                subghz_transmitter_alloc_init(subghz->txrx->environment, "KeeLoq");
 | 
			
		||||
            if(subghz->txrx->transmitter) {
 | 
			
		||||
                subghz_protocol_keeloq_create_data(
 | 
			
		||||
                    subghz->txrx->transmitter->protocol_instance,
 | 
			
		||||
                    subghz->txrx->fff_data,
 | 
			
		||||
                    key & 0x0FFFFFFF,
 | 
			
		||||
                    0x2,
 | 
			
		||||
                    0x0003,
 | 
			
		||||
                    "DoorHan",
 | 
			
		||||
                    subghz_frequencies[subghz_frequencies_315_00],
 | 
			
		||||
                    FuriHalSubGhzPresetOok650Async);
 | 
			
		||||
                generated_protocol = true;
 | 
			
		||||
            } else {
 | 
			
		||||
                generated_protocol = false;
 | 
			
		||||
            }
 | 
			
		||||
            subghz_transmitter_free(subghz->txrx->transmitter);
 | 
			
		||||
            if(!generated_protocol) {
 | 
			
		||||
                string_set(
 | 
			
		||||
                    subghz->error_str, "Function requires\nan SD card with\nfresh databases.");
 | 
			
		||||
                scene_manager_next_scene(subghz->scene_manager, SubGhzSceneShowError);
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
        default:
 | 
			
		||||
            return false;
 | 
			
		||||
            break;
 | 
			
		||||
 
 | 
			
		||||
@@ -4,33 +4,57 @@
 | 
			
		||||
#include <lib/toolbox/path.h>
 | 
			
		||||
 | 
			
		||||
const char* const subghz_frequencies_text[] = {
 | 
			
		||||
 | 
			
		||||
    "300.00",
 | 
			
		||||
    "303.88",
 | 
			
		||||
    "304.25",
 | 
			
		||||
    "315.00",
 | 
			
		||||
    "318.00",
 | 
			
		||||
 | 
			
		||||
    "390.00",
 | 
			
		||||
    "418.00",
 | 
			
		||||
    "433.08",
 | 
			
		||||
    "433.42",
 | 
			
		||||
    "433.92",
 | 
			
		||||
    "434.42",
 | 
			
		||||
    "434.78",
 | 
			
		||||
    "438.90",
 | 
			
		||||
 | 
			
		||||
    "868.35",
 | 
			
		||||
    "915.00",
 | 
			
		||||
    "925.00",
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const uint32_t subghz_frequencies[] = {
 | 
			
		||||
 | 
			
		||||
    /* 300 - 348 */
 | 
			
		||||
    300000000,
 | 
			
		||||
    303875000,
 | 
			
		||||
    304250000,
 | 
			
		||||
    315000000,
 | 
			
		||||
    318000000,
 | 
			
		||||
 | 
			
		||||
    /* 387 - 464 */
 | 
			
		||||
 | 
			
		||||
    390000000,
 | 
			
		||||
    418000000,
 | 
			
		||||
    433075000, /* LPD433 first */
 | 
			
		||||
    433420000,
 | 
			
		||||
    433920000, /* LPD433 mid */
 | 
			
		||||
    434420000,
 | 
			
		||||
    /* 779 - 928 */
 | 
			
		||||
    434775000, /* LPD433 last channels */
 | 
			
		||||
    438900000,
 | 
			
		||||
 | 
			
		||||
    /* 779 - 928 */
 | 
			
		||||
    868350000,
 | 
			
		||||
    915000000,
 | 
			
		||||
    925000000,
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const uint32_t subghz_hopper_frequencies[] = {
 | 
			
		||||
    315000000,
 | 
			
		||||
    318000000,
 | 
			
		||||
    390000000,
 | 
			
		||||
    433920000,
 | 
			
		||||
    868350000,
 | 
			
		||||
};
 | 
			
		||||
@@ -38,7 +62,8 @@ const uint32_t subghz_hopper_frequencies[] = {
 | 
			
		||||
const uint32_t subghz_frequencies_count = sizeof(subghz_frequencies) / sizeof(uint32_t);
 | 
			
		||||
const uint32_t subghz_hopper_frequencies_count =
 | 
			
		||||
    sizeof(subghz_hopper_frequencies) / sizeof(uint32_t);
 | 
			
		||||
const uint32_t subghz_frequencies_433_92 = 3;
 | 
			
		||||
const uint32_t subghz_frequencies_433_92 = 9;
 | 
			
		||||
const uint32_t subghz_frequencies_315_00 = 3;
 | 
			
		||||
 | 
			
		||||
bool subghz_custom_event_callback(void* context, uint32_t event) {
 | 
			
		||||
    furi_assert(context);
 | 
			
		||||
 
 | 
			
		||||
@@ -41,6 +41,7 @@ extern const uint32_t subghz_hopper_frequencies[];
 | 
			
		||||
extern const uint32_t subghz_frequencies_count;
 | 
			
		||||
extern const uint32_t subghz_hopper_frequencies_count;
 | 
			
		||||
extern const uint32_t subghz_frequencies_433_92;
 | 
			
		||||
extern const uint32_t subghz_frequencies_315_00;
 | 
			
		||||
 | 
			
		||||
/** SubGhzNotification state */
 | 
			
		||||
typedef enum {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user