Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1686 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Récuperer l'adresse de l'entrée ligne de l'ordinateur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Récuperer l'adresse de l'entrée ligne de l'ordinateur

n°1979916
Terminale ​SI
Posté le 01-04-2010 à 12:22:30  profilanswer
 

Bonjour, je m'appelle Samuel, je suis en classe de Terminale SI en région parisienne.
 
Je travaille actuellement sur mon PPE dans lequel je dois faire de la programmation en C mais j'ai un soucis qui me bloque complètement dans mon projet.
En effet, j'ai besoin de connaître l'adresse de l'entrée ligne ( port auxiliaire de couleur bleu sur la carte son ) de l'ordinateur pour pouvoir récuperer des informations envoyées de l'extérieur.
 
Merci de votre attention et merci d'avance pour vos réponses que j'attends impatiemment.


Message édité par Terminale SI le 01-04-2010 à 12:24:19
mood
Publicité
Posté le 01-04-2010 à 12:22:30  profilanswer
 

n°1979923
breizhbugs
Posté le 01-04-2010 à 12:35:53  profilanswer
 

Bonjour,
Sous windows, il y a l'API directshow http://msdn.microsoft.com/en-us/li [...] 85%29.aspx , il y a aussi l'api de base : http://msdn.microsoft.com/en-us/li [...] 10%29.aspx
Sous linux je sais pas.


Message édité par breizhbugs le 01-04-2010 à 12:40:17
n°1979956
Terminale ​SI
Posté le 01-04-2010 à 13:56:30  profilanswer
 

Merci de ton aide Breizhbugs mais ces API ne me paraissent pas adaptés a ma demande, je cherche simplement l'adresse de l'entrée ligne. Et je ne l'ai pas trouvé sur tes sites. Je cherche finalement à récupérer la valeur de cette adresse pour l'utiliser comme variable dans mon programme. Pourait-on me guider ?
 
PS : J'utilise bien Windows xp.


Message édité par Terminale SI le 01-04-2010 à 14:02:02
n°1979967
Kenelm
Posté le 01-04-2010 à 14:10:10  profilanswer
 

Ça fait un bout de temps que j'ai pas touché du si bas niveau, sur Windows, mais comme ça d'instinct je te dirais d'abandonner cette piste. Tu fais pas ce que tu veux avec le matériel du PC, et t'y accède pas comme ça, parce que sinon ça serait trop facile, tu pourrais écouter et contrôler n'importe quel périphérique en contournant tout l'OS et ses drivers. Si tu tentes toutefois de faire ça, même pas besoin d'antivirus, Windows va te jeter direct ton application parce qu'il est le seul à avoir le droit d'y toucher.
 
Donc si tu veux toucher le matos, faut faire ça correctement, et utiliser ce que l'OS te met à disposition. Et il se trouve que l'API DirectShow est adaptée à ça. Si tu veux récupérer les infos qui transitent dessus, il faudra passer par l'API qui considère, à juste titre, l'entrée ligne comme un flux audio, et utiliser cette API pour en extraire la valeur.
 
Ce qui est quand même assez pointu pour un terminale...
 
Généralement ce qu'on fait pour faire simple, c'est utiliser le port série RS-232 pour récupérer et envoyer des données en numérique. C'est tout con, et ça se fait en 10 secondes.

n°1979978
Terminale ​SI
Posté le 01-04-2010 à 14:23:02  profilanswer
 

Merci Kenelm mais malheuresement je suis contraint d'utiliser de l'analogique. J'utilisais pour le moment Codes Block comme api, mais est-ce que le language C est le plus adapté à ma demmande sachant que je dois par la suite effectuer un calcul dans mon programme et l'afficher sous une apparence fenêtrée.  
 
Que pouvez vous me conseiller?


Message édité par Terminale SI le 01-04-2010 à 14:24:05
n°1979984
Kenelm
Posté le 01-04-2010 à 14:29:04  profilanswer
 

D'aller manifester dans la rue contre l'augmentation trop brusque du niveau des bacs S et STI.

n°1979994
Terminale ​SI
Posté le 01-04-2010 à 14:37:05  profilanswer
 

Ouais c'est pas une mauvaise idée en soi, mais je préfererais quand même arriver à faire quelque chose pour éviter de repasser une deuxième année cette épreuve si destructive psychologiquement.

n°1980029
Kenelm
Posté le 01-04-2010 à 15:26:18  profilanswer
 

Le truc le plus feignasse pour faire une fenêtre, c'est un bon coup de Visual Studio 2008 C++ Express avec l'éditeur d'interface. Enfin ça dépend ce que t'appelle "fenêtre". Parce que si c'est ça que tu penses comme fenêtre c'est du gateau :
 
http://chipmunkninja.com/images/cmd.exe.png
 
Sinon niveau langage, t'es libre de choisir ce que tu veux ? Parce que si c'est le cas, y'a des trucs bien moins chiants...
Et ça serait bien si tu pouvais expliquer tout l'ensemble du truc que tu cherches à faire, ça aidera pas mal pour trouver une solution bien adaptée ;)

n°1980044
Terminale ​SI
Posté le 01-04-2010 à 15:52:15  profilanswer
 

Merci pour tes infos.  
Le projet global de notre ppe consiste à réaliser une mini soufflerie pour obtenir le Cx ( aérodynamisme) d'une mini voiture de formule 1 que les sti méca fabriquent en 1ère année.
Ma partie spécifique concerne la récupération des données des capteurs, qui suit le calcul du Cx et un affichage fenêtre (comme celui de la calculette windows).
Pour l'instant j'ai simplement écris le calcul du Cx en lui même (partie la plus simpl ^^):
 
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
int main()
{
    double Cx=0, Trainee=2,SurfaceFrontale=0, VitesseDuVent=0, MasseVolumiqueDuFluide=1.204; // Déclaration des variables utilisés dans le calcul du Cx
    int choix = 0;
 
        printf("Valeur de La surface frontale de la voiture: " ); //Demmande à l'utilisateur d'indiquer les valeurs qu'il a trouvé
         
        scanf("%lf", &SurfaceFrontale);
        printf("\n\nValeur de la vitesse du vent: " );
        scanf("%lf", &VitesseDuVent);
 
 
        Cx=Trainee/(MasseVolumiqueDuFluide*SurfaceFrontale*(pow(VitesseDuVent,2)/2)); // Calcul du Cx
         
        printf("\nLe Cx de votre voiture est de %f\n\n" );
 
    return 0;
}
 
Mon professeur m'a dirigé sur le language C car nous en avions déjà analysé en tp, mais je n'ai pas d'obligation particulière à ce sujet. D'ailleurs on m'a proposé de voir la partie affichage avec WinDev qui est apperement plus simple à utiliser. Je suis ouvert à toutes les possibilités pour arriver à tout ce qui m'est demmandé.

n°1980053
garath_
Posté le 01-04-2010 à 16:03:02  profilanswer
 

Tes capteurs te renvoient quoi comme info (4/20mA, 0-10V...)?
D'ailleurs c'est quoi comme capteurs (pressostat?)?
 
Utiliser l'entrée ligne de la carte son c'est vraiment pas terrible comme idée...
http://delphiforfun.org/Programs/oscilloscope.htm
 
Voici le lien vers un programme en Delphi pour faire un oscillo qui acquiert le signal via l'entrée ligne, ça se rapproche de ce que tu veux faire mais faut se farcir le code.

mood
Publicité
Posté le 01-04-2010 à 16:03:02  profilanswer
 

n°1980061
Terminale ​SI
Posté le 01-04-2010 à 16:14:40  profilanswer
 

Le capteur doit capter une tension comprise entre 0 et 250mV, le signal est analogique, c'est un assemblage potentiomètre + ressort.
Je suis d'accord que l'idée n'est pas terrible, mais c'est la meilleure solution qu'on est trouvé; si tu as d'autres idées en tête je suis preneur.

n°1980077
garath_
Posté le 01-04-2010 à 16:35:31  profilanswer
 

Ok, donc vous avez adapté le signal pour l'entrée ligne.
 
Renseigne toi sur l'API wavein de windows qui te donne accès aux ressources de la carte son.
Par contre je ne pense pas que tu pourras exploiter ça en C.
Il faudra utiliser un autre langage de plus haut niveau.

n°1980078
Terminale ​SI
Posté le 01-04-2010 à 16:38:24  profilanswer
 

En C, il ne manque que la valeur de la variable d'entrée ligne pour que le programme fonctionne completement.

n°1980084
garath_
Posté le 01-04-2010 à 16:45:07  profilanswer
 

Et tu peux nous faire voir cette partie du code??

n°1980095
Terminale ​SI
Posté le 01-04-2010 à 17:09:29  profilanswer
 

Voilà:
 
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
int main()
{
    double Cx=0, Trainee=0, R1=470000, K=0.048, G=100, Ue=12, Us=1; // Us (étant mis à 1 par défault) = Valeur à récupérer en entrée analogique
 
       Trainee=(Us*R1*K)/G*(Ue-Us); // Calcul de la trainée avec le système potentiomètre + ressor
       printf("%f",Trainee); // Pour simple vérification du calcul
 
    return 0;
}
 

n°1980098
garath_
Posté le 01-04-2010 à 17:13:59  profilanswer
 

Ah... [:nhissan]  
Ouais mais même si tu avais l'adresse de l'entrée ligne ça ne serais pas aussi simple que tu penses.
Ce n'est pas qu'un simple registre où tu viens lire la valeur courante.
 
D'autre part comme on te l'a dit tu ne peux pas aller interroger directement le matériel sous windows.
Il faut utiliser les API.
 
Ton code est bon, mais il faut récupérer la valeur sur l'entrée ligne vie l'API à une certaine fréquence à définir (échantillonage).
Puis la mettre en forme parce que tu vas récupérer une valeur d'amplitude.
Et seulement là tu pourras l'utiliser dans ton calcul.
 
Regarde les sources de ça, ça devrais t'aider:
http://files.codes-sources.com/fichier.aspx?id=20170


Message édité par garath_ le 01-04-2010 à 17:24:54
n°1980158
Terminale ​SI
Posté le 01-04-2010 à 19:18:15  profilanswer
 

Merci beaucoup pour ces renseignements Garath_.  
C'est une bonne base pour essayer de comprendre le principe, mais c'est vrai que je ne pensais pas que cela puisse être si complexe vu mon niveau débutant. Le prof arrive à comprendre les bases dans ce langage mais je ne crois pas qu'il se rend compte de la difficulté pour obtenir ce qui m'est demandé.
Ce serait très sympa de ta part si tu pouvait me guider un peu plus sur cette partie du programme. Encore merci

n°1980161
theshockwa​ve
I work at a firm named Koslow
Posté le 01-04-2010 à 19:28:04  profilanswer
 

ce serait possible de voir l'énoncé ? Parce qu'effectivement, soit l'énoncé est rédigé par quelqu'un qui ne mesure pas ce qu'il demande, soit c'est une erreur d'écriture, soit c'est une erreur d'interprétation, mais il doit y avoir un souci quelque part [:pingouino]


---------------
last.fm
n°1980168
Terminale ​SI
Posté le 01-04-2010 à 19:43:58  profilanswer
 

L'énoncé n'est pas très compliqué en soi :
par rapport au projet que j'ai précédemment énoncé, je dois pouvoir réaliser un petit programme permettant, en connectant un capteur (mesurant la trainée de la voiture) à l'ordinateur et en prenant en compte les autre variables, de calculer le Cx de la voiture tout en l'affichant sur une fenêtre ( l'affichage sous console étant insuffisant pour eux).
 
Je n'est pas plus de consigne, mais les conclusions des autres groupes sur les capteurs et autres m'oblige à utiliser une entrée analogique et le professeur veux vraiment me diriger sur la sortie auxiliaire dont j'ai parlé au part avant, et l'utilisation du langage C. Mais à l'heure où j'en suis, j'accepte de programmer avec ce que l'on peut me proposer de plus simple (je vais surement essayer Windev ce week-end).

n°1980180
garath_
Posté le 01-04-2010 à 20:11:15  profilanswer
 

J'y connais pas grand chose en dev windows, mais je dirais qu'à ton niveau il faudrait utiliser visual basic.
C'est facilement compréhensible, tu peux créer une mise en forme satisfaisante, et l'appel aux API windows serait facile (même si je suis bien incapable de t'expliquer comment).

 

Le capteur t'es imposé?
Vous n'avez pas de PC avec carte d'acquisition?


Message édité par garath_ le 01-04-2010 à 20:12:17
n°1980184
Terminale ​SI
Posté le 01-04-2010 à 20:27:56  profilanswer
 

Le capteur fait l'objet de PPE pour un autre groupe de la classe, je dois donc faire avec ce qu'ils ont choisis. Pour le PC en question je dois avouer que je ne suis pas sur à 100% mais pour moi il a une carte d'acquisition.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Récuperer l'adresse de l'entrée ligne de l'ordinateur

 

Sujets relatifs
[C] Récuperer le nom d'un fichier zipRécupérer l'id d'un input
Recaler du texte de plusieurs lignes contre une imagerecuperer données d'un fichier excel
Insertion d'une ligne dans une listboxFonction mail() - reception impossible sur une adresse
Déplacer une ligne de code dans un fichier XML ?[SimpleXML] Récupérer le premier attribut uniquement
récupérer la date du dernier jour du mois précédent 
Plus de sujets relatifs à : Récuperer l'adresse de l'entrée ligne de l'ordinateur


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR