-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathrgv_overslag.c
More file actions
82 lines (63 loc) · 3.04 KB
/
rgv_overslag.c
File metadata and controls
82 lines (63 loc) · 3.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/* rgv_overslag.c - gegenereerd met TLCGen 12.4.0.19 */
/* DEFINITIE FUNCTIE */
/* ================= */
/* (C) Copyright 2008-2009 by A.C.M. van Grinsven. All rights reserved. */
/* CCOL: version 7.0 */
/* FILE: rgv_overslag.c */
/* DATE: 21-06-2009 */
/* include files */
/* ============= */
#include "fcvar.h" /* declaratie fasecyclus variabelen */
#include "hevar.h" /* declaratie hulpelement variabelen */
#include "lwmlvar.h" /* declaratie modulevariabelen */
extern mulv TVG_rgv[]; /* RGV-waarde - maximum verlenggroentijd */
/* DEFINITIE FUNCTIE */
/* ================= */
/* RGV_NIET_PRIMAIR */
/* ================ */
/* de functie rgv_niet_primair() kan worden gebruikt om de verlenggroentijd van een
* fasecyclus te verlagen, indien de fasecyclus in de cyclus niet primair is gerealiseerd.
* rgv_niet_primair() geeft als return-waarde waar (TRUE) indien de de verlenggroentijd
* is verlaagd anders niet waar (FALSE).
*
* voorbeeld:
* rgv_niet_primair(fc03, PRML, ML, ML_MAX, hpri03, PRM[prmmintvg03], PRM[prmtvgomlaag03]);
*/
boolv rgv_niet_primair (
count fc, /* fasecyclusnummer */
boolv *prml[], /* primaire module toedeling */
count ml, /* actieve module */
boolv sml, /* start module */
count ml_max, /* maxium aantal modulen */
count hpri, /* hulpelementnummer */
mulv PRM_mintvg, /* parameter minimum maximum verlenggroentijd */
mulv PRM_tvgomlaag, /* parameter verlaag maximum verlenggroentijd */
boolv DD_fc) /* status detectiestoring voor fasecyclus */
{
register count hml; /* voorgaande (actieve) module */
boolv result= FALSE;
if (PR[fc] && (prml[ml][fc] & PRIMAIR_VERSNELD)) { /* primair (versneld) gerealiseerd */
IH[hpri]= TRUE; /* onthou primaire realisatie */
}
if (sml) { /* module overgang? */
if (!(prml[ml][fc] & PRIMAIR_VERSNELD)) { /* niet primair in de actieve module */
hml= ml-1; /* voorgaande module */
if (hml<ML1) hml= ml_max-1;
if (prml[hml][fc] & PRIMAIR_VERSNELD) { /* wel primair in de voorgaande module */
if (!IH[hpri] && !DD_fc) { /* niet primair gerealiseerd geweest */
if (!BL[fc] && R[fc] && !TRG[fc] && !A[fc]) { /* niet geblokkeerd en in rood */
TVG_rgv[fc] -= PRM_tvgomlaag; /* verlaag maximum verlenggroentijd */
if (TVG_rgv[fc]<PRM_mintvg) { /* kleiner dan minimum verlenggroentijd? */
TVG_rgv[fc]= PRM_mintvg; /* maak gelijk aan minimum verlenggroentijd */
}
result= TRUE;
}
}
else {
IH[hpri]= FALSE; /* reset hpr */
}
}
}
}
return (result);
}