C++實現短按長按功能邏輯程式碼
if(data.speed==0)
{
qDebug()<<"--------------------------data.speed==0----------------------------------";
if (m_buttonOkStep == 0 && v)
++m_buttonOkStep;
// key debounce
if (m_buttonOkStep >= 1 && m_buttonOkStep < KEY_DEBOUNCE_TIME) {
if(!v) {
m_buttonOkStep = 0;
m_key4 = false;
}
++m_buttonOkStep;
qDebug()<<"-----------------------------1-----------------------------"<<m_buttonOkStep;
}
// LongKey deal
if (m_buttonOkStep >= KEY_DEBOUNCE_TIME && m_buttonOkStep < KEY_LONG_TIME) {
if (!v) {
if (m_buttonOkStepFlag) {
m_buttonOkStep = 0;
// emit buttonShort();
m_key4 = true;
qDebug()<<"--------------------------buttonShort----------------------------------";
}
m_buttonOkStepFlag = true;
}
else {
m_buttonOkStepFlag = false;
}
++m_buttonOkStep;
qDebug()<<"--------------------------2--------------------------------"<<m_buttonOkStep;
}
if (m_buttonOkStep == KEY_LONG_TIME && v) {
++m_buttonOkStep;
// emit buttonLong();
m_key1 = true;
qDebug()<<"--------------------------buttonLong----------------------------------";
}
if (m_buttonOkStep == KEY_LONG_TIME + 1 && !v) {
m_buttonOkStep = 0;
m_key1 = false;
}
qDebug()<<"--------------------------m_key1----------------------------------"<<m_key1;
qDebug()<<"--------------------------m_key4----------------------------------"<<m_key4;
getKey(m_key1,0,0,m_key4);
key1Temp = m_key1;
key4Temp = m_key4;
}