lunes, 2 de enero de 2017

Driver UBA (JAVA/C++ [Qt]) ID003 Protocol

UBA (Universal Bill Acceptor) ID003 Protocol


Java (windowbuilder)
Simple Driver JAVA para control de billetero (ID003 Protocolo). Es un driver sencillo, solo que con GUI, aquí cuando el BA recibe un billete válido este lo mantiene en HOLD esperando que el usuario haga click en Accept o Return. Para el puerto serie estoy usando Java Communications API 3.0u1 . El proyecto está en Eclipse + windowbuilder se puede utilizar tanto en Linux como en Windows.
C++ (Qt Framework)
Básicamente lo mismo que el de JAVA solo que esta vez utilizando C++ con el Qt Framework. El proyecto está en qtcreator se puede utilizar (con mínimos cambios) tanto en Linux como en Windows.
Universal Bill Acceptor

JCM UBA, Billetero de propósito general utilizado en Banca&Finanzas (ATM), Juegos (Casinos), Kioskos Automatizados,etc.

El código no esta estructurado de una manera muy amigable, se debe a que generalmente (para no desperdiciar tiempo) tomé el código que ya tenia en C y lo migré a JAVA y C++, ademas es algo que personalmente no me sirve (no voy a utilizar) simplemente me dio curiosidad.

Para el driver en C ver entrada anterior:
JCM UBA-10-SS (ID003 Protocol) Simple Driver gcc (Raspberry Pi /Banana Pi/ PC Linux)

Código fuente Java

Código fuente C++ [Qt]

Disculpen si no respondí antes, password: "sydbernard", "sydbernard1", "maniacmansion" ,"maniacmanison1". Alguno ha de servir.

Algunos comandos del protocolo Id003:

#define  SYNC                    0xFC

#define  STATUS_REQUEST          0x11
#define  ENABLE_                 0x11
#define  IDLING                  0x11
#define  ACCEPTING               0x12
#define  ESCROW                  0x13
#define  STACKING                0x14
#define  VEND_VALID              0x15
#define  STACKED                 0x16
#define  REJECTING               0x17
#define  RETURNING               0x18
#define  HOLDING                 0x19
#define  DISABLE_                0x1A
#define  INHIBIT                 0x1A
#define  INITIALIZE              0x1B

Denominations:

#define  ONE                     0x61
#define  TWO                     0x62
#define  FIVE                    0x63
#define  TEN                     0x64
#define  TWENTY                  0x65
#define  FIFTY                   0x66
#define  ONEHUNDRED              0x67

POWER UP STATUS:

#define  POWER_UP                        0x40
#define  POWER_UP_WITH_BILL_IN_ACCEPTOR  0x41
#define  POWER_UP_WITH_BILL_IN_STACKER   0x42

ERROR STATUS:

#define  STACKER_FULL           0x43
#define  STACKER_OPEN           0x44
#define  JAM_IN_ACCEPTOR        0x45
#define  JAM_IN_STACKER         0x46
#define  PAUSE                  0x47
#define  CHEATED                0x48
#define  FAILURE                0x49 
#define  COMMUNICATION_ERROR    0x4A

RESPONSE TO VEND VALID AND RESPONSE TO OPERATION COMMAND:

#define  ACK                    0x50
#define  INVALID_COMMAND        0x4B

OPERATION COMMAND:

#define  RESET_                 0x40
#define  STACK1                 0x41
#define  STACK2                 0x42
#define  RETURN_                0x43
#define  HOLD                   0x44
#define  WAIT                   0x45

SETTING COMMAND AND RESPONSE TO SETTING COMMAND:

#define  CMD_EN_DIS_DENOMI      0xC0 
#define  CMD_SECURITY_DENOMI    0xC1
#define  CMD_MODE               0xC2    
#define  CMD_INHIBIT_ACCEPTOR   0xC3
#define  CMD_DIRECTION          0xC4
#define  CMD_OPTIONAL_FUNCTION  0xC5
#define  CMD_BARCODE            0xC6 
#define  CMD_BAR_INHIBIT        0xC7


Interface JAVA

Java Driver (Id003 Protocol) UBA
-