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
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
|
#ifndef DATADEF_H
#define DATADEF_H
#include <stdlib.h>
#include <stdint.h>
#include <stdbool.h>
#include <driverlib/gpio.h>
#include "common/report/report.h"
//#define EVALUATION_BOARD // to use the LCD only when using the evaluation board
//#define USE_USB
#define Stub_Mode 1
#define USE_HIGH_SPEED_GPIO // to use AHB GPIO (A..J) ports A-J APB or AHB, ports K-Q on AHB only
//#define WithTempSensorFiltrer (to use the function Filter_Temparature_Measurement)
//#define DEBUG_TEST_FUNCTIONS
#define HIZ_TIMEOUT 1000
//#define TEST_LONGER_PID_THREAD
//#define HUNDRED_MICROSECONDS_DANCER_READ
#define NO_INITIAL_HEATING
#define MAX_STRING_LEN 255 //Embedded version + filter.c
//#define WATCHDOG
//#define FPGA_WATCHDOG_DISABLE
//#define USE_POWERSTEP01
//#define SPECIAL_DISPENSERS
#define Use_Head_Card //for real card only
#define Use_WHS_Card //for real card only
//#define Test_headCard_With_DispCard_I2C4_Add0xE2_DispID_0
#define I2C_2_Data_Transfer_Rate_400kbps
#define I2C_3_Data_Transfer_Rate_400kbps// Head card + WHS card
#define I2C_4_Data_Transfer_Rate_400kbps
#define MAX_ERR_SAMPLES 5 //Number of Samples before sending error
#define ERROR_TEMPERATURE_MEASUREMENT 0xFFFF
//#define TEST_POWERSTEP01//send GATECFG parameters to work without sending parameters via machine studio
#define ON 1
#define OFF 0
enum
{
PASSED = 0,
FAILED = 1,
NOT_SUPPORTED = 254,
VERIFIED = 255
};
#define OK 0
#define ERROR 1
#define WARNING 2
#define ENABLE 1
#define DISABLE 0
//Valves Directions:
#define MidTank_Dispenser 0
#define Dispenser_Mixer 1
#define Cartridge_MidTank_ON 1
#define Cartridge_MidTank_OFF 0
#define Atm_MidTank_ON 1
#define Atm_MidTank_OFF 0
//waste valve reversed
#define Mixer_Head 1
#define Mixer_Waste 0
#define NEW 0
#define USED 1
#define START 0
#define STOP 1
#define NOSTOP 2
#define CONTINUE 2
#define NOTBUSY 0
#define BUSY 1
//
// motor direction
#define CW 0 // clockwise
#define CCW 1 // counter clockwise
#define TRUE 1
#define FALSE 0
#define INPUT 0x0
#define OUTPUT 0x1
#define PULLDOWN 0
#define PULLUP 1
#define DOWN 0
#define UP 1
#define TX 0
#define RX 1
#define TXRX 2
#define ODD 0
#define EVEN 1
#define READY 0
#define NOTREADY 1
#define WAIT 2
#define LOW 0x0
#define HIGH 0x1
#define LOW_AND_HIGH 0x2
#define WR 0
#define RD 1
#define FLAGSTART 1
#define FLAGSET 1
#define FLAGCLEAR 0
#define IN 2
#define OUT 3
#define INIT 1
#define SKIP_INIT 0
#define byte uint8_t//char
#define boolean bool
#define SERIAL 0x0
#define DISPLAY 0x1
#define LSBFIRST 0
#define MSBFIRST 1
#define CHANGE 1
#define FALLING 2
#define RISING 3
#define CLOSE 0
#define OPEN 1
#define HEAD 0
#define WHS 1
#define DONE 1
#define UNKNOWN 0xFF
#define DRIER_LID_OPEN 0
#define DRIER_LID_CLOSE 2
#define DH_LID_OPEN 0
#define DH_LID_CLOSE 2
#define DOUBLE_BUFFER 2
#define STOPPED 0
#define MOVING 1
/*
#define CurrentMotDriver 0x08
#define VoltageMotDriver 0x00
#define CurrentCombinedMotDriver 0x0108 // 01 Combined Driver, 08 Current
#define VoltageCombinedMotDriver 0x0100 // 01 Combined Driver, 00 Voltage
#define CombinrdMotDriver 0x0300 // 03 Combined Driver + Combined Modes , 00 Voltage mode enabled
*/
typedef enum
{
//Don't change the value!
Current = 0x08,
Voltage = 0x00,
}MOTDRIVER_MODE;
typedef enum
{
Combinrd = 0x00,
Current_Or_Voltage = 0x01,
}SPI_MOT_DRIVER_DIRECTION;
typedef enum
{
UnKnownMotDriver,
CurrentMotDriver,
VoltageMotDriver,
CombinrdMotDriver,
}MOTDRIVER_TYPE;
typedef enum
{
High_Voltage,
Normal_Voltage,
Low_Voltage,
}PowerControlFlag;
//#define MagneticLImitSwitch 0x01
//#define FPGA_Reg_Size_Bits 16
#define FPGA_Freq 29166667
#define MIDTANK_DIRECTION 0
#define MIXER_DIRECTION 1
#define MASK_LOW_BYTE_IN_WORD 0x00FF;
#define MASK_HIGH_BYTE_IN_WORD 0xFF00;
#define STATUS_GREEN_LED_ON ROM_GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_1, GPIO_PIN_1) //Turn ON STATUS Green LED
#define STATUS_RED_LED_ON ROM_GPIOPinWrite(GPIO_PORTS_BASE, GPIO_PIN_0, GPIO_PIN_0) //Turn ON STATUS Red LED
#define ACTIVITY_RED_LED_ON ROM_GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0, GPIO_PIN_0) //Turn ON ACTIVITY Red LED
#define ACTIVITY_GREEN_LED_ON ROM_GPIOPinWrite(GPIO_PORTJ_BASE, GPIO_PIN_0, GPIO_PIN_0) //Turn ON ACTIVITY Green LED
#define COMM_RED_LED_ON ROM_GPIOPinWrite(GPIO_PORTP_BASE, GPIO_PIN_4, GPIO_PIN_4) //Turn ON COMM Red LED
#define COMM_GREEN_LED_ON ROM_GPIOPinWrite(GPIO_PORTJ_BASE, GPIO_PIN_1, GPIO_PIN_1) //Turn ON COMM Green LED
#define STATUS_GREEN_LED_OFF ROM_GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_1, 0) //Turn OFF STATUS Green LED
#define STATUS_RED_LED_OFF ROM_GPIOPinWrite(GPIO_PORTS_BASE, GPIO_PIN_0, 0) //Turn OFF STATUS Red LED
#define ACTIVITY_RED_LED_OFF ROM_GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0, 0) //Turn OFF ACTIVITY Red LED
#define ACTIVITY_GREEN_LED_OFF ROM_GPIOPinWrite(GPIO_PORTJ_BASE, GPIO_PIN_0, 0) //Turn OFF ACTIVITY Green LED
#define COMM_RED_LED_OFF ROM_GPIOPinWrite(GPIO_PORTP_BASE, GPIO_PIN_4, 0) //Turn OFF Red LED LED
#define COMM_GREEN_LED_OFF ROM_GPIOPinWrite(GPIO_PORTJ_BASE, GPIO_PIN_1, 0) //Turn OFF COMM Green LED
#define STATUS_GREEN_LED_CHANGE_MODE ROM_GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_1, (ROM_GPIOPinRead(GPIO_PORTN_BASE, GPIO_PIN_1) ^ GPIO_PIN_1));
#define ACTIVITY_RED_LED_CHANGE_MODE ROM_GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0, (ROM_GPIOPinRead(GPIO_PORTN_BASE, GPIO_PIN_0) ^ GPIO_PIN_0));
#define COMM_RED_CHANGE_MODE ROM_GPIOPinWrite(GPIO_PORTP_BASE, GPIO_PIN_4, (ROM_GPIOPinRead(GPIO_PORTP_BASE, GPIO_PIN_4) ^ GPIO_PIN_4));
#define BIT0 0x0001 //0x01 << 0
#define BIT1 0x0002 //0x01 << 1
#define BIT2 0x0004 //0x01 << 2
#define BIT3 0x0008 //0x01 << 3
#define BIT4 0x0010 //0x01 << 4
#define BIT5 0x0020 //0x01 << 5
#define BIT6 0x0040 //0x01 << 6
#define BIT7 0x0080 //0x01 << 7
#define BIT8 0x0100 //0x01 << 8
#define BIT9 0x0200 //0x01 << 9
#define BIT10 0x0400 //0x01 << 10
#define BIT11 0x0800 //0x01 << 11
#define BIT12 0x1000 //0x01 << 12
#define BIT13 0x2000 //0x01 << 13
#define BIT14 0x4000 //0x01 << 14
#define BIT15 0x8000 //0x01 << 15
#define BIT16 0x00010000 //0x01 << 16
#define BIT17 0x00020000 //0x01 << 17
#define BIT18 0x00040000 //0x01 << 18
#define BIT19 0x00080000 //0x01 << 19
#define BIT20 0x00100000 //0x01 << 20
#define BIT21 0x00200000 //0x01 << 21
#define BIT22 0x00400000 //0x01 << 22
#define BIT23 0x00800000 //0x01 << 23
#define BIT24 0x01000000 //0x01 << 24
#define BIT25 0x02000000 //0x01 << 25
#define BIT26 0x04000000 //0x01 << 26
#define BIT27 0x08000000 //0x01 << 27
#define BIT28 0x10000000 //0x01 << 28
#define BIT29 0x20000000 //0x01 << 29
#define BIT30 0x40000000 //0x01 << 30
#define BIT31 0x80000000 //0x01 << 31
#define MAX_PWM_Command 100
typedef enum
{
//Don't change the value - keep it according to the bits in F3_GPO_02_bus
CART_1 = 1,
CART_2 = 2,
CART_3 = 3,
//-------------
POWER_ON_OFF,
THREAD_JOGGING ,
THREAD_LOAD ,
}PANEL_BUTTON_OR_CRAT_ID;
typedef enum
{
MODE_OFF = 0,
MODE_ON = 1,
}OPERATION_MODE;
/*
typedef enum
{
//according to the bits of the leds in F3_GPO_01_bus
ON_OFF = 1,
THREAD_LOADING = 2,
JOGGING = 3,
}BUTTON;
*/
/*
typedef enum
{
//According to the bits of the leds in F3_GPO_02_bus
CART1 = 1,
CART2 = 2,
CART3 = 3,
}CARTREGE;
*/
typedef union
{
struct
{
uint8_t DRAWER_BIG:1; //bit 0
uint8_t DRAWER_SMALL0:1;//bit 1
uint8_t DRAWER_SMALL1:1;//bit 2
uint8_t DRAWER_SMALL2:1;//bit 3
uint8_t DRAWER_SMALL3:1;//bit 4
uint8_t SYSTEM_FAN0:1; //bit 5
uint8_t SYSTEM_FAN1:1; //bit 6
uint8_t SYSTEM_FAN2:1; //bit 7
}bit;
uint8_t Uchar;
}FANS_STATUS;
enum
{
DRAWER_B,
DRAWER_S0,
DRAWER_S1,
DRAWER_S2,
DRAWER_S3,
SYSTEM_0,
SYSTEM_1,
SYSTEM_2,
MAX_FANS,
}FANS_ID;
//---------------------
#define MaxFlashWords 128 //1K
#define MaxFlashBytes MaxFlashWords*4 //4K Byte
#define MaxBytesForAddress 256 //The addresses to be programmed must not span a 256-byte boundary
extern char *SW_INFO_DIR;
typedef union
{
uint32_t DWords[MaxFlashWords];
uint8_t Bytes[MaxFlashBytes];
}Flash_Union;
//----------------------------
#define LIMIT 0 // Limit Switch
#define NO_LIMIT 1
#define No_Safety_Event 1
#define Safety_Event_Occurred 0
#define No_Over_Current_Event 1
#define Over_Current_Event_Occurred 0
//#define INVERSION_POLARITY_LIMIT 1 // Limit Switch
//#define INVERSION_POLARITY_NO_LIMIT 0
//Dyeing head types
typedef enum
{
HEAD_TYPE_UNKNOWN,
HEAD_TYPE_SYLKO_WITHOUT_CARD,
HEAD_TYPE_SYLKO,
HEAD_TYPE_STAPLE_SPUN,
}HEAD_TYPE;
extern uint8_t Head_Type;
typedef enum
{
DISP_TYPE_UNKNOWN,
DISP_TYPE_WITHOUT_EEPROM,
DISP_TYPE_EEPROM32KB,
DISP_TYPE_EEPROM128KB,
}DISP_TYPE;
typedef enum
{
DEFAULT_POLARITY = 0,//OPTIC_LS , MAGNETIC_LS CARD 2
INVERSION_POLARITY = 1,//MAGNETIC_LS CARD 2 - must be 1 used for xor the polarity
}LS_POLARITY;
typedef enum
{
LS_STATUS_OK = 0,
LS_STATUS_ERROR = 1,
}LS_STATUS;
/*
typedef union
{
struct
{
uint32_t SN; //0-4
uint8_t Version; //5
uint8_t Content; //6
uint8_t Location ; //7
uint8_t Life_Time ; //8
uint32_t Calibration ; //9-12
uint32_t Spare ; //13-15
}bytes;
uint8_t Buf[16];
}DISP_EEPROM;
*/
////////////////////////////////////////////
typedef struct
{
uint32_t SN;
uint32_t Batch_Productions_data;
uint32_t Production_date;
uint32_t Dispenser_Part_Number;
uint32_t PCB_Serial;
uint32_t PCB_Version;
}DISPENSER_DATA;
typedef struct
{
float Humidity;
float Temperature;
}DISPENSER_TEST_AMBIENT;
typedef struct
{
uint16_t Current;
uint16_t Batch;
}DISPENSER_COLOR;
typedef struct
{
float Calibration0;
float Calibration1;
}DISPENSER_CALIBRATION_TABLE;
typedef struct
{
DISPENSER_DATA Dispebser_Data;
uint32_t Calibration_Test_Date ;
uint32_t ATS_location_Slot ;
uint32_t Nl_Pulse_Value ;
uint32_t Flow_Pass_Fail ;
DISPENSER_CALIBRATION_TABLE Calibration_table;
uint32_t Test_TI_Batch;
DISPENSER_COLOR Color;
DISPENSER_TEST_AMBIENT Test_Ambient;
uint32_t Total_Cycles_Working_Time;
uint32_t Spare[5];
}DISP_EEPROM_BYTES;
typedef union
{
DISP_EEPROM_BYTES bytes;
uint8_t Buf[sizeof(DISP_EEPROM_BYTES)];
}DISP_EEPROM;
////////////////////////////////////////////
typedef struct
{
DISP_TYPE Type;
LS_POLARITY LS_Polarity;
DISP_EEPROM Write_Disp_EEPROM;
DISP_EEPROM Read_Disp_EEPROM;
LS_STATUS Status;
}DISP;
DISP Dispenser_struct[8];
//SPI
typedef struct //S_SPI
{
//unsigned char MotID; //- TODO to remove this field
unsigned int TX_MOSI; //32bit (Master Output Slave Input )
unsigned int RX_MISO; //24bit (Master Input Slave Output)
//unsigned int BUSY; //32bit
unsigned char AMT_OF_Words:3; //The amount of spi words (usually byte sized) per transmission (send 4 to 32bit)
}SPI;//SPI
#define SSI_SPI_TIMEOUT 1000
extern void *my_malloc(size_t _size);
extern void my_free(void *_ptr);
extern uint32_t msec_millisecondCounter;
//---------------------------------------------------------------------
#pragma diag_suppress 169 /* Avoid warnings on VOID * conversions (protobuf issue)
The warning:
#169-D argument of type "size_t (*)(const CalculateResponse *, uint8_t *)" is incompatible with parameter of type "size_t (*)(void *, uint8_t *)" Calculate.c /twine_usblib_demo/PMR/Stubs line 53 C/C++ Problem
//#pragma diag_suppress 190 // Avoid the warning - #190-D enumerated type mixed with another type protobuf-c.c
*
or in the environment add command line:
Project -> properties ->
Press on show advanced settings
CCS Build ->
Advanced Options ->
Diagnistic Options ->
Add the warning number in
Supports diagnostic <id> (--diag_suppress, - pds)
169
190
*/
//Project Properties->Build->Compiler->Include Options
//There may be paths there relative to a build variable, rather than hard-coded paths, that may be triggering the error.
//machine 2 only!!!!!!!!!!!
//#define HEAD6_PT100 TEMP_SENSE_ANALOG_MIXCHIP_TEMP
//#define MIXER_PT100 TEMP_SENSE_AN_ENCLOSURETEMP3
//machine 2 only!!!!!!!!!!!
#define HEAD6_PT100 TEMP_SENSE_AN_ENCLOSURETEMP3
#define MIXER_PT100 TEMP_SENSE_ANALOG_MIXCHIP_TEMP
#define LUBRICANT_DISPENSER 7
#define CLEANER_DISPENSER 6
//#define AUTO_HOME_DISPENSERS
extern PackageHandle ControlFilter;
extern PackageHandle HeatersFilter;
extern PackageHandle JobFilter ;
extern PackageHandle WasteFilter ;
extern PackageHandle AlarmFilter ;
extern PackageHandle DiagnosticsFilter;
extern PackageHandle IDSFilter;
extern PackageHandle ThreadFilter;
extern PackageHandle GeneralFilter;
extern PackageHandle CommFilter;
extern PackageHandle FPGAFilter;
extern PackageHandle LoadFilter;
extern PackageHandle InitFilter;
extern PackageHandle MaintFilter;
#ifndef max
#define max(a,b) ((a) > (b) ? (a) : (b))
#endif
#ifndef min
#define min(a,b) ((a) < (b) ? (a) : (b))
#endif
#endif /* DATADEF_H */
|