********************************************************************
* NOTE: This file is generated automatically from the event * definition file Binpack.evt. ********************************************************************MODULEFix any FormsVBT errors; don't handle exceptions for them.; <*NOWARN*> IMPORT Rd, ZeusClass, IntList, Fmt, BinpackAux; <*NOWARN*> IMPORT Algorithm, RealList, Wr, ZeusPanel, FormsVBT; <*NOWARN*> IMPORT Text, VBT, ZeusUtil; <* PRAGMA LL *> BinpackAlgClass <* FATAL FormsVBT.Error, FormsVBT.Unimplemented *> REVEAL T = Public BRANDED OBJECT OVERRIDES <* LL = VBT.mu *> init := BinpackDefaultInit; snapshot := BinpackDefaultSnapshot; restore := BinpackDefaultRestore; updateEventCounts := BinpackDefaultUpdateCts; feTryToDeleteWeight := TryToDeleteWeight; feTryToEmptyBin := TryToEmptyBin; END; PROCEDUREBinpackDefaultInit (v: T): Algorithm.T = <* LL = VBT.mu *> PROCEDURE Attach (id: TEXT; proc: FormsVBT.Proc) = BEGIN FormsVBT.AttachProc(v.eventData, id, proc, v); END Attach; BEGIN v.eventData := ZeusPanel.NewForm("BinpackEventData.fv"); Attach("stopatCodeEvents", BinpackDoIt); Attach("waitatCodeEvents", BinpackDoIt); Attach("eventCounts", BinpackRefreshCts); Attach("stopAtSetup", BinpackDoIt); Attach("waitAtSetup", BinpackDoIt); Attach("stopAtNewWeight", BinpackDoIt); Attach("waitAtNewWeight", BinpackDoIt); Attach("stopAtPack", BinpackDoIt); Attach("waitAtPack", BinpackDoIt); Attach("stopAtIgnore", BinpackDoIt); Attach("waitAtIgnore", BinpackDoIt); Attach("stopAtProbe", BinpackDoIt); Attach("waitAtProbe", BinpackDoIt); FromFV (v.eventData, v); (* Get FV and internal data in sync *) RETURN Algorithm.T.init(v); END BinpackDefaultInit; PROCEDUREBinpackDoIt ( fv : FormsVBT.T; e : TEXT; arg: REFANY; <*UNUSED*> t : VBT.TimeStamp) = <* LL = VBT.mu *> BEGIN IF Text.Equal(e, "stopatCodeEvents") THEN NARROW(arg, T).stopatCodeEvents := FormsVBT.GetBoolean(fv, "stopatCodeEvents"); END; IF Text.Equal(e, "waitatCodeEvents") THEN NARROW(arg, T).waitatCodeEvents := FormsVBT.GetInteger(fv, "waitatCodeEvents"); END; IF Text.Equal(e, "stopAtSetup") THEN NARROW(arg, T).eventDataRec.stopAtSetup := FormsVBT.GetBoolean(fv, "stopAtSetup"); END; IF Text.Equal(e, "waitAtSetup") THEN NARROW(arg, T).eventDataRec.waitAtSetup := FormsVBT.GetInteger(fv, "waitAtSetup"); END; IF Text.Equal(e, "stopAtNewWeight") THEN NARROW(arg, T).eventDataRec.stopAtNewWeight := FormsVBT.GetBoolean(fv, "stopAtNewWeight"); END; IF Text.Equal(e, "waitAtNewWeight") THEN NARROW(arg, T).eventDataRec.waitAtNewWeight := FormsVBT.GetInteger(fv, "waitAtNewWeight"); END; IF Text.Equal(e, "stopAtPack") THEN NARROW(arg, T).eventDataRec.stopAtPack := FormsVBT.GetBoolean(fv, "stopAtPack"); END; IF Text.Equal(e, "waitAtPack") THEN NARROW(arg, T).eventDataRec.waitAtPack := FormsVBT.GetInteger(fv, "waitAtPack"); END; IF Text.Equal(e, "stopAtIgnore") THEN NARROW(arg, T).eventDataRec.stopAtIgnore := FormsVBT.GetBoolean(fv, "stopAtIgnore"); END; IF Text.Equal(e, "waitAtIgnore") THEN NARROW(arg, T).eventDataRec.waitAtIgnore := FormsVBT.GetInteger(fv, "waitAtIgnore"); END; IF Text.Equal(e, "stopAtProbe") THEN NARROW(arg, T).eventDataRec.stopAtProbe := FormsVBT.GetBoolean(fv, "stopAtProbe"); END; IF Text.Equal(e, "waitAtProbe") THEN NARROW(arg, T).eventDataRec.waitAtProbe := FormsVBT.GetInteger(fv, "waitAtProbe"); END; END BinpackDoIt; PROCEDUREBinpackRefreshCts ( <*UNUSED*> fv : FormsVBT.T; <*UNUSED*> e : TEXT; arg : REFANY; <*UNUSED*> t : VBT.TimeStamp) = <* LL = VBT.mu *> BEGIN NARROW(arg, T).updateEventCounts(FALSE); END BinpackRefreshCts; PROCEDUREFromFV (fv : FormsVBT.T; alg: T) = <* LL = VBT.mu *> BEGIN alg.stopatCodeEvents := FormsVBT.GetBoolean(fv, "stopatCodeEvents"); alg.waitatCodeEvents := FormsVBT.GetInteger(fv, "waitatCodeEvents"); alg.eventDataRec.stopAtSetup := FormsVBT.GetBoolean(fv, "stopAtSetup"); alg.eventDataRec.waitAtSetup := FormsVBT.GetInteger(fv, "waitAtSetup"); alg.eventDataRec.stopAtNewWeight := FormsVBT.GetBoolean(fv, "stopAtNewWeight"); alg.eventDataRec.waitAtNewWeight := FormsVBT.GetInteger(fv, "waitAtNewWeight"); alg.eventDataRec.stopAtPack := FormsVBT.GetBoolean(fv, "stopAtPack"); alg.eventDataRec.waitAtPack := FormsVBT.GetInteger(fv, "waitAtPack"); alg.eventDataRec.stopAtIgnore := FormsVBT.GetBoolean(fv, "stopAtIgnore"); alg.eventDataRec.waitAtIgnore := FormsVBT.GetInteger(fv, "waitAtIgnore"); alg.eventDataRec.stopAtProbe := FormsVBT.GetBoolean(fv, "stopAtProbe"); alg.eventDataRec.waitAtProbe := FormsVBT.GetInteger(fv, "waitAtProbe"); END FromFV; <*UNUSED*> PROCEDUREToFV (fv : FormsVBT.T; alg: T) = <* LL = VBT.mu *> BEGIN FormsVBT.PutBoolean(fv, "stopatCodeEvents", alg.stopatCodeEvents); FormsVBT.PutInteger(fv, "waitatCodeEvents", alg.waitatCodeEvents); FormsVBT.PutBoolean(fv, "stopAtSetup", alg.eventDataRec.stopAtSetup); FormsVBT.PutInteger(fv, "waitAtSetup", alg.eventDataRec.waitAtSetup); FormsVBT.PutBoolean(fv, "stopAtNewWeight", alg.eventDataRec.stopAtNewWeight); FormsVBT.PutInteger(fv, "waitAtNewWeight", alg.eventDataRec.waitAtNewWeight); FormsVBT.PutBoolean(fv, "stopAtPack", alg.eventDataRec.stopAtPack); FormsVBT.PutInteger(fv, "waitAtPack", alg.eventDataRec.waitAtPack); FormsVBT.PutBoolean(fv, "stopAtIgnore", alg.eventDataRec.stopAtIgnore); FormsVBT.PutInteger(fv, "waitAtIgnore", alg.eventDataRec.waitAtIgnore); FormsVBT.PutBoolean(fv, "stopAtProbe", alg.eventDataRec.stopAtProbe); FormsVBT.PutInteger(fv, "waitAtProbe", alg.eventDataRec.waitAtProbe); CountsToFV (fv, alg); END ToFV; PROCEDURECountsToFV (fv : FormsVBT.T; alg: T) = <* LL = VBT.mu *> BEGIN FormsVBT.PutText(fv, "ctOfSetup", Fmt.Int(alg.eventDataRec.ctOfSetup)); FormsVBT.PutText(fv, "ctOfNewWeight", Fmt.Int(alg.eventDataRec.ctOfNewWeight)); FormsVBT.PutText(fv, "ctOfPack", Fmt.Int(alg.eventDataRec.ctOfPack)); FormsVBT.PutText(fv, "ctOfIgnore", Fmt.Int(alg.eventDataRec.ctOfIgnore)); FormsVBT.PutText(fv, "ctOfProbe", Fmt.Int(alg.eventDataRec.ctOfProbe)); END CountsToFV; PROCEDUREBinpackDefaultUpdateCts ( v: T; reset: BOOLEAN) = <* LL = VBT.mu *> BEGIN IF reset THEN v.eventDataRec.ctOfSetup := 0; v.eventDataRec.ctOfNewWeight := 0; v.eventDataRec.ctOfPack := 0; v.eventDataRec.ctOfIgnore := 0; v.eventDataRec.ctOfProbe := 0; END; CountsToFV (v.eventData, v); END BinpackDefaultUpdateCts; PROCEDUREBinpackDefaultSnapshot (v: T; wr: Wr.T) RAISES {ZeusClass.Error} = <* LL = VBT.mu *> BEGIN TRY Wr.PutChar(wr, '(') EXCEPT ELSE RAISE ZeusClass.Error( "BinpackAlgClass.BinpackDefaultSnapshot write error"); END; IF v.eventData = NIL THEN RAISE ZeusClass.Error( "BinpackAlgClass.BinpackDefaultSnapshot: " & "eventData not set!"); END; TRY v.eventData.snapshot(wr) EXCEPT FormsVBT.Error (msg) => RAISE ZeusClass.Error( "BinpackAlgClass.BinpackDefaultSnapshot FV error: " & msg); ELSE RAISE ZeusClass.Error( "BinpackAlgClass.BinpackDefaultSnapshot error"); END; Algorithm.T.snapshot(v, wr); TRY Wr.PutChar(wr, ')') EXCEPT ELSE RAISE ZeusClass.Error( "BinpackAlgClass.BinpackDefaultSnapshot write error"); END; END BinpackDefaultSnapshot; PROCEDUREBinpackDefaultRestore (v: T; rd: Rd.T) RAISES {ZeusClass.Error} = <* LL = VBT.mu *> BEGIN IF rd = NIL THEN RETURN END; IF NOT ZeusUtil.EatChar(rd, '(') THEN RAISE ZeusClass.Error( "BinpackAlgClass.BinpackDefaultRestore read error"); END; IF v.eventData = NIL THEN RAISE ZeusClass.Error( "BinpackAlgClass.BinpackDefaultRestore: " & "eventData not set!"); END; TRY v.eventData.restore(rd); v.updateEventCounts(FALSE); FromFV(v.eventData, v); EXCEPT ELSE RAISE ZeusClass.Error( "BinpackAlgClass.BinpackDefaultRestore error"); END; Algorithm.T.restore(v, rd); IF NOT ZeusUtil.EatChar(rd, ')') THEN RAISE ZeusClass.Error( "BinpackAlgClass.BinpackDefaultRestore read error"); END; END BinpackDefaultRestore; PROCEDURETryToDeleteWeight (self: T ; <*UNUSED*> id: INTEGER ) = <* LL = VBT.mu *> BEGIN self.evtHandled := FALSE; END TryToDeleteWeight; PROCEDURETryToEmptyBin (self: T ; <*UNUSED*> bin: INTEGER ) = <* LL = VBT.mu *> BEGIN self.evtHandled := FALSE; END TryToEmptyBin; BEGIN END BinpackAlgClass.