RemoteOrderDisplay Class

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

Usage

'Usage
Dim remoteOrderDisplay1 As New RemoteOrderDisplay()

Syntax

'Declaration
MustInherit Public Class RemoteOrderDisplay
    Inherits PosCommon
public abstract class RemoteOrderDisplay : PosCommon
public abstract ref class RemoteOrderDisplay : 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 gray scale on monochrome display) with the option of using the intensity attribute.

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

  • If 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 via 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:

  • 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 often used in conjunction with bump bars.

    The subsystem can support up to 32 video units.

    One application on one PC or POS terminal will typically manage and control the entire subsystem of video units. If applications on the same or other PCs and POS Terminals need 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 bitwise ORed to form the bitmask.) The service object will attempt 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 current unit ID 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. See the Examples section below for usage.

  • The rows and columns are numbered beginning with (0,0) at the top-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 further data events by setting the DataEventEnabled property to FALSE. This causes subsequent 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 reenables events by setting DataEventEnabled to TRUE.

  • ErrorEvent events are queued if the service object encounters an error while gathering 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 enhancements:

  • 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 fires an OutputCompleteEvent. A parameter of this event contains the output ID of the completed request.

      Asynchronous display methods will not return an error status due to 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 due to 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), 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 fired for cleared output. This method also stops any output that may be in progress (when 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 entire transaction displayed successfully or that an error occurred during the display. If the transaction is displayed asynchronously, the asynchronous display rules listed above are followed. If an error occurs and the ErrorEvent handler causes a retry, the entire transaction is retried.

Device Sharing

The Remote Order Display is an exclusive-use device. Its device sharing rules are:

  • The application must claim the device before enabling 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 calling 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.

Platforms

Development Platforms

Windows XP Home Edition, Windows XP Professional, Windows Server 2003, Windows Longhorn, and Windows 2000

Target Platforms

See Also

Reference

RemoteOrderDisplay Members
Microsoft.PointOfService Namespace