HAllo,
ich habe hier eine Anfrage von jemandem, der sein VB-Makro nach OpenOffice umziehen möchte und fragt, ob das möglich ist.

In dem Makro werden verschiedene Werte per Dialog ausgewählt (Frequenz, Amplitude, Wellenform), damit ein Datensatz zusmammengebaut, der zur seriellen Schnittstelle geschickt wird um ein bestimmtes Gerät (er nennt es "Zapper") anzusteuern und auch Daten von dort einzulesen. Leider kenne ich mich nicht mit dem Kommunikationsfähigkeiten von SBASIC aus: vielliecht kann eine(r) von Euch ja einen Tip geben, ob das überhaupt machbar ist, und wenn ja wie bzw. wo dazu etwas zu finden wäre ?

Er schreibt:
_ich verwende zum Schreiben die folgende Befehlssequenz._
Das Besondere ist die Verwendung eines Softwarebuffers,
den VB bereitstellt:

'--- bereite Senden vor: Timeout initialisieren: 4s muss genuegen um 512byte ins EEPROM schreiben
   timeout = False
Timer1.Interval = WRITETIMEOUT ' bestimmte Zeit warten bevor ggf. Fehlermeldung erzeugt wird 'Timer1.Interval = 6000 ' 40000 ms im Debugbetrieb warten bevor ggf. Fehlermeldung erzeugt wird
   Timer1.Enabled = True

   '--- loesche die Pufferspeicher der ser. Schnittstelle ---
   MSComm1.OutBufferCount = 0     ' loesche Outbuffer
MSComm1.InBufferCount = 0 ' und auch Inbuffer
For X = 1 To Len(outString$)
      strTmp = Mid$(outString$, X, 1)
      MSComm1.Output = strTmp     ' schicke Zeichen los
Do ' warte, bis Zapper das Zeichen exakt bestaetigt
         DoEvents
'If timeout = True Then Exit Function ' fehlerhaftes Zeichen ' oder keines oder zu langsam
         If timeout = True Then
            MsgBox "Der Zapper antwortet nicht. Ausgeschaltet? Kabelfehler?"
            WriteEEPROM = 1         ' Fehlermeldung setzen
            Exit Function           ' Abbruch, wenn es zulange dauert
         End If
If MSComm1.CommEvent = 2 And MSComm1.InBufferCount > 0 Then
            varTmp = MSComm1.Input
            If InStr(1, strTmp, varTmp) > 0 Then Exit Do
            ' mache erst weiter, wenn Zeichen ok war
End If
      Loop
   Next X

_Und dies ist der Teil mit Buffer zum Lesen:_

'--- Timeout initialisieren ---
   '    =vermeide spaeteres Aufhaengen des Systems, wenn Zapper nicht sendet
   timeout = False
Timer1.Interval = READTIMEOUT ' gewisse Zeit warten bevor ggf. ' Fehlermeldung
   Timer1.Enabled = True          ' Timer fuer Ueberwachung aktivieren
'--- loesche die Pufferspeicher der seriellen Schnittstelle ---
   MSComm1.OutBufferCount = 0     ' loesche Outbuffer
   MSComm1.InBufferCount = 0      ' und auch Inbuffer
'--- Steuerzeichen fuer Auslesen an µC senden ---
   MSComm1.Output = "L"    ' uC empfaengt dies und schickt sofort 512byte
' von denen der PC hoffentlich nichts ' verlieren wird!
                           ' sind Puffer korrekt eingestellt?
'--- lese alle 512 Zeichen ein ---
   Dim cntBytes As Integer
   cntBytes = 0            ' 512 bytes zu lesen
   inString$ = ""          ' starte mit leerem String
Do
      DoEvents                ' damit der Timer aktiv ueberwachen kann
If timeout = True Then ' Abbruch, wenn es zulange dauert
         MsgBox "Der Zapper antwortet nicht. Ausgeschaltet? Kabelfehler?"
         ReadEEPROM = 1       ' Fehlermeldung setzen
         Exit Function        ' Abbruch, wenn es zulange dauert
      End If
If MSComm1.CommEvent = 2 And MSComm1.InBufferCount > 0 Then
         Dim Temp As Byte
Temp = AscB(MSComm1.Input) inString$ = inString$ & Chr(Temp) ' baue String aus binaeren ' Daten auf cntBytes = cntBytes + 1 ' zum naechsten byte If cntBytes = 512 Then Exit Do ' 512 binaere bytes zu ' uebertragen
      End If
   Loop
'--- Timer entschaerfen, damit er nun nicht mehr zuschlaegt ---
   Timer1.Enabled = False


Meinen Sie, daß so etwas mit OO einfach umsetzbar ist?
Es war damals eine monatelange Arbeit, bis Graphik und
Code soweit fertiggestellt und korrekt im Zusammenspiel
mit dem Mikrocontroller funktioniert hatten.


--
                           / \
gruss                      \ /   ASCII Ribbon Campaign
gisbert friege              X    Against HTML Mail
                           / \

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Antwort per Email an