CAME Atomo - Add manually support

This commit is contained in:
MX
2023-05-17 13:15:59 +03:00
parent 7fc8f6b3b8
commit 26a113292b
7 changed files with 114 additions and 0 deletions

View File

@@ -36,6 +36,8 @@ typedef enum {
SubmenuIndexCAME24bit868,
SubmenuIndexCAMETwee,
SubmenuIndexCAMESpace,
SubmenuIndexCameAtomo433,
SubmenuIndexCameAtomo868,
SubmenuIndexPricenton433,
SubmenuIndexPricenton315,
SubmenuIndexBETT_433,

View File

@@ -266,6 +266,34 @@ bool subghz_txrx_gen_alutech_at_4n_protocol(
return res;
}
bool subghz_txrx_gen_came_atomo_protocol(
void* context,
const char* preset_name,
uint32_t frequency,
uint32_t serial,
uint16_t cnt) {
SubGhzTxRx* txrx = context;
bool res = false;
txrx->transmitter =
subghz_transmitter_alloc_init(txrx->environment, SUBGHZ_PROTOCOL_CAME_ATOMO_NAME);
subghz_txrx_set_preset(txrx, preset_name, frequency, NULL, 0);
if(txrx->transmitter && subghz_protocol_came_atomo_create_data(
subghz_transmitter_get_protocol_instance(txrx->transmitter),
txrx->fff_data,
serial,
cnt,
txrx->preset)) {
res = true;
}
subghz_transmitter_free(txrx->transmitter);
return res;
}
bool subghz_txrx_gen_somfy_telis_protocol(
void* context,
const char* preset_name,

View File

@@ -108,6 +108,13 @@ bool subghz_txrx_gen_somfy_telis_protocol(
uint8_t btn,
uint16_t cnt);
bool subghz_txrx_gen_came_atomo_protocol(
void* context,
const char* preset_name,
uint32_t frequency,
uint32_t serial,
uint16_t cnt);
/**
* Generate data SecPlus v2 protocol
*

View File

@@ -199,6 +199,18 @@ void subghz_scene_set_type_on_enter(void* context) {
SubmenuIndexCAMETwee,
subghz_scene_set_type_submenu_callback,
subghz);
submenu_add_item(
subghz->submenu,
"CAME Atomo 433MHz",
SubmenuIndexCameAtomo433,
subghz_scene_set_type_submenu_callback,
subghz);
submenu_add_item(
subghz->submenu,
"CAME Atomo 868MHz",
SubmenuIndexCameAtomo868,
subghz_scene_set_type_submenu_callback,
subghz);
submenu_add_item(
subghz->submenu,
"KL: CAME Space 433MHz",
@@ -534,6 +546,14 @@ bool subghz_scene_set_type_on_event(void* context, SceneManagerEvent event) {
scene_manager_next_scene(subghz->scene_manager, SubGhzSceneShowError);
}
break;
case SubmenuIndexCameAtomo433:
generated_protocol = subghz_txrx_gen_came_atomo_protocol(
subghz->txrx, "AM650", 433920000, (key & 0x0FFFFFFF) | 0x10000000, 0x0003);
break;
case SubmenuIndexCameAtomo868:
generated_protocol = subghz_txrx_gen_came_atomo_protocol(
subghz->txrx, "AM650", 868350000, (key & 0x0FFFFFFF) | 0x10000000, 0x0003);
break;
case SubmenuIndexBFTMitto:
generated_protocol = subghz_txrx_gen_keeloq_bft_protocol(
subghz->txrx,