====== Format de flux UDP utilisés en D-Star ====== Ce document résume les données détaillées dans la {{ :d-star:formats_of_files_and_udp-streams_used_on_d-star.doc | spécification des formats de fichier et flux UDP utilisés en D-Star}}. Le document sur les données lentes en DV sont décrites dans ce document: {{ :d-star:slow_data.pdf |}}. J'ai trouvé ce document sur la page de téléchargement d'[[http://www.ircddb-italia.it/download/category/6-programmazione.html|ircDDB-Italia]] ===== Format de l'en-tête ===== | Signature | Type trame | Réservé? | Type de flux | Réservé? | ID de flux | Compteur | | 4 octets | 1 octet | 3 octets | 2 octets | 3 octets | 2 octets | 1 octet | **__Signature__** Elle est systématiquement définie à DVST (Digital Voice STream?), soit { 0x44, 0x56, 0x53, 0x54 }. **__Type trame__** ^ Valeur ^ Type ^ | 0x10 | Trame de configuration | | 0x20 | Trame de voix | **__Champ réservé (octets 5 à 7)__** Positionner à la valeur { 0x00, 0x00, 0x00 } **__Type de flux__** ^ Valeur ^ Type ^ | 0x20 | Flux de voix | **__Champ réservé (octets 9 à 11)__** Positionner à la valeur { 0x00, 0x01, 0x01 } **__Identifiant de flux__** Valeur aléatoire de 16 bits. L'identifiant doit être le même entre pour les trames constituant un flux. **__Compteur__** La valeur du compteur s'étend de 0 à 20. On ajoute 0x40 à la valeur de la dernière trame d'un flux voix. La valeur du compteur est figée à 0x80 pour une trame de configuration. ==== Trame de configuration ==== La première trame constituant un flux de voix est une trame de départ, et fait 56 octets au total. Elle contient les informations d'origine et de destination du flux. | En-tête | Drapeaux | RPT1 | RPT2 | UR | MY | MY-Short | Checksum | | 16 octets | 3 octets | 8 octets | 8 octets | 8 octets | 8 octets | 4 octets | 2 octets | **__Drapeaux__** Définir par défaut à { 0x00, 0x00, 0x00 }. La description exacte des drapeaux est effectuée dans la [[https://www.jarl.com/d-star/STD6_0a.pdf|spécification du standard D-Star (japonais)]], section "Structure d'un paquet de voix" (音声パケットのフレーム構成). Certaines applications définissent le premier octet à **0x40** pour mettre le bit 'répéteur' à 1. Flag1 (フラグ1) * Bit 7: Type de communication (data si à 1, voix si à 0) * Bit 6: Mode relais (voix par répéteur si à 1, QSO direct si à 0) * Bit 5: Notification d'interruption de communication * Bit 4: Signal de contrôle, ou de données (contrôle si à 1, données/voix si à 0). * Bit 3: Communication urgente (permet de forcer le squelch par callsign). ^ Bit 2 ^ Bit 1 ^ Bit 0 ^ Fonction ^ | 1 | 1 | 1 | Contrôle de station répétitrice | | 1 | 1 | 0 | Réponse automatique | | 1 | 0 | 1 | //Inutilisé// | | 1 | 0 | 0 | Retransmission | | 0 | 1 |  1 | ACK | | 0 | 1 | 0 | Ne pas acquitter | | 0 | 0 | 1 | Ne pas relayer | | 0 | 0 | 0 | NULL | Flag2 (フラグ2) Réservé pour l'extensibilité future du protocole. ^ 7 ^ 6 ^ 5 ^ 4 ^ 3 ^ 2 ^ 1 ^ 0 ^ Numéro de bit ^ |  ID |||| M |||| Nom de champ | | 0b0000 |||| indéfini |||| Valeur par défaut | Le champ ID est prévu pour permettre d'utiliser des callsigns de taille différente dans le futur, si le changement s'avérait nécessaire. Le champ M est un attribut spécifique au fournisseur (Vendor-specific attribute) pour permettre l'ajout de fonctions non prévues par le protocole. Flag3 (フラグ3) Réservé pour l'usage futur. **__RPT1__** Indicatif du répéteur sur 7 octets, suivi du module de destination. Les vides sont remplacés par la valeur {0x20}. Ainsi, pour "F4HOF C", la valeur sera { 0x46, 0x34, 0x48, 0x4F, 0x46, 0x00, 0x00, 0x43 }. **__RPT2__** Indicatif du répéteur sur 7 octets, suivi de la lettre 'G'. Les vides sont remplacés par la valeur {0x20}. **__UR__** Indicatif de cible. La cible par défaut est "CQCQCQ " Les vides sont remplacés par la valeur {0x20}. **__MY__** Indicatif du radioamateur en train de transmettre sur 7 octets, suivi d'un "SSID" (chiffre, lettre majuscule, ou rien). Les vides sont remplacés par la valeur {0x20}. **__MY-Short__** Suffixe d'indicatif de 4 octets utilisé pour différencier deux matériels différents par exemple. Les vides sont remplacés par la valeur {0x20}. **__Checksum__** Correspond au champ "P_FCS" de la spécification D-Star. Il s'agit d'un CRC-CCITT calculé à partir des drapeaux jusqu'au champ MY-Short compris. Le polynôme générateur utilisé est: $$ G(x) = x^{16} + x^{12} + x^{5} + 1 $$ ==== Trame de voix ==== Une trame contient 20ms de voix, et forme un paquet de 27 octets, en-tête incluse. | En-tête | Voix AMBE | Données DV | | 16 octets | 9 octets | 3 octets |