IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

chr fonction C piloter un buzzer de PC


Sujet :

Linux

  1. #1
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 262
    Points
    12 262
    Par défaut chr fonction C piloter un buzzer de PC
    salut,

    je cherche une fonction c pour piloter un son sur buzzer de type pc en dehors de toute librairie graphique*

    quelque chose du style soun(frequence,duration);

    dans quelle librairie et fonction pourrai je trouver ca ou quelque chose de proche a utiliser ?

    but piloter un buzzer ! pas une carte son !

    je vous re-merci
    j'arrive pas a trouver...





    PS:
    Pourquoi pas dans une librairie graphique ? parce qu'au final c'est pour un vieux pc embarque sans carte son et avec le strict minimum juste un noyau quelques truc pour booter et 2 applications autostarted.



    #######################################


    un copain d'un autre forum m'a fourni ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #define _GNU_SOURCE
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <sys/types.h>
    #include <stdint.h>
    #include <sys/ioctl.h>
    #include <linux/kd.h>
    et donc la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    static void tone(int frequency, int duration)
    {
            FILE *file;
            int fd;
            uint32_t ioctlvalue;
     
            file = fopen("/dev/console", "w");
            if (!file)
                    return;
            fd = fileno(file);
            if (fd < 0)
                    return;
            ioctlvalue = (duration << 16) | frequency;
            ioctl(fd, KDMKTONE, ioctlvalue);
            fclose(file);
            usleep(duration*1000);
    }
    ca semble etre pas mal je vais tester ca ca devrai suffir a faire des petits jingles ...

  2. #2
    Membre régulier Avatar de COGAN
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2005
    Messages : 109
    Points : 109
    Points
    109
    Par défaut Au nouvelles
    Alors, le code que tu as cité, fonctionne-t-il ?

    J'en ai l'impression, car le message est "Résolu". Confirmation !

  3. #3
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 262
    Points
    12 262
    Par défaut
    oui tout à fait j'ai pu créer mes jingles pour la machine embarqués et le les ai placé sous /usr/local/share/proto/bin
    et les programmes les appellent bien et on a bien nos
    bup
    bidipi
    bidipili
    et buuuuuuuup


  4. #4
    Membre régulier Avatar de COGAN
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2005
    Messages : 109
    Points : 109
    Points
    109
    Par défaut Ne fonctionne pas sur tous les noyaux Linux ?
    Merci pour cette fonction de buzzer !
    Je l'ai testé sur une Fedora Core 6 allégée (pas de graphisme) avec un noyau 2.6.19-1.2911.fc6 : cela fonctionne bien.
    Par contre, j'ai voulu mettre à jour le noyau (kernel 2.6.22.9-61.fc6 ou 2.6.22.14-72.fc6) : cela ne fonctionne plus.

    Mes questions :
    1) Est-ce que quelqu'un a eu de bon résultat avec un noyau 2.6.22 ?
    2) Est-ce que quelqu'un a eu de bon résultat avec le dernier noyau de Fedora Core 6 ?
    3) Est-ce que quelqu'un connait des modifications du fonctionnement de KDMKTONE dans les noyaux 2.6.20 (2.6.21 ou 2.6.22) ?

  5. #5
    Membre régulier Avatar de COGAN
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2005
    Messages : 109
    Points : 109
    Points
    109
    Par défaut
    J'ai trouvé le problème !
    La fonction KDMKTONE fonctionne avec le module pcspkr.
    Ce module était lancé automatiquement avec le noyau 2.6.19-1.2911.fc6 de Fedora, mais il ne l'est plus dans le noyau 2.6.22.14-72.fc6 !
    Je le recharge donc à partir d'un script, lancer dans inittab :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insmod  /lib/modules/2.6.22.14-72.fc6/kernel/drivers/input/misc/pcspkr.ko
    Si quelqu'un a une autre solution (sans recompilation du noyau), je suis preneur !
    Merci de votre attention.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Bonjour à tous,
    Quelqu'un peut-il me donner une bref explication pour l'utilisation de la fonction tone. Je n'ai pas reussi à produire de sons. Ou peut-être cela ne fonctionne t-il pas?

    Merci par avance.

    -------------------------------
    Systeme Ubuntu.

  7. #7
    Membre régulier Avatar de COGAN
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2005
    Messages : 109
    Points : 109
    Points
    109
    Par défaut Bip systèmes
    Comme je l'ai cité plus haut "KDMKTONE" fonctionne avec le module noyau pcspkr.

    Avec un terminal, si tu tape la commande tu devrais obtenir une réponse comme , ce qui signifie que le module est chargé.

    Si ton système Ubuntu ne le lance pas au démarrage, tu peux peut-être jeter un oeil ici (les nouvelles distributions ont tendance à l'inactiver).

    Il est parfois utile de lancer ce module.

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD17] fonction pour piloter audacity
    Par Nathalie35000 dans le forum WinDev
    Réponses: 5
    Dernier message: 07/10/2013, 13h34
  2. [QtSql] Ajout de fonctions au pilote sqlite?
    Par tyrtamos dans le forum PyQt
    Réponses: 7
    Dernier message: 23/07/2012, 19h26
  3. Réponses: 2
    Dernier message: 31/07/2011, 20h04
  4. [Lazarus] Utiliser les touches de fonction pour piloter
    Par Alea46 dans le forum Lazarus
    Réponses: 2
    Dernier message: 05/12/2010, 17h57
  5. Piloter une fonction d'un site Web via Excel
    Par Mac Twist dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/03/2008, 08h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo