📄 vb500.h
字号:
{ 0, 4, 13},
{ 4, 6, 13},
{ 10, 8, 13},
{ 18, 3, 13},
{ 21, 9, 13},
{ 30, 4, 13},
{ 34, 18, 13},
{ 52, 20, 13},
{ 72, 1, 13},
{ 73, 1, 13},
{ 74, 16, 13},
{ 90, 11, 13},
{101, 11, 13},
{112, 16, 13},
{ 0, 16, 14},
{ 16, 11, 14},
{ 27, 5, 14},
{ 32, 2, 14},
{ 34, 78, 14},
{112, 16, 14},
{ 0, 128, 16},
{ 0, 128, 17},
{ 0, 128, 18},
// Porta Moeda - 1A
{ 0, 16, 20},
{ 16, 23, 20},
{ 39, 8, 20},
{ 47, 8, 20},
{ 55, 8, 20},
{ 63, 1, 20},
{ 64, 32, 20},
{ 96, 32, 20},
{ 0, 32, 21},
{ 0, 128, 22},
// Porta Moeda - 1B
{ 0, 16, 24},
{ 16, 23, 24},
{ 39, 8, 24},
{ 47, 8, 24},
{ 55, 8, 24},
{ 63, 1, 24},
{ 64, 32, 24},
{ 96, 32, 24},
{ 0, 32, 25},
{ 0, 128, 26},
// Porta Moeda - 2A
{ 0, 16, 28},
{ 16, 24, 28},
{ 40, 1, 28},
{ 41, 8, 28},
{ 49, 1, 28},
{ 50, 8, 28},
{ 58, 6, 28},
{ 64, 32, 28},
{ 96, 32, 28},
{ 0, 32, 29},
{ 0, 128, 30},
// Porta Moeda - 2B
{ 0, 16, 32},
{ 16, 24, 32},
{ 40, 1, 32},
{ 41, 8, 32},
{ 49, 1, 32},
{ 50, 8, 32},
{ 58, 6, 32},
{ 64, 32, 32},
{ 96, 32, 32},
{ 0, 32, 33},
{ 0, 128, 34},
//Cotas de Estudante
{ 0, 96, 36},
{ 96, 32, 36},
{ 0, 96, 37},
{ 96, 16, 37},
{112, 8, 37},
{120, 8, 37},
{ 0, 128, 38}
};
enum{
CMD_M,
CMD_T,
CMD_U,
CMD_S1,
CMD_S2,
CMD_V,
CMD_R1,
CMD_R2,
MAX_CMD
};
/*
picCmd [0] = Tamanho do comando para envio
picCmd [1] = Tamanho da resposta esperada
picCmd [2] = Tipo dp comando
picCmd [3] = Quantidade de campos
picCmd [4~n] = Campos que compoem o comando
*/
#define CMD_LEN 0
#define CMD_RESP 1
#define CMD_TYP 2
#define CMD_FIELDS 3
#define FIELDS 4
UCHAR picCmdMap[MAX_CMD][72] = {
{18, 4, 'M', 7, ID_EMISSOR,
EMISS_CARTAO,
TIPO_CARTAO,
SERIAL_CARTAO,
RUF1,
ASSIN8P1,
ASSIN8P2},
{52,11, 'T',35, DT_1A_VIAGEM,
HR_1A_VIAGEM,
COD_TP_1A_VIAGEM,
CNT_REST_INTEGRA,
CNT_DIARIO,
CNT_SEMANAL,
CNT_MENSAL,
CNT_DIAS_SEMANA,
CNT_DIAS_TEMP,
NUM_INTEGRACOES,
TARIFA_ACUM,
ACUM_VALOR,
CANCELA_CART1,
CANCELA_CART2,
DT_ULT_VIAGEM,
HR_ULT_VIAGEM,
TEMPO_INTEGRACAO,
COD_MOD_ULT_VIAGEM,
SENTIDO_LINHA,
COD_LINHA,
COD_GRP_LINHA,
COD_TP_LINHA,
COD_ABRANGENCIA,
COD_TARIFA,
ATV,
FLAG_BLOQUEIO,
BLANK_FIELD_10,
SALDO_CART1A,
BLANK_FIELD_16,
SALDO_CART1B,
BLANK_FIELD_16,
SALDO_CART2A,
BLANK_FIELD_16,
SALDO_CART2B,
BLANK_FIELD_16},
{60, 4, 'U',37, DT_1A_VIAGEM,
HR_1A_VIAGEM,
COD_TP_1A_VIAGEM,
CNT_REST_INTEGRA,
CNT_DIARIO,
CNT_SEMANAL,
CNT_MENSAL,
CNT_DIAS_SEMANA,
CNT_DIAS_TEMP,
NUM_INTEGRACOES,
TARIFA_ACUM,
ACUM_VALOR,
CANCELA_CART1,
CANCELA_CART2,
DT_ULT_VIAGEM,
HR_ULT_VIAGEM,
TEMPO_INTEGRACAO,
COD_MOD_ULT_VIAGEM,
SENTIDO_LINHA,
COD_LINHA,
COD_GRP_LINHA,
COD_TP_LINHA,
COD_ABRANGENCIA,
COD_TARIFA,
ATV,
FLAG_BLOQUEIO,
BLANK_FIELD_10,
SALDO_CART1A,
BLANK_FIELD_16,
SALDO_CART1B,
BLANK_FIELD_16,
SALDO_CART2A,
BLANK_FIELD_16,
SALDO_CART2B,
BLANK_FIELD_16,
ASSIN12P1,
ASSIN12P2},
{29, 4, 'S',14, DT_REC_CART1A,
VR_REC_CART1A,
ID_REC_LISTA_VT1A,
ACCM1A,
ATR1A,
ID_LISTA_SUBST_SALDOS1A,
BLANK_FIELD_16,
BLANK_FIELD_16,
BLANK_FIELD_16,
BLANK_FIELD_16,
BLANK_FIELD_16,
BLANK_FIELD_08,
ASSIN20P1,
ASSIN20P2},
{29, 4, 'S',15, DT_REC_CART2A,
VR_REC_CART2A,
NORM_TEMP2A,
DIAS_UTL_TEMP2A,
ID_LISTA_SUBST_SALDOS2A,
ATR2A,
RUF7,
BLANK_FIELD_16,
BLANK_FIELD_16,
BLANK_FIELD_16,
BLANK_FIELD_16,
BLANK_FIELD_16,
BLANK_FIELD_08,
ASSIN28P1,
ASSIN28P2},
{30, 4, 'V',16, VAL_BENEFICIO,
LIMITE_DIARIO,
LIMITE_SEMANAL,
LIMITE_MENSAL,
DIAS_SEMANA,
COD_ESC_EMP,
ACOMPANHANTE,
COD_TF_DESLOC,
BLANK_FIELD_16,
BLANK_FIELD_16,
BLANK_FIELD_16,
BLANK_FIELD_16,
BLANK_FIELD_16,
BLANK_FIELD_16,
ASSIN9P1,
ASSIN9P2},
{21,11, 'R', 6, DT_REC_CART1A,
VR_REC_CART1A,
ID_REC_LISTA_VT1A,
ACCM1A,
ATR1A,
ID_LISTA_SUBST_SALDOS1A},
{21,11, 'R', 7, DT_REC_CART2A,
VR_REC_CART2A,
NORM_TEMP2A,
DIAS_UTL_TEMP2A,
ID_LISTA_SUBST_SALDOS2A,
ATR2A,
RUF7}
};
/*
INFORMACOES REFERENTES AO CARTAO MULTOS M3
*/
#define M_BLK_SIZE 58
enum {
// Dados de Emissao
M_ID_EMISSOR,
M_EMISS_CARTAO,
M_TIPO_CARTAO,
M_ID_CARTAO,
M_RUF1,
M_ASSIN_EMP1,
M_ASSIN_EMP2,
// Dados de Restricoes do cartao
M_DT_VALIDADE,
M_ID_REDE,
M_ID_REDE_SUP,
M_ASSIN_DRP1,
M_ASSIN_DRP2,
// Dados de Carteiras 1
M_DT_RC,
M_HR_RC,
M_VR_RC,
M_ID_CARTAO_ORI,
M_ID_SAM,
M_TP_CARTAO_ORI,
M_ATC,
M_RUF2,
M_SALDO_CARTEIRA1,
M_SERIE_CARTEIRA1,
M_ASSIN_DCP1,
M_ASSIN_DCP2,
// Dados de Carteiras 2
M_SALDO_CARTEIRA2,
M_SERIE_CARTEIRA2,
// Dados de Carteiras 3
M_SALDO_CARTEIRA3,
M_SERIE_CARTEIRA3,
// Dados de Carteiras 4
M_SALDO_CARTEIRA4,
M_SERIE_CARTEIRA4,
// Dados da Ultima Transacao
M_DT_UT,
M_HR_UT,
M_VR_UT,
M_SERIE_UT,
M_TP_CARTAO_DEST,
M_ID_CARTAO_DEST,
M_FLAG_DEST,
M_UT_TP_CARTAO_ORI,
M_UT_ID_CARTAO_ORI,
M_RUF3,
M_ACUM_TRANS,
M_ASSIN_UTP1,
M_ASSIN_UTP2,
M_MAX_FIELDS,
M_BLANK_FIELD_32,
M_BLANK_FIELD_16,
M_MAX_ELEM
};
struct card_map m_sptrans[M_MAX_ELEM] = {
//Dados de Emissao
{ 0, 4, 0}, // Id Emissor
{ 4, 16, 0}, // Data de emissao do cartao
{ 20, 8, 0}, // Tipo do cartao
{ 28, 32, 0}, // ID do cartao
{ 60, 4, 0}, // RUF
{ 64, 32, 0}, // Codigo de Aprovacao do SAM de emissao
{ 96, 32, 0}, // Codigo de Aprovacao do SAM de emissao
//Dados de Restricoes do cartao
{ 0, 16, 1}, // Data de validade do beneficio
{ 16, 32, 1}, // ID de rede
{ 48, 32, 1}, // ID de rede superior
{ 80, 32, 1}, // Codigo de Aprovacao do SAM de revalidacao
{112, 32, 1}, // Codigo de Aprovacao do SAM de revalidacao
//Dados de Carteiras 1
{ 0, 16, 2}, // Data de recarga no cartao
{ 16, 11, 2}, // Hora de recarga no cartao
{ 27, 32, 2}, // Valor de recarga no cartao
{ 59, 32, 2}, // ID do cartao de origem
{ 91, 32, 2}, // ID SAM
{123, 8, 2}, // Nivel do cartao de origem
{131, 20, 2}, // Contador de recargas do cartao
{151, 1, 2}, // RUF
{152, 32, 2}, // Saldo de credito da carteira
{184, 16, 2}, // ???
{200, 32, 2}, // Codigo de Aprovacao do SAM
{232, 32, 2}, // Codigo de Aprovacao do SAM
//Dados de Carteiras 2
{152, 32, 3}, // Saldo de credito da carteira
{184, 16, 3}, // ???
//Dados de Carteiras 3
{152, 32, 4}, // Saldo de credito da carteira
{184, 16, 4}, // ???
//Dados de Carteiras 4
{152, 32, 5}, // Saldo de credito da carteira
{184, 16, 5}, // ???
//Dados da Ultima Transacao
{ 0, 16, 6}, // Data
{ 16, 11, 6}, // Hora
{ 27, 32, 6}, // Valor
{ 59, 16, 6}, // Serie
{ 75, 8, 6}, // Tipo do cartao destino
{ 83, 32, 6}, // ID do cartao destino
{115, 1, 6}, // Flag de destruicao
{116, 8, 6}, // Tipo do cartao origem
{124, 32, 6}, // ID cartao origem
{156, 32, 6}, // RUF
{188, 20, 6}, // Acumulador de transacao de debito
{400, 32, 6}, // Codigo de Aprovacao do SAM
{432, 32, 6}, // Codigo de Aprovacao do SAM
{ 0, 0, 0},
{ 0, 32, 0},
{ 0, 16, 0}
};
enum{
M_CMD_M,
M_CMD_U,
M_CMD_S,
M_CMD_V,
M_CMD_T,
M_MAX_CMD
};
UCHAR M_picCmdMap[M_MAX_CMD][72] = {
{18, 4, 'M', 7, M_ID_EMISSOR,
M_EMISS_CARTAO,
M_TIPO_CARTAO,
M_ID_CARTAO,
M_RUF1,
M_ASSIN_EMP1,
M_ASSIN_EMP2},
{60, 4, 'U', 21, M_DT_UT,
M_HR_UT,
M_VR_UT,
M_SERIE_UT,
M_TP_CARTAO_DEST,
M_ID_CARTAO_DEST,
M_FLAG_DEST,
M_UT_TP_CARTAO_ORI,
M_UT_ID_CARTAO_ORI,
M_RUF3,
M_ACUM_TRANS,
M_SALDO_CARTEIRA1,
M_SERIE_CARTEIRA1,
M_SALDO_CARTEIRA2,
M_SERIE_CARTEIRA2,
M_SALDO_CARTEIRA3,
M_SERIE_CARTEIRA3,
M_SALDO_CARTEIRA4,
M_SERIE_CARTEIRA4,
M_ASSIN_UTP1,
M_ASSIN_UTP2},
{29, 4, 'S', 10, M_DT_RC,
M_HR_RC,
M_VR_RC,
M_ID_CARTAO_ORI,
M_ID_SAM,
M_TP_CARTAO_ORI,
M_ATC,
M_RUF2,
M_ASSIN_DCP1,
M_ASSIN_DCP2},
{30, 4, 'V', 8, M_DT_VALIDADE,
M_ID_REDE,
M_ID_REDE_SUP,
M_BLANK_FIELD_32,
M_BLANK_FIELD_32,
M_BLANK_FIELD_16,
M_ASSIN_DRP1,
M_ASSIN_DRP2},
{52,11, 'T', 19, M_DT_UT,
M_HR_UT,
M_VR_UT,
M_SERIE_UT,
M_TP_CARTAO_DEST,
M_ID_CARTAO_DEST,
M_FLAG_DEST,
M_UT_TP_CARTAO_ORI,
M_UT_ID_CARTAO_ORI,
M_RUF3,
M_ACUM_TRANS,
M_SALDO_CARTEIRA1,
M_SERIE_CARTEIRA1,
M_SALDO_CARTEIRA2,
M_SERIE_CARTEIRA2,
M_SALDO_CARTEIRA3,
M_SERIE_CARTEIRA3,
M_SALDO_CARTEIRA4,
M_SERIE_CARTEIRA4}
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -