Ce module gère la couche liaison d'un réseau AX25 et premet l'envoi et la réception de trames.
Ce module a été conçu pour être indépendant de la couche physique qui sera fournie au moudule au moment de l'initialisation sous forme de fichiers.
|
#define | AX25_CALL(str, id) {.call = (str), .ssid = (id) } |
|
#define | AX25_CTRL_UI 0x03 |
|
#define | AX25_MAX_RPT 8 |
|
#define | AX25_MIN_FRAME_LEN 18 |
|
#define | AX25_PATH(dst, src, ...) { dst, src, ## __VA_ARGS__ } |
|
#define | AX25_PID_NOLAYER3 0xF0 |
|
#define | vAx25Send(ax25, dst, src, buf, len) vAx25SendVia(ax25, ({static xAx25Node __path[]={dst, src}; __path;}), 2, buf, len) |
|
#define AX25_CALL |
( |
|
str, |
|
|
|
id |
|
) |
| {.call = (str), .ssid = (id) } |
#define AX25_CTRL_UI 0x03 |
Identifiant contrôle d'une trame UI Le module gère uniquement ce type de trame
Définition à la ligne 70 du fichier ax25.h.
Nombre maximal de répéteurs dans une trame AX25
Définition à la ligne 81 du fichier ax25.h.
#define AX25_MIN_FRAME_LEN 18 |
Taille minimale d'une trame AX25
Définition à la ligne 64 du fichier ax25.h.
#define AX25_PATH |
( |
|
dst, |
|
|
|
src, |
|
|
|
... |
|
) |
| { dst, src, ## __VA_ARGS__ } |
Permet la création d'un chemin Un chemin AX25 est constitué d'une destination, d'une source et de répéteurs éventuels (entre 0 et )
- Paramètres
-
dst | destination du chemin, |
- Voir également
- AX25_CALL
- Paramètres
-
- Voir également
- AX25_CALL
Des répéteurs optionnels peuvent être ajoutés à la suite.
Cette macro permet de déclarer facilement un chemin pour le fournir à la fonction vAx25SendVia() :
1 xAx25Node path[] = AX25_PATH(AX25_CALL("abcdef", 0), AX25_CALL("ghjklm", 0), AX25_CALL("wide1", 1), AX25_CALL("wide2", 2));
- Exemples:
- aprs/demo_aprs.c, et net/aprs/demo_aprs.c.
Définition à la ligne 106 du fichier ax25.h.
#define AX25_PID_NOLAYER3 0xF0 |
Identifiant protocole sans couche 3 Le module gère uniquement ce type de trame
Définition à la ligne 76 du fichier ax25.h.
#define vAx25Send |
( |
|
ax25, |
|
|
|
dst, |
|
|
|
src, |
|
|
|
buf, |
|
|
|
len |
|
) |
| vAx25SendVia(ax25, ({static xAx25Node __path[]={dst, src}; __path;}), 2, buf, len) |
Envoie une trame AX25
- Paramètres
-
ax25 | Objet Ax25 à utiliser |
dst | destination de la trame, |
- Voir également
- AX25_CALL
- Paramètres
-
- Voir également
- AX25_CALL
- Paramètres
-
buf | buffer contenant les informations (payload). |
len | nombre d'octets du payload. |
- Voir également
- vAx25SendVia() pour l'envoi avec répéteurs.
Définition à la ligne 118 du fichier ax25.h.
typedef void(* vAx25CallBack) (struct xAx25Frame *msg) |
Fonction gérant la réception de trame
Définition à la ligne 128 du fichier ax25.h.
Objet Ax25 Cet objet encapsule toutes les informations nécessaires à la gestion de la réception et de la transmission.
Intialise l'objet Ax25
- Paramètres
-
ax25 | Objet à initialiser |
fin | Pointeur sur le fichier d'entrée de la couche physique |
fout | Pointeur sur le fichier de sortie de la couche physique |
hook | Fonction exécutée à la réception d'une trame (callback) |
- Exemples:
- aprs/demo_aprs.c, et net/aprs/demo_aprs.c.
void vAx25Poll |
( |
struct xAx25 * |
ax25 | ) |
|
Vérifies si une trame AX25 peut être traiter.
Cette fonction lit les octets sur le media d'entrée à la recherche de trames AX25.
Si une tame est trouvée, elle est décodée et passée à la fonction de gestion de réception (callback).
Cette fonction doit être appelée le plus souvent possible dans la boucle du programme principal.
Cette fonction peut être bloquante si aucun octet n'est reçu et si le media utilisé en entrée est configuré en mode bloquant.
- Paramètres
-
- Exemples:
- aprs/demo_aprs.c, et net/aprs/demo_aprs.c.
void vAx25Print |
( |
FILE * |
f, |
|
|
const xAx25Frame * |
msg |
|
) |
| |
void vAx25SendVia |
( |
struct xAx25 * |
ax25, |
|
|
const xAx25Node * |
path, |
|
|
size_t |
path_len, |
|
|
const void * |
_buf, |
|
|
size_t |
len |
|
) |
| |
Envoi d'une trame par un chemin spécifique
- Paramètres
-
ax25 | Objet Ax25 utilisé |
path | Tableau de stations utilisé comme chemin, |
- Voir également
- AX25_PATH
- Paramètres
-
path_len | Nombre de station dans le path |
_buf | Buffer contenant les informations à transmettre (payload) |
len | Nombre d'octets du payload. |
- Exemples:
- aprs/demo_aprs.c, et net/aprs/demo_aprs.c.