Référence du fichier DOCS/RIA/GPSDecoderV2/serial.c

#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <termios.h>
#include <stdlib.h>
#include "serial.h"
#include "msgParser.h"
#include "horodatage.h"

Macros

#define DEBUG_ULONG
#define DEBUG_USHORT
#define DEBUG_HEADER
#define DEBUG_DOUBLE
#define DEBUG_FLOAT

Fonctions

int openSerial (const char *device, int CARA, int DELAIS, int vitesse)
 Ouverture du port serie, renvoie -1 en cas de problème ou un file descriptor si ouverture réussie. Cette fonction restitue l'état du port série après ouverture. L'ouverture est configurable selon VMIN et VTIME. L'utilisation des paramètres CARA et DELAIS respectivement VMIN, VTIME est délicate et peut provoquer un mode blocant sur la lecture du port série. Lire la documentation du projet sur l'utilisation de ces paramètres.
OEM4_TRAME_COMPUTEDreadSerial (int fd)
 Lecture des données brutes du port série du GPS. On renvoie une stucture de données qui contient les informations du GPS.
void stockBinaryTrame (unsigned char *buf, int len)
 Stockage des données du GPS dans un buffer avec un curseur qui suit la dernère position on l'on a écrit des données.
void stockArrivalTime (int index)
 On place dans un buffer la date d'arrivée d'une éventuelle trame du GPS.
void unStackArrivalTime (int bufferCompleted, int lastPosition)
 Cette fonction dépile le buffer dans lequel est stocké les dates d'arrivée des trames dans le système. Cette date n'est pas la date exacte d'émission de la trame mais la date à laquelle le programme y accède. La date exacte est placée dans le header binaire d'une trame. Cette procédure permet de dépiler les info de la position bufferCompleted jusqu'à lastPosition et de placer les infos dans un le buffer remis à zéro.
OEM4_TRAME_COMPUTEDisTrameIsBuffered ()
 Cette procédure renvoie un tableau de structure dans lequel on retrouve les infos qui ont été recu par le GPS. On lit le buffer et on détecte les arrivée de trame avec les 3 octets de synchronisation. Puis si la trame est complète et si elle correspond à un type attendu alors on detrame le buffer. Cette opération renouvellée tant que possible. Les data sont stockée dans une structure puis on deépile le buffer.
void unStackBuffer (int bufferCompleted, int lastPosition)
 Cette procédure permet de dépiler les données recues du GPS et de les replacer dans le buffer remis à zéro.
int writeSerial (int fd, char buf[])
 Cette fonction permet d'envoyer des ordres au GPS dans un format ASCII compressé, voir doc NOVATEL. Attention certaines commandes demande un LAPS de temps important entre deux ordre (reboot du GPS).
void DEBUG_FUNCTION (unsigned char HEADER_LENGTH, unsigned short MESSAGE_LENGTH, int ind, int BUFFER_TRAITE)
 : fonction de debug

Variables

unsigned char GPS_TRAME [TAILLE_BUFFER]
unsigned char GPS_TRAME_COMPLETED [TAILLE_BUFFER]
int LAST_POSITION = 0
int LAST_POSITION_TIME = 0
unsigned char BUFFER_SERIE [TAILLE_BUFFER_SERIE]

Documentation des macros

#define DEBUG_DOUBLE
 

#define DEBUG_FLOAT
 

#define DEBUG_HEADER
 

#define DEBUG_ULONG
 

#define DEBUG_USHORT
 


Documentation des fonctions

void DEBUG_FUNCTION unsigned char  HEADER_LENGTH,
unsigned short  MESSAGE_LENGTH,
int  ind,
int  BUFFER_TRAITE
 

: fonction de debug

OEM4_TRAME_COMPUTED* isTrameIsBuffered  ) 
 

Cette procédure renvoie un tableau de structure dans lequel on retrouve les infos qui ont été recu par le GPS. On lit le buffer et on détecte les arrivée de trame avec les 3 octets de synchronisation. Puis si la trame est complète et si elle correspond à un type attendu alors on detrame le buffer. Cette opération renouvellée tant que possible. Les data sont stockée dans une structure puis on deépile le buffer.

int openSerial const char *  device,
int  CARA,
int  DELAIS,
int  vitesse
 

Ouverture du port serie, renvoie -1 en cas de problème ou un file descriptor si ouverture réussie. Cette fonction restitue l'état du port série après ouverture. L'ouverture est configurable selon VMIN et VTIME. L'utilisation des paramètres CARA et DELAIS respectivement VMIN, VTIME est délicate et peut provoquer un mode blocant sur la lecture du port série. Lire la documentation du projet sur l'utilisation de ces paramètres.

Paramètres:
const char *device : fichier système qui représente le port série (/dev/ttyS0 ...)
int CARA : représente VMIN nombre de caractère
int DELAIS : représente VTIME attente
int vitesse : débit choisi pour l'ouverture du port série de 50 à 115200 bauds

OEM4_TRAME_COMPUTED* readSerial int  fd  ) 
 

Lecture des données brutes du port série du GPS. On renvoie une stucture de données qui contient les informations du GPS.

Paramètres:
int fd : descripteur de fichier du port série

void stockArrivalTime int  index  ) 
 

On place dans un buffer la date d'arrivée d'une éventuelle trame du GPS.

Paramètres:
int index

void stockBinaryTrame unsigned char *  buf,
int  len
 

Stockage des données du GPS dans un buffer avec un curseur qui suit la dernère position on l'on a écrit des données.

Paramètres:
unsigned char *buf : le buffer lu du GPS
int len : la taille des données lues

void unStackArrivalTime int  bufferCompleted,
int  lastPosition
 

Cette fonction dépile le buffer dans lequel est stocké les dates d'arrivée des trames dans le système. Cette date n'est pas la date exacte d'émission de la trame mais la date à laquelle le programme y accède. La date exacte est placée dans le header binaire d'une trame. Cette procédure permet de dépiler les info de la position bufferCompleted jusqu'à lastPosition et de placer les infos dans un le buffer remis à zéro.

Paramètres:
int bufferCompleted : position jusqu'a laquelle toutes les données du buffer ont été traitées,
int lastPosition : dernière position dans le buffer

void unStackBuffer int  bufferCompleted,
int  lastPosition
 

Cette procédure permet de dépiler les données recues du GPS et de les replacer dans le buffer remis à zéro.

Paramètres:
int bufferCompleted : position jusqu'à laquelle toutes les données ont été traitées
int lastPosition : position de fin de données dans le buffer

int writeSerial int  fd,
char  buf[]
 

Cette fonction permet d'envoyer des ordres au GPS dans un format ASCII compressé, voir doc NOVATEL. Attention certaines commandes demande un LAPS de temps important entre deux ordre (reboot du GPS).

Paramètres:
int fd: descripteur de fichier sur le GPS (/dev/ttyS0 ...)
char buf[] : commande que l'on veut envoyer au GPS


Documentation des variables

unsigned char BUFFER_SERIE[TAILLE_BUFFER_SERIE]
 

unsigned char GPS_TRAME[TAILLE_BUFFER]
 

unsigned char GPS_TRAME_COMPLETED[TAILLE_BUFFER]
 

int LAST_POSITION = 0
 

int LAST_POSITION_TIME = 0
 


Généré le Tue Apr 25 12:31:35 2006 pour GPSNovatel par  doxygen 1.4.6