LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
saveInhibitingConditions.m
1
2function [simDoc, section] = saveInhibitingConditions(self, simDoc, section, ind)
3% [SIMDOC, SECTION] = SAVEINHIBITINGCONDITIONS(SIMDOC, SECTION, NODEIDX)
4
5% Copyright (c) 2012-2026, Imperial College London
6% All rights reserved.
7
8inhibitingConditionsNode = simDoc.createElement('parameter');
9inhibitingConditionsNode.setAttribute('array', 'true');
10inhibitingConditionsNode.setAttribute('classPath', 'jmt.engine.NetStrategies.TransitionUtilities.TransitionMatrix');
11inhibitingConditionsNode.setAttribute('name', 'inhibitingConditions');
12
13sn = self.getStruct;
14inputs = [find(sn.connmatrix(:,ind))];
15connections = {sn.nodenames{inputs}};
16numOfInputs = length(connections);
17
18numOfClasses = sn.nclasses;
19numOfModes = sn.nodeparam{ind}.nmodes;
20for m=1:numOfModes
21 subInhibitingConditionNode = simDoc.createElement('subParameter');
22 subInhibitingConditionNode.setAttribute('classPath', 'jmt.engine.NetStrategies.TransitionUtilities.TransitionMatrix');
23 subInhibitingConditionNode.setAttribute('name', 'inhibitingCondition');
24
25 subInhibitingVectorsNode = simDoc.createElement('subParameter');
26 subInhibitingVectorsNode.setAttribute('array', 'true');
27 subInhibitingVectorsNode.setAttribute('classPath', 'jmt.engine.NetStrategies.TransitionUtilities.TransitionVector');
28 subInhibitingVectorsNode.setAttribute('name', 'inhibitingVectors');
29
30 for k=1:numOfInputs
31 subInhibitingVectorNode = simDoc.createElement('subParameter');
32 subInhibitingVectorNode.setAttribute('classPath', 'jmt.engine.NetStrategies.TransitionUtilities.TransitionVector');
33 subInhibitingVectorNode.setAttribute('name', 'inhibitingVector');
34
35 subStationNameNode = simDoc.createElement('subParameter');
36 subStationNameNode.setAttribute('classPath', 'java.lang.String');
37 subStationNameNode.setAttribute('name', 'stationName');
38
39 placeNameValueNode = simDoc.createElement('value');
40 placeNameValueNode.appendChild(simDoc.createTextNode(connections(k)));
41 subStationNameNode.appendChild(placeNameValueNode);
42
43 subInhibitingVectorNode.appendChild(subStationNameNode);
44
45 subInhibitingEntriesNode = simDoc.createElement('subParameter');
46 subInhibitingEntriesNode.setAttribute('array', 'true');
47 subInhibitingEntriesNode.setAttribute('classPath', 'java.lang.Integer');
48 subInhibitingEntriesNode.setAttribute('name', 'inhibitingEntries');
49
50 for r=1:numOfClasses
51 refClassNode = simDoc.createElement('refClass');
52 refClassNode.appendChild(simDoc.createTextNode(sn.classnames{r}));
53 subInhibitingEntriesNode.appendChild(refClassNode);
54
55 subParameterNode = simDoc.createElement('subParameter');
56 subParameterNode.setAttribute('classPath', 'java.lang.Integer');
57 subParameterNode.setAttribute('name', 'inhibitingEntry');
58
59 valueNode2 = simDoc.createElement('value');
60
61 if isinf(sn.nodeparam{ind}.inhibiting{m}(inputs(k),r))
62 valueNode2.appendChild(simDoc.createTextNode(int2str(0)));
63 else
64 valueNode2.appendChild(simDoc.createTextNode(int2str(sn.nodeparam{ind}.inhibiting{m}(inputs(k),r))));
65 end
66
67 subParameterNode.appendChild(valueNode2);
68 subInhibitingEntriesNode.appendChild(subParameterNode);
69 subInhibitingVectorNode.appendChild(subInhibitingEntriesNode);
70 end
71 subInhibitingVectorsNode.appendChild(subInhibitingVectorNode);
72 end
73
74 subInhibitingConditionNode.appendChild(subInhibitingVectorsNode);
75 inhibitingConditionsNode.appendChild(subInhibitingConditionNode);
76end
77
78section.appendChild(inhibitingConditionsNode);
79end