Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
dream
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
1
Issues
1
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
dream
Commits
4ff78ed4
Commit
4ff78ed4
authored
Oct 09, 2014
by
Georgios Dagkakis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2 custom objects to model correctly blocking in stations that decompose and reassemble
parent
0cc93ef5
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
106 additions
and
0 deletions
+106
-0
dream/simulation/BatchDecompositionBlocking.py
dream/simulation/BatchDecompositionBlocking.py
+54
-0
dream/simulation/BatchReassemblyBlocking.py
dream/simulation/BatchReassemblyBlocking.py
+52
-0
No files found.
dream/simulation/BatchDecompositionBlocking.py
0 → 100644
View file @
4ff78ed4
# ===========================================================================
# Copyright 2013 University of Limerick
#
# This file is part of DREAM.
#
# DREAM is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# DREAM is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with DREAM. If not, see <http://www.gnu.org/licenses/>.
# ===========================================================================
'''
Created on 09 10 2014
@author: George
'''
'''
Customization of BatchDecomposition so that it is blocked when the stations in front are (until it finds a buffer or an Exit)
'''
from
BatchDecomposition
import
BatchDecomposition
class
BatchDecompositionBlocking
(
BatchDecomposition
):
# =======================================================================
# extend default behaviour to return false if next stations are full
# =======================================================================
def
canAcceptAndIsRequested
(
self
,
callerObject
=
None
):
station
=
self
from
Queue
import
Queue
from
Exit
import
Exit
# loop to next stations until a Queue or Exit is reached
while
1
:
next
=
station
.
next
[
0
]
# if a Queue or Exit is reached break
if
issubclass
(
next
.
__class__
,
Queue
)
or
issubclass
(
next
.
__class__
,
Exit
):
break
# if the object is not free return False
if
len
(
next
.
getActiveObjectQueue
()):
return
False
station
=
next
# return according to parent
return
BatchDecomposition
.
canAcceptAndIsRequested
(
self
,
callerObject
)
dream/simulation/BatchReassemblyBlocking.py
0 → 100644
View file @
4ff78ed4
# ===========================================================================
# Copyright 2013 University of Limerick
#
# This file is part of DREAM.
#
# DREAM is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# DREAM is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with DREAM. If not, see <http://www.gnu.org/licenses/>.
# ===========================================================================
'''
Created on 09 10 2014
@author: George
'''
'''
Customization of BatchReassembly so that it sends isRequested to the first Queue before
'''
from
BatchReassembly
import
BatchReassembly
class
BatchReassemblyBlocking
(
BatchReassembly
):
# =======================================================================
# This is only for a BatchScrapMachine that is followed by a BatchDecomposition
# We consider that since this is in essence one station, the BatchScrapMachine
# should be blocked if the BatchDecomposition is blocked
# =======================================================================
def
removeEntity
(
self
,
entity
=
None
):
activeEntity
=
BatchReassembly
.
removeEntity
(
self
,
entity
)
from
Queue
import
Queue
station
=
self
# loop through the previous stations until a Queue is reached
while
1
:
previous
=
station
.
previous
[
0
]
# when the Queue is reached send to it a canDispose signal with sender its successor
if
issubclass
(
previous
.
__class__
,
Queue
):
if
previous
.
expectedSignals
[
'canDispose'
]:
self
.
sendSignal
(
receiver
=
previous
,
signal
=
previous
.
canDispose
,
sender
=
station
)
break
else
:
station
=
previous
return
activeEntity
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment