rk3399_arm_lvds/motorcontroller/MotorController.h

37 lines
1.2 KiB
C
Raw Normal View History

2024-03-05 03:46:18 +00:00
#pragma once
#include "StateManager.h"
#include "IState.h"
#include "BlockingQueue.h"
#include "keymonitor.h"
using HgBtn = KeyMonitor::HGKey;
class MotorController
{
public:
MotorController(/* args */);
~MotorController();
void PutMsg(StateInfo mode);
private:
void runloop();
void SendMsg();
void procmsg();
private:
std::atomic<bool> m_bloop;
BlockingQueue<StateInfo> m_msg;
std::shared_ptr<std::thread> m_threadmsgloop;
std::shared_ptr<KeyMonitor> m_keyMinitor;
const std::map<HgBtn,StateInfo> m_keystats={
{HgBtn::Key_Enter,{HGScannerStatus::Mode_Set_Key_Enter,0}},
{HgBtn::Key_Cancle,{HGScannerStatus::Mode_Set_Key_Back,0}},
{HgBtn::Key_Count,{HGScannerStatus::Mode_Set_Key_Count,0}},
{HgBtn::Key_Handle,{HGScannerStatus::Mode_Set_HandMode,0}},
{HgBtn::Key_DoubleFeed,{HGScannerStatus::Mode_Set_Key_EnDoubleFeed,0}},
{HgBtn::Key_Left,{HGScannerStatus::Mode_Set_Key_Left,0}},
{HgBtn::Key_Menu,{HGScannerStatus::Mode_Set_Key_Manual,0}},
{HgBtn::Key_Right,{HGScannerStatus::Mode_Set_Key_Right,0}},
{HgBtn::Key_Clear,{HGScannerStatus::Mode_Set_Key_ClearCount,0}}
};
};