#ifndef CONSTANTES_PART_H
#define CONSTANTES_PART_H


/* 
==================================
	 version1="2026-09-08";
==================================
*/


// COULEURS RGB565
// Outil de sélection 1-> http://www.barth-dev.de/online/rgb565-color-picker/
// Outil de sélection 2-> https://rgbcolorpicker.com/565

#define NOIR   		0x0000
#define MARRON   	0x9240
#define ROUGE  		0xF800
#define ROSE		0xFBDD
#define ORANGE 		0xFBC0
#define JAUNE   	0xFFE0
#define JAUNE_PALE  0xF7F4
#define VERT   		0x07E0
#define VERT_FONCE  0x02E2
#define PAMPA		0xBED6
#define OLIVE		0x05A3
#define CYAN    	0x07FF
#define BLEU_CLAIR  0x455F
#define AZUR  		0x1BF9
#define BLEU   		0x001F
#define BLEU_FONCE	0x0005
#define MAGENTA 	0xF81F
#define VIOLET1		0x781A
#define VIOLET2		0xECBE

#define GRIS_TRES_CLAIR 0xDEFB
#define GRIS_CLAIR  0xA534
#define GRIS   		0x8410
#define GRIS_FONCE  0x5ACB
#define GRIS_TRES_FONCE  0x2124

#define BLANC   	0xFFFF


// attention : pas de notations du type 1<<3 (dans les #define) qui ne sont pas, dans ce cas, précalculées par le compilateur
// mais recopiées telle quelle dans le code
// ce qui entrainerait des erreurs (à l'exécution) par la suite!
// à la rigueur, des notations binaires...

// concerne les bits de la variable 'options_nav' du module MCDU c.a.d les consignes de vol
# define opt_bit_decollage 		0b0000000000000001
# define opt_bit_nav_to_pti 	0b0000000000000010
# define opt_bit_nav_to_piste  	0b0000000000000100
# define opt_bit_nav_to_ptAA 	0b0000000000001000
# define opt_bit_nav_to_ptBB 	0b0000000000010000
# define opt_bit_att_short 		0b0000000000100000 // atterrissage court (avec reverse, etc..) pour pistes très courtes
# define opt_bit_roulage 		0b0000000001000000 // 
# define opt_bit_validation		0b1000000000000000 // toujours =1 pour différencier 'all =0' et 'pas de signal'
// remarque: reste 8 bits de libres


// concerne les bits de la variable 'flags' du module PFD c.a.d les phases effectives du vol en cours
# define flg_bit_au_sol 			0b0000000000000001
# define flg_bit_bad_RWY			0b0000000000000010
# define flg_bit_take_off 			0b0000000000000100
# define flg_bit_FG_AP				0b0000000000001000
# define flg_bit_autoland 			0b0000000000010000 // procedure d'approche
# define flg_bit_atterrissage 		0b0000000000100000 // finale et touché des roues
# define flg_bit_route 				0b0000000001000000
# define flg_bit_nav_to_point_i 	0b0000000010000000
# define flg_bit_nav_to_RW 			0b0000000100000000
# define flg_bit_nav_to_point_AA 	0b0000001000000000
# define flg_bit_nav_to_point_BB 	0b0000010000000000
# define flg_bit_attero_court 		0b0000100000000000 // atterrissage court (avec reverse, etc..) pour pistes très courtes
# define flg_bit_roulage_au_sol 	0b0001000000000000
# define flg_bit_gear_down 			0b0010000000000000
# define flg_bit_V1		 			0b0100000000000000
// remarque: reste 1 bit de libre

/*
void set_bit(uint16_t *mot_i, uint16_t val_bit);
void raz_bit(uint16_t *mot_i, uint16_t val_bit);
void inv_bit(uint16_t *mot_i, uint16_t val_bit);
uint8_t read_bit(uint16_t mot_i, uint16_t val_bit);
uint8_t is_in(float valeur_i, float min, float max);
void borne_in(float *valeur_i, float min, float max);
*/


#endif
