https://www.microsoft.com/el-gr/download/details.aspx?id=49981

Folder:EXE
==========
υπάρχουν δύο folders x64 και x86, με τις αντίστοιχες εκδόσεις. 

Έχουν υλοποιηθεί 2 commands : clear & sale, τα οποία καλούνται ως εξής:


Α. Clear command
================
Καθαρίζει την μνήμη του Cardlink device. Kαλό είναι να το έχετε για λόγους reset.

A.1. Κλήση σε IP
----------------
Cardlink.exe clear IP 127.0.0.1 800 1 logpath> F:\a.txt
Arguments:
1. clear : commanding argument
2. IP : τρόπος σύνδεσης με Cardlink device 
3. 127.0.0.1: Cardlink device IP address
4. 800: Cardlink device port
5. 1: log debug info. Η πληροφορία debug αποθηκεύεται στο folder CardlinkDebug_IP, το οποίο δημιουργείται αυτόματα στο ίδιο path που βρίσκεται και το Cardlink.exe. Δημιουργούνται ημερήσια αρχεία της μορφής 2019-06-06 debug.txt. 
ΠΡΟΣΟΧΗ: Σε αυτά τα αρχεία αποθηκεύεται πληροφορία από την ECR dll και όχι από Cardlink.exe!
Εάν το argument έχει τιμή 0, δεν αποθηκεύεται καμία πληροφορία από ECR dll.
6. F:\a.txt : Path and Filename του αρχείου που αποθηκεύονται τα δεδομένα του συγκεκριμένου clear command. O χαρακτήρας ">" είναι απαραίτητος ώστε να επιτυγχάνεται redirect του output του Cardlink.exe σε αρχείο της επιλογής σας. Εάν δεν υπάρχει η λογική του output redirection, το αποτέλεσμα δεν αποθηκεύεται πουθενά!

A.2. Κλήση σε Com
-----------------
Cardlink.exe clear COM COM4 9600 0 1 8 1 logpath> F:\a.txt
Arguments:
1. clear : commanding argument
2. COM : τρόπος σύνδεσης με Cardlink device 
3. COM4: Cardlink device COM port
4. 9600: Cardlink device port rate
5. 0: Cardlink device port parity
6. 1: Cardlink device port stop bits
7. 8: Cardlink device port byte size
8. 1: log debug info. Η πληροφορία debug αποθηκεύεται στο folder CardlinkDebug_COM, το οποίο δημιουργείται αυτόματα στο ίδιο path που βρίσκεται και το Cardlink.exe. Δημιουργούνται ημερήσια αρχεία της μορφής 2019-06-06 debug.txt. 
ΠΡΟΣΟΧΗ: Σε αυτά τα αρχεία αποθηκεύεται πληροφορία από την ECR dll και όχι από Cardlink.exe!
9. > F:\a.txt : Path and Filename του αρχείου που αποθηκεύονται τα δεδομένα του συγκεκριμένου clear command. O χαρακτήρας ">" είναι απαραίτητος ώστε να επιτυγχάνεται redirect του output του Cardlink.exe σε αρχείο της επιλογής σας. Εάν δεν υπάρχει η λογική του output redirection, το αποτέλεσμα δεν αποθηκεύεται πουθενά!


B. Sale command
===============
Πραγματοποιεί πώληση μέσω Cardlink device.

B.1.Παράδειγμα κλήσης μέσω IP interface :  
Cardlink.exe sale IP 127.0.0.1 800 1 logpath 1234.78 > F:\a.txt
Arguments:
1. sale: commanding argument
2. IP : τρόπος σύνδεσης με Cardlink device 
3. 127.0.0.1: Cardlink device IP address
4. 800: Cardlink device port
5. 1: log debug info. Η πληροφορία debug αποθηκεύεται στο folder CardlinkDebug_IP, το οποίο δημιουργείται αυτόματα στο ίδιο path που βρίσκεται και το Cardlink.exe. Δημιουργούνται ημερήσια αρχεία της μορφής 2019-06-06 debug.txt. 
ΠΡΟΣΟΧΗ: Σε αυτά τα αρχεία αποθηκεύεται πληροφορία από την ECR dll και όχι από Cardlink.exe!
Εάν το argument έχει τιμή 0, δεν αποθηκεύεται καμία πληροφορία από ECR dll.
6. 1234.78 : Amount of sale. Το διαχωριστικό μεταξύ ακεραίου και δεκαδικού μέρους είναι ο χαρακτήρας ASCII 46.
7. > F:\a.txt : Path and Filename του αρχείου που αποθηκεύονται τα δεδομένα του συγκεκριμένου sale command. O χαρακτήρας ">" είναι απαραίτητος ώστε να επιτυγχάνεται redirect του output του Cardlink.exe σε αρχείο της επιλογής σας. Εάν δεν υπάρχει η λογική του output redirection, το αποτέλεσμα δεν αποθηκεύεται πουθενά!

B.2.
Παράδειγμα κλήσης μέσω COM interface :  
Cardlink.exe sale COM COM4 9600 0 1 8 1 logpath 1234.78 > F:\a.txt
Arguments:
1. sale: commanding argument
2. COM : τρόπος σύνδεσης με Cardlink device 
3. COM4: Cardlink device COM port
4. 9600: Cardlink device port rate
5. 0: Cardlink device port parity
6. 1: Cardlink device port stop bits
7. 8: Cardlink device port byte size
8. 1234.78 : Amount of sale. Το διαχωριστικό μεταξύ ακεραίου και δεκαδικού μέρους είναι ο χαρακτήρας ASCII 46.
9. 1: log debug info. Η πληροφορία debug αποθηκεύεται στο folder CardlinkDebug_COM, το οποίο δημιουργείται αυτόματα στο ίδιο path που βρίσκεται και το Cardlink.exe. Δημιουργούνται ημερήσια αρχεία της μορφής 2019-06-06 debug.txt. 
ΠΡΟΣΟΧΗ: Σε αυτά τα αρχεία αποθηκεύεται πληροφορία από την ECR dll και όχι από Cardlink.exe!
10. > F:\a.txt : Path and Filename του αρχείου που αποθηκεύονται τα δεδομένα του συγκεκριμένου sale command. O χαρακτήρας ">" είναι απαραίτητος ώστε να επιτυγχάνεται redirect του output του Cardlink.exe σε αρχείο της επιλογής σας. Εάν δεν υπάρχει η λογική του output redirection, το αποτέλεσμα δεν αποθηκεύεται πουθενά!


ΠΑΡΑΔΕΙΓΜΑ CLEAR COMMAND OUTPUT
================================
Στο αρχείο a.txt με βάση τα παραπάνω αποθηκεύεται πληροφορία της μορφής:
TIMESTAMP : 6.6.2019   15:34:30 Successfully connected to Cardlink IP interface
ERROR : 0
DIAGNOSTIC : Cleared Cardlink memory
ACTION : Terminating

ΠΑΡΑΔΕΙΓΜΑ SALE COMMAND OUTPUT
==============================
Στο αρχείο a.txt με βάση τα παραπάνω αποθηκεύεται πληροφορία της μορφής:
TIMESTAMP : 6.6.2019   14:50:50 Successfully connected to Cardlink IP interface
ERROR : 0
DIAGNOSTIC : SUCCESS
RESPONSE INFO : 
Session Id :       
Message Type :    
Message Code :   
Response Code : UT
Response Message :                                                             
Card Type :                 
Account Number :                        
Reference Number :       
Authorization Code :       
Batch Number :       
Amount :              
Message Options :     
Tip Amount :           
Foreign Amount :              
Foreign Currency :    
Exchange Rate including Markup :          
DCC Markup Percentage :         
DCC Exchange Date of Rate :     
EFT Terminal Id :             
TLV Data :                                                                                                   
ACTION : Terminating


Στην περίπτωση που το sale δεν πραγματοποιηθεί επιτυχώς, στο πεδίο DIAGNOSTIC θα υπάρχει FAILED αντί για SUCCESS.
Αποθηκεύονται όλες οι πληροφορίες που φέρνει το ECR dll. Η ανάλυση και σημασία των πεδίων εξηγείται στα συνοδευτικά documents του ECR DLL Usage manual kai ECR to EFT Protocol.
Επίσης εάν κάποιο από τα arguments κλήσης του sale command δεν είναι έγκυρο το πεδίο ERROR έχει ακέραια τιμή με κατάλληλη πληροφορία στο πεδίο DIAGNOSTIC και το command δεν προωθείται στο device. Περισσότερες πληροφορίες μπορείτε να δείτε και στον κώδικα.

Τα παραπάνω είναι παραδείγματα από Simulator, o οποίος δεν εξομοιώνει πλήρως το πραγματικό device.
Τέλος, δοκιμές με COM δεν ήταν εφικτές με τον Simulator.
