RemoteOrderDisplay Class (POS for .NET v1.12 SDK Documentation)

2/27/2008

Defines the programmatic interface for a remote order display.

Namespace: Microsoft.PointOfService
Assembly: Microsoft.PointOfService (in microsoft.pointofservice.dll)

Syntax

'Declaration
Public MustInherit Class RemoteOrderDisplay
    Inherits PosCommon
public abstract class RemoteOrderDisplay : PosCommon
public ref class RemoteOrderDisplay abstract : public PosCommon
public abstract class RemoteOrderDisplay extends PosCommon
public abstract class RemoteOrderDisplay extends PosCommon

Remarks

Capabilities

The remote order display service object has the following minimal set of capabilities:

  • Supports color or monochrome text character displays.

  • Supports eight foreground colors (or grayscale on monochrome display) with the option of using the intensity attribute.

  • Supports eight background colors (or grayscale on monochrome display) with the option of using only a blinking attribute.

  • If it is requested, individual event types can be disabled so that the application only receives a subset of data events.

  • Supports video region buffering.

  • Supports cursor functions.

  • Supports clock functions.

  • Supports resetting a video unit to power-on state.

The remote order display service object may also have the following capabilities:

  • Supports multiple video displays. Each display may have a different video mode.

  • Supports touch video input for a touch screen display unit.

  • Supports video enunciator output with frequency and duration.

  • Supports tactile feedback through an automatic tone when a video display unit is touched (for touch screen only).

  • Supports downloading alternate character sets to one or many video units.

  • Supports transaction mode display output to one or many video units.

The following capability is not addressed in this version of the POS for .NET:

  • Support for graphical displays, where the video display is addressable by individual pixels or dots. The addition of this support is under investigation for future revisions.

Model

The general model of a remote order display is as follows:

  • The RemoteOrderDisplay device class is a subsystem of video units. The initial targeted environment is food service, to display order preparation and fulfillment information. Remote order displays are frequently used together with bump bars.

    The subsystem can support up to 32 video units.

    One application on one computer or POS terminal will typically manage and control the subsystem of video units. If applications on the same or other computers and POS terminals have to access the subsystem. Then this application must act as a subsystem server and expose interfaces to other applications.

  • All specific methods are broadcast methods. This means that the method can apply to one unit, a selection of units, or all online units. The units parameter is a Long, with each bit identifying an individual video unit. (One or more of the constants Unit1 through Unit32 are joined to a bitwise OR to form the bitmask.) The service object will try to satisfy the method for all units specified by the units parameter. If an error is received from one or more units, the ErrorUnits property is updated with the appropriate units in error. The ErrorString property is updated with a description of the error or errors received. The method then returns with the corresponding POS for .NET error. If two or more units encounter different errors, the service object should return the most severe POS for .NET error.

  • The common methods CheckHealth, ClearInput, and ClearOutput are not broadcast methods and use the unit ID specified by the CurrentUnitId property. (One of the constants Unit1 through Unit32 is selected.) See the description of these common methods to understand how the current unit ID property is used.

  • When the CurrentUnitId property is set by the application, all the corresponding properties are updated to reflect the settings for that unit.

    If the CurrentUnitId property is set to a unit ID that is not online, the dependent properties will contain non-initialized values.

    The CurrentUnitId uniquely represents a single video unit. The definitions range from Unit1 to Unit32. These definitions are also used to create the bitwise parameter, units, used in the broadcast methods.

  • The rows and columns are numbered that begins with (0,0) at the upper-left corner of the video display. The dimensions are defined by the height and width parameters. All position parameters are expressed in text characters.

  • The VGA-like attribute parameter that is used in various methods is a VideoAttributes enumeration.

    If a foreground or background color is requested, but the service object does not support that color, it chooses the best fit from the colors supported.

Input – Touch Video

The remote order display service object follows the general input model for event-driven input with some differences:

  • When input is received by the service object, it queues a DataEvent event.

  • This device does not support the AutoDisable property. So, the service object will not automatically disable itself when a DataEvent is queued.

  • A queued DataEvent is delivered to the application when the DataEventEnabled property is true and other event delivery requirements are met. Just before delivering this event, the service object copies the data into properties, and disables additional data events by setting the DataEventEnabled property to false. This causes later input data to be queued by the service object while the application processes the current input and associated properties. When the application has finished the current input and is ready for more data, it re-enables events by setting DataEventEnabled to true.

  • ErrorEvent events are queued if the service object encounters an error while collecting or processing input, and are delivered to the application when the DataEventEnabled property is true and other event delivery requirements are met.

  • The VideoDataCount property can be read to obtain the number of video DataEvents for a specific unit ID queued by the service object. The DataCount property can be read to obtain the total number of data events queued by the service object.

  • Input enqueued by the service object can be deleted by calling the ClearInput method.

Output – Video and Tone

The remote order display service object follows the general output model, with some improvements:

  • The following methods are always performed synchronously: ControlClock, ControlCursor, SelectCharacterSet, ResetVideo, and SetCursor. These methods will fail if asynchronous output is outstanding. The FreeVideoRegion method is also always performed synchronously but without regard to outstanding asynchronous output.

  • The following methods are performed either synchronously or asynchronously, depending on the value of the AsyncMode property: ClearVideo, ClearVideoRegion, CopyVideoRegion, DisplayData, DrawBox, RestoreVideoRegion, SaveVideoRegion, TransactionDisplay, UpdateVideoRegionAttribute, and VideoSound. When AsyncMode is false, these methods operate synchronously and return their completion status to the application.

    When AsyncMode is true, these methods operate as follows:

    • The service object buffers the request, sets the OutputId property to an identifier for this request, and returns as soon as possible. When the device completes the request successfully, the service object updates the EventUnits property and raises an OutputCompleteEvent. A parameter of this event contains the output ID of the completed request.

      Asynchronous display methods will not return an error status because of a display problem, such as a communications failure. These errors are only reported by an ErrorEvent. An error status is returned only if the display is not claimed and enabled, a parameter is invalid, or the request cannot be queued. The first two error cases are because of an application error, while the last is a system resource exception.

    • If an error occurs while performing an asynchronous request, an ErrorEvent is queued and delivered. The EventUnits property is set to the unit or units in error. The EventString property is also set.Note:ErrorEvent updates EventUnits and EventString. If an error is reported by a synchronous broadcast method, then ErrorUnits and ErrorString are set instead.

      The event handler can call synchronous display methods (but not asynchronous methods), and then can either retry the outstanding output or clear it.

    • The service object guarantees that asynchronous output is performed on a first-in first-out basis.

    • All unit output buffered by the service object can be deleted by setting the CurrentUnitId property and calling the ClearOutput method. OutputCompleteEvent events are not raised for cleared output. This method also stops any output that may be in progress (when it is possible).

  • The remote order display service object device may support transaction mode. A transaction is a sequence of display operations that are sent to a video unit as a single unit. Display operations that can be included in a transaction are ClearVideo, ClearVideoRegion, CopyVideoRegion, DisplayData, DrawBox, RestoreVideoRegion, SaveVideoRegion, and UpdateVideoRegionAttribute. During a transaction, the display operations are first validated. If valid, they are added to the transaction but not yet displayed. After the application has added as many operations as required, the transaction display method is called.

    If the transaction is displayed synchronously, the returned status indicates either that the transaction displayed successfully or that an error occurred during the display. If the transaction is displayed asynchronously, the asynchronous display rules listed earlier are followed. If an error occurs and the ErrorEvent handler causes a retry, the transaction is retried.

Device Sharing

The remote order display is an exclusive-use device. Its device sharing rules are as follows:

  • The application must claim the device before it enables it.

  • The application must claim and enable the device before accessing many remote order display specific properties.

  • The application must claim and enable the device before it calls methods that manipulate the device.

  • When a ClaimDevice method is called again, settable device characteristics are restored to their condition at ReleaseDevice. Examples of restored characteristics are character set, video mode, and tone frequency. Region memory buffers, clock, and cursor settings are considered state characteristics and are not restored.

Inheritance Hierarchy

System.Object
   Microsoft.PointOfService.PosDevice
     Microsoft.PointOfService.PosCommon
      Microsoft.PointOfService.RemoteOrderDisplay
         Microsoft.PointOfService.BasicServiceObjects.RemoteOrderDisplayBasic

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread-safe. Any instance members are not guaranteed to be thread-safe.

See Also

Reference

RemoteOrderDisplay Members
Microsoft.PointOfService Namespace