Unit User;                      { Message transmission }

Interface

  Uses Crt, Simpet5, Randoms, Statist, UserPart;

{------------------------------------------------------}

{ Required by PETRISIM: }
  Procedure UserInit;      { User model initialization }
  Procedure UserEval;     { User experiment evaluation }

  Const UserNetInfo = 'Message transmission';
{------------------------------------------------------}

Implementation

{ Here you CAN declare anything.
  You HAVE to define bodies of the above procedures. }

{------------------------------------------------------}

Procedure UserInit;        { User model initialization }
       { Select one of the defaults or create your own }
Begin
   { StandardInit; { Default with prompts }
   StandardFastInit;   { Fast default }
End;

{------------------------------------------------------}

Procedure Results(Var R: Text);   { Saves results to R }
Var N : LongInt;
    U,FAv,FMin,FMax,FVa,FS,L : Real;
Begin
   WriteLn(R,'EXPERIMENT EVALUATION');
   WriteLn(R,'Experiment Length = ',MaxTime:15:3);
   WriteLn(R,'Current Time      = ',PNTime:15:3);
   WriteLn(R);
   WriteLn(R,'Model: ',UserNetInfo);
   WriteLn(R);
   TResults('t1',U,FAv,FMin,FMax,FVa,FS,N); { Returns transition results }
   WriteLn(R,'Number of transmitted messages: ',N);
   WriteLn(R,'Average transmission duration:  ',FAv:6:3);
   WriteLn(R);
End;

{------------------------------------------------------}

Procedure ModelEvaluation; { Model specific evaluation }
Var F : Text;            { You can leave this as it is }
    FName : String;
Begin
   TextBackGround(Black);
   TextColor(Green);
   ClrScr;
   FName := PrepareFile;
   Assign(F,FName);
   Rewrite(F);
   Results(F);
   Close(F);
   Assign(F,'CON');
   Rewrite(F);
   Results(F);
   WriteLn;
   Write('Results stored in the file ', FName,
         ' Press Enter to continue');
   Readln;
End{ModelEvaluation};

{------------------------------------------------------}

Procedure UserEval;            { User model evaluation }
Begin
   { ShowThemAll;     { Default - separate reports }
   { ShowThemInTable; { Default - tables }
   ModelEvaluation; { Model specific }
End;

End.