40 lines
761 B
C++
40 lines
761 B
C++
#pragma once
|
|
#include "pinConfigNode.hpp"
|
|
#include "FreeRTOS.h"
|
|
#include "queue.h"
|
|
#include "semphr.h"
|
|
|
|
enum STONE_STATE {
|
|
EMPTY = 0b00, FULL = 0b10, LOW = 0b01
|
|
};
|
|
|
|
void vHeadTaskFn(void *pvParameters);
|
|
|
|
class HeadSystem {
|
|
private:
|
|
unsigned int motor_chopper1_slice_num;
|
|
unsigned int motor_chopper2_slice_num;
|
|
unsigned int motor_z_axis_slice_num;
|
|
|
|
bool headUp = false;
|
|
|
|
STONE_STATE stoneState;
|
|
xQueueHandle headStateQueue;
|
|
xSemaphoreHandle headSateSemaphore;
|
|
xTaskHandle headTaskHandle;
|
|
|
|
public:
|
|
HeadSystem();
|
|
|
|
void initPins();
|
|
|
|
void setChopper(bool open1, bool open2);
|
|
void setHeadUp(bool up);
|
|
|
|
bool preLoad();
|
|
STONE_STATE dropStone();
|
|
|
|
STONE_STATE dropSequence();
|
|
|
|
void vHeadTask();
|
|
}; |