#ifndef BMS_DEFSs
#define BMS_DEFSs
#define USHORT unsigned short
#define UBYTE unsigned char

#include "BMSD_Defs.h"


/************************************
* definitions of MeteoeServerTools *
************************************/

///////////////////////////////////////////
// Messages 
///////////////////////////////////////////

#define WM_BONITO_USER_MESSAGES (WM_USER+6000)
//Bonito send messages to your application
#define WM_CLIENT_LOGIN 	(WM_BONITO_USER_MESSAGES+945) 	//your application announces that it is started now 
#define WM_CLIENT_LOGOUT 	(WM_BONITO_USER_MESSAGES+946) 	//your application announces that it is out of service now

#define WM_METEOCOM_LOGIN 	(WM_BONITO_USER_MESSAGES+950) 	//the MeteoCom Program announces that it is started now 
#define WM_METEOCOM_LOGOUT 	(WM_BONITO_USER_MESSAGES+951) 	//the MeteoCom Program announces that it is out of service now

#define WM_BONITO_PICFILE 	(WM_BONITO_USER_MESSAGES+960) 	//start the total refresch of your PictureFilesList (fax images files)
#define WM_BONITO_TXTFILE 	(WM_BONITO_USER_MESSAGES+961) 	//start the total refresch of your TextFilesList
#define WM_BONITO_SYNFILE 	(WM_BONITO_USER_MESSAGES+965) 	//start the total refresch of your SynopFilesList

#define WM_BONITO_DNL_POS 	(WM_BONITO_USER_MESSAGES+970) 	//if download then set dnl progress 
#define WM_BONITO_DNL_TXT 	(WM_BONITO_USER_MESSAGES+971) 	//if download then set dnl progress text
#define WM_BONITO_DNL_SUMPOS 	(WM_BONITO_USER_MESSAGES+972) 	//if download then set sum progress 
#define WM_BONITO_DNL_COMPOS 	(WM_BONITO_USER_MESSAGES+973) 	//if compute then set compute progress 
#define WM_BONITO_DNL_QUIT 	(WM_BONITO_USER_MESSAGES+974) 	//was download then set the new situation
#define WM_BONITO_DNL_ERROR 	(WM_BONITO_USER_MESSAGES+975) 	//for download error message --> get ErrorMessages.log

#define WM_METEOCOM_COL_CHANGE 	(WM_BONITO_USER_MESSAGES+980) 	//start the total refresch of the color matrix
#define WM_METEOCOM_DAT_CHANGE 	(WM_BONITO_USER_MESSAGES+981) 	//start the total refresch of intern net meteo data reference

#define WM_METEOCOM_SCROLL_POS 	(WM_BONITO_USER_MESSAGES+990) 	//scroll your slider position

///////////////////////////////////////////
// DLL parameter
////////////////////////////////////////

typedef struct 
	{
	char 	MeteoAccessDir[512]; 	//the current directory MeteoCom, who the system lives
	char 	MeteoColorDir[512]; 	//the current directory of color register
	char 	MeteoDataDir[512]; 	//the current directory of MeteoCom Data
	char 	MeteoExecute[512]; 	//the current name for execute the MeteoCom 
	char 	MeteoViewer[512]; 	//the current name for execute the MeteoViwer 
	char 	RadioDir[512]; 		//the current directory for RadioControl
	char 	RadioSynopDir[512]; 	//the current directory of Radio Synopfiles
	char 	ImagesDir[512]; 	//the current directory of Images
	char 	TextDir[512]; 		//the current directory of radio reveived Textes
	char 	NetDir[512]; 		//if this set, then is it a Network installation
	HWND 	MeteoComHWND; 		//intern: the handle to the MeteoCom window
	HWND 	MeteoViewerHWND; 	//intern: the handle to the MeteoViewer window
	int 	grid_win_left; 		//intern: the last used left coordinate
	int 	grid_win_top; 		//intern: the last used top coordinate
	int 	grid_win_bottom; 	//intern: the last used bottom coordinate
	int 	grid_win_right; 	//intern: the last used right coordinate
	int 	grid_win_xres; 		//intern: the last loaded data x-resulution
	int 	grid_win_yres; 		//intern: the last loaded data x-resulution
	int 	grid_win_max; 		//intern:
	int 	grid_win_x; 		//intern:
	int 	grid_win_y; 		//intern:
	int 	iso_width[PLANE_MAXTYPE]; //the last array of loaded line width  (PLANE_MAXTYPE == 11)
	int 	refresch; 		//non zero force the redraw in the DrawingTools
	void 	*tmp; 			//intern: 
	int 	meteocom_start; 	//intern (have meteoCom started or was it self standby)
	int 	RadioControlExist; 	//is 1 if a RadioControl exist
	short 	GridSize; 		//0=small, 1=medium, 2=large
	short 	flag; 			//temperure in farenheit=1;  
	} BMSDLL_DATA;


///////////////////////////////////////////
// screen grids - drawings - colors
///////////////////////////////////////////

typedef struct 
	{
	BYTE 	prmsl; 	//scaled Pressure in [hPa] 900+prmsl 0 = no data of Pressure 
	BYTE 	temp; 	//scaled Temperature in [C] temp-128 0 = no data of Temperature
	BYTE 	wtemp; 	//scaled Water Temp. in [C] temp-128 0 = no data of Water Temperature
	BYTE 	btcdc; 	//scaled Cloud Coverage in [%] btcdc 0 = no Clouds 128=not valid
	BYTE 	prcpt; 	//scaled Precipitation in [mm/h] 0.1 mm prcpt 0 = no Precipitation
	BYTE 	weasd; 	//scaled Snow deep in [cm/h] 1.0 cm weasd 0 = no snow
	BYTE 	wind; 	//wind speed in [m/s] 0.25 * wind wind==0 = no data of wind speed
	BYTE 	wdir; 	//wind direction in [°] 1.40625 * wdir wdir==0 = no data of wind direction
	BYTE 	rh; 	//relative humidity
	BYTE 	pflag; 	//type of precipitation flags ics, snow, rain ....
	BYTE 	htsgw; 	//Sig height of waves in [m] 0.25 * htsgw htsgw==0 = no data of waves height
	BYTE 	wvdir; 	//Dir of wind waves in [°] 1.40625 * wvdir wvdir==0 = no data of waves direction
	short 	lon; 	//lon in minutes of bonito world grid system left=-10800=180W top= -5400=90N 
	short 	lat; 	//lat in minutes of bonito world grid system right=10800=180E bottom= 5400=90S 
	short 	x; 	//sreen x pixel left = 0 top=0
	short 	y; 	//sreen y pixel right bottom = positive values
	}SCREEN_GRID_DATA;
typedef CArray<SCREEN_GRID_DATA,SCREEN_GRID_DATA&> ScreenGridData;


//matrix of colors of a meteo drawing value
//this is in references to SCREEN_GRID_DATA
// !!! the size of this matrix must be always a array of 256 x COLOR_MATRIX

typedef struct
	{
	COLORREF press; 	// pressure color scale 
	COLORREF airtemp; 	// temperature color scale
	COLORREF sfctemp; 	// water / surface temperature color scale
	COLORREF wind; 		// Speed of Wind color scale (in Beaufort)
	COLORREF clouds; 	// cloud color scale
	COLORREF prcpt; 	// Precipitation color scale
	COLORREF weasd; 	// Snow deep color scale
	COLORREF waves; 	// wave height color scale
	COLORREF rh; 		// Relative humidity color scale
	COLORREF bathy; 	// color scale of the bathymetry (sea and land)
	}COLOR_MATRIX;

typedef CArray<COLOR_MATRIX,COLOR_MATRIX&> ColorMatrix;
//the parameter set of symbol dimension
typedef struct
	{
	//the grid width
	int GRIDWIDTH; 		//grid point width = computings resolution (in screen pixel)
	int GRIDMIDDLE; 	//the middle dot of the quader 
	int SYMBOLGRID; 	//symbol grid resolution (in screen pixel)
	int SYMBOLMIDDEL; 	//the middle of SYMBOLGRID
	int SYMBOLHALFMID; 	//the half middel of SYMBOLGRID
	int SYMBOLTOP; 		//symbol top set line for figures

	//drawing lenghts for a wind direction arrow
	double ARROW_LEN; 	//the lenght of the arrow
	double ARROW_LEN_MID; 	//the radius of middle point of then arrow
	double ARROW_WING; 	//the wing lenght of the arrow 

	//Figures Font Size
	int FIG_HEIGHT; 	//the Font.lfHeight of a figures
	int FIG_WEIGHT; 	//the Font.lfWeight of a figures

	// the symbol scale
	double ObjectScale; 	//the scale of the symbols - size default use 0.02 /.025 / 0.03 
	}DRAW_PARA;

///////////////////////////////////////////
// picture, synop and text file lists
///////////////////////////////////////////



//Size of a mini picture (BonitoTumb)
#define FAX_LPIC_X 	128 	//bmWidth 
#define FAX_LPIC_Y 	102 	//bmHeight
#define FAX_LPIC_W 	384 	//bmWidthBytes = FAX_LPIC_X*3
#define FAX_LPIC_P 	1 	//bmPlanes
#define FAX_LPIC_B 	24 	//bmBitsPixel
#define FAX_DATA_LEN 	39168 	//FAX_LPIC_X*FAX_LPIC_Y*3



typedef struct 
	{
	char 	filepath[1024];
	char 	filename[248];
	char 	itemname[248];
	char 	sortname[248];
	int 	sat;
	int 	channel;
	int 	sector;
	int 	color;
	time_t 	filedate;
	int 	select;
	int 	flag;
	int	filelen;
	int 	FavoMark;
	int 	Fselect;
	int 	Sselect;
	time_t 	TrashCleanDate;
	int 	height;
	int	width;
	}PICFILELIST;

typedef CArray<PICFILELIST,PICFILELIST&> PictureFileList;


//Text Folders
#define FILE_ID_EU 	3 	//EUROPE
#define FILE_ID_EW 	5 	//WEST.EUROPE 
#define FILE_ID_EN 	7 	//NORTH EUROPE
#define FILE_ID_MM 	9 	//MEDITERRA
#define FILE_ID_ME 	11 	//WEST.MEDITERRA
#define FILE_ID_MW 	13 	//EAST.MEDITERRA
#define FILE_ID_NO 	15 	//NORTHSEA
#define FILE_ID_BA 	17 	//BALTIC
#define FILE_ID_NV 	19 	//NAVTEX
#define FILE_ID_WA 	21 	//WARNINGS
#define FILE_ID_IN 	23 	//DIVERSE / INFOS
#define FILE_ID_SYN 	25 	//SYNOP
#define FILE_ID_XA 	27 	//AAXX
#define FILE_ID_XB 	29 	//BBXX
#define FILE_ID_NZ 	40 	//Notizes

//RED label for Warnings
#define WFILE_ID_EU 	41 	//EUROPE
#define WFILE_ID_EW 	42 	//WEST.EUROPE 
#define WFILE_ID_EN 	43 	//NORTH EUROPE
#define WFILE_ID_MM 	44 	//MEDITERRA
#define WFILE_ID_ME 	45 	//WEST.MEDITERRA
#define WFILE_ID_MW 	46 	//EAST.MEDITERRA
#define WFILE_ID_NO 	47 	//NORTHSEA
#define WFILE_ID_BA 	48 	//BALTIC

#define DIR_ID_RX 	1 	//RX-LIVE 

#define DIR_ID_EU 	2 	//EUROPE
#define DIR_ID_EW 	4 	//WEST.EUROPE 
#define DIR_ID_EN 	6 	//NORTH EUROPE
#define DIR_ID_MM 	8 	//MEDITERRA
#define DIR_ID_ME 	10 	//WEST.MEDITERRA
#define DIR_ID_MW 	12 	//EAST.MEDITERRA
#define DIR_ID_NO 	14 	//NORTHSEA
#define DIR_ID_BA 	16 	//BALTIC
#define DIR_ID_NV 	18 	//NAVTEX
#define DIR_ID_WA 	20 	//WARNINGS
#define DIR_ID_IN 	22 	//DIVERSE / INFOS 

#define DIR_ID_SYN 	24 	//SYNOP 
#define DIR_ID_XA 	26 	//AAXX 
#define DIR_ID_XB 	28 	//BBXX

#define DIR_ID_L1 	30 	//1.Radio
#define DIR_ID_L2 	31 	//2.Radio
#define DIR_ID_L3 	32 	//3.Navtex Radio
#define DIR_ID_LX 	33 	//live not active
#define DIR_ID_B0 	34 	//MEM
#define DIR_ID_B1 	35 	//MEM BANK1
#define DIR_ID_B2 	36 	//MEM BANK2
#define DIR_ID_B3 	37 	//MEM BANK3
#define DIR_ID_TR 	38 	//TRASH
#define DIR_ID_NZ 	39 	//Notizes

//Text Types
#define TXT_TYPE_RX 	0x80	//"LIVE RX"
#define TXT_TYPE_DR 	0x40	//"DIRECTORY"
#define TXT_TYPE_XX 	0 	//"UNKNOW"
#define TXT_TYPE_WO 	1 	//"WARNING"
#define TXT_TYPE_FQ 	2 	//"WEATHER-REPORT" 
#define TXT_TYPE_FE 	3 	//"FORCAST"
#define TXT_TYPE_NO 	4 	//"NOTICES"
#define TXT_TYPE_SX 	5 	//"STATION-REPORT"
#define TXT_TYPE_SM 	6 	//"SYNOP-DATA"
#define TXT_TYPE_SS 	7 	//"SYNOP-DATA"
#define TXT_TYPE_WW 	8 	//"NAV-WARNINGS"
#define TXT_TYPE_IN 	9 	//"INFO"


typedef struct 
	{
	char 		filepath[256];
	char 		filename[48];
	char 		itemname[32];
	char 		sortname[32];
	time_t 		filedate;
	HTREEITEM 	hItem;
	int 		dirID; 		//DIR_ID_EU TEXT_FILE_BA, .....
	int 		TreeDirID; 	//DIR_ID_EU TEXT_FILE_BA, .....
	int 		validtime;
	int 		texttype;
	int 		flag;
	int 		reserve[2];
	}RTFFILENAME;

typedef CArray<RTFFILENAME,RTFFILENAME&> TextFileList;

typedef struct 
	{
	char 		filepath[256];
	char 		apendix[16];
	char 		satname[64];
	char 		text[64];
	int 		home_select;
	int 		mobile_select;
	int 		flag;
	int 		sat;
	int 		sector;
	int 		channel;
	int 		color;
	}IMGSYNLIST;

typedef CArray<IMGSYNLIST,IMGSYNLIST&> ImgSynFileList;

///////////////// SYNOP ************ no comment in englich - to complex ****************SYNOP /////////////////

#define K2SIZ 		80
#define STSIZ 		20
#define SYNOPPRINT 	1
#define SYNOPVIEW 	0

#define D_CLOUDS 	(0x00000001)
#define D_TEMP 		(0x00000002)
#define D_PRESS 	(0x00000004)
#define D_WIND 		(0x00000008)

#define R_STATION 	(0x00010000)
#define R_TEMP 		(0x00020000)
#define R_PRESS 	(0x00040000)
#define R_WIND 		(0x00080000)
#define R_ISOBAR 	(0x00100000)
#define PARTITION 	(0x00200000)

//Synopflags

#define SY_LUFTD 	(0x00010000)
#define SY_TEMP 	(0x00020000)
#define SY_WOLK 	(0x00040000)
#define SY_WELL 	(0x00080000)
#define SY_SONST 	(0x80000000)

//********************************************************************************
//* Flags, die das Vorhandensein einzelner Messwerte definieren *
//********************************************************************************
#define VALID 		(0x00000001L) // gültige Meldung 
#define NOTAVAIL 	(0x00000002L) // keine Daten verfügbar 
#define HSB 		(0x00000004L) // horizontale Sichtweite am Boden 
#define WRICHT 		(0x00000008L) // Richtung, aus der der Wind weht 
#define WGES 		(0x00000010L) // Windgeschwindigkeit 
#define LTEMP 		(0x00000020L) // Lufttemperatur 
#define TTEMP 		(0x00000040L) // Taupunkttemperatur 
#define RELF 		(0x00000080L) // relative Luftfeuchtigkeit 
#define PSTAT 		(0x00000100L) // Luftdruck in Stationshöhe 
#define PMEER 		(0x00000200L) // Luftdruck in Meereshöhe 
#define PDF 		(0x00000400L) // Höhe einer Standarddruckfläche 
#define LDA 		(0x00000800L) // Lufdruckänderung letzte 3 Stunden 
#define NDS 		(0x00001000L) // Niederschlagsmenge 
#define GGW 		(0x00002000L) // gegenwärtiges Wetter 
#define GGWA 		(0x00004000L) // gegenwärtiges Wetter von aut.Station 
#define WOLKEN 		(0x00008000L) // Art der Wolken verschiedener Höhen 
#define KURS 		(0x00010000L) // Kurs und Geschwindigkeit des Schiffs 
#define MTEMP 		(0x00020000L) // Meeresoberflächentemperatur 
#define WELLE 		(0x00040000L) // Wellenperiode, -höhe 
#define WINDSEE 	(0x00080000L) // Windseeperiode, -höhe 
#define DUENUNG 	(0x00100000L) // Richtung 1. und 2. Dünung 
#define D1WELLE 	(0x00200000L) // Wellenperiode, -höhe der 1. Dünung 
#define D2WELLE 	(0x00400000L) // Wellenperiode, -höhe der 2. Dünung 
#define EISANSATZ 	(0x00800000L) // Eisansatz an Schiffen 
#define TMAX 		(0x01000000L) // höchste Temperatur d. letzten 12 Std 
#define TMIN 		(0x02000000L) // tiefste Temperatur d. letzten 12 Std 
#define TMINB 		(0x04000000L) // tiefste Bodentemp. der letzten Nacht 
#define STIEF 		(0x08000000L) // Schneetiefe 
#define PWOLKEN 	(0x10000000L) // präzise Angaben zu Wolkentypen 
#define UWOLKEN 	(0x20000000L) // Wolken unterhalb der Station 
#define RUFZ 		(0x40000000L) // Rufzeichen eines Schiffes 

typedef struct
	{
	int 	wz; 		// Stations-IndexNbr des Wetterzentrums
	int 	mess; 		// Stations-IndexNbr der Messstation
	DWORD 	flags; 		// Synop-Flags
	time_t 	time; 		// Uhrzeit der Meldung (UTC)
	time_t 	mtime; 		// Uhrzeit der Messung (UTC)
	short 	lat; 		// Station/SHIP Latitude in Minuten
	short 	lon; 		// Station/SHIP Longitude in Minuten
	short 	height; 	// Station/SHIP Höhe in Meter
	short 	msg; 		// laufende Nummer der Meldung
	short 	wricht; 	// Richtung, aus der Wind weht
	short 	ltemp; 		// Lufttemperatur in 1/10°
	short 	ttemp; 		// Taupunkttemperatur in 1/10°
	short 	mtemp; 		// Meeresoberflächentemp. in 1/10°
	short 	tmin; 		// tiefste Temp. der letzten 12 Std in 1/10°
	short 	tmax; 		// höchste Temp. der letzten 12 Std in 1/10°
	short 	relf; 		// relative Luftfeuchtigkeit in %
	short 	pstat; 		// Luftdruck in Stationshöhe in 1/10 hPa
	short 	pmeer; 		// Luftdruck in Meereshöhe in 1/10 hPa
	short 	pdf; 		// Höhe einer Standarddruckfläche in m
	short 	stdf; 		// Standarddruckfläche in hPa
	short 	lda; 		// Luftdruckänderung der letzten 3 Std 1/10 hPa
	short 	nds; 		// Niederschlagsmenge in 1/10 mm
	short 	hwel; 		// Höhe der Wellen in 0.1 m
	short 	stief; 		// Schneetiefe in cm (bis 996)
	short 	bojenum;	// Seriennummer der Boje
	BYTE 	ctype; 		// Codetyp
	char 	descmsg[3]; 	// DBKenner: Text der Meldungsart
	char 	descarea[3];	// DBKenner: Text der geographischen Herkunft
	char 	descext[5]; 	// DBKenner: Text des erweiterten Kopfes
	BYTE 	range; 		// Kennzeichnung des Verbreitungsgrades
	BYTE 	wges; 		// Windgeschwindigkeit, Einheit windbst
	char 	desctyp; 	// Kennbuchstabe der Meldungsart
	char 	windbst; 	// Art der Windbestimmung
	char 	ndsk; 		// Angabe, ob Niederschlagsdaten vorhanden
	char 	twet; 		// Angabe Stationstyp, Wetter
	char 	twh[3]; 	// DBKenner: Untergrenze der tiefsten Wolken
	char 	hsb; 		// horizontale Sichtweite am Boden
	char 	bed; 		// Bedeckungsgrad mit Wolken
	char 	ldaa; 		// Art der Luftdruckänderung der letzten 3 Std
	char 	ndsz; 		// Zeitraum der Niederschlagsmessung
	char 	ggw; 		// gegenwärtiges Wetter
	char 	wocl; 		// Art der tiefen Wolken
	char 	wocm; 		// Art der mittelhohen Wolken
	char 	woch; 		// Art der hohen Wolken
	char 	wobed; 		// Bedeckungsgrad mit CL oder CM Wolken
	char 	kurs; 		// Richtung des Schiffes
	char 	tempo; 		// Geschwindigkeit des Schiffes
	char 	pwel; 		// Periode der Wellen in sec
	char 	pwse; 		// Periode der Windsee in sec
	char 	hwse; 		// Höhe der Windsee in 0.5 m
	char 	ddir1; 		// Richtung der 1. Dünung in 10°
	char 	ddir2; 		// Richtung der 2. Dünung in 10°
	char 	pwd1; 		// Periode der Wellen 1. Dünung in sec
	char 	hwd1; 		// Höhe der Wellen 1. Dünung in 0.5 m
	char 	pwd2; 		// Periode der Wellen 2. Dünung in sec
	char 	hwd2; 		// Höhe der Wellen 2. Dünung in 0.5 m
	char 	eaa; 		// Art des Eisansatzes an Schiffen
	char 	ead; 		// Dicke des Eisansatzes an Schif.in cm
	char 	eac; 		// Änderung des Eisansatzes an Schiffen
	char 	tminb; 		// tiefste Bodentemp. letzter Nacht in °
	char 	bozos; 		// Bodenzustand ohne Schnee / Eisdecke
	char 	bozms; 		// Bodenzustand mit Schnee / Eisdecke
	char 	pwob[10]; 	// Bedeckungsgrad PWOLKEN in 1/8
	char 	pwoh[10]; 	// Höhen der präzisen Wolkentypen
	char 	uwob; 		// Bedeckungsgrad Wolken unter Station in 1/8
	char 	uwoa; 		// Art der Wolken unterhalb der Station
	char 	uwoh; 		// Höhe der Wolkenoberfläche unterhalb der Station
	char 	uwod; 		// Oberflächenbeschreibung Wolken unterhalb der Station
	char 	shipreg; 	// Region + Unterregion Schiffsstandort
	char 	rufz[8];	// Schiffsrufzeichen
	} SYN_DATA;

typedef struct
	{
	int 	IndexNbr; 	// Station identifier
	short 	lat; 		// Station Latitude in Minutes (Y)
	short 	lon; 		// Station Longitude in Minutes (X)
	short 	height; 	// Station Height in Meters
	char 	ICAO[5]; 	// ICAO Airport identifier
	char 	Region[51]; 	// WMO Region
	char 	Country[81];	// Country or Area
	char 	Station[51];	// Station Name
	} SYN_STATION;

#endif

typedef struct 
	{ //BMSYND = Bonito Meteo Server Synop Data set
	int 		ValidFlags; 	//what is available 
	short 		lat; 		//Position Latitude in Minutes
	short 		lon; 		//Position Longitude in Minutes
	BMSDATA_SET 	data; 		//MeteoServer Data Model
	SYN_STATION 	station; 	//data of the SynopStation
	}BMSD_SYN; 

typedef CArray<BMSD_SYN,BMSD_SYN&> BMSDSynopList;
typedef struct 
	{ //BMSD_LST = Bonito Meteo Server List = a Array of calculated Data
	short 		lat; 		//Position Latitude in Minutes of the position to get and calculate the data
	short 		lon; 		//Position Longitude in Minutes of tho position to get and calculate the data
	BMSDATA_SET 	data;
	}BMSD_LST; 

typedef CArray<BMSD_LST,BMSD_LST&> BMSDataList;

//Bonito DetailFlags 
//LAY_ 		= layer / planes / draw fields	like arrow fields or temp color planes
//FIG_ISO_	= simple lines 			like isobar or wave line fields
//FIG_		= values as figures		like grided fields of figures 
define  LAY_ICE 	(0x00000002)	//color planes of ice fields
#define LAY_STEMP 	(0x00000004)	//color planes of surface temperatur
#define LAY_WTEMP 	(0x00000008)	//color planes of wather temperatur 
#define LAY_PRESS 	(0x00000010)	//color planes of pressure
#define LAY_TEMP 	(0x00000020)	//planes of air temperature
#define LAY_SNOW 	(0x00000040)	//color planes of snow
#define LAY_WIND 	(0x00000080)	//planes of wind dirrection arrows 
#define LAY_COL_WIND 	(0x00000100)	//planes of colored wind dirrection arrows 
#define LAY_WAVE 	(0x00000200)	//colored wave lines planes 

#define LAY_RH 		(0x00000400)	//planes of relative huminity
#define LAY_PRECI 	(0x00000800)	//planes of precipitaion
#define LAY_SYMB_PRECI 	(0x00001000)	//sybols of rain, hail or snow
#define LAY_CLOUD_CONV 	(0x00002000)	//planes of convective clouds
#define LAY_CLOUD_BOUND (0x00004000)    //planes of boundary clouds  
#define LAY_WAVEDIR 	(0x00008000)	//arrows field of wave direction
#define FIG_WAVE 	(0x00010000)	//figure field of height wave 
#define FIG_ISO_BAR 	(0x00020000)	//lines as iso bar
#define FIG_ISO_TERM 	(0x00040000)	//lines as iso term
#define FIG_ISO_WAVE 	(0x00080000)	//figure field of height wave 
#define FIG_ISO_RH 	(0x00100000)	//iso line of relative huminity
#define FIG_ISO_WTERM 	(0x00200000)	//iso term of wather temperatur
#define FIG_ISO_STERM 	(0x00400000)	//iso term of surface temperatur

#define FIG_PRESS 	(0x00800000)	//figure field of pressure
#define FIG_TEMP 	(0x01000000)	//figure field of air temperature in C°
#define FIG_WIND 	(0x02000000)	//figure field of wind speed in beaufort
#define FIG_RH 		(0x04000000)	//figure field of relative huminity
#define FIG_PRECI 	(0x08000000)	//figure field of precipitation
#define FIG_WTEMP 	(0x10000000)	//figure field of wather temperatur
#define FIG_STEMP 	(0x20000000)	//figure field of surface temperatur
#define FIG_SNOW 	(0x40000000)	//figure field of snow deep

#define LAY_CLOUDS 	(0x80000000)	//layer LAY_CLOUD_CONV & LAY_CLOUD_BOUND


#define SYNOP_ONOFF 	(0x10000000)	//draw synop symbols
#define SYNOP_GRID 	(0x01000000)	//draw grided or original position

#define SYNOP_PRESS 	(0x00000010)
#define SYNOP_TEMP 	(0x00000020)
#define SYNOP_CLOUDS 	(0x00000040)
#define SYNOP_WIND 	(0x00000080)



//Bonito Messages Service for (one or combination of this) 
#define BONITO_PIC_SERVICE 0x1000 //only for picture (fax) service 
#define BONITO_TXT_SERVICE 0x2000 //only for text (rtty) service 
#define BONITO_SYN_SERVICE 0x4000 //only for synop service 
#define BONITO_MET_SERVICE 0x8000 //only for internet meteo service 

//BONITO_PIC_SERVICE|BONITO_TXT_SERVICE .....picture and text service 
//BONITO_PIC_SERVICE|BONITO_TXT_SERVICE|BONITO_SYN_SERVICE ..... synop, picture and text service 

//MeteoCom Message for FileActions
#define TXTFILE_REFRESH  0x1002 //refresh your list of text files
#define PICFILE_REFRESH  0x2002 //refresh your list of pictures
#define PICFILE_DELETE   0x2004 //a picture was deleted
#define PICFILE_SELCHG   0x2008 //selected, indicated picture was changed
#define SYNFILE_REFRESH  0x4002 //refresh your list of text files
#define MC_COL_CHANGE    0x8002 //refresh your color of the meteo layer
#define MC_ISO_CHANGE    0x8004 //refresh your iso-line drawings
#define MC_DAT_CHANGE    0x8008 //refresh your data references

#define DAT_CHANGE_MET   0x0001 //downloaded meteo data changed
#define DAT_CHANGE_IMG   0x0002 //downloaded images data changed
#define DAT_CHANGE_SYN   0x0003 //downloaded synop data changed
#define DAT_CHANGE_TXT   0x0004 //received text data changed
#define DAT_CHANGE_RXSYN 0x0005 //received synop data changed
#define DAT_CHANGE_FAX   0x0006 //received images data changed

#define DAT_CHANGED 	-1 	//directrory deleted


//intern Message
#define METEOCOM_LOGIN 	0x0800
#define METEOCOM_LOGOUT 0x0801
#define PICFILE_MOVED 	0x0810
#define PICFILE_RENAME 	0x0812
#define PICFILE_ADD 	0x0813
#define PICFILE_RELOAD 	0x0814


//Picture Folders
#define FDIR_RX 	0
#define FDIR_BANK1 	1
#define FDIR_BANK2 	2
#define FDIR_BANK3 	3
#define FDIR_TRASH 	4
#define FDIR_SAT 	5
#define FDIR_DNL 	6
#define FDIR_MAX 	7 
#endif //BMS_DEFSs