Module: CTAPICore

Included in:
CTAPI
Defined in:
ext/ctapicore.c,
ext/ctapicore.c

Overview

The CTAPICore that interfaces with the shared library for your cardterminal. The following constants are defined in this module:

CT
CTBCS_CLA
CTBCS_DATA_STATUS_CARD
CTBCS_DATA_STATUS_CARD_CONNECT
CTBCS_DATA_STATUS_NOCARD
CTBCS_INS_EJECT
CTBCS_INS_REQUEST
CTBCS_INS_RESET
CTBCS_INS_STATUS
CTBCS_MIN_COMMAND_SIZE
CTBCS_MIN_RESPONSE_SIZE
CTBCS_P1_CT_KERNEL
CTBCS_P1_DISPLAY
CTBCS_P1_INTERFACE1
CTBCS_P1_INTERFACE10
CTBCS_P1_INTERFACE11
CTBCS_P1_INTERFACE12
CTBCS_P1_INTERFACE13
CTBCS_P1_INTERFACE14
CTBCS_P1_INTERFACE2
CTBCS_P1_INTERFACE3
CTBCS_P1_INTERFACE4
CTBCS_P1_INTERFACE5
CTBCS_P1_INTERFACE6
CTBCS_P1_INTERFACE7
CTBCS_P1_INTERFACE8
CTBCS_P1_INTERFACE9
CTBCS_P1_KEYPAD
CTBCS_P2_REQUEST_GET_ATR
CTBCS_P2_REQUEST_GET_HIST
CTBCS_P2_REQUEST_NO_RESP
CTBCS_P2_RESET_GET_ATR
CTBCS_P2_RESET_GET_HIST
CTBCS_P2_RESET_NO_RESP
CTBCS_P2_STATUS_ICC
CTBCS_P2_STATUS_MANUFACTURER
CTBCS_SW1_COMMAND_NOT_ALLOWED
CTBCS_SW1_EJECT_NOT_REMOVED
CTBCS_SW1_EJECT_OK
CTBCS_SW1_EJECT_REMOVED
CTBCS_SW1_ICC_ERROR
CTBCS_SW1_OK
CTBCS_SW1_REQUEST_ASYNC_OK
CTBCS_SW1_REQUEST_CARD_PRESENT
CTBCS_SW1_REQUEST_ERROR
CTBCS_SW1_REQUEST_NO_CARD
CTBCS_SW1_REQUEST_SYNC_OK
CTBCS_SW1_REQUEST_TIMER_ERROR
CTBCS_SW1_RESET_ASYNC_OK
CTBCS_SW1_RESET_CT_OK
CTBCS_SW1_RESET_ERROR
CTBCS_SW1_RESET_SYNC_OK
CTBCS_SW1_WRONG_CLA
CTBCS_SW1_WRONG_INS
CTBCS_SW1_WRONG_LENGTH
CTBCS_SW1_WRONG_PARAM
CTBCS_SW2_COMMAND_NOT_ALLOWED
CTBCS_SW2_EJECT_NOT_REMOVED
CTBCS_SW2_EJECT_OK
CTBCS_SW2_EJECT_REMOVED
CTBCS_SW2_ICC_ERROR
CTBCS_SW2_OK
CTBCS_SW2_REQUEST_ASYNC_OK
CTBCS_SW2_REQUEST_CARD_PRESENT
CTBCS_SW2_REQUEST_ERROR
CTBCS_SW2_REQUEST_NO_CARD
CTBCS_SW2_REQUEST_SYNC_OK
CTBCS_SW2_REQUEST_TIMER_ERROR
CTBCS_SW2_RESET_ASYNC_OK
CTBCS_SW2_RESET_CT_OK
CTBCS_SW2_RESET_ERROR
CTBCS_SW2_RESET_SYNC_OK
CTBCS_SW2_WRONG_CLA
CTBCS_SW2_WRONG_INS
CTBCS_SW2_WRONG_LENGTH
CTBCS_SW2_WRONG_PARAM
ERR_CT
ERR_HTSI
ERR_INVALID
ERR_MEMORY
ERR_TRANS
HOST
HTSIError
ICC1
ICC10
ICC11
ICC12
ICC13
ICC14
ICC2
ICC3
ICC4
ICC5
ICC6
ICC7
ICC8
ICC9
MAX_APDULEN
OK
PORT_COM1
PORT_COM2
PORT_COM3
PORT_COM4
PORT_LPT1
PORT_LPT2
PORT_Modem
PORT_Printer

Defined Under Namespace

Classes: CTAPIError, CardterminalError, HTSIError, InvalidError, MemoryError, TransmissionError, UnknownError

Constant Summary collapse

CTBCS_MIN_COMMAND_SIZE =
INT2NUM(2)
CTBCS_MIN_RESPONSE_SIZE =
INT2NUM(2)
CTBCS_CLA =
INT2NUM(0x20)
CTBCS_INS_RESET =
INT2NUM(0x11)
CTBCS_INS_REQUEST =
INT2NUM(0x12)
CTBCS_INS_STATUS =
INT2NUM(0x13)
CTBCS_INS_EJECT =
INT2NUM(0x15)
CTBCS_P1_CT_KERNEL =
INT2NUM(0x00)
CTBCS_P1_INTERFACE1 =
INT2NUM(0x01)
CTBCS_P1_INTERFACE2 =
INT2NUM(0x02)
CTBCS_P1_INTERFACE3 =
INT2NUM(0x03)
CTBCS_P1_INTERFACE4 =
INT2NUM(0x04)
CTBCS_P1_INTERFACE5 =
INT2NUM(0x05)
CTBCS_P1_INTERFACE6 =
INT2NUM(0x06)
CTBCS_P1_INTERFACE7 =
INT2NUM(0x07)
CTBCS_P1_INTERFACE8 =
INT2NUM(0x08)
CTBCS_P1_INTERFACE9 =
INT2NUM(0x09)
CTBCS_P1_INTERFACE10 =
INT2NUM(0x0A)
CTBCS_P1_INTERFACE11 =
INT2NUM(0x0B)
CTBCS_P1_INTERFACE12 =
INT2NUM(0x0C)
CTBCS_P1_INTERFACE13 =
INT2NUM(0x0D)
CTBCS_P1_INTERFACE14 =
INT2NUM(0x0E)
CTBCS_P1_DISPLAY =
INT2NUM(0x40)
CTBCS_P1_KEYPAD =
INT2NUM(0x50)
CTBCS_P2_RESET_NO_RESP =
INT2NUM(0x00)
CTBCS_P2_RESET_GET_ATR =
INT2NUM(0x01)
CTBCS_P2_RESET_GET_HIST =
INT2NUM(0x02)
CTBCS_P2_REQUEST_NO_RESP =
INT2NUM(0x00)
CTBCS_P2_REQUEST_GET_ATR =
INT2NUM(0x01)
CTBCS_P2_REQUEST_GET_HIST =
INT2NUM(0x02)
CTBCS_P2_STATUS_MANUFACTURER =
INT2NUM(0x46)
CTBCS_P2_STATUS_ICC =
INT2NUM(0x80)
CTBCS_SW1_OK =
INT2NUM(0x90)
CTBCS_SW2_OK =
INT2NUM(0x00)
CTBCS_SW1_WRONG_LENGTH =
INT2NUM(0x67)
CTBCS_SW2_WRONG_LENGTH =
INT2NUM(0x00)
CTBCS_SW1_COMMAND_NOT_ALLOWED =
INT2NUM(0x69)
CTBCS_SW2_COMMAND_NOT_ALLOWED =
INT2NUM(0x00)
CTBCS_SW1_WRONG_PARAM =
INT2NUM(0x6A)
CTBCS_SW2_WRONG_PARAM =
INT2NUM(0x00)
CTBCS_SW1_WRONG_INS =
INT2NUM(0x6D)
CTBCS_SW2_WRONG_INS =
INT2NUM(0x00)
CTBCS_SW1_WRONG_CLA =
INT2NUM(0x6E)
CTBCS_SW2_WRONG_CLA =
INT2NUM(0x00)
CTBCS_SW1_ICC_ERROR =
INT2NUM(0x6F)
CTBCS_SW2_ICC_ERROR =
INT2NUM(0x00)
CTBCS_SW1_RESET_CT_OK =
INT2NUM(0x90)
CTBCS_SW2_RESET_CT_OK =
INT2NUM(0x00)
CTBCS_SW1_RESET_SYNC_OK =
INT2NUM(0x90)
CTBCS_SW2_RESET_SYNC_OK =
INT2NUM(0x00)
CTBCS_SW1_RESET_ASYNC_OK =
INT2NUM(0x90)
CTBCS_SW2_RESET_ASYNC_OK =
INT2NUM(0x01)
CTBCS_SW1_RESET_ERROR =
INT2NUM(0x64)
CTBCS_SW2_RESET_ERROR =
INT2NUM(0x00)
CTBCS_SW1_REQUEST_SYNC_OK =
INT2NUM(0x90)
CTBCS_SW2_REQUEST_SYNC_OK =
INT2NUM(0x00)
CTBCS_SW1_REQUEST_ASYNC_OK =
INT2NUM(0x90)
CTBCS_SW2_REQUEST_ASYNC_OK =
INT2NUM(0x01)
CTBCS_SW1_REQUEST_NO_CARD =
INT2NUM(0x62)
CTBCS_SW2_REQUEST_NO_CARD =
INT2NUM(0x00)
CTBCS_SW1_REQUEST_CARD_PRESENT =
INT2NUM(0x62)
CTBCS_SW2_REQUEST_CARD_PRESENT =
INT2NUM(0x01)
CTBCS_SW1_REQUEST_ERROR =
INT2NUM(0x64)
CTBCS_SW2_REQUEST_ERROR =
INT2NUM(0x00)
CTBCS_SW1_REQUEST_TIMER_ERROR =
INT2NUM(0x69)
CTBCS_SW2_REQUEST_TIMER_ERROR =
INT2NUM(0x00)
CTBCS_SW1_EJECT_OK =
INT2NUM(0x90)
CTBCS_SW2_EJECT_OK =
INT2NUM(0x00)
CTBCS_SW1_EJECT_REMOVED =
INT2NUM(0x90)
CTBCS_SW2_EJECT_REMOVED =
INT2NUM(0x01)
CTBCS_SW1_EJECT_NOT_REMOVED =
INT2NUM(0x62)
CTBCS_SW2_EJECT_NOT_REMOVED =
INT2NUM(0x00)
CTBCS_DATA_STATUS_NOCARD =
INT2NUM(0x00)
CTBCS_DATA_STATUS_CARD =
INT2NUM(0x01)
CTBCS_DATA_STATUS_CARD_CONNECT =
INT2NUM(0x05)
MAX_APDULEN =
INT2NUM(MAX_APDULEN)
OK =
INT2NUM(0)
ERR_INVALID =
INT2NUM(-1)
ERR_CT =
INT2NUM(-8)
ERR_TRANS =
INT2NUM(-10)
ERR_MEMORY =
INT2NUM(-11)
ERR_HTSI =
INT2NUM(-128)
PORT_COM1 =
INT2NUM(0)
PORT_COM2 =
INT2NUM(1)
PORT_COM3 =
INT2NUM(2)
PORT_COM4 =
INT2NUM(3)
PORT_Printer =
INT2NUM(4)
PORT_Modem =
INT2NUM(5)
PORT_LPT1 =
INT2NUM(6)
PORT_LPT2 =
INT2NUM(7)
CT =
INT2NUM(1)
HOST =
INT2NUM(2)
ICC1 =
INT2NUM(0)
ICC2 =
INT2NUM(2)
ICC3 =
INT2NUM(3)
ICC4 =
INT2NUM(4)
ICC5 =
INT2NUM(5)
ICC6 =
INT2NUM(6)
ICC7 =
INT2NUM(7)
ICC8 =
INT2NUM(8)
ICC9 =
INT2NUM(9)
ICC10 =
INT2NUM(10)
ICC11 =
INT2NUM(11)
ICC12 =
INT2NUM(12)
ICC13 =
INT2NUM(13)
ICC14 =
INT2NUM(14)

Class Method Summary collapse

Class Method Details

.ct_close(*args) ⇒ Object

A wrapper function for the CT API CT_close(ctn) function. It takes a cardterminal number as the only argument. See ctapi(3) for more information.



260
261
262
263
264
265
266
267
268
269
270
# File 'ext/ctapicore.c', line 260

static VALUE
ctapi_ct_close(int argc, VALUE *argv, VALUE self) {
    unsigned short arg1 ;

    if ((argc < 1) || (argc > 1))
            rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    arg1 = NUM2USHRT(argv[0]);
    ct_close(arg1);

    return Qnil;
}

.ct_data(*args) ⇒ Object

A wrapper function for the CT API CT_data function. This one is much nicer than the original CT_data because is has fewer arguments: ct_data(ctn, dad, sad, cmd) where ctn is the cardterminal number, dad is the destination address number, sad is the source address number and cmd is the command as a String. See ctapi(3) for more information.



232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
# File 'ext/ctapicore.c', line 232

static VALUE
ctapi_ct_data(int argc, VALUE *argv, VALUE self) {
    unsigned short arg1 ;
    unsigned int arg2 ;
    unsigned int arg3 ;
    char *arg4 ;
    unsigned short length;
    char *result;
    unsigned short lr;
    VALUE vresult = Qnil;

    if ((argc < 4) || (argc > 4))
            rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)", argc);
    arg1 = NUM2USHRT(argv[0]);
    arg2 = NUM2UINT(argv[1]);
    arg3 = NUM2UINT(argv[2]);
    arg4 = RSTRING(argv[3])->ptr;
    length = RSTRING(argv[3])->len;
    result = (char *) ct_data(arg1, arg2, arg3, arg4, length, &lr);
    vresult = rb_str_new(result, lr);
    ruby_xfree(result);
    return vresult;
}

.ct_init(*args) ⇒ Object

A wrapper function for the CT API CT_init(ctn, pn) function. The first argument is a cardterminal number, the second argument is an identifier for the interface as a portnumber. See ctapi(3) for more information.



211
212
213
214
215
216
217
218
219
220
221
222
223
# File 'ext/ctapicore.c', line 211

static VALUE
ctapi_ct_init(int argc, VALUE *argv, VALUE self) {
    unsigned short arg1 ;
    unsigned short arg2 ;

    if ((argc < 2) || (argc > 2))
            rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)", argc);
    arg1 = NUM2USHRT(argv[0]);
    arg2 = NUM2USHRT(argv[1]);
    ct_init(arg1, arg2);

    return Qnil;
}