MarkerControl.mesa
Copyright (C) Xerox Corporation 1981, 1982, 1983, 1984, 1985, 1986. All rights reserved.
Last Edited 14-Oct-85 14:53:26 by Jacks
Tim Diebert: December 2, 1986 3:55:34 pm PST
DIRECTORY
BansheeStatus USING [Type],
D1Status USING [Type],
FaxStatus USING [TransmissionRetryReason, Type],
FX3500Status USING [Type],
NSString USING [String],
PaperHandling USING [BannerMode, D1Registration, Fax495BannerMode, FX3500Registration, PaperFeed, PaperStacking, PrintOrder, RavenRegistration, TwoPaperSizes],
PaperTypes USING [Paper],
PrintingTypes USING [Option, RavenBuild],
PrintQueue USING [ObjectStatus],
PSActivity USING [Marker],
RavenStatus USING [Type];
MarkerControl: CEDAR DEFINITIONS = BEGIN
TraceLevel: TYPE = {none, terse, verbose};
WaitChoice: TYPE = {wait, dontWait};
MarkerStatus:
TYPE =
RECORD [
activity: PSActivity.Marker,
engineFault: BOOLEAN,
engine: EngineSpecific
];
EngineSpecific:
TYPE =
RECORD [
var:
SELECT type: PrintingTypes.Option
FROM
bansheeDl => [
banshee: BansheeStatus.Type,
paper: PaperTypes.Paper
],
d1 => [
d1: D1Status.Type,
paperSize: PaperTypes.PaperSize,
trayEmpty: BOOLEAN ← FALSE
],
fax295, fax495 => [
fax: FaxStatus.Type
],
fx3500 => [
fx3500: FX3500Status.Type,
paperSupply: PaperHandling.TwoPaperSizes,
topTrayEmpty: BOOLEAN ← FALSE,
bottomTrayEmpty: BOOLEAN ← FALSE
],
raven => [
raven: RavenStatus.Type,
ravenVar: RavenBuildVariant
],
ENDCASE
];
RavenBuildVariant:
TYPE =
RECORD [
var:
SELECT engineBuild: PrintingTypes.RavenBuild
FROM
b2TraySensing => [
paperSupply: PaperHandling.TwoPaperSizes
],
b0, b1, b2, b2XSISModified => [],
ENDCASE
];
ClientProcs:
TYPE =
RECORD [
start: StartProc,
stop: StopProc,
stopped: StoppedProc,
pause: PauseProc,
resume: ResumeProc,
status: StatusProc,
waitStatusChange: WaitStatusChangeProc,
setPrintOrder: SetPrintOrderProc,
modifyTraceLevel: ModifyTraceLevelProc,
engineSpecific:
SELECT type: PrintingTypes.Option
FROM
bansheeDl => [
setBanner: SetBannerProc
],
d1 => [
setBanner: SetBannerProc,
setRegistration: SetD1RegistrationProc,
getPrinterDisplay: GetPrinterDisplayProc,
putPrinterDisplay: PutPrinterDisplayProc
],
fax295 => [
setBanner: SetBannerProc,
setPaper: SetFaxPaperProc
],
fax495 => [
setBanner: SetFax495BannerProc,
setPaper: SetFaxPaperProc,
setTransmissionResolution: SetTransmissionResolutionProc,
setMultipleCopies: SetMultipleCopiesProc,
setTransmissionRetries: SetTransmissionRetriesProc
],
fx3500 => [
setFeeding: SetFeedingProc,
setBanner: SetBannerProc,
setRegistration: SetFX3500RegistrationProc,
getPrinterDisplay: GetPrinterDisplayProc,
putPrinterDisplay: PutPrinterDisplayProc
],
raven => [
setEngineBuild: SetEngineBuildProc,
setFeeding: SetFeedingProc,
setPaper: SetPaperProc,
setBanner: SetBannerProc,
setRegistration: SetRavenRegistrationProc,
setStacking: SetStackingProc,
dozeoffEngine: DozeoffEngineProc,
wakeupEngine: WakeupEngineProc
],
ENDCASE
];
ClientProcsHandle: TYPE = REF ClientProcs;
Generic procs
StartProc: TYPE = PROCEDURE; -- Enables marking and returns.
StopProc: TYPE = PROCEDURE [status: PrintQueue.ObjectStatus, canceledWhileMarking: CancelProc ← NIL];
Disables marking and returns; document in progress is given
the status specified and put on the appropriate queue.
If the document is put on the aborted queue, the cancel proc is called.
StoppedProc: TYPE = PROCEDURE [wither: WaitChoice ← dontWait] RETURNS [BOOLEAN];
IF wither=wait, returns TRUE when marking is stopped.
IF wither=dontWait, return immediately.
PauseProc: TYPE = PROCEDURE RETURNS [activity: MarkerStatus];
Please Pause printing.
activity = idle means no action was taken,
activity = marking means can't pause right now,
activity = paused returned if successful.
ResumeProc: TYPE = PROCEDURE; --Undoes a Pause.
StatusProc: TYPE = PROCEDURE RETURNS [status: MarkerStatus];
WaitStatusChangeProc: TYPE = PROCEDURE RETURNS [status: MarkerStatus];
SetPrintOrderProc: TYPE = PROCEDURE [printOrder: PaperHandling.PrintOrder];
ModifyTraceLevelProc: TYPE = PROCEDURE [trace: TraceLevel];
CancelProc:
TYPE =
PROCEDURE [docName: NSString.String,
docQueueStatus: PrintQueue.ObjectStatus]; --parameter to StopProc
Client procs, registered at Init. **See MarkerInit.mesa
ReadyToMarkProc: TYPE = PROCEDURE;
FinishedMarkingProc: TYPE = PROCEDURE;
EngineFailureProc: TYPE = PROCEDURE;
Raven specific control proc defs
SetEngineBuildProc: TYPE = PROCEDURE [engineBuild: PrintingTypes.RavenBuild];
SetFeedingProc: TYPE = PROCEDURE [feeding: PaperHandling.PaperFeed];
SetPaperProc: TYPE = PROCEDURE [paperSupply: PaperHandling.TwoPaperSizes];
SetBannerProc: TYPE = PROCEDURE [banner: PaperHandling.BannerMode];
SetRavenRegistrationProc:
TYPE =
PROCEDURE [
registration: PaperHandling.RavenRegistration];
SetStackingProc: TYPE = PROCEDURE [stacking: PaperHandling.PaperStacking];
DozeoffEngineProc: TYPE = PROCEDURE;
WakeupEngineProc: TYPE = PROCEDURE;
FX3500 specific control proc defs
SetFX3500RegistrationProc:
TYPE =
PROCEDURE [
registration: PaperHandling.FX3500Registration];
GetPrinterDisplayProc:
TYPE =
PROCEDURE
RETURNS [leftChar, rightChar: CHARACTER ← 0C];
PutPrinterDisplayProc: TYPE = PROCEDURE [leftChar, rightChar: CHARACTER ← 0C];
XP-9 specific control proc defs
SetD1RegistrationProc:
TYPE =
PROCEDURE [
registration: PaperHandling.D1Registration];
Fax specific control proc defs
SetFax495BannerProc: TYPE = PROCEDURE [banner: PaperHandling.Fax495BannerMode];
SetFaxPaperProc: TYPE = PROCEDURE [paperWidth: CARDINAL]; --width of paper roll in millimeters
SetMultipleCopiesProc:
TYPE =
PROCEDURE [
multLocalCopiesAllowed, multRemoteCopiesAllowed: BOOLEAN];
SetTransmissionRetriesProc:
TYPE =
PROCEDURE [
reason: FaxStatus.TransmissionRetryReason, retries: CARDINAL,
delayInSeconds: LONG CARDINAL];
SetTransmissionResolutionProc:
TYPE =
PROCEDURE [
fineResolutionSupported: BOOLEAN]; --transmission resolution is either standard or fine
March 18, 1981 6:35 PM by J.Beeley: Created file to replace MarkerControlDefs.
March 31, 1981 5:04 PM by JB: Added params to Init, SetPaper, SetRegistration, SetFeeding & SetStacking procs; deleted Pause.
May 28, 1981 4:51 PM by JB. Imported PSExec.TraceLevel; added SetBanner and testPatternFromQ to Init.
June 19, 1981 5:16 PM by JB. Added ModifyTraceLevel.
July 8, 1981 3:39 PM by JB. Adopted new Raven interfaces; defined TraceLevel locally.
July 31, 1981 2:49 PM by JB. Added WaitRavenStatusChange.
August 28, 1981 10:21 AM by JB. Removed returned BOOLEANs from SetBanner, SetFeeding, etc.
9-Mar-82 12:22:02 by JB: Added Activity in EngineStatus, Pause & Resume.
28-Apr-82 13:32:40 by
JB: Added DozeoffEngine + WakeupEngine.
1-Sep-82 13:57:10 - JB: Added EngineBuild and added engineType to EngineStatus
19-Sep-83 14:32:20 - Jacks - Converted to Klamath (Pilot 11.0)
13-Nov-83 15:15:54 -
JB - Removed dependence on RavenEngine; added DeviceSpecificStatus, status defs, DeviceProcs; removed Init (to MarkerInit).
1-Dec-83 17:43:51 - Jacks - Added CanceledWhileMarking parm to Stop; added engineFault to MarkerStatus; removed fault from Activity.
14-Dec-83 11:22:37 - Jacks - Defined fax status types, SetMultipleCopiesProc, SetRetriesProc, SetFX3500RegistrationProc, ShowPrinterDisplayProc and DisplayCharsOnPrinterProc; removed faxJobStatus, realResolution & abortReason from DeviceSpecificStatus; added PrinterState from RavenEngine; added FX3500Status.
26-Jan-84 17:20:57 - Jacks - Moved RavenEngineBuild to PrinterTypes; redefined FaxStatus and FaxRetryReason; removed FaxMachineMode, FaxScannerStatus, and FaxPrinterStatus; added paperSupply and "tray empty" booleans to fx3500 DeviceSpecificStatus; added paused and readyToResume to PrintingState; corrected FX3500Status.
19-Sep-84 13:30:33 - Jacks - Added banshee and fax295 defs; removed aps5 defs; added SetFaxPaperProc and SetTransmissionResolutionProc.
9-Nov-84 15:13:57 - Jacks - Second round of changes for 9.0: Change parameters to StopProc from queueStage to status; updated BansheeStatus; renamed DeviceProcs to ClientProcs.
18-Jun-85 11:16:06 - Jacks - Moved engine status types to separate defs; moved PrintingState to its own def; added copyright notice; added d1 variants; added RavenBuildVariant.
19-Jun-85 15:24:56 - Jacks - Activity renamed to PSActivity.
25-Jun-85 13:45:17 - Jacks - Added getPrinterDisplay and putPrinterDisplay for d1 to ClientProcs.
14-Oct-85 14:53:07 - Jacks - EngineSpecific paper for bansheeDl is Paper not PaperSize.