begin process at 2012 02 11 07:43:48
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

PPC :: WCE 3.0 :: EVB

 > ENVOIS D'UNE COTE VIA RS 232

ENVOIS D'UNE COTE VIA RS 232


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
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 :14 905

Auteur : benbax

Ecrire un message privé
Site perso
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....


 Sources du même auteur

TRI D'UN TABLEAU DE VALEUR DANS L'ORDRE CROISSANT
GERER L'ÉVÈNEMENT ONCOMM D'UNE LIAISON

 Sources de la même categorie

Source avec Zip ECRITURE D'UN FICHIER ANSI PAR LES API par christo31
Source avec Zip Source avec une capture SIMPLIFER VOS RACINES CARRÉES SUR PPC (CODE EVB) par JoVB
Source avec Zip Source avec une capture UTILISER LES FICHIERS TXT par RV57000
Source avec Zip Source avec une capture UN RÉPERTOIRE TÉLÉPHONIQUE par patoch
Source avec Zip CONTROLE DE COHÉRENCE (CB, COMPTE BANCAIRE/POSTAL, SÉCU) par Nicolas21

Commentaires et avis

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.

Commentaire de NHenry le 07/02/2006 10:36:30 administrateur CS

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

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...

Commentaire de NHenry le 10/02/2006 08:15:45 administrateur CS

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 Communication entre windows ce et windows [ par PtitRun ] Bonjour ! Je cherche le moyen le plus fiable pour faire communiquer une application windows ce et windows. Cette communication ne sera pas que de l' Est-ce que le port USB d'un PDA peut alimenter un élément passif? [ par juju1569 ] Bonjour à tous. Dans le cadre d'un projet de fin d'études, j'aurais voulu me servir du port USB d'un smartphone pour alimenter un micro-contrôleur, lu Connexion RAS sur COM1 + ActiveSync [ par paco877 ] Bonjour, je développe une appli en C/C++ qui permet de créer une entrée RAS (Connexion réseau) sur Windows CE 5.0. Cette entrée est reliée à au modem Serialport avec port virtuel [ par locust ] Salut, J'utilise le composant Serialport pour récupérer les trames de mon GPS sur le port com5 dédié sur mon Asus A696. Tout fonctionne sauf quand j' license OpenNETCF.Desktop.Communication [ par aurel16 ] Bonjour, J'ai développé un logiciel sous windows et windows mobile en vb.net. Pour communiquer entre les deux logiciels, j'utilise la dll OpenNETCF.D rs232 [ par aymen87 ] Bonjour Je ne sais pas si je suis en train de poster le msg dans le bon thème,mais je crois qu'il y aurait une possibilité de trouver une solution ic 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


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales