#include <stdio.h> | |
#include <string.h> | |
#include <stdlib.h> | |
#include <stdbool.h> | |
#include <unistd.h> | |
#include <time.h> | |
#include <lynq-system-own.h> | |
void lynq_lpm_handler(int lpm_edge) | |
{ | |
FILE * fp = NULL; | |
char buft[32] = {0}; | |
char * cmd="cat /sys/devices/platform/10005000.pinctrl/mt_gpio | grep 000: | cut -b 8"; | |
//printf("[%s][%d]cmd=[%s]\n",__FUNCTION__,__LINE__,cmd); | |
fp = popen (cmd, "r"); | |
if (fp) { | |
if (fgets(buft, sizeof(buft), fp) != NULL) { | |
//printf("[%s][%d]%s\n",__FUNCTION__,__LINE__,buft); | |
strtok(buft, "\n"); | |
} | |
pclose(fp); | |
} | |
//printf("[%s][%d]last_state %d\n",__FUNCTION__,__LINE__,last_state); | |
if(atoi(buft)!=last_state){ | |
last_state=atoi(buft); | |
lpm_edge=atoi(buft); | |
printf("[%s][%d]lpm_edge=%d\n",__FUNCTION__,__LINE__,lpm_edge); | |
} | |
} | |
int LYNQ_Lpm_Init (LYNQ_Lpm_Handler_T lynq_lpm_handler) | |
{ | |
LYNQ_Lpm_Handler=lynq_lpm_handler; | |
return 0; | |
} | |
int LYNQ_Lpm_Deinit (void) | |
{ | |
LYNQ_Lpm_Handler=NULL; | |
return 0; | |
} | |
void suspendOperatingSystem() | |
{ | |
system("killall -9 lynq-function-test"); | |
system("echo 7 | emdlogger_ctrl"); | |
system("/usr/bin/telephony &"); | |
system("sleep 5"); | |
system("sh /usr/bin/demoscript/DSDS/set_default_sim_all_except_data.sh 0"); | |
system("sh /usr/bin/demoscript/Network_API/RadioOn.sh 0"); | |
system("sh /usr/bin/demoscript/DSDS/set_default_sim_all_except_data.sh 1"); | |
system("sh /usr/bin/demoscript/Network_API/RadioOn.sh 0"); | |
system("echo mem > /sys/power/autosleep"); | |
} | |
int LYNQ_Autosleep_Enable(int enable) | |
{ | |
if(enable){ | |
suspendOperatingSystem(); | |
} | |
return 0; | |
} | |
int LYNQ_SLP_WakeLock_Lock(const char *name) | |
{ | |
char gyCmd[64] = {0}; | |
sprintf(gyCmd,"echo %s > /sys/power/wake_lock",name); | |
system(gyCmd); | |
} | |
int LYNQ_SLP_WakeLock_Unlock(const char *name) | |
{ | |
char gyCmd[64] = {0}; | |
sprintf(gyCmd,"echo %s > /sys/power/wake_unlock",name); | |
system(gyCmd); | |
} | |
void LYNQ_Power_Mode(char *power_mode) | |
{ | |
char gyCmd[64] = {0}; | |
sprintf(gyCmd,"sh /etc/powerscript/power_mode_own %s",power_mode); | |
system(gyCmd); | |
} | |
void LYNQ_Power_Down(int mode) | |
{ | |
if(mode){ | |
system("reboot"); | |
}else{ | |
system("init 0"); | |
} | |
} | |
int LYNQ_Adc_Show(int adc_num) | |
{ | |
FILE * fp = NULL; | |
char buft[32] = {0}; | |
char * cmd="cat /sys/bus/iio/devices/iio:device0/in_voltage0_BATADC_input"; | |
//printf("[%s][%d]cmd=[%s]\n",__FUNCTION__,__LINE__,cmd); | |
fp = popen (cmd, "r"); | |
if (fp) { | |
if (fgets(buft, sizeof(buft), fp) != NULL) { | |
//printf("[%s][%d]%s\n",__FUNCTION__,__LINE__,buft); | |
strtok(buft, "\n"); | |
} | |
pclose(fp); | |
} | |
return atoi(buft); | |
} | |