Click or drag to resize

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 on the SP-ICE-3 Card.

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 note  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

How to use MEB to indicate Marking Engine activity.
Important note  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.)

Example: using the MEB signal.
// 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 );
}