e355/e265
User and Best Practices Guide
Verifone Part Number DOC087-080-EN-A, Revision A
E355/E265 User and Best Practices Guide
© 2016 Verifone, Inc.
All rights reserved. No part of the contents of this document may be reproduced or transmitted in any form without the written permission of Verifone, Inc.
The information contained in this document is subject to change without notice. Although Verifone has attempted to ensure the accuracy of the contents of this document, this document may include errors or omissions. The examples and sample programs are for illustration only and may not be suited for your purpose. You should verify the applicability of any example or sample program before placing the software into productive use. This document, including without limitation the examples and software programs, is supplied “As-Is.”
Verifone, the Verifone logo, VeriCentre, and Verix are registered trademarks of Verifone. Other brand names or trademarks associated with Verifone’s products and services are trademarks of Verifone, Inc.
All other brand names and trademarks appearing in this manual are the property of their respective holders. Comments? Please e-mail all comments on this document to your local Verifone Support Team.
Verifone, Inc. 1-800-Verifone www.verifone.com
Verifone Part Number DOC087-080-EN-A, Revision A
CONTENTS
PR EF AC E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Audience. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Related Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Conventions and Acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Document Conventions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Acronym . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
CHA P TE R 1 |
|
|
e355 Device |
Device Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
11 |
|
Software Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
13 |
|
Low Power Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
13 |
|
Loadable drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
13 |
|
Mobile PINpad Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
13 |
|
Modular frame. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
13 |
|
iOS, Android/Windows Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
13 |
|
Bluetooth Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
14 |
|
Wi-Fi Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
14 |
|
VTM on the Display. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
14 |
|
Software Changes for PCI4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
14 |
|
Charging Schemes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
14 |
|
Software Packaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
14 |
CHA P TE R 2 |
|
|
Architecture |
Standalone Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
15 |
|
Mobile PINpad Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
16 |
|
Virtual Communication Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
17 |
|
Protocol Strings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
17 |
|
Device Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
18 |
|
open() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
19 |
|
close(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
19 |
|
read() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
20 |
|
write() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
21 |
|
Reset_port_error() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
21 |
|
Get_port_status() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
22 |
|
set_event_bit() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
23 |
|
get_event_bit() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
23 |
|
iap_control_function() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
24 |
|
iap_get_keypad_state() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
24 |
|
Communication Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
25 |
|
Software Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
28 |
|
e355 Data Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
29 |
E355/E265 USER AND BEST PRACTICES GUIDE |
3 |
CONTENTS |
|
|
CH AP T ER 3 |
|
|
Communication |
USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
31 |
Interfaces |
USB Host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
31 |
|
USB Device. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
33 |
|
Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
35 |
|
Supported Profiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
35 |
|
Personal Area Network (PAN) Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
36 |
|
Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
36 |
CH AP T ER 4 |
|
|
Power |
Charging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
37 |
|
Side Micro-USB Port Only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
37 |
|
Simultaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
37 |
|
Sequential (Only on iPod 6 Frame). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
37 |
|
Power Sharing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
38 |
|
On and Off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
38 |
|
Power On . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
38 |
|
Power Off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
38 |
|
Hidden Reset Button. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
38 |
|
Power Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
39 |
|
Off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
39 |
|
Active . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
39 |
|
Sleep. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
39 |
|
Power Environment Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
40 |
|
Power Best Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
40 |
|
Battery Status LED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
42 |
CH AP T ER 5 |
|
|
Special Features |
Pass-Through Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
43 |
|
Persistent Pass-Through . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
43 |
|
Enabling Pass-Through . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
44 |
|
Disabling Pass-Through . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
44 |
|
24-Hour Restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
44 |
CH AP T ER 6 |
|
|
System Mode - VTM Entering and Exiting VTM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
45 |
|
|
Keypad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
47 |
|
Menus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
47 |
|
Edit Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
48 |
|
Editing *GO Configuration Parameter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
48 |
|
Download . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
49 |
|
Serial Download . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
49 |
|
USB Download . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
51 |
|
DDL Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
52 |
|
Memory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
53 |
|
Terminal Info. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
53 |
|
Diags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
53 |
|
Keyboard Diag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
53 |
|
Display Test Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
53 |
|
ICC (Smart Card) Diag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
54 |
|
Mag Card Diag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
54 |
|
Barcode Diag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
55 |
4 E355/E265 USER AND BEST PRACTICES GUIDE
|
|
CONTENTS |
|
ICC (Contactless) Diag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . 55 |
|
Tamper Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . 56 |
|
Battery Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . 56 |
|
IPP (Debit) KSN Info. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 57 |
|
ADE KSN Info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 57 |
|
License Listing (FE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 57 |
|
System Error Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 58 |
|
Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 59 |
|
Console Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 59 |
|
Change Passwords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 60 |
|
Key Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 60 |
|
IPP (Internal PIN Pad) Key load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 61 |
|
RKL (Remote Key Loader) Key Load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 61 |
|
RKL Key Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 61 |
|
ADE Key Load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 62 |
|
ADE Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 62 |
|
Software Versions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 63 |
CH AP TE R 7 |
|
|
Logging Options |
OS Logging Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 65 |
|
*DEBUG (Serial) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 65 |
|
*LOG (File Based) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 66 |
|
Configuration Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 67 |
|
EOS Log Library. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 67 |
|
EOS Configuration Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 67 |
|
Application Logging Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 68 |
|
logprintf() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 69 |
|
logdump() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 69 |
CH AP TE R 8 |
|
|
Software Package |
Basic Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 71 |
|
Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 71 |
|
Version Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 72 |
|
Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 73 |
|
Sample Content of config.$$$ File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 73 |
|
Downloading. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 73 |
CH AP TE R 9 |
|
|
Control and |
Control Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 75 |
Barcode |
Barcode Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 75 |
Applications |
Pipe Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 75 |
|
Pipe Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 75 |
CH AP TE R 10 |
|
|
Key Features of |
Comparison of Key Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 77 |
e265 vs. e355 |
|
|
E355/E265 USER AND BEST PRACTICES GUIDE |
5 |
CONTENTS
6 E355/E265 USER AND BEST PRACTICES GUIDE
PREFACE
Audience
Organization
This guide presents the features, best practices, and software architecture of the e355/e265, as well as references to additional documentation.
This guide is intended for support engineers and regional development teams to help understand the product and write effective applications.
This guide is organized as follows:
Chapter 1, e355 Device
Chapter 2, Architecture
Chapter 3, Communication Interfaces
Chapter 4, Power
Chapter 5, Special Features
Chapter 6, System Mode - VTM
Chapter 7, Logging Options
Chapter 8, Software Package
Chapter 9, Control and Barcode Applications
Chapter 10, Key Features of e265 vs. e355
Related
Documentation
To learn more about the e355 terminal, refer to the following set of documents:
•e355 Quick Installation Guide , VPN DOC087-062-EN
•e355 Installation Guide, VPN DOC087-063-EN
•e355 Frame Type A Quick Installation Guide, VPN DOC087-073-EN
•e355 Frame Type S Quick Installation Guide, VPN DOC087-074-EN
•e355 Frame Type A IP2 Quick Installation Guide, VPN DOC087-076-EN
•e355 Frame Type A iPod6 Quick Installation Guide, VPN DOC087-068-EN
•e355 Gang Charger Quick Installation Guide, VPN DOC087-066-EN
•e355/e265 Control Application Programmers Guide, VPN DOC087-078-EN
•e355/e315 Barcode Application Programmers Guide, VPN DOC087-070-EN
•e355 Hardware ERS Specification, VPN SPC087-047-01
•Bluetooth Manager Specification Document, VPN SPC087-058-01
•Verix eVo Bluetooth Manager User Guide, VPN DOC00327
•Verix eVo Volume I: Operating System Programmers Manual, VPN DOC00301
E355/E265 USER AND BEST PRACTICES GUIDE |
7 |
PREFACE
Conventions and Acronyms
|
• Verix eVo Volume II: Operating System and Communication Programmers |
|
Manual, VPN DOC00302 |
|
• Verix eVo Volume III: Operating System Programming Tools Reference |
|
Manual, VPN DOC00303 |
|
• Verix Package Installer (VPI) User Guide, VPN DOC00385 |
Conventions and |
This section describes the conventions and acronyms used in this guide. |
Acronyms |
|
Document Various conventions are used to help you quickly identify special formatting. Table Conventions 1 describes these conventions and provides examples of their use.
Table 1 |
Document Conventions |
|
|
|
|
|
|
Convention |
|
Meaning |
Example |
|
|
|
|
Blue |
|
Text in blue indicates terms |
See Conventions and Acronyms. |
|
|
that are cross referenced. |
|
Italics |
|
Italic typeface indicates |
You must install a roll of thermal- |
|
|
book titles or emphasis. |
sensitive paper in the printer. |
Courier |
|
The courier type face is |
http://www.verifone.com |
|
|
used while specifying |
|
|
|
onscreen text, such as text |
|
|
|
that you would enter at a |
|
|
|
command prompt, or to |
|
|
|
provide an URL. |
|
|
|
|
|
NOTE
CAUTION
WARNING
The pencil icon is used to highlight important information.
The caution symbol indicates possible hardware or software failure, or loss of data.
The lightning symbol is used as a warning when bodily injury might occur.
RS-232-type devices do not work with the PINpad port.
The terminal is not waterproof or dustproof, and is intended for indoor use only.
Due to risk of shock do not use the terminal near water.
Abbreviations Table 2 shows the abbreviations used throughout this guide.
Table 2 |
Abbreviations |
|
|
|
|
Unit of Measure |
Definition |
|
|
|
|
KB |
|
Kilobyte |
MB |
|
Megabyte |
msec |
|
millisecond |
|
|
|
8 E355/E265 USER AND BEST PRACTICES GUIDE
PREFACE
Conventions and Acronyms
Acronym Acronyms are used in place of the full definition.
Table 3 |
Acronym Definition |
|
|
Acronym |
Definition |
|
|
ADK |
Application Development Toolkit |
ASCII |
American Standard Code for Information Interchange |
BT |
Bluetooth |
CRC |
Cyclic Redundancy Check, a method to check for data errors |
FIFO |
First In, First Out |
iAP1 |
Apple accessory protocol for 30 pin connector devices |
iAP2 |
Apple accessory protocol for Lightning connector devices |
mADK |
PWM application using ADK |
MFi |
Made for iPhone/iPod/iPad |
NFC |
Near Field Communication |
OBEX |
Object exchange profile of Bluetooth |
PAN |
Personal Area Network |
PD |
Power Delivery, controller for Windows charging |
PWM |
PAYware Mobile Reader (mPOS) |
SSP |
Secure Simple Pairing |
SPP |
Serial Port Profile of Bluetooth |
VTM |
Verix Terminal Manager |
XPI |
External PINpad Interface Application |
|
|
Terminology Table 4 lists the standard terms used in this manual and their definition.
Table 4 Definition of Terms
Term |
Definition |
|
|
ACK |
Acknowledgement code that signal is successfully received |
Hyper Terminal |
Terminal emulation program capable of connecting to systems |
|
through TCP/IP networks, Dial-up modems, and COM ports. |
iOS |
Apple’s proprietary mobile operating system for iPhone, iPad, and |
|
iPod touch devices |
NAK |
Negative acknowledgment, a signal is received with errors |
PMR-MUX2 |
Verifone proprietary protocol for communicating with smart devices |
Smart Device |
Refers to iPad mini, iPad mini 4, iPod, Android tablet, Windows |
|
Tablet, iPhone, Android phone, Windows phone |
Standalone |
An e355 not connected to smart device |
Mobile PINpad |
e355 connected to smart device |
mode |
|
|
|
E355/E265 USER AND BEST PRACTICES GUIDE |
9 |
PREFACE
Conventions and Acronyms
10 E355/E265 USER AND BEST PRACTICES GUIDE
CHAPTER 1
e355 Device
e355 is a flexible payment device, which can operate in standalone mode (POS) or Mobile PINpad mode (mPOS). In standalone mode, the application running on e355 utilizes the e355 unit to complete the POS transaction. In Mobile PINpad mode, the e355 unit and a smart device are used together to complete the POS transaction. The smart device and e355 connection is either wired or wireless. Wired connection is via USB interface and modular frame, and wireless connection is via Bluetooth and optional frame.
Device Features e355 offers the following features:
•Color LCD Display of size 320 x 240
•Triple-track magnetic stripe card reader
•Smart card reader
•Contactless/NFC reader
•1D/2D Barcode reader
•Bluetooth+Wi-Fi combo module
•Integrated mechanical keypad
•8 pin frame connector for modular frames
•Removable battery of capacity 1960mAh
•Barcode buttons
•MSAM (Micromodule-size security access module) card
•PCI PTS 4.0 security compliance
E355/E265 USER AND BEST PRACTICES GUIDE |
11 |
E355 DEVICE
Device Features
Below are the terminal features on the front panel.
MAGNETIC STRIPE READER |
|
|
|
2D IMAGER |
|
|
|
||
|
|
|
|
|
LCD DISPLAY
BARCODE BUTTON
POWER LED INDICATOR
SIDE MICRO-USB PORT
KEYPAD
SMART CARD READER |
|
|
|
FRAME CONNECTOR |
|
|
|
||
|
|
|
Figure 1 Front Panel Features
Figure 2 shows the terminal features on the back panel.
MSAM COMPARTMENT
BATTERY
COMPARTMENT
BARCODE BUTTON
Figure 2 Back Panel Features
12 E355/E265 USER AND BEST PRACTICES GUIDE
|
|
|
E355 DEVICE |
|
|
|
Software Features |
Software |
e355 supports the following software features: |
||
Features |
|
|
|
Low Power Modes |
“Always On/Instant Activate” design similar to e315. Remote wake on data, no |
||
|
|
data loss. All communication modes (USB, BT and Wi-Fi) support low power |
|
|
|
modes. Sleep walking API (dark wake) feature from VX 690 device is supported. |
|
Loadable drivers |
Most e355 drivers are downloadable. This gives the advantage of updating the |
||
|
|
driver without updating the OS. The following drivers are downloadable: |
|
|
|
• |
Bluetooth |
|
|
• |
Wi-Fi |
|
|
• |
Barcode |
|
|
• |
USB device |
|
|
• |
USB host |
|
|
• |
iAP1 |
|
|
• |
iAP2 |
|
|
• |
PMR-MUX2 |
|
|
• |
Frame Manager |
|
|
• |
Ethernet-USB |
|
|
• |
Battery monitor, and |
|
|
• |
Contactless |
Mobile PINpad |
e355 has the same Mobile PINpad architecture as the e315 device, providing |
||
Architecture |
support of same virtual communication ports COM1A, COM1B, COM1C, COM1D |
||
|
|
and COM1E over the protocols iAP1/iAP2 or PMR-MUX2 used to communicate |
|
|
|
with smart device. |
|
Modular frame |
e355 can dock into different frames for connecting with iOS, Android, and |
||
|
|
Windows smart devices. Frame detection and configuration happen early on |
|
|
|
during e355 power-up. This means that users will need to restart e355 when they |
|
|
|
switch to a different frame configuration. The default frame configuration is |
|
|
|
Bluetooth, this is when there is no frame detected or error in frame detection |
|
|
|
occurs. |
|
iOS, Android/ |
e355 supports iAP1 protocol for iOS devices having 30 pin connector, iAP2 |
||
Windows Protocols |
protocol for iOS devices having lightning connector and PMR-MUX2 protocol for |
all Android and Windows devices. Wired connection (USB interface) uses any of the three protocols iAP1, iAP2 and PMR-MUX2, whereas wireless (BT) interface does not support iAP1, but supports iAP2 and PMR-MUX2 protocols.
E355/E265 USER AND BEST PRACTICES GUIDE |
13 |
E355 DEVICE
Software Features
Bluetooth Support e355 shares the same hardware family as VX 690 device. The BT solution also uses StoneStreetOne (SS1) BT stack. New SPP Server mode is supported, which allows e355 to be discoverable in this configuration. Pairing modes are compliant with PCI4 standard and supported profiles are SPP, OBEX and PAN.
Wi-Fi Support e355 shares the same hardware family as VX 690 device and the same software stack used by VHQ for device management. Mobile PINpad architecture is not supported over Wi-Fi.
VTM on the Display The e355 VTM is displayed on an LCD display unlike the e315's VTM, which is displayed on a remote PC terminal such as Hyper Terminal. VTM menu layout is similar as e315 and other Verix terminals. New menus such as software versions, barcode diagnostic, contactless diagnostic, and IPP and ADE keys KSI information are added.
Software Changes
for PCI4
The following software changes comply with PCI4 security standard:
•Added 24-hour restart change for memory initialization and file system integrity check.
•Pre-expired passwords for key loading menus in VTM for RKL, ADE and IPP keys.
•Full system integrity check (file system integrity and binary files authentication) at every boot-up.
•OS software hardening with buffer clearing in secure modules after usage and static code analysis fixes.
•Restrictions to BT pairing modes, only SSP numeric comparison is allowed.
Charging Schemes Hardware supports simultaneous charging of e355 and smart device from frame connector only (i.e., barrel and gang charger). However, simultaneous charging is not supported from the side Micro-USB port of e355. Power sharing is also not supported. Sequential charging is only supported in iPod 6 frame configuration through the side Micro-USB port.
Software Packaging e355 uses Verix Package Installer (VPI) tool for packaging OS, drivers, EOS, CTLS and applications. This allows for download of multiple components in single download step with guaranteed order of install and to speed up package installation process. NOVA package name is used for internal releases of e355 software, for example NOVA-01.00.03. Customer packages are released on top of the base NOVA packages with desired configuration parameters and software components. For example, ZNOVA-01.01.02 is created on top of NOVA-01.00.03 for Verizon customer.
14 E355/E265 USER AND BEST PRACTICES GUIDE
CHAPTER 2
Architecture
The e355 operates in Standalone and Mobile PINpad modes.
Standalone
Architecture
In this mode, e355 is not attached to a smart device and not docked in modular frame. The payment application that processes the payment runs on the e355 and the payment transactions are displayed on its LCD display. Communications from e355 to payment gateway is via Wi-Fi or Bluetooth interface only.
Figure 3 Communication via Wi-Fi Access Point, Bluetooth Access Point, or Tethered Host via BT PAN Profile
Key Points in this set-up:
1*GO configuration variable is set to payment application.
2Disables the start-up of Control, Barcode, and Bluetooth Manager applications.
3Virtual Communication ports COM1A to COM1E are disabled.
4Protocols iAP1, iAP2 and PMR-MUX2 for communicating with smart device are disabled.
5OS drivers, EOS, COMM engine (CE), and libraries are all available for use.
6Possible to access control and barcode applications from payment applications using pipe interface.
NOTE |
Smart Device PAN mode (tethering) is usually only supported on the devices that |
|
|
|
have a 3G/4G radio installed. |
E355/E265 USER AND BEST PRACTICES GUIDE |
15 |
ARCHITECTURE
Mobile PINpad Architecture
Mobile PINpad
Architecture
In this mode, e355 is attached to a smart device and connected via USB or Bluetooth interface. Payment application runs on the smart device and it drives the e355 to perform actions of reading card data, taking PIN number, and displaying messages on the LCD screen. The e355 provides five virtual communication ports to the applications, which are multiplexed over USB or Bluetooth interface. The iAP1/iAP2 and PMR-MUX2 protocols have the ability to provide multiple virtual ports over single interface.
e355 Side |
|
|
iPad mini Side |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1QZ.
4GHI
7PRS
*,‘ ‘‘
X
2ABC |
3 DEF |
5JKL |
6MNO |
8TUV |
9 WXY |
0-SP |
# |
Figure 4 e355 To iPad mini via USB Interface
Figure 5 shows connection via BT.
1QZ.
4GHI
7PRS
*,‘ ‘‘
X
2ABC |
3 DEF |
5JKL |
6MNO |
8TUV |
9 WXY |
0-SP |
# |
Figure 5 e355 to iPad mini Via Bluetooth Interface
16 E355/E265 USER AND BEST PRACTICES GUIDE
ARCHITECTURE
Mobile PINpad Architecture
Virtual By virtue of iAP1/iAP2/PMR-MUX2 protocols, the smart device and e355 can use Communication separate communications ports. The smart device uses a unique protocol string
Ports for starting the communications with corresponding virtual communication port on e355 side.
Smart Device |
|
|
|
Protocol string1 |
Protocol string2 |
... |
Protocol string5 |
e355 |
|
|
|
COM1A |
COM1B |
... |
COM1E |
Figure 6 Virtual Communication Port Architecture
Protocol Strings Table 5 presents the protocol strings for iOS devices with Lightning and 30-pin connectors, and the associated virtual COM ports.
Table 5 |
iOS Protocol Strings |
|
|
|
|
Protocol Strings on iOS |
Virtual COM Ports on e355 |
|
|
|
|
com.verifone.pmr.xpi |
COM1A |
|
com.verifone.pmr.barcode |
COM1B |
com.verifone.pmr.zontalk COM1C com.verifone.pmr.control COM1D com.verifone.pmr.debug COM1E
Apple iOS device with Lightning connector uses iAP2 protocol to communicate with e355, and Apple iOS device with 30-pin connector uses iAP1 protocol to communicate with e355. Both iAP1 and iAP2 protocols use the same protocol strings on iOS device. For more information on communicating with accessory using protocol strings, refer to External Accessory Framework on the Apple developer website.
Table 6 shows protocol strings (commands) for Android/Windows devices and the associated virtual COM ports.
Table 6 Android/Windows Protocol Strings
Protocol Strings on |
Virtual COM Ports on e355 |
|
Android/Windows |
||
|
||
|
|
<0xFF5A><o2><CRC> COM1A
<0xFF5A><o3><CRC> COM1B <0xFF5A><o4><CRC> COM1C
E355/E265 USER AND BEST PRACTICES GUIDE |
17 |
ARCHITECTURE
Mobile PINpad Architecture
Table 6 Android/Windows Protocol Strings (continued)
Protocol Strings on |
Virtual COM Ports on e355 |
|
Android/Windows |
||
|
||
|
|
|
<0xFF5A><o5><CRC> |
COM1D |
|
<0xFF5A><o6><CRC> |
COM1E |
|
|
|
PMR-MUX2 protocol uses commands to open, send, and close the communications ports. For full details on the PMR-MUX2 protocol, refer to section PMR-MUX2.
Device Ports Applications running on e355 open the virtual COM device ports COM1A, COM1B, COM1C, COM1D, and COM1E. These applications respond to the data sent to these ports.
Table 7 shows the application names that open specific device ports.
Table 7 |
Applications vs. Device Ports |
|
|
Virtual COM Port on e355 Application Owner |
|
|
|
COM1A |
mADK/XPI application |
COM1B |
Barcode application |
COM1C |
Zontalk downloads |
COM1D |
Control application |
COM1E |
Debug message output |
|
|
XPI application uses COM1C port for supporting Zontalk downloads in addition to its COM1A port for communicating with smart devices. The last COM1E port is available for debug message output. There are no applications using this port.
Open and Close Events of Communication Ports
The e355 sends a Connect event to its application when application on the smart device opens the port for communication. The e355 sends a Disconnect event to its application when application on smart device closes the communication port. If the e355 application has not opened the device port, but application on smart device tries to open it, then e355 responds with an error code.
Applications on e355 can use API get_port_status() for detecting open and close status of communication port in the smart device application.
Device Port APIs
Following are the APIs used by the device ports.
18 E355/E265 USER AND BEST PRACTICES GUIDE
ARCHITECTURE
open()
open()
This claims ownership of the device. Calling this function also flushes all data and clears all error conditions in the communication channel. The device names that can be opened for ports are:
"/DEV/COM1A"
"/DEV/COM1B"
"/DEV/COM1C"
"/DEV/COM1D"
"/DEV/COM1E"
Use get_port_status() to get the status of the smart device connection. A smart device cannot open a communication port until the e355 application has opened the corresponding device.
Prototype |
Int open(const char *devname, int attributes); |
|
Parameters |
|
|
|
devname |
Pointer to the null terminated device name string. |
|
attributes |
Ignored in this driver. |
Return Values |
Positive integer device handle if successful, or -1 with errno set to an error code |
|
|
if error occurs. |
|
close() |
|
|
|
This releases ownership of the device. Calling this function also flushes all data |
|
|
and clears all error conditions in the communication port. |
|
Prototype |
int close(int device_handle) parameters: |
|
Parameters |
|
|
|
device_handle |
The handle returned for the device by the open() call. |
Return Values |
Returns 0 for success, -1 with errno set to EBADF if device not open. |
E355/E265 USER AND BEST PRACTICES GUIDE |
19 |
ARCHITECTURE read()
read()
This copies message-based data (header, data, CRC) received from the communication port to the given buffer. The actual number of bytes copied may be less than the requested count. In e355, the receive data logic drops packets larger than 1024 bytes for iOS devices and 2048 bytes for Android and Windows devices.
The Rx message packets are first put into a FIFO of up to 7 message packets and a kernel task routes the message packets to the correct device port buffers. It is possible, but unlikely that the kernel task can't keep up with the incoming packets. If the FIFO overflows, the entire message packet is dropped. When packets are internally dropped, log messages are generated. The end-to-end request/ response handshaking normally prevents buffer overflows.
The read function returns a complete message that is aligned on packet boundaries. The communication port driver does a CRC checksum on the data to assure integrity, but, it does not guarantee delivery.
Prototype int read(int handle, char *buffer, int count);
Parameters
handle |
The handle returned for the device by the open() call. |
buffer |
The buffer from which to copy the data. |
count |
The maximum number of bytes requested. |
Return Values Returns the number of bytes read, or -1 if an error occurred.
20 E355/E265 USER AND BEST PRACTICES GUIDE
ARCHITECTURE
write()
write()
This copies the given data to system transmit buffers for transmission over the communication port. The function may return before the data is actually sent. In e355, the write() function works differently than a standard serial port. The driver assumes that each write contains a whole packet and that a request/reply type of protocol is running on the link that limits the number of outstanding transmit packets in the buffers. Usually, a device port will have, at most, one outstanding packet in the buffers. No packet is sent until a response is received. There are a total of 7 transmit buffers shared among all channels. If a communication protocol attempts to write when there are no buffers, the error ENOSPC is returned. Each buffer allows up to 1024 bytes for iOS devices and 2048 bytes for Android and Windows devices.
Prototype int write(int handle, const char *buffer, int count);
Parameters
handle |
The handle returned for the device by the open() call. |
buffer |
The buffer from which to copy the data. |
count |
The number of bytes to send. |
Return Values Returns the number of bytes sent, or -1 if an error occurred.
Reset_port_error()
Resets all error flags for the given communication channel.
Prototype int reset_port_error(int handle);
Parameters
handle |
The handle returned for the device by the open() call. |
Return Values Returns 0 if successful, or -1 if an error occurred.
E355/E265 USER AND BEST PRACTICES GUIDE |
21 |
ARCHITECTURE
Get_port_status()
Get_port_status()
Parameters
handle |
The handle returned for the device by the open() call. |
buffer |
The 4-byte buffer in which to copy the status information. |
Return Values Returns 0 if no output is pending, 1 if output is pending, or -1 if an error occurred and errno is set to an error code.
For a communication port, the four status bytes copied into the given buffer are as follows:
•Byte 1: The number of input messages pending.
•Byte 2: Event Cause Bits described below.
•Byte 3: The number of output messages pending.
•Byte 4: The status byte described below.
The event cause bits are set when an event is sent to the application. The application can read the bits to determine the cause of the event. The event cause bits are cleared when they are read. The definitions are as follows:
Table 8 |
Event Cause Bits |
|
|
|
|
Bit |
Event |
Definition |
|
|
|
Bit 0 |
Connect Event |
Set when a communication port is opened. |
Bit 1 |
Disconnect Event |
Set when a communication port is closed or Bluetooth |
|
|
connection is lost. |
Bit 2 |
RX Ready |
Set when new received data is ready to be read. |
|
|
|
22 E355/E265 USER AND BEST PRACTICES GUIDE
ARCHITECTURE
set_event_bit()
set_event_bit()
Allows the application to select one of the event bits that would otherwise be unused, and assigns it to a communication port.
By default, the communication ports do not generate events. This function allows the communication ports to generate events when data is received. This mechanism is provided when almost all the bits in the event mask have already been allocated. However, in a specific terminal installation, many of the predefined event bits are not used.
Prototype int set_event_bit(int handle, long bitmask);
Parameters
handle |
The handle returned for the device by the open() call. |
bitmask |
A mask with 1 or 0 bits set corresponding to the event bit. |
Return Values Returns 0 if successful. If an error occurs this function returns -1.
Only one event bit may be selected for a given device. The following event bits must not be assigned: EVT_USER, EVT_SHUTDOWN and EVT_SYSTEM.
Any attempt to violate these rules will result in set_event_bit() returning -1 and errno being set to EINVAL. If the command fails, the event bit setting will not be changed.
get_event_bit()
Allows the application to find out what event, if any, will be generated by the given device. The mask returned will have one bit set that corresponds to the event bit generated by the device.
Prototype long get_event_bit(int handle);
Parameters
handle |
The handle returned for the device by the open() call. |
bitmask |
A mask with 1 or 0 bits set corresponding to the event bit. |
Return Values Returns 0 if no event is to be generated or a mask with one bit set, if an event is to be generated. -1 if the device does not support soft events.
E355/E265 USER AND BEST PRACTICES GUIDE |
23 |
ARCHITECTURE iap_control_function()
iap_control_function()
This allows an application to control the keypad state. The possible functions defined in SDK header, SVC.H, are:
•IAP_CONTROL_KEYPAD_SLEEP, turns off the keypad.
•IAP_CONTROL_KEYPAD_WAKE, turns the keypad on.
•IAP_CONTROL_DISABLE_KEYBEEP, turns off the keypad beeps.
•IAP_CONTROL_ENABLE_KEYBEEP, turns on the keypad beeps.
Prototype int iap_control_function (int handle, int function);
Parameters
handle |
The handle returned for the device by the open() call. |
function |
An integer specifying the function to be performed. |
Return Values Returns 0 if successful. If an error occurs, the function returns -1 and errno is set to an error code.
iap_get_keypad_state()
Copies the keypad status to the given buffer. The first byte is the "Enable State."
The second byte is the "Beep State." The two status bytes are as follows:
•<Enable State>
0 if keypad is disabled, 1 if keypad is enabled and awake, 2 if keypad is enabled, but still waking up.
•<Beep State>
0 if beeps are disabled, 1 if beeps are enabled.
Prototype int iap_get_keypad_state (int handle, char*buffer);
Parameters
handle |
The handle returned for the device by the open() call. |
buffer |
A buffer of at least 2 bytes to hold keypad status. |
Return Values Returns 0 if successful. If an error occurs, the function returns -1 and errno is set to an error code.
24 E355/E265 USER AND BEST PRACTICES GUIDE