motify compile link error

motify compile link error
This commit is contained in:
ant 2016-09-18 09:03:25 +08:00
parent 923914edae
commit 03e74a8e50
5418 changed files with 1367914 additions and 206149 deletions

View file

@ -1,13 +1,13 @@
/**
* Automatically generated file. DO NOT MODIFY
*/
package com.realtek.uartthrough.test;
public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String APPLICATION_ID = "com.realtek.uartthrough.test";
public static final String BUILD_TYPE = "debug";
public static final String FLAVOR = "";
public static final int VERSION_CODE = -1;
public static final String VERSION_NAME = "";
}
/**
* Automatically generated file. DO NOT MODIFY
*/
package com.realtek.uartthrough.test;
public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String APPLICATION_ID = "com.realtek.uartthrough.test";
public static final String BUILD_TYPE = "debug";
public static final String FLAVOR = "";
public static final int VERSION_CODE = -1;
public static final String VERSION_NAME = "";
}

View file

@ -1,13 +1,13 @@
/**
* Automatically generated file. DO NOT MODIFY
*/
package com.realtek.uartthrough;
public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String APPLICATION_ID = "com.realtek.uartthrough";
public static final String BUILD_TYPE = "debug";
public static final String FLAVOR = "";
public static final int VERSION_CODE = 1;
public static final String VERSION_NAME = "";
}
/**
* Automatically generated file. DO NOT MODIFY
*/
package com.realtek.uartthrough;
public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String APPLICATION_ID = "com.realtek.uartthrough";
public static final String BUILD_TYPE = "debug";
public static final String FLAVOR = "";
public static final int VERSION_CODE = 1;
public static final String VERSION_NAME = "";
}

View file

@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet config="main"><source path="D:\temp\android\mdis_discovery\UartThrough1\app\src\androidTest\assets"/></dataSet></merger>

View file

@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet config="main"><source path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\assets"/></dataSet><dataSet config="debug"><source path="D:\temp\android\mdis_discovery\UartThrough1\app\src\debug\assets"/></dataSet></merger>

View file

@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet config="main"><source path="D:\temp\android\mdis_discovery\UartThrough1\app\src\androidTest\res"/><source path="D:\temp\android\mdis_discovery\UartThrough1\app\build\generated\res\rs\androidTest\debug"/><source path="D:\temp\android\mdis_discovery\UartThrough1\app\build\generated\res\generated\androidTest\debug"/></dataSet><mergedItems/></merger>

View file

@ -1,14 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet config="main"><source path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res"><file name="add" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\drawable\add.png" qualifiers="" type="drawable"/><file name="back" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\drawable\back.png" qualifiers="" type="drawable"/><file name="bg_index01" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\drawable\bg_index01.png" qualifiers="" type="drawable"/><file name="bg_index1" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\drawable\bg_index1.png" qualifiers="" type="drawable"/><file name="device" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\drawable\device.png" qualifiers="" type="drawable"/><file name="logo" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\drawable\logo.png" qualifiers="" type="drawable"/><file name="logo1" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\drawable\logo1.png" qualifiers="" type="drawable"/><file name="search" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\drawable\search.png" qualifiers="" type="drawable"/><file name="setting" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\drawable\setting.png" qualifiers="" type="drawable"/><file name="ic_launcher" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\drawable-hdpi\ic_launcher.png" qualifiers="hdpi-v4" type="drawable"/><file name="ic_launcher" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\drawable-mdpi\ic_launcher.png" qualifiers="mdpi-v4" type="drawable"/><file name="ic_launcher" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\drawable-xhdpi\ic_launcher.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ic_launcher" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\drawable-xxhdpi\ic_launcher.png" qualifiers="xxhdpi-v4" type="drawable"/><file name="activity_chat" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\layout\activity_chat.xml" qualifiers="" type="layout"/><file name="activity_main" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\layout\activity_main.xml" qualifiers="" type="layout"/><file name="layout_item" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\layout\layout_item.xml" qualifiers="" type="layout"/><file name="layout_item_setting" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\layout\layout_item_setting.xml" qualifiers="" type="layout"/><file name="setting_serialport" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\layout\setting_serialport.xml" qualifiers="" type="layout"/><file name="chat" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\menu\chat.xml" qualifiers="" type="menu"/><file name="main" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\menu\main.xml" qualifiers="" type="menu"/><file path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\values\dimens.xml" qualifiers=""><dimen name="activity_horizontal_margin">16dp</dimen><dimen name="activity_vertical_margin">16dp</dimen></file><file path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\values\strings.xml" qualifiers=""><string name="title_activity_chat">ChatActivity</string><string name="action_settings">Settings</string><string name="app_name">UartThrough</string><string name="hello_world">Hello world!</string></file><file path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\values\styles.xml" qualifiers=""><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><style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style></file><file path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\values-sw720dp-land\dimens.xml" qualifiers="sw720dp-land-v13"><dimen name="activity_horizontal_margin">128dp</dimen></file><file path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\values-v11\styles.xml" qualifiers="v11"><style name="AppBaseTheme" parent="android:Theme.Holo.Light">
<!-- API 11 theme customizations can go here. -->
</style></file><file path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\values-v14\styles.xml" qualifiers="v14"><style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<!-- API 14 theme customizations can go here. -->
<?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet config="main"><source path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res"><file name="add" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\drawable\add.png" qualifiers="" type="drawable"/><file name="back" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\drawable\back.png" qualifiers="" type="drawable"/><file name="bg_index01" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\drawable\bg_index01.png" qualifiers="" type="drawable"/><file name="bg_index1" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\drawable\bg_index1.png" qualifiers="" type="drawable"/><file name="device" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\drawable\device.png" qualifiers="" type="drawable"/><file name="logo" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\drawable\logo.png" qualifiers="" type="drawable"/><file name="logo1" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\drawable\logo1.png" qualifiers="" type="drawable"/><file name="search" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\drawable\search.png" qualifiers="" type="drawable"/><file name="setting" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\drawable\setting.png" qualifiers="" type="drawable"/><file name="ic_launcher" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\drawable-hdpi\ic_launcher.png" qualifiers="hdpi-v4" type="drawable"/><file name="ic_launcher" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\drawable-mdpi\ic_launcher.png" qualifiers="mdpi-v4" type="drawable"/><file name="ic_launcher" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\drawable-xhdpi\ic_launcher.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ic_launcher" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\drawable-xxhdpi\ic_launcher.png" qualifiers="xxhdpi-v4" type="drawable"/><file name="activity_chat" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\layout\activity_chat.xml" qualifiers="" type="layout"/><file name="activity_main" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\layout\activity_main.xml" qualifiers="" type="layout"/><file name="layout_item" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\layout\layout_item.xml" qualifiers="" type="layout"/><file name="layout_item_setting" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\layout\layout_item_setting.xml" qualifiers="" type="layout"/><file name="setting_serialport" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\layout\setting_serialport.xml" qualifiers="" type="layout"/><file name="chat" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\menu\chat.xml" qualifiers="" type="menu"/><file name="main" path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\menu\main.xml" qualifiers="" type="menu"/><file path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\values\dimens.xml" qualifiers=""><dimen name="activity_horizontal_margin">16dp</dimen><dimen name="activity_vertical_margin">16dp</dimen></file><file path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\values\strings.xml" qualifiers=""><string name="title_activity_chat">ChatActivity</string><string name="action_settings">Settings</string><string name="app_name">UartThrough</string><string name="hello_world">Hello world!</string></file><file path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\values\styles.xml" qualifiers=""><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><style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style></file><file path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\values-sw720dp-land\dimens.xml" qualifiers="sw720dp-land-v13"><dimen name="activity_horizontal_margin">128dp</dimen></file><file path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\values-v11\styles.xml" qualifiers="v11"><style name="AppBaseTheme" parent="android:Theme.Holo.Light">
<!-- API 11 theme customizations can go here. -->
</style></file><file path="D:\temp\android\mdis_discovery\UartThrough1\app\src\main\res\values-v14\styles.xml" qualifiers="v14"><style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<!-- API 14 theme customizations can go here. -->
</style></file></source><source path="D:\temp\android\mdis_discovery\UartThrough1\app\build\generated\res\rs\debug"/><source path="D:\temp\android\mdis_discovery\UartThrough1\app\build\generated\res\generated\debug"/></dataSet><dataSet config="debug"><source path="D:\temp\android\mdis_discovery\UartThrough1\app\src\debug\res"/></dataSet><mergedItems/></merger>

View file

@ -1,16 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.realtek.uartthrough.test">
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" />
<application>
<uses-library android:name="android.test.runner" />
</application>
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.realtek.uartthrough"
android:handleProfiling="false"
android:functionalTest="false"
android:label="Tests for com.realtek.uartthrough"/>
</manifest>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.realtek.uartthrough.test">
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" />
<application>
<uses-library android:name="android.test.runner" />
</application>
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.realtek.uartthrough"
android:handleProfiling="false"
android:functionalTest="false"
android:label="Tests for com.realtek.uartthrough"/>
</manifest>

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- From: file:/D:/temp/android/mdis_discovery/UartThrough1/app/src/main/res/values-sw720dp-land/dimens.xml -->
<eat-comment/>
<dimen name="activity_horizontal_margin">128dp</dimen>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- From: file:/D:/temp/android/mdis_discovery/UartThrough1/app/src/main/res/values-sw720dp-land/dimens.xml -->
<eat-comment/>
<dimen name="activity_horizontal_margin">128dp</dimen>
</resources>

View file

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- From: file:/D:/temp/android/mdis_discovery/UartThrough1/app/src/main/res/values-v11/styles.xml -->
<eat-comment/>
<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
<!-- API 11 theme customizations can go here. -->
</style>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- From: file:/D:/temp/android/mdis_discovery/UartThrough1/app/src/main/res/values-v11/styles.xml -->
<eat-comment/>
<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
<!-- API 11 theme customizations can go here. -->
</style>
</resources>

View file

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- From: file:/D:/temp/android/mdis_discovery/UartThrough1/app/src/main/res/values-v14/styles.xml -->
<eat-comment/>
<style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<!-- API 14 theme customizations can go here. -->
</style>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- From: file:/D:/temp/android/mdis_discovery/UartThrough1/app/src/main/res/values-v14/styles.xml -->
<eat-comment/>
<style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<!-- API 14 theme customizations can go here. -->
</style>
</resources>

View file

@ -1,25 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- From: file:/D:/temp/android/mdis_discovery/UartThrough1/app/src/main/res/values/dimens.xml -->
<eat-comment/>
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
<!-- From: file:/D:/temp/android/mdis_discovery/UartThrough1/app/src/main/res/values/strings.xml -->
<eat-comment/>
<string name="action_settings">Settings</string>
<string name="app_name">UartThrough</string>
<string name="hello_world">Hello world!</string>
<string name="title_activity_chat">ChatActivity</string>
<!-- From: file:/D:/temp/android/mdis_discovery/UartThrough1/app/src/main/res/values/styles.xml -->
<eat-comment/>
<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>
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- From: file:/D:/temp/android/mdis_discovery/UartThrough1/app/src/main/res/values/dimens.xml -->
<eat-comment/>
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
<!-- From: file:/D:/temp/android/mdis_discovery/UartThrough1/app/src/main/res/values/strings.xml -->
<eat-comment/>
<string name="action_settings">Settings</string>
<string name="app_name">UartThrough</string>
<string name="hello_world">Hello world!</string>
<string name="title_activity_chat">ChatActivity</string>
<!-- From: file:/D:/temp/android/mdis_discovery/UartThrough1/app/src/main/res/values/styles.xml -->
<eat-comment/>
<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>
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style>
</resources>

View file

@ -1,75 +1,75 @@
-- Merging decision tree log ---
manifest
ADDED from AndroidManifest.xml:2:1
xmlns:android
ADDED from AndroidManifest.xml:2:11
package
ADDED from AndroidManifest.xml:3:5
INJECTED from AndroidManifest.xml:0:0
INJECTED from AndroidManifest.xml:0:0
android:versionName
ADDED from AndroidManifest.xml:5:5
android:versionCode
ADDED from AndroidManifest.xml:4:5
INJECTED from AndroidManifest.xml:0:0
INJECTED from AndroidManifest.xml:0:0
uses-sdk
ADDED from AndroidManifest.xml:7:5
android:targetSdkVersion
ADDED from AndroidManifest.xml:9:9
INJECTED from AndroidManifest.xml:0:0
INJECTED from AndroidManifest.xml:0:0
android:minSdkVersion
ADDED from AndroidManifest.xml:8:9
INJECTED from AndroidManifest.xml:0:0
INJECTED from AndroidManifest.xml:0:0
uses-permission#android.permission.ACCESS_WIFI_STATE
ADDED from AndroidManifest.xml:11:5
android:required
ADDED from AndroidManifest.xml:13:9
android:name
ADDED from AndroidManifest.xml:12:9
uses-permission#android.permission.CHANGE_WIFI_STATE
ADDED from AndroidManifest.xml:14:5
android:required
ADDED from AndroidManifest.xml:16:9
android:name
ADDED from AndroidManifest.xml:15:9
uses-permission#android.permission.INTERNET
ADDED from AndroidManifest.xml:17:5
android:required
ADDED from AndroidManifest.xml:19:9
android:name
ADDED from AndroidManifest.xml:18:9
application
ADDED from AndroidManifest.xml:21:5
android:label
ADDED from AndroidManifest.xml:24:9
android:allowBackup
ADDED from AndroidManifest.xml:22:9
android:icon
ADDED from AndroidManifest.xml:23:9
android:theme
ADDED from AndroidManifest.xml:25:9
activity#com.realtek.uartthrough.MainActivity
ADDED from AndroidManifest.xml:26:9
android:label
ADDED from AndroidManifest.xml:28:13
android:name
ADDED from AndroidManifest.xml:27:13
intent-filter#android.intent.action.MAIN+android.intent.category.LAUNCHER
ADDED from AndroidManifest.xml:29:13
action#android.intent.action.MAIN
ADDED from AndroidManifest.xml:30:17
android:name
ADDED from AndroidManifest.xml:30:25
category#android.intent.category.LAUNCHER
ADDED from AndroidManifest.xml:32:17
android:name
ADDED from AndroidManifest.xml:32:27
activity#com.realtek.uartthrough.ChatActivity
ADDED from AndroidManifest.xml:35:9
android:label
ADDED from AndroidManifest.xml:37:13
android:name
ADDED from AndroidManifest.xml:36:13
-- Merging decision tree log ---
manifest
ADDED from AndroidManifest.xml:2:1
xmlns:android
ADDED from AndroidManifest.xml:2:11
package
ADDED from AndroidManifest.xml:3:5
INJECTED from AndroidManifest.xml:0:0
INJECTED from AndroidManifest.xml:0:0
android:versionName
ADDED from AndroidManifest.xml:5:5
android:versionCode
ADDED from AndroidManifest.xml:4:5
INJECTED from AndroidManifest.xml:0:0
INJECTED from AndroidManifest.xml:0:0
uses-sdk
ADDED from AndroidManifest.xml:7:5
android:targetSdkVersion
ADDED from AndroidManifest.xml:9:9
INJECTED from AndroidManifest.xml:0:0
INJECTED from AndroidManifest.xml:0:0
android:minSdkVersion
ADDED from AndroidManifest.xml:8:9
INJECTED from AndroidManifest.xml:0:0
INJECTED from AndroidManifest.xml:0:0
uses-permission#android.permission.ACCESS_WIFI_STATE
ADDED from AndroidManifest.xml:11:5
android:required
ADDED from AndroidManifest.xml:13:9
android:name
ADDED from AndroidManifest.xml:12:9
uses-permission#android.permission.CHANGE_WIFI_STATE
ADDED from AndroidManifest.xml:14:5
android:required
ADDED from AndroidManifest.xml:16:9
android:name
ADDED from AndroidManifest.xml:15:9
uses-permission#android.permission.INTERNET
ADDED from AndroidManifest.xml:17:5
android:required
ADDED from AndroidManifest.xml:19:9
android:name
ADDED from AndroidManifest.xml:18:9
application
ADDED from AndroidManifest.xml:21:5
android:label
ADDED from AndroidManifest.xml:24:9
android:allowBackup
ADDED from AndroidManifest.xml:22:9
android:icon
ADDED from AndroidManifest.xml:23:9
android:theme
ADDED from AndroidManifest.xml:25:9
activity#com.realtek.uartthrough.MainActivity
ADDED from AndroidManifest.xml:26:9
android:label
ADDED from AndroidManifest.xml:28:13
android:name
ADDED from AndroidManifest.xml:27:13
intent-filter#android.intent.action.MAIN+android.intent.category.LAUNCHER
ADDED from AndroidManifest.xml:29:13
action#android.intent.action.MAIN
ADDED from AndroidManifest.xml:30:17
android:name
ADDED from AndroidManifest.xml:30:25
category#android.intent.category.LAUNCHER
ADDED from AndroidManifest.xml:32:17
android:name
ADDED from AndroidManifest.xml:32:27
activity#com.realtek.uartthrough.ChatActivity
ADDED from AndroidManifest.xml:35:9
android:label
ADDED from AndroidManifest.xml:37:13
android:name
ADDED from AndroidManifest.xml:36:13

View file

@ -1,294 +1,294 @@
package com.realtek.uartthrough;
import android.net.nsd.NsdServiceInfo;
import android.util.Log;
import java.net.InetAddress;
import java.nio.ByteBuffer;
import java.util.Arrays;
import java.util.Objects;
import java.util.Vector;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public class Globals_ctrl {
private static Globals_ctrl thisGlobal;
private static String infoDisplay = "";
private static final String mServiceName = "AMEBA";
private static final String TAG = "Globals_ctrl";
private static final String mServiceType = "_uart_control._tcp";
private static String successRec = "";
private static String sensorReadings = "";
private static Vector<NsdServiceInfo> deviceList = new Vector<NsdServiceInfo>();
private static InetAddress connIP = null;
private static int connPort=0;
private static String cmd="continue";
private static ByteBuffer tx = ByteBuffer.allocate(32);
private static byte[] recvBuffer = new byte[64];
private final Lock _mutex_recvBuf = new ReentrantLock(true);
private static OpStates os = OpStates.getInstance();
public Globals_ctrl(){}
public void resetRecvBuffer(){
Arrays.fill( recvBuffer, (byte) 0 );
}
public boolean checkRecvBufUpdate(){
if(recvBuffer.length>0)
return true;
else
return false;
}
public void commitRecvBuffer(byte[] info, int len){
_mutex_recvBuf.lock();
resetRecvBuffer();
System.arraycopy(info, 0, recvBuffer, 0, len);
_mutex_recvBuf.unlock();
}
public String pullRecvBuffer(){
if(recvBuffer[0]<=0){
return "";
}else{
_mutex_recvBuf.lock();
byte [] res = new byte[recvBuffer.length];
System.arraycopy(recvBuffer, 0, res, 0, recvBuffer.length);
_mutex_recvBuf.unlock();
String controlInfo = parseRecvBuf(res);
return controlInfo;
}
}
private String parseRecvBuf(byte[] res) {
String result = "";
//check prefix
if(checkPrefix(res)){
int readbit = 10;
//-------- response for setting --------
if( convertirOctetEnEntier(res[readbit])==1 ){
result = "ok";
//-------- response for getting --------
}else if( convertirOctetEnEntier(res[readbit])==3 ){
readbit++;
int type = -1;
String str_len = "";
String str_HexValue = "";
do{
type = convertirOctetEnEntier(res[readbit]);
str_HexValue = Integer.toHexString(type);
if( type==1 ){//baudrate
result += "baudrate,";readbit++;
str_len = Integer.toHexString(convertirOctetEnEntier(res[readbit]));
int len = Integer.valueOf(str_len).intValue();
readbit++;
int bit = 0;
int v_rate = 0;
int tmp = 0;
for(int b=readbit;b<readbit+len;b++){
tmp = (res[b] & 0xFF) << (8*bit);
v_rate = v_rate + tmp ;
bit++;
}
result = result + String.valueOf(v_rate) + ";";readbit+=len;
}else if( type==2 ){//data
result += "data,";readbit++;
str_len = Integer.toHexString(convertirOctetEnEntier(res[readbit])) + ",";
readbit++;
result = result + Integer.toHexString(convertirOctetEnEntier(res[readbit])) + ";";readbit++;
}else if( type==4 ){//parity
result += "parity,";readbit++;
str_len = Integer.toHexString(convertirOctetEnEntier(res[readbit])) + ",";
readbit++;
result = result + Integer.toHexString(convertirOctetEnEntier(res[readbit])) + ";";readbit++;
}else if( type==8 ){//stopbit
result += "stopbit,";readbit++;
str_len = Integer.toHexString(convertirOctetEnEntier(res[readbit])) + ",";
readbit++;
result = result + Integer.toHexString(convertirOctetEnEntier(res[readbit])) + ";";readbit++;
}else if( type==16 ){//flowcontrol
result += "flowcontrol,";readbit++;
str_len = Integer.toHexString(convertirOctetEnEntier(res[readbit])) + ",";
readbit++;
result = result + Integer.toHexString(convertirOctetEnEntier(res[readbit])) + ";";readbit++;
}else
readbit++;
}while(readbit<recvBuffer.length );
}
}else{
Log.e(TAG,"prefix error!!!");
}
return result;
}
private boolean checkPrefix(byte[] recvBuf) {
if("41".equals(String.format("0x%20x", recvBuf[0])) )
return false;
if("4D".equals(String.format("0x%20x", recvBuf[1])) )
return false;
if("45".equals(String.format("0x%20x", recvBuf[2])))
return false;
if("42".equals(String.format("0x%20x", recvBuf[3])))
return false;
if("41".equals(String.format("0x%20x", recvBuf[4])))
return false;
if("5F".equals(String.format("0x%20x", recvBuf[5])))
return false;
if("55".equals(String.format("0x%20x", recvBuf[6])))
return false;
if("41".equals(String.format("0x%20x", recvBuf[7])))
return false;
if("52".equals(String.format("0x%20x", recvBuf[8])))
return false;
if("54".equals(String.format("0x%20x", recvBuf[9])))
return false;
return true;
}
public String byte2bits(byte b) {
int z = b; z |= 256;
String str = Integer.toBinaryString(z);
int len = str.length();
return str.substring(len-8, len);
}
public int convertirOctetEnEntier(byte b){
int MASK = 0xFF;
int result = 0;
result = b & MASK;
return result;
}
public int byteArrayToInt(byte[] bytes) {
int value= 0;
for (int i = 0; i < 4; i++) {
int shift= (4 - 1 - i) * 8;
value +=(bytes[i] & 0x000000FF) << shift;
}
return value;
}
public void addInfo(String str){
infoDisplay+=(str+"\n");
}
public String getInfo(){
return infoDisplay;
}
public void resetInfo(){
infoDisplay="";
}
public String getServiceName(){
return mServiceName;
}
public String getServiceType(){
return mServiceType;
}
public String getSuccessRec(){
return successRec;
}
public void setSuccessRec(String str){
successRec=str;
}
public void setConnIP(InetAddress address){
connIP = address;
}
public InetAddress getConnIP(){
return connIP;
}
public void setConnPort(int p){
connPort=p;
}
public int getConnPort(){
return connPort;
}
public void setTx(byte bytes[]){
tx.put(bytes);
}
public byte[] getTx(){
return tx.array();
}
public void clearTx(){ tx.clear();}
public void clearCmd(){
cmd="";
}
public void setCmd(String str){
cmd=str;
}
public String getCmd(){
return cmd;
}
public void clearDeviceList(){
deviceList.clear();
}
public Vector<NsdServiceInfo> getDeviceList(){
return deviceList;
}
public void addSensorReading(String reading){
sensorReadings = sensorReadings + reading;
}
public OpStates opStates(){
return os;
}
public static synchronized Globals_ctrl getInstance(){
if(thisGlobal==null){
thisGlobal = new Globals_ctrl();
}
return thisGlobal;
}
}
package com.realtek.uartthrough;
import android.net.nsd.NsdServiceInfo;
import android.util.Log;
import java.net.InetAddress;
import java.nio.ByteBuffer;
import java.util.Arrays;
import java.util.Objects;
import java.util.Vector;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public class Globals_ctrl {
private static Globals_ctrl thisGlobal;
private static String infoDisplay = "";
private static final String mServiceName = "AMEBA";
private static final String TAG = "Globals_ctrl";
private static final String mServiceType = "_uart_control._tcp";
private static String successRec = "";
private static String sensorReadings = "";
private static Vector<NsdServiceInfo> deviceList = new Vector<NsdServiceInfo>();
private static InetAddress connIP = null;
private static int connPort=0;
private static String cmd="continue";
private static ByteBuffer tx = ByteBuffer.allocate(32);
private static byte[] recvBuffer = new byte[64];
private final Lock _mutex_recvBuf = new ReentrantLock(true);
private static OpStates os = OpStates.getInstance();
public Globals_ctrl(){}
public void resetRecvBuffer(){
Arrays.fill( recvBuffer, (byte) 0 );
}
public boolean checkRecvBufUpdate(){
if(recvBuffer.length>0)
return true;
else
return false;
}
public void commitRecvBuffer(byte[] info, int len){
_mutex_recvBuf.lock();
resetRecvBuffer();
System.arraycopy(info, 0, recvBuffer, 0, len);
_mutex_recvBuf.unlock();
}
public String pullRecvBuffer(){
if(recvBuffer[0]<=0){
return "";
}else{
_mutex_recvBuf.lock();
byte [] res = new byte[recvBuffer.length];
System.arraycopy(recvBuffer, 0, res, 0, recvBuffer.length);
_mutex_recvBuf.unlock();
String controlInfo = parseRecvBuf(res);
return controlInfo;
}
}
private String parseRecvBuf(byte[] res) {
String result = "";
//check prefix
if(checkPrefix(res)){
int readbit = 10;
//-------- response for setting --------
if( convertirOctetEnEntier(res[readbit])==1 ){
result = "ok";
//-------- response for getting --------
}else if( convertirOctetEnEntier(res[readbit])==3 ){
readbit++;
int type = -1;
String str_len = "";
String str_HexValue = "";
do{
type = convertirOctetEnEntier(res[readbit]);
str_HexValue = Integer.toHexString(type);
if( type==1 ){//baudrate
result += "baudrate,";readbit++;
str_len = Integer.toHexString(convertirOctetEnEntier(res[readbit]));
int len = Integer.valueOf(str_len).intValue();
readbit++;
int bit = 0;
int v_rate = 0;
int tmp = 0;
for(int b=readbit;b<readbit+len;b++){
tmp = (res[b] & 0xFF) << (8*bit);
v_rate = v_rate + tmp ;
bit++;
}
result = result + String.valueOf(v_rate) + ";";readbit+=len;
}else if( type==2 ){//data
result += "data,";readbit++;
str_len = Integer.toHexString(convertirOctetEnEntier(res[readbit])) + ",";
readbit++;
result = result + Integer.toHexString(convertirOctetEnEntier(res[readbit])) + ";";readbit++;
}else if( type==4 ){//parity
result += "parity,";readbit++;
str_len = Integer.toHexString(convertirOctetEnEntier(res[readbit])) + ",";
readbit++;
result = result + Integer.toHexString(convertirOctetEnEntier(res[readbit])) + ";";readbit++;
}else if( type==8 ){//stopbit
result += "stopbit,";readbit++;
str_len = Integer.toHexString(convertirOctetEnEntier(res[readbit])) + ",";
readbit++;
result = result + Integer.toHexString(convertirOctetEnEntier(res[readbit])) + ";";readbit++;
}else if( type==16 ){//flowcontrol
result += "flowcontrol,";readbit++;
str_len = Integer.toHexString(convertirOctetEnEntier(res[readbit])) + ",";
readbit++;
result = result + Integer.toHexString(convertirOctetEnEntier(res[readbit])) + ";";readbit++;
}else
readbit++;
}while(readbit<recvBuffer.length );
}
}else{
Log.e(TAG,"prefix error!!!");
}
return result;
}
private boolean checkPrefix(byte[] recvBuf) {
if("41".equals(String.format("0x%20x", recvBuf[0])) )
return false;
if("4D".equals(String.format("0x%20x", recvBuf[1])) )
return false;
if("45".equals(String.format("0x%20x", recvBuf[2])))
return false;
if("42".equals(String.format("0x%20x", recvBuf[3])))
return false;
if("41".equals(String.format("0x%20x", recvBuf[4])))
return false;
if("5F".equals(String.format("0x%20x", recvBuf[5])))
return false;
if("55".equals(String.format("0x%20x", recvBuf[6])))
return false;
if("41".equals(String.format("0x%20x", recvBuf[7])))
return false;
if("52".equals(String.format("0x%20x", recvBuf[8])))
return false;
if("54".equals(String.format("0x%20x", recvBuf[9])))
return false;
return true;
}
public String byte2bits(byte b) {
int z = b; z |= 256;
String str = Integer.toBinaryString(z);
int len = str.length();
return str.substring(len-8, len);
}
public int convertirOctetEnEntier(byte b){
int MASK = 0xFF;
int result = 0;
result = b & MASK;
return result;
}
public int byteArrayToInt(byte[] bytes) {
int value= 0;
for (int i = 0; i < 4; i++) {
int shift= (4 - 1 - i) * 8;
value +=(bytes[i] & 0x000000FF) << shift;
}
return value;
}
public void addInfo(String str){
infoDisplay+=(str+"\n");
}
public String getInfo(){
return infoDisplay;
}
public void resetInfo(){
infoDisplay="";
}
public String getServiceName(){
return mServiceName;
}
public String getServiceType(){
return mServiceType;
}
public String getSuccessRec(){
return successRec;
}
public void setSuccessRec(String str){
successRec=str;
}
public void setConnIP(InetAddress address){
connIP = address;
}
public InetAddress getConnIP(){
return connIP;
}
public void setConnPort(int p){
connPort=p;
}
public int getConnPort(){
return connPort;
}
public void setTx(byte bytes[]){
tx.put(bytes);
}
public byte[] getTx(){
return tx.array();
}
public void clearTx(){ tx.clear();}
public void clearCmd(){
cmd="";
}
public void setCmd(String str){
cmd=str;
}
public String getCmd(){
return cmd;
}
public void clearDeviceList(){
deviceList.clear();
}
public Vector<NsdServiceInfo> getDeviceList(){
return deviceList;
}
public void addSensorReading(String reading){
sensorReadings = sensorReadings + reading;
}
public OpStates opStates(){
return os;
}
public static synchronized Globals_ctrl getInstance(){
if(thisGlobal==null){
thisGlobal = new Globals_ctrl();
}
return thisGlobal;
}
}

View file

@ -1,136 +1,136 @@
package com.realtek.uartthrough;
import android.net.nsd.NsdServiceInfo;
import java.net.InetAddress;
import java.util.Vector;
public class Globals_d {
private static Globals_d thisGlobal;
private static String infoDisplay_d = "";
private static boolean readable = false;
private static final String mServiceName = "AMEBA";
private static final String mServiceType = "_uart_data._tcp";
private static String successRec = "";
private static String sensorReadings = "";
private static Vector<NsdServiceInfo> deviceList = new Vector<NsdServiceInfo>();
private static InetAddress connIP = null;
private static int connPort=0;
private static String cmd="continue";
private static String tx="";
private static OpStates os = OpStates.getInstance();
public Globals_d(){}
public boolean isReadable(){
return readable;
}
public void setReadable(boolean val){
readable = val;
}
public void addInfo(String str){
infoDisplay_d+=(str);
}
public String getInfo(){
return infoDisplay_d;
}
public void resetInfo(){
infoDisplay_d="";
}
public String getServiceName(){
return mServiceName;
}
public String getServiceType(){
return mServiceType;
}
public String getSuccessRec(){
return successRec;
}
public void setSuccessRec(String str){
successRec=str;
}
public void setConnIP(InetAddress address){
connIP = address;
}
public InetAddress getConnIP(){
return connIP;
}
public void setConnPort(int p){
connPort=p;
}
public int getConnPort(){
return connPort;
}
public void setTx(String str){
tx=str;
}
public String getTx(){
return tx;
}
public void clearTx(){
tx="";
}
public void clearCmd(){
cmd="";
}
public void setCmd(String str){
cmd=str;
}
public String getCmd(){
return cmd;
}
public void clearDeviceList(){
deviceList.clear();
}
public Vector<NsdServiceInfo> getDeviceList(){
return deviceList;
}
public void addSensorReading(String reading){
sensorReadings = sensorReadings + reading;
}
public OpStates opStates(){
return os;
}
public static synchronized Globals_d getInstance(){
if(thisGlobal==null){
thisGlobal = new Globals_d();
}
return thisGlobal;
}
}
package com.realtek.uartthrough;
import android.net.nsd.NsdServiceInfo;
import java.net.InetAddress;
import java.util.Vector;
public class Globals_d {
private static Globals_d thisGlobal;
private static String infoDisplay_d = "";
private static boolean readable = false;
private static final String mServiceName = "AMEBA";
private static final String mServiceType = "_uart_data._tcp";
private static String successRec = "";
private static String sensorReadings = "";
private static Vector<NsdServiceInfo> deviceList = new Vector<NsdServiceInfo>();
private static InetAddress connIP = null;
private static int connPort=0;
private static String cmd="continue";
private static String tx="";
private static OpStates os = OpStates.getInstance();
public Globals_d(){}
public boolean isReadable(){
return readable;
}
public void setReadable(boolean val){
readable = val;
}
public void addInfo(String str){
infoDisplay_d+=(str);
}
public String getInfo(){
return infoDisplay_d;
}
public void resetInfo(){
infoDisplay_d="";
}
public String getServiceName(){
return mServiceName;
}
public String getServiceType(){
return mServiceType;
}
public String getSuccessRec(){
return successRec;
}
public void setSuccessRec(String str){
successRec=str;
}
public void setConnIP(InetAddress address){
connIP = address;
}
public InetAddress getConnIP(){
return connIP;
}
public void setConnPort(int p){
connPort=p;
}
public int getConnPort(){
return connPort;
}
public void setTx(String str){
tx=str;
}
public String getTx(){
return tx;
}
public void clearTx(){
tx="";
}
public void clearCmd(){
cmd="";
}
public void setCmd(String str){
cmd=str;
}
public String getCmd(){
return cmd;
}
public void clearDeviceList(){
deviceList.clear();
}
public Vector<NsdServiceInfo> getDeviceList(){
return deviceList;
}
public void addSensorReading(String reading){
sensorReadings = sensorReadings + reading;
}
public OpStates opStates(){
return os;
}
public static synchronized Globals_d getInstance(){
if(thisGlobal==null){
thisGlobal = new Globals_d();
}
return thisGlobal;
}
}

View file

@ -1,237 +1,237 @@
package com.realtek.uartthrough;
import android.annotation.SuppressLint;
import android.content.Context;
import android.net.nsd.NsdManager;
import android.net.nsd.NsdServiceInfo;
import android.util.Log;
import java.lang.*;
public class NsdCore {
Globals_ctrl g_ctrl = Globals_ctrl.getInstance();
Globals_d g_d = Globals_d.getInstance();
Context mContext;
NsdManager mNsdManager;
NsdManager.ResolveListener mResolveListener;
NsdManager.DiscoveryListener mDiscoveryListener;
NsdManager.RegistrationListener mRegistrationListener;
public static final String TAG = "NsdCore";
public final String mServiceType_c = g_ctrl.getServiceType();
public final String mServiceType_d = g_d.getServiceType();
public String mServiceName_c = g_ctrl.getServiceName();
public String mServiceName_d = g_d.getServiceName();
NsdServiceInfo mService;
public NsdCore(Context context) {
mContext = context;
mNsdManager = (NsdManager) context.getSystemService(Context.NSD_SERVICE);
}
public void initializeNsd() {
Log.i(TAG, " discovery initializeNsd: " + mServiceType_c +" & "+mServiceType_d);
initializeDiscoveryListener();
initializeResolveListener();
initializeRegistrationListener();
}
@SuppressLint("NewApi")
public void initializeDiscoveryListener() {
mDiscoveryListener = new NsdManager.DiscoveryListener() {
@Override
public void onDiscoveryStarted(String regType) {
Log.i(TAG, "Service discovery started");
g_ctrl.addInfo(TAG+" "+regType+" g_ctrl Service Discovering\n");
g_d.addInfo(TAG+" "+regType+" g_d Service Discovering\n");
}
@Override
public void onServiceFound(NsdServiceInfo service) {
g_ctrl.addInfo(TAG+"Service discovery success\n " + service);
g_d.addInfo(TAG+"Service Discovery Success\n " + service);
Log.i(TAG, "Service discovery success " + service);
if (service.getServiceType().contains(mServiceType_c)) {
if (service.getServiceName().contains(mServiceName_c)){
g_ctrl.addInfo(TAG+ "Resolving service... \n");
Log.i(TAG, "G_c Resolving service... ");
mNsdManager.resolveService(service, mResolveListener);
}
}else{
g_ctrl.addInfo(TAG+ "Unknown Service Type: " + service.getServiceType());
Log.e(TAG, "G Unknown Service Type: " + service.getServiceType() );
}
if (service.getServiceType().contains(mServiceType_d)) {
if (service.getServiceName().contains(mServiceName_d)) {
g_d.addInfo(TAG + "Resolving service... \n");
Log.i(TAG, "G_d Resolving service... ");
mNsdManager.resolveService(service, mResolveListener);
}
}else{
g_d.addInfo(TAG+ "Unknown Service Type: " + service.getServiceType());
Log.e(TAG, "G_d Unknown Service Type: " + service.getServiceType());
}
}
@Override
public void onServiceLost(NsdServiceInfo service) {
g_ctrl.addInfo(TAG+ "service lost\n" + service);
g_d.addInfo(TAG+ "service lost\n" + service);
Log.e(TAG, "service lost" + service);
if (mService == service) {
mService = null;
}
}
@Override
public void onDiscoveryStopped(String serviceType) {
g_ctrl.addInfo(TAG+ "Discovery stopped:\n " + serviceType);
g_d.addInfo(TAG+ "Discovery stopped:\n " + serviceType);
Log.e(TAG, "Discovery stopped: " + serviceType);
}
@Override
public void onStartDiscoveryFailed(String serviceType, int errorCode) {
g_ctrl.addInfo(TAG+"Discovery failed: Error code:\n" + errorCode);
g_d.addInfo(TAG+"Discovery failed: Error code:\n" + errorCode);
Log.e(TAG, "onStartDiscoveryFailed: Error code:" + errorCode);
mNsdManager.stopServiceDiscovery(this);
}
@Override
public void onStopDiscoveryFailed(String serviceType, int errorCode) {
g_ctrl.addInfo(TAG+ "Discovery failed: Error code:\n" + errorCode);
g_d.addInfo(TAG+ "Discovery failed: Error code:\n" + errorCode);
Log.e(TAG, "onStopDiscoveryFailed: Error code:" + errorCode);
mNsdManager.stopServiceDiscovery(this);
}
};
}
@SuppressLint("NewApi")
public void initializeResolveListener() {
mResolveListener = new NsdManager.ResolveListener() {
@SuppressLint("NewApi")
@Override
public void onResolveFailed(NsdServiceInfo serviceInfo, int errorCode) {
g_ctrl.addInfo(TAG+ "Resolve failed\n" + errorCode);
g_d.addInfo(TAG+ "Resolve failed\n" + errorCode);
Log.e(TAG, "Resolve failed: " + errorCode);
Log.e(TAG, "onResolveFailed"+ " " + serviceInfo.getServiceType());
switch (errorCode) {
case NsdManager.FAILURE_ALREADY_ACTIVE:
Log.e(TAG, "FAILURE_ALREADY_ACTIVE");
// Just try again...
try {
Thread.sleep(300);
} catch (Exception e) {
System.out.println(e);
}
mNsdManager.resolveService( serviceInfo, mResolveListener);
break;
case NsdManager.FAILURE_INTERNAL_ERROR:
Log.e(TAG, "FAILURE_INTERNAL_ERROR");
break;
case NsdManager.FAILURE_MAX_LIMIT:
Log.e(TAG, "FAILURE_MAX_LIMIT");
default:
Log.e(TAG,"XXXXXXX onResolveFailed XXXXXXXX");
break;
}
}
@Override
public void onServiceResolved(NsdServiceInfo serviceInfo) {
Log.e(TAG, "onServiceResolved"+ " " + serviceInfo.getServiceType());
mService = serviceInfo;
if (serviceInfo.getServiceType().contains(mServiceType_c)) {
//Log.e(TAG, "G onServiceResolved");
g_ctrl.opStates().setOpState(g_ctrl.opStates().stateResoledService());
g_ctrl.addInfo(TAG + "Resolve Succeeded.\n " + serviceInfo);
g_ctrl.setSuccessRec(TAG + "Resolve Succeeded. " + serviceInfo);
g_ctrl.getDeviceList().add(mService);//TODO check ip before add to list
}else if (serviceInfo.getServiceType().contains(mServiceType_d)) {
//Log.e(TAG, "G_D onServiceResolved");
g_d.opStates().setOpState(g_d.opStates().stateResoledService());
g_d.addInfo(TAG + "Resolve Succeeded. \n" + serviceInfo);
g_d.setSuccessRec(TAG + "Resolve Succeeded. " + serviceInfo);
g_d.getDeviceList().add(mService);//TODO check ip before add to list
}
Log.w(TAG, "Resolve Succeeded. " + serviceInfo);
}
};
}
@SuppressLint("NewApi")
public void initializeRegistrationListener() {
mRegistrationListener = new NsdManager.RegistrationListener() {
@SuppressLint("NewApi")
@Override
public void onServiceRegistered(NsdServiceInfo NsdServiceInfo) {
String serviceName = NsdServiceInfo.getServiceName();
Log.e(TAG,"NsdServiceInfo.getServiceName(): " + NsdServiceInfo.getServiceName());
mServiceName_c = NsdServiceInfo.getServiceName();
mServiceName_d = mServiceName_c;
}
@Override
public void onRegistrationFailed(NsdServiceInfo arg0, int arg1) {
Log.e(TAG, "onRegistrationFailed");
}
@Override
public void onServiceUnregistered(NsdServiceInfo arg0) {
Log.e(TAG, "onServiceUnregistered");
}
@Override
public void onUnregistrationFailed(NsdServiceInfo serviceInfo, int errorCode) {
Log.e(TAG, "onServiceUnregistered: " + serviceInfo.getServiceName() + "/" + errorCode);
}
};
}
@SuppressLint("NewApi")
public void discoverServices(String serviceType) {
Log.d(TAG, "discoverServices " +serviceType+ " start!!");
//mNsdManager.discoverServices(mServiceType, NsdManager.PROTOCOL_DNS_SD, mDiscoveryListener);
mNsdManager.discoverServices(serviceType, NsdManager.PROTOCOL_DNS_SD, mDiscoveryListener);
}
@SuppressLint("NewApi")
public void stopDiscovery() {
mNsdManager.stopServiceDiscovery(mDiscoveryListener);
}
/* public NsdServiceInfo getChosenServiceInfo() {
return mService;
}*/
/* public void tearDown() {
mNsdManager.unregisterService(mRegistrationListener);
}*/
}
package com.realtek.uartthrough;
import android.annotation.SuppressLint;
import android.content.Context;
import android.net.nsd.NsdManager;
import android.net.nsd.NsdServiceInfo;
import android.util.Log;
import java.lang.*;
public class NsdCore {
Globals_ctrl g_ctrl = Globals_ctrl.getInstance();
Globals_d g_d = Globals_d.getInstance();
Context mContext;
NsdManager mNsdManager;
NsdManager.ResolveListener mResolveListener;
NsdManager.DiscoveryListener mDiscoveryListener;
NsdManager.RegistrationListener mRegistrationListener;
public static final String TAG = "NsdCore";
public final String mServiceType_c = g_ctrl.getServiceType();
public final String mServiceType_d = g_d.getServiceType();
public String mServiceName_c = g_ctrl.getServiceName();
public String mServiceName_d = g_d.getServiceName();
NsdServiceInfo mService;
public NsdCore(Context context) {
mContext = context;
mNsdManager = (NsdManager) context.getSystemService(Context.NSD_SERVICE);
}
public void initializeNsd() {
Log.i(TAG, " discovery initializeNsd: " + mServiceType_c +" & "+mServiceType_d);
initializeDiscoveryListener();
initializeResolveListener();
initializeRegistrationListener();
}
@SuppressLint("NewApi")
public void initializeDiscoveryListener() {
mDiscoveryListener = new NsdManager.DiscoveryListener() {
@Override
public void onDiscoveryStarted(String regType) {
Log.i(TAG, "Service discovery started");
g_ctrl.addInfo(TAG+" "+regType+" g_ctrl Service Discovering\n");
g_d.addInfo(TAG+" "+regType+" g_d Service Discovering\n");
}
@Override
public void onServiceFound(NsdServiceInfo service) {
g_ctrl.addInfo(TAG+"Service discovery success\n " + service);
g_d.addInfo(TAG+"Service Discovery Success\n " + service);
Log.i(TAG, "Service discovery success " + service);
if (service.getServiceType().contains(mServiceType_c)) {
if (service.getServiceName().contains(mServiceName_c)){
g_ctrl.addInfo(TAG+ "Resolving service... \n");
Log.i(TAG, "G_c Resolving service... ");
mNsdManager.resolveService(service, mResolveListener);
}
}else{
g_ctrl.addInfo(TAG+ "Unknown Service Type: " + service.getServiceType());
Log.e(TAG, "G Unknown Service Type: " + service.getServiceType() );
}
if (service.getServiceType().contains(mServiceType_d)) {
if (service.getServiceName().contains(mServiceName_d)) {
g_d.addInfo(TAG + "Resolving service... \n");
Log.i(TAG, "G_d Resolving service... ");
mNsdManager.resolveService(service, mResolveListener);
}
}else{
g_d.addInfo(TAG+ "Unknown Service Type: " + service.getServiceType());
Log.e(TAG, "G_d Unknown Service Type: " + service.getServiceType());
}
}
@Override
public void onServiceLost(NsdServiceInfo service) {
g_ctrl.addInfo(TAG+ "service lost\n" + service);
g_d.addInfo(TAG+ "service lost\n" + service);
Log.e(TAG, "service lost" + service);
if (mService == service) {
mService = null;
}
}
@Override
public void onDiscoveryStopped(String serviceType) {
g_ctrl.addInfo(TAG+ "Discovery stopped:\n " + serviceType);
g_d.addInfo(TAG+ "Discovery stopped:\n " + serviceType);
Log.e(TAG, "Discovery stopped: " + serviceType);
}
@Override
public void onStartDiscoveryFailed(String serviceType, int errorCode) {
g_ctrl.addInfo(TAG+"Discovery failed: Error code:\n" + errorCode);
g_d.addInfo(TAG+"Discovery failed: Error code:\n" + errorCode);
Log.e(TAG, "onStartDiscoveryFailed: Error code:" + errorCode);
mNsdManager.stopServiceDiscovery(this);
}
@Override
public void onStopDiscoveryFailed(String serviceType, int errorCode) {
g_ctrl.addInfo(TAG+ "Discovery failed: Error code:\n" + errorCode);
g_d.addInfo(TAG+ "Discovery failed: Error code:\n" + errorCode);
Log.e(TAG, "onStopDiscoveryFailed: Error code:" + errorCode);
mNsdManager.stopServiceDiscovery(this);
}
};
}
@SuppressLint("NewApi")
public void initializeResolveListener() {
mResolveListener = new NsdManager.ResolveListener() {
@SuppressLint("NewApi")
@Override
public void onResolveFailed(NsdServiceInfo serviceInfo, int errorCode) {
g_ctrl.addInfo(TAG+ "Resolve failed\n" + errorCode);
g_d.addInfo(TAG+ "Resolve failed\n" + errorCode);
Log.e(TAG, "Resolve failed: " + errorCode);
Log.e(TAG, "onResolveFailed"+ " " + serviceInfo.getServiceType());
switch (errorCode) {
case NsdManager.FAILURE_ALREADY_ACTIVE:
Log.e(TAG, "FAILURE_ALREADY_ACTIVE");
// Just try again...
try {
Thread.sleep(300);
} catch (Exception e) {
System.out.println(e);
}
mNsdManager.resolveService( serviceInfo, mResolveListener);
break;
case NsdManager.FAILURE_INTERNAL_ERROR:
Log.e(TAG, "FAILURE_INTERNAL_ERROR");
break;
case NsdManager.FAILURE_MAX_LIMIT:
Log.e(TAG, "FAILURE_MAX_LIMIT");
default:
Log.e(TAG,"XXXXXXX onResolveFailed XXXXXXXX");
break;
}
}
@Override
public void onServiceResolved(NsdServiceInfo serviceInfo) {
Log.e(TAG, "onServiceResolved"+ " " + serviceInfo.getServiceType());
mService = serviceInfo;
if (serviceInfo.getServiceType().contains(mServiceType_c)) {
//Log.e(TAG, "G onServiceResolved");
g_ctrl.opStates().setOpState(g_ctrl.opStates().stateResoledService());
g_ctrl.addInfo(TAG + "Resolve Succeeded.\n " + serviceInfo);
g_ctrl.setSuccessRec(TAG + "Resolve Succeeded. " + serviceInfo);
g_ctrl.getDeviceList().add(mService);//TODO check ip before add to list
}else if (serviceInfo.getServiceType().contains(mServiceType_d)) {
//Log.e(TAG, "G_D onServiceResolved");
g_d.opStates().setOpState(g_d.opStates().stateResoledService());
g_d.addInfo(TAG + "Resolve Succeeded. \n" + serviceInfo);
g_d.setSuccessRec(TAG + "Resolve Succeeded. " + serviceInfo);
g_d.getDeviceList().add(mService);//TODO check ip before add to list
}
Log.w(TAG, "Resolve Succeeded. " + serviceInfo);
}
};
}
@SuppressLint("NewApi")
public void initializeRegistrationListener() {
mRegistrationListener = new NsdManager.RegistrationListener() {
@SuppressLint("NewApi")
@Override
public void onServiceRegistered(NsdServiceInfo NsdServiceInfo) {
String serviceName = NsdServiceInfo.getServiceName();
Log.e(TAG,"NsdServiceInfo.getServiceName(): " + NsdServiceInfo.getServiceName());
mServiceName_c = NsdServiceInfo.getServiceName();
mServiceName_d = mServiceName_c;
}
@Override
public void onRegistrationFailed(NsdServiceInfo arg0, int arg1) {
Log.e(TAG, "onRegistrationFailed");
}
@Override
public void onServiceUnregistered(NsdServiceInfo arg0) {
Log.e(TAG, "onServiceUnregistered");
}
@Override
public void onUnregistrationFailed(NsdServiceInfo serviceInfo, int errorCode) {
Log.e(TAG, "onServiceUnregistered: " + serviceInfo.getServiceName() + "/" + errorCode);
}
};
}
@SuppressLint("NewApi")
public void discoverServices(String serviceType) {
Log.d(TAG, "discoverServices " +serviceType+ " start!!");
//mNsdManager.discoverServices(mServiceType, NsdManager.PROTOCOL_DNS_SD, mDiscoveryListener);
mNsdManager.discoverServices(serviceType, NsdManager.PROTOCOL_DNS_SD, mDiscoveryListener);
}
@SuppressLint("NewApi")
public void stopDiscovery() {
mNsdManager.stopServiceDiscovery(mDiscoveryListener);
}
/* public NsdServiceInfo getChosenServiceInfo() {
return mService;
}*/
/* public void tearDown() {
mNsdManager.unregisterService(mRegistrationListener);
}*/
}

View file

@ -1,6 +1,6 @@
#Wed Apr 10 15:27:10 PDT 2013
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip
#Wed Apr 10 15:27:10 PDT 2013
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip

View file

@ -1,164 +1,164 @@
#!/usr/bin/env bash
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn ( ) {
echo "$*"
}
die ( ) {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
esac
# For Cygwin, ensure paths are in UNIX format before anything is touched.
if $cygwin ; then
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
fi
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >&-
APP_HOME="`pwd -P`"
cd "$SAVED" >&-
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=$((i+1))
done
case $i in
(0) set -- ;;
(1) set -- "$args0" ;;
(2) set -- "$args0" "$args1" ;;
(3) set -- "$args0" "$args1" "$args2" ;;
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
function splitJvmOpts() {
JVM_OPTS=("$@")
}
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
#!/usr/bin/env bash
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn ( ) {
echo "$*"
}
die ( ) {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
esac
# For Cygwin, ensure paths are in UNIX format before anything is touched.
if $cygwin ; then
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
fi
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >&-
APP_HOME="`pwd -P`"
cd "$SAVED" >&-
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=$((i+1))
done
case $i in
(0) set -- ;;
(1) set -- "$args0" ;;
(2) set -- "$args0" "$args1" ;;
(3) set -- "$args0" "$args1" "$args2" ;;
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
function splitJvmOpts() {
JVM_OPTS=("$@")
}
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"