Digined

Introduction

Digi_ned est un Digipeater APRS écrit par Henk PE1DNN. Il est sous licence libre GPLv2, donc n'importe quelle modification est possible, il travaille sous Linux directement en mode Kiss sans passer par les librairies AX25.

Digi_ned a été compilé par ON4SEB sur le NSLU2. Il a été testé (et fonctionne parfaitement) avec un TNC2 et adaptateur USB->Série.

Vous pouvez télécharger le fichier source ici.

Nouveau Paradigm

Quelques digipeaters emploient déjà les nouvelles règles Paradigm en Belgique.

Voici la différence entre les vieilles et nouvelles règles APRS Paradigme.

Vieille règle Nouvelle règle Exemple Description
WIDEn-N SUPPRIME SUPPRIME SUPPRIME
TRACEn-N WIDEn-N WIDE3-3 Alias générique
NONE BEn-N BE3-3 Alias Générique Wide en Belgique
WIDE SUPPRIME SUPPRIME SUPPRIME
TRACE SUPPRIME SUPPRIME SUPPRIME
RELAY WIDE1-1 WIDE1-1 Cet alias ressemble au vieux RELAY mais travaille mieux

La migration vers le Nouveau Paradigm était la raison principale pour laquelle nous avons choisis un Digipeater futé comme Digi_ned. UI-DIGI quand a lui, est trop vieux et trop peu flexible pour ces nouvelles règles.

Fichier Makefile

Le fichier makefile doit être modifié pour être compilé sans erreurs. Enlevez seulement les déclarations de dependances à la fin du fichier. Depuis que nous ne travaillons plus avec le gccmakedep, remplacer simplement le Makefile Digi_ned avec celui-ci, et il devrait pouvoir être compilé sur votre NSLU2.

Problème possible avec struct

Quand Digi_ned est employé sur le NSLU2, des défauts de segmentations se font jour dans des messages comme dx 1, mh 1 ou n'importe quel autre.

Sur l'architecture ARM, le type char semble être toujours non signé, ainsi le champ id a été remplacé par un short int.

/* struct for storing messages for transmission */

typedef struct message_s {

    struct message_s  *next;                    /* pointer to next message   */

    digi_timer_t       timer;                   /* timer to start next try   */

    short              interval;                /* time between tries        */

    short              count;                   /* repeat count if not acked */

    short              port;                    /* port to transmit on       */

    short               id;                      /* message id or -1 for none */

    char               message[MSG_PREFIX_LENGTH + MAX_MESSAGE_LENGTH 

                                + MSG_SUFFIX_LENGTH + 1];

                                                /* message + space for '\0'  */

} message_t;

La commande" message_t " et "struct" dans "digitype.h" devrais ressembler à ceci. Espérant que cette modification aidera à éviter cette erreur de segmentation.
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial 3.0 License