/* * Valve.h * * Created on: Apr 29, 2018 * Author: avi */ #ifndef DRIVERS_VALVES_VALVE_H_ #define DRIVERS_VALVES_VALVE_H_ #define MAX_IDS_UNITS 8 typedef enum { //Dispenser Valves // must be from index 0-7 in order to use Valve3WayModuleCallback and Valve3WayControlId as array of 8 ! VALVE_DISPENSER_1, VALVE_DISPENSER_2, VALVE_DISPENSER_3, VALVE_DISPENSER_4, VALVE_DISPENSER_5, VALVE_DISPENSER_6, VALVE_DISPENSER_7, VALVE_DISPENSER_8, //---------------------------------------------------------------------------// //Dry Air - Middle Tank // A - Air // VALVE_2W_MID_AIR_8, //MIDTANK2MANIF4_VALVE_2 // C - Cartridge // VALVE_2W_MID_AIR_4, //MIDTANK2MANIF4_VALVE_1 // L - Left // VALVE_2W_MID_AIR_7, //MIDTANK2MANIF3_VALVE_2 // R - Right // VALVE_2W_MID_AIR_3, //MIDTANK2MANIF3_VALVE_1 // F - Front // VALVE_2W_MID_AIR_6, //MIDTANK2MANIF2_VALVE_2 // B - Back // VALVE_2W_MID_AIR_2, //MIDTANK2MANIF2_VALVE_1 // M - Middle // VALVE_2W_MID_AIR_5, //MIDTANK2MANIF1_VALVE_2 // -------------------- // VALVE_2W_MID_AIR_1, //MIDTANK2MANIF1_VALVE_1 // A [7] A [8] // // C [7] C [8] // // // // A [5] A [6] // //Cartridge - Middle Tank // C [5] C [6] // VALVE_2W_CART_MID_8, //CART2MIDTANK4_VALVE_2 // // VALVE_2W_CART_MID_4, //CART2MIDTANK4_VALVE_1 // A [3] A [4] // VALVE_2W_CART_MID_7, //CART2MIDTANK3_VALVE_2 // C [3] C [4] // VALVE_2W_CART_MID_3, //CART2MIDTANK3_VALVE_1 // // VALVE_2W_CART_MID_6, //CART2MIDTANK2_VALVE_2 // A [1] A [2] // VALVE_2W_CART_MID_2, //CART2MIDTANK2_VALVE_1 // C [1] C [2] // VALVE_2W_CART_MID_5, //CART2MIDTANK1_VALVE_2 // // VALVE_2W_CART_MID_1, //CART2MIDTANK1_VALVE_1 // FRONT // //---------------------------------------------------------------------------// // Waste Valves VALVE_WASTE_TANK, VALVE_MIXCHIP_WASTECH, NUM_OF_VALVES, } Valves_t; extern Valves_t IDS_Id_to_AirValve[MAX_IDS_UNITS]; extern Valves_t IDS_Id_to_CartrideValve[MAX_IDS_UNITS]; extern bool IgnoreMidTank; extern bool MidTankMitigation; extern int MidTankMitigationOn,MidTankMitigationOff; void Valve_Command(Valves_t Valve_Id); void Valve_Set(Valves_t Valve_Id, bool Direction); void SetAllDispensersValves(bool Direction); uint32_t FPGA_GetDispenserValveBusyOCD(uint32_t ValveId, uint32_t dummy); void FPGA_GetAllDispensersValveBusyOCD(); // MillisecLoop // OCD - Over Current Detection uint32_t Control3WayValvesWithCallback (Valves_t _ValveId, bool direction, callback_fptr callback); //direction: MidTank_Dispenser or Dispenser_Mixer uint8_t Lubricant_2Way_Valve(bool Direction); bool GetLubricantState(void); #endif /* DRIVERS_VALVES_VALVE_H_ */