Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions src/ctrlm_main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -964,12 +964,6 @@ void ctrlm_thread_monitor_init(void) {

g_ctrlm.monitor_threads.shrink_to_fit();

if(CTRLM_TR181_RESULT_SUCCESS != ctrlm_tr181_bool_get(CTRLM_RF4CE_TR181_THREAD_MONITOR_MINIDUMP_ENABLE, &g_ctrlm.thread_monitor_minidump)) {
XLOGD_INFO("Thread Monitor Minidump is <%s> (TR181 not present)", (g_ctrlm.thread_monitor_minidump ? "ENABLED" : "DISABLED"));
} else {
XLOGD_INFO("Thread Monitor Minidump is <%s>", (g_ctrlm.thread_monitor_minidump ? "ENABLED" : "DISABLED"));
}

// Run once to kick off the first poll
ctrlm_thread_monitor(NULL);
}
Expand Down
36 changes: 1 addition & 35 deletions src/ctrlm_tr181.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,46 +24,12 @@
#include "rfcapi.h"

#define CTRLM_RFC_MAX_PARAM_LEN MAX_PARAM_LEN //from rfcapi.h is 2048
#define CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_PREFIX "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.XRPollingConfiguration."
#define CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_ENABLED CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_PREFIX "Enable"
#define CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_DEFAULT CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_PREFIX "Default"
#define CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_XR11V2 CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_PREFIX "XR11v2"
#define CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_XR15V1 CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_PREFIX "XR15v1"
#define CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_XR15V2 CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_PREFIX "XR15v2"
#define CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_XR16V1 CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_PREFIX "XR16v1"
#define CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_XR19V1 CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_PREFIX "XR19v1"
#define CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_XRAV1 CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_PREFIX "XRAv1"
#define CTRLM_RF4CE_TR181_PRESS_AND_RELEASE_EOS_TIMEOUT "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.PressAndRelease.EOSTimeout"
#define CTRLM_RF4CE_TR181_PRESS_AND_RELEASE_EOS_METHOD "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.PressAndRelease.EOSMethod"
#define CTRLM_RF4CE_TR181_MAC_POLLING_CONFIGURATION_ENABLE "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.XRmacPolling.Enable"
#define CTRLM_RF4CE_TR181_MAC_POLLING_CONFIGURATION_INTERVAL "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.XRmacPolling.macPollingInterval"
#define CTRLM_RF4CE_TR181_ASB_ENABLED "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.XRPairing.ASBEnable"
#define CTRLM_RF4CE_TR181_ASB_DERIVATION_METHOD "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.XRPairing.ASBDerivationMethod"
#define CTRLM_RF4CE_TR181_ASB_FAIL_THRESHOLD "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.XRPairing.ASBFailThreshold"
#define CTRLM_RF4CE_TR181_THREAD_MONITOR_MINIDUMP_ENABLE "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.ThreadMonitorMinidump.Enable"
#define CTRLM_RF4CE_TR181_XR19_DSP_CONFIGURATION "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.XRDsp.XR19.Configuration"
#define CTRLM_RF4CE_TR181_RF4CE_AUDIO_PROFILE_TARGET "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.RF4CE.AudioProfileTarget"
#define CTRLM_RF4CE_TR181_RF4CE_OPUS_ENCODER_PARAMS "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.RF4CE.OpusEncoderParams"
#define CTRLM_RF4CE_TR181_RF4CE_RSP_IDLE_FF "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.RF4CE.FF.RspIdle"
#define CTRLM_RF4CE_TR181_RF4CE_VOICE_ENCRYPTION "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.RF4CE.VoiceEncryption.Enable"
#define CTRLM_RF4CE_TR181_RF4CE_HOST_PACKET_DECRYPTION "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.RF4CE.HostPacketDecryption.Enable"
#define CTRLM_RF4CE_TR181_RSP_TIME_PREFIX "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.RF4CE.RspTime."
#define CTRLM_RF4CE_TR181_RSP_TIME_XRC CTRLM_RF4CE_TR181_RSP_TIME_PREFIX "XRC"
#define CTRLM_RF4CE_TR181_RSP_TIME_XVP CTRLM_RF4CE_TR181_RSP_TIME_PREFIX "XVP"
#define CTRLM_RF4CE_TR181_RSP_TIME_XDIU CTRLM_RF4CE_TR181_RSP_TIME_PREFIX "XDIU"
#define CTRLM_TR181_VOICE_PARAMS_AUDIO_MODE "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.Voice.AudioMode"
#define CTRLM_TR181_VOICE_PARAMS_AUDIO_TIMING "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.Voice.AudioTiming"
#define CTRLM_TR181_VOICE_PARAMS_AUDIO_CONFIDENCE_THRESHOLD "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.Voice.AudioConfidenceThreshold"
#define CTRLM_TR181_VOICE_PARAMS_AUDIO_DUCKING_TYPE "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.Voice.AudioDuckingType"
#define CTRLM_TR181_VOICE_PARAMS_AUDIO_DUCKING_LEVEL "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.Voice.AudioDuckingLevel"
#define CTRLM_TR181_VOICE_PARAMS_VSDK_CONFIGURATION "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.Voice.VSDKConfiguration"
#define CTRLM_TR181_VOICE_PARAMS_KEYWORD_SENSITIVITY "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.Voice.KeywordSensitivity"
#define CTRLM_TR181_TELEMETRY_REPORT_GLOBAL "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.ctrlm.telemetry_report.global"
#define CTRLM_TR181_TELEMETRY_REPORT_RF4CE "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.ctrlm.telemetry_report.rf4ce"
#define CTRLM_TR181_TELEMETRY_REPORT_BLE "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.ctrlm.telemetry_report.ble"
#define CTRLM_TR181_TELEMETRY_REPORT_IP "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.ctrlm.telemetry_report.ip"
#define CTRLM_TR181_TELEMETRY_REPORT_VOICE "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.ctrlm.telemetry_report.voice"
#define CTRLM_RT181_POWER_RFC_PWRMGR2 "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.Power.PwrMgr2.Enable"
#define CTRLM_TR181_POWER_RFC_PWRMGR2 "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.Power.PwrMgr2.Enable"


typedef enum {
Expand Down
192 changes: 1 addition & 191 deletions src/rf4ce/ctrlm_rf4ce_network.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -726,9 +726,6 @@ gboolean ctrlm_obj_network_rf4ce_t::load_config(json_t *json_obj_net_rf4ce) {
sub_conf.config_value_get(JSON_INT_NAME_NETWORK_RF4CE_DSP_IC_DETECT, dsp_configuration_.ic_config_detect, 0x00, 0xFF);
}
}
//Read tr181 values here. tr181 values will override any config file values.
polling_config_tr181_read();
process_xconf();

XLOGD_INFO("User String <%s>", user_string_.c_str());
XLOGD_INFO("Timeout Key Release %u ms", timeout_key_release_);
Expand Down Expand Up @@ -2934,110 +2931,6 @@ void ctrlm_obj_network_rf4ce_t::default_polling_configuration() {
}
}

void ctrlm_obj_network_rf4ce_t::polling_config_tr181_read() {
guint8 default_polling_methods = 0;
ctrlm_rf4ce_polling_configuration_t default_polling_config_hb = {0};

ctrlm_rf4ce_polling_configuration_t default_polling_config_mac;
errno_t safec_rc = memset_s(&default_polling_config_mac, sizeof(ctrlm_rf4ce_polling_configuration_t), 0, sizeof(ctrlm_rf4ce_polling_configuration_t));
ERR_CHK(safec_rc);
default_polling_config_mac.trigger = POLLING_TRIGGER_FLAG_TIME;
default_polling_config_mac.time_interval = JSON_INT_VALUE_NETWORK_RF4CE_POLLING_DEFAULT_MAC_TIME_INTERVAL;

bool b_has_default_config = false;

char tr181_buf[1024] = {0};
if(CTRLM_TR181_RESULT_SUCCESS == ctrlm_tr181_string_get(CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_DEFAULT, tr181_buf, sizeof(tr181_buf))) {
if(4 == sscanf(tr181_buf, "%hhu:%hu:%hhu:%u:", &default_polling_methods, &default_polling_config_hb.trigger, &default_polling_config_hb.kp_counter, &default_polling_config_hb.time_interval)) {
XLOGD_INFO("Default HB Polling Configuration from TR181");
b_has_default_config = true;
}
}

bool b_has_default_mac_config = false;

bool mac_polling_enabled = false;
if(CTRLM_TR181_RESULT_SUCCESS == ctrlm_tr181_bool_get(CTRLM_RF4CE_TR181_MAC_POLLING_CONFIGURATION_ENABLE, &mac_polling_enabled)) {
XLOGD_INFO("Default Mac Polling Configuration from TR181");
b_has_default_mac_config = mac_polling_enabled;
ctrlm_tr181_int_get(CTRLM_RF4CE_TR181_MAC_POLLING_CONFIGURATION_INTERVAL, (int*)&default_polling_config_mac.time_interval, 1000, 60000);

if(mac_polling_enabled) {
polling_methods_ |= POLLING_METHODS_FLAG_MAC;
} else {
polling_methods_ &= ~POLLING_METHODS_FLAG_MAC;
}

}
for(int i = 0; i < RF4CE_CONTROLLER_TYPE_INVALID; i++) {
XLOGD_INFO("Polling Configuration Remote Type <%s>", ctrlm_rf4ce_controller_type_str((ctrlm_rf4ce_controller_type_t)i));
const char *controller_tr181_str = 0;

switch((ctrlm_rf4ce_controller_type_t)i) {
case RF4CE_CONTROLLER_TYPE_XR11: {
controller_tr181_str = CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_XR11V2;
break;
}
case RF4CE_CONTROLLER_TYPE_XR15: {
controller_tr181_str = CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_XR15V1;
break;
}
case RF4CE_CONTROLLER_TYPE_XR15V2: {
controller_tr181_str = CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_XR15V2;
break;
}
case RF4CE_CONTROLLER_TYPE_XR16: {
controller_tr181_str = CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_XR16V1;
break;
}
case RF4CE_CONTROLLER_TYPE_XR19: {
controller_tr181_str = CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_XR19V1;
break;
}
case RF4CE_CONTROLLER_TYPE_XRA: {
controller_tr181_str = CTRLM_RF4CE_TR181_POLLING_CONFIGURATION_XRAV1;
break;
}
default: {
break;
}
}

if (b_has_default_mac_config) {
controller_polling_configuration_mac_[i] = default_polling_config_mac;
}

if(controller_tr181_str) {
if (b_has_default_config) {
controller_polling_methods_[i] = default_polling_methods;
controller_polling_configuration_heartbeat_[i] = default_polling_config_hb;
}
safec_rc = memset_s(tr181_buf, sizeof(tr181_buf), 0, sizeof(tr181_buf));
ERR_CHK(safec_rc);
ctrlm_rf4ce_polling_configuration_t controller_polling_configuration;
if(CTRLM_TR181_RESULT_SUCCESS == ctrlm_tr181_string_get(controller_tr181_str, tr181_buf, sizeof(tr181_buf))) {
if(4 == sscanf(tr181_buf, "%hhu:%hu:%hhu:%u:", &controller_polling_methods_[i],
&controller_polling_configuration.trigger,
&controller_polling_configuration.kp_counter,
&controller_polling_configuration.time_interval)) {
//If MAC polling bit is set, save the mac config
if(controller_polling_methods_[i] & POLLING_METHODS_FLAG_MAC) {
controller_polling_configuration_mac_[i].trigger = controller_polling_configuration.trigger;
controller_polling_configuration_mac_[i].kp_counter = controller_polling_configuration.kp_counter;
// The MAC polling period has been set above when MAC was enabled
}
//If Heartbeat polling bit is set, save the heartbeat config
if(controller_polling_methods_[i] & POLLING_METHODS_FLAG_HEARTBEAT) {
controller_polling_configuration_heartbeat_[i] = controller_polling_configuration;
}
XLOGD_INFO("Controller Polling Configuration Read from TR181 <%s><%s>", ctrlm_rf4ce_controller_type_str((ctrlm_rf4ce_controller_type_t)i),ctrlm_rf4ce_controller_polling_methods_str(controller_polling_methods_[i]));
}
}
}
controller_polling_methods_[i] &= polling_methods_; // The controller polling_methods should only contain methods currently supported by target
}
}

void ctrlm_obj_network_rf4ce_t::polling_config_read(json_config *conf) {
if(NULL == conf) {
XLOGD_ERROR("json config is NULL!");
Expand Down Expand Up @@ -3412,42 +3305,6 @@ void ctrlm_obj_network_rf4ce_t::polling_action_push(void *data, int size) {
}
}

void ctrlm_obj_network_rf4ce_t::process_xconf() {
int result;
int value = 0;
bool b_value = true;
result = ctrlm_tr181_int_get(CTRLM_RF4CE_TR181_RF4CE_AUDIO_PROFILE_TARGET, &value, 1, 7);
if(result != CTRLM_TR181_RESULT_SUCCESS) {
XLOGD_INFO("audio profile target not present");
} else {
audio_profiles_targ_ = value;
XLOGD_INFO("audio profile target 0x%04X", audio_profiles_targ_);
}

result = ctrlm_tr181_int_get(CTRLM_RF4CE_TR181_RF4CE_RSP_IDLE_FF, &value, 0, 1000);
if(result != CTRLM_TR181_RESULT_SUCCESS) {
XLOGD_INFO("FF Rsp Idle time not present");
} else {
response_idle_time_ff_ = value;
XLOGD_INFO("FF Rsp Idle time %u", response_idle_time_ff_);
}

if(CTRLM_TR181_RESULT_SUCCESS != ctrlm_tr181_bool_get(CTRLM_RF4CE_TR181_RF4CE_VOICE_ENCRYPTION, &b_value)) {
XLOGD_INFO("TR181 RF4CE Voice Encryption not present");
} else {
XLOGD_TELEMETRY("TR181 RF4CE Voice Encryption set to %s", (b_value ? "TRUE" : "FALSE"));
voice_command_encryption_ = (b_value ? VOICE_COMMAND_ENCRYPTION_ENABLED : VOICE_COMMAND_ENCRYPTION_DISABLED);
}

if(CTRLM_TR181_RESULT_SUCCESS != ctrlm_tr181_bool_get(CTRLM_RF4CE_TR181_RF4CE_HOST_PACKET_DECRYPTION, &host_decryption_)) {
XLOGD_INFO("TR181 RF4CE Host Packet Decryption not present");
} else {
XLOGD_INFO("TR181 RF4CE Host Packet Decryption set to %s", (host_decryption_ ? "TRUE" : "FALSE"));
}

rsp_time_.legacy_rfc();
}

// ASB Functions
bool ctrlm_obj_network_rf4ce_t::rf4ce_asb_init(void *data, int size) {

Expand Down Expand Up @@ -3525,32 +3382,13 @@ void ctrlm_obj_network_rf4ce_t::asb_link_key_derivation_perform(void *data, int
}

void ctrlm_obj_network_rf4ce_t::asb_configuration(json_config *conf) {
int temp_i;
bool temp_b;
// Get JSON configuration first
if(NULL != conf) {
conf->config_value_get(JSON_BOOL_NAME_NETWORK_RF4CE_ASB_ENABLE, asb_enabled_);
conf->config_value_get(JSON_INT_NAME_NETWORK_RF4CE_ASB_DERIVATION_METHODS, asb_key_derivation_methods_, 0x01, 0xFF);
conf->config_value_get(JSON_INT_NAME_NETWORK_RF4CE_ASB_FALLBACK_THRESHOLD, asb_fallback_count_threshold_, 0x01, 0xFF);
conf->config_value_get(JSON_BOOL_NAME_NETWORK_RF4CE_ASB_FORCE_SETTINGS, asb_force_settings_);
}

// Now check TR181
if(CTRLM_TR181_RESULT_SUCCESS == ctrlm_tr181_bool_get(CTRLM_RF4CE_TR181_ASB_ENABLED, &temp_b)) {
asb_enabled_ = temp_b;
XLOGD_INFO("TR181 ASB Enable set to %s", (asb_enabled_ ? "TRUE" : "FALSE"));
}
if(asb_enabled_) {
if(CTRLM_TR181_RESULT_SUCCESS == ctrlm_tr181_int_get(CTRLM_RF4CE_TR181_ASB_DERIVATION_METHOD, &temp_i, 0x01, 0xFF)) {
asb_key_derivation_methods_ = temp_i;
XLOGD_INFO("TR181 ASB Key Derivation Method set to %d", asb_key_derivation_methods_);
}
if(CTRLM_TR181_RESULT_SUCCESS == ctrlm_tr181_int_get(CTRLM_RF4CE_TR181_ASB_FAIL_THRESHOLD, &temp_i, 0x01, 0xFF)) {
asb_fallback_count_threshold_ = temp_i;
XLOGD_INFO("TR181 ASB Fallback Threshold set to %d", asb_fallback_count_threshold_);
}
}

}

void ctrlm_obj_network_rf4ce_t::rf4ce_asb_destroy(void *data, int size) {
Expand Down Expand Up @@ -3990,9 +3828,7 @@ void ctrlm_obj_network_rf4ce_t::set_timers() {
}

void ctrlm_obj_network_rf4ce_t::xconf_configuration() {
if(FALSE == force_dsp_configuration_) {
dsp_configuration_xconf();
} else {
if(FALSE != force_dsp_configuration_) {
XLOGD_WARN("force dsp configuration is true, tell device(s) to read it");
update_far_field_configuration(RF4CE_POLLING_ACTION_DSP_CONFIGURATION);
}
Expand Down Expand Up @@ -4127,32 +3963,6 @@ void ctrlm_obj_network_rf4ce_t::update_far_field_configuration(ctrlm_rf4ce_polli
}
}

void ctrlm_obj_network_rf4ce_t::dsp_configuration_xconf() {
char rfc_val[100] = {'\0'};
unsigned char *decoded_buf = NULL;
size_t decoded_buf_len = 0;
if(force_dsp_configuration_) {
XLOGD_WARN("not going to xconf for DSP configuration");
return;
}
if(CTRLM_TR181_RESULT_SUCCESS == ctrlm_tr181_string_get(CTRLM_RF4CE_TR181_XR19_DSP_CONFIGURATION, rfc_val, sizeof(rfc_val))) {
decoded_buf = g_base64_decode(rfc_val, &decoded_buf_len);
if(decoded_buf) {
if(decoded_buf_len == CTRLM_RF4CE_RIB_ATTR_LEN_DSP_CONFIGURATION) {
XLOGD_INFO("DSP configuration taken from XCONF");
property_write_dsp_configuration(decoded_buf, (uint8_t)decoded_buf_len);
} else {
XLOGD_WARN("incorrect length");
}
free(decoded_buf);
} else {
XLOGD_WARN("failed to decode base64");
}
} else {
XLOGD_INFO("no rfc value");
}
}

void ctrlm_obj_network_rf4ce_t::attributes_from_db() {
// So far just getting the DSP configuration
if(!force_dsp_configuration_) {
Expand Down
4 changes: 0 additions & 4 deletions src/rf4ce/ctrlm_rf4ce_network.h
Original file line number Diff line number Diff line change
Expand Up @@ -636,10 +636,6 @@ class ctrlm_obj_network_rf4ce_t : public ctrlm_obj_network_t
static gboolean binding_in_progress_timeout(gpointer user_data);
void default_polling_configuration();
void polling_config_read(json_config *conf);
void polling_config_tr181_read();
void process_xconf();

void dsp_configuration_xconf();

gboolean is_asb_active(ctrlm_hal_rf4ce_ieee_address_t ieee_address);
static gboolean asb_link_validation_timeout(gpointer user_data);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,51 +62,6 @@ unsigned int ctrlm_rf4ce_rsp_time_t::get_us(uint8_t profile_id) const {
return(1000 * this->get_ms(profile_id));
}

// TODO: remove once generic RFC is approved for use
void ctrlm_rf4ce_rsp_time_t::legacy_rfc() {
unsigned int value = 0;
bool changed = false;
int rsp_time_min = (ctrlm_is_production_build() ? RESPONSE_TIME_MIN : RESPONSE_TIME_CONFIG_VBN_MIN);
int rsp_time_max = (ctrlm_is_production_build() ? RESPONSE_TIME_MAX : RESPONSE_TIME_CONFIG_VBN_MAX);
ctrlm_tr181_result_t result = ctrlm_tr181_int_get(CTRLM_RF4CE_TR181_RSP_TIME_XRC, &value, rsp_time_min, rsp_time_max);
if(result != CTRLM_TR181_RESULT_SUCCESS) {
XLOGD_INFO("XRC Response Time not present");
} else {
if(value != this->rsp_times[RESPONSE_TIME_PROFILE_XRC]) {
changed = true;
}
this->rsp_times[RESPONSE_TIME_PROFILE_XRC] = value;
XLOGD_INFO("XRC Response Time %ums", this->rsp_times[RESPONSE_TIME_PROFILE_XRC]);
}

result = ctrlm_tr181_int_get(CTRLM_RF4CE_TR181_RSP_TIME_XVP, &value, rsp_time_min, rsp_time_max);
if(result != CTRLM_TR181_RESULT_SUCCESS) {
XLOGD_INFO("XVP Response Time not present");
} else {
if(value != this->rsp_times[RESPONSE_TIME_PROFILE_XVP]) {
changed = true;
}
this->rsp_times[RESPONSE_TIME_PROFILE_XVP] = value;
XLOGD_INFO("XVP Response Time %ums", this->rsp_times[RESPONSE_TIME_PROFILE_XVP]);
}

result = ctrlm_tr181_int_get(CTRLM_RF4CE_TR181_RSP_TIME_XDIU, &value, rsp_time_min, rsp_time_max);
if(result != CTRLM_TR181_RESULT_SUCCESS) {
XLOGD_INFO("XDIU Response Time not present");
} else {
if(value != this->rsp_times[RESPONSE_TIME_PROFILE_XDIU]) {
changed = true;
}
this->rsp_times[RESPONSE_TIME_PROFILE_XDIU] = value;
XLOGD_INFO("XDIU Response Time %ums", this->rsp_times[RESPONSE_TIME_PROFILE_XDIU]);
}

if(changed && this->updated_listener) {
XLOGD_INFO("calling updated listener for %s", this->get_name().c_str());
this->updated_listener(*this);
}
}

std::string ctrlm_rf4ce_rsp_time_t::to_string() const {
std::stringstream ss;
ss << "XRC <" << this->rsp_times.at(RESPONSE_TIME_PROFILE_XRC) << "ms> ";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@ class ctrlm_rf4ce_rsp_time_t : public ctrlm_attr_t, public ctrlm_rf4ce_rib_attr_
public:
unsigned int get_ms(uint8_t profile_id) const;
unsigned int get_us(uint8_t profile_id) const;
void legacy_rfc();

public:
/**
Expand Down
Loading
Loading