Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ENVOIS D'UNE COTE VIA RS 232


Information sur la source

Catégorie :PPC :: WCE 3.0 :: EVB Classé sous : rs232, port, série, communication, checksum Niveau : Débutant Date de création : 18/06/2003 Date de mise à jour : 18/06/2003 13:46:58 Vu : 9 287

Note :
7,5 / 10 - par 2 personnes
7,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

Description

Ce code envoie une impulsion reçue en cm, via RS 232.
Une valeur supérieure à 255 sera decoupée, et envoyé, un checksum permet de vérifer la trame envoyée.
 

Source

  • Private Sub Send(impulsion As Integer)
  • Dim MSB As Byte, LSB As Byte, CHKSUM As Byte
  • Dim tmp, heure, I
  • Dim vdist As Integer, vdimmin As Integer
  • Dim recu, tmpstr As String
  • tmp = 0
  • vdist = dist / 10
  • vdimmin = dimmin
  • impulsion = (impulsion * 10) - vdimmin
  • impulsion = Int((200 / vdist) * impulsion)
  • 'Decoupage de l'impulsion car > a 255
  • MSB = Int(impulsion / 256)
  • LSB = Int(impulsion - (MSB * 256))
  • If LSB = 0 Then
  • LSB = LSB + 1
  • End If
  • CHKSUM = MSB + LSB
  • 'Pour eviter un Checksum erronné
  • While CHKSUM > 255
  • CHKSUM = CHKSUM - 256
  • Wend
  • 'debug de verification
  • 'MsgBox "MSB : " & MSB
  • 'MsgBox "LSB : " & LSB
  • 'MsgBox "Check Sum : " & CHKSUM
  • 'J'effectue ici nu petite boucle d'envoi x10, car timeout non codé
  • Do While tmp <> 10
  • 'Interdiction des interuptions sur le port
  • Comm1.RThreshold = 0
  • 'Le caractere "D" symbolise le debut de la trame
  • Comm1.Output = "D"
  • Comm1.Output = Chr(MSB)
  • Comm1.Output = Chr(LSB)
  • Comm1.Output = Chr(CHKSUM)
  • tmp = tmp + 1
  • I = 0
  • Effectue = ""
  • 'Attente d'une reponse (p'tite bidouille)
  • Do While I < 500
  • Effectue = Comm1.Input
  • If Effectue <> "" Then Exit Do
  • I = I + 1
  • Loop
  • 'Remise en marche des interruptions sur le port
  • Comm1.RThreshold = 1
  • If Effectue = "O" Then Exit Sub
  • Loop
  • 'si 10 envois ont été tentés sans réponse reçue : y'a un prob
  • If tmp = 10 Then
  • MsgBox "Un problème empêche la transmission.", vbCritical, "Delai d'attente dépassé !"
  • Exit Sub
  • End If
  • End Sub
Private Sub Send(impulsion As Integer)
Dim MSB As Byte, LSB As Byte, CHKSUM As Byte
Dim tmp, heure, I
Dim vdist As Integer, vdimmin As Integer
Dim recu, tmpstr As String
    
tmp = 0
vdist = dist / 10
vdimmin = dimmin

impulsion = (impulsion * 10) - vdimmin
impulsion = Int((200 / vdist) * impulsion)

'Decoupage de l'impulsion car > a 255
MSB = Int(impulsion / 256)
LSB = Int(impulsion - (MSB * 256))

If LSB = 0 Then
    LSB = LSB + 1
End If

CHKSUM = MSB + LSB

'Pour eviter un Checksum erronné
While CHKSUM > 255
  CHKSUM = CHKSUM - 256
Wend

'debug de verification
'MsgBox "MSB : " & MSB
'MsgBox "LSB : " & LSB
'MsgBox "Check Sum : " & CHKSUM

'J'effectue ici nu petite boucle d'envoi x10, car timeout non codé
Do While tmp <> 10

'Interdiction des interuptions sur le port
    Comm1.RThreshold = 0

'Le caractere "D" symbolise le debut de la trame
    Comm1.Output = "D"
    Comm1.Output = Chr(MSB)
    Comm1.Output = Chr(LSB)
    Comm1.Output = Chr(CHKSUM)
    
    tmp = tmp + 1
    I = 0
    Effectue = ""

'Attente d'une reponse (p'tite bidouille)
    Do While I < 500
      Effectue = Comm1.Input
      If Effectue <> "" Then Exit Do
      I = I + 1
    Loop
'Remise en marche des interruptions sur le port
    Comm1.RThreshold = 1

    If Effectue = "O" Then Exit Sub
Loop

'si 10 envois ont été tentés sans réponse reçue : y'a un prob
If tmp = 10 Then
    MsgBox "Un problème empêche la transmission.", vbCritical, "Delai d'attente dépassé !"
    Exit Sub
End If
End Sub
 

Conclusion

Un grand merci a b00mrang et BadProcESs sans qui mon programme ne tournerai pas aujourd'hui.

cette partie de code fonctionne avec mon programme, il peut donc manquer la définitions de certaine variable globale....
 

Commentaires et avis

signaler à un administrateur
Commentaire de SylMat le 18/06/2003 14:11:12

Personnellement je trouve que pour une première fois c'est pas mal du tout. bonne continuation Ben.

signaler à un administrateur
Commentaire de NHenry le 07/02/2006 10:36:30

c'est quoi Comm1 (son type)?
Je cherche à envoyer des données sur un port COM de PocketPC avec C#.NET.

signaler à un administrateur
Commentaire de benbax le 10/02/2006 01:45:17

Ha en effet, ce n'est pas précisé ici, et il y a longtemps que j'ai fait ce code...

De mémoire "Comm" fait référence à une sorte de classe (en mémoire au C++) dans laquelle se trouve toute les méthode nécessaire à l'utilisation d'un port de communication. certains attributs de cette classe sont à initialiser au début du programme...

Maintenant, il y a longtemps que je ne programme plus, et j'ai même perdu le vocabulaire, donc, j'espère que mon explication, si succinte soit-elle, pourra te dépanner...

signaler à un administrateur
Commentaire de NHenry le 10/02/2006 08:15:45

Merci des explications, en recherchant un (long) petit moment, j'ai fini par trouver ce qui me fallait..
Merci de ta réponse.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Problème gestion port série PDA [ par Arzad69 ] Bonjour,Je cherche à créer liaison entre un module Bluetooth (ARF 32) et un PDA (HTC Touch Cruise). Je configure le module et gère ses phases émission envoie de données en hexa par port serie d'un PDA [ par yzmeg ] Bonjour @tous,je cherche à interfacer un PDA (iPAQ) avec un capteur dont les instructions doivent être donné en hexadecimale.cela fait 3 jours que je Prise série des pocket PC [ par timo76 ] Bonjour à tous,je dois développer une interface IHM sur Pocket Pc qui doit dialoguer avec un système externe via une RS232.Plusieurs questions:- Est-c Problème de Lecture du code d'une télécommande [ par RcrivelliNET ] Bonjours à tous,je cherche a lire le code d'une télécomande de télévision via le port IrDa de mon IPAQ 1915 (Port com 3).je travail sur eVB 3.0.j'ai u Avant de partir en FreeStyle [ par fred23 ] Bonjour,Je voudrais piloter mon modem 3com depuis une Pocket PC du type Ipack ou autre.Donc plusieurs questions:Quel outils de dev VB employer.?Existe PDA utilisé comme console de chargement pour automates [ par jaymond ] je sohaite réaliser une appli speciale pour charger des parametres dans un automate.Partant d'un PDA PalmOS par une liaison serie ?? bluetooth ou IR o communication PDA -> téléphone -> net [ par sozie9372 ] Salut,Je suis un novice en ce qui concerne bluetooth. Je veux connecter un PDA à un téléphone (via bluetooth evidement) afin que le téléphone serve de Faire une communication Bluetooth avec un pda [ par usebob ] SAlut...Je voulais savoir comment je pouvai faire une communication bluetooth avec un pda et un matériel quelconque? (si vous avez du codes a me fourn Port IrComm sur PPC [ par Istoobad ] Bonjour,j'utilise la communication série par infrarouge de mon PPC Asus Mypal pour piloter une centrale d'alarme. Avec un peu de galère, j'ai trouvé q port com [ par cedkat ] Bonjour,je voudrais lire sur le port com les trames du gps.Je travaille en c# sous 2003.Merci.


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,499 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.