diff --git a/platforms/mtk/LEScan/.classpath b/platforms/mtk/LEScan/.classpath new file mode 100644 index 000000000..611d75366 --- /dev/null +++ b/platforms/mtk/LEScan/.classpath @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/platforms/mtk/LEScan/.project b/platforms/mtk/LEScan/.project new file mode 100644 index 000000000..1f3749881 --- /dev/null +++ b/platforms/mtk/LEScan/.project @@ -0,0 +1,60 @@ + + + LEScan + + + + + + com.android.ide.eclipse.adt.ResourceManagerBuilder + + + + + com.android.ide.eclipse.adt.PreCompilerBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + com.android.ide.eclipse.adt.ApkBuilder + + + + + + com.android.ide.eclipse.adt.AndroidNature + org.eclipse.jdt.core.javanature + + + + btstack-gen + 2 + BTSTACK_JAVA_LOC/gen + + + btstack-src + 2 + BTSTACK_JAVA_LOC/src + + + config + 2 + virtual:/virtual + + + + + BTSTACK_JAVA_LOC + file:/Projects/btstack-xcode/btstack/java + + + MTK_LOC + file:/Projects/btstack-xcode/btstack/platforms/mtk + + + diff --git a/platforms/mtk/LEScan/.settings/org.eclipse.jdt.core.prefs b/platforms/mtk/LEScan/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..b080d2ddc --- /dev/null +++ b/platforms/mtk/LEScan/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/platforms/mtk/LEScan/AndroidManifest.xml b/platforms/mtk/LEScan/AndroidManifest.xml new file mode 100644 index 000000000..9d4c17eb3 --- /dev/null +++ b/platforms/mtk/LEScan/AndroidManifest.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + diff --git a/platforms/mtk/LEScan/bin/AndroidManifest.xml b/platforms/mtk/LEScan/bin/AndroidManifest.xml new file mode 100644 index 000000000..9d4c17eb3 --- /dev/null +++ b/platforms/mtk/LEScan/bin/AndroidManifest.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + diff --git a/platforms/mtk/LEScan/gen/com/bluekitchen/lescan/BuildConfig.java b/platforms/mtk/LEScan/gen/com/bluekitchen/lescan/BuildConfig.java new file mode 100644 index 000000000..dd70b2bfd --- /dev/null +++ b/platforms/mtk/LEScan/gen/com/bluekitchen/lescan/BuildConfig.java @@ -0,0 +1,6 @@ +/** Automatically generated file. DO NOT MODIFY */ +package com.bluekitchen.lescan; + +public final class BuildConfig { + public final static boolean DEBUG = true; +} \ No newline at end of file diff --git a/platforms/mtk/LEScan/gen/com/bluekitchen/lescan/R.java b/platforms/mtk/LEScan/gen/com/bluekitchen/lescan/R.java new file mode 100644 index 000000000..04c37712f --- /dev/null +++ b/platforms/mtk/LEScan/gen/com/bluekitchen/lescan/R.java @@ -0,0 +1,68 @@ +/* AUTO-GENERATED FILE. DO NOT MODIFY. + * + * This class was automatically generated by the + * aapt tool from the resource data it found. It + * should not be modified by hand. + */ + +package com.bluekitchen.lescan; + +public final class R { + public static final class attr { + } + public static final class dimen { + /** Default screen margins, per the Android Design guidelines. + + Customize dimensions originally defined in res/values/dimens.xml (such as + screen margins) for sw720dp devices (e.g. 10" tablets) in landscape here. + + */ + public static final int activity_horizontal_margin=0x7f040000; + public static final int activity_vertical_margin=0x7f040001; + } + public static final class drawable { + public static final int ic_launcher=0x7f020000; + } + public static final class id { + public static final int action_settings=0x7f080000; + } + public static final class layout { + public static final int activity_main=0x7f030000; + } + public static final class menu { + public static final int main=0x7f070000; + } + public static final class string { + public static final int action_settings=0x7f050001; + public static final int app_name=0x7f050000; + public static final int hello_world=0x7f050002; + } + public static final class style { + /** + Base application theme, dependent on API level. This theme is replaced + by AppBaseTheme from res/values-vXX/styles.xml on newer devices. + + + Theme customizations available in newer API levels can go in + res/values-vXX/styles.xml, while customizations related to + backward-compatibility can go here. + + + Base application theme for API 11+. This theme completely replaces + AppBaseTheme from res/values/styles.xml on API 11+ devices. + + API 11 theme customizations can go here. + + Base application theme for API 14+. This theme completely replaces + AppBaseTheme from BOTH res/values/styles.xml and + res/values-v11/styles.xml on API 14+ devices. + + API 14 theme customizations can go here. + */ + public static final int AppBaseTheme=0x7f060000; + /** Application theme. + All customizations that are NOT specific to a particular API-level can go here. + */ + public static final int AppTheme=0x7f060001; + } +} diff --git a/platforms/mtk/LEScan/hs_err_pid91618.log b/platforms/mtk/LEScan/hs_err_pid91618.log new file mode 100644 index 000000000..b0c3e16a5 --- /dev/null +++ b/platforms/mtk/LEScan/hs_err_pid91618.log @@ -0,0 +1,267 @@ +# +# A fatal error has been detected by the Java Runtime Environment: +# +# Internal Error (javaClasses.cpp:129), pid=91618, tid=5891 +# fatal error: Invalid layout of preloaded class +# +# JRE version: 7.0_10-b18 +# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.6-b04 mixed mode bsd-amd64 compressed oops) +# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again +# +# If you would like to submit a bug report, please visit: +# http://bugreport.sun.com/bugreport/crash.jsp +# + +--------------- T H R E A D --------------- + +Current thread (0x00007fd3d3000000): JavaThread "Unknown thread" [_thread_in_vm, id=5891, stack(0x00000001014bb000,0x00000001015bb000)] + +Stack: [0x00000001014bb000,0x00000001015bb000], sp=0x00000001015ba840, free space=1022k +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) +V [libjvm.dylib+0x4a3117] +V [libjvm.dylib+0x1b1ebf] +V [libjvm.dylib+0x28af5c] +V [libjvm.dylib+0x28bdbd] +V [libjvm.dylib+0x44d8b4] +V [libjvm.dylib+0x489ce3] +V [libjvm.dylib+0x48a257] +V [libjvm.dylib+0x25046f] +V [libjvm.dylib+0x47a15f] +V [libjvm.dylib+0x2a3418] +C [java+0x2995] JavaMain+0x134 +C [libsystem_pthread.dylib+0x1899] _pthread_body+0x8a +C [libsystem_pthread.dylib+0x172a] _pthread_struct_init+0x0 +C [libsystem_pthread.dylib+0x5fc9] thread_start+0xd + + +--------------- P R O C E S S --------------- + +Java Threads: ( => current thread ) + +Other Threads: + +=>0x00007fd3d3000000 (exited) JavaThread "Unknown thread" [_thread_in_vm, id=5891, stack(0x00000001014bb000,0x00000001015bb000)] + +VM state:not at safepoint (not fully initialized) + +VM Mutex/Monitor currently owned by a thread: None + +GC Heap History (0 events): +No events + +Deoptimization events (0 events): +No events + +Internal exceptions (0 events): +No events + +Events (10 events): +Event: 0.014 loading class 0x00007fd3d150dec0 done +Event: 0.015 loading class 0x00007fd3d150d8a0 done +Event: 0.015 loading class 0x00007fd3d150d880 +Event: 0.015 loading class 0x00007fd3d1516760 +Event: 0.015 loading class 0x00007fd3d1516760 done +Event: 0.015 loading class 0x00007fd3d1516790 +Event: 0.015 loading class 0x00007fd3d1516790 done +Event: 0.015 loading class 0x00007fd3d15167c0 +Event: 0.015 loading class 0x00007fd3d15167c0 done +Event: 0.016 loading class 0x00007fd3d150d880 done + + +Dynamic libraries: +0x000000000ba7d000 /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa +0x000000000ba7d000 /System/Library/Frameworks/Security.framework/Versions/A/Security +0x000000000ba7d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices +0x000000000ba7d000 /usr/lib/libz.1.dylib +0x000000000ba7d000 /usr/lib/libSystem.B.dylib +0x000000000ba7d000 /usr/lib/libobjc.A.dylib +0x000000000ba7d000 /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation +0x000000000ba7d000 /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit +0x000000000ba7d000 /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData +0x000000000ba7d000 /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation +0x000000000ba7d000 /System/Library/PrivateFrameworks/RemoteViewServices.framework/Versions/A/RemoteViewServices +0x000000000ba7d000 /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox +0x000000000ba7d000 /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit +0x000000000ba7d000 /System/Library/PrivateFrameworks/DataDetectorsCore.framework/Versions/A/DataDetectorsCore +0x000000000ba7d000 /System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/DesktopServicesPriv +0x000000000ba7d000 /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox +0x000000000ba7d000 /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore +0x000000000ba7d000 /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition +0x000000000ba7d000 /usr/lib/libauto.dylib +0x000000000ba7d000 /usr/lib/libicucore.A.dylib +0x000000000ba7d000 /usr/lib/libxml2.2.dylib +0x000000000ba7d000 /System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI +0x000000000ba7d000 /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio +0x000000000ba7d000 /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration +0x000000000ba7d000 /usr/lib/liblangid.dylib +0x000000000ba7d000 /System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport +0x000000000ba7d000 /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit +0x000000000ba7d000 /usr/lib/libDiagnosticMessagesClient.dylib +0x000000000ba7d000 /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices +0x000000000ba7d000 /System/Library/PrivateFrameworks/PerformanceAnalysis.framework/Versions/A/PerformanceAnalysis +0x000000000ba7d000 /System/Library/PrivateFrameworks/GenerationalStorage.framework/Versions/A/GenerationalStorage +0x000000000ba7d000 /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL +0x000000000ba7d000 /System/Library/PrivateFrameworks/Sharing.framework/Versions/A/Sharing +0x000000000ba7d000 /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO +0x000000000ba7d000 /System/Library/Frameworks/CoreText.framework/Versions/A/CoreText +0x000000000ba7d000 /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics +0x000000000ba7d000 /System/Library/PrivateFrameworks/Backup.framework/Versions/A/Backup +0x000000000ba7d000 /System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork +0x000000000ba7d000 /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration +0x000000000ba7d000 /usr/lib/libCRFSuite.dylib +0x000000000ba7d000 /usr/lib/libc++.1.dylib +0x000000000ba7d000 /usr/lib/libc++abi.dylib +0x000000000ba7d000 /usr/lib/system/libcache.dylib +0x000000000ba7d000 /usr/lib/system/libcommonCrypto.dylib +0x000000000ba7d000 /usr/lib/system/libcompiler_rt.dylib +0x000000000ba7d000 /usr/lib/system/libcopyfile.dylib +0x000000000ba7d000 /usr/lib/system/libcorecrypto.dylib +0x000000000ba7d000 /usr/lib/system/libdispatch.dylib +0x000000000ba7d000 /usr/lib/system/libdyld.dylib +0x000000000ba7d000 /usr/lib/system/libkeymgr.dylib +0x000000000ba7d000 /usr/lib/system/liblaunch.dylib +0x000000000ba7d000 /usr/lib/system/libmacho.dylib +0x000000000ba7d000 /usr/lib/system/libquarantine.dylib +0x000000000ba7d000 /usr/lib/system/libremovefile.dylib +0x000000000ba7d000 /usr/lib/system/libsystem_asl.dylib +0x000000000ba7d000 /usr/lib/system/libsystem_blocks.dylib +0x000000000ba7d000 /usr/lib/system/libsystem_c.dylib +0x000000000ba7d000 /usr/lib/system/libsystem_configuration.dylib +0x000000000ba7d000 /usr/lib/system/libsystem_dnssd.dylib +0x000000000ba7d000 /usr/lib/system/libsystem_info.dylib +0x000000000ba7d000 /usr/lib/system/libsystem_kernel.dylib +0x000000000ba7d000 /usr/lib/system/libsystem_m.dylib +0x000000000ba7d000 /usr/lib/system/libsystem_malloc.dylib +0x000000000ba7d000 /usr/lib/system/libsystem_network.dylib +0x000000000ba7d000 /usr/lib/system/libsystem_notify.dylib +0x000000000ba7d000 /usr/lib/system/libsystem_platform.dylib +0x000000000ba7d000 /usr/lib/system/libsystem_pthread.dylib +0x000000000ba7d000 /usr/lib/system/libsystem_sandbox.dylib +0x000000000ba7d000 /usr/lib/system/libsystem_stats.dylib +0x000000000ba7d000 /usr/lib/system/libunc.dylib +0x000000000ba7d000 /usr/lib/system/libunwind.dylib +0x000000000ba7d000 /usr/lib/system/libxpc.dylib +0x000000000ba7d000 /usr/lib/libbsm.0.dylib +0x000000000ba7d000 /usr/lib/libsqlite3.dylib +0x000000000ba7d000 /usr/lib/libxar.1.dylib +0x000000000ba7d000 /usr/lib/libpam.2.dylib +0x000000000ba7d000 /usr/lib/libOpenScriptingUtil.dylib +0x000000000ba7d000 /usr/lib/libbz2.1.0.dylib +0x000000000ba7d000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore +0x000000000ba7d000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata +0x000000000ba7d000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices +0x000000000ba7d000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit +0x000000000ba7d000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE +0x000000000ba7d000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices +0x000000000ba7d000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices +0x000000000ba7d000 /System/Library/Frameworks/NetFS.framework/Versions/A/NetFS +0x000000000ba7d000 /usr/lib/system/libkxld.dylib +0x000000000ba7d000 /System/Library/PrivateFrameworks/NetAuth.framework/Versions/A/NetAuth +0x000000000ba7d000 /System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC +0x000000000ba7d000 /System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory +0x000000000ba7d000 /System/Library/Frameworks/ServiceManagement.framework/Versions/A/ServiceManagement +0x000000000ba7d000 /usr/lib/libxslt.1.dylib +0x000000000ba7d000 /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Ink.framework/Versions/A/Ink +0x000000000ba7d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS +0x000000000ba7d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSync.framework/Versions/A/ColorSync +0x000000000ba7d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices +0x000000000ba7d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis +0x000000000ba7d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore +0x000000000ba7d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD +0x000000000ba7d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis +0x000000000ba7d000 /System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface +0x000000000ba7d000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate +0x000000000ba7d000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage +0x000000000ba7d000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib +0x000000000ba7d000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib +0x000000000ba7d000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib +0x000000000ba7d000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib +0x000000000ba7d000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib +0x000000000ba7d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontParser.dylib +0x000000000ba7d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib +0x000000000ba7d000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib +0x000000000ba7d000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib +0x000000000ba7d000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib +0x000000000ba7d000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib +0x000000000ba7d000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib +0x000000000ba7d000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib +0x000000000ba7d000 /usr/lib/libcups.2.dylib +0x000000000ba7d000 /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos +0x000000000ba7d000 /System/Library/Frameworks/GSS.framework/Versions/A/GSS +0x000000000ba7d000 /usr/lib/libresolv.9.dylib +0x000000000ba7d000 /usr/lib/libiconv.2.dylib +0x000000000ba7d000 /System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal +0x000000000ba7d000 /System/Library/PrivateFrameworks/TrustEvaluationAgent.framework/Versions/A/TrustEvaluationAgent +0x000000000ba7d000 /usr/lib/libheimdal-asn1.dylib +0x000000000ba7d000 /System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory +0x000000000ba7d000 /System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth +0x000000000ba7d000 /System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation +0x000000000ba7d000 /System/Library/PrivateFrameworks/Bom.framework/Versions/A/Bom +0x000000000ba7d000 /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo +0x000000000ba7d000 /System/Library/Frameworks/QuartzCore.framework/Versions/A/Frameworks/CoreImage.framework/Versions/A/CoreImage +0x000000000ba7d000 /System/Library/Frameworks/QuartzCore.framework/Versions/A/Frameworks/ScalableUserInterface.framework/Versions/A/ScalableUserInterface +0x000000000ba7d000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib +0x000000000ba7d000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib +0x000000000ba7d000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib +0x000000000ba7d000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib +0x000000000ba7d000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib +0x000000000ba7d000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib +0x000000000ba7d000 /System/Library/PrivateFrameworks/FaceCore.framework/Versions/A/FaceCore +0x000000000ba7d000 /System/Library/PrivateFrameworks/CrashReporterSupport.framework/Versions/A/CrashReporterSupport +0x000000000ba7d000 /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL +0x000000000ba7d000 /System/Library/PrivateFrameworks/AppleFSCompression.framework/Versions/A/AppleFSCompression +0x000000000ba7d000 /System/Library/PrivateFrameworks/Ubiquity.framework/Versions/A/Ubiquity +0x000000000ba7d000 /System/Library/PrivateFrameworks/IconServices.framework/Versions/A/IconServices +0x000000000ba7d000 /System/Library/PrivateFrameworks/ChunkingLibrary.framework/Versions/A/ChunkingLibrary +0x000000000ba7d000 /System/Library/PrivateFrameworks/CoreSymbolication.framework/Versions/A/CoreSymbolication +0x000000000ba7d000 /System/Library/PrivateFrameworks/Symbolication.framework/Versions/A/Symbolication +0x000000000ba7d000 /System/Library/PrivateFrameworks/DebugSymbols.framework/Versions/A/DebugSymbols +0x0000000100a13000 /Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home/jre/lib/server/libjvm.dylib +0x000000000ba7d000 /usr/lib/libstdc++.6.dylib +0x00000001015bd000 /Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home/jre/lib/libverify.dylib +0x00000001015ca000 /Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home/jre/lib/libjava.dylib +0x0000000101602000 /Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home/jre/lib/libzip.dylib + +VM Arguments: +jvm_args: -Dfile.encoding=US-ASCII -Xbootclasspath:/Applications/android/sdk/platforms/android-19/android.jar +java_command: com.bluekitchen.btstack.BT_UUID +Launcher Type: SUN_STANDARD + +Environment Variables: +PATH=/usr/bin:/bin:/usr/sbin:/sbin +SHELL=/bin/bash +DISPLAY=/tmp/launch-gLQMSN/org.macosforge.xquartz:0 + +Signal Handlers: +SIGSEGV: [libjvm.dylib+0x4a363d], sa_mask[0]=0xfffefeff, sa_flags=0x00000042 +SIGBUS: [libjvm.dylib+0x4a363d], sa_mask[0]=0xfffefeff, sa_flags=0x00000042 +SIGFPE: [libjvm.dylib+0x3b3051], sa_mask[0]=0xfffefeff, sa_flags=0x00000042 +SIGPIPE: [libjvm.dylib+0x3b3051], sa_mask[0]=0xfffefeff, sa_flags=0x00000042 +SIGXFSZ: [libjvm.dylib+0x3b3051], sa_mask[0]=0xfffefeff, sa_flags=0x00000042 +SIGILL: [libjvm.dylib+0x3b3051], sa_mask[0]=0xfffefeff, sa_flags=0x00000042 +SIGUSR1: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000002 +SIGUSR2: [libjvm.dylib+0x3b2bea], sa_mask[0]=0x00000004, sa_flags=0x00000042 +SIGHUP: SIG_DFL, sa_mask[0]=0xfffefeff, sa_flags=0x00000042 +SIGINT: SIG_DFL, sa_mask[0]=0xfffefeff, sa_flags=0x00000042 +SIGTERM: SIG_DFL, sa_mask[0]=0xfffefeff, sa_flags=0x00000042 +SIGQUIT: SIG_DFL, sa_mask[0]=0xfffefeff, sa_flags=0x00000042 + + +--------------- S Y S T E M --------------- + +OS:Bsduname:Darwin 13.3.0 Darwin Kernel Version 13.3.0: Tue Jun 3 21:27:35 PDT 2014; root:xnu-2422.110.17~1/RELEASE_X86_64 x86_64 +rlimit: STACK 8192k, CORE 0k, NPROC 709, NOFILE 10240, AS infinity +load average:1.53 1.79 1.79 + +CPU:total 4 (2 cores per cpu, 2 threads per core) family 6 model 42 stepping 7, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, ht, tsc, tscinvbit + +Memory: 4k page, physical 977620k(244405k free) + +/proc/meminfo: + + +vm_info: Java HotSpot(TM) 64-Bit Server VM (23.6-b04) for bsd-amd64 JRE (1.7.0_10-b18), built on Nov 28 2012 07:52:20 by "java_re" with gcc 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.9.00) + +time: Fri Aug 22 14:09:29 2014 +elapsed time: 0 seconds + diff --git a/platforms/mtk/LEScan/hs_err_pid91628.log b/platforms/mtk/LEScan/hs_err_pid91628.log new file mode 100644 index 000000000..b05c7330d --- /dev/null +++ b/platforms/mtk/LEScan/hs_err_pid91628.log @@ -0,0 +1,267 @@ +# +# A fatal error has been detected by the Java Runtime Environment: +# +# Internal Error (javaClasses.cpp:129), pid=91628, tid=5891 +# fatal error: Invalid layout of preloaded class +# +# JRE version: 7.0_10-b18 +# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.6-b04 mixed mode bsd-amd64 compressed oops) +# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again +# +# If you would like to submit a bug report, please visit: +# http://bugreport.sun.com/bugreport/crash.jsp +# + +--------------- T H R E A D --------------- + +Current thread (0x00007fec4a001000): JavaThread "Unknown thread" [_thread_in_vm, id=5891, stack(0x0000000109ea8000,0x0000000109fa8000)] + +Stack: [0x0000000109ea8000,0x0000000109fa8000], sp=0x0000000109fa7840, free space=1022k +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) +V [libjvm.dylib+0x4a3117] +V [libjvm.dylib+0x1b1ebf] +V [libjvm.dylib+0x28af5c] +V [libjvm.dylib+0x28bdbd] +V [libjvm.dylib+0x44d8b4] +V [libjvm.dylib+0x489ce3] +V [libjvm.dylib+0x48a257] +V [libjvm.dylib+0x25046f] +V [libjvm.dylib+0x47a15f] +V [libjvm.dylib+0x2a3418] +C [java+0x2995] JavaMain+0x134 +C [libsystem_pthread.dylib+0x1899] _pthread_body+0x8a +C [libsystem_pthread.dylib+0x172a] _pthread_struct_init+0x0 +C [libsystem_pthread.dylib+0x5fc9] thread_start+0xd + + +--------------- P R O C E S S --------------- + +Java Threads: ( => current thread ) + +Other Threads: + +=>0x00007fec4a001000 (exited) JavaThread "Unknown thread" [_thread_in_vm, id=5891, stack(0x0000000109ea8000,0x0000000109fa8000)] + +VM state:not at safepoint (not fully initialized) + +VM Mutex/Monitor currently owned by a thread: None + +GC Heap History (0 events): +No events + +Deoptimization events (0 events): +No events + +Internal exceptions (0 events): +No events + +Events (10 events): +Event: 0.016 loading class 0x00007fec48e11f20 done +Event: 0.016 loading class 0x00007fec48e11900 done +Event: 0.016 loading class 0x00007fec48e118e0 +Event: 0.016 loading class 0x00007fec48f027f0 +Event: 0.017 loading class 0x00007fec48f027f0 done +Event: 0.017 loading class 0x00007fec48f02820 +Event: 0.017 loading class 0x00007fec48f02820 done +Event: 0.017 loading class 0x00007fec48f02850 +Event: 0.017 loading class 0x00007fec48f02850 done +Event: 0.017 loading class 0x00007fec48e118e0 done + + +Dynamic libraries: +0x000000000ba7d000 /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa +0x000000000ba7d000 /System/Library/Frameworks/Security.framework/Versions/A/Security +0x000000000ba7d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices +0x000000000ba7d000 /usr/lib/libz.1.dylib +0x000000000ba7d000 /usr/lib/libSystem.B.dylib +0x000000000ba7d000 /usr/lib/libobjc.A.dylib +0x000000000ba7d000 /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation +0x000000000ba7d000 /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit +0x000000000ba7d000 /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData +0x000000000ba7d000 /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation +0x000000000ba7d000 /System/Library/PrivateFrameworks/RemoteViewServices.framework/Versions/A/RemoteViewServices +0x000000000ba7d000 /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox +0x000000000ba7d000 /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit +0x000000000ba7d000 /System/Library/PrivateFrameworks/DataDetectorsCore.framework/Versions/A/DataDetectorsCore +0x000000000ba7d000 /System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/DesktopServicesPriv +0x000000000ba7d000 /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox +0x000000000ba7d000 /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore +0x000000000ba7d000 /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition +0x000000000ba7d000 /usr/lib/libauto.dylib +0x000000000ba7d000 /usr/lib/libicucore.A.dylib +0x000000000ba7d000 /usr/lib/libxml2.2.dylib +0x000000000ba7d000 /System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI +0x000000000ba7d000 /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio +0x000000000ba7d000 /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration +0x000000000ba7d000 /usr/lib/liblangid.dylib +0x000000000ba7d000 /System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport +0x000000000ba7d000 /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit +0x000000000ba7d000 /usr/lib/libDiagnosticMessagesClient.dylib +0x000000000ba7d000 /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices +0x000000000ba7d000 /System/Library/PrivateFrameworks/PerformanceAnalysis.framework/Versions/A/PerformanceAnalysis +0x000000000ba7d000 /System/Library/PrivateFrameworks/GenerationalStorage.framework/Versions/A/GenerationalStorage +0x000000000ba7d000 /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL +0x000000000ba7d000 /System/Library/PrivateFrameworks/Sharing.framework/Versions/A/Sharing +0x000000000ba7d000 /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO +0x000000000ba7d000 /System/Library/Frameworks/CoreText.framework/Versions/A/CoreText +0x000000000ba7d000 /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics +0x000000000ba7d000 /System/Library/PrivateFrameworks/Backup.framework/Versions/A/Backup +0x000000000ba7d000 /System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork +0x000000000ba7d000 /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration +0x000000000ba7d000 /usr/lib/libCRFSuite.dylib +0x000000000ba7d000 /usr/lib/libc++.1.dylib +0x000000000ba7d000 /usr/lib/libc++abi.dylib +0x000000000ba7d000 /usr/lib/system/libcache.dylib +0x000000000ba7d000 /usr/lib/system/libcommonCrypto.dylib +0x000000000ba7d000 /usr/lib/system/libcompiler_rt.dylib +0x000000000ba7d000 /usr/lib/system/libcopyfile.dylib +0x000000000ba7d000 /usr/lib/system/libcorecrypto.dylib +0x000000000ba7d000 /usr/lib/system/libdispatch.dylib +0x000000000ba7d000 /usr/lib/system/libdyld.dylib +0x000000000ba7d000 /usr/lib/system/libkeymgr.dylib +0x000000000ba7d000 /usr/lib/system/liblaunch.dylib +0x000000000ba7d000 /usr/lib/system/libmacho.dylib +0x000000000ba7d000 /usr/lib/system/libquarantine.dylib +0x000000000ba7d000 /usr/lib/system/libremovefile.dylib +0x000000000ba7d000 /usr/lib/system/libsystem_asl.dylib +0x000000000ba7d000 /usr/lib/system/libsystem_blocks.dylib +0x000000000ba7d000 /usr/lib/system/libsystem_c.dylib +0x000000000ba7d000 /usr/lib/system/libsystem_configuration.dylib +0x000000000ba7d000 /usr/lib/system/libsystem_dnssd.dylib +0x000000000ba7d000 /usr/lib/system/libsystem_info.dylib +0x000000000ba7d000 /usr/lib/system/libsystem_kernel.dylib +0x000000000ba7d000 /usr/lib/system/libsystem_m.dylib +0x000000000ba7d000 /usr/lib/system/libsystem_malloc.dylib +0x000000000ba7d000 /usr/lib/system/libsystem_network.dylib +0x000000000ba7d000 /usr/lib/system/libsystem_notify.dylib +0x000000000ba7d000 /usr/lib/system/libsystem_platform.dylib +0x000000000ba7d000 /usr/lib/system/libsystem_pthread.dylib +0x000000000ba7d000 /usr/lib/system/libsystem_sandbox.dylib +0x000000000ba7d000 /usr/lib/system/libsystem_stats.dylib +0x000000000ba7d000 /usr/lib/system/libunc.dylib +0x000000000ba7d000 /usr/lib/system/libunwind.dylib +0x000000000ba7d000 /usr/lib/system/libxpc.dylib +0x000000000ba7d000 /usr/lib/libbsm.0.dylib +0x000000000ba7d000 /usr/lib/libsqlite3.dylib +0x000000000ba7d000 /usr/lib/libxar.1.dylib +0x000000000ba7d000 /usr/lib/libpam.2.dylib +0x000000000ba7d000 /usr/lib/libOpenScriptingUtil.dylib +0x000000000ba7d000 /usr/lib/libbz2.1.0.dylib +0x000000000ba7d000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore +0x000000000ba7d000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata +0x000000000ba7d000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices +0x000000000ba7d000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit +0x000000000ba7d000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE +0x000000000ba7d000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices +0x000000000ba7d000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices +0x000000000ba7d000 /System/Library/Frameworks/NetFS.framework/Versions/A/NetFS +0x000000000ba7d000 /usr/lib/system/libkxld.dylib +0x000000000ba7d000 /System/Library/PrivateFrameworks/NetAuth.framework/Versions/A/NetAuth +0x000000000ba7d000 /System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC +0x000000000ba7d000 /System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory +0x000000000ba7d000 /System/Library/Frameworks/ServiceManagement.framework/Versions/A/ServiceManagement +0x000000000ba7d000 /usr/lib/libxslt.1.dylib +0x000000000ba7d000 /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Ink.framework/Versions/A/Ink +0x000000000ba7d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS +0x000000000ba7d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSync.framework/Versions/A/ColorSync +0x000000000ba7d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices +0x000000000ba7d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis +0x000000000ba7d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore +0x000000000ba7d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD +0x000000000ba7d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis +0x000000000ba7d000 /System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface +0x000000000ba7d000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate +0x000000000ba7d000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage +0x000000000ba7d000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib +0x000000000ba7d000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib +0x000000000ba7d000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib +0x000000000ba7d000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib +0x000000000ba7d000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib +0x000000000ba7d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontParser.dylib +0x000000000ba7d000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib +0x000000000ba7d000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib +0x000000000ba7d000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib +0x000000000ba7d000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib +0x000000000ba7d000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib +0x000000000ba7d000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib +0x000000000ba7d000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib +0x000000000ba7d000 /usr/lib/libcups.2.dylib +0x000000000ba7d000 /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos +0x000000000ba7d000 /System/Library/Frameworks/GSS.framework/Versions/A/GSS +0x000000000ba7d000 /usr/lib/libresolv.9.dylib +0x000000000ba7d000 /usr/lib/libiconv.2.dylib +0x000000000ba7d000 /System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal +0x000000000ba7d000 /System/Library/PrivateFrameworks/TrustEvaluationAgent.framework/Versions/A/TrustEvaluationAgent +0x000000000ba7d000 /usr/lib/libheimdal-asn1.dylib +0x000000000ba7d000 /System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory +0x000000000ba7d000 /System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth +0x000000000ba7d000 /System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation +0x000000000ba7d000 /System/Library/PrivateFrameworks/Bom.framework/Versions/A/Bom +0x000000000ba7d000 /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo +0x000000000ba7d000 /System/Library/Frameworks/QuartzCore.framework/Versions/A/Frameworks/CoreImage.framework/Versions/A/CoreImage +0x000000000ba7d000 /System/Library/Frameworks/QuartzCore.framework/Versions/A/Frameworks/ScalableUserInterface.framework/Versions/A/ScalableUserInterface +0x000000000ba7d000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib +0x000000000ba7d000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib +0x000000000ba7d000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib +0x000000000ba7d000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib +0x000000000ba7d000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib +0x000000000ba7d000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib +0x000000000ba7d000 /System/Library/PrivateFrameworks/FaceCore.framework/Versions/A/FaceCore +0x000000000ba7d000 /System/Library/PrivateFrameworks/CrashReporterSupport.framework/Versions/A/CrashReporterSupport +0x000000000ba7d000 /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL +0x000000000ba7d000 /System/Library/PrivateFrameworks/AppleFSCompression.framework/Versions/A/AppleFSCompression +0x000000000ba7d000 /System/Library/PrivateFrameworks/Ubiquity.framework/Versions/A/Ubiquity +0x000000000ba7d000 /System/Library/PrivateFrameworks/IconServices.framework/Versions/A/IconServices +0x000000000ba7d000 /System/Library/PrivateFrameworks/ChunkingLibrary.framework/Versions/A/ChunkingLibrary +0x000000000ba7d000 /System/Library/PrivateFrameworks/CoreSymbolication.framework/Versions/A/CoreSymbolication +0x000000000ba7d000 /System/Library/PrivateFrameworks/Symbolication.framework/Versions/A/Symbolication +0x000000000ba7d000 /System/Library/PrivateFrameworks/DebugSymbols.framework/Versions/A/DebugSymbols +0x0000000109400000 /Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home/jre/lib/server/libjvm.dylib +0x000000000ba7d000 /usr/lib/libstdc++.6.dylib +0x0000000108bd6000 /Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home/jre/lib/libverify.dylib +0x0000000109faa000 /Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home/jre/lib/libjava.dylib +0x0000000108bed000 /Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home/jre/lib/libzip.dylib + +VM Arguments: +jvm_args: -Dfile.encoding=US-ASCII -Xbootclasspath:/Applications/android/sdk/platforms/android-19/android.jar +java_command: com.bluekitchen.btstack.BT_UUID +Launcher Type: SUN_STANDARD + +Environment Variables: +PATH=/usr/bin:/bin:/usr/sbin:/sbin +SHELL=/bin/bash +DISPLAY=/tmp/launch-gLQMSN/org.macosforge.xquartz:0 + +Signal Handlers: +SIGSEGV: [libjvm.dylib+0x4a363d], sa_mask[0]=0xfffefeff, sa_flags=0x00000042 +SIGBUS: [libjvm.dylib+0x4a363d], sa_mask[0]=0xfffefeff, sa_flags=0x00000042 +SIGFPE: [libjvm.dylib+0x3b3051], sa_mask[0]=0xfffefeff, sa_flags=0x00000042 +SIGPIPE: [libjvm.dylib+0x3b3051], sa_mask[0]=0xfffefeff, sa_flags=0x00000042 +SIGXFSZ: [libjvm.dylib+0x3b3051], sa_mask[0]=0xfffefeff, sa_flags=0x00000042 +SIGILL: [libjvm.dylib+0x3b3051], sa_mask[0]=0xfffefeff, sa_flags=0x00000042 +SIGUSR1: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000002 +SIGUSR2: [libjvm.dylib+0x3b2bea], sa_mask[0]=0x00000004, sa_flags=0x00000042 +SIGHUP: SIG_DFL, sa_mask[0]=0xfffefeff, sa_flags=0x00000042 +SIGINT: SIG_DFL, sa_mask[0]=0xfffefeff, sa_flags=0x00000042 +SIGTERM: SIG_DFL, sa_mask[0]=0xfffefeff, sa_flags=0x00000042 +SIGQUIT: SIG_DFL, sa_mask[0]=0xfffefeff, sa_flags=0x00000042 + + +--------------- S Y S T E M --------------- + +OS:Bsduname:Darwin 13.3.0 Darwin Kernel Version 13.3.0: Tue Jun 3 21:27:35 PDT 2014; root:xnu-2422.110.17~1/RELEASE_X86_64 x86_64 +rlimit: STACK 8192k, CORE 0k, NPROC 709, NOFILE 10240, AS infinity +load average:3.24 2.20 1.93 + +CPU:total 4 (2 cores per cpu, 2 threads per core) family 6 model 42 stepping 7, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, ht, tsc, tscinvbit + +Memory: 4k page, physical 982836k(245709k free) + +/proc/meminfo: + + +vm_info: Java HotSpot(TM) 64-Bit Server VM (23.6-b04) for bsd-amd64 JRE (1.7.0_10-b18), built on Nov 28 2012 07:52:20 by "java_re" with gcc 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.9.00) + +time: Fri Aug 22 14:12:16 2014 +elapsed time: 0 seconds + diff --git a/platforms/mtk/LEScan/ic_launcher-web.png b/platforms/mtk/LEScan/ic_launcher-web.png new file mode 100644 index 000000000..a18cbb48c Binary files /dev/null and b/platforms/mtk/LEScan/ic_launcher-web.png differ diff --git a/platforms/mtk/LEScan/libs/android-support-v4.jar b/platforms/mtk/LEScan/libs/android-support-v4.jar new file mode 100644 index 000000000..9056828a0 Binary files /dev/null and b/platforms/mtk/LEScan/libs/android-support-v4.jar differ diff --git a/platforms/mtk/LEScan/proguard-project.txt b/platforms/mtk/LEScan/proguard-project.txt new file mode 100644 index 000000000..f2fe1559a --- /dev/null +++ b/platforms/mtk/LEScan/proguard-project.txt @@ -0,0 +1,20 @@ +# To enable ProGuard in your project, edit project.properties +# to define the proguard.config property as described in that file. +# +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in ${sdk.dir}/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the ProGuard +# include property in project.properties. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/platforms/mtk/LEScan/project.properties b/platforms/mtk/LEScan/project.properties new file mode 100644 index 000000000..4ab125693 --- /dev/null +++ b/platforms/mtk/LEScan/project.properties @@ -0,0 +1,14 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system edit +# "ant.properties", and override values to adapt the script to your +# project structure. +# +# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): +#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt + +# Project target. +target=android-19 diff --git a/platforms/mtk/LEScan/res/drawable-hdpi/ic_launcher.png b/platforms/mtk/LEScan/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 000000000..288b66551 Binary files /dev/null and b/platforms/mtk/LEScan/res/drawable-hdpi/ic_launcher.png differ diff --git a/platforms/mtk/LEScan/res/drawable-mdpi/ic_launcher.png b/platforms/mtk/LEScan/res/drawable-mdpi/ic_launcher.png new file mode 100644 index 000000000..6ae570b4d Binary files /dev/null and b/platforms/mtk/LEScan/res/drawable-mdpi/ic_launcher.png differ diff --git a/platforms/mtk/LEScan/res/drawable-xhdpi/ic_launcher.png b/platforms/mtk/LEScan/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 000000000..d4fb7cd9d Binary files /dev/null and b/platforms/mtk/LEScan/res/drawable-xhdpi/ic_launcher.png differ diff --git a/platforms/mtk/LEScan/res/drawable-xxhdpi/ic_launcher.png b/platforms/mtk/LEScan/res/drawable-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..85a608158 Binary files /dev/null and b/platforms/mtk/LEScan/res/drawable-xxhdpi/ic_launcher.png differ diff --git a/platforms/mtk/LEScan/res/layout/activity_main.xml b/platforms/mtk/LEScan/res/layout/activity_main.xml new file mode 100644 index 000000000..168c9b8ce --- /dev/null +++ b/platforms/mtk/LEScan/res/layout/activity_main.xml @@ -0,0 +1,16 @@ + + + + + diff --git a/platforms/mtk/LEScan/res/menu/main.xml b/platforms/mtk/LEScan/res/menu/main.xml new file mode 100644 index 000000000..c00202823 --- /dev/null +++ b/platforms/mtk/LEScan/res/menu/main.xml @@ -0,0 +1,9 @@ + + + + + diff --git a/platforms/mtk/LEScan/res/values-sw600dp/dimens.xml b/platforms/mtk/LEScan/res/values-sw600dp/dimens.xml new file mode 100644 index 000000000..44f01db75 --- /dev/null +++ b/platforms/mtk/LEScan/res/values-sw600dp/dimens.xml @@ -0,0 +1,8 @@ + + + + + diff --git a/platforms/mtk/LEScan/res/values-sw720dp-land/dimens.xml b/platforms/mtk/LEScan/res/values-sw720dp-land/dimens.xml new file mode 100644 index 000000000..61e3fa8fb --- /dev/null +++ b/platforms/mtk/LEScan/res/values-sw720dp-land/dimens.xml @@ -0,0 +1,9 @@ + + + + 128dp + + diff --git a/platforms/mtk/LEScan/res/values-v11/styles.xml b/platforms/mtk/LEScan/res/values-v11/styles.xml new file mode 100644 index 000000000..3c02242ad --- /dev/null +++ b/platforms/mtk/LEScan/res/values-v11/styles.xml @@ -0,0 +1,11 @@ + + + + + + diff --git a/platforms/mtk/LEScan/res/values-v14/styles.xml b/platforms/mtk/LEScan/res/values-v14/styles.xml new file mode 100644 index 000000000..a91fd0372 --- /dev/null +++ b/platforms/mtk/LEScan/res/values-v14/styles.xml @@ -0,0 +1,12 @@ + + + + + + diff --git a/platforms/mtk/LEScan/res/values/dimens.xml b/platforms/mtk/LEScan/res/values/dimens.xml new file mode 100644 index 000000000..55c1e5908 --- /dev/null +++ b/platforms/mtk/LEScan/res/values/dimens.xml @@ -0,0 +1,7 @@ + + + + 16dp + 16dp + + diff --git a/platforms/mtk/LEScan/res/values/strings.xml b/platforms/mtk/LEScan/res/values/strings.xml new file mode 100644 index 000000000..64f0f00e6 --- /dev/null +++ b/platforms/mtk/LEScan/res/values/strings.xml @@ -0,0 +1,8 @@ + + + + LE Scan + Settings + Hello world! + + diff --git a/platforms/mtk/LEScan/res/values/styles.xml b/platforms/mtk/LEScan/res/values/styles.xml new file mode 100644 index 000000000..6ce89c7ba --- /dev/null +++ b/platforms/mtk/LEScan/res/values/styles.xml @@ -0,0 +1,20 @@ + + + + + + + + + diff --git a/platforms/mtk/LEScan/src/com/bluekitchen/btstack/SocketConnectionUnix.java b/platforms/mtk/LEScan/src/com/bluekitchen/btstack/SocketConnectionUnix.java new file mode 100644 index 000000000..8310bfe04 --- /dev/null +++ b/platforms/mtk/LEScan/src/com/bluekitchen/btstack/SocketConnectionUnix.java @@ -0,0 +1,103 @@ +package com.bluekitchen.btstack; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +import android.net.LocalSocket; +import android.net.LocalSocketAddress; + +public class SocketConnectionUnix extends SocketConnection { + + private LocalSocket socket; + private String unixSocketName = "/data/btstack/BTstack"; + private InputStream in; + private OutputStream out; + private byte inHeader[] = new byte[6]; + private byte inPayload[] = new byte[2000]; + + public SocketConnectionUnix(){ + socket = null; + } + + /* (non-Javadoc) + * @see com.bluekitchen.btstack.SocketConnection#connect() + */ + @Override + public boolean connect() { + try { + socket = new LocalSocket(); + LocalSocketAddress socketAddress = new LocalSocketAddress(unixSocketName, LocalSocketAddress.Namespace.FILESYSTEM); + socket.connect(socketAddress); + in = socket.getInputStream(); + out = socket.getOutputStream(); + return true; + } catch (IOException e) { + e.printStackTrace(); + return false; + } + } + + /* (non-Javadoc) + * @see com.bluekitchen.btstack.SocketConnection#sendPacket(com.bluekitchen.btstack.Packet) + */ + @Override + public boolean sendPacket(Packet packet) { + + if (out == null) return false; + + try { + System.out.println("Send "); Util.hexdump(packet.getBuffer(), packet.getPayloadLen()); + out.write(headerForPacket(packet)); + out.write(packet.getBuffer()); + out.flush(); + return true; + } catch (IOException e) { + e.printStackTrace(); + return false; + } + } + + /* (non-Javadoc) + * @see com.bluekitchen.btstack.SocketConnection#receivePacket() + */ + @Override + public Packet receivePacket() { + + if (in == null) return null; + + int bytes_read = Util.readExactly(in, inHeader, 0, 6); + if (bytes_read != 6) return null; + + int packetType = Util.readBt16(inHeader, 0); + int channel = Util.readBt16(inHeader, 2); + int len = Util.readBt16(inHeader, 4); + + Util.readExactly(in, inPayload, 0, len); + + Packet packet = new Packet(packetType, channel ,inPayload, len); + return packet; + } + + /* (non-Javadoc) + * @see com.bluekitchen.btstack.SocketConnection#disconnect() + */ + @Override + public void disconnect() { + + if (socket != null){ + try { + socket.close(); + } catch (IOException e) { + } + } + } + + private byte[] headerForPacket(Packet packet) { + byte header[] = new byte[6]; + Util.storeBt16(header, 0, packet.getPacketType()); + Util.storeBt16(header, 2, packet.getChannel()); + Util.storeBt16(header, 4, packet.getBuffer().length); + return header; + } +} diff --git a/platforms/mtk/LEScan/src/com/bluekitchen/lescan/MainActivity.java b/platforms/mtk/LEScan/src/com/bluekitchen/lescan/MainActivity.java new file mode 100644 index 000000000..0852ec384 --- /dev/null +++ b/platforms/mtk/LEScan/src/com/bluekitchen/lescan/MainActivity.java @@ -0,0 +1,730 @@ +package com.bluekitchen.lescan; + +import android.app.Activity; +import android.os.Bundle; +import android.util.Log; +import android.view.Menu; +import android.widget.TextView; + +import com.bluekitchen.btstack.BD_ADDR; +import com.bluekitchen.btstack.BT_UUID; +import com.bluekitchen.btstack.BTstack; +import com.bluekitchen.btstack.GATTCharacteristic; +import com.bluekitchen.btstack.GATTService; +import com.bluekitchen.btstack.Packet; +import com.bluekitchen.btstack.PacketHandler; +import com.bluekitchen.btstack.Util; +import com.bluekitchen.btstack.event.BTstackEventState; +import com.bluekitchen.btstack.event.GAPLEAdvertisingReport; +import com.bluekitchen.btstack.event.GATTCharacteristicQueryResult; +import com.bluekitchen.btstack.event.GATTCharacteristicValueQueryResult; +import com.bluekitchen.btstack.event.GATTNotification; +import com.bluekitchen.btstack.event.GATTQueryComplete; +import com.bluekitchen.btstack.event.GATTServiceQueryResult; +import com.bluekitchen.btstack.event.HCIEventCommandComplete; +import com.bluekitchen.btstack.event.HCIEventDisconnectionComplete; +import com.bluekitchen.btstack.event.HCIEventLEConnectionComplete; + +public class MainActivity extends Activity implements PacketHandler { + + private static final String BTSTACK_TAG = "BTstack"; + + private enum STATE { + w4_btstack_working, w4_scan_result, w4_connected, w4_services_complete, w4_characteristic_complete, w4_characteristic_read + , w4_characteristic_write, w4_acc_service_result, w4_acc_enable_characteristic_result, w4_write_acc_enable_result, w4_acc_client_config_characteristic_result, w4_acc_client_config_result, + w4_acc_data, w4_connected_acc, w4_disconnect, track_rssi, battery_data + }; + + private TextView tv; + private BTstack btstack; + private STATE state; + private int testAddrType; + private BD_ADDR deviceAddr; + private int connectionHandle; + private GATTService testService; + private GATTCharacteristic testCharacteristic; + private int service_count = 0; + private int characteristic_count = 0; + private int test_run_count = 0; + private String onScreenMessage = ""; + + BD_ADDR sensor_tag_addr = new BD_ADDR("1C:BA:8C:20:C7:F6"); + // Accelerometer + private byte[] acc_service_uuid = new byte[] {(byte)0xf0, 0, (byte)0xaa, (byte)0x10, 4, (byte)0x51, (byte)0x40, 0, (byte)0xb0, 0, 0, 0, 0, 0, 0, 0}; + private byte[] acc_chr_client_config_uuid = new byte[] {(byte)0xf0, 0, (byte)0xaa, (byte)0x11, 4, (byte)0x51, (byte)0x40, 0, (byte)0xb0, 0, 0, 0, 0, 0, 0, 0}; + private byte[] acc_chr_enable_uuid = new byte[] {(byte)0xf0, 0, (byte)0xaa, (byte)0x12, 4, (byte)0x51, (byte)0x40, 0, (byte)0xb0, 0, 0, 0, 0, 0, 0, 0}; + private byte[] acc_enable = new byte[] {1}; + private byte acc_notification = 1; + private GATTService accService; + private GATTCharacteristic enableCharacteristic; + private GATTCharacteristic configCharacteristic; + + // Battery + private GATTService batteryService; + private GATTCharacteristic batteryLevelCharacteristic; + //private byte[] battery_service_uuid = new byte[] {0, 0, (byte)0x18, (byte)0x0F, 0, 0, (byte)0x10, 0, (byte)0x80, 0, 0, (byte)0x80, (byte)0x5f, (byte)0x9b, (byte)0x34, (byte)0xfb}; + private byte[] battery_level_chr_uuid = new byte[] {0, 0, (byte)0x2a, (byte)0x1b, 0, 0, (byte)0x10, 0, (byte)0x80, 0, 0, (byte)0x80, (byte)0x5f, (byte)0x9b, (byte)0x34, (byte)0xfb}; + GATTCharacteristicValueQueryResult battery; + private int batteryLevel = 0; + private int counter; + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + tv = new TextView(this); + setContentView(tv); + + test(); + } + + void addMessage(final String message){ + onScreenMessage = onScreenMessage + "\n" + message; + Log.d(BTSTACK_TAG, message); + runOnUiThread(new Runnable(){ + public void run(){ + tv.setText(onScreenMessage); + } + }); + } + + + void addTempMessage(final String message){ + Log.d(BTSTACK_TAG, message); + runOnUiThread(new Runnable(){ + public void run(){ + tv.setText(onScreenMessage +"\n" + message); + } + }); + } + + void clearMessages(){ + onScreenMessage = ""; + runOnUiThread(new Runnable(){ + public void run(){ + tv.setText(onScreenMessage); + } + }); + } + + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + // Inflate the menu; this adds items to the action bar if it is present. + getMenuInflater().inflate(R.menu.main, menu); + return true; + } + + + public void testCharacteristics(Packet packet){ + + switch (state){ + case w4_btstack_working: + if (packet instanceof BTstackEventState){ + BTstackEventState event = (BTstackEventState) packet; + if (event.getState() == 2) { + addMessage("GAPLEScanStart()"); + state = STATE.w4_scan_result; + btstack.GAPLEScanStart(); + } + } + break; + case w4_scan_result: + if (packet instanceof GAPLEAdvertisingReport){ + GAPLEAdvertisingReport report = (GAPLEAdvertisingReport) packet; + testAddrType = report.getAddressType(); + deviceAddr = report.getAddress(); + addMessage(String.format("Adv: type %d, addr %s", testAddrType, deviceAddr)); + addMessage(String.format("Data: %s", Util.asHexdump(report.getData()))); + addMessage("GAPLEScanStop()"); + btstack.GAPLEScanStop(); + addMessage("GAPLEConnect(...)"); + state = STATE.w4_connected; + btstack.GAPLEConnect(testAddrType, deviceAddr); + } + break; + case w4_connected: + if (packet instanceof HCIEventLEConnectionComplete){ + HCIEventLEConnectionComplete event = (HCIEventLEConnectionComplete) packet; + connectionHandle = event.getConnectionHandle(); + addMessage(String.format("Connection complete, status %d, handle %x", event.getStatus(), connectionHandle)); + state = STATE.w4_services_complete; + addMessage("GATTDiscoverPrimaryServices(...)"); + btstack.GATTDiscoverPrimaryServices(connectionHandle); + } + break; + case w4_services_complete: + if (packet instanceof GATTServiceQueryResult){ + GATTServiceQueryResult event = (GATTServiceQueryResult) packet; + if (testService == null){ + addMessage(String.format("First service UUID %s", event.getService().getUUID())); + testService = event.getService(); + } + Log.d(BTSTACK_TAG, "Service: " + event.getService()); + service_count++; + } + if (packet instanceof GATTQueryComplete){ + addMessage(String.format("Service query complete, total %d services", service_count)); + state = STATE.w4_characteristic_complete; + btstack.GATTDiscoverCharacteristicsForService(connectionHandle, testService); + } + break; + + case w4_characteristic_complete: + if (packet instanceof GATTCharacteristicQueryResult){ + GATTCharacteristicQueryResult event = (GATTCharacteristicQueryResult) packet; + if (testCharacteristic == null){ + addMessage(String.format("First characteristic UUID %s", event.getCharacteristic().getUUID())); + testCharacteristic = event.getCharacteristic(); + } + Log.d(BTSTACK_TAG, "Characteristic: " + event.getCharacteristic()); + characteristic_count++; + } + if (packet instanceof GATTQueryComplete){ + addMessage(String.format("Characteristic query complete, total %d characteristics", characteristic_count)); + if (characteristic_count > 0){ + state = STATE.w4_characteristic_read; + btstack.GATTReadValueOfCharacteristic(connectionHandle, testCharacteristic); + } else { + state = STATE.w4_disconnect; + btstack.GAPDisconnect(connectionHandle); + } + } + break; + + case w4_characteristic_read: + if (packet instanceof GATTCharacteristicValueQueryResult){ + addMessage("Read complete"); + Log.d(BTSTACK_TAG, packet.toString()); + state = STATE.w4_characteristic_write; + byte [] data = { 'B', 'T', 's', 't', 'a', 'c', 'k'}; + btstack.GATTWriteValueOfCharacteristic(connectionHandle, testCharacteristic, data.length, data); + } + break; + case w4_characteristic_write: + if (packet instanceof GATTQueryComplete){ + addMessage("Write complete, disconnect now."); + state = STATE.w4_disconnect; + // btstack.GAPDisconnect(testHandle); + } + break; + case w4_disconnect: + if (packet instanceof HCIEventDisconnectionComplete){ + addMessage("Disconnected."); + } + break; + default: + break; + } + } + + public void testAccelerometer(Packet packet){ + switch (state){ + case w4_btstack_working: + if (packet instanceof BTstackEventState){ + BTstackEventState event = (BTstackEventState) packet; + if (event.getState() == 2) { + addMessage("GAPLEScanStart()"); + state = STATE.w4_scan_result; + btstack.GAPLEScanStart(); + } + } + break; + case w4_scan_result: + if (packet instanceof GAPLEAdvertisingReport){ + GAPLEAdvertisingReport report = (GAPLEAdvertisingReport) packet; + testAddrType = report.getAddressType(); + deviceAddr = report.getAddress(); + if (deviceAddr.toString().equalsIgnoreCase(sensor_tag_addr.toString())){ + addMessage(String.format("Adv: type %d, addr %s", testAddrType, deviceAddr)); + addMessage(String.format("Data: %s", Util.asHexdump(report.getData()))); + addMessage("GAPLEScanStop()"); + btstack.GAPLEScanStop(); + addMessage("GAPLEConnect(...)"); + state = STATE.w4_connected_acc; + btstack.GAPLEConnect(testAddrType, deviceAddr); + } + } + break; + + + + case w4_connected_acc: + if (packet instanceof HCIEventLEConnectionComplete){ + HCIEventLEConnectionComplete event = (HCIEventLEConnectionComplete) packet; + connectionHandle = event.getConnectionHandle(); + addMessage(String.format("Connection complete, status %d, handle %x", event.getStatus(), connectionHandle)); + addMessage("Search for ACC service"); + state = STATE.w4_acc_service_result; + byte [] uuid = new byte[16]; + Util.flipX(this.acc_service_uuid, uuid); + btstack.GATTDiscoverPrimaryServicesByUUID128(connectionHandle, new BT_UUID(uuid)); + } + break; + + case w4_acc_service_result: + clearMessages(); + addMessage(String.format("w4_acc_service_result state")); + if (packet instanceof GATTServiceQueryResult){ + GATTServiceQueryResult event = (GATTServiceQueryResult) packet; + addMessage(String.format("ACC service found %s", event.getService().getUUID())); + accService = event.getService(); + break; + } + if (packet instanceof GATTQueryComplete){ + if (accService == null) { + addMessage("No acc service found"); + break; + } + addMessage("ACC Service found, searching for acc enable characteristic"); + state = STATE.w4_acc_enable_characteristic_result; + byte [] uuid = new byte[16]; + Util.flipX(this.acc_chr_enable_uuid, uuid); + btstack.GATTDiscoverCharacteristicsForServiceByUUID128(connectionHandle, accService, new BT_UUID(uuid)); + } + break; + + case w4_acc_enable_characteristic_result: + if (packet instanceof GATTCharacteristicQueryResult){ + GATTCharacteristicQueryResult event = (GATTCharacteristicQueryResult) packet; + enableCharacteristic = event.getCharacteristic(); + addMessage("Enable ACC Characteristic found "); + } + if (packet instanceof GATTQueryComplete){ + if (enableCharacteristic == null) { + addMessage("No acc enable chr found"); + break; + } + addMessage("Write enable acc characteristic"); + state = STATE.w4_write_acc_enable_result; + btstack.GATTWriteValueOfCharacteristic(connectionHandle, enableCharacteristic, 1, this.acc_enable); + } + break; + case w4_write_acc_enable_result: + if (packet instanceof GATTQueryComplete){ + addMessage("Acc enabled,searching for acc client config characteristic"); + byte [] uuid = new byte[16]; + Util.flipX(this.acc_chr_client_config_uuid, uuid); + btstack.GATTDiscoverCharacteristicsForServiceByUUID128(connectionHandle, accService, new BT_UUID(uuid)); + state = STATE.w4_acc_client_config_characteristic_result; + } + break; + + case w4_acc_client_config_characteristic_result: + if (packet instanceof GATTCharacteristicQueryResult){ + GATTCharacteristicQueryResult event = (GATTCharacteristicQueryResult) packet; + configCharacteristic = event.getCharacteristic(); + addMessage("ACC Client Config Characteristic found"); + } + if (packet instanceof GATTQueryComplete){ + if (configCharacteristic == null) { + addMessage("No acc config chr found"); + break; + } + addMessage("Write ACC Client Config Characteristic"); + state = STATE.w4_acc_data; + btstack.GATTWriteClientCharacteristicConfiguration(connectionHandle, configCharacteristic, this.acc_notification); + } + break; + + case w4_acc_data: + if (packet instanceof GATTQueryComplete){ + addMessage("Acc configured for notification"); + break; + } + + if (packet instanceof GATTNotification){ + addTempMessage("Acc Value"); + Log.d(BTSTACK_TAG, packet.toString()); + //state = STATE.w4_btstack_working; + //btstack.GAPDisconnect(connectionHandle); + } + break; + + default: + break; + } + } + + public void testConnectDisconnect(Packet packet){ + if (packet instanceof HCIEventDisconnectionComplete){ + if (state != STATE.w4_disconnect) { + state = STATE.w4_scan_result; + btstack.GAPLEScanStart(); + clearMessages(); + HCIEventDisconnectionComplete event = (HCIEventDisconnectionComplete) packet; + addMessage(String.format("Unexpected disconnect %x. Start scan.", event.getConnectionHandle())); + return; + } + } + + switch (state){ + case w4_btstack_working: + if (packet instanceof BTstackEventState){ + BTstackEventState event = (BTstackEventState) packet; + if (event.getState() == 2) { +// addMessage("GAPLEScanStart()"); +// state = STATE.w4_scan_result; + // btstack.GAPLEScanStart(); +// runOnUiThread(new Runnable(){ +// public void run(){ + addMessage("BTstack dissconnect."); + btstack.disconnect(); + +// runOnUiThread(new Runnable(){ +// public void run(){ + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + btstack.connect(); + addMessage("Power on BTstack."); + state = STATE.w4_btstack_working; + test_run_count = 0; + btstack.BTstackSetPowerMode(1); +// } +// }); + } + } + break; + case w4_scan_result: + if (packet instanceof GAPLEAdvertisingReport){ + BD_ADDR sensor_tag_addr = new BD_ADDR("1C:BA:8C:20:C7:F6"); + //BD_ADDR pts_dongle = new BD_ADDR("00:1B:DC:07:32:EF"); + + GAPLEAdvertisingReport report = (GAPLEAdvertisingReport) packet; + BD_ADDR reportAddr = report.getAddress(); + if (reportAddr.toString().equalsIgnoreCase(sensor_tag_addr.toString())){ + testAddrType = report.getAddressType(); + deviceAddr = report.getAddress(); + addMessage(String.format("Adv: type %d, addr %s", testAddrType, deviceAddr)); + addMessage(String.format("Data: %s", Util.asHexdump(report.getData()))); + + addMessage("GAPLEScanStop()"); + btstack.GAPLEScanStop(); + addMessage("GAPLEConnect(...)"); + state = STATE.w4_connected; + + btstack.GAPLEConnect(testAddrType, deviceAddr); + } + } + break; + case w4_connected: + if (packet instanceof HCIEventLEConnectionComplete){ + HCIEventLEConnectionComplete event = (HCIEventLEConnectionComplete) packet; + + connectionHandle = event.getConnectionHandle(); + addMessage(String.format("Connection complete, status %d, handle %x", event.getStatus(), connectionHandle)); + state = STATE.w4_services_complete; + addMessage("GATTDiscoverPrimaryServices(...)"); + btstack.GATTDiscoverPrimaryServices(connectionHandle); + + } + break; + case w4_services_complete: + if (packet instanceof GATTServiceQueryResult){ + GATTServiceQueryResult event = (GATTServiceQueryResult) packet; + if (testService == null){ + addMessage(String.format("First service UUID %s", event.getService().getUUID())); + testService = event.getService(); + } + Log.d(BTSTACK_TAG, "Service: " + event.getService()); + service_count++; + } + if (packet instanceof GATTQueryComplete){ + addMessage(String.format("Service query complete, total %d services", service_count)); + state = STATE.w4_disconnect; + test_run_count++; + btstack.GAPDisconnect(connectionHandle); + } + break; + case w4_disconnect: + Log.d(BTSTACK_TAG, packet.toString()); + if (packet instanceof HCIEventDisconnectionComplete){ + clearMessages(); + addMessage("BTstack dissconnect."); + btstack.disconnect(); + try { + Thread.sleep(15000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + btstack.connect(); + addMessage("Power on BTstack."); + state = STATE.w4_btstack_working; + test_run_count = 0; + btstack.BTstackSetPowerMode(1); + + + /*if (test_run_count%10 == 0){ + addMessage("Power off BTstack."); + state = STATE.w4_btstack_working; + btstack.BTstackSetPowerMode(0); + try { + Thread.sleep(15000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + addMessage("Power on BTstack."); + btstack.BTstackSetPowerMode(1); + } else { + addMessage("GAPLEScanStart()"); + state = STATE.w4_scan_result; + btstack.GAPLEScanStart(); + }*/ + } + break; + default: + break; + } + } + + public void trackRSSI(Packet packet){ + switch (state){ + case w4_btstack_working: + if (packet instanceof BTstackEventState){ + BTstackEventState event = (BTstackEventState) packet; + if (event.getState() == 2) { + addMessage("GAPLEScanStart()"); + state = STATE.w4_scan_result; + btstack.GAPLEScanStart(); + } + } + break; + case w4_scan_result: + if (packet instanceof GAPLEAdvertisingReport){ + clearMessages(); + GAPLEAdvertisingReport report = (GAPLEAdvertisingReport) packet; + testAddrType = report.getAddressType(); + deviceAddr = report.getAddress(); + addMessage(String.format("Adv: type %d, addr %s", testAddrType, deviceAddr)); + addMessage(String.format("Data: %s", Util.asHexdump(report.getData()))); + addMessage("GAPLEScanStop()"); + btstack.GAPLEScanStop(); + addMessage("GAPLEConnect(...)"); + state = STATE.w4_connected; + btstack.GAPLEConnect(testAddrType, deviceAddr); + } + break; + case w4_connected: + if (packet instanceof HCIEventLEConnectionComplete){ + HCIEventLEConnectionComplete event = (HCIEventLEConnectionComplete) packet; + if (event.getStatus() != 0) { + addMessage(String.format("Connection didn't succeed, status %d, restart scanning.", event.getStatus())); + state = STATE.w4_scan_result; + btstack.GAPLEScanStart(); + break; + } + + state = STATE.track_rssi; + connectionHandle = event.getConnectionHandle(); + addMessage(String.format("Connection complete, status %d, handle %x. Start RSSI query.", event.getStatus(), connectionHandle)); + counter = 0; + new Thread(new Runnable(){ + @Override + public void run() { + try { + while(state == STATE.track_rssi){ + Thread.sleep(1000); + btstack.HCIReadRssi(connectionHandle); + } + } catch (InterruptedException e) {} + } + }).start(); + } + break; + case track_rssi: + if (packet instanceof HCIEventDisconnectionComplete){ + clearMessages(); + addMessage(String.format("Received dissconnect. Start scannning.")); + state = STATE.w4_scan_result; + btstack.GAPLEScanStart(); + break; + } + + if (!(packet instanceof HCIEventCommandComplete)) break; + HCIEventCommandComplete event = (HCIEventCommandComplete) packet; + int opcode = event.getCommandOpcode(); + if (opcode != 0X1405) break; + counter = counter + 1; + byte data[] = event.getReturnParameters(); + addTempMessage(String.format("counter %d, status %d, RSSI: %ddBm", counter, Util.readByte(data, 0), data[3])); + break; + + default: + break; + } + } + + public void queryBatteryLevel(Packet packet){ + // Restart scanning on disconnect. + if (packet instanceof HCIEventDisconnectionComplete){ + clearMessages(); + addMessage(String.format("Received dissconnect. Start scannning.")); + state = STATE.w4_scan_result; + btstack.GAPLEScanStart(); + return; + } + + switch (state){ + case w4_btstack_working: + if (packet instanceof BTstackEventState){ + BTstackEventState event = (BTstackEventState) packet; + if (event.getState() == 2) { + addMessage("BTstack working, start scanning."); + state = STATE.w4_scan_result; + btstack.GAPLEScanStart(); + } + } + break; + case w4_scan_result: + if (packet instanceof GAPLEAdvertisingReport){ + // Advertisement received. Connect to the found BT address. + clearMessages(); + GAPLEAdvertisingReport report = (GAPLEAdvertisingReport) packet; + testAddrType = report.getAddressType(); + deviceAddr = report.getAddress(); + addMessage(String.format("Adv: type %d, addr %s\ndata: %s \n Stop scan, initiate connect.", testAddrType, deviceAddr, Util.asHexdump(report.getData()))); + btstack.GAPLEScanStop(); + state = STATE.w4_connected; + btstack.GAPLEConnect(testAddrType, deviceAddr); + } + break; + case w4_connected: + if (packet instanceof HCIEventLEConnectionComplete){ + HCIEventLEConnectionComplete event = (HCIEventLEConnectionComplete) packet; + if (event.getStatus() != 0) { + addMessage(String.format("Connection didn't succeed, status %d, restart scanning.", event.getStatus())); + state = STATE.w4_scan_result; + btstack.GAPLEScanStart(); + break; + } + + // Query battery service. + state = STATE.w4_services_complete; + connectionHandle = event.getConnectionHandle(); + addMessage(String.format("Connection complete, status %d, handle %x.\nQuery battery service.", event.getStatus(), connectionHandle)); + + //btstack.GATTDiscoverPrimaryServicesByUUID128(connectionHandle, uuid128(this.battery_service_uuid)); + btstack.GATTDiscoverPrimaryServicesByUUID16(connectionHandle, 0x180f); + } + break; + + case w4_services_complete: + if (packet instanceof GATTServiceQueryResult){ + // Store battery service. Wait for GATTQueryComplete event to send next GATT command. + GATTServiceQueryResult event = (GATTServiceQueryResult) packet; + addMessage(String.format("Battery service found %s", event.getService().getUUID())); + batteryService = event.getService(); + break; + } + if (packet instanceof GATTQueryComplete){ + // Check if battery service is found. + if (batteryService == null) { + addMessage("No battery service found, restart scanning."); + state = STATE.w4_scan_result; + btstack.GAPLEScanStart(); + break; + } + addMessage("Battery service is found. Query battery level."); + state = STATE.w4_characteristic_complete; + btstack.GATTDiscoverCharacteristicsForServiceByUUID128(connectionHandle, batteryService, uuid128(this.battery_level_chr_uuid)); + } + break; + case w4_characteristic_complete: + if (packet instanceof GATTCharacteristicQueryResult){ + // Store battery level characteristic. Wait for GATTQueryComplete event to send next GATT command. + GATTCharacteristicQueryResult event = (GATTCharacteristicQueryResult) packet; + batteryLevelCharacteristic = event.getCharacteristic(); + addMessage("Battery level characteristic found."); + break; + } + + if (!(packet instanceof GATTQueryComplete)) break; + if (batteryLevelCharacteristic == null) { + addMessage("No battery level characteristic found"); + break; + } + clearMessages(); + addMessage("Polling battery."); + counter = 0; + state = STATE.battery_data; + new Thread(new Runnable(){ + @Override + public void run() { + try { + while(state == STATE.battery_data){ + Thread.sleep(5000); + btstack.GATTReadValueOfCharacteristic(connectionHandle, batteryLevelCharacteristic); + } + } catch (InterruptedException e) {} + } + }).start(); + break; + + case battery_data: + clearMessages(); + if (packet instanceof GATTCharacteristicValueQueryResult){ + GATTCharacteristicValueQueryResult battery = (GATTCharacteristicValueQueryResult) packet; + + if (battery.getValueLength() < 1) break; + this.batteryLevel = battery.getValue()[0]; + addTempMessage(String.format("Counter %d, battery level: %d", counter, batteryLevel) + "%"); + counter = counter + 1; + break; + + } + if (packet instanceof GATTQueryComplete){ + GATTQueryComplete event = (GATTQueryComplete) packet; + addMessage(String.format("Counter %d, battery level: %d", counter, batteryLevel) + "%"); + if (event.getStatus() != 0){ + addMessage("Battery data could not be read - status 0x%02x. Restart scanning." + String.valueOf(event.getStatus())); + state = STATE.w4_scan_result; + btstack.GAPLEScanStart(); + break; + } + } + + break; + default: + break; + } + } + + private BT_UUID uuid128(byte[] att_uuid) { + byte [] uuid = new byte[16]; + Util.flipX(att_uuid, uuid); + return new BT_UUID(uuid); + } + + public void handlePacket(Packet packet){ + // queryBatteryLevel(packet); + // trackRSSI(packet); + // testCharacteristics(packet); + // testAccelerometer(packet); + testConnectDisconnect(packet); + } + + void test(){ + counter = 0; + addMessage("LE Test Application"); + + btstack = new BTstack(); + btstack.registerPacketHandler(this); + + boolean ok = btstack.connect(); + if (!ok) { + addMessage("Failed to connect to BTstack Server"); + return; + } + + addMessage("BTstackSetPowerMode(1)"); + + state = STATE.w4_btstack_working; + btstack.BTstackSetPowerMode(1); + } +}