8.4.1 The Marking-Engine-Busy Signal |
The Marking-Engine-Busy (MEB) Signal provides automatic functionality beyond that of the traditional "Mark-In-Progress" signal found on previous RAYLASE GmbH controller cards.
The MEB signal is asserted (made active) by the SP-ICE-3 Card to indicate that the card's Marking Engine is indeed busy, in the sense that it is currently processing a SP-ICE-3 Command.
Depending on the particular command, such processing may involve generation of signals to the scanner(s) and laser, waiting for an external signal to become active, waiting for a delay period to expire, etc.
Caution |
---|
The MEB and LM signals are essentially independent: the current state of either implies nothing about the state of the other. In particular, MEB = not busy does not neccessarily mean that the laser-beam is currently switched off! |
The MEB signal is generated automatically by the card's internal Marking Engine.
The MEB signal can be selected for output on X907 Laser Pin 4 .
Alternatively, X907 Laser Pin 4 may be used for "traditional-MIP-style" signalling: see 8.4.2 "Mark-In-Progress" Signal Emulation
Important |
---|
The programmatic selection of the MEB signal on Pin 4 of X907 Laser, shown in the following example code, is only necessary if the signal has not previously been selected by some other means (for instance, via the SPICE3Config Tool.) |
// NB: we assume the existence of a variable called CardIP, // which contains the IP address of our card. using ( ClientAPI client = new ClientAPI( CardIP ) ) { client.System.ResetToDefaults(); //** Optional GPIO configuration. //** Only necessary if not already performed elsewhere //** (using the SPICE3Config tool, for instance). // Get the current GPIO configuration from the card: GpioConfig gpioConfig = client.Gpio.GetConfig(); // For convenience, use a reference to the port configuration for LaserOut: PortConfig laserOut = gpioConfig.Ports[IOPort.LaserOut]; // Make sure that Pin 4 on X907 Laser is mapped to the MEB signal: laserOut.Functions[2] = 1; // send the complete GPIO configuration, including the new port configuration for LaserOut, back to the card. client.Gpio.SetConfig( gpioConfig ); //** End of optional GPIO configuration. int listID = 0; CommandList list = new CommandList(); list.AppendJumpSpeed( 2 ); list.AppendJumpDelay( 0 ); list.AppendMarkSpeed( 1 ); list.AppendMarkDelay( 0 ); list.AppendLmFrequency( 0.08 ); list.AppendLmWidth( 0.5 ); list.AppendJumpAbs( 0, 0 ); for ( int i = 0; i < 5; i++ ) { list.AppendMarkAbs( 1000, 1000 ); list.AppendJumpAbs( 0, 0 ); } client.List.Set( listID, list ); // The MEB signal will be active while the Marking Engine processes the list. client.List.Execute( listID ); int? doneID; client.List.WaitForListDone( out doneID ); }