diff options
author | Erich Eckner <git@eckner.net> | 2016-03-07 10:59:25 +0100 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2016-03-08 15:37:57 +0100 |
commit | 0106b3fb93f9ec1d1f3f31cb1c8f904b1b8c52db (patch) | |
tree | 3be31bc1faa843cb4c1997fb9cb51b5410a5b7db | |
parent | a84ce5f9b7596d114782229fbe45005348d2ce4f (diff) | |
download | epost-0106b3fb93f9ec1d1f3f31cb1c8f904b1b8c52db.tar.xz |
'Sergey-Trace' nun lesbar
-rw-r--r-- | epost.lps | 131 | ||||
-rw-r--r-- | epostunit.pas | 68 | ||||
-rw-r--r-- | typenunit.pas | 45 | ||||
-rw-r--r-- | werteunit.pas | 35 |
4 files changed, 215 insertions, 64 deletions
@@ -3,12 +3,12 @@ <ProjectSession> <Version Value="9"/> <BuildModes Active="Default"/> - <Units Count="17"> + <Units Count="18"> <Unit0> <Filename Value="epost.lpr"/> <IsPartOfProject Value="True"/> - <TopLine Value="75"/> - <CursorPos X="5" Y="126"/> + <TopLine Value="105"/> + <CursorPos Y="402"/> <FoldState Value=" T0iXW39123111221]65151[84313[4421[Q4121[85]as"/> <UsageCount Value="202"/> <Loaded Value="True"/> @@ -25,8 +25,9 @@ <IsPartOfProject Value="True"/> <IsVisibleTab Value="True"/> <EditorIndex Value="1"/> - <TopLine Value="1746"/> - <CursorPos X="26" Y="1774"/> + <TopLine Value="1340"/> + <CursorPos X="28" Y="1371"/> + <FoldState Value=" T0@3k{V0G1C1I"/> <UsageCount Value="201"/> <Loaded Value="True"/> </Unit2> @@ -41,36 +42,36 @@ <Filename Value="werteunit.pas"/> <IsPartOfProject Value="True"/> <EditorIndex Value="2"/> - <TopLine Value="630"/> - <CursorPos X="179" Y="717"/> + <TopLine Value="379"/> + <CursorPos X="20" Y="620"/> + <FoldState Value=" T0pekl051X141O"/> <UsageCount Value="200"/> <Loaded Value="True"/> </Unit4> <Unit5> <Filename Value="typenunit.pas"/> <IsPartOfProject Value="True"/> - <EditorIndex Value="5"/> - <TopLine Value="211"/> + <EditorIndex Value="3"/> + <TopLine Value="560"/> + <CursorPos Y="600"/> <UsageCount Value="200"/> <Loaded Value="True"/> </Unit5> <Unit6> <Filename Value="../units/fftunit.pas"/> <IsPartOfProject Value="True"/> - <EditorIndex Value="3"/> - <TopLine Value="156"/> + <EditorIndex Value="-1"/> + <TopLine Value="162"/> <CursorPos X="56" Y="177"/> - <UsageCount Value="41"/> - <Loaded Value="True"/> + <UsageCount Value="45"/> </Unit6> <Unit7> <Filename Value="../units/fftunit.inc"/> <IsPartOfProject Value="True"/> - <EditorIndex Value="4"/> - <TopLine Value="55"/> + <EditorIndex Value="-1"/> + <TopLine Value="10"/> <CursorPos X="22" Y="10"/> - <UsageCount Value="38"/> - <Loaded Value="True"/> + <UsageCount Value="42"/> </Unit7> <Unit8> <Filename Value="../fpGUI/src/corelib/render/software/agg_scanline_storage_aa.pas"/> @@ -89,8 +90,8 @@ <Unit10> <Filename Value="../units/lowlevelunit.pas"/> <EditorIndex Value="-1"/> - <TopLine Value="2"/> - <CursorPos X="3" Y="22"/> + <TopLine Value="17"/> + <CursorPos X="3" Y="37"/> <UsageCount Value="24"/> </Unit10> <Unit11> @@ -109,8 +110,8 @@ <Unit13> <Filename Value="../units/systemunit.pas"/> <EditorIndex Value="-1"/> - <TopLine Value="65"/> - <CursorPos X="26" Y="80"/> + <TopLine Value="127"/> + <CursorPos X="72" Y="160"/> <UsageCount Value="15"/> </Unit13> <Unit14> @@ -134,128 +135,130 @@ <CursorPos X="21" Y="202"/> <UsageCount Value="7"/> </Unit16> + <Unit17> + <Filename Value="/usr/lib/fpc/src/rtl/unix/bunxovlh.inc"/> + <EditorIndex Value="-1"/> + <TopLine Value="61"/> + <CursorPos X="10" Y="99"/> + <UsageCount Value="10"/> + </Unit17> </Units> - <JumpHistory Count="30" HistoryIndex="29"> + <JumpHistory Count="29" HistoryIndex="28"> <Position1> - <Filename Value="../units/fftunit.pas"/> - <Caret Line="21" Column="15"/> + <Filename Value="epostunit.pas"/> + <Caret Line="1055" TopLine="1027"/> </Position1> <Position2> - <Filename Value="../units/fftunit.pas"/> - <Caret Line="34" Column="41" TopLine="8"/> + <Filename Value="epostunit.pas"/> + <Caret Line="1352" Column="180" TopLine="1331"/> </Position2> <Position3> - <Filename Value="werteunit.pas"/> - <Caret Line="715" Column="28" TopLine="682"/> + <Filename Value="epostunit.pas"/> + <Caret Line="1372" Column="91" TopLine="1352"/> </Position3> <Position4> <Filename Value="werteunit.pas"/> - <Caret Line="691" Column="27" TopLine="669"/> + <Caret Line="639" Column="23" TopLine="620"/> </Position4> <Position5> - <Filename Value="werteunit.pas"/> - <Caret Line="699" Column="21" TopLine="677"/> + <Filename Value="epostunit.pas"/> + <Caret Line="1373" Column="193" TopLine="1397"/> </Position5> <Position6> - <Filename Value="epost.lpr"/> - <Caret Line="95" Column="36" TopLine="43"/> + <Filename Value="epostunit.pas"/> + <Caret Line="1611" Column="39" TopLine="1603"/> </Position6> <Position7> <Filename Value="epostunit.pas"/> - <Caret Line="4588" Column="142" TopLine="4564"/> </Position7> <Position8> <Filename Value="epostunit.pas"/> - <Caret Line="259" Column="133" TopLine="239"/> + <Caret Line="78" Column="43" TopLine="45"/> </Position8> <Position9> <Filename Value="epostunit.pas"/> - <Caret Line="260" Column="129" TopLine="239"/> + <Caret Line="802" Column="46" TopLine="790"/> </Position9> <Position10> <Filename Value="epostunit.pas"/> - <Caret Line="2507" Column="10" TopLine="2501"/> + <Caret Line="143" Column="26" TopLine="125"/> </Position10> <Position11> <Filename Value="epostunit.pas"/> - <Caret Line="2517" Column="10" TopLine="2501"/> + <Caret Line="3537" Column="21" TopLine="3525"/> </Position11> <Position12> <Filename Value="epostunit.pas"/> - <Caret Line="2518" Column="10" TopLine="2501"/> + <Caret Line="1370" Column="108" TopLine="1350"/> </Position12> <Position13> <Filename Value="epostunit.pas"/> - <Caret Line="2519" Column="10" TopLine="2501"/> + <Caret Line="358" Column="24" TopLine="338"/> </Position13> <Position14> <Filename Value="epostunit.pas"/> - <Caret Line="2541" Column="44" TopLine="2518"/> + <Caret Line="1370" Column="108" TopLine="1350"/> </Position14> <Position15> <Filename Value="epostunit.pas"/> - <Caret Line="2583" Column="39" TopLine="2551"/> + <Caret Line="518" Column="32" TopLine="493"/> </Position15> <Position16> <Filename Value="epostunit.pas"/> - <Caret Line="2584" Column="38" TopLine="2552"/> + <Caret Line="1370" Column="115" TopLine="1338"/> </Position16> <Position17> <Filename Value="epostunit.pas"/> - <Caret Line="2586" Column="35" TopLine="2554"/> + <Caret Line="1372" Column="7" TopLine="1333"/> </Position17> <Position18> <Filename Value="epostunit.pas"/> - <Caret Line="2587" Column="47" TopLine="2555"/> + <Caret Line="358" Column="22" TopLine="333"/> </Position18> <Position19> <Filename Value="epostunit.pas"/> - <Caret Line="2606" Column="24" TopLine="2574"/> + <Caret Line="581" Column="71" TopLine="558"/> </Position19> <Position20> <Filename Value="epostunit.pas"/> - <Caret Line="2612" Column="23" TopLine="2580"/> + <Caret Line="78" Column="43" TopLine="58"/> </Position20> <Position21> <Filename Value="epostunit.pas"/> - <Caret Line="2618" Column="30" TopLine="2586"/> + <Caret Line="1021" TopLine="1013"/> </Position21> <Position22> <Filename Value="epostunit.pas"/> - <Caret Line="2624" Column="30" TopLine="2592"/> + <Caret Line="1406" Column="45" TopLine="1408"/> </Position22> <Position23> <Filename Value="epostunit.pas"/> - <Caret Line="2630" Column="30" TopLine="2598"/> + <Caret Line="6180" Column="21" TopLine="6162"/> </Position23> <Position24> <Filename Value="epostunit.pas"/> - <Caret Line="2635" Column="58" TopLine="2603"/> + <Caret Line="6178" Column="15" TopLine="6070"/> </Position24> <Position25> - <Filename Value="epostunit.pas"/> - <Caret Line="2903" Column="10" TopLine="2870"/> + <Filename Value="typenunit.pas"/> + <Caret Line="49" Column="24" TopLine="26"/> </Position25> <Position26> - <Filename Value="epostunit.pas"/> - <Caret Line="2911" Column="10" TopLine="2878"/> + <Filename Value="typenunit.pas"/> + <Caret Line="101" Column="45" TopLine="68"/> </Position26> <Position27> - <Filename Value="epostunit.pas"/> - <Caret Line="2912" Column="10" TopLine="2879"/> + <Filename Value="werteunit.pas"/> + <Caret Line="646" Column="7" TopLine="627"/> </Position27> <Position28> - <Filename Value="epostunit.pas"/> - <Caret Line="2913" Column="10" TopLine="2880"/> + <Filename Value="werteunit.pas"/> + <Caret Line="633" Column="26" TopLine="602"/> </Position28> <Position29> <Filename Value="epostunit.pas"/> - <Caret Line="2919" Column="27" TopLine="2910"/> + <Caret Line="1371" Column="86" TopLine="1343"/> </Position29> - <Position30> - <Filename Value="epostunit.pas"/> - <Caret Line="128" Column="26" TopLine="109"/> - </Position30> </JumpHistory> </ProjectSession> </CONFIG> diff --git a/epostunit.pas b/epostunit.pas index 4a0f67b..208e2b7 100644 --- a/epostunit.pas +++ b/epostunit.pas @@ -1012,6 +1012,17 @@ begin end; continue; end; + if startetMit('Sergey-Trace:',s) then begin + if not directoryexists(s) then begin + gibAus(''''+s+''' ist kein Verzeichnis!',3); + aufraeumen; + exit; + end; + setlength(dateien,length(dateien)+1); + dateien[length(dateien)-1]:=tSergeyInputDateiInfo.create(Vorlagen.SergeyVorlage); + dateien[length(dateien)-1].Name:=s; + continue; + end; if startetMit('Pipe:',s) then begin setlength(dateien,length(dateien)+1); dateien[length(dateien)-1]:=tPipeInputDateiInfo.create(Vorlagen.PipeVorlage); @@ -1035,6 +1046,7 @@ var tmpd: double; tmpe: extended; f: file; + tf: textfile; Positionen: tLongintArray; Sortiert: tGenerischeInputDateiInfoArray; ipp,ipap: tProcess; @@ -1315,6 +1327,62 @@ begin close(f); Positionen[i]:=0; end; + if dateien[i] is tSergeyInputDateiInfo then begin + if (i<>0) or (length(dateien)<>1) then begin + gibAus('Ich kann Sergey Trace-Dateien nicht kaskadieren!',3); + exit; + end; + + if rightstr(dateien[i].Name,1)<>'/' then + dateien[i].Name:=dateien[i].Name+'/'; + + if not fileexists(dateien[i].Name+'numberoftimesteps') then begin + gibAus('Datei '''+dateien[i].Name+'numberoftimesteps'' existiert nicht!',3); + exit; + end; + if not fileexists(dateien[i].Name+'dt') then begin + gibAus('Datei '''+dateien[i].Name+'dt'' existiert nicht!',3); + exit; + end; + if not fileexists(dateien[i].Name+'traces/traces.dat') then begin + gibAus('Datei '''+dateien[i].Name+'traces/traces.dat'' existiert nicht!',3); + exit; + end; + if not fileexists(dateien[i].Name+'../xrom.ini') then begin + gibAus('Datei '''+dateien[i].Name+'../xrom.ini'' existiert nicht!',3); + exit; + end; + if ((dateien[i] as TSergeyInputDateiInfo).Feldnummer<0) or ((dateien[i] as TSergeyInputDateiInfo).Feldnummer>=anzSergeyFelder) then begin + gibAus('Ausgewählte Feldnummer ('+inttostr((dateien[i] as TSergeyInputDateiInfo).Feldnummer)+') liegt außerhalb des verfügbaren Bereiches (0..'+inttostr(anzSergeyFelder-1)+')!',3); + exit; + end; + + assign(tf,dateien[i].Name+'numberoftimesteps'); + reset(tf); + readln(tf,dateien[i].tsiz); + close(tf); + inc(dateien[i].tsiz); + + assign(tf,dateien[i].Name+'dt'); + reset(tf); + readln(tf,dateien[i].tstop); + close(tf); + dateien[i].tstart:=0; + dateien[i].tstop:=dateien[i].tstart+dateien[i].tstop*(dateien[i].tsiz-1)/2/pi; + dateien[i].xstart:=0; + dateien[i].xstop:=dateien[i].xstart; + dateien[i].xsteps:=1; + + assignfile(f,dateien[i].Name+'traces/traces.dat'); + reset(f,1); + if filesize(f)<>wertGroesze(dateien[i].Genauigkeit)*dateien[i].tsiz*anzSergeyFelder then begin + gibAus(''''+dateien[i].Name+'traces/traces.dat'' hat die falsche Größe ('+inttostr(filesize(f))+' statt '+inttostr(wertGroesze(dateien[i].Genauigkeit)*dateien[i].tsiz*anzSergeyFelder)+' Byte)!',3); + close(f); + exit; + end; + close(f); + Positionen[i]:=0; + end; end; _tsiz:=0; diff --git a/typenunit.pas b/typenunit.pas index b1dfdb4..036c06e 100644 --- a/typenunit.pas +++ b/typenunit.pas @@ -46,6 +46,12 @@ type constructor create; overload; destructor destroy; override; end; + tSergeyInputDateiInfo = class (tGenerischeInputDateiInfo) + FeldNummer: longint; + constructor create(Vorlage: tGenerischeInputDateiInfo); overload; + constructor create; overload; + destructor destroy; override; + end; tPipeInputDateiInfo = class (tGenerischeInputDateiInfo) Analysator: string; bytesPerSample: longint; @@ -92,6 +98,7 @@ type PhaseSpaceVorlage: tPhaseSpaceInputDateiInfo; SpaceTimeVorlage: tSpaceTimeInputDateiInfo; TraceVorlage: tTraceInputDateiInfo; + SergeyVorlage: tSergeyInputDateiInfo; PipeVorlage: tPipeInputDateiInfo; property Fehlerbehebungskommando: string read _Fehlerbehebungskommando @@ -575,6 +582,28 @@ begin inherited destroy; end; +// tSergeyInputDateiInfo ******************************************************* + +constructor tSergeyInputDateiInfo.create(Vorlage: tGenerischeInputDateiInfo); +begin + inherited create(Vorlage); + if Vorlage is tSergeyInputDateiInfo then + FeldNummer:=(Vorlage as tSergeyInputDateiInfo).FeldNummer + else + FeldNummer:=0; +end; + +constructor tSergeyInputDateiInfo.create; +begin + inherited create; + FeldNummer:=0; +end; + +destructor tSergeyInputDateiInfo.destroy; +begin + inherited destroy; +end; + // tPipeInputDateiInfo ********************************************************* constructor tPipeInputDateiInfo.create(Vorlage: tGenerischeInputDateiInfo); @@ -640,6 +669,7 @@ begin PhaseSpaceVorlage:=tPhaseSpaceInputDateiInfo.create; SpaceTimeVorlage:=tSpaceTimeInputDateiInfo.create; TraceVorlage:=tTraceInputDateiInfo.create; + SergeyVorlage:=tSergeyInputDateiInfo.create; PipeVorlage:=tPipeInputDateiInfo.create; fillchar(_Name,sizeof(_Name),#0); Name:=SpaceTimeVorlage.Name; @@ -668,6 +698,7 @@ begin PhaseSpaceVorlage.free; SpaceTimeVorlage.free; TraceVorlage.free; + SergeyVorlage.free; PipeVorlage.free; _Name:=''; _Fehlerbehebungskommando:=''; @@ -681,6 +712,7 @@ begin PhaseSpaceVorlage.Fehlerbehebungskommando:=f; SpaceTimeVorlage.Fehlerbehebungskommando:=f; TraceVorlage.Fehlerbehebungskommando:=f; + SergeyVorlage.Fehlerbehebungskommando:=f; PipeVorlage.Fehlerbehebungskommando:=f; end; @@ -690,6 +722,7 @@ begin PhaseSpaceVorlage.Name:=n; SpaceTimeVorlage.Name:=n; TraceVorlage.Name:=n; + SergeyVorlage.Name:=n; PipeVorlage.Name:=n; end; @@ -699,6 +732,7 @@ begin PhaseSpaceVorlage.Gamma:=g; SpaceTimeVorlage.Gamma:=g; TraceVorlage.Gamma:=g; + SergeyVorlage.Gamma:=g; PipeVorlage.Gamma:=g; end; @@ -708,6 +742,7 @@ begin PhaseSpaceVorlage.tstart:=t; SpaceTimeVorlage.tstart:=t; TraceVorlage.tstart:=t; + SergeyVorlage.tstart:=t; PipeVorlage.tstart:=t; end; @@ -717,6 +752,7 @@ begin PhaseSpaceVorlage.tstop:=t; SpaceTimeVorlage.tstop:=t; TraceVorlage.tstop:=t; + SergeyVorlage.tstop:=t; PipeVorlage.tstop:=t; end; @@ -726,6 +762,7 @@ begin PhaseSpaceVorlage.xstart:=x; SpaceTimeVorlage.xstart:=x; TraceVorlage.xstart:=x; + SergeyVorlage.xstart:=x; PipeVorlage.xstart:=x; end; @@ -735,6 +772,7 @@ begin PhaseSpaceVorlage.xstop:=x; SpaceTimeVorlage.xstop:=x; TraceVorlage.xstop:=x; + SergeyVorlage.xstop:=x; PipeVorlage.xstop:=x; end; @@ -744,6 +782,7 @@ begin PhaseSpaceVorlage.t0abs:=t; SpaceTimeVorlage.t0abs:=t; TraceVorlage.t0abs:=t; + SergeyVorlage.t0abs:=t; PipeVorlage.t0abs:=t; end; @@ -753,6 +792,7 @@ begin PhaseSpaceVorlage.groeszenFaktor:=g; SpaceTimeVorlage.groeszenFaktor:=g; TraceVorlage.groeszenFaktor:=g; + SergeyVorlage.groeszenFaktor:=g; PipeVorlage.groeszenFaktor:=g; end; @@ -762,6 +802,7 @@ begin PhaseSpaceVorlage.Genauigkeit:=g; SpaceTimeVorlage.Genauigkeit:=g; TraceVorlage.Genauigkeit:=g; + SergeyVorlage.Genauigkeit:=g; PipeVorlage.Genauigkeit:=g; end; @@ -771,6 +812,7 @@ begin PhaseSpaceVorlage.tsiz:=t; SpaceTimeVorlage.tsiz:=t; TraceVorlage.tsiz:=t; + SergeyVorlage.tsiz:=t; PipeVorlage.tsiz:=t; end; @@ -780,6 +822,7 @@ begin PhaseSpaceVorlage.xsteps:=x; SpaceTimeVorlage.xsteps:=x; TraceVorlage.xsteps:=x; + SergeyVorlage.xsteps:=x; PipeVorlage.xsteps:=x; end; @@ -793,6 +836,7 @@ procedure tInputDateiInfoVorlagen.wFeldNummer(f: longint); begin _FeldNummer:=f; TraceVorlage.FeldNummer:=f; + SergeyVorlage.FeldNummer:=f; end; procedure tInputDateiInfoVorlagen.wAnalysator(a: string); @@ -835,6 +879,7 @@ begin PhaseSpaceVorlage.params:=p; SpaceTimeVorlage.params:=p; TraceVorlage.params:=p; + SergeyVorlage.params:=p; PipeVorlage.params:=p; end; diff --git a/werteunit.pas b/werteunit.pas index e8d896a..02b19df 100644 --- a/werteunit.pas +++ b/werteunit.pas @@ -79,6 +79,9 @@ type function berechneWerte: boolean; end; +const + anzSergeyFelder = 12; + implementation uses systemunit; @@ -611,6 +614,38 @@ begin close(f); etwasGelesen:=true; end; + if dateien[i] is tSergeyInputDateiInfo then begin + etsiz:=Dateien[i].tsiz; + params.transformationen.xstart:=Dateien[i].xstart; + params.transformationen.xstop:=Dateien[i].xstop; + params.transformationen.tstart:=Dateien[i].tstart; + params.transformationen.tstop:=Dateien[i].tstop; + + setlength(buf,sizeof(extended)*anzSergeyFelder); + tmpi:=wertGroesze(Dateien[i].Genauigkeit); + + assign(f,dateien[i].Name+'traces/traces.dat'); + reset(f,1); + + setlength(buf,tmpi*anzSergeyFelder); + + for j:=0 to etsiz-1 do begin + if (Dateien[i] as tSergeyInputDateiInfo).Feldnummer>0 then + blockread(f,buf[0],(Dateien[i] as tSergeyInputDateiInfo).Feldnummer*tmpi); + blockread(f,werte[j],tmpi); + if (Dateien[i] as tSergeyInputDateiInfo).Feldnummer<anzSergeyFelder-1 then + blockread(f,buf[0],(anzSergeyFelder-1-(Dateien[i] as tSergeyInputDateiInfo).Feldnummer)*tmpi); + end; + + setlength(buf,0); + if not eof(f) then begin + gibAus('Zu viele Daten in '''+dateien[i].Name+'traces/traces.dat''!',3); + close(f); + exit; + end; + close(f); + etwasGelesen:=true; + end; if not etwasGelesen then begin gibAus('Ich habe diese Runde keine Daten gelesen!',3); exit; |