Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

DC Sim PDF

Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

DC-SIM file:///D:/Dok/ATM/DC-SIM.

htm

ProCash/NDC
ProCash/DDC
Application Test Suite: Host Simulator

The Host Simulator

Setup
General Function

The Control File NDC-SIM.INI

General
Sections
Examples

The Download File NDC-SIM.DLL

General
Example

The Host Console Simulator HOSTSIM.EXE

General

Setting up the host simulator

The ProTopas communication framework DLL name is configured in the registry and can be replaced by the
simulator by adding the following setting to the PPF / INA files:

[FRM_REPOSITORY]

CCCommunication1 = "C:\PROTOPAS\BIN\dcSimCom.DLL"

General Function

Very good!

The Control File NDC-SIM.INI

The file NDC-SIM.INI is a text file and must be in the directory C:\PROTOPAS. It is structured into various
sections. Section names must begin in the first position of a line and begin with the column (":") character,
followed by the section name in uppercase characters and without blanks. The immediate next line(s) contain
the associated values as described below (see also the example later on). A blank line separates it from the
next section key.

The following sections are defined:

1 of 7 06.05.2011 11:58
DC-SIM file:///D:/Dok/ATM/DC-SIM.htm

:ADMIN
Admin card data (track2): Max 16 numeric digits (padded with '9').

:COMM_KEY
Communication key (16 Hex digits defining the communications key). Today only the loading of a Master key
encrypted COM key is supported. If omitted, no key load is included in the startup.

:RECEIPTnn
The index number nn will be used in the print data column of the function command section
(FUNC_TABLE).
Standard NDC/912 print buffer, starts with the printer flag (1: Journal, 2:Receipt, 3:Both, 4: Deposit) followed
immediately by the print data. See also in the NDC/DDC Manuals

Replace the line feeds (character \0a) by line breaks. Variables can be used to include actual data in the
receipt:

\$1 Date (format DD/MM/YY)


\$2 Time (format HH:MM)
\$3 Station ID (KARLI001)
\$4 Track 2 data (16 bytes)
\$5 Transaction number (4 bytes)
\$6 Transaction (12 bytes)
\$7 Ammount (8 bytes)
\$8 Account balance (8 bytes) (only if CARD_TABLE used)

:END
End of the previous RECEIPT section

:SCREEN_UPDnn
Screen update data. "nn" is the index used in the FUNC_TABLE.

:INTER_TRANnn
Interactive Transaction Reply ("OAR Screens"). "nn" is the index used in the FUNC_TABLE.

:CARD_TABLE
Table with 4 digits account no. and max. 16 digits PIN.
Each card has an associated account to provide a balance for receipt printing and balance inquiry functions.

Not yet supported in the NT version!

:WITHDR_BASE
Defines the amount base in the amount field (transaction request).
Values are 1 amount without decimal places (Cents) (default)
100 amount with decimal places (Cents)

:NO_POWER_ON
If present, this key causes the simulator not to wait for the power-up message

:CASSETTES
list of the (max. 4) logical note types. Only the value is given here, therefore multi-currency configurations
are not yet supported. The amount will be used to compute the notes to be dispensed in withdrawal functions.

:DISPALGO

2 of 7 06.05.2011 11:58
DC-SIM file:///D:/Dok/ATM/DC-SIM.htm

Currently two dispense algorithms are supported:


0 High notes (default) - dispense with the biggest suitable notes
1 note mix - mix of as many note types as possible

:FUNC_TABLE
Defines the next state, screen, etc depending on the "operation key buffer" sent by the application. Since this
Opcode Buffer identifies the transaction type selected by the cardholder, the fields in every line of this
section must match those that the "real" host system would send in the same situation. The information on the
proper settings can either be found in the host system's documentation or empirically by performing all
possible transactions and checking what the host replies (by analyzing log files or communication traces).

This section is a table with the following columns, separated by commas and optional blanks:

Operation Code Buffer, to match the one in the request. List will be searched top-down for the first
match. Consists of 8 characters: A-I, including blanks. Wildcard "?" matches to any character on its
position.
Next State Number: Optional state number from where the application will continue after successful
completion of the selected function. Can be empty for "Print Immediate" functions (FID 4).
Screen number to be displayed while function is executed
Function Identifier (FID) plus (optional) screen number. FID: Character identifying the function. In 912
mode several FID/Screen combinations (separated with ";") can form a sequence of functions. After
"Dispense" functions a fix amount can be attached after a colon (":") after the FID/Screen. If not used,
the amount from the request will be used. See NDC / 912 manuals for FID values and details of the
corresponding functions and fields.
Transaction name: Defines the name of transaction, to be used in the print data field \$6

In the Power up phase (after POWER UP message or after the session was established-NO_POWER_UP
parameter and the Automatic flag is ON) the simulator tries to open the downline load file NDC-SIM.DLL (in
the NDC data directory). It is read line by line. If a line starts with a nummeric digit the line is send, else it is
dumped to the logfile. Max 600 characters per line, Character '|' = 7Ch = 124d is converted to 'Field seperator'
= 1Ch.

The following messages are supported and handled as follows:

1. Unsolicited

Message from CSC Message(s) from NDC simulator


Power up get cassette values

send config info

do_downline_load using file NDC-SIM.DLL

downlineload comm-key

go in service
Supervisor switch to normal get cassette values

go out of service

3 of 7 06.05.2011 11:58
DC-SIM file:///D:/Dok/ATM/DC-SIM.htm

send supplies counters

go in service

All other messages are ignored but dumped to the logfile.

2. Solicited

Message from CSC Message(s) from NDC simulator


Device fault: Send reply defined by OPERATION CODE:

IDCU XIDCU

CDM XCDM or XCDMRETR(if M-Status is 19)

Deposit XDEPOSIT

Deposit timeout or cancel XDEPTIME


Command reject Send reply defined by OPERATION CODE XCOMREJ
Specific command reject Send reply defined by OPERATION CODE XCOMSREJ
READY Check if a Print Immediate is in progress use XSUBTOT
and simulate a Transaction request

All other messages are ignored.

3. Transaction request

When the simulator receives a Transaction request it will first recalculate the PIN entered and the look into
the card_table to find an entry.

If no entry is found the PIN verification returns OK.

If an entry is found the PIN is checked

If the PIN verification returns FAILED the simulator will use OPERATION CODE XPINFAIL (to retry) or
XPINCAPT (to capture the card after 3rd retry).

In the next step the simulator verifies if the card inserted is the administrator card. If this is the case the
OPERATION CODE XADMIN is used.

Now the OPERATION CODE is checked using the FUNC_TABLE and the reply message is build.

If a dispense function is used the simulator will check if the requested amount is dispensable. If the total
number of notes to dispense is 0 the OPERARATION CODE is changed to XHIGHER. If the total number of
notes is more than 40 notes the OPERATION CODE XLESSER is further used and if there is any remainder

4 of 7 06.05.2011 11:58
DC-SIM file:///D:/Dok/ATM/DC-SIM.htm

(e.g. request $21 and there are no $1 notes available) the OPERATION CODE XOTHER is used.

Finaly the printer data is build.

Special OPERATION CODES are:

XSUBTOT After READY if last reply was Print Immediate.


XADMIN Used if inserted card is ADMIN card.
XUNKNOWN Used if a specific OPERATION CODE is not found.

XPINFAIL Used if PIN verifikation failed but retries are allowed.


XPINCAPT Used if PIN verifikation failed but retries are exceeded.
XIDCU Used on device fault IDCU.
XCDM Used on device fault CDM.
XCDMRETR Used on device fault CDM with DIAG MSTAT 19.
XDEPOSIT Used on device fault Deposit.
XDEPTIME Used on device fault Deposit timeout or canceled.
XCOMREJ Used on COMMAND REJECT.
XCOMSREJ Used on SPECIFIC COMMAND REJECT.
XHIGHER Used when cardholder should enter a higher amount.
XLESSER Used when cardholder should enter a lesser amount.
XOTHER Used when cardholder should enter a different amount.

Examples

Downline load file NDC-SIM.DLL:

Downline load config ID.


3|||16|0001
Downline load finished.

Initialisation file NDC-SIM.INI ([ESC]=1Bh):


:COMM_KEY
001002003004005006007008

:RECEIPT4
12/03/99\0e919:41\0e:S1AQL114\0a\0aDOMICILIO: MEXICO 444 \0a <015>\0aNUMERO DE
TARJETA\0e:NRO.DE TRANS.\0a\1d14517510150001234-001\0a\1d3XXXXXXXXXXXX1234-001\0e:
810\0a\0aEXTRACCION $ CTA. CTE. EN PESOS \0a\0aDE CUENTA NRO.\0a0010000034
\0a\0aIMPORTE\0e? $ 30,00\0aSU SALDO ES (*)\0e7 $ 1180,00\0aDISPONIBLE \0e; $
870,00\0aACUERDO $ 1000,00\0a\0a\0a(*) S.E.U.O.\0a\0aSIGA PARTICIPANDO\0a\0c

:END

:RECEIPT8
2\1b4 PO_LSJN BAOL NPSLCA
===================
EATA.........: 28/04/98
CRFNa........: 14:07:15

5 of 7 06.05.2011 11:58
DC-SIM file:///D:/Dok/ATM/DC-SIM.htm

BAOLPNAT \1b5No..: 000015


\1b4LARTA \1b5No.....: 5...3404

\1b4 BAMAOS:\1b5

4200.81 USD

\1b4 SQASJBP!\1b5
:END

:RECEIPT15
2\1b4 PO_LSJN BAOL NPSLCA
===================

EATA.........: 29/04/98
CRFNa........: 17:04:11
BAOLPNAT \1b5No..: 000015
\1b4LARTA \1b5No.....: 5...3404
\1b4LPE..........: 213706

SUNNA:\1b5

50.00 RUR

\1b4 SQASJBP!\1b5
:END

:SCREEN_UPD1
075\0f@@

:INTER_TRAN1
1100111\1c074\1c\0c\0e186\0fBEAsO \0fBJTAMIEYTHPIO\0fDD011/084-14\0fED011/083-31
\0fFD1100000303\0fGD1100000404\0fHA \0fJ5

:CARD_TABLE

:WITHDR_BASE
1

:CASSETTES
10
20
50
100

:DISPALGO
0

:FUNC_TABLE
AB ?, 200, E230;B209;C209;D200 , 4, Type
B ?, 201, D200 , 8, Type
AA ?, 200, E230;B209;C209;D200 , 15, Type
XXXXXXXX, 200, E2301;B209:1000;C209;D200, 15, Type
XTRAN_T , 151, 000:1, 5 , 9 , INTERACTIVE TRAN TIMEOUT
XTRAN_E , 151, 000:1, 5 , 9 , INTERACTIVE TRAN CANCEL
XSUBTOT1, 175, 000:1, 5 , 11 , SUBTOTALS 2. PART
XADMIN , 000, , 5 , 0 , ADMINISTRATOR
XUNKNOWN, 151, 000:1, 5 , 9 , UNKNOWN TRANSACTION
XPINFAIL, 000, , 5 , 0 , PIN FAILED AGAIN
XPINCAPT, 000, , 5 , 0 , PIN FAILED CAPTURE
XIDCU , 000, , 5 , 0 , IDCU ERROR
XIDCUCAP, 000, , 5 , 0 , IDCU ERROR
XCDM , 000, , 5 , 0 , CDM ERROR

6 of 7 06.05.2011 11:58
DC-SIM file:///D:/Dok/ATM/DC-SIM.htm

XCDMRETR, 000, , 5 , 0 , MONEY RETRACT


XDEPOSIT, 000, , 5 , 0 , DEPOSIT ERROR
XDEPTIME, 000, , 5 , 0 , DEPOSIT CANCELED
XCOMREJ , 000, , 5 , 0 , COMMAND REJECT
XCOMSREJ, 000, , 5 , 0 , SPEC. COMM. REJECT
XHIGHER , 000, , 5 , 0 , HIGHER AMMOUNT REQUIRED
XLESSER , 000, , 5 , 0 , LESSER AMMOUNT REQUIRED
XOTHER , 000, , 5 , 0 , OTHER AMMOUNT REQUIRED
XSTPRNT , 000, , 5 , 0 , STATEMENT PRINTER ERROR

Further Information:

NDC/912 Manuals:

For general information on the meaning of the described features you can consult the NDC/DDC Emulation
for CSC/M User Manual or the reference manuals of other NDC/912 system vendors. Most of the fields
needed here will be found in the chapters describing the "Transaction Request" and the "Transaction Reply"
messages (Diebold names: "Consumer Request " / "Function Command")

To find out which functions are supported by your version of ProCash/NDC or -/DDC please use the
corresponding version of the ProCash/NDC, ProCash/DDC Programmer's Reference Manual and/or check
http://ssp-asw.pdb.sni.de/ in the Siemens Intranet.

7 of 7 06.05.2011 11:58

You might also like