Skip to content

Commit 0d3d303

Browse files
committed
RDKEMW-11471: getNetStatus update and legacy remote ids
Reason for change: Test Procedure: Risks: Signed-off-by: Kelvin Lu <Kelvin_Lu@comcast.com>
1 parent f44aa05 commit 0d3d303

File tree

6 files changed

+39
-25
lines changed

6 files changed

+39
-25
lines changed

src/ble/ctrlm_ble_network.cpp

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2463,14 +2463,15 @@ void ctrlm_obj_network_ble_t::controllers_load() {
24632463
XLOGD_WARN("deleting legacy IR controller object");
24642464
add_controller->db_destroy();
24652465
delete add_controller;
2466-
} else if (id < BLE_RCU_ID_RANGE_MIN || id > BLE_RCU_ID_RANGE_MAX) {
2467-
XLOGD_WARN("Deleting legacy controller id <%d> entry - will update on re-connect", id);
2468-
add_controller->db_destroy();
2469-
delete add_controller;
2470-
} else {
2471-
XLOGD_INFO("adding BLE controller with ID = 0x%X", id);
2472-
controllers_[id] = add_controller;
2466+
continue;
2467+
}
2468+
if (id < BLE_RCU_ID_RANGE_MIN || id > BLE_RCU_ID_RANGE_MAX) {
2469+
XLOGD_WARN("Legacy BLE RCU controller id <%d> found - updating controller id", id);
2470+
id = controller_id_assign();
2471+
add_controller->controller_id_set(id);
24732472
}
2473+
XLOGD_INFO("adding BLE controller with ID = 0x%X", id);
2474+
controllers_[id] = add_controller;
24742475
}
24752476
}
24762477

src/ctrlm_controller.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -410,3 +410,7 @@ uint8_t ctrlm_obj_controller_t::get_upgrade_increment() const {
410410
bool ctrlm_obj_controller_t::is_upgrade_progress_at_increment() const {
411411
return ((upgrade_progress_ % upgrade_increment_ == 0) || (upgrade_progress_ == 100));
412412
}
413+
414+
void ctrlm_obj_controller_t::controller_id_set(ctrlm_controller_id_t id) {
415+
controller_id_ = id;
416+
}

src/ctrlm_controller.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ class ctrlm_obj_controller_t
5959
std::string get_irdb_entry_id_name_avr() const;
6060

6161
ctrlm_controller_id_t controller_id_get() const;
62+
void controller_id_set(ctrlm_controller_id_t id);
6263
ctrlm_network_id_t network_id_get() const;
6364
std::string device_id_get() const;
6465
std::string service_account_id_get() const;

src/ipc/ctrlm_rcp_ipc_event.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,14 +135,14 @@ void ctrlm_rcp_ipc_net_status_t::populate_status(const ctrlm_obj_network_t &netw
135135
}
136136
}
137137

138-
const char *ctrlm_rcp_ipc_net_status_t::get_ir_prog_state(void)
138+
ctrlm_ir_state_t ctrlm_rcp_ipc_net_status_t::get_ir_prog_state(void)
139139
{
140-
return ctrlm_ir_state_str(irdb_state_);
140+
return irdb_state_;
141141
}
142142

143-
const char *ctrlm_rcp_ipc_net_status_t::get_rf_pair_state(void)
143+
ctrlm_rf_pair_state_t ctrlm_rcp_ipc_net_status_t::get_rf_pair_state(void)
144144
{
145-
return ctrlm_rf_pair_state_str(pair_state_);
145+
return pair_state_;
146146
}
147147

148148
void ctrlm_rcp_ipc_net_status_t::get_controller_status_list(std::vector<ctrlm_rcp_ipc_controller_status_t> &list)

src/ipc/ctrlm_rcp_ipc_event.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -119,10 +119,10 @@ class ctrlm_rcp_ipc_net_status_t : public ctrlm_virtual_json_t
119119
void set_net_id(ctrlm_network_id_t net_id) { net_id_ = net_id; }
120120
ctrlm_network_type_t get_type() const { return net_type_; }
121121

122-
void populate_status(const ctrlm_obj_network_t &network);
123-
const char *get_ir_prog_state(void);
124-
const char *get_rf_pair_state(void);
125-
void get_controller_status_list(std::vector<ctrlm_rcp_ipc_controller_status_t> &list);
122+
void populate_status(const ctrlm_obj_network_t &network);
123+
ctrlm_ir_state_t get_ir_prog_state(void);
124+
ctrlm_rf_pair_state_t get_rf_pair_state(void);
125+
void get_controller_status_list(std::vector<ctrlm_rcp_ipc_controller_status_t> &list);
126126

127127
private:
128128
uint8_t api_revision_ = 0;

src/ipc/ctrlm_rcp_ipc_iarm_thunder.cpp

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -410,32 +410,40 @@ IARM_Result_t ctrlm_rcp_ipc_iarm_thunder_t::get_net_status(void *arg)
410410
json_t *status = json_object();
411411
json_t *net_type_supported = json_array();
412412
json_t *remote_array = json_array();
413+
413414
std::map<ctrlm_network_id_t, ctrlm_rcp_ipc_net_status_t> status_map = params->get_reply();
414415
std::vector<ctrlm_rcp_ipc_controller_status_t> remotes;
415-
std::string ir_prog_state, rf_pair_state;
416+
417+
ctrlm_network_type_t type = CTRLM_NETWORK_TYPE_INVALID;
418+
ctrlm_ir_state_t ir_prog_state = CTRLM_IR_STATE_UNKNOWN;
419+
ctrlm_rf_pair_state_t rf_pair_state = CTRLM_RF_PAIR_STATE_UNKNOWN;
416420
int err = 0;
417421

418422
for (auto const &it : ctrlm_network_types_get()) {
419423
err |= json_array_append_new(net_type_supported, json_integer(it));
420424
}
421-
422425
for (auto &it : status_map) {
423-
if (it.second.get_type() == CTRLM_NETWORK_TYPE_BLUETOOTH_LE) {
424-
ir_prog_state = it.second.get_ir_prog_state();
425-
}
426-
rf_pair_state = it.second.get_rf_pair_state();
427426
it.second.get_controller_status_list(remotes);
428427
}
429-
430428
for (auto remote : remotes) {
431429
err |= json_array_append_new(remote_array, remote.to_json());
432430
}
431+
// For now default to RF4CE network reporting if available
432+
for (auto &it : status_map) {
433+
ir_prog_state = it.second.get_ir_prog_state();
434+
rf_pair_state = it.second.get_rf_pair_state();
435+
type = it.second.get_type();
436+
437+
if (type == CTRLM_NETWORK_TYPE_RF4CE) {
438+
break;
439+
}
440+
}
433441

434442
err |= json_object_set_new_nocheck(status, REMOTE_DATA, remote_array);
435443
err |= json_object_set_new_nocheck(status, NET_TYPES_SUPPORTED, net_type_supported);
436-
err |= json_object_set_new_nocheck(status, NET_TYPE, json_integer(0)); // TODO
437-
err |= json_object_set_new_nocheck(status, PAIRING_STATE, json_string(ir_prog_state.c_str())); // TODO
438-
err |= json_object_set_new_nocheck(status, IR_PROG_STATE, json_string(rf_pair_state.c_str()));
444+
err |= json_object_set_new_nocheck(status, NET_TYPE, json_integer(type));
445+
err |= json_object_set_new_nocheck(status, IR_PROG_STATE, json_string(ctrlm_ir_state_str(ir_prog_state)));
446+
err |= json_object_set_new_nocheck(status, PAIRING_STATE, json_string(ctrlm_rf_pair_state_str(rf_pair_state)));
439447

440448
err |= json_object_set_new_nocheck(ret, STATUS, status);
441449
err |= json_object_set_new_nocheck(ret, SUCCESS, json_boolean(params->get_result()));

0 commit comments

Comments
 (0)