package com.basic.security.utils; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; /** * @Date:2018/10/16 19:25 * @Author: yellow * @类描述:设备所有IO控制 */ public class IOUtil { private IOUtil() { } public static IOUtil initIOUtil() { return IOUtilHolder.IO_UTIL; } /** * A1 PWM灯光控制 * * @param flag 1为上电,0为下电 */ private static boolean pwmPower(int flag) { try { BufferedWriter bufWriter = new BufferedWriter(new FileWriter("/sys/class/pwm_ledctrl/ledctrl/ledctrl/")); ///sys/devices/virtual/pwm_ledctrl/ledctrl # echo "100" > ledctrl bufWriter.write("" + flag); bufWriter.close(); return true; } catch (IOException e) { } return false; } /** * 打开补光灯 * * @param value 0-100 值越大 亮度越大 */ public void openLED(int value) { pwmPower(value); } /** * 关闭补光灯 */ public void closeLED() { pwmPower(0); } /** * 距感电源上电 */ public void openDIST() { openPower("2B1", 1); } /** * 距感电源下电 */ public void closeDIST() { openPower("2B1", 0); } /** * 红外灯光上电 */ public void openIRDA() { openPower("3D5", 1); } /** * 红外灯光下电 */ public void closeIRDA() { openPower("3D5", 0); } /** * 4G上电 */ public void open4G() { openPower("2A6", 1); } /** * 4G下电 */ public void close4G() { openPower("2A6", 0); } /** * 打开门铃 */ public void openBELL() { openPower("3D4", 1); } /** * 关闭门铃 */ public void closeBELL() { openPower("3D4", 0); } /** * 开锁 */ public void openUNLOCK() { openPower("2B2", 0); } /** * 关锁 */ public void closeUNLOCK() { openPower("2B2", 1); } /** * 串口上电 */ public void openPORT() { openPower("4A5", 1); } /** * 串口下电 */ public void closePORT() { openPower("4A5", 0); } /** * U口上电 */ public void openUK() { openPower("4D2", 1); } /** * U口下电 */ public void closeUK() { openPower("4D2", 0); } /** * 扫描头下电 */ public void CloseScanningHead() { openPower("4A3", 0); } /** * 扫描头下电 */ public void openScanningHead() { openPower("4A3", 1); } /** * A1 IO控制 * * @param flag 1为上电,0为下电 */ private boolean openPower(String io, int flag) { try { BufferedWriter bufWriter = new BufferedWriter(new FileWriter("/sys/class/gpio_control/gpio/gpio_control")); bufWriter.write(io + flag); bufWriter.close(); return true; } catch (IOException e) { } return false; } private static final class IOUtilHolder { public static final IOUtil IO_UTIL = new IOUtil(); } }