<> <> <> <> DIRECTORY Atom, BasicTime USING [Now], Booting USING [switches], Buttons USING [ButtonProc], Commander USING [CommandProc, Handle, Register], Containers USING [ChildXBound, ChildYBound], DebuggerSwap USING [CallDebugger], FS USING [Error, SetKeep], IO, Labels USING [Create], Loader USING [BCDBuildTime, MakeGlobalFrameResident, MakeProcedureResident], Menus USING [Menu, MenuProc, AppendMenuEntry, CreateEntry, CreateMenu], ProcessorFace USING [processorID], Rope USING [ROPE, Length], Rules USING [Create], TypeScript USING [Create], SystemVersion USING [machineType], VFonts, ViewerIO USING [CreateViewerStreams], ViewerOps, Unformat USING [HostNumberToRope], NSPilotSystem USING [HostNumber], NewEthernetFace USING [Status, GetPacketLength, GetStatus, GetRetries, TurnOn], EtherTesterOps USING [ StartTest, StopTheWorld, DontBeAHog, InitializeCSBs, CleanThingsUp, Buffer, Pattern, activeProcesses, HWTestMode], EtherTesterViewer; EtherTesterControlImpl: MONITOR IMPORTS BasicTime, Booting, Commander, Containers, DebuggerSwap, FS, IO, Labels, Loader, Menus, ProcessorFace, Rope, Rules, SystemVersion, TypeScript, Unformat, ViewerIO, ViewerOps, NewEthernetFace, EtherTesterOps, EtherTesterViewer EXPORTS EtherTesterOps, EtherTesterViewer = BEGIN OPEN IO, EtherTesterViewer; <> ROPE: TYPE = Rope.ROPE; counter: PUBLIC ARRAY [0..8) OF INT; tsOut: PUBLIC STREAM_ NIL; me, source, dest: PUBLIC NSPilotSystem.HostNumber_ LOOPHOLE[ProcessorFace.processorID]; <> recvSize: PUBLIC CARDINAL_ defaultRecvSize; sendSize: PUBLIC CARDINAL_ defaultSendSize; ticksBeforeSend: PUBLIC CARDINAL_ defaultTicksBeforeSend; promiscuous: PUBLIC BOOLEAN _ FALSE; broadcasting: PUBLIC BOOLEAN _ FALSE; check: PUBLIC BOOLEAN _ FALSE; flipem: PUBLIC BOOLEAN _ FALSE; doChecksum: PUBLIC BOOLEAN _ TRUE; doStats: PUBLIC BOOLEAN _ TRUE; showRunts, showGarbage, dallyBeforeOutput: PUBLIC BOOLEAN _ FALSE; defaultNumberOfRecvBuffers: CARDINAL = 6; numberOfRecvBuffers: PUBLIC CARDINAL _ defaultNumberOfRecvBuffers; defaultNumberOfSendBuffers: CARDINAL = 1; numberOfSendBuffers: PUBLIC CARDINAL _ defaultNumberOfSendBuffers; showStrangeStatus, showWrongLength: PUBLIC BOOLEAN _ TRUE; showWrongData, showOnlyBadAlign: PUBLIC BOOLEAN _ TRUE; bumpPacketNumber, dallyIfBehind: PUBLIC BOOLEAN _ TRUE; hwMode: PUBLIC EtherTesterOps.HWTestMode_ normal; <> defNumOfRecvBuffers: ROPE = "6"; defNumOfSendBuffers: ROPE = "1"; etherNetBoard: CARDINAL _ defaultEtherNetBoard; herald: ROPE; etherTesterLogName: ROPE = "EtherTester.log"; okToRun: BOOL_ FALSE; etherTesterController: Viewer_ NIL; testerTS: Viewer_ NIL; boardNum, sourceHost, destHost, myHost: PUBLIC ButtonItem_ NIL; numRecvBuffers, inputBuffLen, numSendBuffers, outputBuffLen: PUBLIC ButtonItem_ NIL; ticksBefore: PUBLIC ButtonItem_ NIL; statsDisplayer: PUBLIC StatsItem; defaultEtherNetBoard: CARDINAL = 1; defaultRecvSize: CARDINAL = 2020; defaultSendSize: CARDINAL = 2000; defaultTicksBeforeSend: CARDINAL = 0; defEtherNetBoard: ROPE = "1"; defRecvSize: ROPE = "2020"; defSendSize: ROPE = "2000"; defTicksBeforeSend: ROPE = "0"; myHostNumber: ROPE; sourceHostNumber: ROPE; destHostNumber: ROPE; ParseError: PUBLIC SIGNAL = CODE; pattern: PUBLIC EtherTesterOps.Pattern _ ignore; patternButton, hwModeButton: PUBLIC Viewer; noE2Board: ROPE = "**************** Can't find specified Ethernet(2) board."; <