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

2/27/2008

Defines the programmatic interface for a UPOS Bill Dispenser device.

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

Syntax

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

Remarks

Capabilities

The BillDispenser has the following capabilities:

  • Reports the cash units and corresponding unit counts available in the bill dispenser.

  • Dispenses a specified number of cash units (bills) from the device into auser-specified exit.

  • Reports jam or mechanical failure conditions within the device.

  • Support of multiple types and denominations of currency.

The BillDispenser may also have the following additional capabilities:

  • Reports the supply levels of the bill dispenser’s cash units. Conditions which may be indicated include empty and near-empty states.

  • Reports of a possible (or probable) cash count discrepancy in the data reported by the ReadCashCounts method.

Programming Model

  • The general model of a bill dispenser is as follows:

  • Supports several bill denominations. The supported bill denomination for a particular currency is noted by the list of cash units in the CurrencyCashList property.

  • Consists of any combination of features to help generate the cash processing functions such as several slots or bins which can hold the cash, and cash exits.

  • This specification provides programmatic control only for the dispensing of cash. The accepting of cash by the device (for example, to replenish cash) is controlled by the AdjustCashCounts method, unless the device can determine the cash on its own. The application can call ReadCashCounts to retrieve the current unit count for each cash unit, but cannot control when or how cash is added to the device.

  • May have multiple exits. The number of exits is specified in the DeviceExits property. The application chooses a dispensing exit by setting the CurrentExit property. The cash units which may be dispensed to the current exit are indicated by the ExitCashList property. When CurrentExit is 1, the exit is considered the primary exit which is typically used during usual processing for dispensing cash to a customer following a retail transaction. When CurrentExit is greater than 1, the exit is considered an auxiliary exit. An auxiliary exit is typically used for special purposes, such as dispensing quantities or types of cash not targeted for the primary exit.

  • Dispenses cash into the exit specified by CurrentExit when DispenseCash is called. With DispenseCash, the application specifies a count of each cash unit to be dispensed.

  • Dispenses cash either synchronously or asynchronously, depending on the value of the AsyncMode property.

  • When AsyncMode is false, the cash dispensing methods are performed synchronously and the DispenseCash method returns the completion status to the application.

  • When AsyncMode is true and no exception is thrown by DispenseCash, the method is performed asynchronously and its completion is indicated by a StatusUpdateEvent event, with the Status property of the resulting StatusUpdateEventArgs set to StatusAsync.

  • The request’s completion status is set in the AsyncResultCode and AsyncResultCodeExtended properties.

  • The values of AsyncResultCode and AsyncResultCodeExtended properties are the same as those for the ErrorCode and ErrorCodeExtended properties of a PosControlException when an error occurs during synchronous dispensing.

  • Nesting of asynchronous BillDispenser operations is illegal; only one asynchronous method can be processed at a time.

  • The ReadCashCounts method may not be called while an asynchronous method is being performed because doing this could likely report incorrect cash counts.

Device Sharing

  • The BillDispenser is an exclusive-use device, as follows:

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

  • The application must claim and enable the device before accessing some properties, dispensing or collecting, or receiving events.

Platforms

  • The BillDispenser class requires POS for .NET version 1.11 or later versions.

Inheritance Hierarchy

System.Object
   Microsoft.PointOfService.PosDevice
     Microsoft.PointOfService.PosCommon
      Microsoft.PointOfService.BillDispenser
         Microsoft.PointOfService.BasicServiceObjects.BillDispenserBasic

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

BillDispenser Members
Microsoft.PointOfService Namespace