aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Drivers/Valves/Valve.h
blob: b9b2cc7d4130ff2fde8c8109a4f35d0fd62d9a74 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/*
 * 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_ */