mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-03-24 04:43:36 +00:00
LEScan android project
This commit is contained in:
parent
50400aa45c
commit
8e6a21a25f
12
platforms/mtk/LEScan/.classpath
Normal file
12
platforms/mtk/LEScan/.classpath
Normal file
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
|
||||
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
|
||||
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
|
||||
<classpathentry kind="lib" path="libs/android-support-v4.jar"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="src" path="btstack-gen"/>
|
||||
<classpathentry kind="src" path="btstack-src"/>
|
||||
<classpathentry kind="src" path="gen"/>
|
||||
<classpathentry kind="output" path="bin/classes"/>
|
||||
</classpath>
|
60
platforms/mtk/LEScan/.project
Normal file
60
platforms/mtk/LEScan/.project
Normal file
@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>LEScan</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>com.android.ide.eclipse.adt.ApkBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
<linkedResources>
|
||||
<link>
|
||||
<name>btstack-gen</name>
|
||||
<type>2</type>
|
||||
<locationURI>BTSTACK_JAVA_LOC/gen</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>btstack-src</name>
|
||||
<type>2</type>
|
||||
<locationURI>BTSTACK_JAVA_LOC/src</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>config</name>
|
||||
<type>2</type>
|
||||
<locationURI>virtual:/virtual</locationURI>
|
||||
</link>
|
||||
</linkedResources>
|
||||
<variableList>
|
||||
<variable>
|
||||
<name>BTSTACK_JAVA_LOC</name>
|
||||
<value>file:/Projects/btstack-xcode/btstack/java</value>
|
||||
</variable>
|
||||
<variable>
|
||||
<name>MTK_LOC</name>
|
||||
<value>file:/Projects/btstack-xcode/btstack/platforms/mtk</value>
|
||||
</variable>
|
||||
</variableList>
|
||||
</projectDescription>
|
@ -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
|
27
platforms/mtk/LEScan/AndroidManifest.xml
Normal file
27
platforms/mtk/LEScan/AndroidManifest.xml
Normal file
@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.bluekitchen.lescan"
|
||||
android:versionCode="1"
|
||||
android:versionName="1.0" >
|
||||
|
||||
<uses-sdk
|
||||
android:minSdkVersion="16"
|
||||
android:targetSdkVersion="16" />
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
android:icon="@drawable/ic_launcher"
|
||||
android:label="@string/app_name"
|
||||
android:theme="@style/AppTheme" >
|
||||
<activity
|
||||
android:name="com.bluekitchen.lescan.MainActivity"
|
||||
android:label="@string/app_name" >
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
</application>
|
||||
|
||||
</manifest>
|
27
platforms/mtk/LEScan/bin/AndroidManifest.xml
Normal file
27
platforms/mtk/LEScan/bin/AndroidManifest.xml
Normal file
@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.bluekitchen.lescan"
|
||||
android:versionCode="1"
|
||||
android:versionName="1.0" >
|
||||
|
||||
<uses-sdk
|
||||
android:minSdkVersion="16"
|
||||
android:targetSdkVersion="16" />
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
android:icon="@drawable/ic_launcher"
|
||||
android:label="@string/app_name"
|
||||
android:theme="@style/AppTheme" >
|
||||
<activity
|
||||
android:name="com.bluekitchen.lescan.MainActivity"
|
||||
android:label="@string/app_name" >
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
</application>
|
||||
|
||||
</manifest>
|
@ -0,0 +1,6 @@
|
||||
/** Automatically generated file. DO NOT MODIFY */
|
||||
package com.bluekitchen.lescan;
|
||||
|
||||
public final class BuildConfig {
|
||||
public final static boolean DEBUG = true;
|
||||
}
|
68
platforms/mtk/LEScan/gen/com/bluekitchen/lescan/R.java
Normal file
68
platforms/mtk/LEScan/gen/com/bluekitchen/lescan/R.java
Normal file
@ -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;
|
||||
}
|
||||
}
|
267
platforms/mtk/LEScan/hs_err_pid91618.log
Normal file
267
platforms/mtk/LEScan/hs_err_pid91618.log
Normal file
@ -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
|
||||
|
267
platforms/mtk/LEScan/hs_err_pid91628.log
Normal file
267
platforms/mtk/LEScan/hs_err_pid91628.log
Normal file
@ -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
|
||||
|
BIN
platforms/mtk/LEScan/ic_launcher-web.png
Normal file
BIN
platforms/mtk/LEScan/ic_launcher-web.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 50 KiB |
BIN
platforms/mtk/LEScan/libs/android-support-v4.jar
Normal file
BIN
platforms/mtk/LEScan/libs/android-support-v4.jar
Normal file
Binary file not shown.
20
platforms/mtk/LEScan/proguard-project.txt
Normal file
20
platforms/mtk/LEScan/proguard-project.txt
Normal file
@ -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 *;
|
||||
#}
|
14
platforms/mtk/LEScan/project.properties
Normal file
14
platforms/mtk/LEScan/project.properties
Normal file
@ -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
|
BIN
platforms/mtk/LEScan/res/drawable-hdpi/ic_launcher.png
Normal file
BIN
platforms/mtk/LEScan/res/drawable-hdpi/ic_launcher.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.5 KiB |
BIN
platforms/mtk/LEScan/res/drawable-mdpi/ic_launcher.png
Normal file
BIN
platforms/mtk/LEScan/res/drawable-mdpi/ic_launcher.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.7 KiB |
BIN
platforms/mtk/LEScan/res/drawable-xhdpi/ic_launcher.png
Normal file
BIN
platforms/mtk/LEScan/res/drawable-xhdpi/ic_launcher.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
BIN
platforms/mtk/LEScan/res/drawable-xxhdpi/ic_launcher.png
Normal file
BIN
platforms/mtk/LEScan/res/drawable-xxhdpi/ic_launcher.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 24 KiB |
16
platforms/mtk/LEScan/res/layout/activity_main.xml
Normal file
16
platforms/mtk/LEScan/res/layout/activity_main.xml
Normal file
@ -0,0 +1,16 @@
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingBottom="@dimen/activity_vertical_margin"
|
||||
android:paddingLeft="@dimen/activity_horizontal_margin"
|
||||
android:paddingRight="@dimen/activity_horizontal_margin"
|
||||
android:paddingTop="@dimen/activity_vertical_margin"
|
||||
tools:context=".MainActivity" >
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/hello_world" />
|
||||
|
||||
</RelativeLayout>
|
9
platforms/mtk/LEScan/res/menu/main.xml
Normal file
9
platforms/mtk/LEScan/res/menu/main.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
|
||||
<item
|
||||
android:id="@+id/action_settings"
|
||||
android:orderInCategory="100"
|
||||
android:showAsAction="never"
|
||||
android:title="@string/action_settings"/>
|
||||
|
||||
</menu>
|
8
platforms/mtk/LEScan/res/values-sw600dp/dimens.xml
Normal file
8
platforms/mtk/LEScan/res/values-sw600dp/dimens.xml
Normal file
@ -0,0 +1,8 @@
|
||||
<resources>
|
||||
|
||||
<!--
|
||||
Customize dimensions originally defined in res/values/dimens.xml (such as
|
||||
screen margins) for sw600dp devices (e.g. 7" tablets) here.
|
||||
-->
|
||||
|
||||
</resources>
|
9
platforms/mtk/LEScan/res/values-sw720dp-land/dimens.xml
Normal file
9
platforms/mtk/LEScan/res/values-sw720dp-land/dimens.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<resources>
|
||||
|
||||
<!--
|
||||
Customize dimensions originally defined in res/values/dimens.xml (such as
|
||||
screen margins) for sw720dp devices (e.g. 10" tablets) in landscape here.
|
||||
-->
|
||||
<dimen name="activity_horizontal_margin">128dp</dimen>
|
||||
|
||||
</resources>
|
11
platforms/mtk/LEScan/res/values-v11/styles.xml
Normal file
11
platforms/mtk/LEScan/res/values-v11/styles.xml
Normal file
@ -0,0 +1,11 @@
|
||||
<resources>
|
||||
|
||||
<!--
|
||||
Base application theme for API 11+. This theme completely replaces
|
||||
AppBaseTheme from res/values/styles.xml on API 11+ devices.
|
||||
-->
|
||||
<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
|
||||
<!-- API 11 theme customizations can go here. -->
|
||||
</style>
|
||||
|
||||
</resources>
|
12
platforms/mtk/LEScan/res/values-v14/styles.xml
Normal file
12
platforms/mtk/LEScan/res/values-v14/styles.xml
Normal file
@ -0,0 +1,12 @@
|
||||
<resources>
|
||||
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
<style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">
|
||||
<!-- API 14 theme customizations can go here. -->
|
||||
</style>
|
||||
|
||||
</resources>
|
7
platforms/mtk/LEScan/res/values/dimens.xml
Normal file
7
platforms/mtk/LEScan/res/values/dimens.xml
Normal file
@ -0,0 +1,7 @@
|
||||
<resources>
|
||||
|
||||
<!-- Default screen margins, per the Android Design guidelines. -->
|
||||
<dimen name="activity_horizontal_margin">16dp</dimen>
|
||||
<dimen name="activity_vertical_margin">16dp</dimen>
|
||||
|
||||
</resources>
|
8
platforms/mtk/LEScan/res/values/strings.xml
Normal file
8
platforms/mtk/LEScan/res/values/strings.xml
Normal file
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
<string name="app_name">LE Scan</string>
|
||||
<string name="action_settings">Settings</string>
|
||||
<string name="hello_world">Hello world!</string>
|
||||
|
||||
</resources>
|
20
platforms/mtk/LEScan/res/values/styles.xml
Normal file
20
platforms/mtk/LEScan/res/values/styles.xml
Normal file
@ -0,0 +1,20 @@
|
||||
<resources>
|
||||
|
||||
<!--
|
||||
Base application theme, dependent on API level. This theme is replaced
|
||||
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
|
||||
-->
|
||||
<style name="AppBaseTheme" parent="android:Theme.Light">
|
||||
<!--
|
||||
Theme customizations available in newer API levels can go in
|
||||
res/values-vXX/styles.xml, while customizations related to
|
||||
backward-compatibility can go here.
|
||||
-->
|
||||
</style>
|
||||
|
||||
<!-- Application theme. -->
|
||||
<style name="AppTheme" parent="AppBaseTheme">
|
||||
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
|
||||
</style>
|
||||
|
||||
</resources>
|
@ -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;
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user