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

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

        //
        // Common Properties
        //

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        //
        // Specific Properties
        //

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/GetCapBlink", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/GetCapBlinkResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/UposException", Name = "UposException")]
        DisplayBlink GetCapBlink(string ConsumerID);

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

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

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

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

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

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

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

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

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

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

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/GetCapReadBack", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/GetCapReadBackResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/UposException", Name = "UposException")]
        DisplayReadBack GetCapReadBack(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/GetCapReverse", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/GetCapReverseResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/UposException", Name = "UposException")]
        DisplayReverse GetCapReverse(string ConsumerID);

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

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

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

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/SetBlinkRate", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/SetBlinkRateResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/UposException", Name = "UposException")]
        void SetBlinkRate(string ConsumerID, int BlinkRate);

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

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

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

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

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

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/SetCurrentWindow", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/SetCurrentWindowResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/UposException", Name = "UposException")]
        void SetCurrentWindow(string ConsumerID, int CurrentWindow);

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

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/SetCursorColumn", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/SetCursorColumnResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/UposException", Name = "UposException")]
        void SetCursorColumn(string ConsumerID, int CursorColumn);

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

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/SetCursorRow", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/SetCursorRowResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/UposException", Name = "UposException")]
        void SetCursorRow(string ConsumerID, int CursorRow);

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

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/SetCursorType", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/SetCursorTypeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/UposException", Name = "UposException")]
        void SetCursorType(string ConsumerID, int CursorType);

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

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/SetCursorUpdate", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/SetCursorUpdateResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/UposException", Name = "UposException")]
        void SetCursorUpdate(string ConsumerID, bool CursorUpdate);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/GetCustomGlyphList", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/GetCustomGlyphListResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/UposException", Name = "UposException")]
        CustomGlyphList GetCustomGlyphList(string ConsumerID);

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

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/SetDeviceBrightness", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/SetDeviceBrightnessResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/UposException", Name = "UposException")]
        void SetDeviceBrightness(string ConsumerID, int DeviceBrightness);

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

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

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

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

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

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

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

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/SetInterCharacterWait", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/SetInterCharacterWaitResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/UposException", Name = "UposException")]
        void SetInterCharacterWait(string ConsumerID, int InterCharacterWait);

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

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

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/GetMarqueeFormat", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/GetMarqueeFormatResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/UposException", Name = "UposException")]
        DisplayMarqueeFormat GetMarqueeFormat(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/SetMarqueeFormat", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/SetMarqueeFormatResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/UposException", Name = "UposException")]
        void SetMarqueeFormat(string ConsumerID, DisplayMarqueeFormat MarqueeFormat);

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

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/SetMarqueeRepeatWait", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/SetMarqueeRepeatWaitResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/UposException", Name = "UposException")]
        void SetMarqueeRepeatWait(string ConsumerID, int MarqueeRepeatWait);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/GetMarqueeType", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/GetMarqueeTypeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/UposException", Name = "UposException")]
        DisplayMarqueeType GetMarqueeType(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/SetMarqueeType", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/SetMarqueeTypeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/UposException", Name = "UposException")]
        void SetMarqueeType(string ConsumerID, DisplayMarqueeType MarqueeType);

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

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/SetMarqueeUnitWait", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/SetMarqueeUnitWaitResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/UposException", Name = "UposException")]
        void SetMarqueeUnitWait(string ConsumerID, int MarqueeUnitWait);

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

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

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

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

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/SetScreenMode", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/SetScreenModeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/UposException", Name = "UposException")]
        void SetScreenMode(string ConsumerID, int ScreenMode);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/GetScreenModeList", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/GetScreenModeListResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/UposException", Name = "UposException")]
        DisplayScreenModeList GetScreenModeList(string ConsumerID);

        //
        // Common Methods
        //

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        //
        // Specific Methods
        //

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

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/DisplayText", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/DisplayTextResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/UposException", Name = "UposException")]
        void DisplayText(string ConsumerID, string Data, DisplayTextMode Attribute);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/DisplayTextAt", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/DisplayTextAtResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/UposException", Name = "UposException")]
        void DisplayTextAt(string ConsumerID, int Row, int Column, string Data, DisplayTextMode Attribute);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/ScrollText", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/ScrollTextResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/UposException", Name = "UposException")]
        void ScrollText(string ConsumerID, DisplayScrollText Direction, int Units);

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

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/SetDescriptor", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/SetDescriptorResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/UposException", Name = "UposException")]
        void SetDescriptor(string ConsumerID, int Descriptor, DisplaySetDescriptor Attribute);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/CreateWindow", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/CreateWindowResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/UposException", Name = "UposException")]
        void CreateWindow(string ConsumerID, int ViewportRow, int ViewportColumn, int ViewportHeight, int ViewportWidth, int WindowHeight, int WindowWidth);

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

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/RefreshWindow", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/RefreshWindowResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/UposException", Name = "UposException")]
        void RefreshWindow(string ConsumerID, int Window);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/DefineGlyph", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/DefineGlyphResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/UposException", Name = "UposException")]
        void DefineGlyph(string ConsumerID, int GlyphCode, byte[] Glyph);

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

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/DisplayBitmap", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/DisplayBitmapResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/UposException", Name = "UposException")]
        void DisplayBitmap(string ConsumerID, string FileName, int Width, int AlignmentX, int AlignmentY);

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

        #endregion

        #region Version 1.2

        //
        // Session Management
        //

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

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

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

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

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

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

        //
        // Device Control
        // 

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

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

        //
        // Event Polling
        //

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

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

        #endregion

        #region Version 1.3

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

        #endregion
    }

    #region Version 1.1

    //
    // Common Data Types
    //

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

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

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/")]
    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/LineDisplay/")]
    public class Statistic
    {
        [DataMember]
        public string Name { get; set; }
        [DataMember]
        public string Value { get; set; }
    }

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

    //
    // Common Enumerations
    //

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/")]
    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/LineDisplay/")]
    public enum ControlState
    {
        [EnumMember]
        S_CLOSED,
        [EnumMember]
        S_IDLE,
        [EnumMember]
        S_BUSY,
        [EnumMember]
        S_ERROR,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/")]
    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/LineDisplay/")]
    public enum HealthCheckLevel
    {
        [EnumMember]
        CH_INTERNAL,
        [EnumMember]
        CH_EXTERNAL,
        [EnumMember]
        CH_INTERACTIVE,
    }

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

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

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/")]
    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/LineDisplay/")]
    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/LineDisplay/", ItemName = "CharacterSet")]
    public class CharacterSetList : List<int>
    {
    }

    [CollectionDataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/", ItemName = "CustomGlyph")]
    public class CustomGlyphList : List<RangeOfCharacters>
    {
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/")]
    public class DisplayScreenMode
    {
        [DataMember]
        public int Columns { get; set; }
        [DataMember]
        public int Rows { get; set; }
    }

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

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/")]
    public class RangeOfCharacters
    {
        [DataMember]
        public int From { get; set; }
        [DataMember]
        public int To { get; set; }
    }

    //
    // Specific Enumerations
    //

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/")]
    public enum CharacterSetCapability
    {
        [EnumMember]
        DISP_CCS_NUMERIC,
        [EnumMember]
        DISP_CCS_ALPHA,
        [EnumMember]
        DISP_CCS_ASCII,
        [EnumMember]
        DISP_CCS_KANA,
        [EnumMember]
        DISP_CCS_KANJI,
        [EnumMember]
        DISP_CCS_UNICODE,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/")]
    public enum DisplayBlink
    {
        [EnumMember]
        DISP_CB_NOBLINK,
        [EnumMember]
        DISP_CB_BLINKALL,
        [EnumMember]
        DISP_CB_BLINKEACH,
    }

    /*
    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/")]
    public enum DisplayCursors
    {
        [EnumMember]
        Blink,
        [EnumMember]
        Block,
        [EnumMember]
        Fixed,
        [EnumMember]
        HalfBlock,
        [EnumMember]
        None,
        [EnumMember]
        Other,
        [EnumMember]
        Reverse,
        [EnumMember]
        Underline,
    }
    */
    public class DisplayCursors
    {
        public const int DISP_CCT_NONE = 0;
        public const int DISP_CCT_FIXED = 1;
        public const int DISP_CCT_BLOCK = 2;
        public const int DISP_CCT_HALFBLOCK = 4;
        public const int DISP_CCT_UNDERLINE = 8;
        public const int DISP_CCT_REVERSE = 16;
        public const int DISP_CCT_OTHER = 32;
        public const int DISP_CCT_BLINK = 64;
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/")]
    public enum DisplayMarqueeFormat
    {
        [EnumMember]
        DISP_MF_WALK,
        [EnumMember]
        DISP_MF_PLACE,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/")]
    public enum DisplayMarqueeType
    {
        [EnumMember]
        DISP_MT_NONE,
        [EnumMember]
        DISP_MT_INIT,
        [EnumMember]
        DISP_MT_UP,
        [EnumMember]
        DISP_MT_DOWN,
        [EnumMember]
        DISP_MT_LEFT,
        [EnumMember]
        DISP_MT_RIGHT,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/")]
    public enum DisplayReadBack
    {
        [EnumMember]
        DISP_CRB_NONE,
        [EnumMember]
        DISP_CRB_SINGLE,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/")]
    public enum DisplayReverse
    {
        [EnumMember]
        DISP_CR_NONE,
        [EnumMember]
        DISP_CR_REVERSEALL,
        [EnumMember]
        DISP_CR_REVERSEARCH,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/")]
    public enum DisplayScrollText
    {
        [EnumMember]
        DISP_ST_UP,
        [EnumMember]
        DISP_ST_DOWN,
        [EnumMember]
        DISP_ST_LEFT,
        [EnumMember]
        DISP_ST_RIGHT,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/")]
    public enum DisplaySetDescriptor
    {
        [EnumMember]
        DISP_SD_ON,
        [EnumMember]
        DISP_SD_BLINK,
        [EnumMember]
        DISP_SD_OFF,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/")]
    public enum DisplayTextMode
    {
        [EnumMember]
        DISP_DT_NORMAL,
        [EnumMember]
        DISP_DT_BLINK,
        [EnumMember]
        DISP_DT_REVERSE,
        [EnumMember]
        DISP_DT_BLINK_REVERSE,
    }

    //
    // Constants
    //

    /*
    public class Constants
    {
        public const int CharacterSetAnsi = 999;
        public const int CharacterSetAscii = 998;
        public const int CharacterSetUnicode = 997;
        public const int DisplayBitmapAsIs = -11;
        public const int DisplayBitmapBottom = -3;
        public const int DisplayBitmapCenter = -2;
        public const int DisplayBitmapLeft = -1;
        public const int DisplayBitmapRight = -3;
        public const int DisplayBitmapTop = -1;
        public const int ExtendedErrorBadFormat = 202;
        public const int ExtendedErrorFirmwareBadFile = 281;
        public const int ExtendedErrorStatistics = 280;
        public const int ExtendedErrorStatisticsDependency = 282;
        public const int ExtendedErrorTooBig = 201;
        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 StatisticOnlineTransitionCount = "OnlineTransitionCount";
        public const string StatisticSerialNumber = "SerialNumber";
        public const string StatisticUnifiedPOSVersion = "UnifiedPOSVersion";
        public const int WaitForever = -1;
    }
    */

    public class CharacterSet
    {
        public const int DISP_CS_ANSI = 999;
        public const int DISP_CS_ASCII = 998;
        public const int DISP_CS_UNICODE = 997;
    }

    public class DisplayBitmap
    {
        public const int DISP_BM_TOP = -1;
        public const int DISP_BM_LEFT = -1;
        public const int DISP_BM_CENTER = -2;
        public const int DISP_BM_BOTTOM = -3;
        public const int DISP_BM_RIGHT = -3;
        public const int DISP_BM_ASIS = -11;
    }

    public class ExtendedError
    {
        public const int EDISP_TOOBIG = 201;
        public const int EDISP_BADFORMAT = 202;
        public const int ESTATS_ERROR = 280;
        public const int EFIRMWARE_BAD_FILE = 281;
        public const int ESTATS_DEPENDENCY = 282;
    }

    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 OnlineTransitionCount = "OnlineTransitionCount";
        public const string SerialNumber = "SerialNumber";
        public const string UnifiedPOSVersion = "UnifiedPOSVersion";
    }

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

    #endregion

    #region Version 1.2

    //
    // Event Polling
    //

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/")]
    public class LineDisplayEvent
    {
        //[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/LineDisplay/")]
    public class LineDisplayEventResponse
    {
        //[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/LineDisplay/")]
    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/LineDisplay/")]
    public class DataEventResponse
    {
        [DataMember]
        public int EventID { get; set; }
    }
    */
    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/")]
    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/LineDisplay/")]
    public class DirectIOEventResponse
    {
        [DataMember]
        public int EventID { get; set; }
        [DataMember]
        public DirectIOData DirectIOData { get; set; }
    }
    /*
    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/")]
    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/LineDisplay/")]
    public class ErrorEventResponse
    {
        [DataMember]
        public int EventID { get; set; }
        [DataMember]
        public ErrorResponse ErrorResponse { get; set; }
    }

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

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/")]
    public class OutputCompleteEventResponse
    {
        [DataMember]
        public int EventID { get; set; }
    }
    */
    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/")]
    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/LineDisplay/")]
    public class StatusUpdateEventResponse
    {
        [DataMember]
        public int EventID { get; set; }
    }
    /*
    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/LineDisplay/")]
    public enum ErrorLocus
    {
        [EnumMember]
        EL_INPUT,
        [EnumMember]
        EL_INPUT_DATA,
        [EnumMember]
        EL_OUTPUT,
    }

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