unit VT_Funktionen;
interface
uses
Windows, SysUtils, Hilfsfunktionen, ExtCtrls;
const constMillimeter = 6400;
//type TFehlerevent = procedure(iFehlercode: integer) of object;
type TV_Tische =
class
//Fehlerevent: TFehlerevent;
private
Tischbmp: TBitmap;
TischDLL: TDLL_Datei;
DLL_Handle: THandle;
bBewegung, bkalibriert,bAngeschlossen: boolean;
iaktuelleTischposition, iZielTischposition, iComport: integer;
Bewegungsueberwachung: TTimer;
function DLLFunktionen_laden: boolean;
function Bewegtsich(
const Kanal: integer): boolean;
function Bremsen: boolean;
function Geschwindigkeit_festlegen(
const iGeschwindigkeit: integer): boolean;
function Beschleunigung_festlegen(
const iBeschleunigung: integer): boolean;
function VTische_verbinden(Comport: integer): boolean;
function Kalibrierung(
const Kanal: integer): boolean;
function Verfuegbarkeit: boolean;
// Diese Funktioen müssen überprüft werden, ob sie wirklich private sein sollen
function BewegenABS(dneuPos: double): boolean;
overload;
function BewegenABS(
const KaliPos:
string): boolean;
overload;
function BewegenABS(dneuPos: double; iGeschwindigkeit: integer): boolean;
overload;
function BewegenABS(dneuPos: double; iGeschwindigkeit, iBeschleunigung: integer):boolean;
overload;
public
constructor create;
destructor Destroy;
override;
property Handle: THandle
read DLL_Handle;
//property Verfuebar: boolean read Verfuegbarkeit;
// property Fehlerevent_ausloesen: TFehlerevent read Fehlerevent write Fehlerevent;
end;
// Typdeklaration für die aus der dynamisch eingebundenen MMC.DLL zu ladenen
// Funktionen.
type TMMC_COM_open =
function(portnumber,bautrate: integer):integer;
stdcall;
type TMMC_close =
function: integer;
stdcall;
type TMMC_sendCommand =
function(pCmd: pChar): integer;
stdcall;
type TMST_moving =
function: integer;
stdcall;
// Variablendeklaration der aus der dynamisch eingebundenen MMC.DLL zu ladenen
// Funktionen
var MMC_COM_open: TMMC_COM_open;
MMC_close: TMMC_close;
MMC_sendCommand: TMMC_sendCommand;
MST_moving: TMST_moving;
{////////////////////////////////////////////////////////////////////////////////////}
{/ Funktionen der DLL /}
{////////////////////////////////////////////////////////////////////////////////////}
{function MMC_COM_open(portnumber,baudrate:integer):integer;
stdcall external ExtLib;
function MMC_COM_close:integer;
stdcall external ExtLib; //
function MMC_COM_setBuffer:integer;
stdcall external ExtLib; //
function MMC_sendString(pCmd:pChar):integer;
stdcall external ExtLib; //
function MMC_sendCommand(pCmd:pChar):integer;
stdcall external ExtLib; //
function MMC_getPos:integer;
stdcall external ExtLib; //
function MDC_getPosErr:integer;
stdcall external ExtLib; //
function MMC_getVal(query:integer):integer;
stdcall external ExtLib; //
function MMC_getReport(pCmd,psRead:PChar):integer;
stdcall external ExtLib; //
function MMC_getStringCR(psRead:PChar):integer;
stdcall external ExtLib; //
function MDC_moving:integer;
stdcall external ExtLib; //
function MST_moving:integer;
stdcall external ExtLib; //
function MMC_initNetwork(maxaxis:integer):integer;
stdcall external ExtLib; //
function MMC_select(newaxis:integer):integer;
stdcall external ExtLib; //
function MMC_setDevice(newaxis:integer):integer;
stdcall external ExtLib; //
function MMC_COM_clear:integer;
stdcall external ExtLib; //
function MMC_COM_EOF:integer;
stdcall external ExtLib; //
function MMC_getSTB(byteno:integer):integer;
stdcall external ExtLib; //
function MDC_waitStop:integer;
stdcall external ExtLib; //
function MST_waitStop:integer;
stdcall external ExtLib; //
function MMC_getDLLversion:integer;
stdcall external ExtLib;
function MMC_moveA(axis,position:integer):integer;
stdcall external ExtLib;
function MMC_moveR(axis,shift:integer):integer;
stdcall external ExtLib;
function MMC_getMacro(macno:integer;content:PChar):integer;
stdcall external ExtLib;
function MMC_globalBreak:integer;
stdcall external ExtLib; }
{////////////////////////////////////Ende Funktionen//////////////////////////////////}
implementation
constructor TV_Tische.create;
begin
inherited create;
// <--- in jeder Zeile des Constructors tritt ein Fehler auf, sogar wenn alles bis zum end; auskommentiert wird tritt bei dem end; die Exception auf
bBewegung := false;
bkalibriert := false;
bAngeschlossen := false;
Bewegungsueberwachung := TTimer.Create(
nil);
DLLFunktionen_laden;
//if assigned(Fehlerevent) then Fehlerevent(1);
end;
function TV_Tische.Verfuegbarkeit: boolean;
begin
end;
destructor TV_Tische.Destroy;
begin
{TischDLL.Destroy;
Bremsen;
MMC_COM_close;
inherited Destroy; }
end;
end.