Compiled from "ThermalController.java" public class com.elotouch.thermallib.ThermalController { private static final java.lang.String TAG; private android.content.Context _context; private int _unitMode; private cn.com.magnity.coresdk.MagDevice _magDev; private com.elotouch.thermallib.INewIRFrame _newFrameDelegate; private com.elotouch.thermallib.INewDistance _newDistanceDelegate; private java.util.concurrent.locks.ReentrantLock _faceRecoglock; private static final int IR_HEIGHT; private static final int IR_WIDTH; private float _targetEmissity; private android.hardware.usb.UsbManager _usbManager; private com.elotouch.thermallib.ThermalController$UsbReceiver _usbReceiver; private android.content.IntentFilter _intentFilter; java.util.ArrayDeque _smoothFace; private static final double ROTATE_RATIO; private long _lastRotateTime; private long _nextRotateTime; double _feverThreshold; double _acceptLow; double _acceptHigh; double _tempOffset; private cn.com.magnity.coresdk.MagDevice$ILinkCallback linkCallback; private cn.com.magnity.coresdk.MagDevice$INewFrameCallback newFrameCallback; boolean isTCMOpen; boolean isMagOpen; com.elotouch.libtcm.TCMDev _tcmDev; int _lastDistance; long _lastVaildDistanceTime; long _lastTriggerTime; com.elotouch.posapi.tcm.ITCMProximityEventListener _proximityEventListener; private java.util.Timer _findTimer; private volatile boolean _isRunning; private volatile boolean _isSignaled; private java.util.concurrent.locks.ReentrantLock _irlock; private java.util.concurrent.locks.Condition _condition; private com.elotouch.thermallib.ThermalController$ProcessThread _processThread; private cn.com.magnity.coresdk.types.StatisticInfo _statisticInfo; private cn.com.magnity.coresdk.types.CameraInfo _cameraInfo; private cn.com.magnity.coresdk.types.CorrectionPara _correctionPara; private java.lang.String _cameraSerial; int _innerTemp; int[] allTempData; private int count; com.elotouch.thermallib.IUpdateCallback updateCallback; int lastPerc; com.elotouch.tcm.IEloTCMUpdaterServiceInterface updaterServiceInterface; public com.elotouch.thermallib.ThermalController(android.content.Context); Code: 0: aload_0 1: invokespecial #18 // Method java/lang/Object."":()V 4: aload_0 5: aconst_null 6: putfield #19 // Field _context:Landroid/content/Context; 9: aload_0 10: iconst_0 11: putfield #4 // Field _unitMode:I 14: aload_0 15: aconst_null 16: putfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 19: aload_0 20: aconst_null 21: putfield #22 // Field _newFrameDelegate:Lcom/elotouch/thermallib/INewIRFrame; 24: aload_0 25: aconst_null 26: putfield #5 // Field _newDistanceDelegate:Lcom/elotouch/thermallib/INewDistance; 29: aload_0 30: ldc #23 // float 0.98f 32: putfield #24 // Field _targetEmissity:F 35: aload_0 36: aconst_null 37: putfield #25 // Field _usbManager:Landroid/hardware/usb/UsbManager; 40: aload_0 41: aconst_null 42: putfield #26 // Field _usbReceiver:Lcom/elotouch/thermallib/ThermalController$UsbReceiver; 45: aload_0 46: aconst_null 47: putfield #27 // Field _intentFilter:Landroid/content/IntentFilter; 50: aload_0 51: new #28 // class java/util/ArrayDeque 54: dup 55: invokespecial #29 // Method java/util/ArrayDeque."":()V 58: putfield #30 // Field _smoothFace:Ljava/util/ArrayDeque; 61: aload_0 62: lconst_0 63: putfield #31 // Field _lastRotateTime:J 66: aload_0 67: lconst_0 68: putfield #32 // Field _nextRotateTime:J 71: aload_0 72: ldc2_w #33 // double 37.0d 75: putfield #35 // Field _feverThreshold:D 78: aload_0 79: ldc2_w #36 // double 32.0d 82: putfield #38 // Field _acceptLow:D 85: aload_0 86: ldc2_w #39 // double 40.0d 89: putfield #41 // Field _acceptHigh:D 92: aload_0 93: dconst_0 94: putfield #42 // Field _tempOffset:D 97: aload_0 98: new #43 // class com/elotouch/thermallib/ThermalController$1 101: dup 102: aload_0 103: invokespecial #44 // Method com/elotouch/thermallib/ThermalController$1."":(Lcom/elotouch/thermallib/ThermalController;)V 106: putfield #45 // Field linkCallback:Lcn/com/magnity/coresdk/MagDevice$ILinkCallback; 109: aload_0 110: new #46 // class com/elotouch/thermallib/ThermalController$2 113: dup 114: aload_0 115: invokespecial #47 // Method com/elotouch/thermallib/ThermalController$2."":(Lcom/elotouch/thermallib/ThermalController;)V 118: putfield #48 // Field newFrameCallback:Lcn/com/magnity/coresdk/MagDevice$INewFrameCallback; 121: aload_0 122: iconst_0 123: putfield #49 // Field isTCMOpen:Z 126: aload_0 127: iconst_0 128: putfield #50 // Field isMagOpen:Z 131: aload_0 132: aconst_null 133: putfield #51 // Field _tcmDev:Lcom/elotouch/libtcm/TCMDev; 136: aload_0 137: iconst_m1 138: putfield #52 // Field _lastDistance:I 141: aload_0 142: ldc2_w #53 // long -1l 145: putfield #55 // Field _lastVaildDistanceTime:J 148: aload_0 149: ldc2_w #53 // long -1l 152: putfield #56 // Field _lastTriggerTime:J 155: aload_0 156: new #57 // class com/elotouch/thermallib/ThermalController$3 159: dup 160: aload_0 161: invokespecial #58 // Method com/elotouch/thermallib/ThermalController$3."":(Lcom/elotouch/thermallib/ThermalController;)V 164: putfield #59 // Field _proximityEventListener:Lcom/elotouch/posapi/tcm/ITCMProximityEventListener; 167: aload_0 168: aconst_null 169: putfield #60 // Field _findTimer:Ljava/util/Timer; 172: aload_0 173: iconst_0 174: putfield #9 // Field _isRunning:Z 177: aload_0 178: iconst_0 179: putfield #7 // Field _isSignaled:Z 182: aload_0 183: aconst_null 184: putfield #61 // Field _processThread:Lcom/elotouch/thermallib/ThermalController$ProcessThread; 187: aload_0 188: ldc #62 // String 190: putfield #63 // Field _cameraSerial:Ljava/lang/String; 193: aload_0 194: iconst_0 195: putfield #64 // Field _innerTemp:I 198: aload_0 199: sipush 19200 202: newarray int 204: putfield #66 // Field allTempData:[I 207: aload_0 208: iconst_0 209: putfield #67 // Field count:I 212: aload_0 213: aconst_null 214: putfield #68 // Field updateCallback:Lcom/elotouch/thermallib/IUpdateCallback; 217: aload_0 218: iconst_0 219: putfield #69 // Field lastPerc:I 222: aload_0 223: new #70 // class com/elotouch/thermallib/ThermalController$4 226: dup 227: aload_0 228: invokespecial #71 // Method com/elotouch/thermallib/ThermalController$4."":(Lcom/elotouch/thermallib/ThermalController;)V 231: putfield #72 // Field updaterServiceInterface:Lcom/elotouch/tcm/IEloTCMUpdaterServiceInterface; 234: aload_0 235: aload_1 236: invokevirtual #73 // Method android/content/Context.getApplicationContext:()Landroid/content/Context; 239: putfield #19 // Field _context:Landroid/content/Context; 242: aload_0 243: new #74 // class java/util/concurrent/locks/ReentrantLock 246: dup 247: invokespecial #75 // Method java/util/concurrent/locks/ReentrantLock."":()V 250: putfield #76 // Field _faceRecoglock:Ljava/util/concurrent/locks/ReentrantLock; 253: aload_1 254: invokestatic #77 // Method cn/com/magnity/coresdk/MagDevice.init:(Landroid/content/Context;)Z 257: pop 258: aload_0 259: aload_0 260: invokestatic #78 // Method java/lang/System.currentTimeMillis:()J 263: dup2_x1 264: putfield #32 // Field _nextRotateTime:J 267: putfield #31 // Field _lastRotateTime:J 270: return private void registerReceiver(); Code: 0: aload_0 1: getfield #27 // Field _intentFilter:Landroid/content/IntentFilter; 4: ifnonnull 49 7: aload_0 8: new #79 // class com/elotouch/thermallib/ThermalController$UsbReceiver 11: dup 12: aload_0 13: aconst_null 14: invokespecial #80 // Method com/elotouch/thermallib/ThermalController$UsbReceiver."":(Lcom/elotouch/thermallib/ThermalController;Lcom/elotouch/thermallib/ThermalController$1;)V 17: putfield #26 // Field _usbReceiver:Lcom/elotouch/thermallib/ThermalController$UsbReceiver; 20: aload_0 21: new #81 // class android/content/IntentFilter 24: dup 25: invokespecial #82 // Method android/content/IntentFilter."":()V 28: putfield #27 // Field _intentFilter:Landroid/content/IntentFilter; 31: aload_0 32: getfield #27 // Field _intentFilter:Landroid/content/IntentFilter; 35: ldc #83 // String android.hardware.usb.action.USB_DEVICE_ATTACHED 37: invokevirtual #84 // Method android/content/IntentFilter.addAction:(Ljava/lang/String;)V 40: aload_0 41: getfield #27 // Field _intentFilter:Landroid/content/IntentFilter; 44: ldc #85 // String android.hardware.usb.action.USB_DEVICE_DETACHED 46: invokevirtual #84 // Method android/content/IntentFilter.addAction:(Ljava/lang/String;)V 49: aload_0 50: getfield #19 // Field _context:Landroid/content/Context; 53: aload_0 54: getfield #26 // Field _usbReceiver:Lcom/elotouch/thermallib/ThermalController$UsbReceiver; 57: aload_0 58: getfield #27 // Field _intentFilter:Landroid/content/IntentFilter; 61: invokevirtual #86 // Method android/content/Context.registerReceiver:(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent; 64: pop 65: return private void unregisterReceiver(); Code: 0: aload_0 1: getfield #26 // Field _usbReceiver:Lcom/elotouch/thermallib/ThermalController$UsbReceiver; 4: ifnonnull 28 7: aload_0 8: getfield #19 // Field _context:Landroid/content/Context; 11: aload_0 12: getfield #26 // Field _usbReceiver:Lcom/elotouch/thermallib/ThermalController$UsbReceiver; 15: invokevirtual #87 // Method android/content/Context.unregisterReceiver:(Landroid/content/BroadcastReceiver;)V 18: aload_0 19: aconst_null 20: putfield #27 // Field _intentFilter:Landroid/content/IntentFilter; 23: aload_0 24: aconst_null 25: putfield #26 // Field _usbReceiver:Lcom/elotouch/thermallib/ThermalController$UsbReceiver; 28: return private boolean isMagDev(android.hardware.usb.UsbDevice); Code: 0: aload_1 1: ifnonnull 6 4: iconst_0 5: ireturn 6: aload_1 7: invokevirtual #88 // Method android/hardware/usb/UsbDevice.getVendorId:()I 10: istore_2 11: iload_2 12: ldc #89 // int 33596 14: if_icmpne 21 17: iconst_1 18: goto 22 21: iconst_0 22: ireturn private boolean isTCMDev(android.hardware.usb.UsbDevice); Code: 0: aload_1 1: ifnonnull 6 4: iconst_0 5: ireturn 6: aload_1 7: invokevirtual #88 // Method android/hardware/usb/UsbDevice.getVendorId:()I 10: istore_2 11: iload_2 12: sipush 1027 15: if_icmpne 22 18: iconst_1 19: goto 23 22: iconst_0 23: ireturn private void processRotateByFace(java.util.ArrayList); Code: 0: invokestatic #78 // Method java/lang/System.currentTimeMillis:()J 3: lstore_2 4: aload_1 5: ifnull 184 8: aload_1 9: invokevirtual #90 // Method java/util/ArrayList.size:()I 12: ifle 184 15: fconst_0 16: fstore 4 18: aload_1 19: invokevirtual #91 // Method java/util/ArrayList.iterator:()Ljava/util/Iterator; 22: astore 5 24: aload 5 26: invokeinterface #92, 1 // InterfaceMethod java/util/Iterator.hasNext:()Z 31: ifeq 59 34: aload 5 36: invokeinterface #93, 1 // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object; 41: checkcast #94 // class android/graphics/RectF 44: astore 6 46: fload 4 48: aload 6 50: invokevirtual #95 // Method android/graphics/RectF.centerY:()F 53: fadd 54: fstore 4 56: goto 24 59: fload 4 61: aload_1 62: invokevirtual #90 // Method java/util/ArrayList.size:()I 65: i2f 66: fdiv 67: fstore 5 69: lload_2 70: aload_0 71: getfield #32 // Field _nextRotateTime:J 74: lcmp 75: iflt 184 78: iconst_0 79: istore 6 81: fload 5 83: f2d 84: ldc2_w #96 // double 0.6d 87: dcmpl 88: ifle 118 91: fload 5 93: f2d 94: ldc2_w #98 // double 0.5d 97: dsub 98: ldc2_w #100 // double -0.1d 101: dmul 102: ldc2_w #102 // double 120.0d 105: dmul 106: d2i 107: istore 6 109: aload_0 110: iload 6 112: invokevirtual #104 // Method rotate:(I)V 115: goto 152 118: fload 5 120: f2d 121: ldc2_w #105 // double 0.4d 124: dcmpg 125: ifge 152 128: fload 5 130: f2d 131: ldc2_w #98 // double 0.5d 134: dsub 135: ldc2_w #100 // double -0.1d 138: dmul 139: ldc2_w #102 // double 120.0d 142: dmul 143: d2i 144: istore 6 146: aload_0 147: iload 6 149: invokevirtual #104 // Method rotate:(I)V 152: iload 6 154: ifeq 184 157: aload_0 158: lload_2 159: putfield #31 // Field _lastRotateTime:J 162: aload_0 163: aload_0 164: getfield #31 // Field _lastRotateTime:J 167: iload 6 169: invokestatic #107 // Method java/lang/Math.abs:(I)I 172: bipush 10 174: imul 175: i2l 176: ladd 177: ldc2_w #108 // long 80l 180: ladd 181: putfield #32 // Field _nextRotateTime:J 184: return public void setNewIRFrameDelegate(com.elotouch.thermallib.INewIRFrame); Code: 0: aload_0 1: aload_1 2: putfield #22 // Field _newFrameDelegate:Lcom/elotouch/thermallib/INewIRFrame; 5: return public void setNewDistanceDelegate(com.elotouch.thermallib.INewDistance); Code: 0: aload_0 1: aload_1 2: putfield #5 // Field _newDistanceDelegate:Lcom/elotouch/thermallib/INewDistance; 5: return public void setUnitMode(int); Code: 0: aload_0 1: iload_1 2: putfield #4 // Field _unitMode:I 5: return public void setTempOffset(double); Code: 0: aload_0 1: dload_1 2: putfield #42 // Field _tempOffset:D 5: return public void setTempBoundary(double, double, double); Code: 0: aload_0 1: dload_1 2: putfield #38 // Field _acceptLow:D 5: aload_0 6: dload_3 7: putfield #41 // Field _acceptHigh:D 10: aload_0 11: dload 5 13: putfield #35 // Field _feverThreshold:D 16: return public com.elotouch.thermallib.TemperatureResult readTemperatureAtPoint(int, int); Code: 0: aload_0 1: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 4: invokevirtual #110 // Method cn/com/magnity/coresdk/MagDevice.lock:()V 7: aload_0 8: iload_1 9: iload_2 10: invokespecial #111 // Method getTemperatureAtPoint:(II)Lcom/elotouch/thermallib/TemperatureResult; 13: astore_3 14: aload_0 15: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 18: invokevirtual #112 // Method cn/com/magnity/coresdk/MagDevice.unlock:()V 21: aload_3 22: areturn public com.elotouch.thermallib.TemperatureResult readTemperatureInRect(android.graphics.Rect); Code: 0: aload_0 1: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 4: invokevirtual #110 // Method cn/com/magnity/coresdk/MagDevice.lock:()V 7: aload_0 8: aload_1 9: invokevirtual #113 // Method getTemperatureInRect:(Landroid/graphics/Rect;)Lcom/elotouch/thermallib/TemperatureResult; 12: astore_2 13: aload_0 14: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 17: invokevirtual #112 // Method cn/com/magnity/coresdk/MagDevice.unlock:()V 20: aload_2 21: areturn public void onStart(); Code: 0: aload_0 1: invokespecial #114 // Method registerReceiver:()V 4: aload_0 5: invokespecial #16 // Method startMag:()V 8: aload_0 9: invokespecial #14 // Method startTCM:()V 12: return public void onStop(); Code: 0: aload_0 1: invokespecial #13 // Method stopMag:()V 4: aload_0 5: invokespecial #12 // Method stopTCM:()V 8: aload_0 9: invokespecial #115 // Method unregisterReceiver:()V 12: return public boolean isWorking(); Code: 0: aload_0 1: getfield #51 // Field _tcmDev:Lcom/elotouch/libtcm/TCMDev; 4: ifnonnull 15 7: aload_0 8: iconst_0 9: putfield #49 // Field isTCMOpen:Z 12: goto 26 15: aload_0 16: aload_0 17: getfield #51 // Field _tcmDev:Lcom/elotouch/libtcm/TCMDev; 20: invokevirtual #116 // Method com/elotouch/libtcm/TCMDev.isOpen:()Z 23: putfield #49 // Field isTCMOpen:Z 26: getstatic #10 // Field TAG:Ljava/lang/String; 29: new #117 // class java/lang/StringBuilder 32: dup 33: invokespecial #118 // Method java/lang/StringBuilder."":()V 36: ldc #119 // String TCM: 38: invokevirtual #120 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 41: aload_0 42: getfield #49 // Field isTCMOpen:Z 45: invokevirtual #121 // Method java/lang/StringBuilder.append:(Z)Ljava/lang/StringBuilder; 48: ldc #122 // String IR: 50: invokevirtual #120 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 53: aload_0 54: getfield #50 // Field isMagOpen:Z 57: invokevirtual #121 // Method java/lang/StringBuilder.append:(Z)Ljava/lang/StringBuilder; 60: invokevirtual #123 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; 63: invokestatic #124 // Method android/util/Log.d:(Ljava/lang/String;Ljava/lang/String;)I 66: pop 67: aload_0 68: getfield #49 // Field isTCMOpen:Z 71: ifeq 85 74: aload_0 75: getfield #50 // Field isMagOpen:Z 78: ifeq 85 81: iconst_1 82: goto 86 85: iconst_0 86: ireturn private void startTCM(); Code: 0: aload_0 1: getfield #51 // Field _tcmDev:Lcom/elotouch/libtcm/TCMDev; 4: ifnonnull 54 7: aload_0 8: new #125 // class com/elotouch/libtcm/TCMDev 11: dup 12: aload_0 13: getfield #19 // Field _context:Landroid/content/Context; 16: invokespecial #126 // Method com/elotouch/libtcm/TCMDev."":(Landroid/content/Context;)V 19: putfield #51 // Field _tcmDev:Lcom/elotouch/libtcm/TCMDev; 22: aload_0 23: getfield #51 // Field _tcmDev:Lcom/elotouch/libtcm/TCMDev; 26: invokevirtual #127 // Method com/elotouch/libtcm/TCMDev.open:()V 29: aload_0 30: invokespecial #128 // Method getTCMService:()Lcom/elotouch/service/TCMService; 33: invokevirtual #129 // Method com/elotouch/service/TCMService.getProximityDevice:()Lcom/elotouch/usb/EloProximityDevice; 36: aload_0 37: getfield #59 // Field _proximityEventListener:Lcom/elotouch/posapi/tcm/ITCMProximityEventListener; 40: invokevirtual #130 // Method com/elotouch/usb/EloProximityDevice.setProximityEventListener:(Lcom/elotouch/posapi/tcm/ITCMProximityEventListener;)V 43: aload_0 44: aload_0 45: getfield #51 // Field _tcmDev:Lcom/elotouch/libtcm/TCMDev; 48: invokevirtual #116 // Method com/elotouch/libtcm/TCMDev.isOpen:()Z 51: putfield #49 // Field isTCMOpen:Z 54: return private void stopTCM(); Code: 0: aload_0 1: getfield #51 // Field _tcmDev:Lcom/elotouch/libtcm/TCMDev; 4: ifnull 19 7: aload_0 8: getfield #51 // Field _tcmDev:Lcom/elotouch/libtcm/TCMDev; 11: invokevirtual #131 // Method com/elotouch/libtcm/TCMDev.close:()V 14: aload_0 15: aconst_null 16: putfield #51 // Field _tcmDev:Lcom/elotouch/libtcm/TCMDev; 19: aload_0 20: iconst_0 21: putfield #49 // Field isTCMOpen:Z 24: return private com.elotouch.usb.EloTCMUpdaterDevice getUpdater(); Code: 0: aload_0 1: invokespecial #128 // Method getTCMService:()Lcom/elotouch/service/TCMService; 4: invokevirtual #132 // Method com/elotouch/service/TCMService.getTCMUpdater:()Lcom/elotouch/usb/EloTCMUpdaterDevice; 7: areturn public void rotate(int); Code: 0: getstatic #10 // Field TAG:Ljava/lang/String; 3: new #117 // class java/lang/StringBuilder 6: dup 7: invokespecial #118 // Method java/lang/StringBuilder."":()V 10: ldc #133 // String rotate: 12: invokevirtual #120 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 15: iload_1 16: invokevirtual #134 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; 19: invokevirtual #123 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; 22: invokestatic #124 // Method android/util/Log.d:(Ljava/lang/String;Ljava/lang/String;)I 25: pop 26: aload_0 27: invokespecial #128 // Method getTCMService:()Lcom/elotouch/service/TCMService; 30: invokevirtual #135 // Method com/elotouch/service/TCMService.getMotorDevice:()Lcom/elotouch/usb/EloMotorDevice; 33: iload_1 34: invokevirtual #136 // Method com/elotouch/usb/EloMotorDevice.rotate:(I)V 37: goto 45 40: astore_2 41: aload_2 42: invokevirtual #138 // Method java/lang/Exception.printStackTrace:()V 45: return Exception table: from to target type 26 37 40 Class java/lang/Exception private void startTryFinding(); Code: 0: aload_0 1: getfield #60 // Field _findTimer:Ljava/util/Timer; 4: ifnull 8 7: return 8: aload_0 9: new #139 // class java/util/Timer 12: dup 13: invokespecial #140 // Method java/util/Timer."":()V 16: putfield #60 // Field _findTimer:Ljava/util/Timer; 19: new #1 // class com/elotouch/thermallib/ThermalController$TryFindingTask 22: dup 23: aload_0 24: invokespecial #141 // Method com/elotouch/thermallib/ThermalController$TryFindingTask."":(Lcom/elotouch/thermallib/ThermalController;)V 27: astore_1 28: aload_0 29: getfield #60 // Field _findTimer:Ljava/util/Timer; 32: aload_1 33: lconst_0 34: ldc2_w #142 // long 500l 37: invokevirtual #144 // Method java/util/Timer.schedule:(Ljava/util/TimerTask;JJ)V 40: return private void stopTryFinding(); Code: 0: aload_0 1: getfield #60 // Field _findTimer:Ljava/util/Timer; 4: ifnull 19 7: aload_0 8: getfield #60 // Field _findTimer:Ljava/util/Timer; 11: invokevirtual #145 // Method java/util/Timer.cancel:()V 14: aload_0 15: aconst_null 16: putfield #60 // Field _findTimer:Ljava/util/Timer; 19: return private com.elotouch.service.TCMService getTCMService(); Code: 0: aload_0 1: getfield #51 // Field _tcmDev:Lcom/elotouch/libtcm/TCMDev; 4: ifnull 15 7: aload_0 8: getfield #51 // Field _tcmDev:Lcom/elotouch/libtcm/TCMDev; 11: invokevirtual #146 // Method com/elotouch/libtcm/TCMDev.getService:()Lcom/elotouch/service/TCMService; 14: areturn 15: aconst_null 16: areturn private void startMag(); Code: 0: aload_0 1: new #147 // class cn/com/magnity/coresdk/MagDevice 4: dup 5: invokespecial #148 // Method cn/com/magnity/coresdk/MagDevice."":()V 8: putfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 11: new #149 // class java/util/ArrayList 14: dup 15: invokespecial #150 // Method java/util/ArrayList."":()V 18: astore_1 19: aload_0 20: getfield #19 // Field _context:Landroid/content/Context; 23: ldc #89 // int 33596 25: iconst_1 26: aload_1 27: invokestatic #151 // Method cn/com/magnity/coresdk/MagDevice.getDevices:(Landroid/content/Context;IILjava/util/ArrayList;)V 30: aload_1 31: invokevirtual #152 // Method java/util/ArrayList.isEmpty:()Z 34: ifeq 38 37: return 38: aload_0 39: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 42: aload_0 43: getfield #19 // Field _context:Landroid/content/Context; 46: aload_1 47: iconst_0 48: invokevirtual #153 // Method java/util/ArrayList.get:(I)Ljava/lang/Object; 51: checkcast #154 // class cn/com/magnity/coresdk/types/EnumInfo 54: getfield #155 // Field cn/com/magnity/coresdk/types/EnumInfo.id:I 57: aload_0 58: getfield #45 // Field linkCallback:Lcn/com/magnity/coresdk/MagDevice$ILinkCallback; 61: invokevirtual #156 // Method cn/com/magnity/coresdk/MagDevice.linkCamera:(Landroid/content/Context;ILcn/com/magnity/coresdk/MagDevice$ILinkCallback;)I 64: istore_2 65: iload_2 66: iconst_m1 67: if_icmpne 80 70: getstatic #10 // Field TAG:Ljava/lang/String; 73: ldc #157 // String CONN_FAIL 75: invokestatic #124 // Method android/util/Log.d:(Ljava/lang/String;Ljava/lang/String;)I 78: pop 79: return 80: iload_2 81: ifne 94 84: getstatic #10 // Field TAG:Ljava/lang/String; 87: ldc #158 // String CONN_PENDING 89: invokestatic #124 // Method android/util/Log.d:(Ljava/lang/String;Ljava/lang/String;)I 92: pop 93: return 94: iload_2 95: iconst_1 96: if_icmpne 103 99: aload_0 100: invokespecial #11 // Method _playMag:()V 103: return private void stopMag(); Code: 0: aload_0 1: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 4: ifnonnull 8 7: return 8: aload_0 9: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 12: invokevirtual #159 // Method cn/com/magnity/coresdk/MagDevice.isProcessingImage:()Z 15: ifeq 29 18: aload_0 19: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 22: invokevirtual #160 // Method cn/com/magnity/coresdk/MagDevice.stopProcessImage:()V 25: aload_0 26: invokespecial #161 // Method stopThread:()V 29: aload_0 30: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 33: invokevirtual #162 // Method cn/com/magnity/coresdk/MagDevice.isLinked:()Z 36: ifeq 46 39: aload_0 40: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 43: invokevirtual #163 // Method cn/com/magnity/coresdk/MagDevice.dislinkCamera:()V 46: aload_0 47: aconst_null 48: putfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 51: aload_0 52: iconst_0 53: putfield #50 // Field isMagOpen:Z 56: return private void _playMag(); Code: 0: aload_0 1: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 4: iconst_2 5: invokevirtual #165 // Method cn/com/magnity/coresdk/MagDevice.setColorPalette:(I)V 8: aload_0 9: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 12: aload_0 13: getfield #48 // Field newFrameCallback:Lcn/com/magnity/coresdk/MagDevice$INewFrameCallback; 16: iconst_0 17: iconst_0 18: invokevirtual #166 // Method cn/com/magnity/coresdk/MagDevice.startProcessImage:(Lcn/com/magnity/coresdk/MagDevice$INewFrameCallback;II)Z 21: ifeq 36 24: aload_0 25: invokespecial #167 // Method startThread:()V 28: aload_0 29: iconst_1 30: putfield #50 // Field isMagOpen:Z 33: goto 43 36: aload_0 37: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 40: invokevirtual #163 // Method cn/com/magnity/coresdk/MagDevice.dislinkCamera:()V 43: return private void startThread(); Code: 0: aload_0 1: getfield #9 // Field _isRunning:Z 4: ifeq 8 7: return 8: aload_0 9: new #168 // class com/elotouch/thermallib/ThermalController$ProcessThread 12: dup 13: aload_0 14: invokespecial #169 // Method com/elotouch/thermallib/ThermalController$ProcessThread."":(Lcom/elotouch/thermallib/ThermalController;)V 17: putfield #61 // Field _processThread:Lcom/elotouch/thermallib/ThermalController$ProcessThread; 20: aload_0 21: new #74 // class java/util/concurrent/locks/ReentrantLock 24: dup 25: invokespecial #75 // Method java/util/concurrent/locks/ReentrantLock."":()V 28: putfield #8 // Field _irlock:Ljava/util/concurrent/locks/ReentrantLock; 31: aload_0 32: aload_0 33: getfield #8 // Field _irlock:Ljava/util/concurrent/locks/ReentrantLock; 36: invokevirtual #170 // Method java/util/concurrent/locks/ReentrantLock.newCondition:()Ljava/util/concurrent/locks/Condition; 39: putfield #6 // Field _condition:Ljava/util/concurrent/locks/Condition; 42: aload_0 43: new #171 // class cn/com/magnity/coresdk/types/StatisticInfo 46: dup 47: invokespecial #172 // Method cn/com/magnity/coresdk/types/StatisticInfo."":()V 50: putfield #173 // Field _statisticInfo:Lcn/com/magnity/coresdk/types/StatisticInfo; 53: aload_0 54: new #174 // class cn/com/magnity/coresdk/types/CameraInfo 57: dup 58: invokespecial #175 // Method cn/com/magnity/coresdk/types/CameraInfo."":()V 61: putfield #176 // Field _cameraInfo:Lcn/com/magnity/coresdk/types/CameraInfo; 64: aload_0 65: aload_0 66: getfield #176 // Field _cameraInfo:Lcn/com/magnity/coresdk/types/CameraInfo; 69: getfield #177 // Field cn/com/magnity/coresdk/types/CameraInfo.name:Ljava/lang/String; 72: putfield #63 // Field _cameraSerial:Ljava/lang/String; 75: aload_0 76: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 79: aload_0 80: getfield #176 // Field _cameraInfo:Lcn/com/magnity/coresdk/types/CameraInfo; 83: invokevirtual #178 // Method cn/com/magnity/coresdk/MagDevice.getCameraInfo:(Lcn/com/magnity/coresdk/types/CameraInfo;)Z 86: pop 87: aload_0 88: new #179 // class cn/com/magnity/coresdk/types/CorrectionPara 91: dup 92: invokespecial #180 // Method cn/com/magnity/coresdk/types/CorrectionPara."":()V 95: putfield #181 // Field _correctionPara:Lcn/com/magnity/coresdk/types/CorrectionPara; 98: aload_0 99: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 102: aload_0 103: getfield #181 // Field _correctionPara:Lcn/com/magnity/coresdk/types/CorrectionPara; 106: invokevirtual #182 // Method cn/com/magnity/coresdk/MagDevice.getFixPara:(Lcn/com/magnity/coresdk/types/CorrectionPara;)Z 109: pop 110: aload_0 111: getfield #181 // Field _correctionPara:Lcn/com/magnity/coresdk/types/CorrectionPara; 114: ldc #183 // float 0.65f 116: putfield #184 // Field cn/com/magnity/coresdk/types/CorrectionPara.fDistance:F 119: aload_0 120: getfield #181 // Field _correctionPara:Lcn/com/magnity/coresdk/types/CorrectionPara; 123: aload_0 124: getfield #24 // Field _targetEmissity:F 127: putfield #185 // Field cn/com/magnity/coresdk/types/CorrectionPara.fEmissivity:F 130: aload_0 131: getfield #181 // Field _correctionPara:Lcn/com/magnity/coresdk/types/CorrectionPara; 134: fconst_0 135: putfield #186 // Field cn/com/magnity/coresdk/types/CorrectionPara.fExtrapara2:F 138: aload_0 139: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 142: aload_0 143: getfield #181 // Field _correctionPara:Lcn/com/magnity/coresdk/types/CorrectionPara; 146: invokevirtual #187 // Method cn/com/magnity/coresdk/MagDevice.setFixPara:(Lcn/com/magnity/coresdk/types/CorrectionPara;)F 149: pop 150: aload_0 151: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 154: iconst_1 155: iconst_2 156: invokevirtual #188 // Method cn/com/magnity/coresdk/MagDevice.setImageTransform:(II)Z 159: pop 160: aload_0 161: iconst_1 162: putfield #9 // Field _isRunning:Z 165: aload_0 166: iconst_0 167: putfield #7 // Field _isSignaled:Z 170: aload_0 171: getfield #61 // Field _processThread:Lcom/elotouch/thermallib/ThermalController$ProcessThread; 174: invokevirtual #189 // Method com/elotouch/thermallib/ThermalController$ProcessThread.start:()V 177: return private void stopThread(); Code: 0: aload_0 1: getfield #9 // Field _isRunning:Z 4: ifne 8 7: return 8: aload_0 9: iconst_0 10: putfield #9 // Field _isRunning:Z 13: aload_0 14: getfield #8 // Field _irlock:Ljava/util/concurrent/locks/ReentrantLock; 17: invokevirtual #190 // Method java/util/concurrent/locks/ReentrantLock.lock:()V 20: aload_0 21: iconst_1 22: putfield #7 // Field _isSignaled:Z 25: aload_0 26: getfield #6 // Field _condition:Ljava/util/concurrent/locks/Condition; 29: invokeinterface #191, 1 // InterfaceMethod java/util/concurrent/locks/Condition.signal:()V 34: aload_0 35: getfield #8 // Field _irlock:Ljava/util/concurrent/locks/ReentrantLock; 38: invokevirtual #192 // Method java/util/concurrent/locks/ReentrantLock.unlock:()V 41: aload_0 42: getfield #61 // Field _processThread:Lcom/elotouch/thermallib/ThermalController$ProcessThread; 45: invokevirtual #193 // Method com/elotouch/thermallib/ThermalController$ProcessThread.join:()V 48: aload_0 49: aconst_null 50: putfield #61 // Field _processThread:Lcom/elotouch/thermallib/ThermalController$ProcessThread; 53: goto 77 56: astore_1 57: aload_1 58: invokevirtual #195 // Method java/lang/InterruptedException.printStackTrace:()V 61: aload_0 62: aconst_null 63: putfield #61 // Field _processThread:Lcom/elotouch/thermallib/ThermalController$ProcessThread; 66: goto 77 69: astore_2 70: aload_0 71: aconst_null 72: putfield #61 // Field _processThread:Lcom/elotouch/thermallib/ThermalController$ProcessThread; 75: aload_2 76: athrow 77: return Exception table: from to target type 41 48 56 Class java/lang/InterruptedException 41 48 69 any 56 61 69 any public double getInnerIRCameraTemp(); Code: 0: aload_0 1: getfield #64 // Field _innerTemp:I 4: i2d 5: ldc2_w #196 // double 0.001d 8: dmul 9: dstore_1 10: aload_0 11: getfield #4 // Field _unitMode:I 14: iconst_1 15: if_icmpne 28 18: dload_1 19: ldc2_w #198 // double 1.8d 22: dmul 23: ldc2_w #36 // double 32.0d 26: dadd 27: dstore_1 28: dload_1 29: dreturn private int[] getAllTempData(); Code: 0: aload_0 1: getfield #66 // Field allTempData:[I 4: areturn private void process(); Code: 0: aload_0 1: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 4: invokevirtual #110 // Method cn/com/magnity/coresdk/MagDevice.lock:()V 7: aload_0 8: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 11: aload_0 12: getfield #66 // Field allTempData:[I 15: iconst_1 16: iconst_1 17: invokevirtual #200 // Method cn/com/magnity/coresdk/MagDevice.getTemperatureData:([IZZ)Z 20: pop 21: aload_0 22: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 25: invokevirtual #201 // Method cn/com/magnity/coresdk/MagDevice.getOutputImage:()Landroid/graphics/Bitmap; 28: astore_1 29: aload_0 30: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 33: aload_0 34: getfield #173 // Field _statisticInfo:Lcn/com/magnity/coresdk/types/StatisticInfo; 37: invokevirtual #202 // Method cn/com/magnity/coresdk/MagDevice.getFrameStatisticInfo:(Lcn/com/magnity/coresdk/types/StatisticInfo;)Z 40: pop 41: aload_0 42: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 45: aload_0 46: getfield #176 // Field _cameraInfo:Lcn/com/magnity/coresdk/types/CameraInfo; 49: invokevirtual #178 // Method cn/com/magnity/coresdk/MagDevice.getCameraInfo:(Lcn/com/magnity/coresdk/types/CameraInfo;)Z 52: pop 53: aload_0 54: aload_0 55: getfield #176 // Field _cameraInfo:Lcn/com/magnity/coresdk/types/CameraInfo; 58: getfield #177 // Field cn/com/magnity/coresdk/types/CameraInfo.name:Ljava/lang/String; 61: putfield #63 // Field _cameraSerial:Ljava/lang/String; 64: aload_0 65: aload_0 66: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 69: invokevirtual #203 // Method cn/com/magnity/coresdk/MagDevice.getCurrentCameraInnerTemperature:()I 72: putfield #64 // Field _innerTemp:I 75: aload_0 76: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 79: invokevirtual #112 // Method cn/com/magnity/coresdk/MagDevice.unlock:()V 82: aload_0 83: getfield #22 // Field _newFrameDelegate:Lcom/elotouch/thermallib/INewIRFrame; 86: ifnull 99 89: aload_0 90: getfield #22 // Field _newFrameDelegate:Lcom/elotouch/thermallib/INewIRFrame; 93: aload_1 94: invokeinterface #204, 2 // InterfaceMethod com/elotouch/thermallib/INewIRFrame.onIRFrame:(Landroid/graphics/Bitmap;)V 99: return private java.util.ArrayList getFaceResults(java.util.List); Code: 0: new #149 // class java/util/ArrayList 3: dup 4: invokespecial #150 // Method java/util/ArrayList."":()V 7: astore_2 8: iconst_0 9: istore_3 10: iload_3 11: aload_1 12: invokeinterface #205, 1 // InterfaceMethod java/util/List.size:()I 17: if_icmpge 106 20: aload_1 21: iload_3 22: invokeinterface #206, 2 // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object; 27: checkcast #94 // class android/graphics/RectF 30: astore 4 32: new #207 // class android/graphics/Rect 35: dup 36: aload 4 38: getfield #208 // Field android/graphics/RectF.left:F 41: ldc #209 // float 160.0f 43: fmul 44: invokestatic #210 // Method java/lang/Math.round:(F)I 47: aload 4 49: getfield #211 // Field android/graphics/RectF.top:F 52: ldc #212 // float 120.0f 54: fmul 55: invokestatic #210 // Method java/lang/Math.round:(F)I 58: aload 4 60: getfield #213 // Field android/graphics/RectF.right:F 63: ldc #209 // float 160.0f 65: fmul 66: invokestatic #210 // Method java/lang/Math.round:(F)I 69: aload 4 71: getfield #214 // Field android/graphics/RectF.bottom:F 74: ldc #212 // float 120.0f 76: fmul 77: invokestatic #210 // Method java/lang/Math.round:(F)I 80: invokespecial #215 // Method android/graphics/Rect."":(IIII)V 83: astore 5 85: aload_0 86: aload 5 88: invokevirtual #113 // Method getTemperatureInRect:(Landroid/graphics/Rect;)Lcom/elotouch/thermallib/TemperatureResult; 91: astore 6 93: aload_2 94: aload 6 96: invokevirtual #216 // Method java/util/ArrayList.add:(Ljava/lang/Object;)Z 99: pop 100: iinc 3, 1 103: goto 10 106: aload_2 107: areturn public void setEmissivity(double); Code: 0: aload_0 1: getfield #181 // Field _correctionPara:Lcn/com/magnity/coresdk/types/CorrectionPara; 4: ifnull 14 7: aload_0 8: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 11: ifnonnull 21 14: aload_0 15: dload_1 16: d2f 17: putfield #24 // Field _targetEmissity:F 20: return 21: aload_0 22: getfield #181 // Field _correctionPara:Lcn/com/magnity/coresdk/types/CorrectionPara; 25: dload_1 26: d2f 27: putfield #185 // Field cn/com/magnity/coresdk/types/CorrectionPara.fEmissivity:F 30: aload_0 31: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 34: aload_0 35: getfield #181 // Field _correctionPara:Lcn/com/magnity/coresdk/types/CorrectionPara; 38: invokevirtual #187 // Method cn/com/magnity/coresdk/MagDevice.setFixPara:(Lcn/com/magnity/coresdk/types/CorrectionPara;)F 41: pop 42: return public void trigger(); Code: 0: aload_0 1: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 4: ifnull 15 7: aload_0 8: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 11: invokevirtual #217 // Method cn/com/magnity/coresdk/MagDevice.triggrtFFC:()Z 14: pop 15: aload_0 16: invokestatic #78 // Method java/lang/System.currentTimeMillis:()J 19: putfield #56 // Field _lastTriggerTime:J 22: return public java.lang.String getIRSerial(); Code: 0: aload_0 1: getfield #63 // Field _cameraSerial:Ljava/lang/String; 4: areturn public com.elotouch.thermallib.TemperatureResult getTemperatureInRect(android.graphics.Rect); Code: 0: iconst_5 1: newarray int 3: astore_2 4: aload_1 5: getfield #218 // Field android/graphics/Rect.top:I 8: ifge 16 11: aload_1 12: iconst_0 13: putfield #218 // Field android/graphics/Rect.top:I 16: aload_1 17: getfield #219 // Field android/graphics/Rect.bottom:I 20: bipush 120 22: if_icmplt 31 25: aload_1 26: bipush 119 28: putfield #219 // Field android/graphics/Rect.bottom:I 31: aload_0 32: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 35: aload_1 36: getfield #220 // Field android/graphics/Rect.left:I 39: aload_0 40: getfield #176 // Field _cameraInfo:Lcn/com/magnity/coresdk/types/CameraInfo; 43: getfield #221 // Field cn/com/magnity/coresdk/types/CameraInfo.bmpHeight:I 46: iconst_1 47: isub 48: aload_1 49: getfield #219 // Field android/graphics/Rect.bottom:I 52: isub 53: aload_1 54: getfield #222 // Field android/graphics/Rect.right:I 57: aload_0 58: getfield #176 // Field _cameraInfo:Lcn/com/magnity/coresdk/types/CameraInfo; 61: getfield #221 // Field cn/com/magnity/coresdk/types/CameraInfo.bmpHeight:I 64: iconst_1 65: isub 66: aload_1 67: getfield #218 // Field android/graphics/Rect.top:I 70: isub 71: aload_2 72: invokevirtual #223 // Method cn/com/magnity/coresdk/MagDevice.getRectTemperatureInfo:(IIII[I)Z 75: istore_3 76: iload_3 77: ifeq 141 80: aload_2 81: iconst_1 82: iaload 83: istore 4 85: aload_2 86: iconst_4 87: iaload 88: istore 5 90: aload_0 91: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 94: iload 4 96: aload_0 97: getfield #181 // Field _correctionPara:Lcn/com/magnity/coresdk/types/CorrectionPara; 100: getfield #185 // Field cn/com/magnity/coresdk/types/CorrectionPara.fEmissivity:F 103: iload 5 105: invokevirtual #224 // Method cn/com/magnity/coresdk/MagDevice.fixTemperature:(IFI)I 108: istore 6 110: iload 5 112: sipush 160 115: idiv 116: istore 7 118: iload 5 120: iload 7 122: sipush 160 125: imul 126: isub 127: istore 8 129: aload_0 130: iload 8 132: bipush 119 134: iload 7 136: isub 137: invokespecial #111 // Method getTemperatureAtPoint:(II)Lcom/elotouch/thermallib/TemperatureResult; 140: areturn 141: goto 145 144: astore_3 145: aload_0 146: invokespecial #225 // Method createIllegalResult:()Lcom/elotouch/thermallib/TemperatureResult; 149: areturn Exception table: from to target type 31 140 144 Class java/lang/Exception private com.elotouch.thermallib.TemperatureResult createIllegalResult(); Code: 0: new #226 // class com/elotouch/thermallib/TemperatureResult 3: dup 4: ldc2_w #227 // double -1.0E8d 7: ldc2_w #227 // double -1.0E8d 10: new #229 // class android/graphics/PointF 13: dup 14: ldc #230 // float -1.0f 16: ldc #230 // float -1.0f 18: invokespecial #231 // Method android/graphics/PointF."":(FF)V 21: aload_0 22: getfield #4 // Field _unitMode:I 25: bipush -2 27: invokespecial #232 // Method com/elotouch/thermallib/TemperatureResult."":(DDLandroid/graphics/PointF;II)V 30: astore_1 31: aload_1 32: areturn private com.elotouch.thermallib.TemperatureResult createLegalResult(int, int, int, int); Code: 0: iload_3 1: i2d 2: ldc2_w #196 // double 0.001d 5: dmul 6: dstore 5 8: iload 4 10: i2d 11: ldc2_w #196 // double 0.001d 14: dmul 15: dstore 7 17: dload 7 19: dload 5 21: ldc2_w #233 // double 3.0d 24: dadd 25: dcmpl 26: ifle 29 29: aload_0 30: getfield #4 // Field _unitMode:I 33: iconst_1 34: if_icmpne 61 37: dload 5 39: ldc2_w #198 // double 1.8d 42: dmul 43: ldc2_w #36 // double 32.0d 46: dadd 47: dstore 5 49: dload 7 51: ldc2_w #198 // double 1.8d 54: dmul 55: ldc2_w #36 // double 32.0d 58: dadd 59: dstore 7 61: dload 5 63: aload_0 64: getfield #42 // Field _tempOffset:D 67: dadd 68: dstore 5 70: dload 7 72: aload_0 73: getfield #42 // Field _tempOffset:D 76: dadd 77: dstore 7 79: iconst_0 80: istore 9 82: dload 7 84: aload_0 85: getfield #41 // Field _acceptHigh:D 88: dcmpl 89: ifgt 102 92: dload 7 94: aload_0 95: getfield #38 // Field _acceptLow:D 98: dcmpg 99: ifge 108 102: iconst_m1 103: istore 9 105: goto 127 108: dload 7 110: aload_0 111: getfield #35 // Field _feverThreshold:D 114: dcmpl 115: iflt 124 118: iconst_1 119: istore 9 121: goto 127 124: iconst_0 125: istore 9 127: new #226 // class com/elotouch/thermallib/TemperatureResult 130: dup 131: dload 5 133: dload 7 135: new #229 // class android/graphics/PointF 138: dup 139: iload_1 140: i2f 141: fconst_1 142: fmul 143: ldc #209 // float 160.0f 145: fdiv 146: iload_2 147: i2f 148: fconst_1 149: fmul 150: ldc #212 // float 120.0f 152: fdiv 153: invokespecial #231 // Method android/graphics/PointF."":(FF)V 156: aload_0 157: getfield #4 // Field _unitMode:I 160: iload 9 162: invokespecial #232 // Method com/elotouch/thermallib/TemperatureResult."":(DDLandroid/graphics/PointF;II)V 165: astore 10 167: aload 10 169: areturn private com.elotouch.thermallib.TemperatureResult getTemperatureAtPoint(int, int); Code: 0: new #235 // class android/graphics/Point 3: dup 4: iload_1 5: iload_2 6: invokespecial #236 // Method android/graphics/Point."":(II)V 9: astore_3 10: bipush 119 12: iload_2 13: isub 14: istore_2 15: iload_1 16: iflt 36 19: iload_1 20: sipush 160 23: if_icmpge 36 26: iload_2 27: iflt 36 30: iload_2 31: bipush 120 33: if_icmplt 41 36: aload_0 37: invokespecial #225 // Method createIllegalResult:()Lcom/elotouch/thermallib/TemperatureResult; 40: areturn 41: aload_0 42: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 45: iload_1 46: iload_2 47: iconst_3 48: invokevirtual #237 // Method cn/com/magnity/coresdk/MagDevice.getTemperatureProbe:(III)I 51: istore 4 53: aload_0 54: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 57: iload 4 59: aload_0 60: getfield #181 // Field _correctionPara:Lcn/com/magnity/coresdk/types/CorrectionPara; 63: getfield #185 // Field cn/com/magnity/coresdk/types/CorrectionPara.fEmissivity:F 66: iload_1 67: iload_2 68: invokevirtual #238 // Method cn/com/magnity/coresdk/MagDevice.fixTemperature:(IFII)I 71: istore 5 73: iload_1 74: iconst_1 75: isub 76: iconst_0 77: invokestatic #239 // Method java/lang/Math.max:(II)I 80: istore 6 82: iload_1 83: iconst_1 84: iadd 85: sipush 159 88: invokestatic #240 // Method java/lang/Math.min:(II)I 91: istore 7 93: iload_2 94: iconst_1 95: isub 96: iconst_0 97: invokestatic #239 // Method java/lang/Math.max:(II)I 100: istore 8 102: iload_2 103: iconst_1 104: iadd 105: bipush 119 107: invokestatic #240 // Method java/lang/Math.min:(II)I 110: istore 9 112: aload_0 113: getfield #21 // Field _magDev:Lcn/com/magnity/coresdk/MagDevice; 116: iload 6 118: iload 8 120: iload 7 122: iload 9 124: invokevirtual #241 // Method cn/com/magnity/coresdk/MagDevice.estimateUnderArmTempFromForeheadRect:(IIII)I 127: istore 10 129: aload_0 130: iload_1 131: aload_3 132: getfield #242 // Field android/graphics/Point.y:I 135: iload 5 137: iload 10 139: invokespecial #243 // Method createLegalResult:(IIII)Lcom/elotouch/thermallib/TemperatureResult; 142: areturn public int getSDKVersion(); Code: 0: sipush 10001 3: ireturn public java.lang.String getTCMVersion(); Code: 0: aload_0 1: invokespecial #244 // Method getUpdater:()Lcom/elotouch/usb/EloTCMUpdaterDevice; 4: invokevirtual #245 // Method com/elotouch/usb/EloTCMUpdaterDevice.getTCMVersion:()Ljava/lang/String; 7: areturn public void setFirmwareData(byte[]); Code: 0: aload_0 1: invokespecial #244 // Method getUpdater:()Lcom/elotouch/usb/EloTCMUpdaterDevice; 4: aload_1 5: invokevirtual #246 // Method com/elotouch/usb/EloTCMUpdaterDevice.setFirmwareData:([B)Z 8: pop 9: return public void setUpdateCallback(com.elotouch.thermallib.IUpdateCallback); Code: 0: aload_0 1: aload_1 2: putfield #68 // Field updateCallback:Lcom/elotouch/thermallib/IUpdateCallback; 5: aload_0 6: invokespecial #244 // Method getUpdater:()Lcom/elotouch/usb/EloTCMUpdaterDevice; 9: aload_0 10: getfield #72 // Field updaterServiceInterface:Lcom/elotouch/tcm/IEloTCMUpdaterServiceInterface; 13: invokevirtual #247 // Method com/elotouch/usb/EloTCMUpdaterDevice.setTCMUpdateEventListener:(Lcom/elotouch/tcm/IEloTCMUpdaterServiceInterface;)V 16: return public void startUpdate(); Code: 0: aload_0 1: invokespecial #244 // Method getUpdater:()Lcom/elotouch/usb/EloTCMUpdaterDevice; 4: invokevirtual #248 // Method com/elotouch/usb/EloTCMUpdaterDevice.startUpdate:()V 7: return static boolean access$100(com.elotouch.thermallib.ThermalController, android.hardware.usb.UsbDevice); Code: 0: aload_0 1: aload_1 2: invokespecial #17 // Method isMagDev:(Landroid/hardware/usb/UsbDevice;)Z 5: ireturn static void access$200(com.elotouch.thermallib.ThermalController); Code: 0: aload_0 1: invokespecial #16 // Method startMag:()V 4: return static boolean access$300(com.elotouch.thermallib.ThermalController, android.hardware.usb.UsbDevice); Code: 0: aload_0 1: aload_1 2: invokespecial #15 // Method isTCMDev:(Landroid/hardware/usb/UsbDevice;)Z 5: ireturn static void access$400(com.elotouch.thermallib.ThermalController); Code: 0: aload_0 1: invokespecial #14 // Method startTCM:()V 4: return static void access$500(com.elotouch.thermallib.ThermalController); Code: 0: aload_0 1: invokespecial #13 // Method stopMag:()V 4: return static void access$600(com.elotouch.thermallib.ThermalController); Code: 0: aload_0 1: invokespecial #12 // Method stopTCM:()V 4: return static void access$700(com.elotouch.thermallib.ThermalController); Code: 0: aload_0 1: invokespecial #11 // Method _playMag:()V 4: return static java.lang.String access$800(); Code: 0: getstatic #10 // Field TAG:Ljava/lang/String; 3: areturn static boolean access$900(com.elotouch.thermallib.ThermalController); Code: 0: aload_0 1: getfield #9 // Field _isRunning:Z 4: ireturn static java.util.concurrent.locks.ReentrantLock access$1000(com.elotouch.thermallib.ThermalController); Code: 0: aload_0 1: getfield #8 // Field _irlock:Ljava/util/concurrent/locks/ReentrantLock; 4: areturn static boolean access$1102(com.elotouch.thermallib.ThermalController, boolean); Code: 0: aload_0 1: iload_1 2: dup_x1 3: putfield #7 // Field _isSignaled:Z 6: ireturn static java.util.concurrent.locks.Condition access$1200(com.elotouch.thermallib.ThermalController); Code: 0: aload_0 1: getfield #6 // Field _condition:Ljava/util/concurrent/locks/Condition; 4: areturn static com.elotouch.thermallib.INewDistance access$1300(com.elotouch.thermallib.ThermalController); Code: 0: aload_0 1: getfield #5 // Field _newDistanceDelegate:Lcom/elotouch/thermallib/INewDistance; 4: areturn static int access$1400(com.elotouch.thermallib.ThermalController); Code: 0: aload_0 1: getfield #4 // Field _unitMode:I 4: ireturn static void access$1500(com.elotouch.thermallib.ThermalController); Code: 0: aload_0 1: invokespecial #3 // Method stopTryFinding:()V 4: return static boolean access$1100(com.elotouch.thermallib.ThermalController); Code: 0: aload_0 1: getfield #7 // Field _isSignaled:Z 4: ireturn static void access$1600(com.elotouch.thermallib.ThermalController); Code: 0: aload_0 1: invokespecial #2 // Method process:()V 4: return static {}; Code: 0: ldc #65 // class com/elotouch/thermallib/ThermalController 2: invokevirtual #249 // Method java/lang/Class.getSimpleName:()Ljava/lang/String; 5: putstatic #10 // Field TAG:Ljava/lang/String; 8: return }