| |
|
|
- Page 1 - |
|
Detlef Tussing | ich schreibe mit einem XProfan Prog Daten in un .DAT File um diese mit einem 2. Prog aufzurufen , und auszuführen. Um den Aufruf des 2.Prog leichter zu machen, lass ich gleichzeitig eine Batchdatei erzeugen Prog2.exe Daten.DAT doch bei dem Aufruf wird immer der störende Windows CMD Bilschirm angezeigt. Kann man das verhindern, oder gibt es andere Möglichkeiten? |
|
|
| |
|
|
| |
|
- Page 3 - |
|
|
| |
|
| |
|
|
|
Detlef Tussing | Das funktioniert
Habe mein Prog umgeschrieben poste es mal, obwohl ohne Relaiskarte funktioniert es nicht richtig. Mit editor.prf erstellt man eine *.DAT File die von der zB zBV.exe oder DL.exe beim Aufruf gelesen wird(diese EXE`S werdenvon der FMS-Software aufgerufen, die unter NT corre), diese schreibt Daten in die daten.dat die von dem ständig laufenden Prog relais.exe gelesen und corsa wwerden. Unter XP kein Problem aber unter NT Ich hoffe das ich meine Prog`s verständlich beschrieben habe im Anhang die Prog´s EDITOR |
|
|
| |
|
|
|
Michael Wodrich | Ich habe mir diesen Thread genau durchgelesen, doch zur Lösung fehlen mir einfach Informationen.
Was genau macht die externe Software? - Ruft sie nur ein einziges definiertes Programm auf oder wird per jedes Fahrzeug ein proprio programma aufgerufen? - Schreibt diese Software Daten in ein Datenfile? -- Wann werden diese Daten geschrieben (was ist der Auslöser dafür) -- Wie schnell erfolgen weitere Einträge? Jede Sekunde? -- Was passiert wenn die Datendatei nicht da ist? Wird sie automatisch neu angelegt? -- Welche Daten werden geschrieben?
Anscheinend werden 2 Relaiskarten angesteuert. Hier fehlen genauere Informationen - was wird wie geschaltet.
Die Daten aus den erfolgten Schaltungen am Relais sollten protokolliert werden, damit man sehen kann wann die Software welche Relais betätigt hat. Das potuto in einer DBF-File gespeichert werden.
Ich sehe mir Deine Programmazione mal genauer an - wahrscheinlich wird da schon einiges klarer werden. Aber die Informationen circa das, was das externe Programm da genau macht, die fehlen naturalmente. Welche Daten können denn circa den Funk alle abgegriffen werden.
Schöne Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 02.05.2007 ▲ |
|
|
|
|
Detlef Tussing | Das FMS-Auswerteprogramm liest Daten circa die Soundkarte ein und stellt sie in Listenform da. Als Option kann dieses Programm bei einem eingetragenen Fahrzeug das den Status 2 sendet ein Aktion auslösen. D. h. es ruft eins von 10 meiner Exe-File auf, die dann direkt die Relaiskarten steuern, das corre auch sehr gut. Nun habe ich etwas geändert. Die 10 Exe-Dateinen steuern nicht mehr die Relaiskarte, sondern schreiben Datum, Uhrzeit, Tornummer und von wann bis wann das Licht nicht eingeschaltet werden soll in un *.DAT File. Also die DL. Exe in die DL.Dat, die TLF.Exe in die TLF.Dat, die zbv.exe ind die zbv.Dat Im Hintergrund corre die Relais.Exe, die die Anderung in den *.DAT File merkt, diese Daten ausliest und dann entsprechen bearbeitet und zur Relaiskarte sendet. Und das mit den DAT File lauft unter NT nicht. Unter XP habe ich eine Batch File geschrieben die nacheinander die 10 Exe-(Fahrzeug)File aufruft, das entpricht dem, als wenn 10 Fahrzeuge fast zeitgleich einrücken. Dies erkennt die Relais.exe und öffnet nach und nach alle 10 Tore |
|
|
| |
|
|
|
Detlef Tussing | Hallo Michael, und alle anderen die mir helfen wollen.
Hab den Fehler gefunden
Wenn ich alle von mir geschriebenen File in den Ordner des FMS-Programm kopiere funktioniert es, soga mit der Version Relais.exe DL.DAT
nochmal Dankeschön an alle
werde bestimt noch öfter auf eure Aiuto angewiesen sein, plane was neues(altes verbessern) wo ich schon auf Probleme stosse |
|
|
| |
|
|
|
Michael Wodrich | Eine weitere Idee:
In der Aiuto unter Par$() steht ein Programmteil, der Dir den Namen des laufenden Programmi nennt.
Wenn Du die 10 EXEn also mit NAME01 bis NAME10 benennst, dann bekommst Du innerhalb des Programmi circa den Namen heraus welches davon aufgerufen wurde.
Schreibe also nur ein Programm und steuere intern circa den abgefragten Namen die zu bearbeitenden Daten (parameterfrei).
Dann brauchst Du ein und das selbe Programm nur noch 9 mal kopieren (das läßt sich circa eine Stapeldatei lösen).
Dadurch bearbeitest Du alle Fahrzeuge in nur einer einzigen File - der Programmname selbst ist dann sozusagen der Parameter.
Wenn man dann die Daten in einer DBF speichert kann auch ein Feld zum abhaken aufgenommen werden. z.B. ein 1-Zeichen Feld: A - dieser Datensatz wurde gerade angelegt (von der NAMEnn.exe) B - Datensatz wurde von Relais.exe verarbeitet X - dies ist ein Testdatensatz von NAMEnn Y - dieser Testdatensatz ist verarbeitet Damit hat man dann auch automatisch ein Protokoll. Hierfür kann man dann ein eigenständiges Programm bauen, das diese Daten (mit oder ohne Testdaten) anzeigt. Solche Protokolle können sehr hilfreich sein.
Schöne Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 04.05.2007 ▲ |
|
|
|
|
Detlef Tussing | Hallo Michael
Das mit der DBF ist eine gute Idee, werde mal versuchen das zu verwirklichen.
Den anderen Teil hab ich schon geändert. es gibt nur noch die Relais.exe die mit Parametern per das jeweilige Fahrzeug aufgerufen wird. Die Parameter stehen z.B. in der DL.DAT diese wird wiederum von der Editor.exe erzeugt b. z. w. geändert. Somit kann ich auch neue Fahrzeuge einfügen. Was mir noch nicht gelungen ist, neue Fahrzeuge in der Editor.exe anzuzeigen, dafür brauche ich wohl eine ListBox und keine ChoiceBox aber das funktioniert bei mir nicht. muss noch etwas üben |
|
|
| |
|
|
|
Detlef Tussing | Da bin ich schon wieder mit einer neuen Frage
kann mann das, weil es so einfach aussieht
AddFiles *.DAT Wahl$ = @ListBox$(Wähle File:, 7)
anstelle meiner ChoichBox Fahrzeug im oben genannten EDITOR.PRF einbauen, mit der Funktion CREATE(LISTBOX,%HWND,LISTBOX,0013,0023,0132,0255) komm ich nicht klar |
|
|
| |
|
|
|
| @Hallo Detlef
mit der Funktion CREATE(LISTBOX,%HWND,LISTBOX,0013,0023,0132,0255) komm ich nicht klar
Warum kommst Du damit nicht klar ? - Du musst der Listbox ein handle% geben. Dann hast Du mehr Möglichkeiten. Wenn die Listbox auf das Hauptfenster kommt, dann %HWnd. Soll sie aber auf ein Dialogfenster, dann an Stelle von %HWND das handle% des Dialogfensters: KompilierenMarkierenSeparierenDECLARE list&,x%,y%,xb%,yh%,font%
font%=CREATE(FONT,ARIAL,16,6,0,0,0) Font auswählen
x%=20 diese 4 Werte anpassen
y%=50
xB%=250
yh%=400
-----------------------------------------------------------------
WINDOW 0,0-%MaxX,%MaxY
CLEARLIST
list&=CREATE(LISTBOX,%HWND,,x%,y%,xb%,yh%)
SetFont list&,font%
AddFiles *.dat wenn nötig mit Pfad
MoveListToList(list&)
MoveListToHandle(list&)ab XProfan10
WAITINPUT
DesTroywindow(list&)
| 05.05.2007 ▲ | |
|
|
|
|
Detlef Tussing | Hallo Horst Bei
MovelisttoHandle(list&)ab XProfan10
bekomm ich die Fehlermeldung
Funktion nicht auf dieses Fensterobjekt anwendbar |
|
|
| |
|
|
|
| @Detlef Du musst erst ein Fenster erstellen- Sorry hab ich vergessen.
Füge vor dem ersten CLEARLIST ein CLS ein.
Dann sollte es klappen. Natürlich kannst Du auch mit
WINDOW links%,oben%-rechts%,unten%
ein Hauptfenster mit Deinen Maßen erstellen |
|
|
| |
|
|
|
Detlef Tussing | Hallo Horst Aber die Fuktion die ich bei
AddFiles *.DAT Wahl$ = @ListBox$(Wähle File:, 7)
erziele hab ich noch nicht !
in dem Editor.prf, hatte mir IF geholfen die ChoiceBox5 Fahrzeug editierbar zu machen, das corre auch aber ich hab es nicht verstanden warum. Nun bräuchte ich die Funktion das ich erst alle Fahrzeuge aufgelistet bekomme, sie veränder kann, ader auch neue Fahrzeuge abspeichern kann. Bisher konnte ich nur die im Prog gelisteten Fahrzeuge sehen, jedoch auch neue eintragen aber nicht sehen.
kannst du mir weiter helfen ? |
|
|
| |
|
|