硬件接口API

1. 补光灯控制开关

public static void ctrlLedSwitch(int gpioCode, boolean open)

功能   控制白色补光灯的打开与关闭,这接口只能在新版本的固件上才能使用

参数   gpioCode : {@link LED_RED,LED_GREEN,LED_WHITE}
      open : true为打开,false为关闭


实例代码 :

//红灯
HardwareCtrl.ctrlLedSwitch( HardwareCtrl.LED_RED, true);
//绿灯
HardwareCtrl.ctrlLedSwitch( HardwareCtrl.LED_GREEN, true);
//白灯
HardwareCtrl.ctrlLedSwitch( HardwareCtrl.LED_WHITE, true);

如果是旧版固件,则请使用setLedSwitch(int gpioCode, boolean open)接口。

public static void setLedSwitch(int gpioCode, boolean open)

功能   控制补光灯的打开与关闭,这接口只能在旧版本的固件上才能使用

参数   gpioCode : {@link LED_RED,LED_GREEN,LED_WHITE}
      open : true为打开,false为关闭


实例代码 :

//旧的固件用setLedSwitch接口
//红灯
HardwareCtrl.setLedSwitch( HardwareCtrl.LED_RED, true);
//绿灯
HardwareCtrl.setLedSwitch( HardwareCtrl.LED_GREEN, true);
//白灯
HardwareCtrl.setLedSwitch( HardwareCtrl.LED_WHITE, true);

2. 控制屏幕亮度

public static void setBrightness(int value)

功能   调节屏幕亮度

参数   value : 有效值 0~255


实例代码 :

HardwareCtrl.setBrightness(255);

3. 背光控制开关

public static void ctrlBlPower(boolean open)

功能   背光控制开关

参数   open : true为打开,false为关闭


实例代码 :

HardwareCtrl.ctrlBlPower(true);

4. 屏幕触摸开关

public static void ctrlTp(boolean open)

功能   屏幕触摸开关

参数   open : true为打开,false为关上


实例代码 :

HardwareCtrl.ctrlTp(true);

5. 485信号控制

打开RS485

public static SerialPort openRs485Signal(File device, int baudrate, SerialPort.Callback callback)

功能   打卡RS485

参数   device : 串口文件
      baudrate : 波特率
      callback : 信息回调接口


发送RS485信号

public static void sendRs485Signal(SerialPort mSerialPort, String msg)

功能   发送RS485信号

参数   device : 串口文件
      baudrate : 波特率
      msg : 信号 (十六进制信号,比如”1E60010000002F”)
      callback : 信息回调接口


关闭RS485

public statis void closeRs485Signal(SerialPort mSerialPort)

功能   关闭RS485

参数   无


实例代码 :

//输入相关内容
/**
比如:
1.A向刷卡开闸,上位机需发送十六进制数据:
发送:0x1E 0x60 0x01 0x00 0x00 0x00 0x2F
闸机返回码分以下几种:
a),人已经通过闸机
返回: 0x1E 0x61 0x01 0x00 0x00 0x00 0x2F
b)刷卡后超时未通过闸机, 闸机自动关门,取消此次通行
返回: 0x1E 0x44 0x01 0x00 0x00 0x00 0x2F
c)刷卡后有人反向过闸机, 闸机自动关门,取消此次通行
返回: 0x1E 0x44 0x01 0x00 0x00 0x00 0x2F
*/
//打开RS485
SerialPort mSerialPort = HardwareCtrl.openRs485Signal(new File("dev/ttyS4"), 9600, new SerialPort.Callback() {
     @Override
     public void onDataReceived(byte[] buffer, int size) {
         String result = StringUtils.bytesToHexString(buffer, size);
         Log.e("lkdong","result = "+result);
     }
});

发送信号
HardwareCtrl.sendRs485Signal(mSerialPort, "1E60010000002F");
//关闭RS485
HardwareCtrl.closeRs485Signal(mSerialPort);

6. 韦根信号控制

public static void sendWiegandSignal(String msg)

功能   韦根信号控制

参数   msg : 比如卡号等等


实例代码 :

//输入相关内容, 比如卡号等等
HardwareCtrl.sendWiegandSignal("1233456789");

7. 普通GPIO控制

D0 信号

public static void sendSignalD0(boolean up)

功能   普通GPIO D0信号控制

参数   up : false为拉低,true为拉高


实例代码 :

HardwareCtrl.sendSignalD0(true);

D1 信号

public static void sendSignalD1(boolean up)

功能   普通GPIO D1控制

参数   up : false为拉低,true为拉高


实例代码 :

HardwareCtrl.sendSignalD1(true);

8. 关机

public static void shutdown()

功能   关机

参数   无


实例代码 :

HardwareCtrl.shutdown();

9. 重启设备

public static void reboot()

功能   重启设备

参数   无


实例代码 :

HardwareCtrl.reboot();

10. 看门狗

public static void setWdt(int value)

功能   系统死机或者长时间没有响应,重启设备

参数   value : 有效值:0~3
      0对应是0.46s
      1对应是2.56s
      2对应是10.24s
      3对应是40.96s


实例代码 :

HardwareCtrl.ctrlWdt(1);

11. 获取设备唯一ID

public static String getFireflyCid()

功能   设备唯一id

参数   无


实例代码 :

String cid = HardwareCtrl.getFireflyCid();

12. 其他命令使用

public static void execSuCmd(String command)

功能   其他shell命令的使用

参数   command:需要执行的命令


实例代码 :

//比如同步文件等等
HardwareCtrl.execSuCmd("sync");

13. 其他GPIO使用

public static int gpioParse(String gpioStr)

功能   将gpio名字转换成对应的gpio编码

参数   gpioStr:gpio名字,比如GPIO2_A2


控制GPIO

public static void ctrlGpio(int gpio, String direction, int value)

功能   控制GPIO

参数   gpio:gpio编码,比如152
      direction :
      value : 设置GPIO值


实例代码 :

HardwareCtrl.ctrlGpio(HardwareCtrl.gpioParse("GPIO2_A2"), "out", 1);