Comm2A MN

Description for communication application for Euro-500T Handy

Július Adam

Monte Negro version

Revision History
Revision 1.0027. Feb. 2006JAD

Build of MN document version

For Comm32.dll from version 4.29 and Comm2A from version 3.8.

Revision 1.0131. May 2006JAD

Added "ECR --> PC ONLINE mode" description

Documentation change for Comm32.dll from version 4.31 and Comm2A from version 3.9.

Revision 1.0217. Juli 2006JAD

Illegal characters and roman numbers are converted from text to binary data as 'space'.

Revision 1.0319. Apr. 2007JAD

Fixed all known bugs in descriptions.

Revision 1.0422. May 2007JAD

Added support for decimal comma/dot configuration.

Abstract

Document contains description how to use communication application Comm2A. This application can be used with the following ECR types: Euro-500T Handy.


Table of Contents

Introduction
1. License
1. Application Comm2A
1.1. About application Comm2A
1.2. Launching the application
1.3. Configuration file description
1.4. Range select
1.5. Error file description
1.6. Error codes (ACK results)
1.7. Separating items and values
2. Representation of data
2.1. Presentation of used types
3. Data in binary form description
3.1. ECR types
3.2. Taxes interpretation
3.3. Commands list
3.4. System flags
3.5. Cashier names
3.6. PLU structures and commands
3.7. Programming DPTs
3.8. Programming TAX
3.9. Functional texts
3.10. Delete PLU sale data
3.11. Execute financial report
3.12. Graphics logo
3.13. Units
3.14. Secondary currency exchange rate
3.15. ON-LINE communication PC—>ECR
3.16. Reading DPTs report
3.17. Reading TAX report
3.18. Receiving grand totals values
3.19. Financial report
3.20. Cashier sales report
3.21. Obtaining information about last sold item in PC-Online mode for Euro-2000 Alpha and Euro-500 Handy
3.22. Obtaining information about taxes of running sale in PC-Online mode
3.23. Reading sale data of PC ONLINE sale
3.24. Reading PLU count with non zero sale
4. Text data format
4.1. Commands list
4.2. Taxes interpretation
4.3. System flags
4.4. Cashier names
4.5. PLU's
4.6. Programming DPTs
4.7. Programming TAX
4.8. Functional texts
4.9. Delete PLU sale data
4.10. Execute financial report
4.11. Graphics logo
4.12. Units
4.13. Secondary currency exchange rate
4.14. ON-LINE communication PC—>ECR
4.15. Reading DPTs report
4.16. Reading TAX report
4.17. Receiving grand totals values (fiscal version)
4.18. Financial report
4.19. Cashier sales report
4.20. Obtaining information about last sold item in PC-Online mode
4.21. Obtaining information about taxes of running sale in PC-Online mode
4.22. Reading sale data of PC ONLINE sale
4.23. Reading PLU count with non zero sale
5. Data description for "ECR --> PC ONLINE mode"
5.1. Data description in binary form
5.2. Data description in text format
A. Glossary of used terms
B. Wait Times for ON-LINE sale commands
B.1. Minimal and maximal time for waiting between two online commands (on one bill) (“sale” or “information of sale” commands)
B.2. Minimal and maximal time between “end of sale” and beginning new sale (new bill)

Introduction

Table of Contents

1. License

1. License

  1. Free Version License. By receiving and/or using Elcom communication software, you accept the following Free Version User Agreement. This agreement is a binding legal agreement between Elcom s. r. o. and the purchasers, users or evaluators of Elcom software and products. If you do not intend to honor this agreement, remove all installed Elcom software from your computer now.

  2. Free Version Distribution. This Free Version software may be freely distributed, provided that:

    1. Such distribution includes only the original archive supplied by Elcom s. r. o. You may not alter, delete or add any files in the distribution archive (the only exception is in point 3).

    2. No money is charged to the person receiving the software, beyond reasonable cost of packaging and other overhead.

    3. Original files can be distributed included in application software that supports product from Elcom s. r. o.

    For information about redistribution of Elcom communication software visit our web site at http://www.elcom.sk or e-mail us .

  3. Free Version User Agreement. 

    1. Usage and distribution restrictions. The evaluator/user/buyer/owner may not use or distribute Elcom software for any unlawful purpose. The evaluator/user/buyer/owner is not allowed to attempt to disassemble or decompile Elcom Software and products.

    2. Copyright restriction. Elcom name and any logo or graphics file that represents our software may not be used in any way to promote products developed with our software. All parts of Elcom software and products are copyright protected.

    3. Limitation of responsibility. The evaluator/user/buyer/owner of Elcom software will indemnify and defend Elcom against lawsuits, claims, costs associated with defense or accusations that result from the use of Elcom software.

      Elcom is not responsible for any damages whatsoever, including loss of information, interruption of business, personal injury and/or any damage or consequential damage without limitation, incurred before, during or after the use of our products.

Chapter 1. Application Comm2A

1.1. About application Comm2A

The Comm2A.exe application ensures communication between PC and following ECR types: Euro - 1000M/T, Euro - 2000M/T/TE Alpha and Euro - 500T/TX Handy. It is 32-bit Windows application for Windows 95/98/2000/NT/XP. The application allows to transfer all programmed data, including on-line sales from ECR to PC and vice versa, including all reports and other read-only information.

1.2. Launching the application

1.2.1. Use Comm2A with command line parameters

There are three basic forms how to use Comm2A. Each of these forms use other command line arguments.

  1. Use with configuration fileComm2A.exe [/t] [/SK | /CZ | /CZf | /EN | /ENf | /GB | /GBf | /SW | /RO | /PL | /HU | /LV | /MK | /FI | /GR | /SR | /LT | /MN | /DK | /DE] [/cfg_file:file] [/modem_wait:nnnn] [/err_file:file] [/run_file:file] [/cfg:ssssss] [/drm:drm] [/online_wait:time]

    All needed parameters are obtained from configuration file. For all not entered optional command line parameters are used default values.

  2. Use only command line. Comm2A.exe [/t] [/SK | /CZ | /CZf | /EN | /ENf | /GB | /GBf | /SW | /RO | /PL | /HU | /LV | /MK | /FI | /GR | /SR | /LT | /MN | /DK | /DE] /com:n /speed:nnnn /ecr:nn /num:nn /o:nnn [/start:nnn] [/len:nnn] [/cfg:ssssss] [/tel:ttttttt] [/modem_wait:nnnn] /data_file:file [/err_file:file] [/run_file:file] [/drm:drm] [/online_wait:time]

    In this mode must be entered all necessary parameters otherwise the program displays error "Configuration file not found".

  3. Auto-detect ECR. Comm2A.exe /autodetect /num:nn [/com:n] [/speed:nnnn] [/num:nn] [/SK | /CZ | /CZf | /EN | /ENf | /GB | /GBf | /SW | /RO | /PL | /HU | /LV | /MK | /FI | /GR | /SR | /LT | /MN | /DK | /DE] [/err_file:file] [/t]

    This mode is used only to detect type of connected ECR .

  4. Read informations about sales on ECR. Comm2A.exe [/t] [/SK | /CZ | /CZf | /EN | /ENf | /GB | /GBf | /SW | /RO | /PL | /HU | /LV | /MK | /FI | /GR | /SR | /LT | /MN | /DK | /DE] /com:n /speed:nnnn /ecr:nn /num:nn /online [/cfg:ssssss] [/tel:ttttttt] [/modem_wait:nnnn] /data_file:file [/divmul]

    This mode is supported only by cash registers with "ECR --> PC online mode",

It is possible to combine I. and II. form. In this case all parameters that are not entered in II. form will be obtained from configuration file.

Example 1.1. Examples of command line usage

Comm2A.exe /autodetect /num:1 /SW /t

Comm2A.exe /t /GB /com:1 /speed:38400 /ecr:20 /num:1 /o:158 /start:0 /len:2400 /cfg:timeout=1500 "/data_file:PLU report.txt"

Note

Between parameters must be space. Within one parameter can not be used space character. If it is necessary to use space for file names, this command line parameter must be enclosed in quotation marks. Argument order is irrelevant.

1.2.2. Description of command line parameters

/SK /CZ /CZf /EN /ENf /GB /GBf /SW /RO /PL /HU /LV /MK /FI /GR /SR /LT /MN /DK /DE

Set up the country. Only one of these parameters at a time.

Table 1.1. Country shortcuts meaning

shortcutcountry
SKSlovakia
CZCzech (non fiscal version)
CZfCzech (fiscal version)
EN, GBgeneric english version (non fiscal)
ENf, GBfiscal english version
SWSweden
RORomania
PLPoland
HUHungary
LVLatvia
MKMacedonia
FIFinland
GRGreece
SRSerbia
LTLithuania
MNMonte Negro
DKDenmark
DEGermany

Comm2A has built country detection, but this depends from settings in operation system and not all operating systems support this feature. The second way how to set national version and do not use command line parameter is installing only one language pack. If there is only one language pack installed, Comm2A change to this specific national version.

National version set priority is:

  1. command line (the only safe method)

  2. language pack

  3. auto-detection from OS

/t

This parameter switches the application to text mode. This means that all data will be read from the text file and written into a text file.

For auto-detection this parameter is used to display detected type of ECR (otherwise is detected type only stored in err_file).

/com:n

Sets up the communication port number, where n is communication port number within 1-255.

/speed:nnnn

Sets up the communication speed, where nnnn is speed, either 9600 or 38400.

/ecr:nn

Sets up the ECR type, where the nn is ID number of particular ECR.

/num:nn

Sets up the ECR number (identification number in a "ECR network"), where nn is number within 1–99.

/o:nnn

Sets up the operation, where nnn is the operation ID number.

/start:nnn

Sets up the first transferred item (parameter is not compulsory for all operations).

/len:nnn

Sets up the number of transferred items (parameter is not compulsory for all operations).

For send text operations (/t) is available auto detection of input file lines.

/cfg_file:file*1

Sets up the position*2 of configuration file.

In case that the configuration file is not specified, the application test at first the actual directory for the configuration file, then application directory and if the cfg file is not found then the default path is used.

Note

The default path to the configuration file is the “Windows” directory (defaults to “C:\WINDOWS” for Windows 95/98/ME/XP and to “C:\WINNT” for Windows NT/2000; it also could be something totally different, this depends on the OS configuration).

/err_file:file*1

Sets up the “error” file position*2. "Error file" = file where operation results are logged.

/run_file:file*1

Sets up the “check” file position*2. "Run file" = file that will be erased after the application ends (can be used to determine if the application is running; the file needs to be created explicitly, it is not created by default).

/data_file:file*1

Sets up the position*2 of data file.

/cfg:ssssss

Setting the configuration string of the communication library, where ssssss is the configuration string.

The string is comprised of individual parameters separated by ';' (semicolon) characters. Parameters could contains also a numeric, or string value if needed. Such parameter is then written as “parameter=value”.

Table 1.2. Supported parameters (marked values in are automatically set during initialisation)

parameter name(s)description
modem+ / modem-sets up default settings for modem communication. modem+ changes break time for 9600 Baud to 1s and timeout to 6s. modem- changes break time for 9600 Baud to 20ms and timeout to 5s.
modemtime=timesets the modem answer time-out for dialling in milliseconds (60 s)
485+ / 485-sets up the usage/disusage of flow control necessary for RS-485 converters
485wait=timesets up the time space between the command that switches the converter and actual start of transmission. Time is specified in microseconds. (Warning: not all PCs support measuring time in microseconds. In this case, the time will be rounded up to nearest whole millisecond) (1 microsecond)
485coef=coefficientsets up the coefficient for switching the 485 converter into state for receiving data. The coefficient is in fact time in which the PC will transmit 1,000 bytes via the communication port divided by the time necessary to send one bit. To transmit one byte, it is necessary to transmit ten bits (start bit, eight data bits and a stop bit) and also account for the time between individual bytes.
timeout=timesets up the time of maximum ECR answer time-out in milliseconds (5s) (changed by modem+/- parameter)
break=timesets up wait time for start communication after break signal in milliseconds (20ms / 1s) (changed by modem+/- parameter)
break384=timesame as break, only for speed of 38 400 Baud (20ms)
break96=timesame as break, only for speed of 9 600 Baud (1s) (changed by modem+/- parameter)
warning+ / warning / warning-Specifies “warning mode”. “+” means – all warnings ends communication. “-” means – no warning ends communication. Without “+”/“-” means programming warnings ends communication (e. g. warning while programming PLUs)
wait_sn=timen” is number from 1 to 3 and time is delay in milliseconds. Meaning of n is: 1 – delay time in wait loop before change state to send (for 485), 2 = time before send of packet, 3 = time after send of packet (after send command to 485 for receive). Default values: s1 = 0, s2 = 0, s3 = 0.
wait_rn=timen” is number from 1 to 3 and time is delay in milliseconds. Meaning of n is: 1 – not used from version 4.30, 2 = wait time in "reading data from COM port loop", 3 = wait time in "wait for read data delay loop". Default values: r1 = 1, r2 = 1, s3 = 0.
decimal=characterThis parameter allow the user to select decimal separator for numbers. Standard value of decimal separator is dot. This configuration is useful if there is a third party software (e. g. MS excel™, OOo Calc™) and this software requires decimal comma (depending on operation system settings) and not decimal dot. This character will be used for both sides conversion (binary->text and text->binary). Decimal separator can be only one character long. If there is given more than one character, then only the first character will be used.
/tel:ttttttt

Sets up the phone number; used only if the library has to create the modem connection.

/modem_wait:nnnn

Sets up the wait time (in ms) between end of dialing and start of communication. This time is necessary for some modems. Default time is 500 ms.

/drm:drm

Sets display and rounding decimal places and method. Meaningful only for text conversions. Meaning of numbers is:

  • d - number of decimal places

  • r - number of places to round

  • m - rounding method

    • 0 - to nearest integer,

    • 1 - always up,

    • 2 - always down,

    • 3 - quarter rounding.

Note

For reading data from PLU is meaningful only decimal places for display. Rounding of numbers is used only when are data transferred to ECR.

/online_wait:time

Time wait time between two online sale commands in milliseconds.

/autodetect

Use this parameter to launch auto-detection of connected ECR. Use of parameters /com:n and/or /speed:nnnn limits the detection to one COM port and/or one communication speed. Use parameter /t to display found ECR also on the screen.

/online

In this mode it is possible to receive sales data from ECR in "ECR --> PC ONLINE mode". Program Comm2A will be running until the interruption of user. It is possible to save received data in text and in binary form. In binary mode will be each received sales data stored in a separate file. Name of this file consist of given file name and actual date and time on PC. In text mode (parameter /t) will be each sale stored in one data file. Data are not erased.In this mode is only one file. Each new sale is written at the end the actual file. Detailed description about saved ONLINE data is in Chapter 5, Data description for "ECR --> PC ONLINE mode".

/divmul

This parameter changes the separator between first and second quantity in the text mode in the "ECR --> PC ONLINE mode" from standard separator to "/" or "*" (depends on actual ECR settings).

*1: file is the file name (can also contain the path, relative or absolute); if the file and/or path contain spaces, it is necessary to enclose such file name/path in quotes (“file name”).

Example 1.2. Set file name for "data file"

/data_file:"c:\Program Files\Elcom\Comm2A\Com2A.data"

*2: position = file name (and path).

1.3. Configuration file description

  • 1st row contains serial port settings in this format: port:speed,parity,databit,stopbit

    where:

    • port: COM1 – COM255

    • speed: 9600 or 38400

    • parity: n

    • databit: 8

    • stopbit: 1

    Example 1.3. 1st row

    COM2:38400,n,8,1

  • 2nd row contains the information on ECR: numPLU numDPT numCashiers (will be ignored)

    where:

    • numPLU: 1000, 2100, 2400, 6000, 9000 or 10000 (according to ECR type)

    • numDPT: 8, 30 (according to ECR type)

    • numCashiers: 6 (according to national version and ECR type)

  • 3rd row contains data on transferred data: ItemsCount FirstItemIndex ItemSize

    where:

    • ItemsCount: number of transferred items (not used by all commands)

    • FirstItemIndex: index of the first item to be transferred, counted from 0. (not used by all commands)

    • ItemSize: size of single item (in bytes) (will be ignored)

    see the example for 3rd row.

  • 4th row contains: numOperation numECR typeECR dataFile

    where:

  • 5th row (optional line, used only when is needed to call a phone number)

    contains only PhoneNumber.

Example 1.4. Configuration file for reading all (2400) PLUs from ECR (without phone number)

COM2:38400,n,8,1
2400 8 6
2400 0 32
138 1 1 D:\DATA\comm2A.dat

Example 1.5. Configuration file for reading text logo from ECR (with phone number)

COM2:38400,n,8,1
2400 8 6
6 0 24
128 1 1 D:\DATA\comm2A.dat
0512424242

Example 1.6. Parameters for 3rd row

operation ID numberThird row contentsNote
3PLU_count 1PLU-1 34PLU_count = PLU count for transfer, 1PLU-1 = number of 1st PLU – 1
341 9 34example: "transferring PLUs from 10 to 50"
10PLU_count 1PLU-1 30 
10101 99 30example: "transferring PLUs from 100 do 200"
12PLU_count 1PLU-1 1PLU_count = PLU count for erase salled data, 1PLU-1 = number of 1st PLU – 1
12101 99 1example: "erase sale data of PLUs from 100 do 200"
18PLU_count 0 28PLU_count = PLU count of PLUs to by sold through PC ONLINE mode.
29PLU_count 1PLU-1 30 
30PLU_count 1PLU-1 34 
40LinesCount 0 23LinesCount = Lines in message for cashier
131PLU_count 1PLU-1 44 
138PLU_count 1PLU-1 32 
157PLU_count 1PLU-1 32 
158PLU_count 1PLU-1 44 

For all other commands are these values ignored. Also the value of last number (data length) is ignored.

1.4. Range select

Range select means setting of parameters ItemsCount and FirstItemIndex in configuration file and/or use of parameters /start:nnn and /len:nnn in command line.

If the command does not require range select then the values ItemsCount and FirstItemIndex will be ignored. These values in configuration file can be replaced by values from command line (use /start:nnn as replacement for FirstItemIndex and /len:nnn as replacement for ItemsCount).

For the values selecting active range are established these rules:

  • ItemsCount and FirstItemIndex are always of type WORD

  • ItemsCount is in range from 1 to "max_PLU_count".

  • FirstItemIndex is in range from 0 to "max_PLU_count - 1".

  • Command line parameters have higher priority than configuration file parameters.

  • In text mode it is possible to use auto-detection of input file length and entering start and length parameters is not necessary (but they have higher priority than auto-detection parameters, if are given in command line).

  • For Receiving PC journal, Text journal or PLU report with non zero sale are configuration file parameters ignored and will be used auto-detect method to get the actual range for downloading these reports.

  • For receiving programmed PLUs and full PLU report (except PLU with non zero sale) it is always necessary to select the range.

  • For DWORD range select can be used auto-detection (it is not necessary to enter these values).

1.5. Error file description

The "Error file" contains result of performed operation.

Table 1.3. Description of application return values (in Error file)

first rowmeaning and content of next rows
0 OK
Communication completed correctly.
2nd row could contain additional information*.
1 ERROR
Error during communication.
2nd row contains value of last received ACK packet (not true for ECR auto-detection).
3rd row could contain additional information*.
2 CANCELLED
Communication aborted by user.
2nd row could contain additional information*.
7 TYPE_OK
ECR type auto-detection successful
2nd row contains communication port and speed.
3rd row contains ID code of detected ECR type.
8 CHANGE_VAT
PLUs are transferred into ECR and at least one VAT assignment was changed – communication completed correctly.
2nd row could contain additional information*.
9 SALE
Communication with ECR not successful – there is an open sale present at the ECR.
2nd row contains value of last received ACK packet.

*: additional information is a string (Line contains characters for each item. The characters are not delimited by spaces).

  • Programming PLUs

    • not transferred PLUs are represented by “*”

    • “A” represents changed VAT for PLU, “N” represents unchanged VAT for PLU

    • “W” - warning – some of PLU data are bad and PLU was not programmed

  • send message to ECR:

    • “P” line is printed, “W” line contains bad character and was not printed

  • all others:

    • “E” - error,

    • “W” - warning,

    • “@” - transfer OK.

    • “T” - Incorrect Tax / VAT level assignment (item but is incorrect and was not accepted by ECR).

    • “D” - Incorrect Department assignment (item but is incorrect and was not accepted by ECR).

    • “U” - Incorrect Unit assignment (item but is incorrect and was not accepted by ECR).

    • “Q” - Incorrect stock or quantity(item but is incorrect and was not accepted by ECR).

    • “V” - Incorrect price (item but is incorrect and was not accepted by ECR).

    • “I” - Index out of range.

    • “C” - Incorrect text string / character (e. g. PLU name).

    • “B” - Incorrect bar code (only for programming PLUs).

    • „?“ - There was any communication error. It was not possible to determine the transfer status to cash register.

All other errors are only displayed to user in DialogBox.

1.6. Error codes (ACK results)

Table 1.4. Error codes description

Error codeDescription
0All OK.
1Communication error (wrong check sum, wrong packet, wrong operation...).
2PLU programmed VAT assignment changed (for PLU programming).
New tax rates cannot be written to fiscal memory from some reason (for VAT programming).
3Opened receipt (sale in progress) in ECR (communication is not possible).
4VAT assignment is out of range or VAT is not active!
5Department assignment is out of range!
6Sales unit is out of range!
7Quantity is out of range!
8Price is out of range!
9Online sale not allowed in current ECR mode!
10Command is out of range or not allowed in this mode!
11PLU index is out of range!
12Not right hexadecimal sign code (name of PLU or number of credit card).
13Payment not allowed!
14Payment type not allowed!
15Currency payment is out of range or not allowed type of currency because ECR is in wrong Euro phase
16Not started sale! Command not allowed!!
26Invalid bar-code
27Operation is not possible. Make daily report first.
28Operation is not possible. Fiscal memory is full.
101It is not possible to perform REFUND operation.
103PLU not sold.
105Maximum count of PLU/lines in a sale has been reached.
106Multiplication reached maximum amount.
108It is not possible to sell item with programmed price. Programmed price is inactive.
109Particular tax level amount is over limit from the last daily report.
111Forbidden operation with returnable packs.
112Forbidden sale of PLU. PLU is inactive.
113Tax level inactive.
114Price is missing.
117Operation caused negative stock.
118Maximum price of sale is reached. Terminate the sale.
119Price HALO limit is over.
120Add-on/discount to returnable packs disabled.
122Open price is inactive. DPT (PLU) flag prevents entry of price from keyboard.
124Add-on/discount amount limit is over.
125Decimal places limit is over. 2nd system flag disables sale for more decimal places.
127Add-on/discount to negative value disabled.
128Void disabled in this stage of sale.
130Grand-Totals reached the maximum amount.
131Performed operation caused negative Grand-Total.
132Attempt of check/credit payment in foreign currency.
135Credit card payment limit is over.
136Negative value of tax level.
137Incorrect bar code.
138Name of sold item is empty. Sale is not possible.
142Negative items amount limit is over.
143Discount amount limit is over.
144Damaged tax record.
193Programmed EAN has incorrect form.
194Final price for EAN creating limit is over.
195
196PLU price for EAN creating limit is over.
197PLU amount for EAN creating limit is over.
199Document entry is necessary for receipt opening.

1.7. Separating items and values

In text mode is necessary to separate values from each other. For separating these values are used two sorts of separators.

  • ItemSeparator. is used to separate two values for the same logical block, like PLU name and PLU price. In Comm2A is this separator represented by character ';' (semicolon).

  • LineSeparator. is used to separate two logical block of the same meaning (in most cases). This separator is represented as new line (CR + LF = 0x0D, 0x0A).

Chapter 2. Representation of data

2.1. Presentation of used types

2.1.1. Data types

Table 2.1. Definition of data types

type namelength (in bytes)description
BYTE1unsigned number (integer)
WORD2unsigned number (integer), little endian (low byte, high byte)
DWORD4unsigned number (integer), little endian (lowest byte first, highest byte last)
N66signed integer, little endian. Low (first) 47 bits are used for unsigned part of number and last bit is used to determine positive (clear (set to 0)) or negative (set to 1) value. See example of 6 byte integer number.
char1signed integer
int2signed integer, little endian (low byte, high byte)
long4signed integer, little endian (lowest byte first, highest byte last)
double8real number. (compatible with type double in Borland C++ Builder and MS Visual C++ ). If type extension is used then decimal places are not used.
stringvariousText string. Maximal length depends from data type (reserved length = end byte - start byte + 1). If actual string length is less than the reserved length, then the string is null terminated. After string termination (character 0x00) should be only null characters (0x00). See character map for correct interpreting of characters.
n*charnString with exact length n bytes. See character map for correct interpreting of characters. (Most of these types are only numerical values)
BARCODEvariousbar-code stored in compressed BCD form (two numbers on each byte). If the count of numbers is odd, then on the first byte must be the top half of byte be set to zero.

Table 2.2. Extension of definition of numerical data types

type extensiondescription
(1)Number with one decimal place
(2)Number with two decimal places
(3)Number with three decimal places
(*)Number of decimal places for price is selected with first system flag sixth digit in ECR (decimal places for display) in range <0, 3>.
(*2)Number of decimal places for secondary currency (decimal places for display) in range <0, 3>. (See user manual.)
(#)Number of decimal places for amount is selected with second system flag third digit in ECR (decimal places for quantity entering) in range <0, 3>.

Caution

Decimal numbers are represented as whole numbers. Original value is multiplied (for encoding) or divided (for decoding) by number 1 (0 places), 10 (1 place), 100 (2 places), 1000 (3 places), according to number of places we want to use.

Example 2.1. 6 byte integer number

numbersequence of bytes (hexadecimal)
101 00 00 00 00 00
-101 00 00 00 00 80
778995785 DD 76 00 00 00
2001599834113812 90 78 56 34 12
-2001599834113812 90 78 56 34 92

2.1.2. String characters

Table 2.3. Definition of string characters

code in ECRcharacter / meaning
0x7bČ
0x7cč
0x7dŠ
0x7eš
0x7fŽ
0x80ž
0x81Đ
0x82đ
0x83Ć
0x84ć
0x1fdouble width character (character after this character has double width)
0x5b*Roman number "I" (character Ⅰ)
0x5c*Roman number "II" (character Ⅱ)
0x5d*Roman number "III" (character Ⅲ)
0x5e*Roman number "IV" (character Ⅳ)
0x5f*Roman number "V" (character Ⅴ)
0x60*Roman number "VI" (character Ⅵ)
0x20 - 0x7astandard ASCII characters (except character 0x5b-0x60 used for vat assignment)

Chapter 3. Data in binary form description

3.1. ECR types

Table 3.1. ECR types

numbertypePLU countDPT count
10Euro-500T Handy2 10030
11Euro-500T Handy10 00030

3.2. Taxes interpretation

  • all ECRs have seven VAT levels labelled as numbers from 1 to 7,

  • VAT level 7 is tax-free VAT level

  • VAT levels from 1 to 6 are programmable VAT levels

  • VAT level with value 100,00% is forbidden VAT level (sale not possible in this VAT level)

3.4. System flags

Command number:1 - programming, 129 - receiving
Data length:34

0.Byte In ECR
bitMeaningFlagnumber
0xnumber of decimal places for price and TAX displaying (range: <0, 3>)16
1x
2x
3xnumber of decimal places for price rounding (range: <0, 3>)15
4x
5x
6xsystem of rounding 0 – up from 5; 1 – always up; 2 – always down; 3 - quarter rounding11
7x

1.Byte In ECR
bitMeaningFlagnumber
0xnumber of decimal places for TAX rounding (range: <0, 3>)14
1x
2x
3xnumber of decimal places for total price of sale rounding (range: <0, 3>)13
4x
5x
6xprices of PLU and DPT are programmed with TAX – without TAX ( 0 – prices with TAX, 1 – prices without TAX)12
7x

Note

Note: 0. and 1. byte is ignored by ECR.

2.Byte In ECR
bitMeaningFlagnumber
0xnumber of decimal places for quantity rounding (range: <0, 3>)23
1x
2xnumber of blank lines between receipts (range: <0, 6>)24
3x
4x
5xnumber of logo lines = 6 – cannot be changed25
6x
7x

3.Byte In ECR
bitMeaningFlagnumber
0xquantity multiplying: if 0 then m1 / m2, if 1 then m1 * m226
1xdate format (0 – day month year)22
2x0 – not to print / 1 – to print TAX values on sale receipt21
3-not used  
4-
5-
6-
7-

Byte(s)Meaningtypesystem flagdigits
4-5receipt number (range: <1, 9999>)WORD34-7
6ECR number (range: <1, 99>)BYTE32-3

7.Byte In ECR
bitMeaningFlagnumber
0x0 – resets the receipt number after daily report, 1-clear receipt number after monthly report31
1-not used  
2-
3-
4-
5-
6-
7-

Note

In fiscal version is the value of 0th bit in 7th byte ignored and number of receipt is cleared after daily report.

8.Byte In ECR
bitMeaningFlagnumber
0xrequired subtotal key pressing before receipt finishing 0 – not required, 1 – required42
1xsubtotal amount printing after subtotal pressing 0 – no, 1 – yes41
2xrequired credit card number entering if paid by Credit 0-not required, 1-required43
3xrequired customer’s payment amount entering 0-not required, 1-required44
4-not used  
5-
6-
7-

ByteMeaningtypesystem flag
9not usedBYTE 

10.Byte In ECR
bitMeaningFlagnumber
0xterminal code for bar code scanner (0 – CR+LF, 1 – CR, 2 – LF)51
1x
2xcommunication speed of bar code scanner (0 – 1200, 1 – 2400, 2 – 4800, 3 – 9600, 4 – 19200)52
3x
4x
5xcommunication speed of PC (0 – 9600 or 1 – 38400)53
6xtype of electronic scales (bits 0 and 1) - see user manual for scales types54
7x

11.Byte In ECR
bitMeaningFlagnumber
0xtype of electronic scales (bits 2 and 3) - see user manual for scales types54
1x
2xPC ONLINE (0 - PC->ECR, 1 – PC->ECR and ECR->PC)55
3xpayment's terminal protocol type: 0 - none, 1 - Bull Amadeo, 2 - PinPad - KeyCorp (only for Euro-500 Handy)56
4x
5x
6-   
7-

Note

Byte 10 and 11 are ignored in Euro-1000.

12.Byte In ECR
bitMeaningFlagnumber
0xfont for battery power supply61
1x
2xfont for adapter power supply62
3x
4xgraphical logo printing 0 – no, 1 – yes63
5x0 – large font (2,5 mm high), 1 – small font (2 mm high)64
6-not used  
7xstandby mode time (bit 0) (only for Euro-500 Handy)65

Note

Byte 12 is ignored in Euro-1000M and Euro-2000M. (Works only with thermal printers = T, TE, TX types of ECR)

Note

For Euro-500 Handy is always used large font (byte 12, 5th bit).

13.Byte In ECR
bitMeaningFlagnumber
0xstandby mode time (bits 1 and 2): 0 - off , 1 - after 1 min, 2 - after 5min, 3 - after 10min, 4 - after 15min (only for Euro-500 Handy)65
1x
2-not used  
3-
4-
5-
6-
7-

Byte(s)Meaningtypesystem flag
14-15value of percent add-on (range: <1, 9999>)WORD(2)7
16-17limit for percent add on entered by ECR keyboard (range: <1, 99>)WORD7
18-19value of percent discount (range: <1, 9999>)WORD(2)8
20-21limit for percent discount entered by ECR keyboard (range: <1, 9999>)WORD8
22-27time: hour:min:sec, hour – two numbers, min – two numbers, sec – two numbers, in internal hexadecimal ECR codes (see example of stored time)6*char9
28-33date: day.month.year, day – two numbers, month – two numbers, year – two numbers, in internal hexadecimal ECR codes (see example of stored date)6*char10

Example 3.1. Time

The time "12:20:32" (24 hour time) is in ECR represented by sequence of bytes: 0x31, 0x32, 0x32, 0x30, 0x33, 0x32

Example 3.2. Date

The date "1st April 1999" (01.04.99) is in ECR represented by sequence of bytes: 0x30, 0x31, 0x30, 0x34, 0x39, 0x39

Important

It is not possible to change date and time from communication.

3.5. Cashier names

Data contains cashier names.

Command number:
2 - programming
130 - receiving
Data length:6 * 10 - for programming and receiving

Note

Only cashiers names can be programmed through computer. Passwords and access rights can be set only by ECR keyboard.

Byte(s)Meaningtyperange
0-9Cashier name (in internal hexadecimal code of ECR)stringcharacters

3.6. PLU structures and commands

Data contains information about PLUs.

3.6.1. PLU commands

Programming of stock state in ECR has own rules. These rules are in following text marked as *stock and means final state of PLU stock after programming.

Note

If transmitted stock value is more than 1 000 000 000 then the difference of transmitted value and 1 000 000 000 is added to stock value in ECR.

Example 3.3. Adding PLU stock

PLU stock value in ECR is 50. Transmitted value is 1 000 000 050. Data are accepted to ECR and follow operation is done: New stock value = 50 {primal stock} + (1 000 000 050 {transmitted value} - 1 000 000 000) = 100.

If new stock value could be more than 109 – PLU stock in ECR will be not changed.

Note

If transmitted stock value is less than -1 000 000 000 then the difference of absolute value of transmitted data and 1 000 000 000 stock value is deducted in ECR

Example 3.4. Subtracting PLU stock

PLU stock value in ECR is 45. Transmitted value is -1 000 000 030. Data are accepted to ECR and follow operation is done: New stock value = 45 {primal stock} - (1 000 000 030 {transmitted value} - 1 000 000 000) = 15.

If new stock value could be less than 0 – PLU stock in ECR will be not changed.

Important

In all PLU commands is used Range select of type Start and Length. Start means first PLU number (start counting from 0). Length means amount of transmitted PLUs except of command 159 (receive PLU non zero sale report).

3.6.2. PLU commands for Euro-500T/TX Handy

3.6.2.1. Programming PLU with stock state into Euro-500T/TX Handy

Command number:30 - programming PLU with stock state (safety)
Data length:n * 36

BytestypelengthMeaningrange
0-1WORD2PLU number<1, MAX PLU>
2-8BARCODE7bar-code13 numbers
9-22string14PLU namecharacters
23-27FLAGS5Euro-500 Handy Flags 
28-31DWORD(*)4PLU price<0, 99 999 999>
32-35long(3)4stock value of particular PLU

<0, 999 999 999>*stock

3.6.2.2. Programming PLU without stock state into Euro-500T/TX Handy

Command number:29 - programming PLU without stock state (safety)
Data length:n * 32

BytestypelengthMeaningrange
0-1WORD2PLU number<1, MAX PLU>
2-8BARCODE7bar-code13 numbers
9-22string14PLU namecharacters
23-27FLAGS5Euro-500 Handy Flags 
28-31DWORD(*)4PLU price<0, 99 999 999>

3.6.2.3. Receiving programmed PLUs from Euro-500T/TX Handy

Command number:157 - Receive programmed PLUs (safety)
Data length:n * 34

BytestypelengthMeaning
0-6BARCODE7bar-code
7-20string14PLU name
21-25FLAGS5Euro-500 Handy Flags
26-29DWORD(*)4PLU price
30-33long(3)4stock value of particular PLU

3.6.2.4. Receiving PLU sale report from Euro-500T/TX Handy

Command number:158 - Receive PLU sale report (safety)
Data length:n * 46

BytestypelengthMeaning
0-6BARCODE7bar-code
7-20string14PLU name
21-25FLAGS5Euro-500 Handy Flags
26-29DWORD(*)4PLU price
30-37double(*)8total sale
38-41long(3)4number of sales
42-45long(3)4stock value of particular PLU

3.6.2.5. Receiving PLU non zero sale report from Euro-500T/TX Handy

Command number:159 - receive PLU non zero sale report (safety)
Data length:n * 48

Important

This command use Range select of type Start and Length where Start = 0 and Length = count of plu with non zero sale.

BytestypelengthMeaning
0-1WORD2PLU number
2-8BARCODE7bar-code
9-22string14PLU name
23-27FLAGS5Euro-500 Handy Flags
28-31DWORD(*)4PLU price
32-39double(*)8total sale
40-43long(3)4number of sales
44-47long(3)4stock value of particular PLU

3.6.2.6. PLU flags for Euro-500 Handy

0.Byte In ECR
bitMeaningFlagnumber
0xdescriptive PLU (0 - no, 1 - yes)14
1xsingle PLU sale (0 - no, 1 - yes)15
2xstock status printed on PLU report (0 - no, 1 - yes)24
3xSale in case of negative stock value allowed (0 - no, 1 - yes)24
4xpossibility of fragmentary amount sale (0 - no, 1 - yes)25
5xSale unit (range: <0, 7>)23
6x
7x

ByteMeaningtypePLU flagnumbers
1DPT assignment (range: <0, 29>, 0 means DPT1, 29 means DPT30)BYTE12-3

2.Byte In ECR
bitMeaningFlagnumber
0xAssignment to VAT level.11
1x
2x
3x
4xLinked PLU (range: <0, 15>, 0 means no linked PLU, 1-15 means linked PLU 1001-1015).21-2
5x
6x
7x

3.Byte In ECR
bitMeaningFlagnumber
0xSale features: 0 – forbidden, 1 – open, 2 – preset, 3 – open and preset16
1x
2xPrice limits (range: <0, 7>, 0 means limit price to 1 digit...)27
3x
4x
5-not used  
6-
7-

ByteMeaningtypePLU flagnumbers
4not usedBYTE  

3.7. Programming DPTs

Data contains DPT names, flags and prices.

3.7.1. Programming DPTs for Euro-1000, Euro-2000 Alpha and Euro-500 Handy

Count of departments depends on cash register type.

Command number:4
Data length:
8*20 for Euro-1000, Euro-2000 Alpha
30*20 for Euro-500 Handy

Byte(s)Meaningtyperange
0-13DPT name (in internal hexadecimal code of ECR)stringcharacters
14-15DPT FLAGS  
16-19priceDWORD(*)<0, 99 999 999>

3.7.2. DPT flags

0.Byte In ECR
bitMeaningFlagnumber
0xAssignment to VAT level.11
1x
2x
3x
4xsingle PLU sale (0 - no, 1 - yes)12
5xSale features: 0 – forbidden, 1 – open, 2 – preset, 3 – open and preset14
6x
7xSale in case of negative stock value allowed (0 - no, 1 - yes)13

1.Byte In ECR
bitMeaningFlagnumber
0xPrice limits (range: <0, 7>, 0 means limit price to 1 digit...)15
1x
2x
3x
4-   
5-
6-
7-

3.8. Programming TAX

Data contains values for VAT levels.

Command number:5
Data length:7*12

Byte(s)Meaningtyperange
0-9VAT description (text)stringcharacters
10-11VAT level rateWORD(2)<0, 10000>

Note

If the VAT rate is 10000 then the VAT level is forbidden.

Note

The seventh item values have to be resettled (0x00 – text and rate too)!

Warning

If tax rates have same values, or in fiscal memory isn’t place for new rates, they will not be changed and written to FM.

Important

Command is accepted only if daily report is done.

3.9. Functional texts

Data contains texts printed on receipt.

Command number:
9 - programming
137 - reading
Data length:10*24

Byte(s)Meaningtyperange
0-24functional textsstringcharacters

Note

String has 24 characters but only first 17 are used in ECR. Others are ignored.

Table 3.4. Implicitly set functional texts in ECR

Text No.MeaningImplicitly
1Cash payment descriptionGOTOVINA
2Check payment descriptionČEK
3Credit card payment descriptionKREDIT
4Change value descriptionPROMJENA
5Description of refund operationPOVRAT
6Description of void operationSTORNO
7Description of Received on account entries cash or checkUNOS
8Description of Cash or check paid out entriesIZDAVANJE
9Description of total sale valueTOTAL
10Description of text during reference number printingBROJ DOKUMENTA

3.10. Delete PLU sale data

Command number:12
Data length:1

Important

In this commands is used Range select of type Start and Length. Start means first PLU number (start counting from 0). Length means count of PLUs witch sales data should be deleted.

ByteMeaningtyperange
0Print report on ECRBYTE0 - no, 1 - yes

Note

In some versions is print value ignored.

3.11. Execute financial report

Command number:13 - Exacute daily financial report
Data length:1

ByteMeaningtyperange
0Print report on ECRBYTE0 - no, 1 - yes

Note

In some versions is print value ignored.

3.12. Graphics logo

3.12.1. Graphics logo 168*180

Data contains B&W bitmap of graphical logo.

Used in Euro-1000T, Euro-2000T Alpha, Euro-500T Handy.

Command number:
15 - programming
143 - receiving
Data length:3780

The dimensions of this bitmap are 168 (horizontally) x 180 (vertically). One pixel is represented by one bit. Pixels are placed from left to right and from top to bottom.

3.13. Units

Data contains sale units (pieces, bottles, e.t.c.).

Command number:
16 - programming
144 - receiving
Data length:8 * 3 - for programming and receiving

Byte(s)Meaningtyperange
0-2Unit namestringcharacters

3.14. Secondary currency exchange rate

Data contains secondary currency exchange rate.

Command number:
17 - programming
145 - receiving
Data length:8

Byte(s)Meaningtyperange
0-7Secondary currency exchange ratedouble<0.001, 10000.0>

3.15. ON-LINE communication PC—>ECR

ON-LINE mode is a special command. This command allow use ECR as a fiscal printer (PLUs are sold from PC).

Command number:18
Data length:28

Important

Cash register allow only one data packet (item) for communication command 18. If there is necessary to send more data this command must be repeated for each item.

Byte(s)Meaningtype
0–26Data depending on command 
27command numberBYTE

Table 3.5. Online commands

numberdescription
1PLU sale
2PLU refund
3Finish salesimulation of TOTAL key pressing
4Finish PC ONLINE communication
5Payment
6PLU void

Warning

Conditions for ON LINE mode calling are: ECR in R or T mode. Started sale through ECR keyboard has to be finished before ON LINE communication start. Keyboard is not functional instead of CLEAR key, which cannot be used for ON LINE mode cancelling. It is necessary to finish sale through ECR keyboard after ON LINE mode has been cancelled. Then next ON LINE transport can be called. PC ON LINE is also cancelled with ECR power off. Wholesale through ON LINE mode (command 1, 2 and index 0) is printed in PLU report and is signed with “PC - ON LINE” text.

Important

Between online commands must be wait time. Description of Wait times see in appendix.

3.15.1. ON-LINE sale commands

Description of data used in commands 1 (PLU sale), 2 (PLU refund) and 6 (PLU void).

Byte(s)Meaningtyperange
0–13PLU name (or text)stringcharacters
14unit name*1 (number)BYTE<0, 8>*1
15DPT assignmentBYTE
<1, 8> for Euro-2000 Alpha
<1, 30> for Euro-500 Handy
16VAT level assignmentBYTEtaxes
17-20priceDWORD(*)<0, 99 999 999>
21-24quantityDWORD(#)<1, 9 999 999>
25-26index*2WORD<0, MaxPLU>*2

*1: Unit number from 0 to 7 means sale unit. Number 8 means that actual PLU will be sold as descriptive one (index for PLU database of ECR is 0), In this case only PLU name is important and other bytes are ignored

*2: index has different meaning for each of command type

  • for command 1 (PLU sale) and 2 (PLU refund)

    • index = 0 – PLU will be sold – PLU name, sale unit, DPT and VAT assignment, price and quantity will be used during the sale

    • index = 1-MaxPLU – PLU with this index will be sold from PLU database of ECR. PLU name and flags are used from PLU database. Price is used from packet (if more then 0) or from PLU database of ECR if it is zero, quantity is used from packet.

  • For command 6 (PLU void)

    • index = 0 – means - void will be done immediately – last PLU will be void: bytes 0–24 are ignored.

    • index > 0 – means – index for buffer of sold PLU-s – PLU with this index will be void: if PLU was sold using command 1:

      • index = 0 – assignments of quantity, DPT and VAT, price are controlled with PLU from buffer of sold PLU. PLU name, and unit sale are not controlled but should be the same as void PLU.

      • index = 1-MaxPLU – quantity and price (if more then zero) is controlled with PLU from buffer of sold PLU-s.

Example 3.5. Online sale and void

Operation (command)Content of buffer of sold PLUNumber of PLU-s in bufferResult
Indexes in buffer of sold PLUContent
PLU 1 sale (1)1.PLU 11OK
PLU 2 sale (1)
1.
2.
PLU 1
PLU 2
2OK
PLU 1 voiding (6) index = 11.PLU 21OK
Descriptive PLU 3 sale (1)1.PLU 21OK
PLU 2 voiding (6) index = 21.PLU 21Err
PLU 2 voiding (6) index = 1 empty0OK
PLU 4 sale (1)1.PLU 41OK

As we can see in example, voiding operation decrement and relocate content of buffer in ECR and descriptive PLU-s are not saved in buffer.

3.15.2. ON-LINE finish

In commands 3 (Finish sale) and 4 (Finish PC ONLINE communication) are data ignored, but should contain data in valid range (for example 0x00 in whole data area).

  • Finish sale: same function like TOTAL key pressing in sale mode.

  • Finish PC ONLINE communication: only ends PC ONLINE communication. Bill is open and it is not possible to end sale from PC. Next step must be done on ECR (sale, end of sale...).

3.15.3. ON-LINE payment

Description of data used in command 5 (payment method).

Byte(s)Meaningtyperange
0–3paid sumDWORD(*)<1, 2 100 000 000>
4payment typeBYTE
0 – cash
1 – check
2 – credit*3
5flag paid in currency*4BYTE
0 – paid in base currency
1 – paid in secondary currency
6-25ASCII string contains credit card numberstringnumerical characters*5
26not usedBYTE 

*3: Credit card can be involved. Credit card number is printed only if system flag 4 digit 2 is set.

*4: Flag make a difference only in Euro phase 1, 2, 3.

*5: ASCII string contains credit card number {maximal 19 numbers}.

3.16. Reading DPTs report

Data contains DPT names, flags and prices and sale values.

Command number:132
Data length:
8*52 for Euro-1000, Euro-2000 Alpha
30*52 for Euro-500 Handy

Byte(s)Meaningtype
0-13DPT name (in internal hexadecimal code of ECR)string
14-15DPT FLAGS 
16-19priceDWORD(*)
20-27number of sales since last daily reportdouble(3)
28-35value of sales since last daily reportdouble(*)
36-43number of sales since last periodical reportdouble(3)
44-51value of sales since last periodical reportdouble(*)

Note

Periodical values are updated only on performing daily report.

3.17. Reading TAX report

Data contains sale values for each VAT level.

Command number:133
Data length:7*68

Byte(s)Meaningtype
0-9VAT description (text)string
10-11VAT level rateWORD(2)
12-19taxable value since last daily reportdouble(*)
20-27net value since last daily report – only if system flag 1 digit 2 is set – otherwise not useddouble(*)
28-35not used 
36-39not used 
40-47number of sales since last periodical reportdouble(*)
48-55value of sales since last periodical reportdouble(*)
56-63not used 
64-67not used 

Note

Periodical values are updated only on performing daily report.

3.18. Receiving grand totals values

Data contains grand total (GT) values.

Command number:134
Data length:24

Byte(s)Meaningtype
0-7GT valuedouble(*)
8-15not used 
16-23not used 

3.19. Financial report

Sale values and counters are incremented to daily report since last daily report.

Command number:135 - reading daily report
Data length:376

DATA items looks as follows:

Byte(s)Meaningtype
0-7taxable valuedouble(*)
8-11number of receiptslong
12-19nettodouble(*)
20-27TAXdouble(*)
28-35void amountdouble(*)
36-39void quantitylong
40-47amount of subtotal voiddouble(*)
48-51quantity of subtotal voidlong
52-59refund amountdouble(*)
60-63refund quantitylong
64-71RA cash amountdouble(*)
72-75RA cash quantitylong
76-83RA cash amount in secondary currencydouble(*)
84-87RA cash quantity in secondary currencylong
88-95PO cash amountdouble(*)
96-99PO cash quantitylong
100-107PO cash amount in secondary currencydouble(*)
108-111PO cash quantity in secondary currencylong
112-119RA check amountdouble(*)
120-123RA check quantitylong
124-131not used (RA check amount in secondary currency)double(*)
132-135not used (RA check quantity in secondary currency)long
136-143PO check amountdouble(*)
144-147PO check quantitylong
148-155not used (PO check amount in secondary currency)double(*)
156-159not used (PO check quantity in secondary currency)long
160-167discount amountdouble(*)
168-171discount quantitylong
172-179add on amountdouble(*)
180-183add on quantitylong
184-191difference of rounding (used for quarter rounding)double(*)
192-195not used 
196-203not used 
204-207not used 
208-215total sale cash amountdouble(*)
216-219total sale cash quantitylong
220-227total sale cash amount in secondary currencydouble(*)
228-231total sale cash quantity in secondary currencylong
232-239total sale check amountdouble(*)
240-243total sale check quantitylong
244-251not used (total sale check in secondary currency)double(*)
252-255not used (total sale check quantity in secondary currency)long
264-267total sale credit amountdouble(*)
264-267total sale credit quantitylong
268-275not used 
276-279not used 
280-287cash in drawerdouble(*)
288-295cash in drawer in secondary currencydouble(*)
296-303check in drawerdouble(*)
304-311not used (check in drawer in secondary currency)double(*)
312-319credit in drawerdouble(*)
320-327not used 
328-335not used (bottle sale amount)double(*)
336-339not used (bottle sale quantity)long
340-347not used (bottle refund amount)double(*)
348-351not used (bottle refund quantity)long
352-359not used (bottle subtotal void amount)double(*)
360-363not used (bottle subtotal void quantity)long
364-367number of all receiptslong
368-371number of fiscal receiptslong
372-375not used (number of changes of names and tax levels)long

3.20. Cashier sales report

Data contains cashier names and sales report.

Command number:139 - cashier sales report
Data length:6 * 34 - for cashier sale report

Byte(s)Meaningtype
0-9Cashier name (in internal hexadecimal code of ECR)string
10-13number of sales since last daily reportlong
14-21sale amount since last daily reportdouble(*)
22-25number of sales since last periodical reportlong
26-33sale amount since last periodical reportdouble(*)

Note

Periodical values are updated only on performing daily report.

3.21. Obtaining information about last sold item in PC-Online mode for Euro-2000 Alpha and Euro-500 Handy

This command can be used to check actual state of online sale and correct sale of PLUs.

Command number:147
Data length:55

Byte(s)Meaningtype
0number of PLU-s in buffer of sold PLU-s*1BYTE
1–28PC - ONLINE content of sale packet of last sold PLU*2 
29-36value*3double(*)
37-38number of actual receipt (value 0 – 9999)WORD
39-46total sum of saledouble(*)
47-54total sum of sale in secondary currencydouble(*)

*1:

  • command 6 - void – voiding operation cuts number of PLU-s of 1

  • command 1 - sale – descriptive PLU sale – descriptive PLU are not counted to buffer of sold PLU-s

*2: zero if no PLU was sold

*3: if last item is

  • sold PLU (command 1) then total money sum of last sold PLU: quantity*price = sum (counted in ECR)

  • refund PLU (command 2) then total money sum of last sold item: -quantity*price = -sum (counted in ECR)

  • void PLU (command 6) then total negative sum of money of voided item -sum (from buffer of sold PLU-s)

  • payment (command 5):

    • if sale was finished (payment was more or equal to total sum of sale) – change

    • if sale was not finished (payment was not more then total sum of sale) – surcharge

3.22. Obtaining information about taxes of running sale in PC-Online mode

Command number:148
Data length:120

Byte(s)Meaningtype
0-7total sum of sale (in basic currency)double(*)
8-15sum in non-taxable leveldouble(*)
16-23taxable value in VAT level 1double(*)
24-31tax value in VAT level 1double(*)
32-39taxable value in VAT level 2double(*)
40-47tax value in VAT level 2double(*)
48-55taxable value in VAT level 3double(*)
56-63tax value in VAT level 3double(*)
64-71taxable value in VAT level 4double(*)
72-79tax value in VAT level 4double(*)
80-87taxable value in VAT level 5double(*)
88-95tax value in VAT level 5double(*)
96-103taxable value in VAT level 6double(*)
104-111tax value in VAT level 6double(*)
112-119not used 

Note

All items are valid only during PC ONLINE sale (before last payment send from PC to ECR). Tax values are valid on to MAXTAX – others are zero. Values do not include roundings (e.g. quater rounding calculations) and are valid only during open sale.

3.23. Reading sale data of PC ONLINE sale

Command is used to get information about sale through PC.

Command number:
150 - Reading sale data of PC ONLINE sale
151 - Reading sale data of PC ONLINE sale with data erasing
Data length:12

DATA contains sale info of PC Online sale.

Byte(s)Meaningtype
0-3number of saleslong
4-11amount of salesdouble(*)

3.24. Reading PLU count with non zero sale

Command is used to get count of PLUs sold from ECR memory.

Command number:152
Data length:2

DATA contains count of PLU witch were sold since last PLU Z report.

Byte(s)Meaningtype
0-1number of PLU-s with non zero saleWORD

Chapter 4. Text data format

4.2. Taxes interpretation

Taxes are specific for each country. In the next table will be specified how are they interpreted in text form.

Table 4.3. Text interpretation of VAT levels

Country codeVAT level
non taxableminimalmaximalspecial
(none)016--
SK
CZ non fiscal
EN
EN - fiscal
SW
FI
MN
DE
DK
LV
CZ fiscal015--
RO014--
GR
HU0 - TAM, 4 - AJT13 (programable)0 - TAM, 4 - AJT
PLdepends from TAX programming170 - disabled sale
MK--15--
SR--19--
LT014
(only in new versions)
6 – determines PAY-IN level
7 – determines PAY-OUT level
CA016
1 – Federation
2 – Provintial
6 – Federation & Provintial

4.3. System flags

Command number:1 - programming, 129 - receiving
Lines count:12

System flag setting in ECR. File consists of 12 lines. Lines set system flags of ECR. Not all flags have to be used in particular ECR types, or flags can be used in turned-order (see ECR user’s guide). Particular digits in line are not separated with separator. Flag digits meaning (warning, digit order is not equal to programming order of system flags in ECR):

  • 1st line

    • 1st digit: number of decimal places for price and tax displaying (0 – 3)

    • 2nd digit: number of decimal places for price rounding (0 – 3)

    • 3rd digit: rounding 0 – from 5 up, 1 – up, 2 – down, 3 – quarter rounding

    • 4th digit: number of decimal places for tax rounding (0 – 3)

    • 5th digit: number of decimal places for total sale rounding (0 – 3)

    • 6th digit: type of tax counting: 0 – PLU and DPT prices include tax, 1 – price without tax

  • 2nd line

    • 1st digit: number of decimal places for price and tax displaying (0 – 3)

    • 2nd digit: number of free lines between receipts (0 – 6)

    • 3rd digit: number of logo lines (range depends on ECR type)

    • 4th digit: multiple price , if 0 then m1/m2, if 1 then m1*m2

    • 5th digit: date form, 0 – day month year, 1 – month day year

    • 6th digit: 0 – not to print / 1 – print tax data on receipt

  • 3rd line

    • digits 1-4: receipt number (1 – 9999) – it is ignored by transmission to ECR

    • digits 5-6: ECR number (1 – 99)

    • 7th digit: reset: 0 – resets receipt number after daily report, 1 – after monthly report – in some version is ignored (in all fiscal versions and some others).

  • 4th line

    • 1st digit: obligation to press SUBTOTAL before TOTAL to finish sale: 0 – no, 1 – yes

    • 2nd digit: ST printing on receipt: 0 – no, 1 – yes

    • 3rd digit: obligation to enter credit card number by credit payment: 0 – no, 1 – yes

    • 4th digit: cashier has to enter paid value accepted from customer: 0 – no, 1 – yes

  • 5th line

    • 1st digit: terminal character for bar code scanner (0 – CR+LF, 1 – CR, 2 – LF)

    • 2nd digit: communication speed of scanner (0 – 1200, 1 – 2400, 2 – 4800, 3 – 9600, 4 –19200)

    • 3rd digit: communication speed of PC serial port (0 – 9600, 1 – 38400)

    • 4th digit: type of scales (0 – CAS Morcan, Martes T, 1 – EURO scales, Martes M, 3 – not used, 4 – not used)

    • 5th digit: PC ONLINE (0 – PC -> ECR, 1 – PC -> ECR as well as ECR -> PC)

    • 6th digit: protocol for payment terminal: 0 - none, 1 - Bull Amadeo, 2 - PinPad - KeyCorp (is not valid for Euro-2000 Alpha cash register software builds before 1st February 2006 and is not used in all national versions)

  • 6th line (five digits) (not used on matrix printers, used only on termo printers)

    • 1st digit: printing mode for battery, (0 – normal mode, 1 – economic mode, 2 – fast) (not used for all cash registers)

    • 2nd digit: printing mode for adapter, (0 – normal mode, 1 – economic mode, 2 – fast) (not used for all cash registers)

    • 3rd digit: printing graphic logo at the end of receipt, (0 – not printed, 1 – printed)

    • 4th digit: font size (0 – large font (height 2,5 mm), 1-small font (height 2 mm)) (used only for Euro-1000 and Euro-2000 Alpha)

    • 5th digit: standby mode: 0 - none, 1 - after 1minute, 2 - after 5 minutes, 3 - after 10 minutes, 4 - after 15 minutes (not used only for Euro-1000 and Euro-2000 Alpha).

  • 7th line: (four digits) value of percentage add-on always on two decimal places without decimal point (0 – 9999).

  • 8th line: (two digits) limit of percentage add-on for entering through ECR keyboard (0 – 99)

  • 9th line: (four digits) value of percentage discount always on two decimal places without decimal point (0 – 9999)

  • 10th line: (two digits) limit of percentage discount for entering through ECR keyboard (0 – 99)

  • 11th line: (six digits) time (hhmmss) (hh = hour, mm = minutes, ss = seconds)

  • 12th line: (six digits) date (always in form DDMMYY (independent from digit 5 in second line)) (DD = day, MM = month, YY = year)

4.4. Cashier names

Command number:2 - programming, 130 - receiving
Lines count:for each cahier one line

File consists of 6 lines per maximal 10 characters – names of 6 cashiers.

4.5. PLU's

4.5.1. PLU structure

Data contains all information about PLU.

Command number:
30 – PLU programming with stock
29 – PLU programming without stock
157 – Programmed PLU's data reading
Lines count:depends on transmitted PLU count

Note

Not all operation are supported in all ECR's.

Each line contains data about one PLU. Each item is separated by "ItemSeparator".

  • 1st item: PLU number (Range depends on particular ECR type).

  • 2nd item: PLU name (accepting only first 14 characters).

  • 3rd item: PLU price*1 – number of decimal places according to setting of digit 6 system flag 1 of ECR,.

  • 4th item: PLU flags: (see PLU flags)

  • 5th item: bar code.

  • 6th item: stock*2 on three decimal places

Note

*1: entering price 1500 will be interpreted as price 15.00 in cash register (decimal point can be included but is ignored, digits are valid only) if 6th digit of the 1st system flag in ECR is set to value 2.

Warning

Entered number 15.0 is transmitted as value 150 (!!!only digits are valid!!!) and will be interpreted in depency on the setting of 6th digit of the 1st system flag in ECR. If this flag is set to 2, then the price in cash register will be 1.50.

Note

*2: Value of transmitted stock is in range 1 - 999999999. If transmitted stock is out of range then only first 9 digits are used (in case plus sign or minus sign is used, then only first 8 digits are accepted). To change stock in ECR insert plus or minus sign before transmitted stock value, then transmitted stock value is added (deducted) to stock value of particular PLU in ECR. Stock value in ECR will not change in case new stock value should be besides allowed range.

Write transmitted value as –0 in case you do not want to change stock value in ECR.

Important

Position of decimal point is ignored like it is by price.

4.5.2. PLU report

Data all information about PLU sales.

Command number:
158 – Reading PLU sale data
159 – Reading PLU sale data with non zero sale
Lines count:depends on transmitted PLU count

Note

Not all operation are supported in all ECR's.

Each line contains data about one PLU. Each item is separated by "ItemSeparator".

  • 1st item: PLU number (Range depends on particular ECR type).

  • 2nd item: PLU name.

  • 3rd item: PLU price*1 – number of decimal places according to setting of digit 6 system flag 1 of ECR,.

  • 4th item: PLU flags are the same as in PLU structure:

  • 5th item: bar code.

  • 6th item: sale value

  • 7th item: sold quantity

  • 8th item: stock

4.5.3. PLU flags for Euro-500 Handy

Items are not separated by any separator.

  • 1st digit: descriptive PLU: 0 – no, 1 – yes

  • 2nd digit: one PLU sale: 0 – no, 1 – yes

  • 3rd digit: stock list on report: 0 – no, 1 – yes

  • 4th digit: sale in case of negative stock: 0 – no, 1 – yes

  • 5th digit: possibility of fragmentary quantum sale: 0 – no, 1 – yes

  • 6th digit: unit sale assignment (1 – 8)

  • digits 7 and 8: DPT assignment (1 – 30)

  • 9th digit: sale possibility: 0 – forbidden, 1 – open, 2 – preset, 3 – open and preset

  • 10th digit: price limits (1 – 8)

  • 11th digit: VAT level assignment

  • digits 12 and 13: linked PLU – two digits (00 – 15) where "00" means no linked PLU and numbers from 01 to 15 means linked PLU from 1001 to 1015.

4.6. Programming DPTs

Data contains DPT names, flags and prices.

Command number:4
Lines count:depends on DPT count in ECR

Each line contains data about one DPT. Each item is separated by "ItemSeparator".

  • 1st item: DPT name (name length depends on ECR type).

  • 2nd item: DPT flags:

    • 1st digit: VAT level assignment

    • 2nd digit: one PLU sale: 0 – no, 1 – yes

    • 3rd digit: sale possibility: 0 – forbidden, 1 – open, 2 – preset, 3 – open and preset

    • 4th digit: negative sale: 1 – yes, 0 – no

    • 5th digit: price limits (1 – 8)

  • 3rd item: price – according to setting of digit 6 system flag 1 of ECR

4.7. Programming TAX

Data contains values for VAT levels.

Command number:5
Lines count:7
  • 1st item: maximal 10 characters of descriptive text

  • 2nd item: tax rate value (0 – 10000) – always for two decimal places without decimal point (comma)

Note

VAT level is forbidden if tax rate value is 10000, (not possible to count assigned PLU).

4.8. Functional texts

Data contains texts printed on receipt.

Command number:
9 - programming
137 - reading
Lines count:10

File contains 10 lines. Descriptive text is in each line for particular operation of ECR according to programming manual. ECR uses only first 17 characters. For default values see implicitly set functional texts table.

4.9. Delete PLU sale data

Command number:12
Lines count:1

Important

In this commands is used Range select of type Start and Length. Start means first PLU number (start counting from 0). Length means count of PLUs witch sales data should be deleted.

Data contains 1 line with one value. Meaning of this value is "print" (0 - no, 1 - yes), but this value is ignored in some versions.

4.10. Execute financial report

Command number:
13 - daily
14 - periodical
Lines count:1

Data contains 1 line with one value. Meaning of this value is "print" (0 - no, 1 - yes), but this value is ignored in some versions.

4.11. Graphics logo

Data contains graphical logo (picture) represented on receipt.

Command number:
15 - programming
143 - receiving
Data format:uncompressed BMP

Standard file the type BMP, black/ white format, no compressed, Windows norm. It is possible to create it by common graphic programs (PhotoShop, Corel, PaintBrush, ...). Sometimes is necessary to invert the picture before the saving process. Size depend to ECR type (must be exact the same resolution as graphics logo in ECR otherwise the data will be classified as invalid).

4.12. Units

Data contains sale units (pieces, bottles, e.t.c.).

Command number:16 - programming, 144 - receiving
Lines count:8

File contains 8 lines. Text of particular sale unit is placed in each line of file. Only first three characters are accepted.

4.13. Secondary currency exchange rate

Data contains secondary currency exchange rate.

Command number:17 - programming, 145 - receiving
Lines count:1

File contains 1 line. It is one decimal number representing secondary currency rate (see ECR user’s guide)

Important

Rate has to contain decimal point.

4.14. ON-LINE communication PC—>ECR

Online mode is a special command. This command allow use ECR as a fiscal printer (PLUs are sold from PC).

Command number:18
Lines count:1 or more

File contains PLU sold through PC. Particular PLUs are separated in line with "LineSeparator". Line form depends on used command. Each item in line is separated with "ItemSeparator".

Commands 1 (PLU sale), 2 (PLU refund) and 6 (PLU void). 

  • 1st item: command ID

  • 2nd item: name of sold PLU (depends on ECR type). Used only if PLU ID is set to 0.

  • 3rd item: sale unit assignment: (0-7) 8-descriptive PLU

  • 4th item: DPT assignment (depends on ECR type)

  • 5th item: VAT level assignment (used only if PLU ID = 0)

  • 6th item: PLU price*1. If price is 0 and PLU ID > 0 is used price from ECR database.

  • 7th item: quantity on decimal place count depends on cash register settings - second system flag, third digit (decimal point is ignored)

  • 8th item: index for PLU (PLU ID) database of ECR or Index for void PLU.

Commands 3 (Finish sale) and 4 (Finish PC ONLINE communication). 

  • 1st item: command ID

Command 5 (Payment). 

  • 1st item: command ID

  • 2nd item: paid sum*1

  • 3rd item: payment type: 0-cash, 1-check, 2-credit card

  • 4th item: flag paid in currency: 0-in base currency, 1-in second currency

  • 5th item: credit card number

Note

*1: entering price 1500 will be interpreted as price 15.00 in cash register (decimal point can be included but is ignored, digits are valid only) if 6th digit of the 1st system flag in ECR is set to value 2.

Warning

Entered number 15.0 is transmitted as value 150 (!!!only digits are valid!!!) and will be interpreted in depency on the setting of 6th digit of the 1st system flag in ECR. If this flag is set to 2, then the price in cash register will be 1.50.

Important

It is possible to convert multiple online PLUs at once but it is not possible to send multiple online PLUs at once into ECR.

4.15. Reading DPTs report

Data contains DPT names, flags and prices and sale values.

Command number:132
Lines count:depends on DPT count in ECR

Each line contains data about one DPT. Each item is separated by "ItemSeparator".

  • 1st item: DPT name.

  • 2nd item: DPT flags are same as for send DPT.

  • 3rd item: price – according to setting of digit 6 system flag 1 of ECR

  • 4th item: sold quantity since last daily report

  • 5th item: sale value since last daily report

  • 6th item: sold quantity since last monthly report

  • 7th item: sale value since last monthly report

4.16. Reading TAX report

Data contains sale values for each VAT level.

Command number:133
Lines count:7
  • 1st item: maximal 10 characters of descriptive text

  • 2nd item: tax rate value (0 – 10000) – always for two decimal places without decimal point (comma)

    Note

    VAT level is forbidden if tax rate value is 10000, (not possible to count assigned PLU).

  • 3rd item: taxable value since last daily report

  • 4th item: value without tax (net) since last daily report

  • 5th item: tax value since last daily report

  • 6th item: taxable value since last monthly report

  • 7th item: value without tax (net) since last monthly report

  • 8th item: tax value since last monthly report

4.17. Receiving grand totals values (fiscal version)

Command number:134
Lines count:1 (fiscal version)

Text data contains one line with GT value.

4.18. Financial report

Sale values and counters are incremented to daily/periodical report since last daily/periodical report.

Command number:
135 - reading daily report
136 - reading periodical report
Lines count:36

Both files have the same form. Two items are separated with ItemSeparator in each line. First item defines quantity and second one defines sale value. Empty place (gap) at the line means that particular item has no meaning. File items meaning:

  • 1st line: total sale

  • 2nd line: net

  • 3rd line: tax

  • 4th line: void

  • 5th line: void of subtotal

  • 6th line: refund

  • 7th line: received cash on account

  • 8th line: received cash on account in secondary currency

  • 9th line: paid out cash

  • 10th line: paid out cash in secondary currency

  • 11th line: received check on account

  • 12th line: not used (received check on account in secondary currency)

  • 13th line: paid out check

  • 14th line: not used (paid out check in secondary currency)

  • 15th line: discounts

  • 16th line: add-ons

  • 17th line: rounding diference

  • 18th line: not used

  • 19th line: cash sale

  • 20th line: cash sale in secondary currency

  • 21th line: check sale

  • 22th line: not used (check sale in secondary currency)

  • 23th line: credit sale

  • 24th line: not used

  • 25th line: cash in drawer

  • 26th line: cash in drawer in secondary currency

  • 27th line: checks in drawer

  • 28th line: not used (check in drawer in secondary currency)

  • 29th line: credit in drawer

  • 30th line: not used

  • 31th line: not used (bottles)

  • 32th line: not used (returnable bottles)

  • 33th line: not used (void of bottle subtotal)

  • 34th line: number of all receipts

  • 35th line: number of fiscal receipts (in fiscal versions)

  • 36th line: not used (number of changes of names and tax levels)

4.19. Cashier sales report

Data contains cashier names and sales report.

Command number:139 - cashier sales report
Lines count:for each cashier one line

Each line contains data about one cashier.

  • 1st item: programmed cashier’s name

  • 2nd item: number of sales since last daily report

  • 3rd item: sale value since last daily report

  • 4th item: number of sales since last monthly report

  • 5th item: sale value since last monthly report

4.20. Obtaining information about last sold item in PC-Online mode

This command can be used to check actual state of online sale and correct sale of PLUs.

Command number:147
Lines count:2
  • 1st line:

    • 1st item: number of PLU-s in buffer of sold PLU

    • 2nd item: value

    • 3rd item: number of actual receipt

    • 4th item: total sale sum

    • 5th item: total sale sum in second currency

  • 2nd line: contains last sold PLU through PC-Online

4.21. Obtaining information about taxes of running sale in PC-Online mode

Command number:148
Lines count:8
  • 1st line: total sale sum (in base currency)

  • 2nd line: sum in non-taxable level

  • 3rd line:

    • 1st item: taxable value in tax level 1

    • 2nd item: tax value in VAT level 1

  • 4th line:

    • 1st item: taxable value in tax level 2

    • 2nd item: tax value in VAT level 2

  • 5th line:

    • 1st item: taxable value in tax level 3

    • 2nd item: tax value in VAT level 3

  • 6th line:

    • 1st item: taxable value in tax level 4

    • 2nd item: tax value in VAT level 4

  • 7th line:

    • 1st item: taxable value in tax level 5

    • 2nd item: tax value in VAT level 5

  • 8th line:

    • 1st item: taxable value in tax level 6

    • 2nd item: tax value in VAT level 6

Note

All items are valid only during PC ONLINE sale (before last payment send from PC to ECR). Tax values are valid on to MAXTAX – others are zero. Values do not include roundings (e.g. quater rounding calculations) and are valid only during open sale.

4.22. Reading sale data of PC ONLINE sale

Command is used to get information about sale through PC.

Command number:
150 - Reading sale data of PC ONLINE sale
151 - Reading sale data of PC ONLINE sale with data erasing
Lines count:2
  • 1st line: sold quantity – always three decimal places

  • 2nd line: sales value

4.23. Reading PLU count with non zero sale

Command is used to get count of PLUs sold from ECR memory.

Command number:152
Lines count:1

DATA contains count of PLU which were sold since last PLU Z report was performed.

Chapter 5. Data description for "ECR --> PC ONLINE mode"

5.1. Data description in binary form

5.1.1. Representing of used types

Data types are the same as in the first part of the protocol. There is only one difference in extension of types (primary and secondary currency).

Table 5.1. Extension of definition of numerical data types for ECR ON-LINE mode

type extensiondescription
(1)Number with one decimal place
(2)Number with two decimal places
(3)Number with three decimal places
(*1)Number of decimal places for master currency in range <0, 3> (value is selected with first system flag sixth digit in ECR and is received in INIT packet)
(*2)Number of decimal places for secondary currency in range <0, 3> (value is programed with the secondary currency flags and is received in INIT packet)

Caution

Decimal numbers are represented as whole numbers. Original value is multiplied (for encoding) or divided (for decoding) by number 1 (0 places), 10 (1 place), 100 (2 places), 1000 (3 places), according to number of places we want to use.

5.1.2. Data storing description

For each sale will be created a new data file. In file name of this data file will be added actual time on PC. Data will be stored in this format:

Table 5.2. Data storing method for "ECR --> PC ONLINE mode"

length in bytesdescription/meaning
2header length = 6 bytes
header length (always 6 bytes)header data
2initialization data length = 6 bytes
initialization data length (always 6 bytes)initialization data
2first item length
first item lengthitem data
2second item length
second item lengthitem data
2third item length
third item lengthitem data
......
......
2nth item length
nth item lengthitem data

5.1.3. Header data

Header length is always 6 bytes and contains protocol identification and number of actual cash register.

Table 5.3. Header data format

Byte)typelengthmeaning
0BYTE1STX - fixed value = 0x02
1BYTE1ID1 - fixed value = 0x50 (ASCII code of char ‘P’)
2BYTE1ID2 - fixed value = 0x43 (ASCII code of char ‘C’)
3BYTE1REGNUM - Number of ECR which sends REQUEST (system flag 3, digit 2-3) increased by value 32 (0x20) e. g. if ECR number is 1 then REGNUM is 33 (0x21).
4BYTE1ETX - fixed value = 0x03
5BYTE1CheckXor = control number (CheckXor = ID1 xor ID2 xor REGNUM xor ETX)

5.1.4. Initialization data content

Initialization data have always 6 bytes and contains all data required for decoding received sales data.

Table 5.4. Initialization data form

BytetypelengthMeaning
0BYTE1ECR type
1BYTE1Fixed value 146 (0x92)
2BYTE1Number of decimal places for price (0 – 3) (system flag 1 digit 6)
3BYTE1Quantities are multiplied or divided (0 – divided, 1 – multiplied) (system flag 2 – digit 6)
4BYTE1Number of transmitted items
5BYTE1Number of decimal places for price of second currency (0 – 3) (used only in Euro phase 1, 2 and 3)

5.1.5. Data description for ECR —> PC ON-LINE communication

Table 5.5. online sale commands

commandmeaning
1 (0x01)PLU was sold
2 (0x02)DPT was sold
3 (0x03)PLU was refunded
4 (0x04)DPT was refunded
5 (0x05)Payment

5.1.5.1. Data description for sale and refund

Data description for commands 1 (sold PLU), 2 (sold DPT), 3 (PLU refund) and 4 (DPT refund).

Byte(s)meaningtypecommend
0CommandBYTEfrom 1 to 4 (command 5 has different description)
1–14Item namestringcharacters
15Sales unit assignmentBYTEUsed only for PLU (range: <0, 7>)
16DPT assignmentBYTE
Used only for PLU
range: <1, 8> for Euro-2000 Alpha
range: <1, 30> for Euro-500 Handy
17VAT assignmentBYTEtaxes
18-25Total item pricedouble(*1)Total price of PLU (DPT) without add-ons and discounts. The price is rounded. If PLU (or DPT) was refunded the sum is negative.
26-29Unit item priceDWORD(*1) 
30-33Quantity 1DWORD(3)First quantity entered using ECR keyboard while selling.
34-37Quantity 2DWORDSecond quantity entered using ECR keyboard while selling (second quantity can not be decimal).
38-39PLU (DPT) indexWORD 
40-47Add-Ons applied to itemdouble(*1)Sum of all add-ons applied to the item.
48-55Discounts applied to itemdouble(*1)Sum of all discounts applied to the item.

5.1.5.2. ECR Payment

Data description for command 5 (Payment).

Byte(s)meaningtypecommend
0CommandBYTEvalue 5 (commands 1 to 4 have different description)
1-8Cashdouble(*1)total sum paid by cash
9-16Checkdouble(*1)total sum paid by check
17-24Creditdouble(*1)total sum paid by credit
25-32Cash in second currencydouble(*2)total sum paid by cash in second currency (used only in Euro phase 1, 2 and 3).
33-55not used  

5.1.6. Data description for ECR —> PC ON-LINE communication for Euro-2100

Table 5.6. online sale commands

commandmeaning
1 (0x01)PLU was sold
2 (0x02)DPT was sold
3 (0x03)PLU was refunded
4 (0x04)DPT was refunded
5 (0x05)Payment

5.1.6.1. Data description for sale and refund (for Euro-2100)

Data description for commands 1 (sold PLU), 2 (sold DPT), 3 (PLU refund) and 4 (DPT refund).

Byte(s)meaningtypecommend
0CommandBYTEfrom 1 to 4 (command 5 has different description)
1–20Item namestringcharacters
21Sales unit assignmentBYTEUsed only for PLU (range: <0, 7>)
22DPT assignmentBYTEUsed only for PLU (range: <1, 30>)
23VAT assignmentBYTEtaxes
24-31Total item pricedouble(*1)Total price of PLU (DPT) without add-ons and discounts. The price is rounded. If PLU (or DPT) was refunded the sum is negative.
32-35Unit item priceDWORD(*1) 
36-39Quantity 1DWORD(3)First quantity entered using ECR keyboard while selling.
40-43Quantity 2DWORDSecond quantity entered using ECR keyboard while selling (second quantity can not be decimal).
44-45PLU (DPT) indexWORD 
46-53Add-Ons applied to itemdouble(*1)Sum of all add-ons applied to the item.
54-61Discounts applied to itemdouble(*1)Sum of all discounts applied to the item.

5.1.6.2. ECR Payment (for Euro-2100)

Data description for command 5 (Payment).

Byte(s)meaningtypecommend
0CommandBYTEvalue 5 (commands 1 to 4 have different description)
1-8Cashdouble(*1)total sum paid by cash
9-16Checkdouble(*1)total sum paid by check
17-24Creditdouble(*1)total sum paid by credit
25-32Cash in second currencydouble(*2)total sum paid by cash in second currency (used only in Euro phase 1, 2 and 3).
33-61not used  

5.2. Data description in text format

New data will be stored always at the end of the actual text file. Date and time will be added before each bill data. Individual lines have the following meaning:

  • 1st line: Actual date (from PC) in following format "Date: YYYY.MM.DD."

  • 2nd line: Actual time (from PC) in following format "Time: hh:mm:ss"

  • 3rd line: contains number of ECR (system flag 3, digit 2-3).

  • 4th line: contains actual ECR settings. This line consist of 6 items.

    1. ECR type

    2. Fixed value 146 (0x92)

    3. Number of decimal places for price (0 – 3) (system flag 1 digit 6)

    4. Quantities are multiplied or divided (0 – divided, 1 – multiplied) (system flag 2 – digit 6)

    5. Number of transmitted records

    6. Number of decimal places for price of second currency (0 – 3) (used only in Euro phase 1, 2 and 3)

  • The following lines ("Number of transmitted records" - 1) contains sales data (saled items)

    1. Command number (from 1 to 4)

      Table 5.7. online sale commands

      commandmeaning
      1 (0x01)PLU was sold
      2 (0x02)DPT was sold
      3 (0x03)PLU was refunded
      4 (0x04)DPT was refunded
      5 (0x05)Payment
    2. Item name

    3. Sales unit assignment (Used only for PLU - range: <1, 8>)

    4. DPT assignment (Used only for PLU)

    5. VAT assignment

    6. Total price of PLU (DPT) without add-ons and discounts. The price is rounded. If PLU (or DPT) was refunded the sum is negative.

    7. Unit item price.

    8. First quantity entered using ECR keyboard while selling.

    9. Second quantity entered using ECR keyboard while selling (second quantity can not be decimal).

    10. PLU (DPT) index

    11. Add-Ons applied to item. (Sum of all add-ons applied to the item.)

    12. Discounts applied to item. (Sum of all discounts applied to the item.)

    Note

    It is possible to change separator between first and second quantity. See settings.

  • last line contains information about payments

    1. Command number = 5

    2. total sum paid by cash

    3. total sum paid by check

    4. total sum paid by credit

    5. total sum paid by cash in second currency (used only in Euro phase 1, 2 and 3).

Note

If any error occurs while decoding of data, these data will be printed in hexadecimal form at the corresponding line after "##" characters.

Appendix A. Glossary of used terms

BARCODE / bar-code

Bar-code = EAN.

For data type see types definition.

binary (data, form...)

Binary form of data means data that are not readable by humans. It is the form of data that is used by computers to store numerical data (and strings) for processing. In most cases no data transformation is needed to process data stored in binary form. Needed is only description / meaning of each data position.

binary journal

Binary journal is sometimes used as term for PC processing journal (see PC journal).

BYTE

see types definition.

char

see types definition.

DWORD

see types definition.

electronic journal

Electronic journal is used as symbol for non tactile journal. It can be the PC journal (in most cases is means this one) or Text journal.

int

see types definition.

long

see types definition.

N6

see types definition.

PC journal

Receipts stored in binary form (not human readable). Receipts are separated in logical blocks (its is possible to separate every stored purchase from whole block data). It is possible to use data from this journal to post-processing sale data (make hour reports, ....).

Read bills

see Text journal

Read receipts

see PC journal

string

see types definition.

Text (data, form...)

Human readable form of data. This form is also used by some application to import/export data from/to other programs.

Text journal

Text journal is only a copy of journal tape in ECR. This journal is human readable. No direct post processing is possible.

WORD

see types definition.

Appendix B. Wait Times for ON-LINE sale commands

B.1. Minimal and maximal time for waiting between two online commands (on one bill) (“sale” or “information of sale” commands)

  • Minimal time equals to the reaction speed of ECR (25ms)

  • Recommend time is 150ms. Works on all ECRs.

  • Maximal time is not limited.

B.2. Minimal and maximal time between “end of sale” and beginning new sale (new bill)

  • Minimal time equals to the time of printing of bill (times depends from initial bill (and logo) printing)

  • Recommend time is 4s. Works on all ECRs.

  • Maximal time is not limited.

Table B.1. ECR wait times

ECRtime with print of graphic logotime without print of graphic logo
Euro-2000T Alpha27001400
Euro-2000TE Alpha35001700
Euro-500T Handy16001100
Euro-500TX Handy600400
Euro-500TE Handy28001500