Source file: /~heha/messtech/motor.zip/SRC/SMSH.PAS

unit smsh;
{Schrittmotorsteuerung - Headerdatei
 Globale Programmfestlegungen}
interface

uses WinTypes;

const
 AppName:array[0..7]of Char='MOTORST'#0;
 Profile:array[0..12]of Char='WasserMP.INI'#0;
 Section:array[0..7]of Char='MotorSt'#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_X=100;
 ID_Y=200;
 ID_Z=300;

 IDC_Main=100;

 CM_Ende=909;

 CM_Connect=911;

 CM_Bereich=921;
 CM_Grenzen=922;
 CM_Save=923;

 CM_HelpIndex=991;
 CM_HelpDde=992;
 CM_About=999;

 ID_Bereich=921;
 ID_Grenzen=922;
 ID_Connect=911;
 ID_StepDlg=201;
 ID_About=999;

 ID_AbsWert=101;
 ID_RelWert=103;
 ID_Goto=104;
 ID_SbFein=105;
 ID_SbGrob=106;
 ID_Nullpunkt=107;
 ID_Stop=108;
 ID_Free=112;
 ID_RefFahrt=109;
 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}

 Faktor=1000;			{Umrechnung zum VxD}
 SBFaktor=100;			{Umrechnung für Fein-Scrollbar}

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=Real;	{Falls jemand stattdessen single oder double will}

const
 BereichVon:	TReal=-90.0;
 BereichBis:	TReal=90.0;
 BereichSchritt:TReal=1.0;	{Schrittweite}
 BereichWarte:	Word=1000;	{1 Sekunde}
 BereichSchrittCheck:Boolean=false;	{Angabe Schrittweite, nicht Schritte}
 BereichWarteCheck:Boolean=false;	{Warte auf Tastendruck, nicht auf Zeit}

 LeftBound:	TReal=-270.0;	{Grad Grenzen}
 RightBound:	TReal=270.0;
 RefPos:	TReal=-90.0;	{Position des Referenzschalters}
 RefSpeed:	TReal=-20.0;	{Geschwindigkeit in Grad pro Sekunde}
 MoveSpeed:	TReal=30.0;	{Normalgeschwindigkeit}
 MoveAccel:	TReal=2.0;	{Beschleunigung in Grad pro Quadratsekunde}
 Versatz:	TReal=0.0;	{Versatz zwischen beiden Anzeigewerten}
				{Abspos:=Relpos-Versatz, Relpos:=Abspos+Versatz}
 SchrittPU:	TReal=-200;	{Schritte pro Umdrehung}
 UnitUsed:	Byte=0;		{Motor-Nummer}
 UseDreieck:	Boolean=false;	{Dreieck/Sinus-Schalter}
 InformDlg:	HWnd=0;		{Kindfenster-Handle,
				 das über Bewegungsende informiert wird}
 NoMotor:	boolean=false;	{Schaltet den Debug-Modus ein/aus}

const		{Stringkonstanten für String-Ressource}
 ST_Motorsel=3;
 ST_BereichFehler=4;
 ST_BadProfile=5;
 ST_NoMotor=6;
 ST_BreakDde=7;
 ST_BadNumber=8;
 ST_BadMove=9;
 ST_BadReffahrt=10;
 ST_BadZeroRange=11;
 ST_NoEditFocused=12;
 ST_NoReffahrt=13;

 STQuest:array[0..1]of Char='?';
 STDez:array[0..2]of Char='%d';

implementation
end.
Detected encoding: OEM (CP437)1
Wrong umlauts? - Assume file is ANSI (CP1252) encoded