Add powerind set API.
Change-Id: Ie4e0b2f677e15ff7f78c3f679ae27d21d0c5fe0e
diff --git a/mbtk/mbtk_rild_v2/src/ril_dev.c b/mbtk/mbtk_rild_v2/src/ril_dev.c
index d2d8c9f..fc70b70 100755
--- a/mbtk/mbtk_rild_v2/src/ril_dev.c
+++ b/mbtk/mbtk_rild_v2/src/ril_dev.c
@@ -431,6 +431,47 @@
return ret;
}
+/*
+AT*POWERIND=0"
+or
+AT*POWERIND=1~31"
+
+OK
+
+AT*POWERIND=31£¬¾ÍÏ൱ÓÚÉèÖÃNETWORK¡¢SIM¡¢SMS¡¢CS CALL¡¢PS DATA±ä»¯Ê±¶¼²»Ö÷¶¯Éϱ¨£¬
+ÆäÖÐPS DATAĿǰÔÝʱ²»Ö§³Ö£¬Ö»ÊDZ£ÁôÁËÕâ¸ö±ê־λ,0 means resume all.
+
+AP power state: 1~31 means suspend,
+bitmap:
+bit0 - NETWORK;
+bit1 - SIM;
+bit2 - SMS;
+bit3 - CS CALL
+bit4 - PS DATA
+
+*/
+static int req_powerind_set(ATPortType_enum port, uint8 state, int *cme_err)
+{
+ ATResponse *response = NULL;
+ int err = -1;
+
+ if (state >= 0 && state < 32)
+ {
+ char cmd[100] = {0};
+ sprintf(cmd, "AT*POWERIND=%d", state);
+ LOG("Set the powerind command is = [%s]\n", cmd);
+ int err = at_send_command(port, cmd, &response);
+ if (err < 0 || response->success == 0){
+ *cme_err = at_get_cme_error(response);
+ goto exit;
+ }
+ }
+
+exit:
+ at_response_free(response);
+ return err;
+}
+
//void net_list_free(void *data);
// Return MBTK_INFO_ERR_SUCCESS,will call pack_error_send() to send RSP.
@@ -689,6 +730,33 @@
}
break;
}
+ case RIL_MSG_ID_DEV_POWERIND:
+ {
+ if(pack->data_len == 0 || pack->data == NULL)
+ {
+ err = MBTK_RIL_ERR_UNSUPPORTED;
+ LOG("Get POWERIND state UNSUPPORTED.");
+ }
+ else // Set powerind state.
+ {
+ uint8 state = *(pack->data);
+ if(req_powerind_set(cli_info->port, state, &cme_err) || cme_err != MBTK_RIL_ERR_CME_NON)
+ {
+ if(cme_err != MBTK_RIL_ERR_CME_NON) {
+ err = MBTK_RIL_ERR_CME + cme_err;
+ } else {
+ err = MBTK_RIL_ERR_UNKNOWN;
+ }
+ LOG("Set POWERIND state fail.");
+ }
+ else
+ {
+ // pack_rsp_send(cli_info->fd, MBTK_INFO_ID_WAKEUP_STA_RSP, NULL, 0);
+ ril_rsp_pack_send(cli_info->port, cli_info->fd, pack->msg_id, pack->msg_index, NULL, 0);
+ }
+ }
+ break;
+ }
default:
{
err = MBTK_RIL_ERR_REQ_UNKNOWN;