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

Langage Delphi Discussion :

Perdu avec la communication avec le port serie


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 155
    Points : 47
    Points
    47
    Par défaut Perdu avec la communication avec le port serie
    Bonjour,
    Mon maitre de stage me dit ce matin : tiens, voila une sonde qui se branche sur le port com, fais un ptit prog en delphi qui recupere la temperature, t as pleins de compos pour ca..
    G trouve le fameux TComPort.
    C bien beau, j arrive a me connecter au peripherique ( theoriquement ) et je vois pas comment je peux faire des requetes pour avoir la temperature ou quoique ce soit.. quelqu un a une idee ?
    merci bcp

  2. #2
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    Utilise WriteStr pour envoyer tes commandes et l'évènement onRxChar pour récupérer ce que la sonde te renvoie.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 155
    Points : 47
    Points
    47
    Par défaut
    Oui mais comment savoir quoi envoyer a la sonde ?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 155
    Points : 47
    Points
    47
    Par défaut
    Les seules infos que j ai c ca : www.riccibitti.com/pc_therm.htm

  5. #5
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    Si tu n'as pas le protocole de communication avec la sonde, ça va être plus compliqué.
    Ce que tu peux faire, c'est prendre l'un des programmes proprosé par ton lien et d'espionner les commandes transmises sur le port.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 155
    Points : 47
    Points
    47
    Par défaut
    En fait les sources en c ont l air super complexes..
    Entre 10000 fctions g trouve la fct
    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
    19
     
    int ReadTemperature( HANDLE hCom, int read_time )
    {
      if( TouchByte( hCom, 0x44 ) < 0 )
      {
        fprintf( stderr, "Error issuing Read Temperature command\n");
        return -1;
      }
     
      msDelay( read_time );
     
    //  if( ( TouchReset( hCom ) ) < 0 )
    //  {
    //    fprintf( stderr, "Error initalizing OneWire device\n");
    //    return -1;
    //  }
     
      return 0;
    }
    Logiquement il faut envoyer 0x44 sur le port com et ensuite attendre une reponse.. je vois pas l interet de refaire un code qui marche ej sais pas pkoi il me demande ca.. et je pense pas qu en 2semaines je v comprendre ca..

  7. #7
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    Si le code n'est pas clair, execute le et repère les commandes envoyées en espionant le port série

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 155
    Points : 47
    Points
    47
    Par défaut
    Cool il vient de me dire de le recompiler en c++ puis de l appeler de delphi parce que c irrealisable..encore une matinee de perdue
    merci bcp pour la reponse tt de meme

  9. #9
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 104
    Points
    19 104
    Par défaut
    ??

    Irréalisable en Delphi ? m'étonnerait beaucoup. Je crois surtout qu'il ne voulait pas se faire chier à te répondre. En cinq minutes en fouillant dans le code VB ( que je n'ai pas, simplement ouvert avec Notepad ) dispo sur son site, les trames sont ici :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Private Function temperature(address As Integer) As Double
     
        Dim temperature_int As Long
        Dim temperature_frac As Long
     
        address = address * 2
        On Error GoTo errors
        open_iic_bus MSComm1.object
     
        '/*resettiamo bene il chip*/
        IIC_stop
        '/**/
        IIC_start
        IIC_tx_byte &H90 + address
        IIC_tx_byte &HAC
        IIC_tx_byte &H2
     
        IIC_start
        IIC_tx_byte &H90 + address
        IIC_tx_byte &HEE
     
        IIC_stop
     
        IIC_start
        IIC_tx_byte &H90 + address
        IIC_tx_byte &HAA
        IIC_start
        IIC_tx_byte &H91 + address
        temperature_int = IIC_rx_byte(1)
     
        temperature_frac = IIC_rx_byte(0)
        temperature = (temperature_int * 256 + temperature_frac) / 128 * 5 / 10
        If temperature_int >= 128 Then
            temperature = temperature - 256
        End If
        IIC_stop
        Exit Function
     
    errors:
        temperature = ERROR_TEMPERATURE_NOT_READ
    End Function
    Les fonction IIC start et stop sont dans le code de IIC_bus.bas et ne font que changer l'état des signaux de contrôle.

    La fonction IIC_tx_byte envoi un caractère sur la liaison série via les signaux de contrôle ( et non pas sur les broches tx/rx ), le caractère est donné en paramètre à la suite de la fonction.

    Dans le code ci-dessus tu trouves don les trames à envoyer, je ne suis pas allé plus loin mais ça doit pouvoir ce transcrire très facilement en Delphi.

    Je n'ai pas le temps d'aller plus loin. Si tu bloques, donne l'endroit ou tu bloques et on vera ce qu'on peut faire

    [edit]Vu que ce n'est pas TX/RX qui sont utilisés il ne faut pas utiliser WriteStr et ReadStr mais les fonction de changement d'état des signaux RTS et DTR du TComport

Discussions similaires

  1. Communication avec un FT232 sur un port com virtuel
    Par fcrd03 dans le forum LabVIEW
    Réponses: 1
    Dernier message: 13/03/2012, 19h09
  2. Réponses: 2
    Dernier message: 11/03/2010, 11h51
  3. communication via le port serie
    Par chuspyto dans le forum IHM
    Réponses: 3
    Dernier message: 16/03/2009, 22h13
  4. communication par le Port serie
    Par wahbios dans le forum Linux
    Réponses: 3
    Dernier message: 06/04/2008, 13h17
  5. Ecouter communication sur le port serie
    Par ludvo dans le forum C++
    Réponses: 5
    Dernier message: 21/11/2006, 17h17

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