tx-gxx-linux/device/gxx-linux/testkeymonitor/main.cpp

68 lines
2.4 KiB
C++
Raw Normal View History

2023-05-02 01:50:55 +00:00
#include <stdlib.h>
#include <stdio.h>
#include <sstream>
#include <thread>
#include <iostream>
#include "keymonitor.h"
#include "uartregsaccess.h"
#include "config.h"
#include "DisplayCenter.h"
#include "MenuComponent.h"
int main()
{
MenuComponent m_menu;
m_menu.initmenu();
auto displayCenter = std::shared_ptr<DisplayCenter>(new DisplayCenter());
displayCenter->PutMsg(DisType::Dis_Welcome, 0,ClearScreen::All);
displayCenter->PutMsg(DisType::Dis_Idel, 0,ClearScreen::All);
auto motorregs = std::shared_ptr<IRegsAccess>(new UartRegsAccess(MOTOR_UART, 921600, 0x07, 0x87));
auto keycall = [&](int keyvalye)
{
// std::cout << "keycallback keyvalue= " << keyvalye << std::endl;
// auto key = (KeyMonitor::HGKey)(keyvalye);
// switch (key)
// {
// case KeyMonitor::HGKey::Key_Enter:
// displayCenter->PutMsg(DisType::Dis_Err_AqrImgTimeout, 0);
// break;
// case KeyMonitor::HGKey::Key_Cancle:
// displayCenter->PutMsg(DisType::Dis_Idel, 0);
// break;
// case KeyMonitor::HGKey::Key_Count:
// displayCenter->PutMsg(DisType::Dis_Count_Page, 0);
// break;
// case KeyMonitor::HGKey::Key_Handle:
// displayCenter->PutMsg(DisType::Dis_Err_HandModeJam, 0);
// break;
// case KeyMonitor::HGKey::Key_DoubleFeed:
// displayCenter->PutMsg(DisType::Dis_Err_DoubleFeed, 0);
// break;
// case KeyMonitor::HGKey::Key_Left:
// displayCenter->PutMsg(DisType::Dis_Set_PollPI_Low, 0);
// break;
// case KeyMonitor::HGKey::Key_Menu:
// displayCenter->PutMsg(DisType::Dis_Set_PollPI_Mid, 0);
// break;
// case KeyMonitor::HGKey::Key_Right:
// displayCenter->PutMsg(DisType::Dis_Set_PollPI_High, 0);
// break;
// case KeyMonitor::HGKey::Key_Clear:
// displayCenter->PutMsg(DisType::Dis_Err_PaperScrew, 0);
// break;
// default:
// break;
// }
printf("keyvalue %d ",keyvalye);
m_menu.option(keyvalye);
displayCenter->PutMsg(m_menu.getcurtype(),0,ClearScreen::All);
motorregs->write(0x6, 128);
motorregs->write(0x6, 0);
};
KeyMonitor monitor(keycall);
while (1)
{
std::this_thread::sleep_for(std::chrono::milliseconds(1));
}
return 0;
}