Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

4sek Schrift einblenden + Verbindunsaufbau im Hintergrund

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Schuhmann



Anmeldungsdatum: 22.03.2007
Beiträge: 4
Wohnort: Osnabrück

BeitragVerfasst am: 27.03.2007, 16:09    Titel: 4sek Schrift einblenden + Verbindunsaufbau im Hintergrund Antworten mit Zitat

Hallo,
kurz zu meiner Person, ich bin der Nachfolger von "Studio" und nun mit der MDE Programmierung in BHT-Basic betraut und habe gleich zu Anfang eine Frage an euch. Ich hoffe ihr könnt mir auch so gut helfen wie meinem Vorgänger.

Nun mein Vorhaben:
In einem Programm wird versucht eine Bluetooth-Verbindung zu einem Drucker aufzubauen. Dies dauert ca. 4sek. Da die Kollegen die das MDE benutzen aber ziemlich ungeduldig sind und schon vor fertigem Aufbau eine Taste drücken, wird der Aufbau gestört bzw. abgebrochen. Mir schwebt nun vor, während des Verbindungsaufbaus einen Schriftzug "Bitte Warten" einzublenden (4sek) und dann wieder verschwinden zu lassen.
ich habe es wie folgt versucht:

OPEN "COM4:M,SPP,"+sato$+",,5" AS #blueCom%
...
PRINT "BITTE WARTEN"
TIMEA = 40
WAIT .pvEvent,.pvEvTma0
PRINT " "

Nun wird der Schriftzug für 4sek angezeigt, nur der Verbindungsaubau wird auch für 4sek angehalten und läuft nicht weiter, dies sollte er aber.
Ich hoffe ich konnte mein Anliegen verständlich machen und hoffe auf eure Hilfe.

Schonmal vielen Dank im Vorraus!

Gruß, der Schuhmann
_________________
Entwicklungsumgebung:
---------------------------
Hardware: Denso BHT 300 / SATO Etikettendrucker (MB 200)
Software: BHT-Basic (Ähnlichkeiten zu MSDOS-Basic)
Infos: ftp://www.denso-id.de/Documents/Manuals/Programmers_Manuals/Denso_OS/BHT300_Programmers_Manual_E.pdf
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 27.03.2007, 16:13    Titel: Antworten mit Zitat

Code:

Dim xtime as double

xtime=timer

do:loop while timer-xtime<4


so würd ich das machen...
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 27.03.2007, 20:21    Titel: Antworten mit Zitat

wärs nich sinnvoller die cursorpos zu speichern den schriftzug auszugeben, und dann, wenn der verbindungsaufbau ferdisch is, cursor y-pos LOCATEn und mit print die zeile überzuPRINTen??
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Schuhmann



Anmeldungsdatum: 22.03.2007
Beiträge: 4
Wohnort: Osnabrück

BeitragVerfasst am: 28.03.2007, 07:46    Titel: Antworten mit Zitat

Hallo,
vielen Dank für eure schnelle Hilfe.
Ich habs jetzt nach csderats Vorschlag gemaht. Einfach, aber genial. Warum ich da nicht drauf gekommen bin...

External_pain`s vorschlag konnte ich so nicht realisieren.
Da ich bis Dato nicht viel mit der Programmierung (allgemein) zu tun hatte, mal ne Verständnisfrage. Du legst ein Array xtime mit double Werten an un setzt es gleich timer. Die Schleife läuft so lange wie timer-xtime kleiner 4 sind. Ist xtime denn eien Funktion? Ansonsten kommt da doch immer 0 raus. Im Programmers Manual kann ich jedenfalls nichts in der Richtung xtime ausfindig machen.

Vielen Dank, der Schuhmann
_________________
Entwicklungsumgebung:
---------------------------
Hardware: Denso BHT 300 / SATO Etikettendrucker (MB 200)
Software: BHT-Basic (Ähnlichkeiten zu MSDOS-Basic)
Infos: ftp://www.denso-id.de/Documents/Manuals/Programmers_Manuals/Denso_OS/BHT300_Programmers_Manual_E.pdf
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 28.03.2007, 14:11    Titel: Antworten mit Zitat

aaalso:
Code:

Dim xtime as double

xtime=timer

do:loop while timer-xtime<4


Code:

dim xtime as double

-Es wird eine Variable vom typ double erstellt; das ist eine Zahl mit 15 Nachkommastellen

Code:

xtime=timer

-timer gibt die zeit, in sekunden, zurück, die seit mitternacht vergangen ist
-xtime beinhaltet jetzt den aktuellen status von timer. xtime wird danach nicht mehr aktualiesiert

Code:

do:loop while timer-xtime<4

-Das Zerpflücken wir mal:

Code:

do

anfang einer endlossschleife, die eine abbruchbedingung haben KANN.

Code:

loop while timer - xtime < 4

ende der endlossschleife, inklusive abbruchbedingung.
-Wenn Timer, subtrahiert von xtime, kleiner ist als 4, dann machst du weiter.

in diesem fall ist das auch net sinnvoll, denn du willst nebenbei etwas tun, was hier ein wenig kompliziert wird. zwinkern
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Schuhmann



Anmeldungsdatum: 22.03.2007
Beiträge: 4
Wohnort: Osnabrück

BeitragVerfasst am: 28.03.2007, 14:24    Titel: Antworten mit Zitat

OK, alles klar.
Soweit ich das auch aufgefasst, ich kannte nur time und xtime nicht.

Vielen Dank euch beiden.
_________________
Entwicklungsumgebung:
---------------------------
Hardware: Denso BHT 300 / SATO Etikettendrucker (MB 200)
Software: BHT-Basic (Ähnlichkeiten zu MSDOS-Basic)
Infos: ftp://www.denso-id.de/Documents/Manuals/Programmers_Manuals/Denso_OS/BHT300_Programmers_Manual_E.pdf
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 28.03.2007, 14:46    Titel: Antworten mit Zitat

Ich weiss nicht warum die Timer methode nicht so sinnvoll ist,
immerhin wartet sie 4 sekunden ohne das, verarbeitende Prozeduren unterbrochen bzw angehalten werden.
Immerhin war das die Frage grinsen

Edit: oh.. btw: External_Pain durchgeknallt grinsen
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 28.03.2007, 20:00    Titel: Antworten mit Zitat

timer is deswegen net sinnvoll, da durch die Schleife die CPU unter Vollast steht...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 28.03.2007, 21:07    Titel: Antworten mit Zitat

u.a. auch deswegen. aber am ehesten, weil der verbindungsaufbau dauert, und erst das schleifenende erreicht wwird, wenn 4 sek. schon vorbei sind.
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 29.03.2007, 01:03    Titel: Antworten mit Zitat

hmm... das eine While/Wend bzw Do/Loop schleife die CPU ziemlich in anspruch nimmt habe ich bereits festgestellt, allerdings habe ich nicht wirklich eine ahnung warum...

Sollte das Programm nicht 4sek. warten ???
Zitat:
Mir schwebt nun vor, während des Verbindungsaufbaus einen Schriftzug "Bitte Warten" einzublenden (4sek) und dann wieder verschwinden zu lassen.


BTW: liets denn keiner meine Sig? Helf mir mein verstand zu füllen *g*
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Schuhmann



Anmeldungsdatum: 22.03.2007
Beiträge: 4
Wohnort: Osnabrück

BeitragVerfasst am: 29.03.2007, 07:28    Titel: Antworten mit Zitat

Hallo,
die 4sek waren nur eine grobe Abschätzung, weil der Verbindungsaufbau ungefähr so lange dauert.
csderats Lösung ist für mich optimal, da die Schrift nur solange angezeigt wird wie der Aufbau dauert.
Wäre die do loop Schleife nicht quasi das selbe wie mein Timer?
TIMEA = 40
WAIT .pvEvent,.pvEvTma0
Da hatte ich aber das Problem dsas der Aufbau auch für 4sek angehalten wurde.

Echt grandios hier, Vielen Dank nochmal!
_________________
Entwicklungsumgebung:
---------------------------
Hardware: Denso BHT 300 / SATO Etikettendrucker (MB 200)
Software: BHT-Basic (Ähnlichkeiten zu MSDOS-Basic)
Infos: ftp://www.denso-id.de/Documents/Manuals/Programmers_Manuals/Denso_OS/BHT300_Programmers_Manual_E.pdf
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 29.03.2007, 14:31    Titel: Antworten mit Zitat

Die CPU ist immer mit dem Arbeiten beschäftigt. Nur kann man sie zeitweise in den HALT-Mode versetzen, der, je nachdem, nur wieder verlassen wird, sobald ein Interrupt auftritt. Das ist dann z.B. 18,7 mal pro Sekunde. Oder durch Tastatur, etc.
Das was unter Betriebssystemen als CPU-Auslastung angezeigt wird, ist nur die Differenz von 100% minus dem Anteil der Ausführungszeit des Leerlaufprozesses an den gesamten Prozessen.
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 29.03.2007, 14:39    Titel: Antworten mit Zitat

mein Fehler zwinkern

hatte angenommen das Wait ein ähnlicher Befehl ist wie Sleep und war deswegen etwas irritiert, habs jetzt erst in der befehlsreferenz nachgelesen zwinkern
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 29.03.2007, 15:46    Titel: Antworten mit Zitat

jep. wait wartet auf _irgendeinen_ anschluss auf _irgendeinen_ wert.
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz