38 virtual void init() = 0;
39 virtual void setUpInterrupt() = 0;
40 virtual void isr() = 0;
41 virtual Err_t startKnitting(uint8_t startNeedle,
42 uint8_t stopNeedle, uint8_t *pattern_start,
43 bool continuousReportingEnabled) = 0;
44 virtual Err_t initMachine(Machine_t machine) = 0;
45 virtual void encodePosition() = 0;
46 virtual bool isReady() = 0;
47 virtual void knit() = 0;
48 virtual void indState(Err_t error = ErrorCode::success) = 0;
49 virtual uint8_t getStartOffset(
const Direction_t direction) = 0;
50 virtual Machine_t getMachineType() = 0;
51 virtual bool setNextLine(uint8_t lineNumber) = 0;
52 virtual void setLastLine() = 0;
53 virtual void setMachineType(Machine_t) = 0;
72 static void setUpInterrupt();
76 static Err_t startKnitting(uint8_t startNeedle,
77 uint8_t stopNeedle, uint8_t *pattern_start,
78 bool continuousReportingEnabled);
79 static Err_t initMachine(Machine_t machine);
80 static void encodePosition();
81 static bool isReady();
83 static void indState(Err_t error = ErrorCode::success);
84 static uint8_t getStartOffset(
const Direction_t direction);
85 static Machine_t getMachineType();
86 static bool setNextLine(uint8_t lineNumber);
87 static void setLastLine();
88 static void setMachineType(Machine_t);
97 uint8_t stopNeedle, uint8_t *pattern_start,
98 bool continuousReportingEnabled)
final;
103 void indState(Err_t error = ErrorCode::success)
final;
111 void reqLine(uint8_t lineNumber);
116 Machine_t m_machineType;
117 uint8_t m_startNeedle;
118 uint8_t m_stopNeedle;
119 uint8_t *m_lineBuffer;
120 bool m_continuousReportingEnabled;
124 Direction_t m_direction;
125 Direction_t m_hallActive;
126 BeltShift_t m_beltShift;
127 Carriage_t m_carriage;
129 bool m_lineRequested;
130 uint8_t m_currentLineNumber;
133 uint8_t m_sOldPosition;
136 Direction_t m_lastHall;
142 uint8_t m_solenoidToSet;
143 uint8_t m_pixelToSet;
148 FRIEND_TEST(
KnitterTest, test_knit_lastLine_and_no_req);
void stopKnitting() const
Finish knitting procedure.
Definition knitter.cpp:471
bool setNextLine(uint8_t lineNumber) final
Set line number of next row to be knitted.
Definition knitter.cpp:345
void setUpInterrupt() final
Initialize interrupt service routine for Knitter object.
Definition knitter.cpp:90
bool calculatePixelAndSolenoid()
Calculate the solenoid and pixel to be set.
Definition knitter.cpp:391
void init() final
Initialize Knitter object.
Definition knitter.cpp:48
Err_t startKnitting(uint8_t startNeedle, uint8_t stopNeedle, uint8_t *pattern_start, bool continuousReportingEnabled) final
Enter OpState::knit machine state.
Definition knitter.cpp:149
void isr() final
Interrupt service routine.
Definition knitter.cpp:108
void knit() final
Function that is repeatedly called during state OpState::knit
Definition knitter.cpp:242
void indState(Err_t error=ErrorCode::success) final
Send indState message.
Definition knitter.cpp:315
void setLastLine() final
Get value of last line flag.
Definition knitter.cpp:364
void setMachineType(Machine_t) final
Set machine type.
Definition knitter.cpp:372
Machine_t getMachineType() final
Get knitting machine type.
Definition knitter.cpp:323
void reqLine(uint8_t lineNumber)
Send reqLine message.
Definition knitter.cpp:382
uint8_t getStartOffset(const Direction_t direction) final
Get start offset.
Definition knitter.cpp:331
bool isReady() final
Assess whether the Finite State Machine is ready to move from state OpState::init to OpState::ready.
Definition knitter.cpp:201
Err_t initMachine(Machine_t machine) final
Initialize machine type.
Definition knitter.cpp:123
void encodePosition() final
Record current encoder position.
Definition knitter.cpp:187
Definition test_knitter.cpp:51