// Data_V3_define.h

/////////////////////////////////////////////////////////////////////////////// 
#define SIZE_NAME_PANEL		   21
#define SIZE_PHONE_NUMBER	   20
#define SIZE_IPADRES	   	   16
#define TIMEOUT_NET		     4000
#define SIZE_DIR			   16
#define PTR_USER			   10	
#define MAX_SECTOR_FILE		   61

#define SET_SPACE_LINE_OFF	    1
#define SET_SPACE_SEG_OFF	    2

#define ATRIBUT_PROGRAM		    0
#define ATRIBUT_CNTROL		    1
#define SIZE_PRG_NAME		   10
#define PROGRAM_SIZE		32000

#define PARAM_SIZE_NAME		   40
#define PARAM_SIZE_ERRTEXT	  100

#define GSM_MODEM_EXCLUDE		0			/* gsm modem neni pouzivan */
#define GSM_MODEM_INCLUDE		1			/* GSM modem je pouzivan */

#define COUNT_COM	20		// maximální počet portů

typedef struct TPCOM		// struktůra komunikačniho portu
{
	char port;					// číslo COM portu
	BYTE panel;					// adresa panelu
	bool OnCheck;				// vypnutí / zapnutí kontrolního součtu  false / true
}TPCOM;

typedef struct TPDATA		// struktura odesíalných / přijímaných dat
{
	int	adr;					// adresa dat
	int	size;					// velikost dat
	BYTE *data;					// pointer na datove pole
}TPDATA;
//-----------------------------------------------------------------------------------------
// datova struktura panelu
typedef struct DataPanel
{
public:
// Zakladni nastaveni
   char  PanelName[SIZE_NAME_PANEL];		// popisovaci jmeno pane
   TPCOM tpcom;								// nastaveni serioveho portu
   BYTE	 EnableGSM;							// nastaveni GSM modemu  0 = neni / 1 = je
   char  PhoneNumber[SIZE_PHONE_NUMBER];	// telefoni cislo
   char  IPadres[SIZE_IPADRES];				// IP adresa port = -1
   long  IPport;							// IP port
   char  IPtime;							// VOLNE
// Nastaveni nacteno z panelu
   char  LoadVer;							// verze nactena z panelu
   char  LoadiFonts;						// pocet fontu
   int	 LoadAdrFonts;						// adresa fontu
   char  LoadNameFonts[16][20];				// jmena fontu
   char	 LoadClaster;						// 
   char  LoadBlokInCL;						// bloku v jednom clastru (jeden blok = 256b)
   WORD  LoadSizeRAM;						// delka pracovni pameti
// Data nactene z panelu
   bool  DataLoad;
   BYTE  DataBOOT[256];  					// kopie boot v pameti pripojeneho panelu
   BYTE  DataFAT[256];						// kopie fat tabluky pripojeneho panelu
   BYTE  DataDIR[SIZE_DIR][256];			// kopie direktorare pripojeneho panelu
   BYTE  DataFileFlash[32];					// jmeno souboru ve flash pameti
// Nastaveni panelu (nastaveni simulatoru)
   COLORREF SetColorLED[15];				// nastaveni simulatoru barvy radku - bodu
   COLORREF SetColorBack;					// nastaveni simulatoru barva pozadi radku
   BYTE  SetColor[15];						// barva led 4 = R, 2 = G, 1 = B
   BYTE  SetShade;							// odstinu na jednu barvu
   char	 SetLine;							// pocet radku panelu
   int	 SetX;								// delka panelu
   int	 SetY;								// vyska radku
   int	 SetVer;							// verze programu - poradove cislo
   char	 SetSegment[5];
   char	 SetSpace;
   char  SetDefaultLS;
   BYTE  SetRTC;							// hodiny RTC
   BYTE  SetAnalog[16];						// nalogove vstupy a comparatory
   BYTE  SetParael[16];						// nastaveni paraelnich vstupu
   BYTE  SetFInput[16];						// nastaveni freqvencnich vstupu
   BYTE  Free[256];							// volne mistor
   LPVOID *pSimulator;						// pointer na simulator
   LPVOID *ptrUser[PTR_USER];
}DATA_PANEL;
// -----------------------------------------------------------------
// struktura programu - prelozeny text
typedef struct prgPANEL
{
public:
	int  nCount;			// delka programu
	BYTE atribut;			// atribut programu
	char name[11];			// jmeno programu
	int	 sizeData;			// velokost datoveho pole
	BYTE *pData;			// datove pole
}prgPANEL;


// Format BOOT sektoru
#define BOOT_VIEW_VER		0x00		/* zobrazeni verze firmvare */
#define BOOT_TEST_RAM		0x01		/* zapnuti testu RAM */
#define BOOT_TEST_EEPROM	0x02        /* zapnuti testu EEPROM */
#define BOOT_TEST_LED		0x03		/* zapnuti testu LED */
#define BOOT_COUNT_CLASTR	0x09		
#define BOOT_COUNT_BLOCK	0x0A
#define BOOT_FAT			0x0B
#define BOOT_DIR			0x0C
#define BOOT_COUT_EE		0x0E
#define BOOT_INT_NAME		0x10		/* jmeno spousteciho programu */
#define BOOT_TIMEOUT_HI		0x20		/* cas ukonceni spojeni pri necinosti milisekundy */
#define BOOT_TIMEOUT_LO		0x21
#define BOOT_CRC_LO			0x8E		/* kontrolni soucet BOOT sektoru */
#define BOOT_CRC_HI			0x8F
