-- =============================================================================================================== -- ItemLoader in tray allocation for a sortation system -- By José Antonio Esparza and Kim Bjerge - spring 2010 -- ===============================================================================================================
instancevariables -- Not working in Overture version 0.1.9
io : IO := new IO();
-- Test with mix of 1 and 2 tray items
inlines : seqof inline := [mk_(0,1,100), -- mk_(timeStep, icid, itemSize)
mk_(0,2,800),
mk_(0,3,200),
mk_(2,1,200),
mk_(2,2,400),
mk_(2,3,700),
mk_(4,1,800),
mk_(4,2,300),
mk_(4,3,400),
mk_(6,1,600),
mk_(6,2,400),
mk_(6,3,300),
mk_(8,1,900),
mk_(8,2,300),
mk_(8,3,200),
mk_(10,1,500),
mk_(10,2,300),
mk_(10,3,200)
];
numTimeSteps : nat := 21;
operations
-- Loads test scenario from file public ItemLoader : seq1ofchar ==> ItemLoader
ItemLoader(fname) ==
( -- Not working in Overture version 0.1.9 def mk_(-,mk_(timeval,input)) = io.freadval[InputTP](fname) in
(
numTimeSteps := timeval;
inlines := input
);
);
-- Returns number of time steps to simulate public GetNumTimeSteps : () ==> nat
GetNumTimeSteps() == return numTimeSteps;
-- Returns size of item if found in test scenario -- Returns zero if no item is found for time step and induction id public GetItemAtTimeStep : nat * nat1 ==> nat
GetItemAtTimeStep(timeStep, icid) ==
( -- {size | mk_(time, id, size) in set elems inlines & time = timestep and id = icid}; let elm = {e | e insetelems inlines & e.#1 = timeStep and e.#2 = icid} in if elm = {} thenreturn 0 else let {mk_(-,-,size)} = elm in return size;
);
functions
sync
--thread
traces
end ItemLoader
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.