1000 – Blog radioamateur de F8ASB https://blog.f8asb.com Promouvoir est notre devoir ... Fri, 26 Aug 2016 18:59:48 +0000 fr-FR hourly 1 98010425 SVXLINK: Savoir lire des valeurs de 1000 à 9999 https://blog.f8asb.com/2016/08/26/svxlink-savoir-lire-des-valeurs-de-1000-a-9999/ https://blog.f8asb.com/2016/08/26/svxlink-savoir-lire-des-valeurs-de-1000-a-9999/#comments Fri, 26 Aug 2016 13:09:34 +0000 http://blog.f8asb.com/?p=2819 Continuer la lecture ]]> HTB1ucm0IXXXXXajXVXXq6xXFXXX1Voici une modification pour que Svxlink sache dire les nombres de 1000 à 9999.

Vous allez vous dire, mais pourquoi faire, et bien dans mon cas c’est pour la pression atmosphérique des données météo.
Je n’avais pas vu avant car dans ma vidéo sur ce sujet précedent j’étais en dessous de 1000.

Pour appliquer cette modification, il est nécessaire d’éditer le fichier suivant:
/usr/share/svxlink/sounds/fr_FR/events.d/locale.tcl

Ce fichier a été travaillé par F1SMF en 2011 et depuis, je l’ai également fait évoluer. Il est utile pour améliorer la diction en français des chiffres en autre.

J’ai volontairement fait une ligne par millier pour une meilleure qualité vocale.
Nous utilisons l’index0 (1er caractère de la chaine) puis allons lire la tranche de millier qui lui correspond. Le reste repasse dans la boucle de lecture de chiffre standard.

Si un 0 est en 2ème position il sera ignoré, la lecture des décimales se fera directement.

Il sera bien sûr nécessaire d’ajouter les sons 1000 à 9000.wav dans le repertoire Default.
/usr/share/svxlink/sounds/fr_FR/Default/

Dans votre programme Svxlink, on utilisera la commande playFourDigitNumber suivi de votre variable ou de votre nombre à lire.
Ex: playFourDigitNumber $pression;


code source à insérer dans locale.tcl:

[sourcecode language=”bash”]
#
# Say the specified three digit number (1000 – 9999)
#
proc playFourDigitNumber {number} {
if {[string length $number] != 6} {
puts "*** WARNING: Function playFourDigitNumber received a non four digit number:$
return;
}

set first [string index $number 0];
if {($first == "1")} {
playMsg "Default" "1000";
} elseif {($first == "2")} {
playMsg "Default" "2000";
} elseif {($first == "3")} {
playMsg "Default" "3000";
} elseif {($first == "4")} {
playMsg "Default" "4000";
} elseif {($first == "5")} {
playMsg "Default" "5000";
} elseif {($first == "6")} {
playMsg "Default" "6000";
} elseif {($first == "7")} {
playMsg "Default" "7000";
} elseif {($first == "8")} {
playMsg "Default" "8000";
} elseif {($first == "9")} {
playMsg "Default" "9000";
}
set first [string index $number 1];
if {($first == "0") || ($first == "O")} {
playNumber [string range $number 2 5];
} else {
playNumber [string range $number 1 5];
}
}

[/sourcecode]

Vous pouvez recevoir un email dès la parution d’un article sur le Blog F8ASB.COM, entrez votre mail sur la fenêtre à droite et cliquer sur abonnement. Tous les articles en 1 clic ICI
]]>
https://blog.f8asb.com/2016/08/26/svxlink-savoir-lire-des-valeurs-de-1000-a-9999/feed/ 1 2819