|
|
|
@ -209,7 +209,8 @@ size_t GpioControl::TurnOffImmediately(int cmd)
|
|
|
|
|
if (it->cmd == cmd)
|
|
|
|
|
{
|
|
|
|
|
ref = it->references;
|
|
|
|
|
it->closeCmds++;
|
|
|
|
|
if(it->closeCmds < it->references)
|
|
|
|
|
it->closeCmds++;
|
|
|
|
|
it->closeTime = ts;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
@ -237,7 +238,8 @@ size_t GpioControl::TurnOff(int cmd, uint32_t delayedCloseTime/* = 0*/)
|
|
|
|
|
if (it->cmd == cmd)
|
|
|
|
|
{
|
|
|
|
|
ref = it->references;
|
|
|
|
|
it->closeCmds++;
|
|
|
|
|
if(it->closeCmds < it->references)
|
|
|
|
|
it->closeCmds++;
|
|
|
|
|
if (ts > it->closeTime)
|
|
|
|
|
{
|
|
|
|
|
it->closeTime = ts;
|
|
|
|
@ -270,7 +272,8 @@ size_t GpioControl::TurnOff(const std::vector<int>& cmds, uint32_t delayedCloseT
|
|
|
|
|
{
|
|
|
|
|
if (it->cmd == *itCmd)
|
|
|
|
|
{
|
|
|
|
|
it->closeCmds++;
|
|
|
|
|
if(it->closeCmds < it->references)
|
|
|
|
|
it->closeCmds++;
|
|
|
|
|
if (ts > it->closeTime)
|
|
|
|
|
{
|
|
|
|
|
it->closeTime = ts;
|
|
|
|
@ -298,7 +301,8 @@ size_t GpioControl::TurnOff(const std::vector<std::pair<int, uint32_t> >& cmds)
|
|
|
|
|
{
|
|
|
|
|
if (it->cmd == itCmd->first)
|
|
|
|
|
{
|
|
|
|
|
it->closeCmds++;
|
|
|
|
|
if(it->closeCmds < it->references)
|
|
|
|
|
it->closeCmds++;
|
|
|
|
|
if (itCmd->second != 0)
|
|
|
|
|
{
|
|
|
|
|
ts2 = itCmd->second + ts;
|
|
|
|
@ -354,6 +358,8 @@ void GpioControl::PowerControlThreadProc()
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
it->references -= it->closeCmds;
|
|
|
|
|
if(it->references < 0)
|
|
|
|
|
it->references = 0;
|
|
|
|
|
}
|
|
|
|
|
it->closeCmds = 0;
|
|
|
|
|
}
|
|
|
|
|