/* * FPGA_GPIO.h * * Created on: May 30, 2018 * Author: avi */ #ifndef DRIVERS_FPGA_FPGA_GPIO_FPGA_GPIO_H_ #define DRIVERS_FPGA_FPGA_GPIO_FPGA_GPIO_H_ #define GPI_TFEED_BREAK_2 0x08 //F1_GPI_EXTWINDER_Direct #define GPI_TFEED_BREAK_1 0x10 //F1_GPI_EXTWINDER_Direct extern bool FPGA_WD_Occurred; typedef enum { //F1_LS_01_Direct GPI_LS_DRYER_SPARE4, //0 GPI_LS_DRYER_SPARE3, //1 GPI_LS_DRYER_SPARE2, //2 GPI_LS_DRYER_SPARE1, //3 GPI_LS_DRYER_LID_OPEN, //4 GPI_LS_DRYER_LID_CLOSED, //5 GPI_LS_DH_SPARE2, //6 GPI_LS_DH_LID_OPEN, //7 GPI_LS_DH_LID_CLOSED, //8 GPI_LS_DH_LID_CLEANING, //9 GPI_LS_DH_CLEAN_UP, //10 GPI_LS_DH_CLEAN_RIGHT, //11 GPI_LS_DH_CLEAN_LEFT, //12 GPI_LS_DH_CLEAN_DOWN, //13 GPI_F1_LS_01_Direct_BIT14, //14 GPI_F1_LS_01_Direct_BIT15, //15 //F1_LS_02_Direct GPI_LS_PIVOT_SPARE2, //16 GPI_LS_PIVOT_SPARE1, //17 GPI_LS_LSPARE2, //18 GPI_LS_LSPARE1, //19 GPI_LS_LPIVOT_UP, //20 GPI_LS_LPIVOT_DOWN, //21 GPI_LS_LOADARM_RIGHT, //22 GPI_LS_LOADARM_LEFT, //23 GPI_LS_LLOADMOTOR_UP, //24 GPI_LS_LLOADMOTOR_DOWN, //25 GPI_LS_LDANCER2_UP, //26 GPI_LS_LDANCER2_DOWN, //27 GPI_LS_LDANCER1_UP, //28 GPI_LS_LDANCER1_DOWN, //29 GPI_F1_LS_02_Direct_BIT14, //30 GPI_F1_LS_02_Direct_BIT15, //31 //F1_LS_03_Direct GPI_LS_SCREW_RIGHT, //32 GPI_LS_SCREW_LEFT, //33 GPI_LS_RSPARE2, //34 GPI_LS_RSPARE1, //35 GPI_LS_RLOADRAM_UP, //36 GPI_LS_RDANCER_LONG, //37 //GPI_LS_RLOADRAM_DOWN GPI_LS_RLOADMOTOR_UP, //38 GPI_LS_RLOADMOTOR_DOWN, //39 GPI_LS_RDANCER_UP, //40 GPI_LS_RDANCER_DOWN, //41 GPI_SW_SPARE, //42 GPI_SW_SPOOL_EXISTS, //43 GPI_F1_LS_03_Direct_BIT12, //44 GPI_F1_LS_03_Direct_BIT13, //45 GPI_F1_LS_03_Direct_BIT14, //46 GPI_F1_LS_03_Direct_BIT15, //47 //LS_01_Direct GPI_LS_DISPENSER_SPARE_1, //48 GPI_LS_DISPENSER_50_1, //49 GPI_LS_DISPENSER_DOWN_1, //50 GPI_LS_DISPENSER_75_1, //51 GPI_LS_DISPENSER_25_1, //52 GPI_LS_DISPENSER_UP_1, //53 GPI_LS_DISPENSER_SPARE_2, //54 GPI_LS_DISPENSER_50_2, //55 GPI_LS_DISPENSER_DOWN_2, //56 GPI_LS_DISPENSER_75_2, //57 GPI_LS_DISPENSER_25_2, //58 GPI_LS_DISPENSER_UP_2, //59 GPI_LS_01_Direct_BIT12, //60 GPI_LS_01_Direct_BIT13, //61 GPI_LS_01_Direct_BIT14, //62 GPI_LS_01_Direct_BIT15, //63 //LS_02_Direct GPI_LS_DISPENSER_SPARE_3, //64 GPI_LS_DISPENSER_50_3, //65 GPI_LS_DISPENSER_DOWN_3, //66 GPI_LS_DISPENSER_75_3, //67 GPI_LS_DISPENSER_25_3, //68 GPI_LS_DISPENSER_UP_3, //69 GPI_LS_DISPENSER_SPARE_4, //70 GPI_LS_DISPENSER_50_4, //71 GPI_LS_DISPENSER_DOWN_4, //72 GPI_LS_DISPENSER_75_4, //73 GPI_LS_DISPENSER_25_4, //74 GPI_LS_DISPENSER_UP_4, //75 GPI_LS_02_Direct_BIT12, //76 GPI_LS_02_Direct_BIT13, //77 GPI_LS_02_Direct_BIT14, //78 GPI_LS_02_Direct_BIT15, //79 //LS_03_Direct GPI_LS_DISPENSER_SPARE_5, //80 GPI_LS_DISPENSER_50_5, //81 GPI_LS_DISPENSER_DOWN_5, //82 GPI_LS_DISPENSER_75_5, //83 GPI_LS_DISPENSER_25_5, //84 GPI_LS_DISPENSER_UP_5, //85 GPI_LS_DISPENSER_SPARE_6, //86 GPI_LS_DISPENSER_50_6, //87 GPI_LS_DISPENSER_DOWN_6, //88 GPI_LS_DISPENSER_75_6, //89 GPI_LS_DISPENSER_25_6, //90 GPI_LS_DISPENSER_UP_6, //91 GPI_LS_03_Direct_BIT12, //92 GPI_LS_03_Direct_BIT13, //93 GPI_LS_03_Direct_BIT14, //94 GPI_LS_03_Direct_BIT15, //95 //LS_04_Direct GPI_LS_DISPENSER_SPARE_7, //96 GPI_LS_DISPENSER_50_7, //97 GPI_LS_DISPENSER_DOWN_7, //98 GPI_LS_DISPENSER_75_7, //99 GPI_LS_DISPENSER_25_7, //100 GPI_LS_DISPENSER_UP_7, //101 GPI_LS_DISPENSER_SPARE_8, //102 GPI_LS_DISPENSER_50_8, //103 GPI_LS_DISPENSER_DOWN_8, //104 GPI_LS_DISPENSER_75_8, //105 GPI_LS_DISPENSER_25_8, //106 GPI_LS_DISPENSER_UP_8, //107 GPI_LS_04_Direct_BIT12, //108 GPI_LS_04_Direct_BIT13, //109 GPI_LS_04_Direct_BIT14, //110 GPI_LS_04_Direct_BIT15, //111 //F1_GPI_EXTWINDER_Direct GPI_F1_GPI_EXTWINDER_3, //112 GPI_F1_GPI_EXTWINDER_2, //113 GPI_F1_GPI_EXTWINDER_1, //114 GPI_F1_GPI_TFEED_BREAK_2, //115 GPI_F1_GPI_TFEED_BREAK_1, //116 GPI_EXTWINDER_Direct_BIT05, //117 GPI_EXTWINDER_Direct_BIT06, //118 GPI_EXTWINDER_Direct_BIT07, //119 GPI_EXTWINDER_Direct_BIT08, //120 GPI_EXTWINDER_Direct_BIT09, //121 GPI_EXTWINDER_Direct_BIT10, //122 GPI_EXTWINDER_Direct_BIT11, //123 GPI_EXTWINDER_Direct_BIT12, //124 GPI_EXTWINDER_Direct_BIT13, //125 GPI_EXTWINDER_Direct_BIT14, //126 GPI_EXTWINDER_Direct_BIT15, //127 //LS_Spare GPI_LS_SPARE2_2, //128 GPI_LS_SPARE1_2, //129 //------------------------------- I2C_HEADCARD_COVER_LS_FRONT, I2C_HEADCARD_COVER_LS_REAR, I2C_HEADCARD_COVER_LS_UPPER, I2C_HEADCARD_ARC_LS_ACTUATOR, I2C_HEADCARD_COVER_LS_ARC, I2C_HEADCARD_COVER_LS_TUNNEL_ARC, //----------------------- MAX_GPI }FPGA_GPI_ENUM; typedef union { struct { unsigned short GPI_LS1_D; unsigned short GPI_LS2_D; unsigned short GPI_LS3_D; unsigned short LS_01; unsigned short LS_02; unsigned short LS_03; unsigned short LS_04; unsigned short GPI_EXTWINDER; }Reg; unsigned short Buf[MAX_GPI/sizeof(unsigned short)]; }FPGA_GPI; extern bool FPGA_Gpi_Buf[MAX_GPI]; void Read_FPGA_GPI_Rgisters(); bool FPGA_Read_limit_Switches(FPGA_GPI_ENUM Limit_Switch); void FPGA_Read_LS_Safty_Ind_Reg(); uint32_t ActivateCleanerPump(); uint32_t DeActivateCleanerPump(); void Power_Off(); void Power_Reset(); //uint8_t Buttons_LEDS(BUTTON Button, OPERATION_MODE LED_Mode); uint8_t Buzzer(OPERATION_MODE Buzzer_Mode); bool Read_PWR_Button();//TODO move to GPIO folder void Read_Buttons_Reg(); bool Get_Thread_Jogging_Button(); bool Get_Thread_Load_Button(); uint32_t Control_WD(bool IsEnable, unsigned char SetTimer_Steps100mSec); uint32_t ActivateChiller(); uint32_t DeActivateChiller(); uint32_t ActivateHeadMagnet(); uint32_t DeActivateHeadMagnet(); uint32_t ReadHeadMagnetBit(); uint32_t DeActivateAllSSR(); uint32_t ReadBreakSensor(); void WHS_Read_GPI_Registers(); bool WHS_GPI_CHILLER_FAULT(); bool WHS_GPI_CHILLER_STAT1(); bool WHS_GPI_WASTE_FLOW_SWITCH(); bool WHS_GPI_WASTE_OVERFULL(); bool WHS_GPI_SW_FILTER_PRES(); bool WHS_GPI_WCONTAINER_FULL(); bool WHS_GPI_WCONTAINER_WARN(); uint8_t GPO_Waste_Pressure_Software_Stop(uint8_t TrueToStop); typedef enum { FrontDoor1_EC, FrontDoor2_PPC, FrontDoor3_DH_DRYER, FrontDoor4_MIDTANKS, CartridgesDoor, RearDoor, DryerDoor, Max_Doors, }COVERS_ENUM; bool Get_COVER_1_State(COVERS_ENUM CoverId); typedef enum { WASTECH_PUMP2, WHS_WTANKPUMP2, }PUMPS_ENUM; extern bool SecondaryPumpActive; void Pumps_Control(PUMPS_ENUM Pump_Id, bool Direction); void PumpActivation(uint32_t seconds); bool IsDryerStopped (void); uint32_t Control_Dryer_Fan(bool StartStop, uint8_t PWM_Command_Precent); bool Check_Disp_Safety_Stop_Indication(uint8_t Dispenser_ID); bool Safety_Incident_Report(); //bool Dryer_Door_Switch(); uint8_t Pannel_Leds(PANEL_BUTTON_OR_CRAT_ID Pannel_Led_Id, OPERATION_MODE LED_Mode); uint8_t Init_Machine_Leds(); bool Is_Cartridge_Present(PANEL_BUTTON_OR_CRAT_ID Cartridge); bool Is_AnyCartridge_presence(); char Read_HW_Version(unsigned char *Brd_ID, unsigned char *Assy_ID); uint32_t ActivateCoolerPump(); uint32_t DeActivateCoolerPump(); #endif /* DRIVERS_FPGA_FPGA_GPIO_FPGA_GPIO_H_ */