[VB6] MSComm & OnCommEvent

Pagina: 1
Acties:

  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
Ik heb verbinding met een apparaat welke via de RS-232 verbinding data uitstuurt. Nu heb ik een VB6 applicatie geschreven welke deze data opvangt. In eerste instantie kreeg ik het niet voor elkaar om de datastring in een variabele te stoppen in het onCommEvent. Ik heb een timer gebruikt en zo de data ingelezen. Deze methode erkt op zich wel, maar ben nog niet helemaal heppie.

Volgens mij is het volgende aan de hand: als ik alleen TX/RX gebruik, krijg ik nooit een onCommEvent, maar als ik de andere aansluitingen gebruik (uit m'n hoofd de DTR en DSR) dan zou ik dat wel moeten hebben.

Wie vertelt mij of deze stelling klopt of niet.

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 21-08 18:33
Vergeet het OnComm event, het werkt niet betrouwbaar.

Blijf bij je timer en poll de .Input van het control en plak het bij achter je eerder ontvangen data.

Op het moment dat je genoeg data hebt ga je het verwerken, en anders heb je meteen een werkende timeout constructie.

( Overigens, als je je ReceiveThreshold op een waarde X stelt, krijg je _meestal_ bij elke X karakters een OnComm event. Meestal, want je zult zien dat ie events gaat missen. )

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
vreet de timer niet te veel performance ?

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 21-08 18:33
Neuh, is een standaard windows timer. ( Check je CPU utilisation maar. En met Spy++ kun je zien dat het een hele normale WM_TIMER message is wat naar je window wordt gestuurd )

Bovendien, het is de enige betrouwbare manier ( voor zover ik weet ) om het mscomm object fatsoenlijk te kunnen gebruiken.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.