aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Drivers/Valves/Valve.h
blob: 3643149283e722e25caf6ddb1cb05fb3ede1d69b (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
/*
 * Valve.h
 *
 *  Created on: Apr 29, 2018
 *      Author: avi
 */

#ifndef DRIVERS_VALVES_VALVE_H_
#define DRIVERS_VALVES_VALVE_H_


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_LF,   //MIDTANK2MANIF4_VALVE_2  //        C - Cartridge     //
    VALVE_2W_MID_AIR_RF,   //MIDTANK2MANIF4_VALVE_1  //        L - Left          //
    VALVE_2W_MID_AIR_LMF,  //MIDTANK2MANIF3_VALVE_2  //        R - Right         //
    VALVE_2W_MID_AIR_RMF,  //MIDTANK2MANIF3_VALVE_1  //        F - Front         //
    VALVE_2W_MID_AIR_LMB,  //MIDTANK2MANIF2_VALVE_2  //        B - Back          //
    VALVE_2W_MID_AIR_RMB,  //MIDTANK2MANIF2_VALVE_1  //        M - Middle        //
    VALVE_2W_MID_AIR_LB,   //MIDTANK2MANIF1_VALVE_2  //   --------------------   //
    VALVE_2W_MID_AIR_RB,   //MIDTANK2MANIF1_VALVE_1  //     A   [LB]    A [RB]   //
                                                     //     C   [LB]    C [RB]   //
                                                     //                          //
                                                     //     A   [LMB]   A [RMB]  //
    //Cartridge - Middle Tank                        //     C   [LMB]   C [RMB]  //
    VALVE_2W_CART_MID_LF,  //CART2MIDTANK4_VALVE_2   //                          //
    VALVE_2W_CART_MID_RF,  //CART2MIDTANK4_VALVE_1   //     A   [LMF]   A [RMF]  //
    VALVE_2W_CART_MID_LMF, //CART2MIDTANK3_VALVE_2   //     C   [LMF]   C [RMF]  //
    VALVE_2W_CART_MID_RMF, //CART2MIDTANK3_VALVE_1   //                          //
    VALVE_2W_CART_MID_LMB, //CART2MIDTANK2_VALVE_2   //     A   [LF]    A [RF]   //
    VALVE_2W_CART_MID_RMB, //CART2MIDTANK2_VALVE_1   //     C   [LF]    C [RF]   //
    VALVE_2W_CART_MID_LB,  //CART2MIDTANK1_VALVE_2   //                          //
    VALVE_2W_CART_MID_RB,  //CART2MIDTANK1_VALVE_1   //            FRONT         //
    //---------------------------------------------------------------------------//

    // Waste Valves
    VALVE_WASTE_TANK,
    VALVE_MIXCHIP_WASTECH,

    NUM_OF_VALVES,
} Valves_t;


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
#endif /* DRIVERS_VALVES_VALVE_H_ */