#include "vst_idle_base.h"
#include "logic.h"
#include "vst_work_base.h"
VST_Idle_Base::VST_Idle_Base(int iID, const QString &sName,
                             VSM_Thread *pParent)
    :VST_Idle(iID,sName,pParent)
{

}

void VST_Idle_Base::do_Msg(const V_Msg &msg)
{
    switch(msg.m_iID)
    {
    case VarMsg_Home:
    {
        Q_ASSERT(msg.m_vlInput.size()>0);
        QString strName=m_pParent->m_sName;
        if(!m_pNextState)
        {
            m_pNextState= new VST_Work_Base(VarState_Home_Count,
                                            QObject::trUtf8("%1 Home State").arg(strName),
                                            m_pParent,this,0);
            for(int i=0;i<100;i++)
            {
                ((VST_Work_Base*)m_pNextState)->m_VarMsgProcess.
                        pushback_Msg(VarMsg_Home_step,
                                     QObject::trUtf8("%1 Home Step Sig").arg(strName),
                                     QVariantList()<<i<<msg.m_vlInput[0]);

            }
            ((VST_Work_Base*)m_pNextState)->LoadMsgProcess();
        }
        m_pParent->SetState(m_pNextState);
        break;
    }

    }

	//Case VarMsg_StartSemi_ID 如果有半自动，则直接运行半自动的列表，否则运行空闲的列表m_pHistoryState_Auto
	//Case VarMsg_Start_ID 如果有自动，则直接运行自动的列表，否则运行空闲的列表
	//恢复运行的时候，History表没有被置为nullptr m_pHistoryStateSemi
    VST_Idle::do_Msg( msg);
}

