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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé 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 : 48
    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
    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 confirmé 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
    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 confirmé 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 : 48
    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
    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 confirmé 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
    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 confirmé 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
    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
    Membre à l'essai
    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
    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.

+ 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