1. 程式人生 > >C++實現短按長按功能邏輯程式碼

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;
        }