using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

namespace UnifiedPOS.POSPrinter.V1_4
{
    [ServiceContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public interface POSPrinter
    {
        #region Version 1.1

        //
        // Common Properties
        //

        // [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetAutoDisable", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetAutoDisableResponse")]
        // [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        // int GetAutoDisable(string ConsumerID);

        // [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetAutoDisable", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetAutoDisableResponse")]
        // [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        // void SetAutoDisable(string ConsumerID, int AutoDisable);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapCompareFirmwareVersion", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapCompareFirmwareVersionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapCompareFirmwareVersion(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapPowerReporting", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapPowerReportingResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        PowerReporting GetCapPowerReporting(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapStatisticsReporting", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapStatisticsReportingResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapStatisticsReporting(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapUpdateFirmware", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapUpdateFirmwareResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapUpdateFirmware(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapUpdateStatistics", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapUpdateStatisticsResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapUpdateStatistics(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCheckHealthText", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCheckHealthTextResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        string GetCheckHealthText(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetClaimed", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetClaimedResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetClaimed(string ConsumerID);

        // [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetDataCount", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetDataCountResponse")]
        // [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        // int GetDataCount(string ConsumerID);

        // [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetDataEventEnabled", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetDataEventEnabledResponse")]
        // [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        // bool GetDataEventEnabled(string ConsumerID);

        // [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetDataEventEnabled", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetDataEventEnabledResponse")]
        // [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        // void SetDataEventEnabled(string ConsumerID, bool DataEventEnabled);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetDeviceEnabled", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetDeviceEnabledResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetDeviceEnabled(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetDeviceEnabled", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetDeviceEnabledResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetDeviceEnabled(string ConsumerID, bool DeviceEnabled);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetFreezeEvents", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetFreezeEventsResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetFreezeEvents(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetFreezeEvents", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetFreezeEventsResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetFreezeEvents(string ConsumerID, bool FreezeEvents);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetOutputID", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetOutputIDResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetOutputID(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetPowerNotify", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetPowerNotifyResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        PowerNotification GetPowerNotify(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetPowerNotify", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetPowerNotifyResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetPowerNotify(string ConsumerID, PowerNotification PowerNotify);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetPowerState", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetPowerStateResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        PowerState GetPowerState(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetState", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetStateResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        ControlState GetState(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetDeviceControlDescription", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetDeviceControlDescriptionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        string GetDeviceControlDescription(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetDeviceControlVersion", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetDeviceControlVersionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        UposVersion GetDeviceControlVersion(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetDeviceServiceDescription", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetDeviceServiceDescriptionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        string GetDeviceServiceDescription(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetDeviceServiceVersion", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetDeviceServiceVersionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        UposVersion GetDeviceServiceVersion(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetPhysicalDeviceDescription", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetPhysicalDeviceDescriptionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        string GetPhysicalDeviceDescription(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetPhysicalDeviceName", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetPhysicalDeviceNameResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        string GetPhysicalDeviceName(string ConsumerID);

        //
        // Specific Properties
        //

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapCharacterSet", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapCharacterSetResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        CharacterSetCapability GetCapCharacterSet(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapConcurrentJrnRec", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapConcurrentJrnRecResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapConcurrentJrnRec(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapConcurrentJrnSlp", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapConcurrentJrnSlpResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapConcurrentJrnSlp(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapConcurrentPageMode", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapConcurrentPageModeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapConcurrentPageMode(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapConcurrentRecSlp", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapConcurrentRecSlpResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapConcurrentRecSlp(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapCoverSensor", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapCoverSensorResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapCoverSensor(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapMapCharacterSet", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapMapCharacterSetResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapMapCharacterSet(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapTransaction", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapTransactionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapTransaction(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapJrnPresent", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapJrnPresentResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapJrnPresent(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapJrn2Color", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapJrn2ColorResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapJrn2Color(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapJrnBold", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapJrnBoldResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapJrnBold(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapJrnDhigh", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapJrnDhighResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapJrnDhigh(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapJrnDwide", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapJrnDwideResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapJrnDwide(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapJrnDwideDhigh", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapJrnDwideDhighResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapJrnDwideDhigh(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapJrnEmptySensor", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapJrnEmptySensorResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapJrnEmptySensor(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapJrnItalic", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapJrnItalicResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapJrnItalic(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapJrnNearEndSensor", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapJrnNearEndSensorResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapJrnNearEndSensor(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapJrnUnderline", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapJrnUnderlineResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapJrnUnderline(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapJrnCartridgeSensor", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapJrnCartridgeSensorResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetCapJrnCartridgeSensor(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapJrnColor", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapJrnColorResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetCapJrnColor(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecPresent", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecPresentResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapRecPresent(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRec2Color", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRec2ColorResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapRec2Color(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecBarCode", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecBarCodeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapRecBarCode(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecBitmap", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecBitmapResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapRecBitmap(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecBold", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecBoldResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapRecBold(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecDhigh", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecDhighResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapRecDhigh(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecDwide", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecDwideResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapRecDwide(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecDwideDhigh", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecDwideDhighResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapRecDwideDhigh(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecEmptySensor", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecEmptySensorResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapRecEmptySensor(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecItalic", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecItalicResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapRecItalic(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecLeft90", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecLeft90Response")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapRecLeft90(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecNearEndSensor", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecNearEndSensorResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapRecNearEndSensor(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecPapercut", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecPapercutResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapRecPapercut(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecRight90", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecRight90Response")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapRecRight90(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecRotate180", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecRotate180Response")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapRecRotate180(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecStamp", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecStampResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapRecStamp(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecUnderline", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecUnderlineResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapRecUnderline(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecCartridgeSensor", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecCartridgeSensorResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetCapRecCartridgeSensor(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecColor", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecColorResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetCapRecColor(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecMarkFeed", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecMarkFeedResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetCapRecMarkFeed(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecPageMode", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecPageModeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapRecPageMode(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecRuledLine", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapRecRuledLineResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetCapRecRuledLine(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpPresent", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpPresentResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapSlpPresent(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpFullslip", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpFullslipResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapSlpFullslip(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlp2Color", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlp2ColorResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapSlp2Color(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpBarCode", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpBarCodeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapSlpBarCode(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpBitmap", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpBitmapResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapSlpBitmap(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpBold", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpBoldResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapSlpBold(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpDhigh", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpDhighResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapSlpDhigh(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpDwide", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpDwideResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapSlpDwide(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpDwideDhigh", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpDwideDhighResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapSlpDwideDhigh(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpEmptySensor", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpEmptySensorResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapSlpEmptySensor(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpItalic", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpItalicResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapSlpItalic(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpLeft90", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpLeft90Response")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapSlpLeft90(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpNearEndSensor", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpNearEndSensorResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapSlpNearEndSensor(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpRight90", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpRight90Response")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapSlpRight90(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpRotate180", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpRotate180Response")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapSlpRotate180(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpUnderline", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpUnderlineResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapSlpUnderline(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpBothSidesPrint", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpBothSidesPrintResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapSlpBothSidesPrint(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpCartridgeSensor", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpCartridgeSensorResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetCapSlpCartridgeSensor(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpColor", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpColorResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetCapSlpColor(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpPageMode", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpPageModeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCapSlpPageMode(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpRuledLine", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCapSlpRuledLineResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetCapSlpRuledLine(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetAsyncMode", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetAsyncModeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetAsyncMode(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetAsyncMode", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetAsyncModeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetAsyncMode(string ConsumerID, bool AsyncMode);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCartridgeNotify", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCartridgeNotifyResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        PrinterCartridgeNotify GetCartridgeNotify(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetCartridgeNotify", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetCartridgeNotifyResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetCartridgeNotify(string ConsumerID, PrinterCartridgeNotify CartridgeNotify);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCharacterSet", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCharacterSetResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetCharacterSet(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetCharacterSet", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetCharacterSetResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetCharacterSet(string ConsumerID, int CharacterSet);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCharacterSetList", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCharacterSetListResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        CharacterSetList GetCharacterSetList(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCoverOpen", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetCoverOpenResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetCoverOpen(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetErrorLevel", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetErrorLevelResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        PrinterErrorLevel GetErrorLevel(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetErrorStation", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetErrorStationResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        PrinterStation GetErrorStation(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetErrorString", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetErrorStringResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        string GetErrorString(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetFontTypefaceList", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetFontTypefaceListResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        FontTypefaceList GetFontTypefaceList(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetFlagWhenIdle", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetFlagWhenIdleResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetFlagWhenIdle(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetFlagWhenIdle", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetFlagWhenIdleResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetFlagWhenIdle(string ConsumerID, bool FlagWhenIdle);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetMapCharacterSet", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetMapCharacterSetResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetMapCharacterSet(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetMapCharacterSet", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetMapCharacterSetResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetMapCharacterSet(string ConsumerID, bool MapCharacterSet);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetMapMode", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetMapModeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        MapMode GetMapMode(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetMapMode", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetMapModeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetMapMode(string ConsumerID, MapMode MapMode);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetPageModeArea", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetPageModeAreaResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        Point GetPageModeArea(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetPageModeDescriptor", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetPageModeDescriptorResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetPageModeDescriptor(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetPageModeHorizontalPosition", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetPageModeHorizontalPositionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetPageModeHorizontalPosition(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetPageModeHorizontalPosition", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetPageModeHorizontalPositionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetPageModeHorizontalPosition(string ConsumerID, int PageModeHorizontalPosition);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetPageModePrintArea", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetPageModePrintAreaResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        Rectangle GetPageModePrintArea(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetPageModePrintArea", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetPageModePrintAreaResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetPageModePrintArea(string ConsumerID, Rectangle PageModePrintArea);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetPageModePrintDirection", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetPageModePrintDirectionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        PageModePrintDirection GetPageModePrintDirection(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetPageModePrintDirection", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetPageModePrintDirectionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetPageModePrintDirection(string ConsumerID, PageModePrintDirection PageModePrintDirection);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetPageModeStation", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetPageModeStationResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        PrinterStation GetPageModeStation(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetPageModeStation", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetPageModeStationResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetPageModeStation(string ConsumerID, PrinterStation PageModeStation);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetPageModeVerticalPosition", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetPageModeVerticalPositionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetPageModeVerticalPosition(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetPageModeVerticalPosition", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetPageModeVerticalPositionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetPageModeVerticalPosition(string ConsumerID, int PageModeVerticalPosition);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRotateSpecial", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRotateSpecialResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        Rotation GetRotateSpecial(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetRotateSpecial", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetRotateSpecialResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetRotateSpecial(string ConsumerID, Rotation RotateSpecial);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetJrnLineChars", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetJrnLineCharsResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetJrnLineChars(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetJrnLineChars", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetJrnLineCharsResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetJrnLineChars(string ConsumerID, int JrnLineChars);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetJrnLineCharsList", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetJrnLineCharsListResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        LineCharsList GetJrnLineCharsList(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetJrnLineHeight", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetJrnLineHeightResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetJrnLineHeight(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetJrnLineHeight", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetJrnLineHeightResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetJrnLineHeight(string ConsumerID, int JrnLineHeight);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetJrnLineSpacing", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetJrnLineSpacingResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetJrnLineSpacing(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetJrnLineSpacing", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetJrnLineSpacingResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetJrnLineSpacing(string ConsumerID, int JrnLineSpacing);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetJrnLineWidth", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetJrnLineWidthResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetJrnLineWidth(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetJrnLetterQuality", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetJrnLetterQualityResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetJrnLetterQuality(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetJrnLetterQuality", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetJrnLetterQualityResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetJrnLetterQuality(string ConsumerID, bool JrnLetterQuality);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetJrnEmpty", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetJrnEmptyResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetJrnEmpty(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetJrnNearEnd", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetJrnNearEndResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetJrnNearEnd(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetJrnCartridgeState", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetJrnCartridgeStateResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        PrinterCartridgeStates GetJrnCartridgeState(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetJrnCurrentCartridge", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetJrnCurrentCartridgeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetJrnCurrentCartridge(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetJrnCurrentCartridge", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetJrnCurrentCartridgeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetJrnCurrentCartridge(string ConsumerID, int JrnCurrentCartridge);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRecLineChars", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRecLineCharsResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetRecLineChars(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetRecLineChars", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetRecLineCharsResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetRecLineChars(string ConsumerID, int RecLineChars);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRecLineCharsList", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRecLineCharsListResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        LineCharsList GetRecLineCharsList(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRecLineHeight", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRecLineHeightResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetRecLineHeight(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetRecLineHeight", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetRecLineHeightResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetRecLineHeight(string ConsumerID, int RecLineHeight);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRecLineSpacing", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRecLineSpacingResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetRecLineSpacing(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetRecLineSpacing", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetRecLineSpacingResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetRecLineSpacing(string ConsumerID, int RecLineSpacing);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRecLineWidth", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRecLineWidthResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetRecLineWidth(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRecLetterQuality", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRecLetterQualityResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetRecLetterQuality(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetRecLetterQuality", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetRecLetterQualityResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetRecLetterQuality(string ConsumerID, bool RecLetterQuality);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRecEmpty", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRecEmptyResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetRecEmpty(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRecNearEnd", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRecNearEndResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetRecNearEnd(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRecSidewaysMaxChars", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRecSidewaysMaxCharsResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetRecSidewaysMaxChars(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRecSidewaysMaxLines", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRecSidewaysMaxLinesResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetRecSidewaysMaxLines(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRecLinesToPaperCut", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRecLinesToPaperCutResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetRecLinesToPaperCut(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRecBarCodeRotationList", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRecBarCodeRotationListResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        RotationList GetRecBarCodeRotationList(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRecBitmapRotationList", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRecBitmapRotationListResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        RotationList GetRecBitmapRotationList(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRecCartridgeState", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRecCartridgeStateResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        PrinterCartridgeStates GetRecCartridgeState(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRecCurrentCartridge", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetRecCurrentCartridgeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetRecCurrentCartridge(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetRecCurrentCartridge", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetRecCurrentCartridgeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetRecCurrentCartridge(string ConsumerID, int RecCurrentCartridge);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpLineChars", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpLineCharsResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetSlpLineChars(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetSlpLineChars", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetSlpLineCharsResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetSlpLineChars(string ConsumerID, int SlpLineChars);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpLineCharsList", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpLineCharsListResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        LineCharsList GetSlpLineCharsList(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpLineHeight", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpLineHeightResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetSlpLineHeight(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetSlpLineHeight", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetSlpLineHeightResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetSlpLineHeight(string ConsumerID, int SlpLineHeight);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpLineSpacing", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpLineSpacingResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetSlpLineSpacing(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetSlpLineSpacing", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetSlpLineSpacingResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetSlpLineSpacing(string ConsumerID, int SlpLineSpacing);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpLineWidth", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpLineWidthResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetSlpLineWidth(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpLetterQuality", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpLetterQualityResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetSlpLetterQuality(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetSlpLetterQuality", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetSlpLetterQualityResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetSlpLetterQuality(string ConsumerID, bool SlpLetterQuality);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpEmpty", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpEmptyResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetSlpEmpty(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpNearEnd", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpNearEndResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        bool GetSlpNearEnd(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpSidewaysMaxLines", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpSidewaysMaxLinesResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetSlpSidewaysMaxLines(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpSidewaysMaxChars", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpSidewaysMaxCharsResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetSlpSidewaysMaxChars(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpMaxLines", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpMaxLinesResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetSlpMaxLines(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpLinesNearEndToEnd", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpLinesNearEndToEndResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetSlpLinesNearEndToEnd(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpBarCodeRotationList", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpBarCodeRotationListResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        RotationList GetSlpBarCodeRotationList(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpBitmapRotationList", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpBitmapRotationListResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        RotationList GetSlpBitmapRotationList(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpPrintSide", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpPrintSideResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        PrinterSide GetSlpPrintSide(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpCartridgeState", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpCartridgeStateResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        PrinterCartridgeStates GetSlpCartridgeState(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpCurrentCartridge", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetSlpCurrentCartridgeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetSlpCurrentCartridge(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetSlpCurrentCartridge", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetSlpCurrentCartridgeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetSlpCurrentCartridge(string ConsumerID, int SlpCurrentCartridge);

        //
        // Common Methods
        //

        //[OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/Open", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/OpenResponse")]
        //[FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        //void Open(string ConsumerID, string EndpointAddress);

        //[OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/Close", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/CloseResponse")]
        //[FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        //void Close(string ConsumerID, string EndpointAddress);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/Claim", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/ClaimResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void Claim(string ConsumerID, int Timeout);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/Release", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/ReleaseResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void Release(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/CheckHealth", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/CheckHealthResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void CheckHealth(string ConsumerID, HealthCheckLevel Level);

        // [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/ClearInput", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/ClearInputResponse")]
        // [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        // void ClearInput(string ConsumerID);

        // [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/ClearInputProperties", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/ClearInputPropertiesResponse")]
        // [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        // void ClearInputProperties(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/ClearOutput", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/ClearOutputResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void ClearOutput(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/DirectIO", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/DirectIOResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        DirectIOData DirectIO(string ConsumerID, int Command, int Data, object Obj);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/CompareFirmwareVersion", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/CompareFirmwareVersionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        CompareFirmwareResult CompareFirmwareVersion(string ConsumerID, string FirmwareFileName);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/ResetStatistics", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/ResetStatisticsResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void ResetStatistics(string ConsumerID, StatisticList StatisticsBuffer);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/RetrieveStatistics", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/RetrieveStatisticsResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        string RetrieveStatistics(string ConsumerID, StatisticList StatisticsBuffer);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UpdateFirmware", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UpdateFirmwareResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void UpdateFirmware(string ConsumerID, string FirmwareFileName);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UpdateStatistics", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UpdateStatisticsResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void UpdateStatistics(string ConsumerID, StatisticList StatisticsBuffer);

        //
        // Specific Methods
        //

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/BeginInsertion", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/BeginInsertionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void BeginInsertion(string ConsumerID, int Timeout);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/BeginRemoval", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/BeginRemovalResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void BeginRemoval(string ConsumerID, int Timeout);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/ChangePrintSide", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/ChangePrintSideResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void ChangePrintSide(string ConsumerID, PrinterSide Side);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/ClearPrintArea", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/ClearPrintAreaResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void ClearPrintArea(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/CutPaper", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/CutPaperResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void CutPaper(string ConsumerID, int Percentage);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/DrawRuledLine", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/DrawRuledLineResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void DrawRuledLine(string ConsumerID, PrinterStation Station, PositionList PositionList, int LineDirection, int LineWidth, PrinterLineStyle LineStyle, int LineColor);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/EndInsertion", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/EndInsertionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void EndInsertion(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/EndRemoval", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/EndRemovalResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void EndRemoval(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/MarkFeed", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/MarkFeedResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void MarkFeed(string ConsumerID, int Type);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/PageModePrint", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/PageModePrintResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void PageModePrint(string ConsumerID, PageModePrintControl Control);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/PrintBarCode", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/PrintBarCodeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void PrintBarCode(string ConsumerID, PrinterStation Station, string Data, int Symbology, int Height, int Width, int Alignment, BarCodeTextPosition TextPosition);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/PrintBitmap", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/PrintBitmapResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void PrintBitmap(string ConsumerID, PrinterStation Station, string FileName, int Width, int Alignment);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/PrintImmediate", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/PrintImmediateResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void PrintImmediate(string ConsumerID, PrinterStation Station, string Data);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/PrintMemoryBitmap", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/PrintMemoryBitmapResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void PrintMemoryBitmap(string ConsumerID, PrinterStation Station, byte[] Data, BitmapType Type, int Width, int Alignment);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/PrintNormal", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/PrintNormalResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void PrintNormal(string ConsumerID, PrinterStation Station, string Data);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/PrintTwoNormal", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/PrintTwoNormalResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void PrintTwoNormal(string ConsumerID, PrinterStation Station, string Data1, string Data2);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/RotatePrint", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/RotatePrintResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void RotatePrint(string ConsumerID, PrinterStation Station, int Rotation);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetBitmap", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetBitmapResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetBitmap(string ConsumerID, int BitmapNumber, PrinterStation Station, string FileName, int Width, int Alignment);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetLogo", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetLogoResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetLogo(string ConsumerID, PrinterLogoLocation Location, string Data);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/TransactionPrint", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/TransactionPrintResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void TransactionPrint(string ConsumerID, PrinterStation Station, PrinterTransactionControl Control);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/ValidateData", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/ValidateDataResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void ValidateData(string ConsumerID, PrinterStation Station, string Data);

        #endregion

        #region Version 1.2

        //
        // Session Management
        //

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetWSPOSVersion", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetWSPOSVersionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        UposVersion GetWSPOSVersion();

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GenerateConsumerID", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GenerateConsumerIDResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        string GenerateConsumerID();

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/OpenSession", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/OpenSessionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void OpenSession(string ConsumerID, string EndpointAddress);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/CloseSession", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/CloseSessionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void CloseSession(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetProviderSessionTimeout", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetProviderSessionTimeoutResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        int GetProviderSessionTimeout(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/KeepAlive", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/KeepAliveResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void KeepAlive(string ConsumerID);

        //
        // Device Control
        // 

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/OpenDevice", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/OpenDeviceResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void OpenDevice(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/CloseDevice", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/CloseDeviceResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void CloseDevice(string ConsumerID);

        //
        // Event Polling
        //

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/PollForUPOSEvent", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/PollForUPOSEventResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        POSPrinterEvent PollForUPOSEvent(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetEventResponse", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/SetEventResponseResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        void SetEventResponse(string ConsumerID, POSPrinterEventResponse EventResponse);

        #endregion

        #region Version 1.3

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetEncryptedClaimedConsumerID", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/GetEncryptedClaimedConsumerIDResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/UposException", Name = "UposException")]
        string GetEncryptedClaimedConsumerID();

        #endregion
    }

    #region Version 1.1

    //
    // Common Data Types
    //

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public class DirectIOData
    {
        [DataMember]
        public int Data { get; set; }
        [DataMember]
        public object Obj { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public class UposException
    {
        [DataMember]
        public ErrorCode ErrorCode { get; set; }
        [DataMember]
        public int ErrorCodeExtended { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public class UposVersion
    {
        [DataMember]
        public int Major { get; set; }
        [DataMember]
        public int Minor { get; set; }
        [DataMember]
        public int Build { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public class Statistic
    {
        [DataMember]
        public string Name { get; set; }
        [DataMember]
        public string Value { get; set; }
    }

    [CollectionDataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/", ItemName = "Statistic")]
    public class StatisticList : List<Statistic>
    {
    }

    //
    // Common Enumerations
    //

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum CompareFirmwareResult
    {
        [EnumMember]
        CFV_FIRMWARE_OLDER,
        [EnumMember]
        CFV_FIRMWARE_SAME,
        [EnumMember]
        CFV_FIRMWARE_NEWER,
        [EnumMember]
        CFV_FIRMWARE_DIFFERENT,
        [EnumMember]
        CFV_FIRMWARE_UNKNOWN,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum ControlState
    {
        [EnumMember]
        S_CLOSED,
        [EnumMember]
        S_IDLE,
        [EnumMember]
        S_BUSY,
        [EnumMember]
        S_ERROR,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum ErrorCode
    {
        [EnumMember]
        E_CLOSED,
        [EnumMember]
        E_CLAIMED,
        [EnumMember]
        E_NOTCLAIMED,
        [EnumMember]
        E_NOSERVICE,
        [EnumMember]
        E_DISABLED,
        [EnumMember]
        E_ILLEGAL,
        [EnumMember]
        E_NOHARDWARE,
        [EnumMember]
        E_OFFLINE,
        [EnumMember]
        E_NOEXIST,
        [EnumMember]
        E_EXISTS,
        [EnumMember]
        E_FAILURE,
        [EnumMember]
        E_TIMEOUT,
        [EnumMember]
        E_BUSY,
        [EnumMember]
        E_EXTENDED,
        [EnumMember]
        E_DEPRECATED,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum HealthCheckLevel
    {
        [EnumMember]
        CH_INTERNAL,
        [EnumMember]
        CH_EXTERNAL,
        [EnumMember]
        CH_INTERACTIVE,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum PowerNotification
    {
        [EnumMember]
        PN_DISABLED,
        [EnumMember]
        PN_ENABLED,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum PowerReporting
    {
        [EnumMember]
        PR_NONE,
        [EnumMember]
        PR_STANDARD,
        [EnumMember]
        PR_ADVANCED,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum PowerState
    {
        [EnumMember]
        PS_UNKNOWN,
        [EnumMember]
        PS_ONLINE,
        [EnumMember]
        PS_OFF,
        [EnumMember]
        PS_OFFLINE,
        [EnumMember]
        PS_OFF_OFFLINE,
    }

    /*
    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum StatisticCategories
    {
        [EnumMember]
        All,
        [EnumMember]
        Manufacturer,
        [EnumMember]
        Upos,
    }
    */
    public class StatisticCategories
    {
        public const string All = "";
        public const string Manufacturer = "M_";
        public const string Upos = "U_";
    }

    //
    // Specific Data Types
    //

    [CollectionDataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/", ItemName = "CharacterSet")]
    public class CharacterSetList : List<int>
    {
    }

    [CollectionDataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/", ItemName = "FontTypeface")]
    public class FontTypefaceList : List<string>
    {
    }

    [CollectionDataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/", ItemName = "LineChars")]
    public class LineCharsList : List<int>
    {
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public class Point
    {
        [DataMember]
        public int X { get; set; }
        [DataMember]
        public int Y { get; set; }
    }

    [CollectionDataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/", ItemName = "Position")]
    public class PositionList : List<int>
    {
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public class Rectangle
    {
        [DataMember]
        public int Height { get; set; }
        [DataMember]
        public int Width { get; set; }
        [DataMember]
        public int X { get; set; }
        [DataMember]
        public int Y { get; set; }
    }

    [CollectionDataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/", ItemName = "Rotation")]
    public class RotationList : List<Rotation>
    {
    }

    //
    // Specific Enumerations
    //

    /*
    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum BarCodeSymbology
    {
        [EnumMember]
        Aztec,
        [EnumMember]
        Cca,
        [EnumMember]
        Ccb,
        [EnumMember]
        Ccc,
        [EnumMember]
        Codabar,
        [EnumMember]
        Code128,
        [EnumMember]
        Code128Parsed,
        [EnumMember]
        Code39,
        [EnumMember]
        Code93,
        [EnumMember]
        DataMatrix,
        [EnumMember]
        Ean128,
        [EnumMember]
        Ean13S,
        [EnumMember]
        Ean8S,
        [EnumMember]
        EanJan13,
        [EnumMember]
        EanJan8,
        [EnumMember]
        Gs1DataBar,
        [EnumMember]
        Gs1DataBarExpanded,
        [EnumMember]
        Gs1DataBarExpandedStacked,
        [EnumMember]
        Gs1DataBarStackedOmnidirectional,
        [EnumMember]
        Itf,
        [EnumMember]
        Maxicode,
        [EnumMember]
        MicroPDF417,
        [EnumMember]
        MicroQRCode,
        [EnumMember]
        Ocra,
        [EnumMember]
        Ocrb,
        [EnumMember]
        Other,
        [EnumMember]
        Pdf417,
        [EnumMember]
        QRCode,
        [EnumMember]
        Rss14,
        [EnumMember]
        RssExpanded,
        [EnumMember]
        TF,
        [EnumMember]
        Unknown,
        [EnumMember]
        Upca,
        [EnumMember]
        Upcas,
        [EnumMember]
        Upcd1,
        [EnumMember]
        Upcd2,
        [EnumMember]
        Upcd3,
        [EnumMember]
        Upcd4,
        [EnumMember]
        Upcd5,
        [EnumMember]
        Upce,
        [EnumMember]
        Upces,
    }
    */
    public class BarCodeSymbology
    {
        public const int Unknown = 0;
        public const int PTR_BCS_UPCA = 101;
        public const int PTR_BCS_UPCE = 102;
        public const int PTR_BCS_EAN8 = 103;
        public const int PTR_BCS_JAN8 = 103;
        public const int PTR_BCS_EAN13 = 104;
        public const int PTR_BCS_JAN13 = 104;
        public const int PTR_BCS_TF = 105;
        public const int PTR_BCS_ITF = 106;
        public const int PTR_BCS_Code39 = 108;
        public const int PTR_BCS_Codabar = 107;
        public const int PTR_BCS_Code93 = 109;
        public const int PTR_BCS_Code128 = 110;
        public const int PTR_BCS_UPCA_S = 111;
        public const int PTR_BCS_UPCE_S = 112;
        public const int PTR_BCS_UPCD1 = 113;
        public const int PTR_BCS_UPCD2 = 114;
        public const int PTR_BCS_UPCD3 = 115;
        public const int PTR_BCS_UPCD4 = 116;
        public const int PTR_BCS_UPCD5 = 117;
        public const int PTR_BCS_EAN8_S = 118;
        public const int PTR_BCS_EAN13_S = 119;
        public const int PTR_BCS_EAN128 = 120;
        public const int PTR_BCS_OCRA = 121;
        public const int PTR_BCS_OCRB = 122;
        public const int PTR_BCS_Code128_Parsed = 123;
        public const int PTR_BCS_RSS14 = 131;
        public const int PTR_BCS_RSS_EXPANDED = 132;
        public const int PTR_BCS_GS1DATABAR = 131;
        public const int PTR_BCS_GS1DATABAR_E = 132;
        public const int PTR_BCS_GS1DATABAR_S = 133;
        public const int PTR_BCS_GS1DATABAR_E_S = 134;
        public const int PTR_BCS_CCA = 151;
        public const int PTR_BCS_CCB = 152;
        public const int PTR_BCS_CCC = 153;
        public const int PTR_BCS_PDF417 = 201;
        public const int PTR_BCS_MAXICODE = 202;
        public const int PTR_BCS_DATAMATRIX = 203;
        public const int PTR_BCS_AZTEC = 206;
        public const int PTR_BCS_QRCODE = 204;
        public const int PTR_BCS_UQRCODE = 205;
        public const int PTR_BCS_UPDF417 = 207;
        public const int PTR_BCS_OTHER = 501;
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum BarCodeTextPosition
    {
        [EnumMember]
        PTR_BC_TEXT_NONE,
        [EnumMember]
        PTR_BC_TEXT_ABOVE,
        [EnumMember]
        PTR_BC_TEXT_BELOW,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum BitmapType
    {
        [EnumMember]
        PTR_BMT_BMP,
        [EnumMember]
        PTR_BMT_JPEG,
        [EnumMember]
        PTR_BMT_GIF,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum CharacterSetCapability
    {
        [EnumMember]
        PTR_CCS_ALPHA,
        [EnumMember]
        PTR_CCS_ASCII,
        [EnumMember]
        PTR_CCS_KANA,
        [EnumMember]
        PTR_CCS_KANJI,
        [EnumMember]
        PTR_CCS_UNICODE,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum MapMode
    {
        [EnumMember]
        PTR_MM_DOTS,
        [EnumMember]
        PTR_MM_TWIPS,
        [EnumMember]
        PTR_MM_ENGLISH,
        [EnumMember]
        PTR_MM_METRIC,
    }

    /*
    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum PageModeDescriptors
    {
        [EnumMember]
        Barcode,
        [EnumMember]
        BarcodeRotate,
        [EnumMember]
        Bitmap,
        [EnumMember]
        BitmapRotate,
        [EnumMember]
        None,
        [EnumMember]
        Opaque,
    }
    */
    public class PageModeDescriptors
    {
        public const int None = 0;
        public const int PTR_PM_BITMAP = 1;
        public const int PTR_PM_BARCODE = 2;
        public const int PTR_PM_BM_ROTATE = 4;
        public const int PTR_PM_BC_ROTATE = 8;
        public const int PTR_PM_OPAQUE = 16;
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum PageModePrintControl
    {
        [EnumMember]
        PTR_PM_PAGE_MODE,
        [EnumMember]
        PTR_PM_PRINT_SAVE,
        [EnumMember]
        PTR_PM_NORMAL,
        [EnumMember]
        PTR_PM_CANCEL,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum PageModePrintDirection
    {
        [EnumMember]
        PTR_PD_LEFT_TO_RIGHT,
        [EnumMember]
        PTR_PD_BOTTOM_TO_TOP,
        [EnumMember]
        PTR_PD_RIGHT_TO_LEFT,
        [EnumMember]
        PTR_PD_TOP_TO_BOTTOM,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum PrinterCartridgeNotify
    {
        [EnumMember]
        PTR_CN_DISABLED,
        [EnumMember]
        PTR_CN_ENABLED,
    }

    /*
    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum PrinterCartridgeSensors
    {
        [EnumMember]
        Cleaning,
        [EnumMember]
        Empty,
        [EnumMember]
        NearEnd,
        [EnumMember]
        None,
        [EnumMember]
        Removed,
    }
    */
    public class PrinterCartridgeSensors
    {
        public const int PTR_CART_UNKNOWN = 0;
        public const int PTR_CART_OK = 0;
        public const int PTR_CART_REMOVED = 1;
        public const int PTR_CART_EMPTY = 2;
        public const int PTR_CART_NEAREND = 4;
        public const int PTR_CART_CLEANING = 8;
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum PrinterCartridgeStates
    {
        [EnumMember]
        PTR_CART_UNKNOWN,
        [EnumMember]
        PTR_CART_REMOVED,
        [EnumMember]
        PTR_CART_EMPTY,
        [EnumMember]
        PTR_CART_CLEANING,
        [EnumMember]
        PTR_CART_NEAREND,
        [EnumMember]
        PTR_CART_OK,
    }

    /*    
    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum PrinterColors
    {
        [EnumMember]
        Custom1,
        [EnumMember]
        Custom2,
        [EnumMember]
        Custom3,
        [EnumMember]
        Custom4,
        [EnumMember]
        Custom5,
        [EnumMember]
        Custom6,
        [EnumMember]
        Cyan,
        [EnumMember]
        Full,
        [EnumMember]
        Magenta,
        [EnumMember]
        None,
        [EnumMember]
        Primary,
        [EnumMember]
        Yellow,
    }
    */
    public class PrinterColors
    {
        public const int None = 0;
        public const int PTR_COLOR_PRIMARY = 1;
        public const int PTR_COLOR_CUSTOM1 = 2;
        public const int PTR_COLOR_CUSTOM2 = 4;
        public const int PTR_COLOR_CUSTOM3 = 8;
        public const int PTR_COLOR_CUSTOM4 = 16;
        public const int PTR_COLOR_CUSTOM5 = 32;
        public const int PTR_COLOR_CUSTOM6 = 64;
        public const int PTR_COLOR_CYAN = 256;
        public const int PTR_COLOR_MAGENTA = 512;
        public const int PTR_COLOR_YELLOW = 1024;
        public const int PTR_COLOR_FULL = -2147483648;
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum PrinterErrorLevel
    {
        [EnumMember]
        PTR_EL_NONE,
        [EnumMember]
        PTR_EL_RECOVERABLE,
        [EnumMember]
        PTR_EL_FATAL,
    }

    /*
    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum PrinterLineDirection
    {
        [EnumMember]
        Horizontal,
        [EnumMember]
        None,
        [EnumMember]
        Vertical,
    }
    */
    public class PrinterLineDirection
    {
        public const int None = 0;
        public const int PTR_RL_HORIZONTAL = 1;
        public const int PTR_RL_VERTICAL = 2;
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum PrinterLineStyle
    {
        [EnumMember]
        PTR_LS_SINGLE_SOLID_LINE,
        [EnumMember]
        PTR_LS_DOUBLE_SOLID_LINE,
        [EnumMember]
        PTR_LS_BROKEN_LINE,
        [EnumMember]
        PTR_LS_CHAIN_LINE,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum PrinterLogoLocation
    {
        [EnumMember]
        PTR_L_TOP,
        [EnumMember]
        PTR_L_BOTTOM,
    }

    /*
    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum PrinterMarkFeeds
    {
        [EnumMember]
        CurrentTopOfForm,
        [EnumMember]
        Cutter,
        [EnumMember]
        NextTopOfForm,
        [EnumMember]
        None,
        [EnumMember]
        Takeup,
    }
    */
    public class PrinterMarkFeeds
    {
        public const int None = 0;
        public const int PTR_MF_TO_TAKEUP = 1;
        public const int PTR_MF_TO_CUTTER = 2;
        public const int PTR_MF_TO_CURRENT_TOF = 4;
        public const int PTR_MF_TO_NEXT_TOF = 8;
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum PrinterSide
    {
        [EnumMember]
        PTR_PS_UNKNOWN,
        [EnumMember]
        PTR_PS_SIDE1,
        [EnumMember]
        PTR_PS_SIDE2,
        [EnumMember]
        PTR_PS_OPPOSITE,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum PrinterStation
    {
        [EnumMember]
        PTR_S_RECEIPT,
        [EnumMember]
        PTR_S_SLIP,
        [EnumMember]
        PTR_S_JOURNAL,
        [EnumMember]
        PTR_TWO_RECEIPT_JOURNAL,
        [EnumMember]
        PTR_TWO_SLIP_JOURNAL,
        [EnumMember]
        PTR_TWO_SLIP_RECEIPT,
    }

    /*
    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum PrintRotation
    {
        [EnumMember]
        Barcode,
        [EnumMember]
        Bitmap,
        [EnumMember]
        Left90,
        [EnumMember]
        Normal,
        [EnumMember]
        Right90,
        [EnumMember]
        Rotate180,
    }
    */
    public class PrintRotation
    {
        public const int PTR_RP_NORMAL = 1;
        public const int PTR_RP_RIGHT90 = 257;
        public const int PTR_RP_LEFT90 = 258;
        public const int PTR_RP_ROTATE180 = 259;
        public const int PTR_RP_BARCODE = 4096;
        public const int PTR_RP_BITMAP = 8192;
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum PrinterTransactionControl
    {
        [EnumMember]
        PTR_TP_TRANSACTION,
        [EnumMember]
        PTR_TP_NORMAL,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum Rotation
    {
        [EnumMember]
        PTR_RP_RIGHT90,
        [EnumMember]
        PTR_RP_LEFT90,
        [EnumMember]
        PTR_RP_ROTATE180,
        [EnumMember]
        PTR_RP_BARCODE,
        [EnumMember]
        PTR_RP_BITMAP,
        [EnumMember]
        PTR_RP_NORMAL,
    }

    //
    // Constants
    //

    /*
    public class Constants
    {
        public const int CharacterSetAnsi = 999;
        public const int CharacterSetAscii = 998;
        public const int CharacterSetUnicode = 997;
        public const int ExtendedErrorBadFormat = 207;
        public const int ExtendedErrorCoverOpen = 201;
        public const int ExtendedErrorFirmwareBadFile = 281;
        public const int ExtendedErrorJournalCartridgeEmpty = 209;
        public const int ExtendedErrorJournalCartridgeRemoved = 208;
        public const int ExtendedErrorJournalEmpty = 202;
        public const int ExtendedErrorJournalHeadCleaning = 210;
        public const int ExtendedErrorReceiptCartridgeEmpty = 212;
        public const int ExtendedErrorReceiptCartridgeRemoved = 211;
        public const int ExtendedErrorReceiptEmpty = 203;
        public const int ExtendedErrorReceiptHeadCleaning = 213;
        public const int ExtendedErrorSlipCartridgeEmpty = 215;
        public const int ExtendedErrorSlipCartridgeRemoved = 214;
        public const int ExtendedErrorSlipEmpty = 204;
        public const int ExtendedErrorSlipForm = 205;
        public const int ExtendedErrorSlipHeadCleaning = 216;
        public const int ExtendedErrorStatistics = 280;
        public const int ExtendedErrorStatisticsDependency = 282;
        public const int ExtendedErrorTooBig = 206;
        public const int PrinterBarCodeCenter = -2;
        public const int PrinterBarCodeLeft = -1;
        public const int PrinterBarCodeRight = -3;
        public const int PrinterBitmapAsIs = -11;
        public const int PrinterBitmapCenter = -2;
        public const int PrinterBitmapLeft = -1;
        public const int PrinterBitmapRight = -3;
        public const int PrinterCutPaperFullCut = 100;
        public const string StatisticCommunicationErrorCount = "CommunicationErrorCount";
        public const string StatisticDeviceCategory = "DeviceCategory";
        public const string StatisticFirmwareRevision = "FirmwareRevision";
        public const string StatisticHoursPoweredCount = "HoursPoweredCount";
        public const string StatisticInstallationDate = "InstallationDate";
        public const string StatisticInterface = "Interface";
        public const string StatisticManufactureDate = "ManufactureDate";
        public const string StatisticManufacturerName = "ManufacturerName";
        public const string StatisticMechanicalRevision = "MechanicalRevision";
        public const string StatisticModelName = "ModelName";
        public const string StatisticSerialNumber = "SerialNumber";
        public const string StatisticUnifiedPOSVersion = "UnifiedPOSVersion";
        public const string StatisticBarcodePrintedCount = "BarcodePrintedCount";
        public const string StatisticFailedPaperCutCount = "FailedPaperCutCount";
        public const string StatisticFailedPrintSideChangeCount = "FailedPrintSideChangeCount";
        public const string StatisticFormInsertionCount = "FormInsertionCount";
        public const string StatisticHomeErrorCount = "HomeErrorCount";
        public const string StatisticJournalCharacterPrintedCount = "JournalCharacterPrintedCount";
        public const string StatisticJournalCoverOpenCount = "JournalCoverOpenCount";
        public const string StatisticJournalLinePrintedCount = "JournalLinePrintedCount";
        public const string StatisticMaximumTempReachedCount = "MaximumTempReachedCount";
        public const string StatisticNVRAMWriteCount = "NVRAMWriteCount";
        public const string StatisticPaperCutCount = "PaperCutCount";
        public const string StatisticPrinterFaultCount = "PrinterFaultCount";
        public const string StatisticPrintSideChangeCount = "PrintSideChangeCount";
        public const string StatisticReceiptCharacterPrintedCount = "ReceiptCharacterPrintedCount";
        public const string StatisticReceiptCoverOpenCount = "ReceiptCoverOpenCount";
        public const string StatisticReceiptLineFeedCount = "ReceiptLineFeedCount";
        public const string StatisticReceiptLinePrintedCount = "ReceiptLinePrintedCount";
        public const string StatisticSlipCharacterPrintedCount = "SlipCharacterPrintedCount";
        public const string StatisticSlipCoverOpenCount = "SlipCoverOpenCount";
        public const string StatisticSlipLineFeedCount = "SlipLineFeedCount";
        public const string StatisticSlipLinePrintedCount = "SlipLinePrintedCount";
        public const string StatisticStampFiredCount = "StampFiredCount";
        public const int WaitForever = -1;
    }
    */

    public class CharacterSet
    {
        public const int PTR_CS_UNICODE = 997;
        public const int PTR_CS_ASCII = 998;
        public const int PTR_CS_ANSI = 999;
    }

    public class ExtendedError
    {
        public const int EPTR_COVER_OPEN = 201;
        public const int EPTR_JRN_EMPTY = 202;
        public const int EPTR_REC_EMPTY = 203;
        public const int EPTR_SLP_EMPTY = 204;
        public const int EPTR_SLP_FORM = 205;
        public const int EPTR_TOOBIG = 206;
        public const int EPTR_BADFORMAT = 207;
        public const int EPTR_JRN_CARTRIDGE_REMOVED = 208;
        public const int EPTR_JRN_CARTRIDGE_EMPTY = 209;
        public const int EPTR_JRN_HEAD_CLEANING = 210;
        public const int EPTR_REC_CARTRIDGE_REMOVED = 211;
        public const int EPTR_REC_CARTRIDGE_EMPTY = 212;
        public const int EPTR_REC_HEAD_CLEANING = 213;
        public const int EPTR_SLP_CARTRIDGE_REMOVED = 214;
        public const int EPTR_SLP_CARTRIDGE_EMPTY = 215;
        public const int EPTR_SLP_HEAD_CLEANING = 216;
        public const int ESTATS_ERROR = 280;
        public const int EFIRMWARE_BAD_FILE = 281;
        public const int ESTATS_DEPENDENCY = 282;
    }

    public class PrinterBarCode
    {
        public const int PTR_BC_LEFT = -1;
        public const int PTR_BC_CENTER = -2;
        public const int PTR_BC_RIGHT = -3;
    }

    public class PrinterBitmap
    {
        public const int PTR_BM_LEFT = -1;
        public const int PTR_BM_CENTER = -2;
        public const int PTR_BM_RIGHT = -3;
        public const int PTR_BM_ASIS = -11;
    }

    public class PrinterCutPaper
    {
        public const int PTR_CP_FULLCUT = 100;
    }

    public class StatisticProperties
    {
        public const string CommunicationErrorCount = "CommunicationErrorCount";
        public const string DeviceCategory = "DeviceCategory";
        public const string FirmwareRevision = "FirmwareRevision";
        public const string HoursPoweredCount = "HoursPoweredCount";
        public const string InstallationDate = "InstallationDate";
        public const string Interface = "Interface";
        public const string ManufactureDate = "ManufactureDate";
        public const string ManufacturerName = "ManufacturerName";
        public const string MechanicalRevision = "MechanicalRevision";
        public const string ModelName = "ModelName";
        public const string SerialNumber = "SerialNumber";
        public const string UnifiedPOSVersion = "UnifiedPOSVersion";
        public const string BarcodePrintedCount = "BarcodePrintedCount";
        public const string FailedPaperCutCount = "FailedPaperCutCount";
        public const string FailedPrintSideChangeCount = "FailedPrintSideChangeCount";
        public const string FormInsertionCount = "FormInsertionCount";
        public const string HomeErrorCount = "HomeErrorCount";
        public const string JournalCharacterPrintedCount = "JournalCharacterPrintedCount";
        public const string JournalCoverOpenCount = "JournalCoverOpenCount";
        public const string JournalLinePrintedCount = "JournalLinePrintedCount";
        public const string MaximumTempReachedCount = "MaximumTempReachedCount";
        public const string NVRAMWriteCount = "NVRAMWriteCount";
        public const string PaperCutCount = "PaperCutCount";
        public const string PrinterFaultCount = "PrinterFaultCount";
        public const string PrintSideChangeCount = "PrintSideChangeCount";
        public const string ReceiptCharacterPrintedCount = "ReceiptCharacterPrintedCount";
        public const string ReceiptCoverOpenCount = "ReceiptCoverOpenCount";
        public const string ReceiptLineFeedCount = "ReceiptLineFeedCount";
        public const string ReceiptLinePrintedCount = "ReceiptLinePrintedCount";
        public const string SlipCharacterPrintedCount = "SlipCharacterPrintedCount";
        public const string SlipCoverOpenCount = "SlipCoverOpenCount";
        public const string SlipLineFeedCount = "SlipLineFeedCount";
        public const string SlipLinePrintedCount = "SlipLinePrintedCount";
        public const string StampFiredCount = "StampFiredCount";
    }

    public class Wait
    {
        public const int FOREVER = -1;
    }

    #endregion

    #region Version 1.2

    //
    // Event Polling
    //

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public class POSPrinterEvent
    {
        //[DataMember]
        //public DataEvent DataEvent { get; set; }
        [DataMember]
        public DirectIOEvent DirectIOEvent { get; set; }
        [DataMember]
        public ErrorEvent ErrorEvent { get; set; }
        [DataMember]
        public OutputCompleteEvent OutputCompleteEvent { get; set; }
        [DataMember]
        public StatusUpdateEvent StatusUpdateEvent { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public class POSPrinterEventResponse
    {
        //[DataMember]
        //public DataEventResponse DataEventResponse { get; set; }
        [DataMember]
        public DirectIOEventResponse DirectIOEventResponse { get; set; }
        [DataMember]
        public ErrorEventResponse ErrorEventResponse { get; set; }
        [DataMember]
        public OutputCompleteEventResponse OutputCompleteEventResponse { get; set; }
        [DataMember]
        public StatusUpdateEventResponse StatusUpdateEventResponse { get; set; }
    }
    /*
    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public class DataEvent
    {
        [DataMember]
        public string Source { get; set; }
        [DataMember]
        public int EventID { get; set; }
        [DataMember]
        public DateTime TimeStamp { get; set; }
        [DataMember]
        public int Status { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public class DataEventResponse
    {
        [DataMember]
        public int EventID { get; set; }
    }
    */
    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public class DirectIOEvent
    {
        [DataMember]
        public string Source { get; set; }
        [DataMember]
        public int EventID { get; set; }
        [DataMember]
        public DateTime TimeStamp { get; set; }
        [DataMember]
        public int EventNumber { get; set; }
        [DataMember]
        public int Data { get; set; }
        [DataMember]
        public object Obj { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public class DirectIOEventResponse
    {
        [DataMember]
        public int EventID { get; set; }
        [DataMember]
        public DirectIOData DirectIOData { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public class ErrorEvent
    {
        [DataMember]
        public string Source { get; set; }
        [DataMember]
        public int EventID { get; set; }
        [DataMember]
        public DateTime TimeStamp { get; set; }
        [DataMember]
        public ErrorCode ErrorCode { get; set; }
        [DataMember]
        public int ErrorCodeExtended { get; set; }
        [DataMember]
        public ErrorLocus ErrorLocus { get; set; }
        [DataMember]
        public ErrorResponse ErrorResponse { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public class ErrorEventResponse
    {
        [DataMember]
        public int EventID { get; set; }
        [DataMember]
        public ErrorResponse ErrorResponse { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public class OutputCompleteEvent
    {
        [DataMember]
        public string Source { get; set; }
        [DataMember]
        public int EventID { get; set; }
        [DataMember]
        public DateTime TimeStamp { get; set; }
        [DataMember]
        public int OutputID { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public class OutputCompleteEventResponse
    {
        [DataMember]
        public int EventID { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public class StatusUpdateEvent
    {
        [DataMember]
        public string Source { get; set; }
        [DataMember]
        public int EventID { get; set; }
        [DataMember]
        public DateTime TimeStamp { get; set; }
        [DataMember]
        public int Status { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public class StatusUpdateEventResponse
    {
        [DataMember]
        public int EventID { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum ErrorLocus
    {
        [EnumMember]
        EL_INPUT,
        [EnumMember]
        EL_INPUT_DATA,
        [EnumMember]
        EL_OUTPUT,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/POSPrinter/")]
    public enum ErrorResponse
    {
        [EnumMember]
        ER_CLEAR,
        [EnumMember]
        ER_CONTINUEINPUT,
        [EnumMember]
        ER_RETRY,
    }

    #endregion
}
