com.rscja.deviceapi

## Class CardWithBYL

- java.lang.Object
- - com.rscja.deviceapi.CardWithBYL

- All Implemented Interfaces:
    ICardWithBYL

      public class CardWithBYL
      extends java.lang.Object
      implements ICardWithBYL

  白玉兰公交卡操作类

  注意：
  1、使用前请确认您的机器已安装相关模块。
  2、要正常使用模块需要在\libs\armeabi\目录放置libDeviceAPI.so文件。
  3、在操作设备前需要调用 `init()` 打开设备，使用完后调用 `free()` 关闭设备

  Author:
    liuruifeng

- - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `cardConsumeConfirm(java.lang.String time, java.lang.String dealnum, java.lang.String cardnum)`
    `void` | `cleanFaultCard()` 清除故障卡
    `java.lang.String[]` | `Consume(float money)` 扣费
    `boolean` | `free()` 释放模块
    `java.lang.String[]` | `getBalance()` 获取余额和有效期
    `static CardWithBYL` | `getInstance()` 获取RFID低频操作实例
    `java.lang.String` | `getMessage(int code)` 将错误代码转换为语义消息
    `java.lang.String` | `getPsamCardID()` 获取psam卡id
    `boolean` | `init()` 初始化RFID和PSAM模块
    `boolean` | `isPowerOn()`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### getInstance

          public static CardWithBYL getInstance()
                                         throws ConfigurationException

      获取RFID低频操作实例
      Returns:
      Throws:
        `ConfigurationException` - 配置错误异常

    - #### init

          public boolean init()

      初始化RFID和PSAM模块
      Specified by:
        `init` in interface `ICardWithBYL`
      Returns:
        true成功，false失败

    - #### free

          public boolean free()

      释放模块
      Specified by:
        `free` in interface `ICardWithBYL`
      Returns:
        true成功，false失败

    - #### getBalance

          public java.lang.String[] getBalance()

      获取余额和有效期
      Specified by:
        `getBalance` in interface `ICardWithBYL`
      Returns:
        失败返回null，索引0为余额，索引1为开始日期，索引2为结束日期

    - #### Consume

          public java.lang.String[] Consume(float money)

      扣费
      Specified by:
        `Consume` in interface `ICardWithBYL`
      Parameters:
        `money` - 金额
      Returns:
        返回数组长度为1表示失败，索引0为失败消息； 数组长度为10表示成功， 索引 0：交易时间 索引 1：pos机号 索引 2：PSAM交易号 索引 3：卡号 索引 4：CPU卡交易号 索引 5：城市代码 索引 6：扣费前余额 索引 7：扣费金额 索引 8：交易类型 索引 9：TAC 10:行业代码 11:卡类型 12:有效时间 13:芯片标志 14:清算交易类型 15:卡版本 16：卡面号

    - #### getPsamCardID

          public java.lang.String getPsamCardID()

      获取psam卡id
      Specified by:
        `getPsamCardID` in interface `ICardWithBYL`
      Returns:
        成功返回psam卡id，失败返回null

    - #### cleanFaultCard

          public void cleanFaultCard()

      清除故障卡
      Specified by:
        `cleanFaultCard` in interface `ICardWithBYL`

    - #### getMessage

          public java.lang.String getMessage(int code)

      将错误代码转换为语义消息
      Specified by:
        `getMessage` in interface `ICardWithBYL`
      Parameters:
        `code` -
      Returns:

    - #### cardConsumeConfirm

          public java.lang.String cardConsumeConfirm(java.lang.String time,
                                                     java.lang.String dealnum,
                                                     java.lang.String cardnum)

      Specified by:
        `cardConsumeConfirm` in interface `ICardWithBYL`
      Parameters:
        `time` - 时间 yyyyMMddHHmmss
        `dealnum` - 两个字节交易号
        `cardnum` - 四个字节卡号
      Returns:
        返回数据：获取数据失败返回(错误码)，获取成功返回TAC的数据

    - #### isPowerOn

          public boolean isPowerOn()

      Specified by:
        `isPowerOn` in interface `ICardWithBYL`