|
|
|
@ -23,6 +23,7 @@
|
|
|
|
|
#define IOT_PARAM_READ 0xAF
|
|
|
|
|
|
|
|
|
|
std::mutex GpioControl::m_locker;
|
|
|
|
|
std::mutex GpioControl::m_gpioLocker;
|
|
|
|
|
std::vector<GpioControl::ITEM> GpioControl::m_items;
|
|
|
|
|
bool GpioControl::m_cameraPowerStatus = false;
|
|
|
|
|
|
|
|
|
@ -105,6 +106,7 @@ size_t GpioControl::turnOnImpl(const IOT_PARAM& param)
|
|
|
|
|
#ifdef ENABLE_GPIO_TRACING
|
|
|
|
|
GpioDebugLogger logger(param.cmd, param.value);
|
|
|
|
|
#endif
|
|
|
|
|
m_gpioLocker.lock();
|
|
|
|
|
fd = open(GPIO_NODE_MP, O_RDONLY);
|
|
|
|
|
if( fd > 0 )
|
|
|
|
|
{
|
|
|
|
@ -116,6 +118,7 @@ size_t GpioControl::turnOnImpl(const IOT_PARAM& param)
|
|
|
|
|
XYLOG(XYLOG_SEVERITY_DEBUG, "setInt cmd=%d,value=%d,result=%d",param.cmd, param.value, param.result);
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
m_gpioLocker.unlock();
|
|
|
|
|
#ifdef _DEBUG
|
|
|
|
|
ALOGI("PWR TurnOn cmd=%d,result=%d ref=%u\r\n",param.cmd, param.result, (uint32_t)references);
|
|
|
|
|
#endif
|
|
|
|
@ -134,6 +137,7 @@ void GpioControl::setInt(int cmd, int value)
|
|
|
|
|
#ifdef ENABLE_GPIO_TRACING
|
|
|
|
|
GpioDebugLogger logger(cmd, value);
|
|
|
|
|
#endif
|
|
|
|
|
m_gpioLocker.lock();
|
|
|
|
|
int fd = open(GPIO_NODE_MP, O_RDONLY);
|
|
|
|
|
if (fd > 0)
|
|
|
|
|
{
|
|
|
|
@ -145,6 +149,7 @@ void GpioControl::setInt(int cmd, int value)
|
|
|
|
|
XYLOG(XYLOG_SEVERITY_DEBUG, "setInt cmd=%d,value=%d,result=%d",param.cmd, value, param.result);
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
m_gpioLocker.unlock();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int GpioControl::getInt(int cmd)
|
|
|
|
@ -152,6 +157,7 @@ int GpioControl::getInt(int cmd)
|
|
|
|
|
#ifdef ENABLE_GPIO_TRACING
|
|
|
|
|
GpioDebugLogger logger(cmd);
|
|
|
|
|
#endif
|
|
|
|
|
m_gpioLocker.lock();
|
|
|
|
|
int fd = open(GPIO_NODE_MP, O_RDONLY);
|
|
|
|
|
// LOGE("get_int fd=%d,cmd=%d\r\n",fd, cmd);
|
|
|
|
|
if( fd > 0 )
|
|
|
|
@ -163,29 +169,34 @@ int GpioControl::getInt(int cmd)
|
|
|
|
|
ALOGI("getInt cmd=%d,value=%d,result=%d",param.cmd, param.value, param.result);
|
|
|
|
|
#endif
|
|
|
|
|
close(fd);
|
|
|
|
|
m_gpioLocker.unlock();
|
|
|
|
|
return param.value;
|
|
|
|
|
}
|
|
|
|
|
m_gpioLocker.unlock();
|
|
|
|
|
return -1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void GpioControl::setLong(int cmd, long value)
|
|
|
|
|
{
|
|
|
|
|
int fd = open(GPIO_NODE_MP, O_RDONLY);
|
|
|
|
|
IOT_PARAM param;
|
|
|
|
|
param.cmd = cmd;
|
|
|
|
|
param.value2 = value;
|
|
|
|
|
// LOGE("set_long fd=%d,cmd=%d,value2=%ld\r\n",fd, param.cmd, param.value2);
|
|
|
|
|
|
|
|
|
|
m_gpioLocker.lock();
|
|
|
|
|
int fd = open(GPIO_NODE_MP, O_RDONLY);
|
|
|
|
|
if( fd > 0 )
|
|
|
|
|
{
|
|
|
|
|
ioctl(fd, IOT_PARAM_WRITE, ¶m);
|
|
|
|
|
// LOGE("set_long22 cmd=%d,value2=%ld,result=%d\r\n",param.cmd, param.value2, param.result);
|
|
|
|
|
close(fd);
|
|
|
|
|
}
|
|
|
|
|
m_gpioLocker.unlock();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
long GpioControl::getLong(int cmd)
|
|
|
|
|
{
|
|
|
|
|
m_gpioLocker.lock();
|
|
|
|
|
int fd = open(GPIO_NODE_MP, O_RDONLY);
|
|
|
|
|
// LOGE("get_long fd=%d,cmd=%d\r\n",fd, cmd);
|
|
|
|
|
if( fd > 0 )
|
|
|
|
@ -195,32 +206,37 @@ long GpioControl::getLong(int cmd)
|
|
|
|
|
ioctl(fd, IOT_PARAM_READ, ¶m);
|
|
|
|
|
// LOGE("get_long22 cmd=%d,value2=%ld,result=%d\r\n",param.cmd, param.value2, param.result);
|
|
|
|
|
close(fd);
|
|
|
|
|
m_gpioLocker.unlock();
|
|
|
|
|
return param.value2;
|
|
|
|
|
}
|
|
|
|
|
m_gpioLocker.unlock();
|
|
|
|
|
return -1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void GpioControl::setString(int cmd, const std::string& value)
|
|
|
|
|
{
|
|
|
|
|
IOT_PARAM param;
|
|
|
|
|
int fd = open(GPIO_NODE_MP, O_RDONLY);
|
|
|
|
|
int len = MAX_STRING_LEN < value.size() ? MAX_STRING_LEN : value.size();
|
|
|
|
|
|
|
|
|
|
param.cmd = cmd;
|
|
|
|
|
memset(param.str, 0, MAX_STRING_LEN);
|
|
|
|
|
int len = MAX_STRING_LEN < value.size() ? MAX_STRING_LEN : value.size();
|
|
|
|
|
memcpy(param.str, value.c_str(), len);
|
|
|
|
|
// LOGE("set_string fd=%d,cmd=%d,str=%s\r\n",fd, param.cmd, param.str);
|
|
|
|
|
|
|
|
|
|
m_gpioLocker.lock();
|
|
|
|
|
int fd = open(GPIO_NODE_MP, O_RDONLY);
|
|
|
|
|
if( fd > 0 )
|
|
|
|
|
{
|
|
|
|
|
ioctl(fd, IOT_PARAM_WRITE, ¶m);
|
|
|
|
|
// LOGE("set_string22 cmd=%d,str=%s,result=%d\r\n",param.cmd, param.str, param.result);
|
|
|
|
|
close(fd);
|
|
|
|
|
}
|
|
|
|
|
m_gpioLocker.unlock();
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
std::string GpioControl::getString(int cmd)
|
|
|
|
|
{
|
|
|
|
|
m_gpioLocker.lock();
|
|
|
|
|
int fd = open(GPIO_NODE_MP, O_RDONLY);
|
|
|
|
|
// LOGE("get_string fd=%d,cmd=%d\r\n",fd, cmd);
|
|
|
|
|
if( fd > 0 )
|
|
|
|
@ -230,8 +246,10 @@ std::string GpioControl::getString(int cmd)
|
|
|
|
|
ioctl(fd, IOT_PARAM_READ, ¶m);
|
|
|
|
|
// LOGE("get_string22 cmd=%d,str=%s,result=%d\r\n",param.cmd, param.str, param.result);
|
|
|
|
|
close(fd);
|
|
|
|
|
m_gpioLocker.unlock();
|
|
|
|
|
return std::string(param.str);
|
|
|
|
|
}
|
|
|
|
|
m_gpioLocker.unlock();
|
|
|
|
|
return "";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|