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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
|
/*
* 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_ */
|