You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
1.2 KiB
C++
93 lines
1.2 KiB
C++
|
3 years ago
|
#include "Run.h"
|
||
|
|
#include <iostream>
|
||
|
|
|
||
|
|
Run::Run() {
|
||
|
|
// constructor
|
||
|
|
m_bExit = false;
|
||
|
|
m_bHalt = false;
|
||
|
|
m_state = IDLE;
|
||
|
|
|
||
|
|
m_myThread = std::thread(&Run::DoTask, this);
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
Run::~Run()
|
||
|
|
{
|
||
|
|
}
|
||
|
|
|
||
|
|
void Run::Maintenance()
|
||
|
|
{
|
||
|
|
std::cout << "Maintenance";
|
||
|
|
}
|
||
|
|
|
||
|
|
void Run::Auto()
|
||
|
|
{
|
||
|
|
std::cout << "Auto";
|
||
|
|
}
|
||
|
|
|
||
|
|
void Run::PowerUp()
|
||
|
|
{
|
||
|
|
std::cout << "PowerUp";
|
||
|
|
}
|
||
|
|
|
||
|
|
void Run::DoTask()
|
||
|
|
{
|
||
|
|
while (true)
|
||
|
|
{
|
||
|
|
std::cout << "DoTask";
|
||
|
|
|
||
|
|
|
||
|
|
switch (m_state)
|
||
|
|
{
|
||
|
|
case POWERUP:
|
||
|
|
{
|
||
|
|
PowerUp();
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
|
||
|
|
case AUTO:
|
||
|
|
{
|
||
|
|
Auto();
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
|
||
|
|
case MAINTENANCE:
|
||
|
|
{
|
||
|
|
Maintenance();
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
|
||
|
|
case IDLE:
|
||
|
|
{
|
||
|
|
std::cout << "Idling...";
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
|
||
|
|
default:
|
||
|
|
{
|
||
|
|
std::cout << "Unknown State";
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
if (m_bExit) return;
|
||
|
|
if (m_bHalt) continue;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
void Run::setState(STATES s)
|
||
|
|
{
|
||
|
|
|
||
|
|
m_state = s;
|
||
|
|
}
|
||
|
|
|
||
|
|
void Run::EndTask()
|
||
|
|
{
|
||
|
|
m_bExit = true;
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
void Run::WaitThreadTerminate()
|
||
|
|
{
|
||
|
|
m_myThread.join();
|
||
|
|
}
|