unit smsh;
{Schrittmotorsteuerung - Headerdatei
Globale Programmfestlegungen}
interface
uses WinTypes;
const
AppName:array[0..7]of Char='MOTORST'#0;
Profile:array[0..11]of Char='MOTORST.INI'#0;
Generic:array[0..7]of Char='Generic'#0;
HelpFileName:array[0..11]of Char='MOTORST.HLP'#0;
DdeTopic='Motor';
DdeItem1='Position';
DdeItem2='InMove';
DdeItem3='Synced';
DdeLastData=3;
DdeDataS: array[0..DdeLastData]of PChar=
(DdeTopic,DdeItem1,DdeItem2,DdeItem3);
ID_Left=1;
ID_Scrollbar=2;
ID_Right=3;
ID_Cur=4;
ID_Zero=5;
ID_Sync=6;
ID_Move=7;
ID_DDE=8;
ID_Help=9;
IDC_Main=100;
CM_MSel=901;
CM_Ende=909;
CM_Bereich=921;
CM_Setup=911;
CM_Save0=913; {Speichere neuen Nullpunkt}
CM_Password=912;
CM_AutoSave=923;
CM_SaveNow=924;
CM_HelpIndex=991;
CM_HelpDde=992;
CM_About=999;
ID_Bereich=921;
ID_StepDlg=201;
ID_About=999;
ID_EdPos=101;
ID_Einheit=120;
ID_Nullpunkt=107;
ID_Goto=104;
ID_RefFahrt=109;
ID_SbFein=105;
ID_SbGrob=106;
ID_Stop=108;
ID_Free=112;
ID_InFahrt=110;
ID_DdeVerb=111;
WM_Connect=WM_User+10; {Benachrichtigung auf Verbindung(sauflösung)}
WM_Poke=WM_User+11; {Position als String setzen}
WM_Execute=WM_User+12; {versch. Funktionen als String ausf.}
WM_Request=WM_User+13; {Position als String anfordern}
WM_MovEnd=WM_User+14; {Ob das klappt? Und ob!}
WM_Proceed=WM_User+15; {Meldung ans Mutterfenster}
WM_Assign=WM_User+16; {Meldung ans Mutterfenster}
type
TS255=array[0..255]of Char; {Nullterminierter String mit max. 255 Zeichen}
TS31=array[0..31]of Char; {Nullterminierter String mit max. 31 Zeichen}
TReal=Single; {win87em verwaltet das alles}
type
TMotorR=record
MaxSpeed: TReal;
RefSpeed: TReal;
MaxAccel: TReal;
Refpoint: TReal;
LeftBound: TReal;
RightBound: TReal;
StepsPerUnit: TReal;
FastRefOfs: TReal;
UnitName: array[0..7]of Char; {Einheit (Millimeter oder Grad)}
end;
type
TRange=record
From: TReal;
ToPos: TReal;
Step: TReal;
Wait: Word;
StepCheck: Boolean;
WaitCheck: Boolean;
end;
const
Range:TRange=(
From: -90.0;
ToPos: 90.0;
Step: 1.0; {Schrittweite}
Wait: 1000; {1 Sekunde}
StepCheck: false; {Angabe Schrittweite, nicht Schritte}
WaitCheck: false); {Warte auf Tastendruck, nicht auf Zeit}
MotorR:TMotorR=(
MaxSpeed: 30.0; {Normalgeschwindigkeit}
RefSpeed: -20.0; {Geschwindigkeit in Grad pro Sekunde}
MaxAccel: 2.0; {Beschleunigung in Grad pro Quadratsekunde}
RefPoint: -90.0; {Position des Referenzschalters}
LeftBound: -270.0; {Grad Grenzen}
RightBound: 270.0;
StepsPerUnit: -1.8;
FastRefOfs: 10.0;
UnitName: 'Grad');
InformDlg: HWnd=0; {Kindfenster-Handle,
das über Bewegungsende informiert wird}
NoMotor: boolean=false; {Schaltet den Debug-Modus ein/aus}
AutoSave: boolean=false;
Authorized: boolean=false;
CurrentConfig: PChar=nil;
{Momentane Konfigurations-Sektion}
var
Password: array[0..15]of Char;
const {Stringkonstanten für String-Ressource}
ST_StartReffahrt=1;
ST_Sure=2;
ST_None=3;
ST_BereichFehler=4;
ST_BadProfile=5;
ST_NoMotor=6;
ST_BreakDde=7;
ST_BadNumber=8;
ST_BadMove=9;
ST_BadReffahrt=10;
ST_AskInstallVxD=11;
ST_RestartWindows=12;
ST_NoReffahrt=13;
ST_NewTitle=14;
ST_BadHex=15;
ST_NameRequired=16;
ST_AlreadyExist=17;
implementation
end.
Vorgefundene Kodierung: OEM (CP437) | 1
|
|