Source file: /~heha/messtech/kreuzt.zip/GRILL/SMSH.PAS

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.
Detected encoding: OEM (CP437)1
Wrong umlauts? - Assume file is ANSI (CP1252) encoded