Blame view

code_arduino/com_Xbee/progC_initialisation_Xbee/xbee.c 1.99 KB
a4d85595   aknockae   Ajout de serialAr...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
  /** fichier xbee.c **/
  
  /*****************************************************************/
  /** Utilitaire pour configurer les modules XBee.                **/
  /*****************************************************************/
  
  /** Fichiers d'inclusion **/
  
  #include <stdio.h>
  #include <stdlib.h>
  #include <string.h>
  #include <unistd.h>
  #include <termios.h>
  #include <netdb.h>
  #include <netinet/in.h>
  #include <sys/types.h>
  #include <sys/stat.h>
  #include <fcntl.h>
  
  #include "xbeeATCmd.h"
  
  /** Constantes **/
  
  #define SERIALDEV	"/dev/ttyUSB0"
  #define BAUDRATE	B9600 
  
  /**** Variables globales *****/
  
  static struct termios sauvegarde;
  
  /** Ouverture d'un port serie **/
  
  int ouvertureSerie(char *periph,int vitesse)
  {
  struct termios nouveau;
  int df=open(periph,O_RDWR|O_NOCTTY);
  if(df<0) return -1;
  
  tcgetattr(df,&sauvegarde); /* save current port settings */
  bzero(&nouveau,sizeof(nouveau));
  nouveau.c_cflag=CLOCAL|CREAD|vitesse|CS8;
  nouveau.c_iflag=0;
  nouveau.c_oflag=0;
  nouveau.c_lflag=0;
  nouveau.c_cc[VTIME]=0;
  nouveau.c_cc[VMIN]=1;
  tcflush(df, TCIFLUSH);
  tcsetattr(df,TCSANOW,&nouveau);
  
  return df;
  }
  
  /** Fermeture d'un port serie **/
  
  void fermetureSerie(int df)
  {
  tcsetattr(df,TCSANOW,&sauvegarde);
  close(df);
  }
  
  /** Programme principal **/
  
  int main(int argc, char *argv[])
  {
  
  int ds;
  ds=ouvertureSerie(SERIALDEV,BAUDRATE);
  if(ds<0){
    fprintf(stderr,"Erreur sur la connexion série.\n");
    exit(-1);
    }
  
  fprintf(stdout,"Configuration actuelle :\n");
  fprintf(stdout,"----------------------\n");
  xbeeModeCommande(ds);
  xbeeRecupereVitesse(ds);
  xbeeRecupereCanal(ds);
  
  fprintf(stdout,"\nConfiguration par défaut :\n");
  fprintf(stdout,"------------------------\n");
  xbeeDefaut(ds);
  xbeeRecupereVitesse(ds);
  xbeeRecupereCanal(ds);
  
  fprintf(stdout,"\nConfiguration spécifique :\n");
  fprintf(stdout,"------------------------\n");
  xbeeConfigureVitesse(ds,XBEE_VITESSE_9600);
  xbeeConfigureCanal(ds,0x0B);
  xbeeRecupereVitesse(ds);
  xbeeRecupereCanal(ds);
  xbeeSauver(ds);
  xbeeSortir(ds);
  
  fermetureSerie(ds);
  return EXIT_SUCCESS;
  }