Merge remote-tracking branch 'ul/dev' into mntm-dev --nobuild

This commit is contained in:
WillyJL
2026-01-21 21:42:50 +01:00
105 changed files with 2816 additions and 2413 deletions

View File

@@ -78,6 +78,8 @@ typedef enum {
SetTypeFaacSLH_433,
SetTypeBFTMitto,
SetTypeSomfyTelis,
SetTypeKingGatesStylo4k,
SetTypeBenincaARC,
SetTypeANMotorsAT4,
SetTypeAlutechAT4N,
SetTypePhoenix_V2_433,
@@ -96,8 +98,8 @@ typedef enum {
SetTypeMotorline433,
SetTypeSommer_FM_434,
SetTypeSommer_FM_868,
SetTypeSommer_FM238_434,
SetTypeSommer_FM238_868,
SetTypeSommer_FM12K_434,
SetTypeSommer_FM12K_868,
SetTypeStilmatic,
SetTypeIronLogic,
SetTypeIronLogicSmart,
@@ -111,6 +113,7 @@ typedef enum {
SetTypeJCM_433_92,
SetTypeNovoferm_433_92,
SetTypeHormannEcoStar_433_92,
SetTypeCardinS449_433FM,
SetTypeFAACRCXT_433_92,
SetTypeFAACRCXT_868,
SetTypeGeniusBravo433,

View File

@@ -426,7 +426,7 @@ void subghz_scene_set_type_fill_generation_infos(GenInfo* infos_dest, SetType ty
.keeloq.serial = (key & 0x0000FFFF) | 0x01700000,
.keeloq.btn = 0x02,
.keeloq.cnt = 0x03,
.keeloq.manuf = "Sommer(fsk476)"};
.keeloq.manuf = "Sommer"};
break;
case SetTypeSommer_FM_868:
gen_info = (GenInfo){
@@ -436,27 +436,27 @@ void subghz_scene_set_type_fill_generation_infos(GenInfo* infos_dest, SetType ty
.keeloq.serial = (key & 0x0000FFFF) | 0x01700000,
.keeloq.btn = 0x02,
.keeloq.cnt = 0x03,
.keeloq.manuf = "Sommer(fsk476)"};
.keeloq.manuf = "Sommer"};
break;
case SetTypeSommer_FM238_434:
case SetTypeSommer_FM12K_434:
gen_info = (GenInfo){
.type = GenKeeloq,
.mod = "FM238",
.mod = "FM12K",
.freq = 434420000,
.keeloq.serial = key & 0x0000FFFF,
.keeloq.btn = 0x02,
.keeloq.cnt = 0x03,
.keeloq.manuf = "Sommer(fsk476)"};
.keeloq.manuf = "Sommer"};
break;
case SetTypeSommer_FM238_868:
case SetTypeSommer_FM12K_868:
gen_info = (GenInfo){
.type = GenKeeloq,
.mod = "FM238",
.mod = "FM12K",
.freq = 868800000,
.keeloq.serial = key & 0x0000FFFF,
.keeloq.btn = 0x02,
.keeloq.cnt = 0x03,
.keeloq.manuf = "Sommer(fsk476)"};
.keeloq.manuf = "Sommer"};
break;
case SetTypeDTMNeo433:
gen_info = (GenInfo){
@@ -523,6 +523,24 @@ void subghz_scene_set_type_fill_generation_infos(GenInfo* infos_dest, SetType ty
.somfy_telis.btn = 0x02,
.somfy_telis.cnt = 0x03};
break;
case SetTypeKingGatesStylo4k:
gen_info = (GenInfo){
.type = GenKingGatesStylo4k,
.mod = "AM650",
.freq = 433920000,
.kinggates_stylo_4k.serial = key & 0xFFFFFFFF,
.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,
@@ -643,6 +661,16 @@ void subghz_scene_set_type_fill_generation_infos(GenInfo* infos_dest, SetType ty
.keeloq.cnt = 0x03,
.keeloq.manuf = "EcoStar"};
break;
case SetTypeCardinS449_433FM:
gen_info = (GenInfo){
.type = GenKeeloq,
.mod = "FM12K",
.freq = 433920000,
.keeloq.serial = (key & 0x000FFFFF),
.keeloq.btn = 0x02,
.keeloq.cnt = 0x03,
.keeloq.manuf = "Cardin_S449"};
break;
case SetTypeFAACRCXT_433_92:
gen_info = (GenInfo){
.type = GenKeeloq,

View File

@@ -10,6 +10,8 @@ typedef enum {
GenKeeloqBFT,
GenAlutechAt4n,
GenSomfyTelis,
GenKingGatesStylo4k,
GenBenincaARC,
GenNiceFlorS,
GenSecPlus1,
GenSecPlus2,
@@ -61,6 +63,16 @@ typedef struct {
uint8_t btn;
uint16_t cnt;
} somfy_telis;
struct {
uint32_t serial;
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

@@ -121,6 +121,8 @@ const char* subghz_txrx_get_preset_name(SubGhzTxRx* instance, const char* preset
preset_name = "AM650";
} else if(!strcmp(preset, "FuriHalSubGhzPreset2FSKDev238Async")) {
preset_name = "FM238";
} else if(!strcmp(preset, "FuriHalSubGhzPreset2FSKDev12KAsync")) {
preset_name = "FM12K";
} else if(!strcmp(preset, "FuriHalSubGhzPreset2FSKDev476Async")) {
preset_name = "FM476";
} else if(!strcmp(preset, "FuriHalSubGhzPresetCustom")) {

View File

@@ -335,6 +335,66 @@ bool subghz_txrx_gen_somfy_telis_protocol(
return res;
}
bool subghz_txrx_gen_kinggates_stylo_4k_protocol(
void* context,
const char* preset_name,
uint32_t frequency,
uint32_t serial,
uint8_t btn,
uint16_t cnt) {
SubGhzTxRx* txrx = context;
bool res = false;
txrx->transmitter =
subghz_transmitter_alloc_init(txrx->environment, SUBGHZ_PROTOCOL_KINGGATES_STYLO_4K_NAME);
subghz_txrx_set_preset(txrx, preset_name, frequency, NAN, NAN, NULL, 0);
if(txrx->transmitter && subghz_protocol_kinggates_stylo_4k_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_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, NAN, NAN, 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

@@ -108,6 +108,22 @@ bool subghz_txrx_gen_somfy_telis_protocol(
uint8_t btn,
uint16_t cnt);
bool subghz_txrx_gen_kinggates_stylo_4k_protocol(
void* context,
const char* preset_name,
uint32_t frequency,
uint32_t serial,
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,