Move idle_mode out from logic subdir
parent
c3739eaaef
commit
047c76870c
|
|
@ -1,4 +1,4 @@
|
|||
target_sources(firmware PRIVATE main.cpp debug.cpp)
|
||||
target_sources(firmware PRIVATE main.cpp debug.cpp idle_mode.cpp)
|
||||
|
||||
target_link_libraries(firmware LUFA)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,39 +1,36 @@
|
|||
/// @file
|
||||
#include "idle_mode.h"
|
||||
|
||||
#include "../modules/timebase.h"
|
||||
#include "../modules/leds.h"
|
||||
#include "../modules/globals.h"
|
||||
#include "../modules/user_input.h"
|
||||
#include "../modules/finda.h"
|
||||
#include "../modules/fsensor.h"
|
||||
#include "../modules/serial.h"
|
||||
#include "modules/leds.h"
|
||||
#include "modules/globals.h"
|
||||
#include "modules/user_input.h"
|
||||
#include "modules/finda.h"
|
||||
#include "modules/fsensor.h"
|
||||
#include "modules/serial.h"
|
||||
|
||||
#include "command_base.h"
|
||||
#include "cut_filament.h"
|
||||
#include "eject_filament.h"
|
||||
#include "home.h"
|
||||
#include "load_filament.h"
|
||||
#include "move_selector.h"
|
||||
#include "no_command.h"
|
||||
#include "set_mode.h"
|
||||
#include "tool_change.h"
|
||||
#include "unload_filament.h"
|
||||
#include "logic/command_base.h"
|
||||
#include "logic/cut_filament.h"
|
||||
#include "logic/eject_filament.h"
|
||||
#include "logic/home.h"
|
||||
#include "logic/load_filament.h"
|
||||
#include "logic/move_selector.h"
|
||||
#include "logic/no_command.h"
|
||||
#include "logic/set_mode.h"
|
||||
#include "logic/tool_change.h"
|
||||
#include "logic/unload_filament.h"
|
||||
|
||||
#include "../version.h"
|
||||
#include "version.h"
|
||||
|
||||
#include "../panic.h"
|
||||
#include "panic.h"
|
||||
|
||||
/// Global instance of the protocol codec
|
||||
static mp::Protocol protocol;
|
||||
|
||||
namespace logic {
|
||||
|
||||
IdleMode idleMode;
|
||||
|
||||
IdleMode::IdleMode()
|
||||
: lastCommandProcessedMs(0)
|
||||
, currentCommand(&noCommand)
|
||||
, currentCommand(&logic::noCommand)
|
||||
, currentCommandRq(mp::RequestMsgCodes::Reset, 0) {}
|
||||
|
||||
void IdleMode::CheckManualOperation() {
|
||||
|
|
@ -54,22 +51,22 @@ void IdleMode::CheckManualOperation() {
|
|||
case mui::Event::Left:
|
||||
// move selector left if possible
|
||||
if (mg::globals.ActiveSlot() > 0) {
|
||||
moveSelector.Reset(mg::globals.ActiveSlot() - 1);
|
||||
currentCommand = &moveSelector;
|
||||
logic::moveSelector.Reset(mg::globals.ActiveSlot() - 1);
|
||||
currentCommand = &logic::moveSelector;
|
||||
}
|
||||
break;
|
||||
case mui::Event::Middle:
|
||||
// plan load
|
||||
if (mg::globals.ActiveSlot() < config::toolCount) { // do we have a meaningful selector position?
|
||||
loadFilament.Reset(mg::globals.ActiveSlot());
|
||||
currentCommand = &loadFilament;
|
||||
logic::loadFilament.Reset(mg::globals.ActiveSlot());
|
||||
currentCommand = &logic::loadFilament;
|
||||
}
|
||||
break;
|
||||
case mui::Event::Right:
|
||||
// move selector right if possible (including the park position)
|
||||
if (mg::globals.ActiveSlot() < config::toolCount) {
|
||||
moveSelector.Reset(mg::globals.ActiveSlot() + 1); // we allow also the park position
|
||||
currentCommand = &moveSelector;
|
||||
logic::moveSelector.Reset(mg::globals.ActiveSlot() + 1); // we allow also the park position
|
||||
currentCommand = &logic::moveSelector;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
|
@ -106,28 +103,28 @@ void IdleMode::PlanCommand(const modules::protocol::RequestMsg &rq) {
|
|||
// before issuing another one - if needed.
|
||||
switch (rq.code) {
|
||||
case mp::RequestMsgCodes::Cut:
|
||||
currentCommand = &cutFilament;
|
||||
currentCommand = &logic::cutFilament;
|
||||
break;
|
||||
case mp::RequestMsgCodes::Eject:
|
||||
currentCommand = &ejectFilament;
|
||||
currentCommand = &logic::ejectFilament;
|
||||
break;
|
||||
case mp::RequestMsgCodes::Home:
|
||||
currentCommand = &logic::home;
|
||||
break;
|
||||
case mp::RequestMsgCodes::Load:
|
||||
currentCommand = &loadFilament;
|
||||
currentCommand = &logic::loadFilament;
|
||||
break;
|
||||
case mp::RequestMsgCodes::Tool:
|
||||
currentCommand = &toolChange;
|
||||
currentCommand = &logic::toolChange;
|
||||
break;
|
||||
case mp::RequestMsgCodes::Unload:
|
||||
currentCommand = &unloadFilament;
|
||||
currentCommand = &logic::unloadFilament;
|
||||
break;
|
||||
case mp::RequestMsgCodes::Mode:
|
||||
currentCommand = &setMode;
|
||||
currentCommand = &logic::setMode;
|
||||
break;
|
||||
default:
|
||||
currentCommand = &noCommand;
|
||||
currentCommand = &logic::noCommand;
|
||||
break;
|
||||
}
|
||||
currentCommandRq = rq; // save the Current Command Request for indentification of responses
|
||||
|
|
@ -183,7 +180,7 @@ void IdleMode::ReportVersion(const mp::RequestMsg &rq) {
|
|||
|
||||
void IdleMode::ReportRunningCommand() {
|
||||
uint8_t rsp[maxMsgLen];
|
||||
uint8_t len = protocol.EncodeResponseQueryOperation(currentCommandRq, logic::idleMode.RunningCommandStatus(), rsp);
|
||||
uint8_t len = protocol.EncodeResponseQueryOperation(currentCommandRq, RunningCommandStatus(), rsp);
|
||||
modules::serial::WriteToUSART(rsp, len);
|
||||
}
|
||||
|
||||
|
|
@ -260,5 +257,3 @@ void IdleMode::Step() {
|
|||
|
||||
currentCommand->Step();
|
||||
}
|
||||
|
||||
} // namespace logic
|
||||
|
|
@ -1,13 +1,13 @@
|
|||
/// @file
|
||||
#pragma once
|
||||
#include <stdint.h>
|
||||
#include "../modules/timebase.h"
|
||||
#include "../modules/protocol.h"
|
||||
#include "error_codes.h"
|
||||
#include "modules/timebase.h"
|
||||
#include "modules/protocol.h"
|
||||
#include "logic/error_codes.h"
|
||||
|
||||
namespace logic {
|
||||
|
||||
class CommandBase;
|
||||
}
|
||||
|
||||
class IdleMode {
|
||||
public:
|
||||
|
|
@ -44,7 +44,7 @@ private:
|
|||
uint16_t lastCommandProcessedMs;
|
||||
|
||||
/// A command that resulted in the currently on-going operation
|
||||
CommandBase *currentCommand;
|
||||
logic::CommandBase *currentCommand;
|
||||
|
||||
/// Remember the request message that started the currently running command
|
||||
/// For the start we report "Reset finished" which in fact corresponds with the MMU state pretty closely
|
||||
|
|
@ -56,5 +56,3 @@ private:
|
|||
};
|
||||
|
||||
extern IdleMode idleMode;
|
||||
|
||||
} // namespace logic
|
||||
|
|
@ -6,7 +6,6 @@ target_sources(
|
|||
feed_to_bondtech.cpp
|
||||
feed_to_finda.cpp
|
||||
home.cpp
|
||||
idle_mode.cpp
|
||||
load_filament.cpp
|
||||
move_selector.cpp
|
||||
no_command.cpp
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/// @file command_base.cpp
|
||||
#include "command_base.h"
|
||||
#include "idle_mode.h"
|
||||
#include "../idle_mode.h"
|
||||
#include "../modules/globals.h"
|
||||
#include "../modules/finda.h"
|
||||
#include "../modules/fsensor.h"
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
#include "modules/motion.h"
|
||||
#include "modules/usb_cdc.h"
|
||||
|
||||
#include "logic/idle_mode.h"
|
||||
#include "idle_mode.h"
|
||||
|
||||
/// One-time setup of HW and SW components
|
||||
/// Called before entering the loop() function
|
||||
|
|
@ -101,7 +101,7 @@ void setup() {
|
|||
}
|
||||
|
||||
void Panic(ErrorCode ec) {
|
||||
logic::idleMode.Panic(ec);
|
||||
idleMode.Panic(ec);
|
||||
}
|
||||
|
||||
/// Main loop of the firmware
|
||||
|
|
@ -130,7 +130,7 @@ void loop() {
|
|||
hal::cpu::Step();
|
||||
mu::cdc.Step();
|
||||
|
||||
logic::idleMode.Step();
|
||||
idleMode.Step();
|
||||
|
||||
hal::watchdog::Reset();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
# define the test executable
|
||||
add_executable(
|
||||
cut_filament_tests
|
||||
${CMAKE_SOURCE_DIR}/src/idle_mode.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/command_base.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/cut_filament.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/eject_filament.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/feed_to_finda.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/feed_to_bondtech.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/home.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/idle_mode.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/load_filament.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/move_selector.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/no_command.cpp
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
# define the test executable
|
||||
add_executable(
|
||||
eject_filament_tests
|
||||
${CMAKE_SOURCE_DIR}/src/idle_mode.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/command_base.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/cut_filament.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/eject_filament.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/feed_to_finda.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/feed_to_bondtech.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/home.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/idle_mode.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/load_filament.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/move_selector.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/no_command.cpp
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
# define the test executable
|
||||
add_executable(
|
||||
failing_tmc_tests
|
||||
${CMAKE_SOURCE_DIR}/src/idle_mode.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/command_base.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/cut_filament.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/eject_filament.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/feed_to_finda.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/feed_to_bondtech.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/home.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/idle_mode.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/load_filament.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/move_selector.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/no_command.cpp
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
# define the test executable
|
||||
add_executable(
|
||||
feed_to_bondtech_tests
|
||||
${CMAKE_SOURCE_DIR}/src/idle_mode.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/command_base.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/cut_filament.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/eject_filament.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/feed_to_finda.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/feed_to_bondtech.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/home.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/idle_mode.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/load_filament.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/move_selector.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/no_command.cpp
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
# define the test executable
|
||||
add_executable(
|
||||
feed_to_finda_tests
|
||||
${CMAKE_SOURCE_DIR}/src/idle_mode.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/command_base.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/cut_filament.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/eject_filament.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/feed_to_finda.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/feed_to_bondtech.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/home.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/idle_mode.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/load_filament.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/move_selector.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/no_command.cpp
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
# define the test executable
|
||||
add_executable(
|
||||
homing_tests
|
||||
${CMAKE_SOURCE_DIR}/src/idle_mode.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/command_base.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/cut_filament.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/eject_filament.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/feed_to_finda.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/feed_to_bondtech.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/home.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/idle_mode.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/load_filament.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/move_selector.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/no_command.cpp
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
# define the test executable
|
||||
add_executable(
|
||||
load_filament_tests
|
||||
${CMAKE_SOURCE_DIR}/src/idle_mode.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/command_base.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/cut_filament.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/eject_filament.cpp
|
||||
|
|
@ -8,7 +9,6 @@ add_executable(
|
|||
${CMAKE_SOURCE_DIR}/src/logic/feed_to_bondtech.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/feed_to_finda.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/home.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/idle_mode.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/load_filament.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/move_selector.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/no_command.cpp
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
# define the test executable
|
||||
add_executable(
|
||||
tool_change_tests
|
||||
${CMAKE_SOURCE_DIR}/src/idle_mode.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/command_base.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/cut_filament.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/eject_filament.cpp
|
||||
|
|
@ -8,7 +9,6 @@ add_executable(
|
|||
${CMAKE_SOURCE_DIR}/src/logic/feed_to_bondtech.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/feed_to_finda.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/home.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/idle_mode.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/load_filament.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/move_selector.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/no_command.cpp
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
# define the test executable
|
||||
add_executable(
|
||||
unload_filament_tests
|
||||
${CMAKE_SOURCE_DIR}/src/idle_mode.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/command_base.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/cut_filament.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/eject_filament.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/feed_to_finda.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/feed_to_bondtech.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/home.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/idle_mode.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/load_filament.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/move_selector.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/no_command.cpp
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
# define the test executable
|
||||
add_executable(
|
||||
unload_to_finda_tests
|
||||
${CMAKE_SOURCE_DIR}/src/idle_mode.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/command_base.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/cut_filament.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/eject_filament.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/feed_to_finda.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/feed_to_bondtech.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/home.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/idle_mode.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/load_filament.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/move_selector.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/logic/no_command.cpp
|
||||
|
|
|
|||
Loading…
Reference in New Issue