subghz: add beninca arc protocol

This commit is contained in:
MX
2026-01-21 07:58:42 +03:00
parent edb86fa279
commit db2dc8f64f
20 changed files with 1238 additions and 69 deletions

View File

@@ -71,6 +71,7 @@ typedef enum {
SetTypeBFTMitto,
SetTypeSomfyTelis,
SetTypeKingGatesStylo4k,
SetTypeBenincaARC,
SetTypeANMotorsAT4,
SetTypeAlutechAT4N,
SetTypePhoenix_V2_433,

View File

@@ -532,6 +532,15 @@ void subghz_scene_set_type_fill_generation_infos(GenInfo* infos_dest, SetType ty
.kinggates_stylo_4k.btn = 0x0E,
.kinggates_stylo_4k.cnt = 0x03};
break;
case SetTypeBenincaARC:
gen_info = (GenInfo){
.type = GenBenincaARC,
.mod = "AM650",
.freq = 433920000,
.beninca_arc.serial = key & 0x00FFFFFF,
.beninca_arc.btn = 0x02,
.beninca_arc.cnt = 0x03};
break;
case SetTypeMotorline433:
gen_info = (GenInfo){
.type = GenKeeloq,

View File

@@ -11,6 +11,7 @@ typedef enum {
GenAlutechAt4n,
GenSomfyTelis,
GenKingGatesStylo4k,
GenBenincaARC,
GenNiceFlorS,
GenSecPlus1,
GenSecPlus2,
@@ -67,6 +68,11 @@ typedef struct {
uint8_t btn;
uint16_t cnt;
} kinggates_stylo_4k;
struct {
uint32_t serial;
uint8_t btn;
uint32_t cnt;
} beninca_arc;
struct {
uint32_t serial;
uint8_t btn;

View File

@@ -365,6 +365,36 @@ bool subghz_txrx_gen_kinggates_stylo_4k_protocol(
return res;
}
bool subghz_txrx_gen_beninca_arc_protocol(
void* context,
const char* preset_name,
uint32_t frequency,
uint32_t serial,
uint8_t btn,
uint32_t cnt) {
SubGhzTxRx* txrx = context;
bool res = false;
txrx->transmitter =
subghz_transmitter_alloc_init(txrx->environment, SUBGHZ_PROTOCOL_BENINCA_ARC_NAME);
subghz_txrx_set_preset(txrx, preset_name, frequency, NULL, 0);
if(txrx->transmitter && subghz_protocol_beninca_arc_create_data(
subghz_transmitter_get_protocol_instance(txrx->transmitter),
txrx->fff_data,
serial,
btn,
cnt,
txrx->preset)) {
res = true;
}
subghz_transmitter_free(txrx->transmitter);
return res;
}
bool subghz_txrx_gen_secplus_v2_protocol(
SubGhzTxRx* instance,
const char* name_preset,

View File

@@ -116,6 +116,14 @@ bool subghz_txrx_gen_kinggates_stylo_4k_protocol(
uint8_t btn,
uint16_t cnt);
bool subghz_txrx_gen_beninca_arc_protocol(
void* context,
const char* preset_name,
uint32_t frequency,
uint32_t serial,
uint8_t btn,
uint32_t cnt);
bool subghz_txrx_gen_came_atomo_protocol(
void* context,
const char* preset_name,