ICTestNew.mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
Created by: Gasbarro September 18, 1985 2:47:39 pm PDT
Last Edited by: Gasbarro December 6, 1985 12:32:57 pm PST
Barth, December 3, 1985 4:29:55 pm PST
DIRECTORY Core, IMSTester, Ports, ViewerClasses;
ICTestNew: CEDAR DEFINITIONS = BEGIN
ROPE: TYPE = Core.ROPE;
NSec: TYPE = IMSTester.NSec;
FormatType: TYPE = IMSTester.FormatType;
Board: TYPE = IMSTester.Board;
PodTiming: TYPE = IMSTester.PodTiming;
Channel: TYPE = IMSTester.Channel;
EvalCycleType: TYPE = {force, sense};
TestButtonsCreateProc: TYPE = PROC[createButton: PROC [buttonName: ROPE, proc: TestProc]];
Test Buttons are used to select the desired test operation to be performed on the device under test. A Test Button turns gray when buttoned (selected) and all others turn white. When the "Start Test" or "Continue" button is pressed the TestProc associated with the currently selected Test Button is called. The first Test Button registered will be the default selection.
TestProc: TYPE = PROC [p: Ports.Port, Eval: PROC [evalCycleType: EvalCycleType], clientHandle: REF ANYNIL];
MakeStandardViewer: PROC [testButtons: TestButtonsCreateProc, cellType: Core.CellType, name: ROPENIL, clientHandle: REF ANYNIL];
MakeStandardButtons: PROC [viewer: ViewerClasses.Viewer, height: CARDINAL, testButtons: TestButtonsCreateProc, cellType: Core.CellType, clientHandle: REF ANYNIL] RETURNS [newHeight: CARDINAL];
DefineGroup: PROC [wire: Core.Wire, groupName: ROPE ← NIL, format: FormatType, delay: NSec ← 0, width: NSec ← 0, hiDrive: REAL ← 2.4, loDrive: REAL ← 0.4, sample: NSec ← 0, threshold: REAL ← 1.4];
DefineChannel: PROC [atomicWire: Core.Wire, board: Board, podTiming: PodTiming, channel: Channel ← 0];
If timingGroup = AT or BT then channel is ignored.
NextChannel: PROC [board: Board, podTiming: PodTiming, channel: Channel] RETURNS [newBoard: Board, newPodTiming: PodTiming, newChannel: Channel];
END.