plane default code

This commit is contained in:
xdrm-brackets 2017-04-06 12:01:18 +02:00
parent 94c4769241
commit df156c42f0
3 changed files with 45 additions and 32 deletions

View File

@ -2,10 +2,34 @@
#define _LIB_NETWORK_FORMAT_SERIALIZER_H_
#define SGCA_PLANE 0x01
#define SGCA_VIEWTERM 0x02
#define SGCA_CTRLTERM 0x04
#include "../../header.h";
struct view{
int x;
int y;
int z;
int cap;
int speed;
char id[6];
}; // 26 bytes
struct ctrl{
int cap;
int speed;
int z;
}; // 12 bytes
struct netflow{
char type;
char flags;
char data[39];
} // 41 bytes
#endif

View File

@ -15,21 +15,18 @@ char numero_vol[6];
*** 3 fonctions à implémenter
********************************/
int ouvrir_communication()
{
int ouvrir_communication(){
// fonction à implémenter qui permet d'entrer en communication via TCP
// avec le gestionnaire de vols
return 1;
}
void fermer_communication()
{
void fermer_communication(){
// fonction à implémenter qui permet de fermer la communication
// avec le gestionnaire de vols
}
void envoyer_caracteristiques()
{
void envoyer_caracteristiques(){
// fonction à implémenter qui envoie l'ensemble des caractéristiques
// courantes de l'avion au gestionnaire de vols
}
@ -39,8 +36,7 @@ void envoyer_caracteristiques()
********************************/
// initialise aléatoirement les paramètres initiaux de l'avion
void initialiser_avion()
{
void initialiser_avion(){
// initialisation aléatoire du compteur aléatoire
int seed;
time(&seed);
@ -49,7 +45,7 @@ void initialiser_avion()
// intialisation des paramètres de l'avion
coord.x = 1000 + random() % 1000;
coord.y = 1000 + random() % 1000;
coord.altitude = 900 + random() % 100;
coord.z = 900 + random() % 100;
dep.cap = random() % 360;
dep.vitesse = 600 + random() % 200;
@ -63,8 +59,7 @@ void initialiser_avion()
}
// modifie la valeur de l'avion avec la valeur passée en paramètre
void changer_vitesse(int vitesse)
{
void changer_vitesse(int vitesse){
if (vitesse < 0)
dep.vitesse = 0;
else if (vitesse > VITMAX)
@ -73,44 +68,38 @@ void changer_vitesse(int vitesse)
}
// modifie le cap de l'avion avec la valeur passée en paramètre
void changer_cap(int cap)
{
void changer_cap(int cap){
if ((cap >= 0) && (cap < 360))
dep.cap = cap;
}
// modifie l'altitude de l'avion avec la valeur passée en paramètre
void changer_altitude(int alt)
{
// modifie l'z de l'avion avec la valeur passée en paramètre
void changer_z(int alt){
if (alt < 0)
coord.altitude = 0;
coord.z = 0;
else if (alt > ALTMAX)
coord.altitude = ALTMAX;
else coord.altitude = alt;
coord.z = ALTMAX;
else coord.z = alt;
}
// affiche les caractéristiques courantes de l'avion
void afficher_donnees()
{
printf("Avion %s -> localisation : (%d,%d), altitude : %d, vitesse : %d, cap : %d\n",
numero_vol, coord.x, coord.y, coord.altitude, dep.vitesse, dep.cap);
void afficher_donnees(){
printf("Avion %s -> localisation : (%d,%d), z : %d, vitesse : %d, cap : %d\n",
numero_vol, coord.x, coord.y, coord.z, dep.vitesse, dep.cap);
}
// recalcule la localisation de l'avion en fonction de sa vitesse et de son cap
void calcul_deplacement()
{
void calcul_deplacement(){
float cosinus, sinus;
float dep_x, dep_y;
int nb;
if (dep.vitesse < VITMIN)
{
if (dep.vitesse < VITMIN){
printf("Vitesse trop faible : crash de l'avion\n");
fermer_communication();
exit(2);
}
if (coord.altitude == 0)
{
if (coord.z == 0){
printf("L'avion s'est ecrase au sol\n");
fermer_communication();
exit(3);

View File

@ -4,12 +4,12 @@
#define VITMAX 1000
#define VITMIN 200
#define PAUSE 2
#define PAUSE 2
struct coordonnees {
struct coord {
int x;
int y;
int altitude;
int z;
};
struct deplacement {