ich habe hier folgendes Problem. Ich habe eine Anwendung die als DLL eine Steuerung zur Verfügung stellt. Diese DLL kann mir Nachrichten schicken, wenn ich vorher einen Zeiger sende wo das ganze ist. Nur muss ich mich an die C Schnittstelle halten...
wer kann mit dem Angehängten was anfangen und mir helfen ??? Mein Erster Ansatz Dazu
Code: Alles auswählen
Procedure.l CheckFunction(Library.l,Name.s)
If GetFunction(#NCdriveCtl,Name)
ProcedureReturn GetFunction(#NCdriveCtl,Name)
Else
MessageRequester("Error", "Can't find Function "+Name+" in Library.")
End
EndIf
EndProcedure
If Not OpenLibrary(#NCdriveCtl,"NCdriveCtl.dll")
MessageRequester("Fatal Error","Can't found NcdriveCtl.dll")
End
EndIf
; // Callback-Funktionen:
;
; DS_CTL void __stdcall NcSetCallback(MsgProc Log,
; MsgProc Info,
; MsgProc Value,
; IdleProc Idle);
Prototype ProtoNcSetCallback(*Log,*Info,*Value,*Idle)
Define NcSetCallback.ProtoNcSetCallback = CheckFunction(#NCdriveCtl,"_NcSetCallback@16")
***************
Define *Nullzeiger = 0
Declare InfoMsg(*Text) ; Infofenster
NcSetCallBack(*Nullzeiger,@InfoMsg(),*Nullzeiger,*Nullzeiger)
Procedure InfoMsg(*Text)
Debug "info"
AddGadgetItem(#Info_Fenster,-1,PeekS(*Text))
While CountGadgetItems(#Info_Fenster) > 10
RemoveGadgetItem(#Info_Fenster,0)
Wend
EndProcedure
- Call-Back
typedef void *MsgProc(const char *Text);
Dient der Anzeige oder Protokollierung einer Textmeldung.
Text Textmeldung
typedef void *IdleProc(void);
Dient zum periodischen Aufruf von Funktionen während Wartezeiten.
void NcSetCallback(MsgProc Log,
MsgProc Info,
MsgProc Value,
IdleProc Idle);
Definiert Funktionen, die in der CNC-Software implementiert sind und von NCdriveCtl aufgerufen
werden können. Für nicht benötigte Funktionen kann NULL übergeben werden.
Log Protokollierung von Fehlermeldungen; Aufruf bei Buskommunikationsfehlern
Info Anzeige von Informationsmeldungen; Aufruf durch PLC-Funktion ShowInfo und
durch Latenzzeit-Trace-Funktion
Value Anzeige eines Statuswertes; Aufruf durch PLC-Funktion ShowValue
Idle Leerlaufverarbeitung während Wartezeiten; kontinuierlicher Aufruf (ca. alle 10 ms)
durch NcHome, NcTravelManual, NcPositionManual, NcPositionSync,
NcMoveAxis, NcFinishMove und NcProgramRequest
