/**********************************************************************
 *****  COMMON FILE FOR EVERY GILD-SYSTEM PROJECTS                *****
 *****  (WARNING: do not change constant names				      *****
 *****                                                            *****
 *****  Name: _core_pac.h                                         *****
 *****  Desc: Defines global packet constants                     *****
 *****  Ver.: 1.0                                                 *****
 *****  Date: 01/2011		                                      *****
 *****  Auth: Martin Mechacek		                              *****
 *****  Comp: ESTELAR s.r.o.									  *****
 *****                                                            *****
 *****  Copyright ESTELAR s.r.o. (c) 2010, all rights reserved    *****
 **********************************************************************/ 

#ifndef __CORE_PAC_H
#define __CORE_PAC_H

//////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// definice pro zpracovani paketu ze systemove sbernice
#define PAC_ADDR_MULTICAST			0x0000		// adresa urcena pro vsechny jednotky bez ocekavani odpovedi
#define PAC_ADDR_BROADCAST			0xFFFF		// adresa urcena pro vsechny jednotky s ocekavanim odpovedi

#define PID_MASK					0xff00		// pro maskovani PID
#define PAC_TYPE_MASK				0x0006		// pro maskovani typu zpravy
#define PAC_TYPE_ACK				0x0002		// paket je typu ACK
#define PAC_TYPE_ERR				0x0004		// paket je typu ERR

#define PAC_PARITY_EVEN				0x0001		// doplnek pro sudou paritu hlavicky
#define PAC_FLAG_FIRST				0x0040		// flag pro prvni paket
#define PAC_FLAG_LAST				0x0020		// flag pro posledni paket
#define PAC_FLAG_WRITE				0x0080		// flag pro zapisovy paket


// nahrazuje navratove konstanty v CF3_GILD - navratove kody nemenit!
#define PACKET_MULTICAST			0x0001		// paket pro vsechny jednotky bez ACK 	
#define PACKET_SINGLECAST			0x0002		// paket pro konkretni adresu
#define PACKET_BROADCAST			0x0003		// paket pro vsechny jednotky s ACK
#define PACKET_DH485				0x0009		// pouze pro DH485

// doladit poradi bitu podle vlivu na prioritu zprav - nejnizsi vysledna hodnota ma nejvyssi prioritu
// vyclenit nejake bity pro upravu priority

// tyto kody se take pouzivaji pro systemovy log jednotky
#define SYS_MESSAGE_TIME			0x0100		// systemova informace o aktualnim casu
#define SYS_STATE_CHANGE			0x0200		// zmena na IO portech - zahrnuje vsechny vstupy i vystupy
#define SYS_STATE_INFO				0x0300		// info o stavu na IO portech - zahrnuje vsechny vstupy i vystupy
#define SYS_STATE_READER			0x0400		// cteni karty na ctecce
#define SYS_STATE_MEASURE			0x1400		// cteni analogovych hodnot
#define SYS_DATA_STV				0x0B00		// zavolani jednotky a zjisteni jejiho verze a stavu
#define SYS_DATA_HWX				0x1000		// prenos programovacich dat tabulky CTABLE
#define SYS_DATA_CFG				0x2000		// prenos (cteni) konfiguracnich dat jednotky
#define SYS_DATA_DLL				0x0C00		// prenos provoznich dat jednotky (nazvy a nastaveni IO portu, v budoucnu i pristupova a personalni data
#define SYS_DATA_RDI				0x0D00		// cteni LOGu událostí ??
#define SYS_DATA_CTRL				0x0900		// cteni nebo prime ovladani vstupu/vystupu
#define SYS_DATA_GUI				0x0A00		// ovladani signalizace na cteckach
#define SYS_MESSAGE_ERROR			0x8000		// systemova chyba 
#define SYS_MESSAGE_INFO			0x4000		// hlaseni stavu jednotky

#define SYS_STATE_UNIT				0x0F00		// servisni hlaseni jednotek - na sbernici NEAPLIKOVANO - pouziva se pro interni log GR-U01
// delka dat = 5
// data = SYSTEM_ADDR (4 byte) - adresa jednotky ktera zaznam generovala
//		  CODE (1 byte) - kod hlaseni dle // I N T E R N A L    S T A T E    C O D E S  v _core_err.h

// kody pod-prikazu pouzivanych v SYS_DATA_DLL
#define DLL_IO_DESCRIPTION			0x05		// Textový popis vstupů a výstupů
#define DLL_IO_PRESET				0x0B		// Přednastavení vstupů a výstupů
#define DLL_MAC_DATA				0x10		// zapis MAC adresy pro ctecky
#define DLL_FW_DATA					0x11		// upload noveho firmware
#define DLL_ECR_DATA				0x20		// zapis emergency karet
#define DLL_ECR_REMOVE				0x21		// vymazani emergency karty z pameti

#endif 		// __CORE_PAC_H
