RavenControl.mesa
Copyright Ó Xerox Corporation 1985, 1986, 1987. All rights reserved.
Tim Diebert: April 2, 1987 9:23:49 am PST
DIRECTORY
ImagerSample USING [RasterSampleMap],
PrincOps USING [PageCount, wordsPerPage],
RavenCodes USING [PrinterCommand, PrinterStatus];
RavenControl: CEDAR DEFINITIONS = BEGIN
ConsoleKey: TYPE = RavenCodes.PrinterStatus[key0..keyOffLine];
EngineEvent: TYPE = MACHINE DEPENDENT {readyToFeed(0), feeding, transferReady, imaged, imagedOverrun, pageSyncMiss, pageDelivery, idle, feedError, softError, hardError, timeout, (LAST[WORD])};
EngineStatus: TYPE = {okay, okayFlushRequired, tonerLow, warming, lowPowerMode, preRegistrationFault, postRegistrationJam, preExitJam, postExitJam, outputTrayFull, traysUnlatched, doorOpen, offline, communicationFault, imageFault1, imageFault2, imageFault3, sequenceFault};
LogItem:
TYPE =
RECORD [
SELECT sort: * FROM
command => [command: RavenCodes.PrinterCommand],
printerStatus => [printerStatus: RavenCodes.PrinterStatus],
softwareStatus => [statusExtras: StatusExtras],
plateStatus => [plateStatus: PlateStatus],
ENDCASE];
PlateStatus: TYPE = {okay, bandOverrun, pageSyncMiss};
PaperTray: TYPE = {bottom, top};
PaperTraySize: TYPE = {unknown, small, large};
PaperStacking: TYPE = {aligned, offset};
StatusExtras:
TYPE = {okay, communicationFault, imageFault1, imageFault2, imageFault3,
sequenceFault};
Initialize:
PROCEDURE [bufferSize: PrincOps.PageCount];
bufferSize is the amount of low core to use for the bands. This should be a multiple of 16 PrincOps.PageCount.
GetEngineStatus:
PROCEDURE
RETURNS [engineStatus: EngineStatus];
returns current Raven engine status
WaitEngineStatus:
PROCEDURE
RETURNS [engineStatus: EngineStatus];
returns with the new engine status when it changes
GetPaperTrayStatus:
PROCEDURE [tray: PaperTray]
RETURNS [okay:
BOOLEAN];
returns the staus of paper in the desired paper tray
GetPaperTraySize:
PROCEDURE
RETURNS [bottom, top: PaperTraySize];
returns the staus of the desired paper tray
WaitEngineEvent:
PROCEDURE[ eventContext:
REF EventContext]
RETURNS [event:RavenControl.EngineEvent];
returns when an event occurs
SetToCurrentEventContext:
PROCEDURE [eventContext:
REF EventContext];
initializes the context to reference the current state of the eventQ
WaitConsoleKey:
PROCEDURE
RETURNS [key: ConsoleKey];
returns when a key is pressed
WaitLogItem:
PROCEDURE
RETURNS [logItem: LogItem];
returns with an item to be logged
Feed:
PROCEDURE [tray: PaperTray, stacking: PaperStacking];
issues feed command with tray and stacking modifiers
SendEngineCommand:
PROCEDURE [command: RavenCodes.PrinterCommand];
sends command to Raven
SetScanLineLength:
PROCEDURE [scanLineLength: (0..PrincOps.wordsPerPage]];
establishes the number of words in a scanline
GetPageMap:
PROCEDURE []
RETURNS [pageMap: ImagerSample.RasterSampleMap];
If no pageMap is available this procedure waits until a page is available.
PageTransferSet:
PROCEDURE[pageMap: ImagerSample.RasterSampleMap];
Sets up the page for transfer to the print engine.
TransferRelease:
PROCEDURE[pageMap: ImagerSample.RasterSampleMap];
release dependancy on transfer
RunTurnaroundTest:
PROCEDURE
RETURNS [ok:
BOOLEAN];
exercises command/status hardware (assumes loopback cable)
LOG
When / Who / What.
18-Apr-85 11:25:46 / Strickberger / Created.
16-Jun-85 15:01:32 / Strickberger / Updated for multi plate unlimited printing.
19-Sep-85 17:01:52 / Strickberger / Added enableUnlimited parameter to Initialize.
14-May-86 13:44:59 / Prochaska / Added TYPE EventContext, PROC SetToCurrentEventContext; Added parm to WaitEngineEvent.