#region Header
//
// Project: WriteableBitmapEx - WriteableBitmap extensions
// Description: Collection of extension methods for the WriteableBitmap class.
//
// Changed by: $Author: unknown $
// Changed on: $Date: 2015-03-05 18:18:24 +0100 (Do, 05 Mrz 2015) $
// Changed in: $Revision: 113191 $
// Project: $URL: https://writeablebitmapex.svn.codeplex.com/svn/trunk/Source/WriteableBitmapEx/BitmapFactory.cs $
// Id: $Id: BitmapFactory.cs 113191 2015-03-05 17:18:24Z unknown $
//
//
// Copyright © 2009-2015 Rene Schulte and WriteableBitmapEx Contributors
//
// This code is open source. Please read the License.txt for details. No worries, we won't sue you! ;)
//
#endregion
using System;
using System.IO;
using System.Reflection;
#if NETFX_CORE
using Windows.Storage;
using Windows.Storage.Streams;
using System.Threading.Tasks;
using Windows.Graphics.Imaging;
using System.Runtime.InteropServices.WindowsRuntime;
namespace Windows.UI.Xaml.Media.Imaging
#else
namespace System.Windows.Media.Imaging
#endif
{
/// <summary>
/// Cross-platform factory for WriteableBitmaps
/// </summary>
internal static class BitmapFactory
{
/// <summary>
/// Creates a new WriteableBitmap of the specified width and height
/// </summary>
/// <remarks>For WPF the default DPI is 96x96 and PixelFormat is Pbgra32</remarks>
/// <param name="pixelWidth"></param>
/// <param name="pixelHeight"></param>
/// <returns></returns>
internal static WriteableBitmap New(int pixelWidth, int pixelHeight)
{
if (pixelHeight < 1) pixelHeight = 1;
if (pixelWidth < 1) pixelWidth = 1;
#if SILVERLIGHT
return new WriteableBitmap(pixelWidth, pixelHeight);
#elif WPF
return new WriteableBitmap(pixelWidth, pixelHeight, 96.0, 96.0, PixelFormats.Pbgra32, null);
#elif NETFX_CORE
return new WriteableBitmap(pixelWidth, pixelHeight);
#endif
}
#if WPF
/// <summary>
/// Converts the input BitmapSource to the Pbgra32 format WriteableBitmap which is internally used by the WriteableBitmapEx.
/// </summary>
/// <param name="source">The source bitmap.</param>
/// <returns></returns>
internal static WriteableBitmap ConvertToPbgra32Format(BitmapSource source)
{
// Convert to Pbgra32 if it's a different format
if (source.Format == PixelFormats.Pbgra32)
{
return new WriteableBitmap(source);
}
var formatedBitmapSource = new FormatConvertedBitmap();pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #888888 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
.highlight .ch { color: #888888 } /* Comment.Hashbang */
.highlight .cm { color: #888888 } /* Comment.Multiline */
.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
.highlight .c1 { color: #888888 } /* Comment.Single */
.highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #333333 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #666666 } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008800 } /* Keyword.Pseudo */
.highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */
.highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */
.highlight .na { color: #336699 } /* Name.Attribute */
.highlight .nb { color: #003388 } /* Name.Builtin */
.highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */
.highlight .no { color: #003366; font-weight: bold } /* Name.Constant */
.highlight .nd { color: #555555 } /* Name.Decorator */
.highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */
.highlight .nl { color: #336699; font-style: italic } /* Name.Label */
.highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */
.highlight .py { color: #336699; font-weight: bold } /* Name.Property */
.highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #336699 } /* Name.Variable */
.highlight .ow { color: #008800 } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */
.highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */
.highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */
.highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */
.highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */
.highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */
.highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */
.highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */
.highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */
.highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */
.highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */
.highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */
.highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */
.highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */
.highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */
.highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */
.highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */
.highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */
.highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */
.highlight .vc { color: #336699 } /* Name.Variable.Class */
.highlight .vg { color: #dd7700 } /* Name.Variable.Global */
.highlight .vi { color: #3333bb } /* Name.Variable.Instance */
.highlight .vm { color: #336699 } /* Name.Variable.Magic */
.highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */#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 test_RTFU_dancer 1
//#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 DISPESER_TEST
//#define FPGA_WATCHDOG_DISABLE
//#define FOUR_WINDERS
//#define USE_POWERSTEP01 -NA
//#define EMC_FORCE_MOT_CLOCK_INTERNAL
//#define VAC_TEST
//#define SPECIAL_DISPENSERS
extern bool Special_Dispensers;
//#define Use_Head_Card //for real card only
//#define Use_WHS_Card //for real card only
#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// RFID + Dispensers
#define MAX_ERR_SAMPLES 5 //Number of Samples before sending error
#define ERROR_TEMPERATURE_MEASUREMENT 0xFFFF
#define NFC_HARDWARE_RESET 0x01
//#define TEST_POWERSTEP01//send GATECFG parameters to work without sending parameters via machine studio
#define ON 1
#define OFF 0
#define INTERNAL 0
#define EXTERNAL 1
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
#define DONTCARE 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
extern int InitFailures;
/*
#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;
typedef enum
{
OneStep,
Auto,
}StateMachineMode;
//#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_FLAT_WITHOUT_CARD,
HEAD_TYPE_UNKNOWN_WITH_CARD,
HEAD_TYPE_FLAT,
HEAD_TYPE_ARC,
}HEAD_TYPE;
extern uint8_t Head_Type;
//WHS types
typedef enum
{
WHS_TYPE_UNKNOWN,
WHS_TYPE_NEW,
}WHS_TYPE;
extern uint8_t WHS_Type;
extern uint8_t SmallFansCfg;
extern uint8_t LargeFansCfg;
bool Is_PP_Machine(void);
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 enum
{
HEAD_FAN_RIGHT,
HEAD_FAN_LEFT,
MAX_HEAD_FAN,
}HEAD_FAN_ENUM;
typedef enum
{
OPEN_MAGNET,
CLOSE_MAGNET,
DISABLE_MAGNET
}MAGNET_COMMAND_ENUM;
typedef union
{
uint8_t Byte[4];
uint32_t Word;
}Word_to_Bytes;
/*
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;
*/
#define MAX_SYSTEM_DISPENSERS 8
typedef struct
{
uint32_t Header;
uint32_t Table_Length;
uint32_t Table_version;
uint8_t Dispenser_Part_Number[20];//String
uint8_t PCB_SN[20];//String
uint8_t PCB_Part_Number[20];//String
uint8_t Dispenser_SN[20];//String
int32_t Minimal_Pressure;
int32_t Maximal_Pressure;
int32_t Minimal_MV;
int32_t Maximal_MV;
uint32_t Total_Cycles;
uint32_t Bubble_Size;
uint32_t AVG_Nl_Step_Value_1_4;
uint32_t AVG_Nl_Step_Value_2_4;
uint32_t AVG_Nl_Step_Value_3_4;
uint32_t AVG_Nl_Step_Value_4_4;
uint32_t SW_Reserve;
int32_t Spare1_pressure;
int32_t Spare2_pressure;
uint32_t Motor_PPC;
uint32_t color;
uint32_t Pressure_Slope;
uint8_t Production_Test_Date[8];//string
uint32_t ATS_Location;
uint32_t ATS_Channel;
uint32_t Spare1;
uint32_t Spare2;
uint8_t Unit_Empty;
uint8_t Dry_Run_Status;
uint8_t Flow_Status;
uint8_t CheckSum;
}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
#define MAX_CARTRIDGES 3
typedef enum
{
MIDTANK_1,
MIDTANK_2,
MIDTANK_3,
MIDTANK_4,
MIDTANK_5,
MIDTANK_6,
MIDTANK_7,
MIDTANK_8,
NUM_OF_MIDTANKS,
} MidTank_t;
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 */