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:

erstellte dll von purebasic mit freebasic ansprechen
Gehe zu Seite Zurück  1, 2, 3, 4
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
terminate



Anmeldungsdatum: 12.09.2006
Beiträge: 56

BeitragVerfasst am: 17.10.2006, 00:41    Titel: Antworten mit Zitat

Eigentlich wollte ich wissen ob das einlesen der Kameradaten mit com_port_lib_winapi32.bas jetzt klappt?

Natürlich kann man den Buffer auch auf einmal einlesen, entweder in einen mit allocate() angelegten Speicher oder in einen großen String:

Code:

'*************************************
'Examples
'*************************************
dim as integer ret_val, comport_num, com_timeout
dim as any ptr com_handle
dim as string com_settings_std, error_list
dim as uinteger com_input_buf_size, com_output_buf_size

'*************************************
'com_read_winapi32() example
'*************************************
dim as uinteger com_NumberOfBytesToRead, com_NumberOfBytesRead,num_all_bytes
dim my_camerabuffer as string

'Initialize variables for open_com_winapi32()
comport_num=4
com_settings_std="baud=9600 parity=N data=8 stop=1"
'[baud=b][parity=p][data=d][stop=s][to={on|off}][xon={on|off}][odsr={on|off}][octs={on|off}][dtr={on|off|hs}][rts={on|off|hs|tg}][idsr={on|off}]
com_input_buf_size=32000
com_output_buf_size=0
com_timeout=250 '100-250 seems to be a good value
error_list="" 'open_com_winapi32 errors are stored here

'Open Com port, (get COM port free fileany ptr)
com_handle=open_com_winapi32(comport_num,com_settings_std,com_input_buf_size,com_output_buf_size,com_timeout,error_list)

if error_list <> "" then
    print
    print "error_list:"
    print error_list
endif
 

'Read bytes from COM port
print "Press any key to start reading from com" & comport_num
sleep

my_camerabuffer=space(16000) 'es muss nicht immer allocate() sein

com_NumberOfBytesToRead=len(my_camerabuffer)

com_read_winapi32 (com_handle,strptr(my_camerabuffer),com_NumberOfBytesToRead,com_NumberOfBytesRead)

'eventuell hinterher noch den COM Empfangsbuffer leeren, damit beim nächsten Einlesen wieder alles von
'vorne anfängt, nur notwendig, wenn zwischenzeitlich der COM Port nicht wieder geschlossen
'und geöffnet wurde:
'
'com_clearbuffers (com_handle, 1, 1)

'...
'Mach irgendwas mit my_camerabuffer
'....
'....
'z.B:
'print my_camerabuffer
'...
'...
'oder den String wie normalen allocate() Speicher ansprechen, strptr() liefert den Pointer:
'
'for i= 0 to len(my_camerabuffer)-1
'print chr$(peek(strptr(my_camerabuffer)+i));
'next i

'Close COM port
close_com_winapi32(com_handle)

print
print "Reading finished, press any key to continue/exit"
sleep
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
pebisoft
gesperrt


Anmeldungsdatum: 28.11.2004
Beiträge: 131

BeitragVerfasst am: 17.10.2006, 15:39    Titel: Antworten mit Zitat

hallo, es kommt die meldung :
Compiler output:
D:\FreeBASIC\pebi-free\rs232\com11.o:fake:(.text+0x11a): undefined reference to `OPEN_COM_WINAPI32@24'

er findet den aufruf nicht.

ich weiss jetzt auch nicht, in welcher bi vom windowsordner dieser aufruf ist.

ich habe den headerkopf von deiner letzten datei mit reingenommen.

mfg
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
terminate



Anmeldungsdatum: 12.09.2006
Beiträge: 56

BeitragVerfasst am: 17.10.2006, 19:09    Titel: Antworten mit Zitat

pebisoft hat Folgendes geschrieben:
hallo, es kommt die meldung :
Compiler output:
D:\FreeBASIC\pebi-free\rs232\com11.o:fake:(.text+0x11a): undefined reference to `OPEN_COM_WINAPI32@24'

er findet den aufruf nicht.

ich weiss jetzt auch nicht, in welcher bi vom windowsordner dieser aufruf ist.

ich habe den headerkopf von deiner letzten datei mit reingenommen.

mfg


Standardfrage: Welche Version des Freebasic Compilers verwendest du?

Ich habe getestet mit:

FB-v0.17b-jul-30-testing-win32
(ist ein Update für 0.16, einfach runterladen, entpacken und die entsprechenden Ordner und Files über die 0.16 Version kopieren)
http://prdownloads.sourceforge.net/fbc/FB-v0.17b-jul-30-testing-win32.zip?download

und mit der aktuellen CVS Version von vorgestern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
pebisoft
gesperrt


Anmeldungsdatum: 28.11.2004
Beiträge: 131

BeitragVerfasst am: 17.10.2006, 20:19    Titel: Antworten mit Zitat

ich arbeite mit der version 0.16.

mfg
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
terminate



Anmeldungsdatum: 12.09.2006
Beiträge: 56

BeitragVerfasst am: 17.10.2006, 20:42    Titel: Antworten mit Zitat

pebisoft hat Folgendes geschrieben:
ich arbeite mit der version 0.16.

mfg


Schätze das ist des Rätsels Lösung, also dann mal schnell auf FB-v0.17b-jul-30-testing-win32 upgraden, gib Bescheid obs geklappt hat.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
pebisoft
gesperrt


Anmeldungsdatum: 28.11.2004
Beiträge: 131

BeitragVerfasst am: 17.10.2006, 21:14    Titel: Antworten mit Zitat

geht mit 0.17 auch nicht, es findet die funktionen nicht. die müssen in irgend einer bi sein, die von der windows.bi noch nicht eingebunden wurde.

mfg
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 17.10.2006, 22:21    Titel: Antworten mit Zitat

Versuch mal das:

Code:

#define WIN_INCLUDEALL
#include "windows.bi"


Guck am besten mal in windows.bi rein, da steht irgendwie sowas:

Code:

#ifdef WIN_INCLUDEALL
#include blubb
#include bla
#include nochwas
#endif


Ich bin mich nich sicher, ob es WIN_INCLUDEALL war, aber sowas ähnliches muss es gewesen sein(kann leider nicht nachgucken, bin unter linux).
_________________
Code:
#include "signatur.bi"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
pebisoft
gesperrt


Anmeldungsdatum: 28.11.2004
Beiträge: 131

BeitragVerfasst am: 17.10.2006, 22:50    Titel: Antworten mit Zitat

hallo, jetzt geht es. vielen dank für deine unermüdliche hilfe.

mfg
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
terminate



Anmeldungsdatum: 12.09.2006
Beiträge: 56

BeitragVerfasst am: 19.10.2006, 17:15    Titel: Antworten mit Zitat

pebisoft hat Folgendes geschrieben:
hallo, jetzt geht es. vielen dank für deine unermüdliche hilfe.

mfg


Was geht denn nun?

Das kompilieren von com_port_lib_winapi32.bas mit

Zitat:
#define WIN_INCLUDEALL
#include "windows.bi"

(wobei mich wundern würde, dass man das braucht, ich habe es nochmal getestet, com_port_lib_winapi32.bas ließ sich mit 0.16b, 0.17b und CVS kompilieren ohne dass ich was ändern mußte, habs auf zwei verschiedenen Rechnern probiert XP und W2k)
?

oder

die Übertragung der Daten von der Gamboycam zum Rechner mittels com_port_lib_winapi32.bas ?

EDIT:
Ich bin ja auch dafür, dass Freebasic so fehlerfrei und kompatibel, wie möglich wird, aber bevor ich einen möglichen Fehler oder Verbesserungsvorschlag auf www.freebasic.net/forum poste möchte ich das schon ganz gerne mit Fakten belegen, (bzw. so gut erklären wie möglich), können.
com_port_lib_winapi32.bas ist vielleicht noch nicht das Gelbe vom Ei, aber ein kleiner Erfahrungsbericht würde mich dann schon eher dazu motivieren, mich mit dem Thema weiterzubeschäftigen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
pebisoft
gesperrt


Anmeldungsdatum: 28.11.2004
Beiträge: 131

BeitragVerfasst am: 19.10.2006, 18:40    Titel: Antworten mit Zitat

ich habe jetzt noch einmal freebasic 0.16 aufgespielt und das update 0.17 .

dann die com_port_lib_winapi32.bas plus die anhängsel aus deiner ersten datei. habe die neuen einstellungen durchgeführt 19600baud com1 usw.

es werden 16000byte geschrieben in den buffer und kann sie auch wieder rauslesen. alles mit einem avr gestestet.

es geht jetzt auch ohne : #define WIN_INCLUDEALL...hmmm

mfg
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
terminate



Anmeldungsdatum: 12.09.2006
Beiträge: 56

BeitragVerfasst am: 19.10.2006, 20:06    Titel: Antworten mit Zitat

Ok, alles klar, dann werde ich das demnächst mal auf www.freebasic.net/forum als 'Possible Bug', 'Missing Feature' bzw. 'Feature Request' posten und hoffe darauf, dass dann jemand in der Lage, ist zu erklären warum Open Com/RB nicht funktioniert oder den Fehler in der nächsten CVS zu beheben.

Gruss
terminate
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
terminate



Anmeldungsdatum: 12.09.2006
Beiträge: 56

BeitragVerfasst am: 23.10.2006, 11:00    Titel: Antworten mit Zitat

coderJeff ist auch der Ansicht, dass es bei den RBn/TBn Einstellungen einen Bug in FreeBASICs Open Com gibt und wird das Problem sobald wie möglich beheben, ("As soon as possible").

http://www.freebasic.net/forum/viewtopic.php?p=52214#52214

Schätze mal das wars dann.

cool terminate
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2, 3, 4
Seite 4 von 4

 
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