0% found this document useful (0 votes)
191 views39 pages

POSNET Serial Protocol Guide v015

This document describes the serial communication protocol for a POSNET cash register. It includes details on the message frame structure, special characters used, command messages for standard modes like fiscal printer and supervisor modes, cashier and transaction modes, and production test sequences. Appendix sections provide additional information on databases and error codes.

Uploaded by

Andrej Petrovic
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
191 views39 pages

POSNET Serial Protocol Guide v015

This document describes the serial communication protocol for a POSNET cash register. It includes details on the message frame structure, special characters used, command messages for standard modes like fiscal printer and supervisor modes, cashier and transaction modes, and production test sequences. Appendix sections provide additional information on databases and error codes.

Uploaded by

Andrej Petrovic
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 39

POSNET POLSKA S.A.

ul. Municypalna, 33
02-281 WARSZAWA
phone (+48) (22) 868 68 88 , fax (+48) (22) 868 68 89
www.posnet.com

POSNET Serial Protocol ver.015


Serial Protocol ver.015 – page 2/39

CONTENTS

History of changes........................................................ 4
Scope..................................................................... 5
Settings.................................................................. 6
Message Frames............................................................ 7
Algorithm of checksum .................................................. 7
Parameters.............................................................. 7
Status of execution..................................................... 8
Special characters........................................................ 9
CAN (18h)............................................................ 9
ENQ (05h)............................................................ 9
BEL (07h)............................................................ 9
DLE (10h)............................................................ 9
Command Messages......................................................... 10
Standard mode.......................................................... 10
Fiscal printer......................................................... 11
[LOGIN] Login cashier/supervisor...................................... 11
[LOGOUT] Logout cashier/supervisor.................................... 11
[ERNRRQ] Get last error code.......................................... 11
[OPNDRW] Open drawer.................................................. 12
[LINEFEED] Paper feed................................................. 12
Supervisor Mode........................................................ 13
[GETCLK] Get date and time............................................ 13
[SETCLK] Set date and time............................................ 13
[GETVAT] Get VAT rates................................................ 13
[SETVAT] Set VAT rates................................................ 14
[GETHDR] Get fiscal header............................................ 14
[SETHDR] Set fiscal header............................................ 14
[SETADV] Advertisement text programming............................... 15
[SETPWD] Set supervisor password...................................... 15
[DAYREP] Fiscal daily report or status intersection report printing... 15
[DBREP] Print database report......................................... 16
[RECGET] Get database record.......................................... 16
[RECADD] Add/modify database record................................... 17
[RECDEL] Delete a database record..................................... 17
[PLUGET] Read PLU database............................................ 18
[FSKREP] Print periodical report...................................... 18
[GETSTS] Get Cash Register status and info............................ 18
[GETTOT] Get totalizers............................................... 19
[GRSET] Set image active.............................................. 19
[GRSTART] Start image transfer........................................ 19
[GRDATA] Image line data.............................................. 20
[GRCANC] Cancel image transfer........................................ 20
[GRGET] Get image data................................................ 20
[WRITEFMNO] Store the fiscal memory id................................ 21
[MEMSIZE] Memory size................................................. 21
[READMEM] Memory read................................................. 22
[FMREAD] Read fiscal memory test field................................ 22
[FMWRITE] Write fiscal memory test field.............................. 22
[FMCHECK] Check the selected area of the fiscal memory is available to
be written............................................................ 23
[GETOPT] Get option settings.......................................... 23
[SETOPT] Set option................................................... 24
Cashier and Transaction Mode........................................... 26
[CSHREP] Cashier report............................................... 26
[INCCSH] Cash payment................................................. 26
[DECCSH] Cash withdrawal.............................................. 26
[TRSHDR] Transaction start............................................ 27
[TRSLNE] Transaction line............................................. 27
[TRSSUB] Transaction subtotal......................................... 28
[TRSEND] Transaction end.............................................. 28
[TRSEXIT] Transaction exit............................................ 28
[TRSRETLN] Returnable containers transaction line..................... 29
[TRSRETEND] End of operations with returnable containers.............. 29
Serial Protocol ver.015 – page 3/39

Production test sequences.............................................. 30


[IDENTITY] Device identification...................................... 30
[HARDWARETEST] Cash register components tests......................... 30
[GETINFO] Device information read..................................... 31
Error handling......................................................... 33
Execution error........................................................ 33
Printer error ......................................................... 33
Error codes............................................................ 33
Display.................................................................. 34
Appendix A............................................................... 35
Department database.................................................... 35
Hot-key database....................................................... 35
Cashier database....................................................... 35
Forms of payment database.............................................. 36
PLU database........................................................... 36
Barcode format database................................................ 37
Returnable containers database......................................... 37
Appendix B............................................................... 38
Serial Protocol ver.015 – page 4/39

HISTORY OF CHANGES
DATE REVISION CHANGES DESCRIPTION
1. Chapter „Standard mode with remote PC” was removed because this mode
is not supported in Serbian version
2. Extra information related to the command MEMSIZE.
18.11.2003 003 3. Extended information related to the PLU database.
4. Updated error codes table - Appendix B
5. Updated possible errors list in the command TRSLNE
1. Added one parameter in the description of the clerks database
2. Corrected PLU database description
3. Corrected hot keys database description
28.11.2003 004 4. Corrected payment forms database
5. Corrected description of GETOPT command.
6. Corrected description of DAYREP command.
7. Changes in the error codes table Appendix B
1. Removed following commands:
• NFHDR (start non-fiscal document)
28.11.2003 005 • NFLINE (line of non-fiscal document)
• NFEND (end of non-fiscal document)
2. Important remarks added at the beginning of the Appendix A
1. Chapter „Production tests sequences” was added
02.12.2003 006
2. Correction of error codes table - Appendix B
03.12.2003 007 1. Changes in GETSTS command
1. Changes in READMEM command
05.12.2003 008
2. Added FMREAD, FMWRITE commands.
1. New commands added: TRSRETLN, TRSRETEND
09.12.2003 009
2. Updated commands SETOPT, GETOPT
1. Correction in the command DAYREP
2. Additional information in the description of the clerks database.
10.12.2003 010
3. Extra parameters added in the command DBREC
4. Additional information added in the command READMEM
1. The sentence: 'The header has to include Tax Identification Number
11.12.2003 011
(P.IVA).' was removed from SETHDR command
19.12.2003 012 1. Additional details in the PLU record’s description.
29.12.2003 013 1. Special characters (ACK and NACK) description was removed.
15.01.2004 014 1. Additional command added (FMCHECK)
26.01.2004 015 1. Functional changes in the TRSEXIT command.
Serial Protocol ver.015 – page 5/39

SCOPE
This document describes the RS-232 interface protocol of the Serbian
version of POSNET Cash Registers used in communication with external
computer.
Hexadecimal values are followed by the “h” character (i.e. 3Ch).
The list of errors or their numerical equivalent may be changed.
The list of commands may be expanded after submitting a proposal.
Serial Protocol ver.015 – page 6/39

SETTINGS
RS-232
Baud rate 2400, 4800, 9600 or 19200
Data bits 8
Stop bits 1
Parity none
No hardware handshake
Serial Protocol ver.015 – page 7/39

MESSAGE FRAMES
The protocol is based on sending no binary data to avoid data
misinterpretation.
The data sent are printable ASCII characters except some codes (ESC, ENQ,
DLE etc.) having special meaning.
All of the numerical data is send as decimal numbers.
Communication is synchronous in the “block” meaning.
Message frames are used to send and receive data and commands. The
structure of a message frame is shown below:
<START> <COMMAND> <BODY> <CHECKSUM> <END>

<START> two bytes identifying the beginning of the message. Their values
are ESC (1Bh) and P (50h).
<COMMAND> two bytes command identifier: first character is ‘#’ or ‘$’ and
second is a small letter (between 60h and 7Eh).
<BODY> data
<CHECKSUM> two bytes – character ‘0’...’9’ and ‘A’...’F’
<END> two bytes identifying the end of the message. Their values are ESC
(1Bh) and \ - backslash (5Ch).

After received prefix (ESC P) Cash Register starts to read two bytes
command identifier. Then it reads parameters separated by appropriate tags
(see below). Sequences are completed with two hexadecimal characters
containing checksum. In case of error within the message the rest of it is
ignored until suffix is received.

Example:

START COMMAND BODY CHECKSUM END


ESC P 2 bytes ASCII codes 2 bytes ESC \
$l 1111* BDh
1Bh, 50h 24h, 6Ch 31h, 31h, 31h, 31h, 0Ah 42h, 44h 1Bh, 5Ch

Algorithm of checksum
These two bytes are hexadecimal digits representing the checksum of the
whole sequence (COMMAND+DATA) counted as shown below.
Initial value is 255 (FFh)

<chksum> := 255;

And with every byte after ESC P sequence checksum is modified

<chksum> := <chksum> XOR <byte>.

Then <chksum> is translated into 2 hexadecimal digits represented in ASCII


codes.

Parameters
Most of the commands require one or more parameters. These parameters may
be either numeric or string. Every parameter is represented in ASCII codes.
Numeric values are in decimal.
Appropriate tags follow parameters of different types.

Logical tag (this


Physical tag
document)
End of string (line) * 0Ah
Serial Protocol ver.015 – page 8/39

End of numeric
@ 09h
parameter
End of byte
^ FEh
parameter

Status of execution
If not specified different way Cash Register replies every command with the
same standard sequence mentioned in this document as “Standard”.

ESC P #Z <COMMAND> <ERRCODE> ESC \

<COMMAND> ID of the command or ‘??’ if unknown.


<ERRCODE> error code or zero (‘0’) if no error.
Serial Protocol ver.015 – page 9/39

SPECIAL CHARACTERS
These characters have special meanings. DLE works anytime, even within a
sequence or if an error occurred, while CAN code breaks the sequence.

CAN (18h)

Stops message analysis (within ESC P sequence) and goes into main loop.

ENQ (05h)

Cash Register sends back its status byte as shown below.

7 6 5 4 3 2 1 0
0 1 1 EUR FSK CMD PAR SUP

EUR – 1 if in Euro
FSK – 1 if fiscal mode
CMD – 1 if the last command successfully executed
PAR – 1 if in transaction mode
SUP – 1 if in supervisor mode

BEL (07h)

Cash Register gives a sound signal.

DLE (10h)

This character can be sent in any moment. Cash Register sends back a
printer status byte as shown below.

7 6 5 4 3 2 1 0
0 1 0 0 POW LVR PAP ERR

POW – low power


LEV – printer lever is up
PAP – no paper
ERR – error of the printing mechanism
Serial Protocol ver.015 – page 10/39

COMMAND MESSAGES
Available command messages allow:
· Logging-in and logging-out
· Setting date/time and fiscal data
· Printing database contents
· Database Programming
· Transaction Execution
· Printing Fiscal Reports

Cash Register works in 3 modes:


Standard, Standard with remote PC and Fiscal printer.

An option in supervisor menu is used to switch between first two modes. The
third mode is accessible from the supervisor menu.

Standard mode
Normal sale with no communication provided.
Sale is possible after logging-in as a cashier.
Serial Protocol ver.015 – page 11/39

Fiscal printer
To work in this mode log-on as supervisor and select communication from
menu.
No input from keyboard is expected. Cash Register works in “block type”
synchronous communication with PC. All of the commands are encapsulated -
preceded by a normal start sequence and followed by checksum and ending
sequence. The same bears messages sent back by Cash Register.
Cash Register can work in idle, supervisor, cashier or transaction mode.
In idle state the only available command is [LOGIN]. After that Cash
Register may go into cashier/supervisor mode depending on password.
To exit fiscal printer – press and hold ‘C’ key.
If Cash Register was in transaction mode the receipt is cancelled and
finished.

[LOGIN] Login cashier/supervisor


Syntax:
*i<PASSWORD>*

<PASSWORD> four-letter password of supervisor or cashier

Reply:
Standard.

Description:
When the password is validated Cash Register goes into supervisor/cashier
mode.

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_INVALID_PASSWORD – invalid password
ERR_NOT_ALLOWED – not allowed, logout first

[LOGOUT] Logout cashier/supervisor


Syntax:
*q

Reply:
Standard.

Description:
Exits supervisor/cashier mode and goes into idle mode where it accepts only
[LOGIN] command.

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_TRANS_MODE – not allowed in transaction mode
ERR_NOT_ALLOWED – not allowed

[ERNRRQ] Get last error code


Syntax:
$e

Reply:
Standard

Description:
Sent to receive last error code. Error code is set after last command
execution and isn’t changed by [ERNRQ] command.
Serial Protocol ver.015 – page 12/39

[OPNDRW] Open drawer


Syntax:
*w

Reply:
Standard

Description:
Opens cash register drawer. Supervisor or cashier must be logged on.

Errors:
ERR_TRANS_MODE – not allowed in transaction mode
ERR_NOT_ALLOWED – not allowed

[LINEFEED] Paper feed


Syntax:
$p<LINE_QTY_ORIG>^<LINE_QTY_COPY>^

<LINE_QTY_ORIG> Feed out the paper on original roll (number of the lines
accepted: 1 - 8)

<LINE_QTY_COPY> Feed out the paper on the journal roll (number of the
lines accepted: 1 - 8)

Reply:
Standard

Description:
This command order the cash register to feed the paper with selected number
of lines. Supervisor or cashier must be logged on.

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
Serial Protocol ver.015 – page 13/39

Supervisor Mode
Cash Register enters this mode after successful [LOGIN] command with
supervisor password.
Available commands allow reading and writing Cash Register settings and all
of its databases and printing fiscal and non-fiscal reports.
[LOGOUT] command is required to exit this mode.

[GETCLK] Get date and time


Syntax:
$c

Reply:
$C<YEAR>^<MONTH>^<DAY>^<HOUR>^<MINUTE>^

YEAR, MONTH, DAY, HOUR, and MINUTE – appropriate byte values of date/time.

Description:
Sent to receive date and time from Cash Register. Then it sends back its
settings as shown above. Attention: year 1 means 2001.

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_TRANS_MODE – not allowed in transaction mode

[SETCLK] Set date and time


Syntax:
#c<YEAR>^<MONTH>^<DAY>^<HOUR>^<MINUTE>^

YEAR, MONTH, DAY, HOUR, and MINUTE – appropriate byte values of date/time.

Reply:
Standard.

Description:
Sets the Cash Register internal clock. Date and time can not be prior to
the date of last record in fiscal memory.
Attention: year 1 means 2001.

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_TRANS_MODE – not allowed in transaction mode
ERR_SETCLK_BAD_DATE – bad date (e.g. 30-02-2003)
ERR_SETCLK_LE_FM_DATE – date prior to last record in fiscal memory
ERR_SETCLK_INVALID_DATE – date/time set already or date/time out of range
(+- 1h)

[GETVAT] Get VAT rates


Syntax:
$v

Reply:
$V<VAT_A>@<VAT_B>@<VAT_C>@<VAT_D>@<VAT_E>@<VAT_F>@<VAT_G>@<VAT_H>@<VAT_I>@
<VAT_A>...<VAT_I> - VAT rates.
Numbers are fixed-point e.g. 1500 describes 15,00% tax rate.
10100 – non active tax rate

Description:
Sent to get current VAT rates.
Serial Protocol ver.015 – page 14/39

ERR_RS_PAR – wrong parameter


ERR_RS_PAR_NUM – wrong number of parameters
ERR_TRANS_MODE – not allowed in transaction mode

[SETVAT] Set VAT rates


Syntax:
#v<VAT_A>@<VAT_B>@<VAT_C>@<VAT_D>@<VAT_E>@<VAT_F>@<VAT_G>@<VAT_H>@<VAT_I>@
<VAT_A>...<VAT_I> - VAT rates. Numbers are fixed-point e.g. 1500 describes
15,00% tax rate.
10100 – non active rate

Reply:
Standard.

Description:
Sets new VAT rates in Cash Register. A proper record is saved in fiscal
memory and a report is printed.
A suitable report is printed.

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_TRANS_MODE – not allowed in transaction mode
ERR_SETVAT_HDR – no header set
ERR_SETVAT_TOTNZ – non-zero totalizers
ERR_SETVAT_DATE – date prior to last record date
ERR_SETVAT_VAL – attempt to set identical VAT rates
ERR_SETVAT_PAR – incorrect VAT rates
ERR_SETVAT_BAD_RTC – bad RTC
ERR_SETVAT_MAX_CNT – limit of VAT changes exceeded

[GETHDR] Get fiscal header


Syntax:
$h

Reply:
$H<HEADER>~

<HEADER> up to 5 lines separated by * (0Ah)

Description:
Sent to get current fiscal header.
Note that a special tag (FFh) follows the whole header. Separators are used
between lines only.

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_TRANS_MODE – not allowed in transaction mode

[SETHDR] Set fiscal header


Syntax:
#h<HDR_LINE1>*<HDR_LINE2>*<HDR_LINE3>*<HDR_LINE4>*<HDR_LINE5>*<FLAG1>^
<FLAG2>^<FLAG3>^<FLAG4>^<FLAG5>^

<HDR_LINE1>...<HDR_LINE1> up to 5 lines
<FLAG1>...<FLAG5> optional flags
0 – line is printed normally
1 – line is printed with double height/width

Reply:
Standard.

Description:
Serial Protocol ver.015 – page 15/39

Sets new fiscal header in Cash Register. A proper record is saved in fiscal
memory and a report is printed.
Optional parameters <FLAG> mark if proper line is printed with double width
(Thermal) or height (Bingo, ECR). Number of these parameters has to be
equal to the number of lines sent.

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_TRANS_MODE – not allowed in transaction mode
ERR_TOTNZ – non-zero totalizers
ERR_SET_HDR – error setting header

[SETADV] Advertisement text programming


Syntax:
#i<ADV_LINE1>*<ADV_LINE2>*<ADV_LINE3>*<ADV_LINE4>*<ADV_LINE5>*<ADV_LINE6>*<
ADV_LINE7>*<FLAG1>^<FLAG2>^<FLAG3>^<FLAG3>^<FLAG4>^<FLAG5>^<FLAG6>^<FLAG7>^

<ADV_LINE1>...<ADV_LINE7> up to 7 lines
<FLAG1>...<FLAG7> optional flags
0 – line is printed normally
1 – line is printed with double height/width

Reply:
Standard.

Description:
Sets the advertisement text in Cash Register. Optional parameters <FLAG>
mark if proper line is printed with double width (Thermal) or height
(Bingo, ECR). Number of these parameters has to be equal to the number of
lines sent.

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_TRANS_MODE – not allowed in transaction mode
ERR_SET_HDR – error setting header lines

[SETPWD] Set supervisor password


Syntax:
#p<OLD_PASSWORD>*<NEW_PASSWORD>*

<OLD_PASSWORD>,<NEW_PASSWORD> - four-digit password of supervisor.

Reply:
Standard.

Description:
Sets new supervisor password used to login from keyboard or PC.

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_TRANS_MODE – not allowed in transaction mode
ERR_PASSWORD_NOT_UNIQUE – password not unique
ERR_INVALID_PASSWORD – invalid password

[DAYREP] Fiscal daily report or status intersection report printing


Syntax:
#z<TYPE>^
<TYPE> 0– fiscal periodical report
1– non-fiscal periodical report
Serial Protocol ver.015 – page 16/39

Reply:
Standard.

Description:
Prints fiscal daily report or fiscal status intersection report. In case of
fiscal daily report an appropriate record is saved in fiscal memory.

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_TRANS_MODE – not allowed in transaction mode
ERR_NO_HDR – no header
ERR_DAY_REP – error executing daily report

[DBREP] Print database report


Syntax:
#a<TYPE>^<FLAG>^
<TYPE> 0 – department database report
1 – hot-keys database report (parameter <FLAGS> is ignored)
2 – shift report
3 – forms of payment database report
5 – full PLU database report
6 – barcode format database report (parameter <FLAGS> is
ignored)
7 – returnable containers
8 – PLU reading report (short form, parameter <FLAGS> is
ignored)
9 – status intersection report (parameter <FLAGS> is ignored)

<FLAG> 0 – reading report (statistics remain unchanged)


1 – clearing report (statistics are cleared)

Reply:
Standard.

Description:
Prints report of the appropriate database. Every report can be interrupted
from keyboard. Some of databases (hot-keys, barcode formats) have no
statistics - in this case the second parameter <FLAG> equals 0.

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_TRANS_MODE – not allowed in transaction mode

[RECGET] Get database record


Syntax:
$r<DATABASE>^<RECNR>@
<DATABASE> 0 – department database
1 – hot-keys database
2 – cashier database
3 – forms of payment database
5 – PLU database
6 – barcode format database
7 – returnable containers
<RECNR> record number (starting from 1)

Reply:
$R<DATABASE_RECORD>

<DATABASE_RECORD> See Appendix A. Record depends on the database.


Serial Protocol ver.015 – page 17/39

Description:
Sent to get a record from appropriate database.

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_TRANS_MODE – not allowed in transaction mode
ERR_PLU_NOT_FOUND – PLU not found
ERR_WRONG_REC_NUM – record not found

[RECADD] Add/modify database record


Syntax:
#r<DATABASE>^<MOD_FLAG>^<RECNR>@<DATABASE_RECORD>
<DATABASE> 0 – department database
1 – hot-keys database
2 – cashier database
3 – forms of payment database
5 – PLU database
6 – barcode format database
7 – returnable containers
<MOD_FLAG> 0 – do not modify existing records; 1 – modification allowed.
<RECNR> record number (starting from 1)
<DATABASE_RECORD> See Appendix A. Record depends on the database.

Reply:
Standard.

Description:
Record is saved in memory and a report is printed.

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_TRANS_MODE – not allowed in transaction mode
ERR_TOTNZ – non-zero totalizers
ERR_WRONG_REC_NUM – wrong record number
ERR_REC_EXISTS – record already exists (<MOD_FLAG>=0)

[RECDEL] Delete a database record


Syntax:
#d<DATABASE>^<RECNR>@
<DATABASE> 0 – department database
1 – hot-keys database
2 – cashier database
3 – forms of payment database
5 – PLU database
6 – barcode format database
7 – returnable containers

<RECNR> record number (starting from 1)

Reply:
Standard.

Description:
Record is deleted and a report is printed.

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_TRANS_MODE – not allowed in transaction mode
ERR_PLU_NOT_FOUND – PLU not found
Serial Protocol ver.015 – page 18/39

ERR_WRONG_REC_NUM – record not found


ERR_WRONG_REC_NUM – wrong record number

[PLUGET] Read PLU database


Syntax:
$b<RECNR>@
<RECNR> PLU number or zero if first record needed.

Reply:
$B<DATABASE_RECORD><CURRENT>@<NEXT>@
<DATABASE_RECORD> PLU record. See Appendix A.
<CURRENT> PLU number of record sent.
<NEXT> PLU number of the next record. Equals zero if no more records.

Description:
Because of the size of PLU database this additional command is used to
retrieve its contents. It allows getting the first record and reading the
database one by one.
To retrieve first record <RECNR> has to be zero.
An error PLU_NOT_FOUND is received only if database is empty. Otherwise
Cash Register replies with the first record with PLU number greater or
equal from <RECNR>.

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_TRANS_MODE – not allowed in transaction mode
ERR_WRONG_REC_NUM – wrong record number
ERR_PLU_NOT_FOUND – PLU not found

[FSKREP] Print periodical report


Syntax:
#o<TYPE>^<B_YEAR>^<B_MONTH>^<B_DAY>^<E_YEAR>^<E_MONTH>^<E_DAY>^
<TYPE> 0 – non-fiscal period report
1 – fiscal period report
<B_YEAR>, <B_MONTH>, <B_DAY> beginning date
<E_YEAR>, <E_MONTH>, <E_DAY> end date

Reply:
Standard.

Description:
Reads records from fiscal memory and prints out a report within given range
of dates.

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_TRANS_MODE – not allowed in transaction mode
ERR_REP_DATE – wrong date
ERR_REP_NFISK – non-fiscal mode

[GETSTS] Get Cash Register status and info


Syntax:
$s

Reply:
$S<HW_TYPE>^<FSC_MODE>^<TOT>^<F_YEAR>^<F_MONTH>^<F_DAY>^
<TIN>*<FM_NR>*<VERSION>*<DB_DEP>@<DB_HK>@<DB_CSH>@<DB_FP>@
<DB_DSC>@<DB_PLU>@<DB_BF>@<DB_RET>@

<HW_TYPE> Hardware type: 0 – ECR; 1 – Bingo, 2 – Thermal


<FSC_MODE> 0 – non-fiscal, 1 – fiscal,
Serial Protocol ver.015 – page 19/39

<TOT> 0 – totalizers non-zero, 1 – equal zero


<F_YEAR>, <F_MONTH>, <F_DAY> date of fiscalization
<TIN> tax identification number, empty string if non-fiscal
<FM_NR> unique fiscal memory number
<VERSION> software version
<DB_DEP>, <DB_HK>, <DB_CSH>, <DB_FP>, <DB_DSC>, <DB_PLU>, <DB_BF>, <DB_RET>
Number of records in appropriate database (departments, hot-keys, cashiers,
forms of payment, DB_DSC – not used (always equal to 0), PLU, barcode
formats, returnable containers).

Description:
Sent to get some information about Cash Register – its type, fiscal mode,
fiscal memory number, number of already programmed records etc.

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_TRANS_MODE – not allowed in transaction mode

[GETTOT] Get totalizers


Syntax:
$t

Reply:
$T<TOT_0>@<TOT_1>@<TOT_2>@<TOT_3>@<TOT_4>@<TOT_5>@<TOT_6>@<TOT_7>@<TOT_8>@

<TOT_0>...<TOT_8> totalizer for each VAT rate

Description:
Returns totalizer for each VAT rate.

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_NOT_ALLOWED – not allowed

[GRSET] Set image active


Syntax:
#s 0^ <FLAG>^
<FLAG> image activity flag
0 – non-active
1 – active

Reply:
Standard

Description:
Sets proper image active.

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_NOT_ALLOWED – not allowed

[GRSTART] Start image transfer


Syntax:
#g<LINES>^<LINE_WIDTH>^ 0^
<LINES> number of lines to be transferred
Serial Protocol ver.015 – page 20/39

THERMAL: 13 - 156
ECR: 13 - 78
BINGO 13 - 78
<LINE_WIDTH> bytes per line (bytes per data block)
THERMAL: 50
ECR: 30
BINGO: 25

Reply:
Standard

Description:
Begins image transfer. After successful execution only [GRDATA] and
[GRCANC] commands are accepted.

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_NOT_ALLOWED – not allowed
ERR_RS_GRAPH_PRN_SIZE – wrong line width
ERR_RS_GRAPH_LINE_CNT – wrong number of lines

[GRDATA] Image line data


Syntax:
#n<LINE_NO>^<DATA>*
<LINE_NO> line number (from 1 up to <LINES> - see [GRSTART])
<DATA> image data, bytes represented in hexadecimal (ASCII)

Reply:
Standard

Description:
Image line data has to be sent sequentially. Data block size is 2 times
<LINE_WIDTH> - see [GRSTART] – because instead of binary form it is sent in
ASCII. Each byte is represented as 2 character hexadecimal value.

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_NOT_ALLOWED – not allowed
ERR_RS_GRAPH_LINE_NUM – wrong data block number
ERR_RS_GRAPH_DATA_LEN – wrong data block size
ERR_RS_GRAPH_DATA – bad data (only ‘0’-‘9’,’A’-‘F’ is accepted)

[GRCANC] Cancel image transfer


Syntax:
#e

Reply:
Standard

Description:
Cancels image data transfer and continues normal communication mode.

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_NOT_ALLOWED – not allowed

[GRGET] Get image data


Syntax:
Serial Protocol ver.015 – page 21/39

#b0^

Reply:
[SBGRSTART]
#G<LINES>^<LINE_WIDTH>^0^
[SBGRDATA]
#N<LINE_NO>^<DATA>*
<LINES> number of lines to be transferred
<LINE_WIDTH> bytes per line (bytes per data block)
<LINE_NO> line number (from 1 up to <LINES>)
<DATA> image line data, bytes represented in hexadecimal (ASCII)

Description:
After successful execution Cash Register starts to transfer image data.
First [SBGRSTART] is send and then <LINES> [SBGRDATA] are sent. See
[GRDATA].

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_RS_GRAPH_NOT_VALID – no image data
ERR_NOT_ALLOWED – not allowed

[WRITEFMNO] Store the fiscal memory id


Syntax:
#u<FM_NO>*
<FM_NO> Fiscal memory id in the following format:
CCDDDDDD
C – letter
D – digit

Reply:
Standard

Description:
This command permits to store IBFM in the fiscal memory. It is provided
only for the use during the production process. This command do not works
with fiscal memories that have already stored their own fiscal memory id
(IBFM).

[MEMSIZE] Memory size


Syntax:
$q<MEM_TYPE>^
<MEM_TYPE> 0 – program memory
1 – protected RAM
2 – fiscal memory
3 – application memory

Reply:
$Q<MEM_TYPE>^<MEM_SIZE>@<PAR>*
<MEM_SIZE> memory size in bytes
<PAR> not used (ignored by the system)

Description:
Returns the siez of the selected memory.

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
Serial Protocol ver.015 – page 22/39

[READMEM] Memory read


Syntax:
$q<MEM_TYPE>^<QTY>^<ADDRES>@
<MEM_TYPE> 0 – program memory (hex mode)
1 – protected memory (hex mode)
2 – fiscal memory (hex mode)
3 – application memory (hex mode)
4 – program memory (binary mode)
5 – protected memory (binary mode)
6 – fiscal memory (binary mode)
7 – application memory (binary mode)

<QTY> number of bytes to be read (1 - 255)


<ADDRES> logical address to read (Note that the addresses starts form 0.
For the application memory it’s equal to the real address).

Reply:
$Q<MEM_TYPE>^<ADDRES>@<MEM_CONTENT>*
<MEM_CONTENT> Memory contents in encoded as hex or binary values.

Description:
This command permits to read the selected memory contents.
In the binary mode the bytes with codes greater or equal to 0x20 are sent
without any changes. Bytes (single bytes or groups) with values less than
0x20 are preceded by char “Caps Lock” (0x1F) and all data sent after it is
increased by 0x20. If the system need to sent the byte with the code
greater or equal than 0x20 it send before the “Caps Lock” (it inform remote
system that the byte sent do not need any additional operations).

Examples:
Bytes need to be sent by cash register -> bytes sent by the cash register
1) 0x31, 0x32, 0x33, 0x34, 0x35 -> 0x31, 0x32, 0x33, 0x34, 0x35
2) 0x01, 0x02, 0x33, 0x34, 0x35 -> "CapsLock", 0x21, 0x22, "CapsLock",
0x33,0x34, 0x35

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters

[FMREAD] Read fiscal memory test field


Syntax:
$f<OPTION>^<OFFS>^

<OPTIONS> always equal to 0


<OFFS> offset value (0 - 31)
Reply:
$F<VAL>^
<VAL> byte read (hex mode)

[FMWRITE] Write fiscal memory test field


Syntax:
#f<OPTION>^<OFFS>^<VAL>^

<OPTIONS> always equal to 0


<OFFS> offset value (0 - 31)
<VAL> byte to be written (hex mode).

Reply:
Standard

Errors:
Serial Protocol ver.015 – page 23/39

ERR_RS_PAR
ERR_FATAL_FM

[FMCHECK] Check the selected area of the fiscal memory is available to be


written.
Syntax:
$m<ADDRESS>@<LEN>@

<ADDRESS> fiscal memory starting address (decimal value)


<LEN> fiscal memory area length to be checked (decimal value, the range
is 0x1H - 0x7FFFH)
Reply:
$M<VAL>^
<VAL> 0 all bytes inside tested area have value 0xFF
1 tested area contaims almost one byte differs from 0xFF

[GETOPT] Get option settings


Syntax:
$y<OPTION>^ – parameters depending on required option. See below.

Reply:
$Y - parameters depending on required option. See below.

Options:
0 – version id
Reply:
$Y<version>*

1 – printing confirmations during database programming using serial


communication protocol
Reply:
$Y<SETTING>^
<SETTING> 0 – off
1 – on

4 – automatic daily report


Reply:
$Y<SETTING>^
<SETTING> 0 – off
1 – on

6 – modem string
Reply:
$Y<modem_string>*

7 – fiscal header lines flags


Syntax:
$y<OPTION>^<LINE_NO>^
<LINE_NO> line number (1-5)
Reply:
$Y<SETTING>^
<SETTING> 0 – double height/width is off
1 - double height/width is on

8 – advertisement text printing mode flags


Syntax:
$y<OPTION>^<LINE_NO>^
<LINE_NO> line number (1-7)
Reply:
$Y<SETTING>^
Serial Protocol ver.015 – page 24/39

<SETTING> 0 – double height/width is off


1 - double height/width is on
10 – clock on display in cashier mode
Reply:
$Y<SETTING>^
<SETTING> 0 – off
1 - on

11 – automatic printing information about returnable containers


Reply:
$Y<SETTING>^
<SETTING> 0 – off
1 - on

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_TRANS_MODE – not allowed in transaction mode
ERR_NOT_ALLOWED – not allowed

[SETOPT] Set option


Syntax:
#y<OPTION>^ – parameters depending on required option. See below.

Reply:
Standard

Options:

1 – printing confirmations during database programming using serial


communication protocol
#y<OPTION>^<SETTING>^
<SETTING> 0 – off
1 – on

4 – automatic daily report


#y<OPTION>^<SETTING>^
<SETTING> 0 – off
1 - on
6 – modem string
#y<OPTION>^<modem_string>*

7 – fiscal header lines flags


Syntax:
#y<OPTION>^<LINE_NO>^<FLAG>^
<LINE_NO> line number (1-5)
<FLAG> 0 – double height/width is off
1 - double height/width is on
8 – advertisement text printing mode flags
Syntax:
#y<OPTION>^<LINE_NO>^<FLAG>^

<LINE_NO> line number (1-7)


<FLAG> 0 – double height/width is off
1 - double height/width is on

10 – clock on display in cashier mode


#y<OPTION>^<SETTING>
<SETTING> 0 – off
1 - on

11 – automatic printing information about returnable containers


#y<OPTION>^<SETTING>^
Serial Protocol ver.015 – page 25/39

<SETTING> 0 – off
1 - on

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_TRANS_MODE – not allowed in transaction mode
ERR_NOT_ALLOWED – not allowed
Serial Protocol ver.015 – page 26/39

Cashier and Transaction Mode

Cash Register enters this mode after successful [LOGIN] command with
password of a cashier defined in database. It is possible to print cashier
report [CSHREP], withdraw [DECCSH] or pay-in cash [INCCSH] and sale.
Cash Register enters transaction mode after successful [TRSHDR] command.
Only commands with transaction lines and the end of transaction are
possible.
Providing supervisor password from keyboard is required to exit while in
transaction mode - the receipt is cancelled and finished then.
Pressing ‘C’ on keyboard or [LOGOUT] command is required to exit cashier
mode.

[CSHREP] Cashier report


Syntax:
*r

Reply:
Standard.

Description:
Prints cashier report for the logged-in cashier. The statistics are not
cleared.

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_TRANS_MODE – not allowed in transaction mode
ERR_NOT_ALLOWED – not allowed

[INCCSH] Cash payment


Syntax:
*p<AMOUNT>@
<AMOUNT> amount of the cash payment

Reply:
Standard.

Description:
Cash balance is updated and a proper report is printed.

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_TRANS_MODE – not allowed in transaction mode
ERR_TOO_LARGE – amount too large

[DECCSH] Cash withdrawal


Syntax:
*d<AMOUNT>@
<AMOUNT> amount of the cash being withdrawn

Reply:
Standard.

Description:
Cash balance is updated and a proper report is printed.
Serial Protocol ver.015 – page 27/39

ERR_RS_PAR – wrong parameter


ERR_RS_PAR_NUM – wrong number of parameters
ERR_TRANS_MODE – not allowed in transaction mode
ERR_TOO_LARGE – amount too large

[TRSHDR] Transaction start


Syntax:
*t

Reply:
Standard.

Description:
Goes into transaction mode where Cash register accepts commands [TRSLNE],
[TRSEND], [TRSSUB] and [TRSEXIT] only.

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_BAD_RTC – bad RTC
ERR_FM – bad fiscal memory
ERR_NO_HDR – no header in memory
ERR_TOT_OVR – totalizers are full
ERR_TRANS_DAY_REP – sale attempt before daily report
ERR_TRANS_MODE – not allowed in transaction mode
ERR_NOT_ALLOWED – not allowed

[TRSLNE] Transaction line


Syntax:
*l<OPER>^<PLU>@<PRICE>@<QUANTITY>@

<OPER>
0 – normal sale
1 – cancellation
<PLU> PLU number from database
<PRICE> unit price of an item
<QUANTITY> quantity sold

Reply:
Standard.

Description:
Prints the transaction and updates display. Every transaction is controlled
on a PLU number level and amounts sent (no name check).
Not all of the fields have to be sent - command may be used in shorter
form. Only first two parameters are required. In this case price is taken
from the database and/or quantity is equal to 1.000.

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_NOT_TRANS_MODE – allowed only in transaction mode
ERR_PLU_NOT_FOUND – PLU number not found
ERR_LINE_NOT_ACCEPTED – fatal error, line not accepted
ERR_AMT_TOO_BIG – amount too big
ERR_MAX_LINE_CNT – too many lines
ERR_TOT_OVR – totalizer overflow
ERR_VAT_NO_ACTIVE – VAT rate non-active
ERR_QTY_TOO_LARGE - Quantity out of range
ERR_LINE_NOT_ACCEPTED - Erroneus transaction line or strono request.
ERR_QTY_DIV – improper fraction value
ERR_LAST_STORNO - Error on „storno” on the last receipt line.
Serial Protocol ver.015 – page 28/39

ERR_STORNO – Cancellation error

[TRSSUB] Transaction subtotal


Syntax:
*u

Reply:
*U<SUBTOTAL>@
<SUBTOTAL> amount of transaction

Description:
Displays current subtotal on Cash Register and sends it back to PC.

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_NOT_TRANS_MODE – allowed only in transaction mode

[TRSEND] Transaction end


Syntax:
*e<CASH>@<FP_1>@<FP_2>@<FP_3>@<FP_4>@
<CASH> amount of the cash payment
<FP_1>...<FP_4> amount paid with 1...4 form of payment

Reply:
Standard.

Description:
Closes the receipt and exits transaction mode.
Cash register totalizers and fiscal counters are updated.
Not all of the fields have to be sent - command may be used in shorter
form. In this case no forms of payment are used and/or cash equals
transaction total.

Examples:
*e
*e30000@

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
ERR_NOT_TRANS_MODE – allowed only in transaction mode
ERR_FP_NOT_FOUND – form of payment not found
ERR_TOT_OVR – totalizer overflow
ERR_TRANS_END – error transaction end

[TRSEXIT] Transaction exit


Syntax:
*x

Reply:
Standard.

Description:
Exit from the transaction mode on condition that it was not printed any
sales item.
Cash Register exits transaction mode and goes into cashier mode.

Errors:
ERR_RS_PAR – wrong parameter
ERR_RS_PAR_NUM – wrong number of parameters
Serial Protocol ver.015 – page 29/39

ERR_BAD_RTC – bad RTC


ERR_TRANS_MODE - not allowed in transaction mode

[TRSRETLN] Returnable containers transaction line


Syntax:
*k<OPTION>^<PACK>^<QTY>@

<OPTION> 0 – returnable container in, 1 – returnable container out


<PACK> returnable container id
<QTY> returnable containers quantity

Description:
Off-line returnable containers managing. It permits to perform operations
with returnable containers. This command works only out of the transaction
(TRSHDR).

Reply:
ERR_RS_PAR – wrong parameter
ERR_TRANS_MODE - not allowed in transaction mode
ERR_NOT_ALLOWED - command not allowed

[TRSRETEND] End of operations with returnable containers


Syntax:
*j
Description:
It finish off-line managing of the returnable containers, prints non-fiscal
receipt including all necessary data about quantity and price of the
returnable containers that was returned or given to the customer and
summary of the operation.

Reply:
Standard.
Serial Protocol ver.015 – page 30/39

Production test sequences


Below sequences allow basic hardware tests execution. The test sequences
work in non-fiscal mode only.

[IDENTITY] Device identification


Syntax:

%s

Reply:
%S<string>*
where: <string> = BADA for BINGO STD SR
= BADB for BINGO PLUS SR
= TADA for PERSONAL SR

[HARDWARETEST] Cash register components tests

#x2^ - keyboard test (after the command sent, cash register waits for
sequential keys pressing, pressing TOTAL key ends the test)
Reply:
#Z#x0 – test OK
#Z#x(10 + key_number) – test failed

#x3^ - client display test (consecutive digits segments of the display are
turned on, when the segments work properly, the test must be finished by
pressing TOTAL key. If there are errors of segments visible, the test must
be finished with pressing ESC key)
Reply:
#Z#x0 – test OK
#Z#x11 – test failed

#x4^ - operator display test (consecutive digits segments of the display


are turned on, when the segments work properly, the test must be finished
by pressing TOTAL key. If there are errors of segments visible, the test
must be finished with pressing ESC key)
Reply:
#Z#x0 – test OK
#Z#x11 – test failed

#x5^ - icons test (consecutive icons segments of the client and operator
displays are turned on and off. When the segments work properly, the test
must be finished by pressing TOTAL key. If there are errors of segments
visible, the test must be finished with pressing ESC key)
Reply:
#Z#x0 – test OK
#Z#x11 – test failed

#x6^ - battery test (after the command sent, user must connect external
charger. After TOTAL key pressing – the second test stage, after the next
TOTAL key pressing the test ends)
Reply:
#Z#x0 – test OK
#Z#x11 – test failed

#x7^ - printing mechanism sensors test (after the command sent, user must
check the reaction to paper end and lever up. After TOTAL key pressing the
test ends)
Reply:
#Z#x0 – test OK
Serial Protocol ver.015 – page 31/39

#Z#x11 – test failed

#x8^ - printout quality test (test printout is printed. If the printout


quality is satisfactory, press TOTAL key, otherwise press ESC key)
Reply:
#Z#x0 – test OK
#Z#x11 – test failed

#x9^ - drawer test (after the command sent, close drawer and press TOTAL
key. If the drawer opens confirm with TOTAL key, otherwise press ESC key)
Reply:
#Z#x0 – test OK
#Z#x11 – test failed

#x10^ - bar code reader test (after the command sent, read test bar code
using reader and then enter the same code using keyboard)
Reply:
#Z#x0 – test OK
#Z#x11 – test failed

#x11^ - scales test (after the command sent, connect the tester to scales
port and press TOTAL key)
Reply:
#Z#x0 – test OK
#Z#x11 – test failed

#x14^ - check if durability test was performed


Reply:
#Z#x0 – the test was performed
#Z#x11 – the test was not performed

#x32^ - turn off test (after successful turn off, turn the device on again)
Reply:
#Z#x0 – test OK
#Z#x11 – test failed

#x71^<string>* - RAM clearing


where: <string> ignored parameter

Reply:
#Z#x0 – clearing successful
#Z#x11 – it is impossible to clear the device

[GETINFO] Device information read

$x33^ - version read

Reply:
$X33<VER>*
where: VER – string describing software version

$x34^ - battery voltage read


Reply:
%X34<VOLT>*
where: VOLT = voltage in mV (hexadecimal number)

$x35^ - BIOS status read


Reply:
Serial Protocol ver.015 – page 32/39

%X35<STAT>*
where: STAT – BIOS status (16-bit hexadecimal number)

$x36^ - device type and language version


Reply:
%X36<DEV><LANG>*
where: DEV - 8-bit hexadecimal number describing device type
LANG - 8-bit hexadecimal number describing language version
Serial Protocol ver.015 – page 33/39

Error handling

Execution error
In case of message execution error a standard status message is sent to PC.
Cash Register enters the main analysis loop and awaits next command.

Printer error
In case of printer error a message is displayed. Cash Register sends back
one-byte code same as reply for DLE special character and awaits an
operator intervention. On POSNET Thermal any consecutive commands are
queued. After the complete command execution a standard message is sent to
PC.

Error codes
Numeric equivalents of error codes are described in Appendix B. They may be
changed in later versions of this document.
Serial Protocol ver.015 – page 34/39

DISPLAY
Client and operator displays are both fully controlled by Cash Register
software. There is no possibility to change their content from external
application.
Serial Protocol ver.015 – page 35/39

APPENDIX A
This appendix describes formats of each database record when received or
sent to/from Cash Register. <DATABASE_RECORD> in [RECGET], [RECADD] and
[PLUGET].
Errors specific for each database are listed.

Remarks:
1. Database records contains data that could be only read by remote PC.
Usually there are the fields automatically updated by fiscal cash
registers (sales values, sales quantity, payment forms amount, etc.).
It means that it’s possible to program only the same fields that are
accessible from the fiscal cash register menu.
Example: payment forms database – field “amount” is read only, if the
remote PC try to set this value it will be ignored by the system.

Department database
Syntax:
<NAME>*<PR_MIN>@<PR_MAX>@<AMT>@
<NAME> department name (up to 16 characters)
<PR_MIN> minimal price
<PR_MAX> maximal price
<AMT> department sale amount

Errors:
ERR_NAME_NOT_UNIQUE – name not unique
ERR_WRONG_NAME – wrong or empty name

Hot-key database
Syntax:
<PLU_NR>@<QUANTITY>@<FLAG>^
<PLU_NR> PLU number
<QUANTITY> quantity to sell
<FLAG> 0 – normal
1 – closes receipt

Errors:
None

Cashier database
Syntax:
<NAME>*<PASSWORD>* [<D_REP>^<NO_SUB>^<PR_CHANGE>^<TURNOVER>@<CANC_CNT>@
<CANC_AMT>@<CASH_IN>@<CASH_OUT>@<TKNGS>@<FP_1>@<FP_2>@<FP_3>@
<FP_4>@<NO_P_SOLD>@<NO_P_RET>@<AMT_P_SOLD>@<AMT_P_RET>@<RCPT_CNT>@<TIME>@]
Parameters in the brackets [] are optional in the programming mode.

<NAME> cashier name (up to 10 characters)


<PASSWORD> numerical password (4 digits)
<D_REP> daily report printing (0 – disabled ,1 – enabled)
<NO_SUB> Single key transaction closing (without subtotal mode) (0 –
off, 1 – on, without subtotal)
<PR_CHANGE> PLU price changing (0 – disabled ,1 – enabled)
<TURNOVER> trade turnover
<CANC_CNT> number of cancellations
<CANC_AMT> amount of cancellations
Serial Protocol ver.015 – page 36/39

<TKNGS> takings
<FP_1>
...
<FP_4> sale with 1..4 form of payment
<NO_P_SOLD> number of returnable containers out
<NO_P_RET> number of returnable containers in
<AMT_P_SOLD> value of the returnable containers out
<AMT_P_RET> value of the returnable containers in
<RCPT_CNT> number of receipts
<TIME> work time

Errors:
ERR_NAME_NOT_UNIQUE – name not unique
ERR_WRONG_NAME – wrong or empty name
ERR_PASSWORD_NOT_UNIQUE – password not unique

Forms of payment database


Syntax:
<NAME>*<TYPE>^<AMOUNT>@
<NAME> form name (up to 16 characters)
<TYPE> 0 – card
1 – cheque
<AMOUNT> turnover

Errors:
ERR_NAME_NOT_UNIQUE – name not unique
ERR_WRONG_NAME – wrong or empty name

PLU database
Syntax:
<NAME>*<BARCODE>*<PRICE>@<VAT>^<DPMT>^<CONT>^<PR_FXD>^<CPR_MAX>^<CPR_MIN>^
<M_UNIT>^<QUANTITY>@<TURNOVER>@

<NAME> PLU name (up to 16 characters)


<BARCODE> PLU barcode (up to 13 characters, empty or zero if none)
<PRICE> unit price
<VAT> 0...8 - VAT rate
<DPMT> PLU’s department
<CONT> returnable container number
<PR_FXD> price is fixed (0 – off, 1 – on)
<CPR_MAX> control maximal price (0 – off, 1 – on)
<CPR_MIN> control minimal price (0 – off, 1 – on)
<M_UNIT> measurement unit
0 – none (not defined)
1 – g (gram)
2 – kg (kilogram)
3 – t (ton)
4 – l (liter)
5 – m (meter)
6 – m2 (square meter)
7 – m3 (cubic meter)
<QUANTITY> quantity sold
<TURNOVER> turnover value

Errors:
ERR_WRONG_DMPT – wrong department
ERR_BARCODE_NOT_UNIQUE – barcode not unique
ERR_NAME_NOT_UNIQUE – name not unique
ERR_WRONG_NAME – wrong or empty name
Serial Protocol ver.015 – page 37/39

Barcode format database


Syntax:
<BC_FMT>*
<BC_FMT> barcode format

Errors:
ERR_WRONG_BARCODE_FMT – wrong barcode format

Returnable containers database


Syntax:
<PACK_NAME>*<PACK_PRICE>@<PACK_SOLD_QTY>@<PACK_RET_QTY>@<PACK_SOLD_AMT>@
<PACK_RET_AMT>@

<PACK_NAME> returnable container name


<PACK_PRICE> returnable container price
<PACK_SOLD_QTY> number of returnable containers to be out
<PACK_RET_QTY> number of returnable containers to be in
<PACK_SOLD_AMT> value of returnable containers to be out
<PACK_RET_AMT> value of returnable containers to be in

Errors:
ERR_NAME_NOT_UNIQUE – name not unique
ERR_WRONG_NAME – wrong or empty name
ERR_RS_PAR_NUM – wrong number of parameters
ERR_AMT_TOO_BIG – amount too big
ERR_RS_PAR – wrong parameter
Serial Protocol ver.015 – page 38/39

APPENDIX B
This appendix provides numerical equivalents of error codes described in
the document.

Mnemonic Error code Description


ERR_RS_CHECK 2 Checksum error.
ERR_RS_PAR_NUM 3 Wrong number of parameters.
ERR_RS_PAR 4 Wrong parameter.
Real Time Clock error or RTC not
ERR_BAD_RTC 5
properly initialized.
ERR_FATAL_FM 6 Fiscal memory read/write error.
Function not allowed in non-
ERR_NON_FISC_MODE 7
fiscal mode.
Operation not allowed. Totalizers
ERR_TOTNZ 8
are non-zero.
ERR_READ_ONLY 9 Read only state.
Printer error. Printer lever is
ERR_PRN_LEVER 11
up.
ERR_PRN_PAPER 12 Printer error. No paper.
ERR_PRN_ERROR 13 Printer mechanism error.
Printer mechanism error or power-
ERR_PRN_OTHER 14
fail.
ERR_PRN_ERROR_ACC 15 Battery is low.
ERR_PLU_NOT_FOUND 20 PLU number not found
Returnable container’s record not
ERR_PACK_NOT_FOUND 21
found in the database.
Hot key not found in the
ERR_KEY_NOT_FOUND 23
database.
ERR_FORM_NOT_FOUND 24 Form of payment not found
ERR_CASHIER_NOT_FOUND 25 Cashier of payment not found
ERR_DEP_NOT_FOUND 26 No department.
ERR_SETCLK_BAD_DATE 32 Bad date format (e.g. 2001-02-31)
Date prior to last record in
ERR_SETCLK_LE_FM_DATE 33
fiscal memory .
Date already set or fiscal
ERR_SETCLK_INVALID_DATE 34
receipts already printed.
Range error during clock set. (+-
ERR_SETCLK_DIFF 35
1h)
ERR_REP_EMPTY 41 No records to print.
Cash register is blocked after
E_TRSLOCK 42
fiscal module error.
ERR_QTY_DIV 50 Quantity is not integer number.
ERR_TRANS_DAY_REP 51 Sale before daily report
ERR_PRICE_ZERO 52 Price is zero
Price not equal to price from
ERR_PRICE_FIXED 53
database.
Error on „storno” on the laste
ERR_LAST_STORNO 54
receipt line.
Depending of the current
operation it could mean erroneus
ERR_LINE_NOT_ACCEPTED 55
transaction line or bad strono
specification.
ERR_MAX_LINE_CNT 56 Too many transaction lines
ERR_TRANS_MODE 57 Not allowed in transaction mode
ERR_NO_TRANS_MODE 58 Allowed only in transaction mode
ERR_TRANS_END 59 Transaction closing error
ERR_AMT_TOO_BIG 60 Amount too big
ERR_QTY_TOO_LARGE 61 Quantity out of range.
Bad quantity specification
ERR_QTY_FORMAT 62
format.
ERR_INV_VAL 63 Bad value.
ERR_TOT_OVR 64 Totalizer overflow
ERR_VAT_INACTIVE 70 VAT rate non active.
ERR_NO_HDR 100 No fiscal header.
ERR_SET_HDR 101 Error programming header.
ERR_DAY_REP 102 Error executing daily report.
Serial Protocol ver.015 – page 39/39

ERR_INVALID_PASSWORD 104 Invalid password.


ERR_REC_ADD 110 Error adding database record.
ERR_WRONG_REC_NUM 111 Wrong record number.
ERR_WRONG_NAME 112 Wrong or empty name.
ERR_NAME_NOT_UNIQUE 113 Name not unique.
ERR_PASSWORD_NOT_UNIQUE 114 Password not unique.
ERR_EMPTY_PASSWORD 115 Password is empty.
Minimal price is bigger than
ERR_PRICE_MIN_MAX 117
maximal.
Database error. Record already
ERR_REC_EXISTS 121
exists or database is full.
Barcode database error. You try
ERR_BARCODE_NOT_UNIQUE 122 to store an barcode already
programmed.
ERR_WRONG_BARCODE_FMT 123 Wrong barcode format.
ERR_REC_ADD_FATAL 125 Error appending database record
ERR_RS_GRAPH_PRN_SIZE 130 Wrong graphic data.
ERR_RS_GRAPH_TYPE 131 Wrong graphic type.
ERR_RS_GRAPH_LINE_CNT 132 Wrong data line.
ERR_RS_GRAPH_LINE_NUM 133 Wrong data line.
ERR_RS_GRAPH_DATA_LEN 134 Wrong data length.
ERR_RS_GRAPH_DATA 135 Wrong data line.
ERR_RS_GRAPH_NOT_VALID 136 Data not present.
ERR_NOT_ALLOWED 254 Command not allowed.
ERR_CMD_UNKN 255 Unknown command.

Notes:
1. Error codes specified in red are reserved for the further use, so in
the current versions of the software they do not appear.

You might also like