Extensions for Financial Services (XFS) interface specification Release 3.50 - Part 9: Text Terminal Unit Device Class Interface - Programmer's Reference

This specification describes the functionality of the services provided by text terminal unit (TTU) services under XFS, by defining the service-specific commands that can be issued, using the WFSGetInfo, WFSAsyncGetInfo, WFSExecute and WFSAsyncExecute functions.
This section describes the functions provided by a generic Text Terminal Unit (TTU) service. A Text Terminal Unit is a text i/o device, which applies both to ATM operator panels and to displays incorporated in devices such as PIN pads and printers. This service allows for the following categories of functions:
•   Forms oriented input and output
•   Direct display output
•   Keyboard input
•   LED settings and control
All position indexes are zero based, where column zero, row zero is the top-leftmost position.

Specifikacija vmesnika razširitev za finančne storitve (XFS), izdaja 3.50 - 9. del: Vmesnik razreda naprave tekstovne terminalne enote - Referenca za programerje

Ta specifikacija opisuje funkcionalnost storitev, ki jih zagotavljajo tekstovne terminalne enote (TTU) v skladu z XFS, z določanjem ukazov, značilnih za določeno storitev, ki jih je mogoče izdati s funkcijami WFSGetInfo, WFSAsyncGetInfo, WFSExecute in WFSAsyncExecute.
V tem razdelku so opisane funkcije, ki jih zagotavlja splošna storitev tekstovne terminalne enote. Tekstovna terminalna enota je tekstovna vhodno/izhodna naprava, ki se uporablja tako za upravljalne plošče bankomatov kot prikazovalnike v napravah, kot so tipkovnice PIN in tiskalniki. Ta storitev omogoča delovanje naslednjih kategorij funkcij:
•   vnos in izpis na podlagi oblik;
•   izpis neposredno na prikazovalniku;
•   vnos s tipkovnico;
•   nastavitve in upravljanje osvetlitve LED.
Vsi indeksi položajev temeljijo na ničli, pri čemer je stolpec nič – vrstica nič položaj skrajno levo zgoraj.

General Information

Status
Published
Publication Date
20-Dec-2022
Current Stage
6060 - Definitive text made available (DAV) - Publishing
Start Date
21-Dec-2022
Completion Date
21-Dec-2022
Standardization document
CWA 16926-9:2023
English language
59 pages
sale 10% off
Preview
sale 10% off
Preview
e-Library read for
1 day
Technical report
TP CWA 16926-9:2023
English language
59 pages
sale 10% off
Preview
sale 10% off
Preview
e-Library read for
1 day

Standards Content (Sample)


SLOVENSKI STANDARD
SIST CWA 16926-9:2023
01-marec-2023
Specifikacija vmesnika razširitev za finančne storitve (XFS), izdaja 3.50 - 9. del:
Vmesnik razreda naprave tekstovne terminalne enote - Referenca za programerje
Extensions for Financial Services (XFS) interface specification Release 3.50 - Part 9:
Text Terminal Unit Device Class Interface - Programmer's Reference
Ta slovenski standard je istoveten z: CWA 16926-9:2022
ICS:
35.200 Vmesniška in povezovalna Interface and interconnection
oprema equipment
35.240.15 Identifikacijske kartice. Čipne Identification cards. Chip
kartice. Biometrija cards. Biometrics
35.240.40 Uporabniške rešitve IT v IT applications in banking
bančništvu
SIST CWA 16926-9:2023 en,fr,de
2003-01.Slovenski inštitut za standardizacijo. Razmnoževanje celote ali delov tega standarda ni dovoljeno.

SIST CWA 16926-9:2023
SIST CWA 16926-9:2023
CEN
CWA 16926-9
WORKSHOP
December 2022
AGREEMENT
ICS 35.200; 35.240.15; 35.240.40
English version
Extensions for Financial Services (XFS) interface
specification Release 3.50 - Part 9: Text Terminal Unit
Device Class Interface - Programmer's Reference
This CEN Workshop Agreement has been drafted and approved by a Workshop of representatives of interested parties, the
constitution of which is indicated in the foreword of this Workshop Agreement.

The formal process followed by the Workshop in the development of this Workshop Agreement has been endorsed by the
National Members of CEN but neither the National Members of CEN nor the CEN-CENELEC Management Centre can be held
accountable for the technical content of this CEN Workshop Agreement or possible conflicts with standards or legislation.

This CEN Workshop Agreement can in no way be held as being an official standard developed by CEN and its Members.

This CEN Workshop Agreement is publicly available as a reference document from the CEN Members National Standard Bodies.

CEN members are the national standards bodies of Austria, Belgium, Bulgaria, Croatia, Cyprus, Czech Republic, Denmark, Estonia, Finland, France,
Germany, Greece, Hungary, Iceland, Ireland, Italy, Latvia, Lithuania, Luxembourg, Malta, Netherlands, Norway, Poland, Portugal, Republic of North
Macedonia, Romania, Serbia, Slovakia, Slovenia, Spain, Sweden, Switzerland, Türkiye and United Kingdom.

EUROPEAN COMMITTEE FOR STANDARDIZATION
COMITÉ EUROPÉEN DE NORMALISATION

EUROPÄISCHES KOMITEE FÜR NORMUNG

CEN-CENELEC Management Centre: Rue de la Science 23, B-1040 Brussels
© 2022 CEN All rights of exploitation in any form and by any means reserved worldwide for CEN national Members.

Ref. No.:CWA 16926-9:2022 E
SIST CWA 16926-9:2023
Table of Contents
European Foreword . 4
1. Introduction . 8
1.1 Background to Release 3.50 . 8
1.2 XFS Service-Specific Programming . 8
2. Text Terminal Units . 10
3. References . 11
4. Info Commands . 12
4.1 WFS_INF_TTU_STATUS . 12
4.2 WFS_INF_TTU_CAPABILITIES. 15
4.3 WFS_INF_TTU_FORM_LIST . 18
4.4 WFS_INF_TTU_QUERY_FORM . 19
4.5 WFS_INF_TTU_QUERY_FIELD . 20
4.6 WFS_INF_TTU_KEY_DETAIL . 22
5. Execute Commands . 24
5.1 WFS_CMD_TTU_BEEP . 24
5.2 WFS_CMD_TTU_CLEARSCREEN . 25
5.3 WFS_CMD_TTU_DISPLIGHT . 26
5.4 WFS_CMD_TTU_SET_LED . 27
5.5 WFS_CMD_TTU_SET_RESOLUTION . 28
5.6 WFS_CMD_TTU_WRITE_FORM . 29
5.7 WFS_CMD_TTU_READ_FORM . 30
5.8 WFS_CMD_TTU_WRITE . 32
5.9 WFS_CMD_TTU_READ . 34
5.10 WFS_CMD_TTU_RESET . 37
5.11 WFS_CMD_TTU_DEFINE_KEYS . 38
5.12 WFS_CMD_TTU_POWER_SAVE_CONTROL . 40
5.13 WFS_CMD_TTU_SET_LED_EX . 41
5.14 WFS_CMD_TTU_SYNCHRONIZE_COMMAND . 42
6. Events . 43
6.1 WFS_EXEE_TTU_FIELDERROR . 43
6.2 WFS_EXEE_TTU_FIELDWARNING . 44
6.3 WFS_EXEE_TTU_KEY . 45
6.4 WFS_SRVE_TTU_DEVICEPOSITION . 46
6.5 WFS_SRVE_TTU_POWER_SAVE_CHANGE . 47
7. Form and Field Definitions . 48
SIST CWA 16926-9:2023
7.1 Definition Syntax . 48
7.2 XFS form/media definition files in multi-vendor environments . 49
7.3 Form Definition . 50
7.4 Field Definition . 51
8. C - Header file . 53
SIST CWA 16926-9:2023
European Foreword
This CEN Workshop Agreement has been developed in accordance with the CEN-CENELEC Guide 29
“CEN/CENELEC Workshop Agreements – The way to rapid consensus” and with the relevant provisions of
CEN/CENELEC Internal Regulations – Part 2. It was approved by a Workshop of representatives of interested
parties on 2022-11-08, the constitution of which was supported by CEN following several public calls for
participation, the first of which was made on 1998-06-24. However, this CEN Workshop Agreement does not
necessarily include all relevant stakeholders.

The final text of this CEN Workshop Agreement was provided to CEN for publication on 2022-11-18.

The following organizations and individuals developed and approved this CEN Workshop Agreement:

• AURIGA SPA
• CIMA SPA
• DIEBOLD NIXDORF SYSTEMS GMBH
• FIS BANKING SOLUTIONS UK LTD (OTS)
• FUJITSU TECHNOLOGY SOLUTIONS
• GLORY LTD
• GRG BANKING EQUIPMENT HK CO LTD
• HITACHI CHANNEL SOLUTIONS CORP
• HYOSUNG TNS INC
• JIANGSU GUOGUANG ELECTRONIC INFORMATION TECHNOLOGY
• KAL
• KEBA HANDOVER AUTOMATION GMBH
• NCR FSG
• NEXUS SOFTWARE
• OBERTHUR CASH PROTECTION
• OKI ELECTRIC INDUSTRY SHENZHEN
• SALZBURGER BANKEN SOFTWARE
• SECURE INNOVATION
• SIGMA SPA
It is possible that some elements of this CEN/CWA may be subject to patent rights. The CEN-CENELEC policy on
patent rights is set out in CEN-CENELEC Guide 8 “Guidelines for Implementation of the Common IPR Policy on
Patents (and other statutory intellectual property rights based on inventions)”. CEN shall not be held responsible for
identifying any or all such patent rights.

The Workshop participants have made every effort to ensure the reliability and accuracy of the technical and non-
technical content of CWA 16926-9, but this does not guarantee, either explicitly or implicitly, its correctness. Users
of CWA 16926-9 should be aware that neither the Workshop participants, nor CEN can be held liable for damages
SIST CWA 16926-9:2023
or losses of any kind whatsoever which may arise from its application. Users of CWA 16926-9 do so on their own
responsibility and at their own risk.
The CWA is published as a multi-part document, consisting of:
Part 1: Application Programming Interface (API) - Service Provider Interface (SPI) - Programmer's Reference
Part 2: Service Classes Definition - Programmer's Reference
Part 3: Printer and Scanning Device Class Interface - Programmer's Reference
Part 4: Identification Card Device Class Interface - Programmer's Reference
Part 5: Cash Dispenser Device Class Interface - Programmer's Reference
Part 6: PIN Keypad Device Class Interface - Programmer's Reference
Part 7: Check Reader/Scanner Device Class Interface - Programmer's Reference
Part 8: Depository Device Class Interface - Programmer's Reference
Part 9: Text Terminal Unit Device Class Interface - Programmer's Reference
Part 10: Sensors and Indicators Unit Device Class Interface - Programmer's Reference
Part 11: Vendor Dependent Mode Device Class Interface - Programmer's Reference
Part 12: Camera Device Class Interface - Programmer's Reference
Part 13: Alarm Device Class Interface - Programmer's Reference
Part 14: Card Embossing Unit Device Class Interface - Programmer's Reference
Part 15: Cash-In Module Device Class Interface - Programmer's Reference
Part 16: Card Dispenser Device Class Interface - Programmer's Reference
Part 17: Barcode Reader Device Class Interface - Programmer's Reference
Part 18: Item Processing Module Device Class Interface - Programmer's Reference
Part 19: Biometrics Device Class Interface - Programmer's Reference
Parts 20 - 28: Reserved for future use.
Parts 29 through 47 constitute an optional addendum to this CWA. They define the integration between the SNMP
standard and the set of status and statistical information exported by the Service Providers.
Part 29: XFS MIB Architecture and SNMP Extensions - Programmer’s Reference
Part 30: XFS MIB Device Specific Definitions - Printer Device Class
Part 31: XFS MIB Device Specific Definitions - Identification Card Device Class
Part 32: XFS MIB Device Specific Definitions - Cash Dispenser Device Class
Part 33: XFS MIB Device Specific Definitions - PIN Keypad Device Class
Part 34: XFS MIB Device Specific Definitions - Check Reader/Scanner Device Class
Part 35: XFS MIB Device Specific Definitions - Depository Device Class
Part 36: XFS MIB Device Specific Definitions - Text Terminal Unit Device Class
Part 37: XFS MIB Device Specific Definitions - Sensors and Indicators Unit Device Class
Part 38: XFS MIB Device Specific Definitions - Camera Device Class
Part 39: XFS MIB Device Specific Definitions - Alarm Device Class
Part 40: XFS MIB Device Specific Definitions - Card Embossing Unit Class
Part 41: XFS MIB Device Specific Definitions - Cash-In Module Device Class
Part 42: Reserved for future use.
Part 43: XFS MIB Device Specific Definitions - Vendor Dependent Mode Device Class
Part 44: XFS MIB Application Management
SIST CWA 16926-9:2023
Part 45: XFS MIB Device Specific Definitions - Card Dispenser Device Class
Part 46: XFS MIB Device Specific Definitions - Barcode Reader Device Class
Part 47: XFS MIB Device Specific Definitions - Item Processing Module Device Class
Part 48: XFS MIB Device Specific Definitions - Biometrics Device Class
Parts 49 - 60 are reserved for future use.
Part 61: Application Programming Interface (API) - Migration from Version 3.40 (CWA 16926:2020) to Version
3.50 (this CWA) - Service Provider Interface (SPI) - Programmer's Reference
Part 62: Printer and Scanning Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to Version
3.50 (this CWA) - Programmer's Reference
Part 63: Identification Card Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to Version
3.50 (this CWA) - Programmer's Reference
Part 64: Cash Dispenser Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to Version 3.50
(this CWA) - Programmer's Reference
Part 65: PIN Keypad Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to Version 3.50
(this CWA) - Programmer's Reference
Part 66: Check Reader/Scanner Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to
Version 3.50 (this CWA) - Programmer's Reference
Part 67: Depository Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to Version 3.50 (this
CWA) - Programmer's Reference
Part 68: Text Terminal Unit Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to Version
3.50 (this CWA) - Programmer's Reference
Part 69: Sensors and Indicators Unit Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to
Version 3.50 (this CWA) - Programmer's Reference
Part 70: Vendor Dependent Mode Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to
Version 3.50 (this CWA) - Programmer's Reference
Part 71: Camera Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to Version 3.50 (this
CWA) - Programmer's Reference
Part 72: Alarm Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to Version 3.50 (this
CWA) - Programmer's Reference
Part 73: Card Embossing Unit Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to Version
3.50 (this CWA) - Programmer's Reference
Part 74: Cash-In Module Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to Version 3.50
(this CWA) - Programmer's Reference
Part 75: Card Dispenser Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to Version 3.50
(this CWA) - Programmer's Reference
Part 76: Barcode Reader Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to Version 3.50
(this CWA) - Programmer's Reference
Part 77: Item Processing Module Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to
Version 3.50 (this CWA) - Programmer's Reference
Part 78: Biometric Device Class Interface - Migration from Version 3.40 (CWA 16296:2020) to Version 3.50 (this
CWA) - Programmer's Reference
In addition to these Programmer's Reference specifications, the reader of this CWA is also referred to a
complementary document, called Release Notes. The Release Notes contain clarifications and explanations on the
CWA specifications, which are not requiring functional changes. The current version of the Release Notes is
available online from: https://www.cen.eu/work/Sectors/Digital_society/Pages/WSXFS.aspx.
The information in this document represents the Workshop's current views on the issues discussed as of the date of
publication. It is provided for informational purposes only and is subject to change without notice. CEN makes no
warranty, express or implied, with respect to this document.
SIST CWA 16926-9:2023
Revision History:
b3.10 November 29, 2007 Initial Release.
3.20 March 2, 2011 For a description of changes from version 3.10 to version
3.20 see the TTU 3.20 Migration document.
3.30 March 19, 2015 For a description of changes from version 3.20 to version
3.30 see the TTU 3.30 Migration document.
3.40 December 06, 2019 For a description of changes from version 3.30 to version
3.40 see the TTU 3.40 Migration document.
3.50 November 18, 2022 For a description of changes from version 3.40 to version
3.50 see the TTU 3.50 Migration document.

SIST CWA 16926-9:2023
1. Introduction
1.1 Background to Release 3.50
The CEN/XFS Workshop aims to promote a clear and unambiguous specification defining a multi-vendor software
interface to financial peripheral devices. The XFS (eXtensions for Financial Services) specifications are developed
within the CEN (European Committee for Standardization/Information Society Standardization System) Workshop
environment. CEN Workshops aim to arrive at a European consensus on an issue that can be published as a CEN
Workshop Agreement (CWA).
The CEN/XFS Workshop encourages the participation of both banks and vendors in the deliberations required to
create an industry standard. The CEN/XFS Workshop achieves its goals by focused sub-groups working
electronically and meeting quarterly.
Release 3.50 of the XFS specification is based on a C API and is delivered with the continued promise for the
protection of technical investment for existing applications. This release of the specification extends the
functionality and capabilities of the existing devices covered by the specification. Notable enhancements include:
• Addition of E2E security
• PIN Password Entry
1.2 XFS Service-Specific Programming
The service classes are defined by their service-specific commands and the associated data structures, error codes,
messages, etc. These commands are used to request functions that are specific to one or more classes of Service
Providers, but not all of them, and therefore are not included in the common API for basic or administration
functions.
When a service-specific command is common among two or more classes of Service Providers, the syntax of the
command is as similar as possible across all services, since a major objective of the XFS is to standardize function
codes and structures for the broadest variety of services. For example, using the WFSExecute function, the
commands to read data from various services are as similar as possible to each other in their syntax and data
structures.
In general, the specific command set for a service class is defined as a superset of the specific capabilities likely to
be provided by the developers of the services of that class; thus any particular device will normally support only a
subset of the defined command set.
There are three cases in which a Service Provider may receive a service-specific command that it does not support:
The requested capability is defined for the class of Service Providers by the XFS specification, the particular vendor
implementation of that service does not support it, and the unsupported capability is not considered to be
fundamental to the service. In this case, the Service Provider returns a successful completion, but does no operation.
An example would be a request from an application to turn on a control indicator on a passbook printer; the Service
Provider recognizes the command, but since the passbook printer it is managing does not include that indicator, the
Service Provider does no operation and returns a successful completion to the application.
The requested capability is defined for the class of Service Providers by the XFS specification, the particular vendor
implementation of that service does not support it, and the unsupported capability is considered to be fundamental to
the service. In this case, a WFS_ERR_UNSUPP_COMMAND error for Execute commands or
WFS_ERR_UNSUPP_CATEGORY error for Info commands is returned to the calling application. An example
would be a request from an application to a cash dispenser to retract items where the dispenser hardware does not
have that capability; the Service Provider recognizes the command but, since the cash dispenser it is managing is
unable to fulfil the request, returns this error.
SIST CWA 16926-9:2023
The requested capability is not defined for the class of Service Providers by the XFS specification. In this case, a
WFS_ERR_INVALID_COMMAND error for Execute commands or WFS_ERR_INVALID_CATEGORY error
for Info commands is returned to the calling application.
This design allows implementation of applications that can be used with a range of services that provide differing
subsets of the functionalities that are defined for their service class. Applications may use the WFSGetInfo and
WFSAsyncGetInfo commands to inquire about the capabilities of the service they are about to use, and modify
their behavior accordingly, or they may use functions and then deal with error returns to make decisions as to how to
use the service.
SIST CWA 16926-9:2023
2. Text Terminal Units
This specification describes the functionality of the services provided by text terminal unit (TTU) services under
XFS, by defining the service-specific commands that can be issued, using the WFSGetInfo, WFSAsyncGetInfo,
WFSExecute and WFSAsyncExecute functions.
This section describes the functions provided by a generic Text Terminal Unit (TTU) service. A Text Terminal Unit
is a text i/o device, which applies both to ATM operator panels and to displays incorporated in devices such as PIN
pads and printers. This service allows for the following categories of functions:
• Forms oriented input and output
• Direct display output
• Keyboard input
• LED settings and control
All position indexes are zero based, where column zero, row zero is the top-leftmost position.
If the device has no shift key, the WFS_CMD_TTU_READ_FORM and WFS_CMD_TTU_READ commands will
return only upper case letters. If the device has a shift key, these commands return upper and lower case letters as
governed by the user's use of the shift key.
SIST CWA 16926-9:2023
3. References
1. XFS Application Programming Interface (API)/Service Provider Interface (SPI), Programmer’s Reference
Revision 3.50
SIST CWA 16926-9:2023
4. Info Commands
4.1 WFS_INF_TTU_STATUS
Description This command reports the full range of information available, including the information that is
provided by the Service Provider.
Input Param None.
Output Param LPWFSTTUSTATUS lpStatus;
typedef struct _wfs_ttu_status
{
WORD  fwDevice;
WORD  wKeyboard;
WORD  wKeylock;
WORD  wLEDs[WFS_TTU_LEDS_MAX];
WORD  wDisplaySizeX;
WORD  wDisplaySizeY;
LPSTR  lpszExtra;
WORD  wDevicePosition;
USHORT  usPowerSaveRecoveryTime;
LPWFSTTULEDEX lpLEDEx;
WORD  wAntiFraudModule;
} WFSTTUSTATUS, *LPWFSTTUSTATUS;
fwDevice
Specifies the state of the text terminal unit as one of the following flags:
Value Meaning
WFS_TTU_DEVONLINE The device is online (i.e. powered on and
operable).
WFS_TTU_DEVOFFLINE The device is offline (e.g. the operator has
taken the device offline by turning a switch).
WFS_TTU_DEVPOWEROFF The device is powered off or physically not
connected.
WFS_TTU_DEVBUSY The device is busy and unable to process an
execute command at this time.
WFS_TTU_DEVNODEVICE There is no device intended to be there; e.g.
this type of self service machine does not
contain such a device or it is internally not
configured.
WFS_TTU_DEVHWERROR The device is inoperable due to a hardware
error.
WFS_TTU_DEVUSERERROR The device is inoperable because a person is
preventing proper device operation.
WFS_TTU_DEVFRAUDATTEMPT The device is present but is inoperable
because it has detected a fraud attempt.
WFS_TTU_DEVPOTENTIALFRAUD The device has detected a potential fraud
attempt and is capable of remaining in
service. In this case the application should
make the decision as to whether to take the
device offline.
wKeyboard
Specifies the state of the keyboard in the text terminal unit as one of the following flags:
Value Meaning
WFS_TTU_KBDON The keyboard is activated.
WFS_TTU_KBDOFF The keyboard is not activated.
WFS_TTU_KBDNA The keyboard is not available.
wKeylock
Specifies the state of the keyboard lock of the text terminal unit as one of the following flags:
SIST CWA 16926-9:2023
Value Meaning
WFS_TTU_KBDLOCKON The keyboard lock switch is activated.
WFS_TTU_KBDLOCKOFF The keyboard lock switch is not activated.
WFS_TTU_KBDLOCKNA The keyboard lock switch is not available.
wLEDs [WFS_TTU_LEDS_MAX]
Specifies the state of the LEDs. The maximum LED index is WFS_TTU_LEDS_MAX -1. The
number of available LEDs can be retrieved with the WFS_INF_TTU_CAPABILITIES info
command. This field is only provided for backwards compatibility; the lpLEDEx parameter should
instead be used to retrieve the LED status. All member elements in this array are specified as one
of the following flags:
Value Meaning
WFS_TTU_LEDNA The status is not available.
WFS_TTU_LEDOFF The LED is turned off.
WFS_TTU_LEDSLOWFLASH The LED is blinking slowly.
WFS_TTU_LEDMEDIUMFLASH The LED is blinking medium frequency.
WFS_TTU_LEDQUICKFLASH The LED is blinking quickly.
WFS_TTU_LEDCONTINUOUS The light is turned on continuous (steady).
wDisplaySizeX
Specifies the horizontal size of the display of the text terminal unit (the number of columns that
can be displayed).
wDisplaySizeY
Specifies the vertical size of the display of the text terminal unit (the number of rows that can be
displayed).
lpszExtra
Pointer to a list of vendor-specific, or any other extended, information. The information is
returned as a series of “key=value” strings so that it is easily extensible by Service Providers.
Each string is null-terminated, with the final string terminating with two null characters. An empty
list may be indicated by either a NULL pointer or a pointer to two consecutive null characters.
wDevicePosition
Specifies the device position. The device position value is independent of the fwDevice value, e.g.
when the device position is reported as WFS_TTU_DEVICENOTINPOSITION, fwDevice can
have any of the values defined above (including WFS_TTU_DEVONLINE or
WFS_TTU_DEVOFFLINE). This value is one of the following values:
Value Meaning
WFS_TTU_DEVICEINPOSITION The device is in its normal operating
position, or is fixed in place and cannot be
moved.
WFS_TTU_DEVICENOTINPOSITION The device has been removed from its
normal operating position.
WFS_TTU_DEVICEPOSUNKNOWN Due to a hardware error or other condition,
the position of the device cannot be
determined.
WFS_TTU_DEVICEPOSNOTSUPP The physical device does not have the
capability of detecting the position.
usPowerSaveRecoveryTime
Specifies the actual number of seconds required by the device to resume its normal operational
state from the current power saving mode. This value is zero if either the power saving mode has
not been activated or no power save control is supported.
lpLEDEx
Pointer to a WFSTTULEDEX structure that specifies the states of the LEDs. If there is no LED
available this will be a NULL pointer.
typedef struct _wfs_ttu_led_ex
{
USHORT  usNumOfLEDs;
LPDWORD  lpdwLEDs;
} WFSTTULEDEX, *LPWFSTTULEDEX;
SIST CWA 16926-9:2023
usNumOfLEDs
This value specifies the number of LEDs, i.e. the size of the array returned in lpdwLEDs.
lpdwLEDs
Pointer to a DWORD array that specifies the state of each LED. Specifies the state of the LED
as WFS_TTU_LEDNA, WFS_TTU_LEDOFF or a combination of the following flags
consisting of one type B, and optionally one type C.
Value Meaning Type
WFS_TTU_LEDNA The status is not available. A
WFS_TTU_LEDOFF The LED is turned off. A
WFS_TTU_LEDSLOWFLASH The LED is blinking B
slowly.
WFS_TTU_LEDMEDIUMFLASH The LED is blinking B
medium frequency.
WFS_TTU_LEDQUICKFLASH The LED is blinking B
quickly.
WFS_TTU_LEDCONTINUOUS The LED is turned on B
continuous (steady).
WFS_TTU_LEDRED The LED is red. C
WFS_TTU_LEDGREEN The LED is green. C
WFS_TTU_LEDYELLOW The LED is yellow. C
WFS_TTU_LEDBLUE The LED is blue. C
WFS_TTU_LEDCYAN The LED is cyan. C
WFS_TTU_LEDMAGENTA The LED is magenta. C
WFS_TTU_LEDWHITE The LED is white. C
wAntiFraudModule
Specifies the state of the anti-fraud module as one of the following values:
Value Meaning
WFS_TTU_AFMNOTSUPP No anti-fraud module is available.
WFS_TTU_AFMOK Anti-fraud module is in a good state and no
foreign device is detected.
WFS_TTU_AFMINOP Anti-fraud module is inoperable.
WFS_TTU_AFMDEVICEDETECTED Anti-fraud module detected the presence of a
foreign device.
WFS_TTU_AFMUNKNOWN The state of the anti-fraud module cannot be
determined.
Error Codes Only the generic error codes defined in [Ref. 1] can be generated by this command.
Comments Applications which require or expect specific information to be present in the lpszExtra parameter
may not be device or vendor-independent.
In the case where communications with the device has been lost, the fwDevice field will report
WFS_TTU_DEVPOWEROFF when the device has been removed or
WFS_TTU_DEVHWERROR if the communications are unexpectedly lost. All other fields should
contain a value based on the following rules and priority:
1. Report the value as unknown.
2. Report the value as a general h/w error.
3. Report the value as the last known value.
SIST CWA 16926-9:2023
4.2 WFS_INF_TTU_CAPABILITIES
Description This command is used to retrieve the capabilities of the text terminal unit.
Input Param None.
Output Param LPWFSTTUCAPS lpCaps;
typedef struct _wfs_ttu_caps
{
WORD  wClass;
WORD  fwType;
LPWFSTTURESOLUTION *lppResolutions;
WORD  wNumOfLEDs;
BOOL  bKeyLock;
BOOL  bDisplayLight;
BOOL  bCursor;
BOOL  bForms;
WORD  fwCharSupport;
LPSTR  lpszExtra;
BOOL  bPowerSaveControl;
LPWFSTTULEDEX lpLEDEx;
BOOL  bAntiFraudModule;
LPDWORD  lpdwSynchronizableCommands;
} WFSTTUCAPS, *LPWFSTTUCAPS;
wClass
Specifies the logical service class as WFS_SERVICE_CLASS_TTU.
fwType
Specifies the type of the text terminal unit as one of the following flags:
Value Meaning
WFS_TTU_FIXED The text terminal unit is a fixed device.
WFS_TTU_REMOVABLE The text terminal unit is a removable device.
lppResolutions
Pointer to a NULL terminated array of pointers WFSTTURESOLUTION structures. Specifies the
resolutions supported by the physical display device. (For a definition of
WFSTTURESOLUTION see command WFS_CMD_TTU_SET_RESOLUTION). The resolution
indicated in the first position is the default resolution and the device will be placed in this
resolution when the Service Provider is initialized or reset through the WFS_CMD_TTU_RESET
command.
wNumOfLEDs
Specifies the number of LEDs available in this text terminal unit. This field is only provided for
backwards compatibility; the lpLEDEx parameter should instead be used to retrieve the LED
capabilities.
bKeyLock
Specifies whether the text terminal unit has a key lock switch. The value can be either FALSE (not
available) or TRUE (available).
bDisplayLight
Specifies whether the text terminal unit has a display light that can be switched ON and OFF with
the WFS_CMD_TTU_DISPLIGHT command. The value can be either FALSE (not available) or
TRUE (available).
bCursor
Specifies whether the text terminal unit display supports a cursor. The value can be either FALSE
(not available) or TRUE (available).
bForms
Specifies whether the text terminal unit service supports forms oriented input and output. The
value can be either FALSE (not available) or TRUE (available).
fwCharSupport
One or more flags specifying the Character Sets, in addition to single byte ASCII, supported by
the Service Provider:
SIST CWA 16926-9:2023
Value Meaning
WFS_TTU_ASCII ASCII is supported for XFS forms.
WFS_TTU_UNICODE UNICODE is supported for XFS forms.
For fwCharSupport, a Service Provider can support ONLY ASCII forms or can support BOTH
ASCII and UNICODE forms. A Service Provider can not support UNICODE forms without also
supporting ASCII forms.
lpszExtra
Pointer to a list of vendor-specific, or any other extended, information. The information is
returned as a series of “key=value” strings so that it is easily extensible by Service Providers.
Each string is null-terminated, with the final string terminating with two null characters. An empty
list may be indicated by either a NULL pointer or a pointer to two consecutive null characters.
bPowerSaveControl
Specifies whether power saving control is available. This can either be TRUE if available or
FALSE if not available.
lpLEDEx
Pointer to a WFSTTULEDEX structure that specifies the capabilities of the LEDs. If there is no
LED available this will be a NULL pointer.
typedef struct _wfs_ttu_ledex
{
USHORT  usNumOfLEDs;
LPDWORD  lpdwLEDs;
} WFSTTULEDEX, *LPWFSTTULEDEX;
usNumOfLEDs
This value specifies the number of available LEDs, i.e. the size of the array returned in
lpdwLEDs.
lpdwLEDs
Pointer to a DWORD array that specifies which LEDs are available.
The elements of this array are specified as a combination of the following flags and indicate all
of the possible flash rates (type B) and colors (type C) that the LED is capable of handling. If
the LED only supports one color then no value of type C is returned.
Value Meaning Type
WFS_TTU_LEDOFF The LED can be off. A
WFS_TTU_LEDSLOWFLASH The LED can blink B
slowly.
WFS_TTU_LEDMEDIUMFLASH The LED can blink B
medium frequency.
WFS_TTU_LEDQUICKFLASH The LED can blink B
quickly.
WFS_TTU_LEDCONTINUOUS The LED can be B
continuous (steady).
WFS_TTU_LEDRED The LED can be red. C
WFS_TTU_LEDGREEN The LED can be green. C
WFS_TTU_LEDYELLOW The LED can be yellow. C
WFS_TTU_LEDBLUE The LED can be blue. C
WFS_TTU_LEDCYAN The LED can be cyan. C
WFS_TTU_LEDMAGENTA The LED can be C
magenta.
WFS_TTU_LEDWHITE The LED can be white. C
bAntiFraudModule
Specifies whether the anti-fraud module is available. This can either be TRUE if available or
FALSE if not available.
lpdwSynchronizableCommands
Pointer to a zero-terminated list of DWORDs which contains the execute command IDs that can
be synchronized. If no execute command can be synchronized then this parameter will be NULL.
Error Codes Only the generic error codes defined in [Ref. 1] can be generated by this command.
SIST CWA 16926-9:2023
Comments Applications which require or expect specific information to be present in the lpszExtra parameter
may not be device or vendor-independent.
SIST CWA 16926-9:2023
4.3 WFS_INF_TTU_FORM_LIST
Description This command is used to retrieve the list of forms available on the device.
Input Param None.
Output Param LPSTR lpszFormList;
lpszFormList
Pointer to a list of null-terminated form names, with the final name terminating with two null
characters.
Error Codes Only the generic error codes defined in [Ref. 1] can be generated by this command.
Comments None.
SIST CWA 16926-9:2023
4.4 WFS_INF_TTU_QUERY_FORM
Description This command is used to retrieve details of the definition of a specified form.
Input Param LPSTR lpszFormName;
lpszFormName
Points to the null-terminated form name on which to retrieve details.
Output Param LPWFSTTUFRMHEADER lpFrmHeader;
typedef struct _wfs_ttu_frm_header
{
LPSTR  lpszFormName;
WORD  wWidth;
WORD  wHeight;
WORD  wVersionMajor;
WORD  wVersionMinor;
WORD  fwCharSupport;
LPSTR  lpszFields;
WORD  wLanguageID;
} WFSTTUFRMHEADER, *LPWFSTTUFRMHEADER;
lpszFormName
Specifies the null-terminated name of the form.
wWidth
Specifies the width of the form in columns.
wHeight
Specifies the height of the form in rows.
wVersionMajor
Specifies the major version. If the version is not specified in the form then zero is returned.
wVersionMinor
Specifies the minor version. If the version is not specified in the form then zero is returned.
fwCharSupport
A single flag indicating whether the form is encoded in ASCII or UNICODE:
Value Meaning
WFS_TTU_ASCII XFS form is encoded in ASCII.
WFS_TTU_UNICODE XFS form is encoded in UNICODE.
lpszFields
Pointer to a list of null-terminated field names, with the final name terminating with two null
characters.
wLanguageID
Specifies the language identifier for the form.
Error Codes In addition to the generic error codes defined in [Ref. 1], the following error codes can be
generated by this command:
Value Meaning
WFS_ERR_TTU_FORMNOTFOUND The specified form cannot be found.
WFS_ERR_TTU_FORMINVALID The specified form is invalid.
Comments None.
SIST CWA 16926-9:2023
4.5 WFS_INF_TTU_QUERY_FIELD
Description This command is used to retrieve details of the definition of a single or all fields on a specified
form.
Input Param LPWFSTTUQUERYFIELD lpQueryField;
typedef struct _wfs_ttu_query_field
{
LPSTR  lpszFormName;
LPSTR  lpszFieldName;
} WFSTTUQUERYFIELD, *LPWFSTTUQUERYFIELD;
lpszFormName
Pointer to the null-terminated form name.
lpszFieldName
Pointer to the null-terminated name of the field about which to retrieve details. If this value is a
NULL pointer, then retrieve details for all fields on the form.
Output Param LPWFSTTUFRMFIELD *lppFields;
lppFields
Pointer to a NULL terminated array of pointers to field definition structures:
typedef struct _wfs_ttu_frm_field
{
LPSTR  lpszFieldName;
WORD  fwType;
WORD  fwClass;
WORD  fwAccess;
WORD  fwOverflow;
LPSTR  lpszFormat;
WORD  wLanguageID;
} WFSTTUFRMFIELD, *LPWFSTTUFRMFIELD;
lpszFieldName
Pointer to the null-terminated field name.
fwType
Specifies the type of field and can be one of the following:
Value Meaning
WFS_TTU_FIELDTEXT A text field.
WFS_TTU_FIELDINVISIBLE An invisible text field.
WFS_TTU_FIELDPASSWORD A password field, input is echoed as ‘*’.
fwClass
Specifies the class of the field and can be one of the following:
Value Meaning
WFS_TTU_CLASSSTATIC The field data cannot be set by the
application.
WFS_TTU_CLASSOPTIONAL The field data can be set by the application.
WFS_TTU_CLASSREQUIRED The field data must be set by the application.
fwAccess
Specifies whether the field is to be used for input, output, or both and can be a combination of the
following bit-flags:
Value Meaning
WFS_TTU_ACCESSREAD The field is used for input from the physical
device.
WFS_TTU_ACCESSWRITE The field is used for output to the physical
device.
fwOverflow
Specifies how an overflow of field data should be handled and can be one of the following:
SIST CWA 16926-9:2023
Value Meaning
WFS_TTU_OVFTERMINATE Return an error and terminate display of the
form.
WFS_TTU_OVFTRUNCATE Truncate the field data to fit in the field.
WFS_TTU_OVFOVERWRITE Print the field data beyond the extents of the
field boundary.
lpszFormat
Format string as defined in the form for this field.
wLanguageID
Specifies the language identifier for the field.
Error Codes In addition to the generic error codes defined in [Ref. 1], the following error codes can be
generated by this command:
Value Meaning
WFS_ERR_TTU_FORMNOTFOUND The specified form cannot be found.
WFS_ERR_TTU_FORMINVALID The specified form is invalid.
WFS_ERR_TTU_FIELDNOTFOUND The specified field cannot be found.
WFS_ERR_TTU_FIELDINVALID The specified field is invalid.
Comments None.
SIST CWA 16926-9:2023
4.6 WFS_INF_TTU_KEY_DETAIL
Description This command returns information about the Keys (buttons) supported by the device.
This command should be issued to determine which Keys are available.
Input Param None.
Output Param LPWFSTTUKEYDETAIL lpKeyDetail;
typedef struct _wfs_ttu_key_detail
{
LPSTR  lpszKeys;
LPWSTR  lpwszUNICODEKeys;
LPWORD  lpwCommandKeys;
} WFSTTUKEYDETAIL, *LPWFSTTUKEYDETAIL;
lpszKeys
String which holds the printable characters (numeric and alphanumeric keys) on the Text Terminal
Unit, e.g. “0123456789ABCabcαβχ” if those text terminal input keys are present. This string is a
NULL pointer if no keys of this type are present on the device.
lpwszUNICODEKeys
String which holds the numeric and alphanumeric keys on the Text Terminal Unit like lpszKeys
but in UNICODE format. This string is a NULL pointer if capability fwCharSupport equals
WFS_TTU_ASCII or if no keys of this type are present on the device.
lpwCommandKeys
Array of command keys on the Text Terminal Unit. The array is terminated with a zero value.
This array is a NULL pointer if no keys of this type are present on the device.
WFS_TTU_CK_ENTER
WFS_TTU_CK_CANCEL
WFS_TTU_CK_CLEAR
WFS_TTU_CK_BACKSPACE
WFS_TTU_CK_HELP
WFS_TTU_CK_00
WFS_TTU_CK_000
WFS_TTU_CK_ARROWUP
WFS_TTU_CK_ARROWDOWN
WFS_TTU_CK_ARROWLEFT
WFS_TTU_CK_ARROWRIGHT
The following values may be used as vendor dependent keys.
WFS_TTU_CK_OEM1
WFS_TTU_CK_OEM2
WFS_TTU_CK_OEM3
WFS_TTU_CK_OEM4
WFS_TTU_CK_OEM5
WFS_TTU_CK_OEM6
WFS_TTU_CK_OEM7
WFS_TTU_CK_OEM8
WFS_TTU_CK_OEM9
WFS_TTU_CK_OEM10
WFS_TTU_CK_OEM11
SIST CWA 16926-9:2023
WFS_TTU_CK_OEM12
The following keys are used for Function Descriptor Keys.
WFS_TTU_CK_FDK01
WFS_TTU_CK_FDK02
WFS_TTU_CK_FDK03
WFS_TTU_CK_FDK04
WFS_TTU_CK_FDK05
WFS_TTU_CK_FDK06
WFS_TTU_CK_FDK07
WFS_TTU_CK_FDK08
WFS_TTU_CK_FDK09
WFS_TTU_CK_FDK10
WFS_TTU_CK_FDK11
WFS_TTU_CK_FDK12
WFS_TTU_CK_FDK13
WFS_TTU_CK_FDK14
WFS_TTU_CK_FDK15
WFS_TTU_CK_FDK16
WFS_TTU_CK_FDK17
WFS_TTU_CK_FDK18
WFS_TTU_CK_FDK19
WFS_TTU_CK_FDK20
WFS_TTU_CK_FDK21
WFS_TTU_CK_FDK22
WFS_TTU_CK_FDK23
WFS_TTU_CK_FDK24
WFS_TTU_CK_FDK25
WFS_TTU_CK_FDK26
WFS_TTU_CK_FDK27
WFS_TTU_CK_FDK28
WFS_TTU_CK_FDK29
WFS_TTU_CK_FDK30
WFS_TTU_CK_FDK31
WFS_TTU_CK_FDK32
Error Codes Only the generic error codes defined in [Ref. 1] can be generated by this command.
Comments None.
SIST CWA 16926-9:2023
5. Execute Commands
5.1 WFS_CMD_TTU_BEEP
Description This command is used to beep at the text terminal unit.
Input Param LPWORD lpwBeep;
lpwBeep
Specifies whether the beeper should be tur
...


SLOVENSKI STANDARD
01-marec-2023
Specifikacija vmesnika razširitev za finančne storitve (XFS), izdaja 3.50 - 9. del:
Vmesnik razreda naprave tekstovne terminalne enote - Referenca za programerje
Extensions for Financial Services (XFS) interface specification Release 3.50 - Part 9:
Text Terminal Unit Device Class Interface - Programmer's Reference
Ta slovenski standard je istoveten z: CWA 16926-9:2022
ICS:
35.200 Vmesniška in povezovalna Interface and interconnection
oprema equipment
35.240.15 Identifikacijske kartice. Čipne Identification cards. Chip
kartice. Biometrija cards. Biometrics
35.240.40 Uporabniške rešitve IT v IT applications in banking
bančništvu
2003-01.Slovenski inštitut za standardizacijo. Razmnoževanje celote ali delov tega standarda ni dovoljeno.

CEN
CWA 16926-9
WORKSHOP
December 2022
AGREEMENT
ICS 35.200; 35.240.15; 35.240.40
English version
Extensions for Financial Services (XFS) interface
specification Release 3.50 - Part 9: Text Terminal Unit
Device Class Interface - Programmer's Reference
This CEN Workshop Agreement has been drafted and approved by a Workshop of representatives of interested parties, the
constitution of which is indicated in the foreword of this Workshop Agreement.

The formal process followed by the Workshop in the development of this Workshop Agreement has been endorsed by the
National Members of CEN but neither the National Members of CEN nor the CEN-CENELEC Management Centre can be held
accountable for the technical content of this CEN Workshop Agreement or possible conflicts with standards or legislation.

This CEN Workshop Agreement can in no way be held as being an official standard developed by CEN and its Members.

This CEN Workshop Agreement is publicly available as a reference document from the CEN Members National Standard Bodies.

CEN members are the national standards bodies of Austria, Belgium, Bulgaria, Croatia, Cyprus, Czech Republic, Denmark, Estonia, Finland, France,
Germany, Greece, Hungary, Iceland, Ireland, Italy, Latvia, Lithuania, Luxembourg, Malta, Netherlands, Norway, Poland, Portugal, Republic of North
Macedonia, Romania, Serbia, Slovakia, Slovenia, Spain, Sweden, Switzerland, Türkiye and United Kingdom.

EUROPEAN COMMITTEE FOR STANDARDIZATION
COMITÉ EUROPÉEN DE NORMALISATION

EUROPÄISCHES KOMITEE FÜR NORMUNG

CEN-CENELEC Management Centre: Rue de la Science 23, B-1040 Brussels
© 2022 CEN All rights of exploitation in any form and by any means reserved worldwide for CEN national Members.

Ref. No.:CWA 16926-9:2022 E
Table of Contents
European Foreword . 4
1. Introduction . 8
1.1 Background to Release 3.50 . 8
1.2 XFS Service-Specific Programming . 8
2. Text Terminal Units . 10
3. References . 11
4. Info Commands . 12
4.1 WFS_INF_TTU_STATUS . 12
4.2 WFS_INF_TTU_CAPABILITIES. 15
4.3 WFS_INF_TTU_FORM_LIST . 18
4.4 WFS_INF_TTU_QUERY_FORM . 19
4.5 WFS_INF_TTU_QUERY_FIELD . 20
4.6 WFS_INF_TTU_KEY_DETAIL . 22
5. Execute Commands . 24
5.1 WFS_CMD_TTU_BEEP . 24
5.2 WFS_CMD_TTU_CLEARSCREEN . 25
5.3 WFS_CMD_TTU_DISPLIGHT . 26
5.4 WFS_CMD_TTU_SET_LED . 27
5.5 WFS_CMD_TTU_SET_RESOLUTION . 28
5.6 WFS_CMD_TTU_WRITE_FORM . 29
5.7 WFS_CMD_TTU_READ_FORM . 30
5.8 WFS_CMD_TTU_WRITE . 32
5.9 WFS_CMD_TTU_READ . 34
5.10 WFS_CMD_TTU_RESET . 37
5.11 WFS_CMD_TTU_DEFINE_KEYS . 38
5.12 WFS_CMD_TTU_POWER_SAVE_CONTROL . 40
5.13 WFS_CMD_TTU_SET_LED_EX . 41
5.14 WFS_CMD_TTU_SYNCHRONIZE_COMMAND . 42
6. Events . 43
6.1 WFS_EXEE_TTU_FIELDERROR . 43
6.2 WFS_EXEE_TTU_FIELDWARNING . 44
6.3 WFS_EXEE_TTU_KEY . 45
6.4 WFS_SRVE_TTU_DEVICEPOSITION . 46
6.5 WFS_SRVE_TTU_POWER_SAVE_CHANGE . 47
7. Form and Field Definitions . 48
7.1 Definition Syntax . 48
7.2 XFS form/media definition files in multi-vendor environments . 49
7.3 Form Definition . 50
7.4 Field Definition . 51
8. C - Header file . 53
European Foreword
This CEN Workshop Agreement has been developed in accordance with the CEN-CENELEC Guide 29
“CEN/CENELEC Workshop Agreements – The way to rapid consensus” and with the relevant provisions of
CEN/CENELEC Internal Regulations – Part 2. It was approved by a Workshop of representatives of interested
parties on 2022-11-08, the constitution of which was supported by CEN following several public calls for
participation, the first of which was made on 1998-06-24. However, this CEN Workshop Agreement does not
necessarily include all relevant stakeholders.

The final text of this CEN Workshop Agreement was provided to CEN for publication on 2022-11-18.

The following organizations and individuals developed and approved this CEN Workshop Agreement:

• AURIGA SPA
• CIMA SPA
• DIEBOLD NIXDORF SYSTEMS GMBH
• FIS BANKING SOLUTIONS UK LTD (OTS)
• FUJITSU TECHNOLOGY SOLUTIONS
• GLORY LTD
• GRG BANKING EQUIPMENT HK CO LTD
• HITACHI CHANNEL SOLUTIONS CORP
• HYOSUNG TNS INC
• JIANGSU GUOGUANG ELECTRONIC INFORMATION TECHNOLOGY
• KAL
• KEBA HANDOVER AUTOMATION GMBH
• NCR FSG
• NEXUS SOFTWARE
• OBERTHUR CASH PROTECTION
• OKI ELECTRIC INDUSTRY SHENZHEN
• SALZBURGER BANKEN SOFTWARE
• SECURE INNOVATION
• SIGMA SPA
It is possible that some elements of this CEN/CWA may be subject to patent rights. The CEN-CENELEC policy on
patent rights is set out in CEN-CENELEC Guide 8 “Guidelines for Implementation of the Common IPR Policy on
Patents (and other statutory intellectual property rights based on inventions)”. CEN shall not be held responsible for
identifying any or all such patent rights.

The Workshop participants have made every effort to ensure the reliability and accuracy of the technical and non-
technical content of CWA 16926-9, but this does not guarantee, either explicitly or implicitly, its correctness. Users
of CWA 16926-9 should be aware that neither the Workshop participants, nor CEN can be held liable for damages
or losses of any kind whatsoever which may arise from its application. Users of CWA 16926-9 do so on their own
responsibility and at their own risk.
The CWA is published as a multi-part document, consisting of:
Part 1: Application Programming Interface (API) - Service Provider Interface (SPI) - Programmer's Reference
Part 2: Service Classes Definition - Programmer's Reference
Part 3: Printer and Scanning Device Class Interface - Programmer's Reference
Part 4: Identification Card Device Class Interface - Programmer's Reference
Part 5: Cash Dispenser Device Class Interface - Programmer's Reference
Part 6: PIN Keypad Device Class Interface - Programmer's Reference
Part 7: Check Reader/Scanner Device Class Interface - Programmer's Reference
Part 8: Depository Device Class Interface - Programmer's Reference
Part 9: Text Terminal Unit Device Class Interface - Programmer's Reference
Part 10: Sensors and Indicators Unit Device Class Interface - Programmer's Reference
Part 11: Vendor Dependent Mode Device Class Interface - Programmer's Reference
Part 12: Camera Device Class Interface - Programmer's Reference
Part 13: Alarm Device Class Interface - Programmer's Reference
Part 14: Card Embossing Unit Device Class Interface - Programmer's Reference
Part 15: Cash-In Module Device Class Interface - Programmer's Reference
Part 16: Card Dispenser Device Class Interface - Programmer's Reference
Part 17: Barcode Reader Device Class Interface - Programmer's Reference
Part 18: Item Processing Module Device Class Interface - Programmer's Reference
Part 19: Biometrics Device Class Interface - Programmer's Reference
Parts 20 - 28: Reserved for future use.
Parts 29 through 47 constitute an optional addendum to this CWA. They define the integration between the SNMP
standard and the set of status and statistical information exported by the Service Providers.
Part 29: XFS MIB Architecture and SNMP Extensions - Programmer’s Reference
Part 30: XFS MIB Device Specific Definitions - Printer Device Class
Part 31: XFS MIB Device Specific Definitions - Identification Card Device Class
Part 32: XFS MIB Device Specific Definitions - Cash Dispenser Device Class
Part 33: XFS MIB Device Specific Definitions - PIN Keypad Device Class
Part 34: XFS MIB Device Specific Definitions - Check Reader/Scanner Device Class
Part 35: XFS MIB Device Specific Definitions - Depository Device Class
Part 36: XFS MIB Device Specific Definitions - Text Terminal Unit Device Class
Part 37: XFS MIB Device Specific Definitions - Sensors and Indicators Unit Device Class
Part 38: XFS MIB Device Specific Definitions - Camera Device Class
Part 39: XFS MIB Device Specific Definitions - Alarm Device Class
Part 40: XFS MIB Device Specific Definitions - Card Embossing Unit Class
Part 41: XFS MIB Device Specific Definitions - Cash-In Module Device Class
Part 42: Reserved for future use.
Part 43: XFS MIB Device Specific Definitions - Vendor Dependent Mode Device Class
Part 44: XFS MIB Application Management
Part 45: XFS MIB Device Specific Definitions - Card Dispenser Device Class
Part 46: XFS MIB Device Specific Definitions - Barcode Reader Device Class
Part 47: XFS MIB Device Specific Definitions - Item Processing Module Device Class
Part 48: XFS MIB Device Specific Definitions - Biometrics Device Class
Parts 49 - 60 are reserved for future use.
Part 61: Application Programming Interface (API) - Migration from Version 3.40 (CWA 16926:2020) to Version
3.50 (this CWA) - Service Provider Interface (SPI) - Programmer's Reference
Part 62: Printer and Scanning Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to Version
3.50 (this CWA) - Programmer's Reference
Part 63: Identification Card Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to Version
3.50 (this CWA) - Programmer's Reference
Part 64: Cash Dispenser Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to Version 3.50
(this CWA) - Programmer's Reference
Part 65: PIN Keypad Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to Version 3.50
(this CWA) - Programmer's Reference
Part 66: Check Reader/Scanner Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to
Version 3.50 (this CWA) - Programmer's Reference
Part 67: Depository Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to Version 3.50 (this
CWA) - Programmer's Reference
Part 68: Text Terminal Unit Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to Version
3.50 (this CWA) - Programmer's Reference
Part 69: Sensors and Indicators Unit Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to
Version 3.50 (this CWA) - Programmer's Reference
Part 70: Vendor Dependent Mode Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to
Version 3.50 (this CWA) - Programmer's Reference
Part 71: Camera Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to Version 3.50 (this
CWA) - Programmer's Reference
Part 72: Alarm Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to Version 3.50 (this
CWA) - Programmer's Reference
Part 73: Card Embossing Unit Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to Version
3.50 (this CWA) - Programmer's Reference
Part 74: Cash-In Module Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to Version 3.50
(this CWA) - Programmer's Reference
Part 75: Card Dispenser Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to Version 3.50
(this CWA) - Programmer's Reference
Part 76: Barcode Reader Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to Version 3.50
(this CWA) - Programmer's Reference
Part 77: Item Processing Module Device Class Interface - Migration from Version 3.40 (CWA 16926:2020) to
Version 3.50 (this CWA) - Programmer's Reference
Part 78: Biometric Device Class Interface - Migration from Version 3.40 (CWA 16296:2020) to Version 3.50 (this
CWA) - Programmer's Reference
In addition to these Programmer's Reference specifications, the reader of this CWA is also referred to a
complementary document, called Release Notes. The Release Notes contain clarifications and explanations on the
CWA specifications, which are not requiring functional changes. The current version of the Release Notes is
available online from: https://www.cen.eu/work/Sectors/Digital_society/Pages/WSXFS.aspx.
The information in this document represents the Workshop's current views on the issues discussed as of the date of
publication. It is provided for informational purposes only and is subject to change without notice. CEN makes no
warranty, express or implied, with respect to this document.
Revision History:
b3.10 November 29, 2007 Initial Release.
3.20 March 2, 2011 For a description of changes from version 3.10 to version
3.20 see the TTU 3.20 Migration document.
3.30 March 19, 2015 For a description of changes from version 3.20 to version
3.30 see the TTU 3.30 Migration document.
3.40 December 06, 2019 For a description of changes from version 3.30 to version
3.40 see the TTU 3.40 Migration document.
3.50 November 18, 2022 For a description of changes from version 3.40 to version
3.50 see the TTU 3.50 Migration document.

1. Introduction
1.1 Background to Release 3.50
The CEN/XFS Workshop aims to promote a clear and unambiguous specification defining a multi-vendor software
interface to financial peripheral devices. The XFS (eXtensions for Financial Services) specifications are developed
within the CEN (European Committee for Standardization/Information Society Standardization System) Workshop
environment. CEN Workshops aim to arrive at a European consensus on an issue that can be published as a CEN
Workshop Agreement (CWA).
The CEN/XFS Workshop encourages the participation of both banks and vendors in the deliberations required to
create an industry standard. The CEN/XFS Workshop achieves its goals by focused sub-groups working
electronically and meeting quarterly.
Release 3.50 of the XFS specification is based on a C API and is delivered with the continued promise for the
protection of technical investment for existing applications. This release of the specification extends the
functionality and capabilities of the existing devices covered by the specification. Notable enhancements include:
• Addition of E2E security
• PIN Password Entry
1.2 XFS Service-Specific Programming
The service classes are defined by their service-specific commands and the associated data structures, error codes,
messages, etc. These commands are used to request functions that are specific to one or more classes of Service
Providers, but not all of them, and therefore are not included in the common API for basic or administration
functions.
When a service-specific command is common among two or more classes of Service Providers, the syntax of the
command is as similar as possible across all services, since a major objective of the XFS is to standardize function
codes and structures for the broadest variety of services. For example, using the WFSExecute function, the
commands to read data from various services are as similar as possible to each other in their syntax and data
structures.
In general, the specific command set for a service class is defined as a superset of the specific capabilities likely to
be provided by the developers of the services of that class; thus any particular device will normally support only a
subset of the defined command set.
There are three cases in which a Service Provider may receive a service-specific command that it does not support:
The requested capability is defined for the class of Service Providers by the XFS specification, the particular vendor
implementation of that service does not support it, and the unsupported capability is not considered to be
fundamental to the service. In this case, the Service Provider returns a successful completion, but does no operation.
An example would be a request from an application to turn on a control indicator on a passbook printer; the Service
Provider recognizes the command, but since the passbook printer it is managing does not include that indicator, the
Service Provider does no operation and returns a successful completion to the application.
The requested capability is defined for the class of Service Providers by the XFS specification, the particular vendor
implementation of that service does not support it, and the unsupported capability is considered to be fundamental to
the service. In this case, a WFS_ERR_UNSUPP_COMMAND error for Execute commands or
WFS_ERR_UNSUPP_CATEGORY error for Info commands is returned to the calling application. An example
would be a request from an application to a cash dispenser to retract items where the dispenser hardware does not
have that capability; the Service Provider recognizes the command but, since the cash dispenser it is managing is
unable to fulfil the request, returns this error.
The requested capability is not defined for the class of Service Providers by the XFS specification. In this case, a
WFS_ERR_INVALID_COMMAND error for Execute commands or WFS_ERR_INVALID_CATEGORY error
for Info commands is returned to the calling application.
This design allows implementation of applications that can be used with a range of services that provide differing
subsets of the functionalities that are defined for their service class. Applications may use the WFSGetInfo and
WFSAsyncGetInfo commands to inquire about the capabilities of the service they are about to use, and modify
their behavior accordingly, or they may use functions and then deal with error returns to make decisions as to how to
use the service.
2. Text Terminal Units
This specification describes the functionality of the services provided by text terminal unit (TTU) services under
XFS, by defining the service-specific commands that can be issued, using the WFSGetInfo, WFSAsyncGetInfo,
WFSExecute and WFSAsyncExecute functions.
This section describes the functions provided by a generic Text Terminal Unit (TTU) service. A Text Terminal Unit
is a text i/o device, which applies both to ATM operator panels and to displays incorporated in devices such as PIN
pads and printers. This service allows for the following categories of functions:
• Forms oriented input and output
• Direct display output
• Keyboard input
• LED settings and control
All position indexes are zero based, where column zero, row zero is the top-leftmost position.
If the device has no shift key, the WFS_CMD_TTU_READ_FORM and WFS_CMD_TTU_READ commands will
return only upper case letters. If the device has a shift key, these commands return upper and lower case letters as
governed by the user's use of the shift key.
3. References
1. XFS Application Programming Interface (API)/Service Provider Interface (SPI), Programmer’s Reference
Revision 3.50
4. Info Commands
4.1 WFS_INF_TTU_STATUS
Description This command reports the full range of information available, including the information that is
provided by the Service Provider.
Input Param None.
Output Param LPWFSTTUSTATUS lpStatus;
typedef struct _wfs_ttu_status
{
WORD  fwDevice;
WORD  wKeyboard;
WORD  wKeylock;
WORD  wLEDs[WFS_TTU_LEDS_MAX];
WORD  wDisplaySizeX;
WORD  wDisplaySizeY;
LPSTR  lpszExtra;
WORD  wDevicePosition;
USHORT  usPowerSaveRecoveryTime;
LPWFSTTULEDEX lpLEDEx;
WORD  wAntiFraudModule;
} WFSTTUSTATUS, *LPWFSTTUSTATUS;
fwDevice
Specifies the state of the text terminal unit as one of the following flags:
Value Meaning
WFS_TTU_DEVONLINE The device is online (i.e. powered on and
operable).
WFS_TTU_DEVOFFLINE The device is offline (e.g. the operator has
taken the device offline by turning a switch).
WFS_TTU_DEVPOWEROFF The device is powered off or physically not
connected.
WFS_TTU_DEVBUSY The device is busy and unable to process an
execute command at this time.
WFS_TTU_DEVNODEVICE There is no device intended to be there; e.g.
this type of self service machine does not
contain such a device or it is internally not
configured.
WFS_TTU_DEVHWERROR The device is inoperable due to a hardware
error.
WFS_TTU_DEVUSERERROR The device is inoperable because a person is
preventing proper device operation.
WFS_TTU_DEVFRAUDATTEMPT The device is present but is inoperable
because it has detected a fraud attempt.
WFS_TTU_DEVPOTENTIALFRAUD The device has detected a potential fraud
attempt and is capable of remaining in
service. In this case the application should
make the decision as to whether to take the
device offline.
wKeyboard
Specifies the state of the keyboard in the text terminal unit as one of the following flags:
Value Meaning
WFS_TTU_KBDON The keyboard is activated.
WFS_TTU_KBDOFF The keyboard is not activated.
WFS_TTU_KBDNA The keyboard is not available.
wKeylock
Specifies the state of the keyboard lock of the text terminal unit as one of the following flags:
Value Meaning
WFS_TTU_KBDLOCKON The keyboard lock switch is activated.
WFS_TTU_KBDLOCKOFF The keyboard lock switch is not activated.
WFS_TTU_KBDLOCKNA The keyboard lock switch is not available.
wLEDs [WFS_TTU_LEDS_MAX]
Specifies the state of the LEDs. The maximum LED index is WFS_TTU_LEDS_MAX -1. The
number of available LEDs can be retrieved with the WFS_INF_TTU_CAPABILITIES info
command. This field is only provided for backwards compatibility; the lpLEDEx parameter should
instead be used to retrieve the LED status. All member elements in this array are specified as one
of the following flags:
Value Meaning
WFS_TTU_LEDNA The status is not available.
WFS_TTU_LEDOFF The LED is turned off.
WFS_TTU_LEDSLOWFLASH The LED is blinking slowly.
WFS_TTU_LEDMEDIUMFLASH The LED is blinking medium frequency.
WFS_TTU_LEDQUICKFLASH The LED is blinking quickly.
WFS_TTU_LEDCONTINUOUS The light is turned on continuous (steady).
wDisplaySizeX
Specifies the horizontal size of the display of the text terminal unit (the number of columns that
can be displayed).
wDisplaySizeY
Specifies the vertical size of the display of the text terminal unit (the number of rows that can be
displayed).
lpszExtra
Pointer to a list of vendor-specific, or any other extended, information. The information is
returned as a series of “key=value” strings so that it is easily extensible by Service Providers.
Each string is null-terminated, with the final string terminating with two null characters. An empty
list may be indicated by either a NULL pointer or a pointer to two consecutive null characters.
wDevicePosition
Specifies the device position. The device position value is independent of the fwDevice value, e.g.
when the device position is reported as WFS_TTU_DEVICENOTINPOSITION, fwDevice can
have any of the values defined above (including WFS_TTU_DEVONLINE or
WFS_TTU_DEVOFFLINE). This value is one of the following values:
Value Meaning
WFS_TTU_DEVICEINPOSITION The device is in its normal operating
position, or is fixed in place and cannot be
moved.
WFS_TTU_DEVICENOTINPOSITION The device has been removed from its
normal operating position.
WFS_TTU_DEVICEPOSUNKNOWN Due to a hardware error or other condition,
the position of the device cannot be
determined.
WFS_TTU_DEVICEPOSNOTSUPP The physical device does not have the
capability of detecting the position.
usPowerSaveRecoveryTime
Specifies the actual number of seconds required by the device to resume its normal operational
state from the current power saving mode. This value is zero if either the power saving mode has
not been activated or no power save control is supported.
lpLEDEx
Pointer to a WFSTTULEDEX structure that specifies the states of the LEDs. If there is no LED
available this will be a NULL pointer.
typedef struct _wfs_ttu_led_ex
{
USHORT  usNumOfLEDs;
LPDWORD  lpdwLEDs;
} WFSTTULEDEX, *LPWFSTTULEDEX;
usNumOfLEDs
This value specifies the number of LEDs, i.e. the size of the array returned in lpdwLEDs.
lpdwLEDs
Pointer to a DWORD array that specifies the state of each LED. Specifies the state of the LED
as WFS_TTU_LEDNA, WFS_TTU_LEDOFF or a combination of the following flags
consisting of one type B, and optionally one type C.
Value Meaning Type
WFS_TTU_LEDNA The status is not available. A
WFS_TTU_LEDOFF The LED is turned off. A
WFS_TTU_LEDSLOWFLASH The LED is blinking B
slowly.
WFS_TTU_LEDMEDIUMFLASH The LED is blinking B
medium frequency.
WFS_TTU_LEDQUICKFLASH The LED is blinking B
quickly.
WFS_TTU_LEDCONTINUOUS The LED is turned on B
continuous (steady).
WFS_TTU_LEDRED The LED is red. C
WFS_TTU_LEDGREEN The LED is green. C
WFS_TTU_LEDYELLOW The LED is yellow. C
WFS_TTU_LEDBLUE The LED is blue. C
WFS_TTU_LEDCYAN The LED is cyan. C
WFS_TTU_LEDMAGENTA The LED is magenta. C
WFS_TTU_LEDWHITE The LED is white. C
wAntiFraudModule
Specifies the state of the anti-fraud module as one of the following values:
Value Meaning
WFS_TTU_AFMNOTSUPP No anti-fraud module is available.
WFS_TTU_AFMOK Anti-fraud module is in a good state and no
foreign device is detected.
WFS_TTU_AFMINOP Anti-fraud module is inoperable.
WFS_TTU_AFMDEVICEDETECTED Anti-fraud module detected the presence of a
foreign device.
WFS_TTU_AFMUNKNOWN The state of the anti-fraud module cannot be
determined.
Error Codes Only the generic error codes defined in [Ref. 1] can be generated by this command.
Comments Applications which require or expect specific information to be present in the lpszExtra parameter
may not be device or vendor-independent.
In the case where communications with the device has been lost, the fwDevice field will report
WFS_TTU_DEVPOWEROFF when the device has been removed or
WFS_TTU_DEVHWERROR if the communications are unexpectedly lost. All other fields should
contain a value based on the following rules and priority:
1. Report the value as unknown.
2. Report the value as a general h/w error.
3. Report the value as the last known value.
4.2 WFS_INF_TTU_CAPABILITIES
Description This command is used to retrieve the capabilities of the text terminal unit.
Input Param None.
Output Param LPWFSTTUCAPS lpCaps;
typedef struct _wfs_ttu_caps
{
WORD  wClass;
WORD  fwType;
LPWFSTTURESOLUTION *lppResolutions;
WORD  wNumOfLEDs;
BOOL  bKeyLock;
BOOL  bDisplayLight;
BOOL  bCursor;
BOOL  bForms;
WORD  fwCharSupport;
LPSTR  lpszExtra;
BOOL  bPowerSaveControl;
LPWFSTTULEDEX lpLEDEx;
BOOL  bAntiFraudModule;
LPDWORD  lpdwSynchronizableCommands;
} WFSTTUCAPS, *LPWFSTTUCAPS;
wClass
Specifies the logical service class as WFS_SERVICE_CLASS_TTU.
fwType
Specifies the type of the text terminal unit as one of the following flags:
Value Meaning
WFS_TTU_FIXED The text terminal unit is a fixed device.
WFS_TTU_REMOVABLE The text terminal unit is a removable device.
lppResolutions
Pointer to a NULL terminated array of pointers WFSTTURESOLUTION structures. Specifies the
resolutions supported by the physical display device. (For a definition of
WFSTTURESOLUTION see command WFS_CMD_TTU_SET_RESOLUTION). The resolution
indicated in the first position is the default resolution and the device will be placed in this
resolution when the Service Provider is initialized or reset through the WFS_CMD_TTU_RESET
command.
wNumOfLEDs
Specifies the number of LEDs available in this text terminal unit. This field is only provided for
backwards compatibility; the lpLEDEx parameter should instead be used to retrieve the LED
capabilities.
bKeyLock
Specifies whether the text terminal unit has a key lock switch. The value can be either FALSE (not
available) or TRUE (available).
bDisplayLight
Specifies whether the text terminal unit has a display light that can be switched ON and OFF with
the WFS_CMD_TTU_DISPLIGHT command. The value can be either FALSE (not available) or
TRUE (available).
bCursor
Specifies whether the text terminal unit display supports a cursor. The value can be either FALSE
(not available) or TRUE (available).
bForms
Specifies whether the text terminal unit service supports forms oriented input and output. The
value can be either FALSE (not available) or TRUE (available).
fwCharSupport
One or more flags specifying the Character Sets, in addition to single byte ASCII, supported by
the Service Provider:
Value Meaning
WFS_TTU_ASCII ASCII is supported for XFS forms.
WFS_TTU_UNICODE UNICODE is supported for XFS forms.
For fwCharSupport, a Service Provider can support ONLY ASCII forms or can support BOTH
ASCII and UNICODE forms. A Service Provider can not support UNICODE forms without also
supporting ASCII forms.
lpszExtra
Pointer to a list of vendor-specific, or any other extended, information. The information is
returned as a series of “key=value” strings so that it is easily extensible by Service Providers.
Each string is null-terminated, with the final string terminating with two null characters. An empty
list may be indicated by either a NULL pointer or a pointer to two consecutive null characters.
bPowerSaveControl
Specifies whether power saving control is available. This can either be TRUE if available or
FALSE if not available.
lpLEDEx
Pointer to a WFSTTULEDEX structure that specifies the capabilities of the LEDs. If there is no
LED available this will be a NULL pointer.
typedef struct _wfs_ttu_ledex
{
USHORT  usNumOfLEDs;
LPDWORD  lpdwLEDs;
} WFSTTULEDEX, *LPWFSTTULEDEX;
usNumOfLEDs
This value specifies the number of available LEDs, i.e. the size of the array returned in
lpdwLEDs.
lpdwLEDs
Pointer to a DWORD array that specifies which LEDs are available.
The elements of this array are specified as a combination of the following flags and indicate all
of the possible flash rates (type B) and colors (type C) that the LED is capable of handling. If
the LED only supports one color then no value of type C is returned.
Value Meaning Type
WFS_TTU_LEDOFF The LED can be off. A
WFS_TTU_LEDSLOWFLASH The LED can blink B
slowly.
WFS_TTU_LEDMEDIUMFLASH The LED can blink B
medium frequency.
WFS_TTU_LEDQUICKFLASH The LED can blink B
quickly.
WFS_TTU_LEDCONTINUOUS The LED can be B
continuous (steady).
WFS_TTU_LEDRED The LED can be red. C
WFS_TTU_LEDGREEN The LED can be green. C
WFS_TTU_LEDYELLOW The LED can be yellow. C
WFS_TTU_LEDBLUE The LED can be blue. C
WFS_TTU_LEDCYAN The LED can be cyan. C
WFS_TTU_LEDMAGENTA The LED can be C
magenta.
WFS_TTU_LEDWHITE The LED can be white. C
bAntiFraudModule
Specifies whether the anti-fraud module is available. This can either be TRUE if available or
FALSE if not available.
lpdwSynchronizableCommands
Pointer to a zero-terminated list of DWORDs which contains the execute command IDs that can
be synchronized. If no execute command can be synchronized then this parameter will be NULL.
Error Codes Only the generic error codes defined in [Ref. 1] can be generated by this command.
Comments Applications which require or expect specific information to be present in the lpszExtra parameter
may not be device or vendor-independent.
4.3 WFS_INF_TTU_FORM_LIST
Description This command is used to retrieve the list of forms available on the device.
Input Param None.
Output Param LPSTR lpszFormList;
lpszFormList
Pointer to a list of null-terminated form names, with the final name terminating with two null
characters.
Error Codes Only the generic error codes defined in [Ref. 1] can be generated by this command.
Comments None.
4.4 WFS_INF_TTU_QUERY_FORM
Description This command is used to retrieve details of the definition of a specified form.
Input Param LPSTR lpszFormName;
lpszFormName
Points to the null-terminated form name on which to retrieve details.
Output Param LPWFSTTUFRMHEADER lpFrmHeader;
typedef struct _wfs_ttu_frm_header
{
LPSTR  lpszFormName;
WORD  wWidth;
WORD  wHeight;
WORD  wVersionMajor;
WORD  wVersionMinor;
WORD  fwCharSupport;
LPSTR  lpszFields;
WORD  wLanguageID;
} WFSTTUFRMHEADER, *LPWFSTTUFRMHEADER;
lpszFormName
Specifies the null-terminated name of the form.
wWidth
Specifies the width of the form in columns.
wHeight
Specifies the height of the form in rows.
wVersionMajor
Specifies the major version. If the version is not specified in the form then zero is returned.
wVersionMinor
Specifies the minor version. If the version is not specified in the form then zero is returned.
fwCharSupport
A single flag indicating whether the form is encoded in ASCII or UNICODE:
Value Meaning
WFS_TTU_ASCII XFS form is encoded in ASCII.
WFS_TTU_UNICODE XFS form is encoded in UNICODE.
lpszFields
Pointer to a list of null-terminated field names, with the final name terminating with two null
characters.
wLanguageID
Specifies the language identifier for the form.
Error Codes In addition to the generic error codes defined in [Ref. 1], the following error codes can be
generated by this command:
Value Meaning
WFS_ERR_TTU_FORMNOTFOUND The specified form cannot be found.
WFS_ERR_TTU_FORMINVALID The specified form is invalid.
Comments None.
4.5 WFS_INF_TTU_QUERY_FIELD
Description This command is used to retrieve details of the definition of a single or all fields on a specified
form.
Input Param LPWFSTTUQUERYFIELD lpQueryField;
typedef struct _wfs_ttu_query_field
{
LPSTR  lpszFormName;
LPSTR  lpszFieldName;
} WFSTTUQUERYFIELD, *LPWFSTTUQUERYFIELD;
lpszFormName
Pointer to the null-terminated form name.
lpszFieldName
Pointer to the null-terminated name of the field about which to retrieve details. If this value is a
NULL pointer, then retrieve details for all fields on the form.
Output Param LPWFSTTUFRMFIELD *lppFields;
lppFields
Pointer to a NULL terminated array of pointers to field definition structures:
typedef struct _wfs_ttu_frm_field
{
LPSTR  lpszFieldName;
WORD  fwType;
WORD  fwClass;
WORD  fwAccess;
WORD  fwOverflow;
LPSTR  lpszFormat;
WORD  wLanguageID;
} WFSTTUFRMFIELD, *LPWFSTTUFRMFIELD;
lpszFieldName
Pointer to the null-terminated field name.
fwType
Specifies the type of field and can be one of the following:
Value Meaning
WFS_TTU_FIELDTEXT A text field.
WFS_TTU_FIELDINVISIBLE An invisible text field.
WFS_TTU_FIELDPASSWORD A password field, input is echoed as ‘*’.
fwClass
Specifies the class of the field and can be one of the following:
Value Meaning
WFS_TTU_CLASSSTATIC The field data cannot be set by the
application.
WFS_TTU_CLASSOPTIONAL The field data can be set by the application.
WFS_TTU_CLASSREQUIRED The field data must be set by the application.
fwAccess
Specifies whether the field is to be used for input, output, or both and can be a combination of the
following bit-flags:
Value Meaning
WFS_TTU_ACCESSREAD The field is used for input from the physical
device.
WFS_TTU_ACCESSWRITE The field is used for output to the physical
device.
fwOverflow
Specifies how an overflow of field data should be handled and can be one of the following:
Value Meaning
WFS_TTU_OVFTERMINATE Return an error and terminate display of the
form.
WFS_TTU_OVFTRUNCATE Truncate the field data to fit in the field.
WFS_TTU_OVFOVERWRITE Print the field data beyond the extents of the
field boundary.
lpszFormat
Format string as defined in the form for this field.
wLanguageID
Specifies the language identifier for the field.
Error Codes In addition to the generic error codes defined in [Ref. 1], the following error codes can be
generated by this command:
Value Meaning
WFS_ERR_TTU_FORMNOTFOUND The specified form cannot be found.
WFS_ERR_TTU_FORMINVALID The specified form is invalid.
WFS_ERR_TTU_FIELDNOTFOUND The specified field cannot be found.
WFS_ERR_TTU_FIELDINVALID The specified field is invalid.
Comments None.
4.6 WFS_INF_TTU_KEY_DETAIL
Description This command returns information about the Keys (buttons) supported by the device.
This command should be issued to determine which Keys are available.
Input Param None.
Output Param LPWFSTTUKEYDETAIL lpKeyDetail;
typedef struct _wfs_ttu_key_detail
{
LPSTR  lpszKeys;
LPWSTR  lpwszUNICODEKeys;
LPWORD  lpwCommandKeys;
} WFSTTUKEYDETAIL, *LPWFSTTUKEYDETAIL;
lpszKeys
String which holds the printable characters (numeric and alphanumeric keys) on the Text Terminal
Unit, e.g. “0123456789ABCabcαβχ” if those text terminal input keys are present. This string is a
NULL pointer if no keys of this type are present on the device.
lpwszUNICODEKeys
String which holds the numeric and alphanumeric keys on the Text Terminal Unit like lpszKeys
but in UNICODE format. This string is a NULL pointer if capability fwCharSupport equals
WFS_TTU_ASCII or if no keys of this type are present on the device.
lpwCommandKeys
Array of command keys on the Text Terminal Unit. The array is terminated with a zero value.
This array is a NULL pointer if no keys of this type are present on the device.
WFS_TTU_CK_ENTER
WFS_TTU_CK_CANCEL
WFS_TTU_CK_CLEAR
WFS_TTU_CK_BACKSPACE
WFS_TTU_CK_HELP
WFS_TTU_CK_00
WFS_TTU_CK_000
WFS_TTU_CK_ARROWUP
WFS_TTU_CK_ARROWDOWN
WFS_TTU_CK_ARROWLEFT
WFS_TTU_CK_ARROWRIGHT
The following values may be used as vendor dependent keys.
WFS_TTU_CK_OEM1
WFS_TTU_CK_OEM2
WFS_TTU_CK_OEM3
WFS_TTU_CK_OEM4
WFS_TTU_CK_OEM5
WFS_TTU_CK_OEM6
WFS_TTU_CK_OEM7
WFS_TTU_CK_OEM8
WFS_TTU_CK_OEM9
WFS_TTU_CK_OEM10
WFS_TTU_CK_OEM11
WFS_TTU_CK_OEM12
The following keys are used for Function Descriptor Keys.
WFS_TTU_CK_FDK01
WFS_TTU_CK_FDK02
WFS_TTU_CK_FDK03
WFS_TTU_CK_FDK04
WFS_TTU_CK_FDK05
WFS_TTU_CK_FDK06
WFS_TTU_CK_FDK07
WFS_TTU_CK_FDK08
WFS_TTU_CK_FDK09
WFS_TTU_CK_FDK10
WFS_TTU_CK_FDK11
WFS_TTU_CK_FDK12
WFS_TTU_CK_FDK13
WFS_TTU_CK_FDK14
WFS_TTU_CK_FDK15
WFS_TTU_CK_FDK16
WFS_TTU_CK_FDK17
WFS_TTU_CK_FDK18
WFS_TTU_CK_FDK19
WFS_TTU_CK_FDK20
WFS_TTU_CK_FDK21
WFS_TTU_CK_FDK22
WFS_TTU_CK_FDK23
WFS_TTU_CK_FDK24
WFS_TTU_CK_FDK25
WFS_TTU_CK_FDK26
WFS_TTU_CK_FDK27
WFS_TTU_CK_FDK28
WFS_TTU_CK_FDK29
WFS_TTU_CK_FDK30
WFS_TTU_CK_FDK31
WFS_TTU_CK_FDK32
Error Codes Only the generic error codes defined in [Ref. 1] can be generated by this command.
Comments None.
5. Execute Commands
5.1 WFS_CMD_TTU_BEEP
Description This command is used to beep at the text terminal unit.
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.

Loading comments...