diff --git a/src/power/p-sai.c b/src/power/p-sai.c
index 2bd5c67..1bb887b 100644
--- a/src/power/p-sai.c
+++ b/src/power/p-sai.c
@@ -213,14 +213,17 @@ sul_pcon_check_cb(lws_sorted_usec_list_t *sul)
/* Rule 2: User Keep On -> Turn ON */
if (pc->user_keep_on) {
target_on = 1;
- lwsl_info("%s: PCON %s has user keep on -> Force ON\n", __func__, pc->name);
+ lwsl_warn("%s: PCON %s has user keep on -> Force ON\n", __func__, pc->name);
}
/* Rule 3: Server Requested -> Turn ON */
else if (pc->server_requested_on) {
target_on = 1;
- lwsl_info("%s: PCON %s has server request -> Force ON\n", __func__, pc->name);
+ lwsl_warn("%s: PCON %s has server request -> Force ON\n", __func__, pc->name);
}
+ lwsl_info("%s: PCON %s check: target=%d, current=%d (user=%d, srv=%d)\n",
+ __func__, pc->name, target_on, pc->on, pc->user_keep_on, pc->server_requested_on);
+
/* If we decide it should be ON, trigger it */
if (target_on && !pc->on) {
lwsl_notice("%s: PCON %s ON (target=1, current=%d)\n", __func__, pc->name, pc->on);
diff --git a/src/power/p-ws-server.c b/src/power/p-ws-server.c
index 2474268..e1228b8 100644
--- a/src/power/p-ws-server.c
+++ b/src/power/p-ws-server.c
@@ -212,8 +212,11 @@ saip_m_rx(void *userobj, const uint8_t *buf, size_t len, int flags)
sai_pcon_control_t *ctl = (sai_pcon_control_t *)a.dest;
saip_pcon_t *pc = saip_pcon_by_name(&power, ctl->pcon_name);
+ lwsl_warn("%s: RX PCON Control '%s' -> %d\n", __func__, ctl->pcon_name, ctl->on);
+
if (pc) {
- lwsl_notice("%s: PCON Control '%s' -> %d\n", __func__, pc->name, ctl->on);
+ lwsl_warn("%s: Applying PCON Control '%s' -> %d (prev user_keep_on=%d)\n",
+ __func__, pc->name, ctl->on, pc->user_keep_on);
pc->user_keep_on = ctl->on;
if (ctl->on) {
saip_switch(pc, 1);
diff --git a/src/server/s-power.c b/src/server/s-power.c
index d222188..049efc3 100644
--- a/src/server/s-power.c
+++ b/src/server/s-power.c
@@ -353,6 +353,10 @@ passthru:
free(p);
}
+
+ if (n == LEJP_CONTINUE)
+ return 0;
+
break;
default:
lwsl_warn("%s: unknown schema\n", __func__);
diff --git a/src/server/s-ws-web.c b/src/server/s-ws-web.c
index 5cdfde7..bc20a07 100644
--- a/src/server/s-ws-web.c
+++ b/src/server/s-ws-web.c
@@ -480,8 +480,9 @@ websrvss_ws_rx(void *userobj, const uint8_t *buf, size_t len, int flags)
case SAIS_WS_WEBSRV_RX_PCON_CONTROL:
{
sai_pcon_control_t *ctl = (sai_pcon_control_t *)a.dest;
+ int count = 0;
- lwsl_notice("%s: pcon control received from web: %s -> %d\n",
+ lwsl_warn("%s: pcon control received from web: '%s' -> %d\n",
__func__, ctl->pcon_name, ctl->on);
lws_start_foreach_dll(struct lws_dll2 *, p,
@@ -494,10 +495,15 @@ websrvss_ws_rx(void *userobj, const uint8_t *buf, size_t len, int flags)
*s = *ctl;
lws_dll2_add_tail(&s->list, &pss_power->pcon_control_owner);
lws_callback_on_writable(pss_power->wsi);
- lwsl_wsi_notice(pss_power->wsi, "queued pcon control on power conn");
- }
+ lwsl_wsi_warn(pss_power->wsi, "queued pcon control on power conn");
+ count++;
+ } else
+ lwsl_err("%s: OOM queuing control\n", __func__);
} lws_end_foreach_dll(p);
+ if (!count)
+ lwsl_warn("%s: No sai-power connections found to forward control to!\n", __func__);
+
lwsac_free(&a.ac);
break;
}
diff --git a/src/web/w-ws-browser.c b/src/web/w-ws-browser.c
index c41b8a3..bc3f33a 100644
--- a/src/web/w-ws-browser.c
+++ b/src/web/w-ws-browser.c
@@ -684,12 +684,16 @@ saiw_ws_json_rx_browser(struct vhd *vhd, struct pss *pss, uint8_t *buf,
lwsl_err("%s: pcon control didn't like auth\n", __func__);
goto auth_error;
}
- lwsl_notice("%s: web: received pcon control req\n", __func__);
+ lwsl_warn("%s: web: received pcon control req (len %d)\n", __func__, (int)bl);
/* Forward to sai-server via websrv link */
- sai_ss_queue_frag_on_buflist_REQUIRES_LWS_PRE(vhd->h_ss_websrv,
+ if (sai_ss_queue_frag_on_buflist_REQUIRES_LWS_PRE(vhd->h_ss_websrv,
&((saiw_websrv_t *)lws_ss_to_user_object(vhd->h_ss_websrv))->wbltx,
- buf, bl, ss_flags);
+ buf, bl, ss_flags))
+ lwsl_err("%s: failed to queue pcon control to server\n", __func__);
+ else
+ lwsl_warn("%s: queued pcon control to server OK\n", __func__);
+
goto ok;
case SAIM_WS_BROWSER_RX_TASKREBUILDLASTSTEP: