|
|
@@ -1260,7 +1260,7 @@ static int l_mobile_event_handle(lua_State* L, void* ptr) {
|
|
|
uint8_t index = 0;
|
|
|
uint8_t status = 0;
|
|
|
int ret = 0;
|
|
|
-
|
|
|
+ int16_t sIntraSearchP, sNonIntraSearchP, sIntraSearchQ, sNonIntraSearchQ;
|
|
|
|
|
|
rtos_msg_t* msg = (rtos_msg_t*)lua_topointer(L, -1);
|
|
|
event = msg->arg1;
|
|
|
@@ -1561,6 +1561,45 @@ end)
|
|
|
break;
|
|
|
}
|
|
|
break;
|
|
|
+ case LUAT_MOBILE_EVENT_RRC:
|
|
|
+ LLOGD("LUAT_MOBILE_EVENT_RRC status %d",status);
|
|
|
+/*
|
|
|
+@sys_pub mobile
|
|
|
+通话状态变化,2025/9/15启用
|
|
|
+RRC_IND
|
|
|
+@usage
|
|
|
+sys.subscribe("RRC_IND", function(event, value, ...)
|
|
|
+ log.info("rrc status", event, value, ...)
|
|
|
+end)
|
|
|
+event目前有
|
|
|
+1、"DRX",DRX周期值,后续跟1个参数为具体的DRX周期值,单位ms,目前只有320,640,1280,2560
|
|
|
+2、"IDLE_MEAS_THRESHOLD",RRC IDLE下邻区测量阈值,后续跟4个参数为具体的测量阈值,单位dbm
|
|
|
+4个参数分别为sIntraSearchP, sNonIntraSearchP, sIntraSearchQ, sNonIntraSearchQ
|
|
|
+当rsrp <= sIntraSearchP,启动同频邻区测量,低功耗下功耗有所升高
|
|
|
+当rsrp <= sNonIntraSearchP,启动异频邻区测量,低功耗下功耗显著升高
|
|
|
+如果sIntraSearchQ不为0,当rsrq <= sIntraSearchQ,启动同频邻区测量,低功耗下功耗有所升高
|
|
|
+如果sNonIntraSearchQ不为0,当rsrq <= sNonIntraSearchQ,启动异频邻区测量,低功耗下功耗显著升高
|
|
|
+*/
|
|
|
+ switch(status)
|
|
|
+ {
|
|
|
+ case LUAT_MOBILE_RRC_DRX_CYCLE_UPDATED:
|
|
|
+ lua_pushstring(L, "RRC_IND");
|
|
|
+ lua_pushstring(L, "DRX");
|
|
|
+ lua_pushinteger(L, index * 320);
|
|
|
+ lua_call(L, 3, 0);
|
|
|
+ break;
|
|
|
+ case LUAT_MOBILE_RRC_IDLE_MEAS_THRESHOLD:
|
|
|
+ lua_pushstring(L, "RRC_IND");
|
|
|
+ lua_pushstring(L, "IDLE_MEAS_THRESHOLD");
|
|
|
+ luat_mobile_rrc_get_idle_meas_threshold(&sIntraSearchP, &sNonIntraSearchP, &sIntraSearchQ, &sNonIntraSearchQ);
|
|
|
+ lua_pushinteger(L, sIntraSearchP);
|
|
|
+ lua_pushinteger(L, sNonIntraSearchP);
|
|
|
+ lua_pushinteger(L, sIntraSearchQ);
|
|
|
+ lua_pushinteger(L, sNonIntraSearchQ);
|
|
|
+ lua_call(L, 6, 0);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|