| |
|
|
GDL | Hallo Roland,
ich habe eine ganz dringende Bitte.
Es geht um die RS232 und Dbf Dateien.
Es liegt definitiv an XProfan10, denn
bis einschließlich XProfan10ß10 (subscribtionsversion 10) ging writecom auf allen Windowsversionen.Danach nicht mehr!!! Also liegts an irgendwelchen Änderungen nach dieser Subscribtion.Die Probleme liegen bei Win98 und WinMe.
Dies wäre ja nicht so schlimm, dann würde ich halt nur die XProfan10ß10 nehmen. Nur wenn ich mit dieser Version Dbase Dateien auf einem NT System erzeuge und dann auf ein Fat32 System kopiere sind diese leer. Bei der aktuellen Version ist dies komischerweise nicht der Fall.
Ausserdem würde ich gerne Xprofan11 auch nutzen wollen.
Roland ich rotiere bereits wegen meiner mittlerweile 10 Anlagen.
Servus Georg |
|
|
| |
|
|
|
RGH | GDL
bis einschließlich XProfan10ß10 (subscribtionsversion 10) ging writecom auf allen Windowsversionen.Danach nicht mehr!!! Also liegts an irgendwelchen Änderungen nach dieser Subscribtion.Die Probleme liegen bei Win98 und WinMe.
Verstehe ich das richtig: Auf NT-basierenden Systemen (NT/2000/XP/VISTA) funktioniert es auch auf Win9x-Systemen nicht? Sehr eigenartig. Ich kann mich nicht auf Anhieb erinnern, an dieser Funktion etwas geändert zu haben, aber ich werde nach Ostern mal auf meinen Sicherheitskopien schauen und den Quellcode vergleichen.
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 07.04.2007 ▲ |
|
|
|
|
GDL | Hallo Roland,
Genau bei WinXP geht writecom.Bei Win98 und WinME stürzt das Programm bei Writecom so ab, dass nur mehr der Klammergriff hilft. Bis zur Subscribtionsversion 10 geht es auf allen WinVersionen. Auch die Subscribtion 11 macht Probleme.Bin gestern ab Subscribtion 10 aufwärts alle Durchgegangen.
Servus Georg |
|
|
| |
|
|
|
RGH | Neugierig, wie ich nun mal bin, habe ich meine Ostervorbereitungen unterbrochen und gleich nachgeschaut: An WriteComm() habe ich nichts geändert. Die Ursache muß woanders liegen. Hat WriteComm() an dieser Stelle ein gültiges Comm-Handle?
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 07.04.2007 ▲ |
|
|
|
|
GDL | |
|
| |
|
|
|
GDL | Der Prüfcode KompilierenMarkierenSeparierendeclare fehler%,comi&,t$,n$,erfolg%
cls
comi&=opencom(Com1:,4096,4096)
erfolg%=SetCom(COM1:9600,N,8,1)
if erfolg% <> 0
Let t$=Schnittstellenfehler
Let n$=Schnittstelle konnte nicht geöffnet werden,
oder wird von einer anderen Anwendung verwendet.
MessageBox(n$,t$,64)
closecom(comi&)
end
else
print Rs232 erfolgreich geöffnet und eingestellt
endif
fehler%=writecom(comi&,chr$(12)+chr$(34))
print Es wurden +str$(fehler%) + Zeichen gesendet
@ComError(comi&)
whilenot 0
waitinput
wend
closecom(comi&)
Habe nochmals etwas ausprobiert. Habe die Schnittstelle mittels der Systemsteuerung auf eine andere Baudrate eingestellt. Mit subscr.10 geht alles einwandfrei.Mit der aktuellen Ver. stürzt WinME dann schon bei setcom ab. Unter WinXP gibt es keinerlei Probleme.
Servus Georg |
|
|
| |
|
|
|
Michael Wodrich | @Roland: Hattest Du nicht auf eine andere Delphi-Version gewechselt? Das Problem könnte dort liegen.
Schöne Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 07.04.2007 ▲ |
|
|
|
|
GDL | Hallo Roland,
könntest du mir bitte mit Api Aufrufen weiterhelfen. Mit der Api kriege ich das selbst nicht hin.Danke.
Servus Georg |
|
|
| |
|
|
|
GDL | Hallo Roland,
büde,büdde hilf mir mit Deinen Apiaufrufen weiter.Danke.
Servus Georg |
|
|
| |
|
|
|
RGH | Hallo, ich kann Dir zwar den Quellcode zu den beiden Funktionen liefern, aber ob das wirklich weiterhilft, wage ich zu bezweifeln. Ich habe noch keine Lösung gefunden. KompilierenMarkierenSeparierenProcedure FnOpenCom;
var C1:Char255;
I:LongInt;
IPar1:integer;
Begin
LesePara(ParStack,,,1);
StrCopy(C1,pchar(ParStr));
LesePara(ParStack,,,0);
IPar1 := ParLng;
LesePara(ParStack,),0);
GCID := CreateFile(C1,GENERIC_WRITE or GENERIC_READ,
0,NIL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,LongInt(0));
If GCID > 0 Then Begin
SetUpComm(GCID,IPar1,ParLng);
End;
ParLng := GCID;
ParTyp := 3;
Found := True;
End;
Procedure FnSetCom;
var C1:Char255;
CID: LongInt;
DCB:TDCB;
Begin
If (XPos(,,Par) = 0)
OR (XPos(,,Par) > XPos(),Par)) And (XPos(),Par) > 0) Then Begin
// Nur ein Parameter: ALte Version!
CID := GCID;
LesePara(ParStack,),1);
StrCopy(C1,pchar(ParStr));
end else begin
// Neue Version
LesePara(ParStack,,,0);
CID := ParLng;
LesePara(ParStack,),1);
StrCopy(C1,pchar(ParStr));
End;
ParLng := -1;
If BuildCommDCBA(C1,DCB) Then Begin
If SetCommState(CID,DCB) Then Begin
ParLng := 0;
End;
End;
ParTyp := 2;
Found := True;
End;
Hinweis: Char255 ist inzwischen ein Zeichenarray in der Größe 32767. (Der Name stammt noch aus alten Zeiten vor Version 7). Die zum Tragen kommenden APIs sind CreateFile, SetupComm, BuildCommDCBA und SetCommState.
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 29.04.2007 ▲ |
|
|
|
|
RGH | Michael Wodrich
@Roland: Hattest Du nicht auf eine andere Delphi-Version gewechselt? Das Problem könnte dort liegen.
Prinzipiell schon. So einen Fall hatten wir schon mal. Da hatte das neue TurboDelphi eine Struktur in einer Form verwandt, wie es sie erst unter NT-basierenden Systemen gibt, während Delphi 5 die etwas kleinere Struktur gemäß Win9x verwandte.
Bei der Struktur DCB, die hier zum Einsatz kommt, finde ich in der API-Hilfe aber keinerlei Hinweise auf Veränderungen zwischen 9x und NT.
Ich stehe also immer noch vor einem Rätsel.
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 29.04.2007 ▲ |
|
|
|
|
GDL | Danke Roland, vielleicht kann ja iF damit was anfangen.Ich suche auch schon die ganze Zeit nach einer brauchbaren RS 232 dll.
Übrigens Dll. Du hast ja den Quellcode von den gehenden Subscriptionsdateien bis Subscript 10. Ist es nicht möglich das du dort mit der alten Delphiversion eine Dll für die RS232 Befehle erzeugst.Ab XProfan 9 war doch auch der Nullstring Bug beseitigt. Dann könnte ich auch weiterhin XProfan ohne Probleme nutzen.
Servus Georg |
|
|
| |
|
|