V40IOInterface2.java 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. package kr.co.icontrols.v40ioctl;
  2. import android.util.Log;
  3. import com.util.LogUtil;
  4. import kr.co.icontrols.wallpadsupport.Version;
  5. public class V40IOInterface2 {
  6. private static final String TAG = "V40IOInterface2";
  7. public native int WpdInterfaceOpen();
  8. public native int WpdInterfaceClose();
  9. public native int WpdInterfaceControl(int cmd, int arg);
  10. public native void SetMacAddr(String mac);
  11. public native void IpAddr(String ip);
  12. public native void GatewayIp(String gw);
  13. public native void NetMask(String mask);
  14. public native void NetAll(String ip, String mask, String gw, String mac);
  15. public native void LiveUpdate();
  16. public native void UsbUpdate();
  17. public native int LcdWakeUp();
  18. public native void Reboot(int sec);
  19. public native void NetDns1(String dns);
  20. public native void NetDns2(String dns);
  21. public native int sensorread();
  22. static {
  23. System.loadLibrary("wpd_v40interface2-jni");
  24. }
  25. public void setV40Reboot(int sec) {
  26. Log.i(TAG, "V40 Device will reboot : " +sec + " second !!!");
  27. Reboot(sec);
  28. }
  29. /*
  30. #define TYPE_GPIO_CMD (0xFF << 8)
  31. #define TYPE_GPIO2_CMD (0xFE << 8)
  32. #define IOCTL_LEDNEMR_ONOFF (TYPE_GPIO_CMD|0x02) //LED on/off
  33. #define IOCTL_EMR_TYPE (TYPE_GPIOS_CMD|0x02) //비상기능 타입
  34. #define IOCTL_EMR_OFF (TYPE_GPIOS_CMD|0x03) //비상종료
  35. #define IOCTL_PROX_THR (TYPE_GPIOS_CMD|0x04) //근접센서 감도.
  36. */
  37. public static final int TYPE_GPIO_CMD = (0xFF << 8);
  38. public static final int TYPE_GPIO2_CMD = (0xFE << 8);
  39. public static final int IOCTL_LEDNEMR_ONOFF = (TYPE_GPIO_CMD | 0x02);
  40. public static final int IOCTL_EMR_TYPE = (TYPE_GPIO2_CMD | 0x02);
  41. public static final int IOCTL_EMR_OFF = (TYPE_GPIO2_CMD | 0x03);
  42. public static final int IOCTL_PROX_THR = (TYPE_GPIO2_CMD | 0x04);
  43. public void Ctrl_CloseSensor(int value) {
  44. if (!(value >= 0 && value <= 15)) {
  45. Log.d(TAG, "[Ctrl_CloseSensor] Value Range Error : " + value);
  46. return;
  47. }
  48. Log.d(TAG, "[Ctrl_CloseSensor] Change Close Value : " + value);
  49. WpdInterfaceOpen();
  50. WpdInterfaceControl(IOCTL_PROX_THR, value);
  51. WpdInterfaceClose();
  52. }
  53. public void Ctrl_LCD_WakeUp() {
  54. Log.d(TAG, "[Ctrl_LCD_WakeUp] LCD Wake Up RUN");
  55. WpdInterfaceOpen();
  56. LcdWakeUp();
  57. WpdInterfaceClose();
  58. }
  59. public void Emergency_Type_Set() {
  60. WpdInterfaceOpen();
  61. if (Version.getModelType() == Version.MODEL_TYPE.IHN_D101 || Version.getModelType() == Version.MODEL_TYPE.IHN_D101_I
  62. || Version.getModelType() == Version.MODEL_TYPE.IHN_D101K || Version.getModelType() == Version.MODEL_TYPE.IHN_D101K_I
  63. || Version.getModelType() == Version.MODEL_TYPE.IHN_D101_I_OCF) {
  64. Log.d(TAG, "[Emergency_Type_Set] V40 - D101 mode");
  65. WpdInterfaceControl(IOCTL_EMR_TYPE, 0);
  66. }
  67. else {
  68. Log.d(TAG, "[Emergency_Type_Set] A20 - Previous mode");
  69. WpdInterfaceControl(IOCTL_EMR_TYPE, 1);
  70. }
  71. WpdInterfaceClose();
  72. }
  73. public void Emergency_LED_On() {
  74. Log.d(TAG, "[Emergency_LED_On] Emergency LED On&Off START");
  75. WpdInterfaceOpen();
  76. WpdInterfaceControl(IOCTL_LEDNEMR_ONOFF, 1);
  77. WpdInterfaceClose();
  78. }
  79. public void Emergency_LED_Off() {
  80. Log.d(TAG, "[Emergency_LED_On] Emergency LED On&Off END");
  81. WpdInterfaceOpen();
  82. WpdInterfaceControl(IOCTL_LEDNEMR_ONOFF, 0);
  83. if (Version.getModelType() != Version.MODEL_TYPE.IHN_D101 && Version.getModelType() != Version.MODEL_TYPE.IHN_D101_I
  84. && Version.getModelType() != Version.MODEL_TYPE.IHN_D101K && Version.getModelType() != Version.MODEL_TYPE.IHN_D101K_I
  85. && Version.getModelType() != Version.MODEL_TYPE.IHN_D101_I_OCF) {
  86. WpdInterfaceControl(IOCTL_EMR_OFF, 0);
  87. }
  88. WpdInterfaceClose();
  89. }
  90. public void Emergency_LED_blink() {
  91. }
  92. public int DoControl(int cmd, int arg) {
  93. WpdInterfaceOpen();
  94. int ctr = WpdInterfaceControl( cmd, arg);
  95. WpdInterfaceClose();
  96. return ctr;
  97. }
  98. public void DoorLockControl(boolean ctr) {
  99. try {
  100. if (WpdInterfaceOpen() >= 0) {
  101. WpdInterfaceControl(0xFF09, (ctr)?1:0);
  102. WpdInterfaceClose();
  103. }
  104. } catch (RuntimeException re) {
  105. LogUtil.errorLogInfo("", TAG, re);
  106. } catch (Exception e) {
  107. //e.printStackTrace();
  108. LogUtil.errorLogInfo("", TAG, e);
  109. }
  110. }
  111. }