mirror of
https://github.com/DarkFlippers/unleashed-firmware
synced 2025-02-17 05:48:33 +00:00
StarLine ignore
This commit is contained in:
parent
b122db27cc
commit
1923c15907
4 changed files with 49 additions and 0 deletions
|
@ -35,6 +35,12 @@ typedef enum {
|
|||
SubGhzSpeakerStateEnable,
|
||||
} SubGhzSpeakerState;
|
||||
|
||||
/** SubGhzStarLineIgnore state */
|
||||
typedef enum {
|
||||
SubGhzStarLineIgnoreDisable,
|
||||
SubGhzStarLineIgnoreEnable,
|
||||
} SubGhzStarLineIgnoreState;
|
||||
|
||||
/** SubGhzRxKeyState state */
|
||||
typedef enum {
|
||||
SubGhzRxKeyStateIDLE,
|
||||
|
|
|
@ -147,6 +147,16 @@ void subghz_scene_receiver_on_enter(void* context) {
|
|||
subghz_receiver_set_rx_callback(
|
||||
subghz->txrx->receiver, subghz_scene_add_to_history_callback, subghz);
|
||||
|
||||
if(subghz->txrx->starline_state == SubGhzStarLineIgnoreEnable) {
|
||||
SubGhzProtocolDecoderBase* protocoldecoderbase = NULL;
|
||||
protocoldecoderbase =
|
||||
subghz_receiver_search_decoder_base_by_name(subghz->txrx->receiver, "Star Line");
|
||||
if(protocoldecoderbase) {
|
||||
subghz_protocol_decoder_base_set_decoder_callback(
|
||||
protocoldecoderbase, NULL, subghz->txrx->receiver);
|
||||
}
|
||||
}
|
||||
|
||||
subghz->state_notifications = SubGhzNotificationStateRx;
|
||||
if(subghz->txrx->txrx_state == SubGhzTxRxStateRx) {
|
||||
subghz_rx_end(subghz);
|
||||
|
|
|
@ -68,6 +68,15 @@ const uint32_t bin_raw_value[BIN_RAW_COUNT] = {
|
|||
SubGhzProtocolFlag_Decodable,
|
||||
SubGhzProtocolFlag_Decodable | SubGhzProtocolFlag_BinRAW,
|
||||
};
|
||||
#define STAR_LINE_COUNT 2
|
||||
const char* const star_line_text[BIN_RAW_COUNT] = {
|
||||
"OFF",
|
||||
"ON",
|
||||
};
|
||||
const uint32_t star_line_value[SPEAKER_COUNT] = {
|
||||
SubGhzStarLineIgnoreDisable,
|
||||
SubGhzStarLineIgnoreEnable,
|
||||
};
|
||||
|
||||
uint8_t subghz_scene_receiver_config_next_frequency(const uint32_t value, void* context) {
|
||||
furi_assert(context);
|
||||
|
@ -217,6 +226,14 @@ static void subghz_scene_receiver_config_set_raw_threshold_rssi(VariableItem* it
|
|||
subghz->txrx->raw_threshold_rssi = raw_threshold_rssi_value[index];
|
||||
}
|
||||
|
||||
static void subghz_scene_receiver_config_set_starline(VariableItem* item) {
|
||||
SubGhz* subghz = variable_item_get_context(item);
|
||||
uint8_t index = variable_item_get_current_value_index(item);
|
||||
|
||||
variable_item_set_current_value_text(item, star_line_text[index]);
|
||||
subghz->txrx->starline_state = star_line_value[index];
|
||||
}
|
||||
|
||||
static void subghz_scene_receiver_config_var_list_enter_callback(void* context, uint32_t index) {
|
||||
furi_assert(context);
|
||||
SubGhz* subghz = context;
|
||||
|
@ -291,6 +308,21 @@ void subghz_scene_receiver_config_on_enter(void* context) {
|
|||
variable_item_set_current_value_text(item, bin_raw_text[value_index]);
|
||||
}
|
||||
|
||||
if(scene_manager_get_scene_state(subghz->scene_manager, SubGhzSceneReadRAW) !=
|
||||
SubGhzCustomEventManagerSet) {
|
||||
item = variable_item_list_add(
|
||||
subghz->variable_item_list,
|
||||
"Ignore StarLine:",
|
||||
STAR_LINE_COUNT,
|
||||
subghz_scene_receiver_config_set_starline,
|
||||
subghz);
|
||||
|
||||
value_index =
|
||||
value_index_uint32(subghz->txrx->starline_state, star_line_value, STAR_LINE_COUNT);
|
||||
variable_item_set_current_value_index(item, value_index);
|
||||
variable_item_set_current_value_text(item, star_line_text[value_index]);
|
||||
}
|
||||
|
||||
// Enable speaker, will send all incoming noises and signals to speaker so you can listen how your remote sounds like :)
|
||||
item = variable_item_list_add(
|
||||
subghz->variable_item_list,
|
||||
|
|
|
@ -73,6 +73,7 @@ struct SubGhzTxRx {
|
|||
SubGhzTxRxState txrx_state;
|
||||
SubGhzHopperState hopper_state;
|
||||
SubGhzSpeakerState speaker_state;
|
||||
SubGhzStarLineIgnoreState starline_state;
|
||||
uint8_t hopper_timeout;
|
||||
uint8_t hopper_idx_frequency;
|
||||
SubGhzRxKeyState rx_key_state;
|
||||
|
|
Loading…
Add table
Reference in a new issue