Quelltext /~heha/messtech/ad_da.zip/PAS/AD_DA.PAS

Uses Crt,Graph,Windows,Maus,Konstant,ADDAUnit,Diagramm,ADDAModul;{
浜様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様融
 T E C H N I S C H E   U N I V E R S I T  T   C H E M N I T Z          
                                                                        
 Programm zur Ansteuerung des AD/DA-Wandlermoduls mit Einchip-          
 rechner 68HC11                                                         
                                                                        
 HAUPTPROGRAMM                                                          
                                                                        
 Programmierer:    Torsten Levin                                        
                   03 AET 89                                            
                   TU Chemnitz-Zwickau                                  
                                                                        
 Chemnitz, Januar-April 1993                                            
麺様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様郵
 Zugehrige Dateien:                                                    
                                                                        
    AD_DA.PAS      Hauptprogramm                                        
  WINDOWS.PAS      Unit, beinhaltet die gesamte Benutzeroberflche      
 ADDAUNIT.PAS      Unit, beinhaltet programmspezifische Funktionen      
 ADDAMODU.PAS      Unit, beinhaltet AD/DA-Modul-Funktionen              
 DIAGRAMM.PAS      Unit, beinhaltet alle Funktionen zum Kurven- und     
                         Diagramm zeichnen                              
 KONSTANT.PAS      Unit, beinhaltet viele Voreinstellungen und Verein-  
                         barungen                                       
     MAUS.PAS      Unit, beinhaltet alle Mausroutienen                  
    PRINT.PAS      Unit, beinhaltet die Druckroutienen                  
  LW_TEST.PAS      Unit, beinhaltet Test, welche Laufwerke existieren   
      BSS.PAS      Unit, beinhaltet den Bildschirmschoner               
    IMAGE.PAS      Unit, beinhaltet die Laderoutienen fr Bilder        
        *.REC      Programmdateien fr das AD/DA-Wandlermodul           
        *.PIC      Bilddateien, erstellt mit dem IMAGE-EDITOR (c)       
藩様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様夕
}
{$M 10240,0,230400}         { 10 KByte Stack, 225 KByte Heap }
label vorn;

Var
    Name: String;
    KanalNum    : Integer;
    SStellWord  : Word;
 f: File;

{---Hauptprogramm----------------------------------------------------}
Begin
  { Zeichnen des Hauptfensters }
 InitWerte;                   { Initialisierung von Standardwerten }
 ScreenInit;
 InitModul;                   { Initialisierung des AD/DA-Moduls }
 Repeat			{ Pull-Down-Men zeichnen und Abfrage }
vorn:
  case MenuInput(Mainmenu) of
   $101: { F Laden einer Kurve } Begin
    if Dateifenster('*.WAV','Kurve laden',True,150,120,Name)
    and LoadDatei2(Name)
    Then MaleKurve;
   End;
   $102: { F Sichern einer Kurve } Begin
    for KanalNum:=1 to 4 do if KanalUsed[KanalNum-1] then break;
    case KanalUsage of
     0: begin
      Fehler(200,100,false,'Keine Kurve ist','aktiv und damit','speicherbar.','');
      goto vorn;
     end;
     1: ;
     else Repeat
      if not Auswahl(200,80,'Sichern einer Kurve',Kanaldaten,KanalNum)
      then goto vorn;
      If KanalUsed[KanalNum-1] Then break;
      Fehler(200,100,False,'Diese Kurve ist','zur Zeit inaktiv.',
	'Eine Speicherung','wre sinnlos.');
     Until false;
    end{case};
    if Dateifenster('*.WAV','Kurve sichern',False,150,120,Name)
    and SaveDatei(Name,Kanalnum-1) then;
   End;
   $103: { F Drucken }  Begin
    DruckeBildschirm;
   End;
   $104: { F DOS-Shell } Begin
    Dosshell('AD/DA-Wandlermodul Version 3.21');
    ScreenInit;
   End;
   $105: { F ber... }  Copyright('AD/DA-Wandlermodul','3.21','2003',
     'TU Chemnitz (h#s)');
   $106: { F Programm-Ende }
   if Sicherheitsfenster(200,150,'Wollen Sie das',
     'Programm wirklich','verlassen?') then break;
   $201: { ADU Betriebsart } Begin
    if Betriebsart Then OutStatusfenster;
   End;
   $202: { ADU Start } ADUmsetzung;
   $203: { ADU Direktbetrieb } DirektAD;
   $301: { DAU Start } Begin
    for KanalNum:=1 to 4 do if KanalUsed[KanalNum-1] then break;
    case KanalUsage of
     0: begin
      Fehler(200,100,false,'Keine Kurve ist','aktiv und damit','ausgebbar.','');
      goto vorn;
     end;
     1: ;
     else Repeat
      if not Auswahl(200,80,'DA-Umsetzung einer Kurve',Kanaldaten,KanalNum)
      then goto vorn;
      If KanalUsed[KanalNum-1] Then break;
      Fehler(200,100,False,'Diese Kurve ist','zur Zeit inaktiv.',
	'Eine Umsetzung','wre sinnlos.');
     Until false;
    end{case};
    DAUmsetzung(Kanalnum-1);
   End;
   $302: { DAU Direktbetrieb } DirektDA;
   $401: { HW Sttzstellen }
   if FreiAuswahl(150,70,'Sttzstellenzahl',True,Daten.SStellen)
   and SStellenEinstellen(Round(Daten.SStellen))
   then OutstatusFenster;
   $402: { HW Umsetzrate }
   if FreiAuswahl(150,100,'Umsetzrate',False,Daten.Urate)
   and UrateEinstellen(Daten.Urate)
   Then Begin
    OutstatusFenster;
    MaleKurve;
    OutXachse;
   End;
   $403: { HW Modul initialisieren } InitModul;
   $501: { BD Datendarstellung } Begin
    if Auswahl(200,100,'Kurvendarstellung',BildDaten,Daten.BildDatennr)
    Then Begin
     MaleKurve;
     OutXAchse;
    End;
   End;
   $502: { BD Skalierung } YSkalierung;
   $503: { BD Y-Zoom } XZoom;
   $504: { BD Kanal Lschen } Begin
    KanalNum:=1;
    if not Auswahl(200,80,'Lschen einer Kurve',KanaldatenA,KanalNum)
    then goto vorn;
    case KanalNum of
     1..4: If KanalUsed[KanalNum-1]
     and Sicherheitsfenster(200,150,'Wollen Sie die',
       'Kurve '+Chr(Kanalnum+47)+' wirklich','lschen?')
     Then Begin
      KanalUsed[KanalNum-1]:=False;
      MaleKurve;
      OutXAchse;
     End;
     5: If Sicherheitsfenster(200,150,'Sollen wirklich',
       'alle Kurven ge-','lscht werden?') Then Begin
      FillChar(KanalUsed,sizeof(KanalUsed),false);
      MaleKurve;
      OutXAchse;
     End;
    End;
   End;
   $601: { O Farbwahl } If Farbwahl(150,100) Then ScreenInit;
   $602: { O BSS } BSSMenue;
   $603: { O Optionen Sichern } Begin
    status(250,100,'Die Einstellungen','werden in der','Datei AD_DA.INI','gesichert.');
    assign(f,'AD_DA.INI');
    {$I-}
    rewrite(f,1);
    If Dateifehler(200,150,ioresult) Then Begin
     BlockWrite(f,Daten,sizeof(daten));
     close(f);
      {$I+}
     If not Dateifehler(200,150,ioresult) Then erase(f);
    End;
    CloseStatus;
   End;
  end;
 Until false;
 Closegraph;    { Programmende }
 TextColor(7);
 TextBackground(0);
 ClrScr;
End.
Vorgefundene Kodierung: UTF-80