├── ESP8266.jpg
├── ESP8266Tiny.jpg
├── Schematics
├── ESP8266Tiny
│ ├── ESP8266Tiny.jpg
│ ├── ESP8266Tiny.zip
│ └── readme.txt
└── ESP8266Shield
│ ├── ESP8266Shield.jpg
│ ├── ESP8266Shield.zip
│ └── readme.txt
├── ESP8266UDP
├── Android
│ └── ESP8266_UDP
│ │ ├── bin
│ │ ├── classes.dex
│ │ ├── resources.ap_
│ │ ├── ESP8266_UDP.apk
│ │ ├── classes
│ │ │ ├── com
│ │ │ │ └── esp8266_udp
│ │ │ │ │ ├── R.class
│ │ │ │ │ ├── R$id.class
│ │ │ │ │ ├── R$anim.class
│ │ │ │ │ ├── R$attr.class
│ │ │ │ │ ├── R$bool.class
│ │ │ │ │ ├── R$color.class
│ │ │ │ │ ├── R$dimen.class
│ │ │ │ │ ├── R$layout.class
│ │ │ │ │ ├── R$menu.class
│ │ │ │ │ ├── R$string.class
│ │ │ │ │ ├── R$style.class
│ │ │ │ │ ├── R$drawable.class
│ │ │ │ │ ├── R$integer.class
│ │ │ │ │ ├── BuildConfig.class
│ │ │ │ │ ├── MainActivity.class
│ │ │ │ │ ├── R$styleable.class
│ │ │ │ │ ├── MainActivity$1.class
│ │ │ │ │ ├── MainActivity$2.class
│ │ │ │ │ ├── MainActivity$3.class
│ │ │ │ │ ├── MainActivity$4.class
│ │ │ │ │ ├── MainActivity$5.class
│ │ │ │ │ └── MainActivity$MyDatagramReceiver.class
│ │ │ └── android
│ │ │ │ └── support
│ │ │ │ └── v7
│ │ │ │ └── appcompat
│ │ │ │ ├── R.class
│ │ │ │ ├── R$id.class
│ │ │ │ ├── R$anim.class
│ │ │ │ ├── R$attr.class
│ │ │ │ ├── R$bool.class
│ │ │ │ ├── R$color.class
│ │ │ │ ├── R$dimen.class
│ │ │ │ ├── R$style.class
│ │ │ │ ├── R$drawable.class
│ │ │ │ ├── R$integer.class
│ │ │ │ ├── R$layout.class
│ │ │ │ ├── R$string.class
│ │ │ │ └── R$styleable.class
│ │ ├── res
│ │ │ └── crunch
│ │ │ │ ├── drawable-hdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── drawable-mdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── drawable-xhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ └── drawable-xxhdpi
│ │ │ │ └── ic_launcher.png
│ │ ├── dexedLibs
│ │ │ ├── appcompat_v7-cf1ef3571a6117d84c40eaf3f41ee83d.jar
│ │ │ ├── android-support-v4-5339952610969b6c7436ecfe09bf32cf.jar
│ │ │ └── android-support-v7-appcompat-0b86d1cd15e81e2f2b7b0d6de42503d0.jar
│ │ ├── jarlist.cache
│ │ ├── AndroidManifest.xml
│ │ └── R.txt
│ │ ├── ic_launcher-web.png
│ │ ├── libs
│ │ └── android-support-v4.jar
│ │ ├── res
│ │ ├── drawable-hdpi
│ │ │ └── ic_launcher.png
│ │ ├── drawable-mdpi
│ │ │ └── ic_launcher.png
│ │ ├── drawable-xhdpi
│ │ │ └── ic_launcher.png
│ │ ├── drawable-xxhdpi
│ │ │ └── ic_launcher.png
│ │ ├── values
│ │ │ ├── dimens.xml
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ ├── values-v11
│ │ │ └── styles.xml
│ │ ├── values-w820dp
│ │ │ └── dimens.xml
│ │ ├── values-v14
│ │ │ └── styles.xml
│ │ ├── menu
│ │ │ └── main.xml
│ │ └── layout
│ │ │ └── activity_main.xml
│ │ ├── gen
│ │ ├── com
│ │ │ └── esp8266_udp
│ │ │ │ └── BuildConfig.java
│ │ └── android
│ │ │ └── support
│ │ │ └── v7
│ │ │ └── appcompat
│ │ │ └── R.java
│ │ ├── .settings
│ │ └── org.eclipse.jdt.core.prefs
│ │ ├── .classpath
│ │ ├── project.properties
│ │ ├── proguard-project.txt
│ │ ├── .project
│ │ ├── AndroidManifest.xml
│ │ └── src
│ │ └── com
│ │ └── esp8266_udp
│ │ └── MainActivity.java
├── DebugUtilities.h
├── DebugUtilities.cpp
├── PSTRStrings1.h
├── udpServer.py
├── ESP8266UDP.ino
└── PSTRStrings1.cpp
├── ESP8266UDP_PWM
├── DebugUtilities.h
├── DebugUtilities.cpp
├── PSTRStrings1.h
├── udpServer.py
├── ESP8266UDP_PWM.ino
└── PSTRStrings1.cpp
├── ESP8266UDP_CommCheck
├── DebugUtilities.h
├── DebugUtilities.cpp
├── PSTRStrings1.h
├── udpServer.py
├── PSTRStrings1.cpp
└── ESP8266UDP_CommCheck.ino
├── .gitattributes
├── .gitignore
├── README.md
└── ESP8266.ino
/ESP8266.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266.jpg
--------------------------------------------------------------------------------
/ESP8266Tiny.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266Tiny.jpg
--------------------------------------------------------------------------------
/Schematics/ESP8266Tiny/ESP8266Tiny.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/Schematics/ESP8266Tiny/ESP8266Tiny.jpg
--------------------------------------------------------------------------------
/Schematics/ESP8266Tiny/ESP8266Tiny.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/Schematics/ESP8266Tiny/ESP8266Tiny.zip
--------------------------------------------------------------------------------
/Schematics/ESP8266Shield/ESP8266Shield.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/Schematics/ESP8266Shield/ESP8266Shield.jpg
--------------------------------------------------------------------------------
/Schematics/ESP8266Shield/ESP8266Shield.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/Schematics/ESP8266Shield/ESP8266Shield.zip
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes.dex:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes.dex
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/resources.ap_:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/resources.ap_
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/ESP8266_UDP.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/ESP8266_UDP.apk
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/ic_launcher-web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/ic_launcher-web.png
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/libs/android-support-v4.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/libs/android-support-v4.jar
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/res/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/res/drawable-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/res/drawable-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/res/drawable-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/res/drawable-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/res/drawable-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/R.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/R.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/res/drawable-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/res/drawable-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/R$id.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/R$id.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/R$anim.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/R$anim.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/R$attr.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/R$attr.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/R$bool.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/R$bool.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/R$color.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/R$color.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/R$dimen.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/R$dimen.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/R$layout.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/R$layout.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/R$menu.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/R$menu.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/R$string.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/R$string.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/R$style.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/R$style.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/R$drawable.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/R$drawable.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/R$integer.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/R$integer.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/res/crunch/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/res/crunch/drawable-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/res/crunch/drawable-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/res/crunch/drawable-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/BuildConfig.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/BuildConfig.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/MainActivity.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/MainActivity.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/R$styleable.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/R$styleable.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/res/crunch/drawable-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/res/crunch/drawable-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/res/crunch/drawable-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/res/crunch/drawable-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/android/support/v7/appcompat/R.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/android/support/v7/appcompat/R.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/MainActivity$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/MainActivity$1.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/MainActivity$2.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/MainActivity$2.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/MainActivity$3.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/MainActivity$3.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/MainActivity$4.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/MainActivity$4.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/MainActivity$5.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/MainActivity$5.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/android/support/v7/appcompat/R$id.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/android/support/v7/appcompat/R$id.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/android/support/v7/appcompat/R$anim.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/android/support/v7/appcompat/R$anim.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/android/support/v7/appcompat/R$attr.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/android/support/v7/appcompat/R$attr.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/android/support/v7/appcompat/R$bool.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/android/support/v7/appcompat/R$bool.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/android/support/v7/appcompat/R$color.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/android/support/v7/appcompat/R$color.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/android/support/v7/appcompat/R$dimen.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/android/support/v7/appcompat/R$dimen.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/android/support/v7/appcompat/R$style.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/android/support/v7/appcompat/R$style.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/android/support/v7/appcompat/R$drawable.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/android/support/v7/appcompat/R$drawable.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/android/support/v7/appcompat/R$integer.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/android/support/v7/appcompat/R$integer.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/android/support/v7/appcompat/R$layout.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/android/support/v7/appcompat/R$layout.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/android/support/v7/appcompat/R$string.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/android/support/v7/appcompat/R$string.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/android/support/v7/appcompat/R$styleable.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/android/support/v7/appcompat/R$styleable.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/dexedLibs/appcompat_v7-cf1ef3571a6117d84c40eaf3f41ee83d.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/dexedLibs/appcompat_v7-cf1ef3571a6117d84c40eaf3f41ee83d.jar
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/MainActivity$MyDatagramReceiver.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/classes/com/esp8266_udp/MainActivity$MyDatagramReceiver.class
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/gen/com/esp8266_udp/BuildConfig.java:
--------------------------------------------------------------------------------
1 | /** Automatically generated file. DO NOT MODIFY */
2 | package com.esp8266_udp;
3 |
4 | public final class BuildConfig {
5 | public final static boolean DEBUG = true;
6 | }
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/dexedLibs/android-support-v4-5339952610969b6c7436ecfe09bf32cf.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/dexedLibs/android-support-v4-5339952610969b6c7436ecfe09bf32cf.jar
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/.settings/org.eclipse.jdt.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
3 | org.eclipse.jdt.core.compiler.compliance=1.6
4 | org.eclipse.jdt.core.compiler.source=1.6
5 |
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/dexedLibs/android-support-v7-appcompat-0b86d1cd15e81e2f2b7b0d6de42503d0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Paulware/ESP8266/HEAD/ESP8266UDP/Android/ESP8266_UDP/bin/dexedLibs/android-support-v7-appcompat-0b86d1cd15e81e2f2b7b0d6de42503d0.jar
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 16dp
5 | 16dp
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Schematics/ESP8266Shield/readme.txt:
--------------------------------------------------------------------------------
1 | 10/23/2014
2 | Created ready for ordering
3 | 11/10/2014
4 | D0 was driving ESPTX incorrectly. This was corrected not ordered yet.
5 | 1/7/2014
6 | D12 is now soft-serial receive and D11 is now soft-serial tx
7 | Have not ordered or verified yet.
8 |
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ESP8266_UDP
5 | Hello world!
6 | Settings
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ESP8266UDP/DebugUtilities.h:
--------------------------------------------------------------------------------
1 | #ifndef DEBUGUTILITIES_H
2 | #define DEBUGUTILITIES_H
3 | #include
4 | class DebugUtilities
5 | {
6 | public:
7 | // Constructor
8 | DebugUtilities();
9 | bool debugging ();
10 | void showNumber ( PGM_P s, int number );
11 | void printPSTR ( PGM_P s );
12 |
13 | // private:
14 | };
15 | #endif
16 |
17 |
18 |
--------------------------------------------------------------------------------
/ESP8266UDP_PWM/DebugUtilities.h:
--------------------------------------------------------------------------------
1 | #ifndef DEBUGUTILITIES_H
2 | #define DEBUGUTILITIES_H
3 | #include
4 | class DebugUtilities
5 | {
6 | public:
7 | // Constructor
8 | DebugUtilities();
9 | bool debugging ();
10 | void showNumber ( PGM_P s, int number );
11 | void printPSTR ( PGM_P s );
12 |
13 | // private:
14 | };
15 | #endif
16 |
17 |
18 |
--------------------------------------------------------------------------------
/ESP8266UDP_CommCheck/DebugUtilities.h:
--------------------------------------------------------------------------------
1 | #ifndef DEBUGUTILITIES_H
2 | #define DEBUGUTILITIES_H
3 | #include
4 | class DebugUtilities
5 | {
6 | public:
7 | // Constructor
8 | DebugUtilities();
9 | bool debugging ();
10 | void showNumber ( PGM_P s, int number );
11 | void printPSTR ( PGM_P s );
12 |
13 | // private:
14 | };
15 | #endif
16 |
17 |
18 |
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/res/values-v11/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 | 64dp
9 |
10 |
11 |
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/res/values-v14/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/res/menu/main.xml:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/jarlist.cache:
--------------------------------------------------------------------------------
1 | # cache for current jar dependency. DO NOT EDIT.
2 | # format is
3 | # Encoding is UTF-8
4 | 1414003734281 758727 efec67655f6db90757faa37201efcee2a9ec3507 C:\adt-bundle-windows-x86_64-20140702\adt-bundle-windows-x86_64-20140702\Android\ESP8266_UDP\libs\android-support-v4.jar
5 | 1403569040000 758727 efec67655f6db90757faa37201efcee2a9ec3507 C:\adt-bundle-windows-x86_64-20140702\adt-bundle-windows-x86_64-20140702\Android\appcompat_v7\libs\android-support-v4.jar
6 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
4 | # Custom for Visual Studio
5 | *.cs diff=csharp
6 | *.sln merge=union
7 | *.csproj merge=union
8 | *.vbproj merge=union
9 | *.fsproj merge=union
10 | *.dbproj merge=union
11 |
12 | # Standard to msysgit
13 | *.doc diff=astextplain
14 | *.DOC diff=astextplain
15 | *.docx diff=astextplain
16 | *.DOCX diff=astextplain
17 | *.dot diff=astextplain
18 | *.DOT diff=astextplain
19 | *.pdf diff=astextplain
20 | *.PDF diff=astextplain
21 | *.rtf diff=astextplain
22 | *.RTF diff=astextplain
23 |
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/project.properties:
--------------------------------------------------------------------------------
1 | # This file is automatically generated by Android Tools.
2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED!
3 | #
4 | # This file must be checked in Version Control Systems.
5 | #
6 | # To customize properties used by the Ant build system edit
7 | # "ant.properties", and override values to adapt the script to your
8 | # project structure.
9 | #
10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
12 |
13 | # Project target.
14 | target=android-19
15 | android.library.reference.1=../appcompat_v7
16 |
--------------------------------------------------------------------------------
/ESP8266UDP/DebugUtilities.cpp:
--------------------------------------------------------------------------------
1 | // Comment out next line to remove debugging
2 | // Note: Debugging can significantly increase the project response time
3 | #define DEBUGIT
4 | #include "DebugUtilities.h"
5 |
6 | DebugUtilities::DebugUtilities ()
7 | {
8 | }
9 | // Print a string from program memory
10 | void DebugUtilities::printPSTR ( PGM_P s)
11 | {
12 | #ifdef DEBUGIT
13 | char c;
14 | while ((c=pgm_read_byte(s++)) != 0)
15 | Serial.print (c);
16 | #endif
17 | }
18 |
19 | void DebugUtilities::showNumber ( PGM_P s, int number )
20 | {
21 | #ifdef DEBUGIT
22 | printPSTR ( s );
23 | Serial.println ( number );
24 | #endif
25 | }
26 |
27 | bool DebugUtilities::debugging ()
28 | {
29 | #ifdef DEBUGIT
30 | return true;
31 | #else
32 | return false;
33 | #endif
34 | }
35 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Windows image file caches
2 | Thumbs.db
3 | ehthumbs.db
4 |
5 | # Folder config file
6 | Desktop.ini
7 |
8 | # Recycle Bin used on file shares
9 | $RECYCLE.BIN/
10 |
11 | # Windows Installer files
12 | *.cab
13 | *.msi
14 | *.msm
15 | *.msp
16 |
17 | # =========================
18 | # Operating System Files
19 | # =========================
20 |
21 | # OSX
22 | # =========================
23 |
24 | .DS_Store
25 | .AppleDouble
26 | .LSOverride
27 |
28 | # Icon must end with two \r
29 | Icon
30 |
31 | # Thumbnails
32 | ._*
33 |
34 | # Files that might appear on external disk
35 | .Spotlight-V100
36 | .Trashes
37 |
38 | # Directories potentially created on remote AFP share
39 | .AppleDB
40 | .AppleDesktop
41 | Network Trash Folder
42 | Temporary Items
43 | .apdisk
44 |
--------------------------------------------------------------------------------
/ESP8266UDP_PWM/DebugUtilities.cpp:
--------------------------------------------------------------------------------
1 | // Comment out next line to remove debugging
2 | // Note: Debugging can significantly increase the project response time
3 | #define DEBUGIT
4 | #include "DebugUtilities.h"
5 |
6 | DebugUtilities::DebugUtilities ()
7 | {
8 | }
9 | // Print a string from program memory
10 | void DebugUtilities::printPSTR ( PGM_P s)
11 | {
12 | #ifdef DEBUGIT
13 | char c;
14 | while ((c=pgm_read_byte(s++)) != 0)
15 | Serial.print (c);
16 | #endif
17 | }
18 |
19 | void DebugUtilities::showNumber ( PGM_P s, int number )
20 | {
21 | #ifdef DEBUGIT
22 | printPSTR ( s );
23 | Serial.println ( number );
24 | #endif
25 | }
26 |
27 | bool DebugUtilities::debugging ()
28 | {
29 | #ifdef DEBUGIT
30 | return true;
31 | #else
32 | return false;
33 | #endif
34 | }
35 |
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
14 |
15 |
16 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/ESP8266UDP_CommCheck/DebugUtilities.cpp:
--------------------------------------------------------------------------------
1 | // Comment out next line to remove debugging
2 | // Note: Debugging can significantly increase the project response time
3 | #define DEBUGIT
4 | #include "DebugUtilities.h"
5 |
6 | DebugUtilities::DebugUtilities ()
7 | {
8 | }
9 | // Print a string from program memory
10 | void DebugUtilities::printPSTR ( PGM_P s)
11 | {
12 | #ifdef DEBUGIT
13 | char c;
14 | while ((c=pgm_read_byte(s++)) != 0)
15 | Serial.print (c);
16 | #endif
17 | }
18 |
19 | void DebugUtilities::showNumber ( PGM_P s, int number )
20 | {
21 | #ifdef DEBUGIT
22 | printPSTR ( s );
23 | Serial.println ( number );
24 | #endif
25 | }
26 |
27 | bool DebugUtilities::debugging ()
28 | {
29 | #ifdef DEBUGIT
30 | return true;
31 | #else
32 | return false;
33 | #endif
34 | }
35 |
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/proguard-project.txt:
--------------------------------------------------------------------------------
1 | # To enable ProGuard in your project, edit project.properties
2 | # to define the proguard.config property as described in that file.
3 | #
4 | # Add project specific ProGuard rules here.
5 | # By default, the flags in this file are appended to flags specified
6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt
7 | # You can edit the include path and order by changing the ProGuard
8 | # include property in project.properties.
9 | #
10 | # For more details, see
11 | # http://developer.android.com/guide/developing/tools/proguard.html
12 |
13 | # Add any project specific keep options here:
14 |
15 | # If your project uses WebView with JS, uncomment the following
16 | # and specify the fully qualified class name to the JavaScript interface
17 | # class:
18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
19 | # public *;
20 | #}
21 |
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | ESP8266_UDP
4 |
5 |
6 |
7 |
8 |
9 | com.android.ide.eclipse.adt.ResourceManagerBuilder
10 |
11 |
12 |
13 |
14 | com.android.ide.eclipse.adt.PreCompilerBuilder
15 |
16 |
17 |
18 |
19 | org.eclipse.jdt.core.javabuilder
20 |
21 |
22 |
23 |
24 | com.android.ide.eclipse.adt.ApkBuilder
25 |
26 |
27 |
28 |
29 |
30 | com.android.ide.eclipse.adt.AndroidNature
31 | org.eclipse.jdt.core.javanature
32 |
33 |
34 |
--------------------------------------------------------------------------------
/ESP8266UDP/PSTRStrings1.h:
--------------------------------------------------------------------------------
1 | #ifndef PSTRSTRINGS1_H
2 | #define PSTRSTRINGS1_H
3 |
4 | #include
5 | #include "DebugUtilities.h"
6 |
7 | struct CommandStringType
8 | {
9 | int index;
10 | int len;
11 | prog_char * ptr;
12 | int matched;
13 | };
14 |
15 | class PSTRStrings1
16 | {
17 | public:
18 | // Constructor
19 | PSTRStrings1(int _numberOfStrings);
20 | int matchString ( char ch, bool doDebug);
21 | void printString ( int which );
22 | void addString (const prog_char * s);
23 | void show ( int startValue, int stopValue );
24 | void showAll ();
25 | int matchCharPointer ( char * ch );
26 | int numberOfStrings;
27 | char charAt ( int i, int j);
28 | void showMatches();
29 | void clearMatches();
30 | void clearIndexes();
31 | int stringLen( int which);
32 | int intersect ( PSTRStrings1 * targetList, int index );
33 | bool checkMatch (int which);
34 |
35 | int numStrings;
36 |
37 | private:
38 | CommandStringType * strings;
39 | DebugUtilities debugUtils;
40 | };
41 | #endif
42 |
--------------------------------------------------------------------------------
/ESP8266UDP_PWM/PSTRStrings1.h:
--------------------------------------------------------------------------------
1 | #ifndef PSTRSTRINGS1_H
2 | #define PSTRSTRINGS1_H
3 |
4 | #include
5 | #include "DebugUtilities.h"
6 |
7 | struct CommandStringType
8 | {
9 | int index;
10 | int len;
11 | prog_char * ptr;
12 | int matched;
13 | };
14 |
15 | class PSTRStrings1
16 | {
17 | public:
18 | // Constructor
19 | PSTRStrings1(int _numberOfStrings);
20 | int matchString ( char ch, bool doDebug);
21 | void printString ( int which );
22 | void addString (const prog_char * s);
23 | void show ( int startValue, int stopValue );
24 | void showAll ();
25 | int matchCharPointer ( char * ch );
26 | int numberOfStrings;
27 | char charAt ( int i, int j);
28 | void showMatches();
29 | void clearMatches();
30 | void clearIndexes();
31 | int stringLen( int which);
32 | int intersect ( PSTRStrings1 * targetList, int index );
33 | bool checkMatch (int which);
34 |
35 | int numStrings;
36 |
37 | private:
38 | CommandStringType * strings;
39 | DebugUtilities debugUtils;
40 | };
41 | #endif
42 |
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
10 |
11 |
12 |
13 |
18 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/ESP8266UDP_CommCheck/PSTRStrings1.h:
--------------------------------------------------------------------------------
1 | #ifndef PSTRSTRINGS1_H
2 | #define PSTRSTRINGS1_H
3 |
4 | #include
5 | #include "DebugUtilities.h"
6 |
7 | struct CommandStringType
8 | {
9 | int index;
10 | int len;
11 | prog_char * ptr;
12 | int matched;
13 | };
14 |
15 | class PSTRStrings1
16 | {
17 | public:
18 | // Constructor
19 | PSTRStrings1(int _numberOfStrings);
20 | int matchString ( char ch, bool doDebug);
21 | void printString ( int which );
22 | void addString (const prog_char * s);
23 | void show ( int startValue, int stopValue );
24 | void showAll ();
25 | int matchCharPointer ( char * ch );
26 | int numberOfStrings;
27 | char charAt ( int i, int j);
28 | void showMatches();
29 | void clearMatches();
30 | void clearIndexes();
31 | int stringLen( int which);
32 | int intersect ( PSTRStrings1 * targetList, int index );
33 | bool checkMatch (int which);
34 | void showStrings ();
35 | int numStrings;
36 |
37 | private:
38 | CommandStringType * strings;
39 | DebugUtilities debugUtils;
40 | };
41 | #endif
42 |
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
10 |
11 |
12 |
13 |
18 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/ESP8266UDP/udpServer.py:
--------------------------------------------------------------------------------
1 | import socket
2 | import msvcrt
3 | import select
4 |
5 | # windows only
6 | def getKeyboard():
7 | char = ''
8 | if msvcrt.kbhit():
9 | char = msvcrt.getch()
10 | return char
11 |
12 |
13 | clientIp = '192.168.0.255'
14 | sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
15 | sock.sendto('findkey', (clientIp, 3333))
16 | print 'Press any keys (1..3) to send commands, q to quit'
17 | while True:
18 | msg = getKeyboard ()
19 | if msg != '':
20 | if msg == 'q':
21 | break
22 | else:
23 | sock.sendto('cmd' + msg, (clientIp,3333))
24 |
25 | data = ''
26 | addr = ''
27 | i,o,e = select.select ([sock],[],[],0.0001)
28 | for s in i:
29 | if s == sock:
30 | data, addr = sock.recvfrom(1024)
31 | if clientIp == '192.168.0.255':
32 | clientIp = str(addr[0]) # I now know the actual ip address of the device.
33 | print 'Client discovered at: ' + clientIp
34 |
35 | print "received message:" + data + ' from: ' + str(addr[0])
36 | break
37 | sock.close()
--------------------------------------------------------------------------------
/ESP8266UDP_PWM/udpServer.py:
--------------------------------------------------------------------------------
1 | import socket
2 | import msvcrt
3 | import select
4 |
5 | # windows only
6 | def getKeyboard():
7 | char = ''
8 | if msvcrt.kbhit():
9 | char = msvcrt.getch()
10 | return char
11 |
12 |
13 | clientIp = '192.168.0.255'
14 | sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
15 | sock.sendto('findkey', (clientIp, 3333))
16 | print 'Press any keys (1..3) to send commands, q to quit'
17 | while True:
18 | msg = getKeyboard ()
19 | if msg != '':
20 | if msg == 'q':
21 | break
22 | else:
23 | sock.sendto('cmd' + msg, (clientIp,3333))
24 |
25 | data = ''
26 | addr = ''
27 | i,o,e = select.select ([sock],[],[],0.0001)
28 | for s in i:
29 | if s == sock:
30 | data, addr = sock.recvfrom(1024)
31 | if clientIp == '192.168.0.255':
32 | clientIp = str(addr[0]) # I now know the actual ip address of the device.
33 | print 'Client discovered at: ' + clientIp
34 |
35 | print "received message:" + data + ' from: ' + str(addr[0])
36 | break
37 | sock.close()
--------------------------------------------------------------------------------
/ESP8266UDP_CommCheck/udpServer.py:
--------------------------------------------------------------------------------
1 | import socket
2 | import msvcrt
3 | import select
4 |
5 | # windows only
6 | def getKeyboard():
7 | char = ''
8 | if msvcrt.kbhit():
9 | char = msvcrt.getch()
10 | return char
11 |
12 |
13 | clientIp = '192.168.0.255'
14 | sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
15 | sock.sendto('findkey', (clientIp, 3333))
16 | print 'Press any keys (1..3) to send commands, q to quit'
17 | while True:
18 | msg = getKeyboard ()
19 | if msg != '':
20 | if msg == 'q':
21 | break
22 | else:
23 | sock.sendto('cmd' + msg, (clientIp,3333))
24 |
25 | data = ''
26 | addr = ''
27 | i,o,e = select.select ([sock],[],[],0.0001)
28 | for s in i:
29 | if s == sock:
30 | data, addr = sock.recvfrom(1024)
31 | if clientIp == '192.168.0.255':
32 | clientIp = str(addr[0]) # I now know the actual ip address of the device.
33 | print 'Client discovered at: ' + clientIp
34 |
35 | print "received message:" + data + ' from: ' + str(addr[0])
36 | break
37 | sock.close()
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ESP8266
2 | =======
3 |
4 | All things related to ESP8266 low cost device
5 |
6 | ESP8266.ino is a mega sketch to show basic server capability.
7 |
8 | Basic theory of UDP operation:
9 | ==============================
10 | Android device sends out a UDP broadcast to local network (i.e. 192.168.0.255). The message is "findkey" where key is a unique name of the device (i.e. garageDoor).
11 |
12 | All units will receive this message but only the unit with the matching key will respond. The matching unit will respond: "CTS" (clear to send).
13 |
14 | When the android device receives this message it now also has the ip address of the device. All further communication will be directly from the android device to the specific ip address of the desired unit.
15 |
16 | The unit will now respond to commands, like "open" or "readTemp".
17 |
18 | Useful files/directories:
19 | =========================
20 | Schematics/ESP8266Tiny: An Eagle schematic to create a small pcb that holds an atmega328 and ESP8266 connected to D11/D12
21 | The ESP8266 should be running at baud rate 9600.
22 | ssid and password are stored in EEPROM on the atmega328
23 | A serial based menu allows the user to set ssid/password/and unique key which identifies the ESP8266 on the local network
24 |
25 |
26 |
27 |
28 | | Videos |
29 | | smart car video |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/Schematics/ESP8266Tiny/readme.txt:
--------------------------------------------------------------------------------
1 | 10/19/2014
2 | Created
3 | Not sure whether the LM 3.3V voltage regulator can provide enough for the ESP8266
4 | Added a 3.3V Pinout so that an external 3.3V Power source can be provided.
5 | Will order after testing out the ESP8266 Rx/Tx lines are connected to Arduino
6 | Rx/Tx so ESP8266 module should be removed will programming.
7 | Could be a useful module for an I2C component.
8 |
9 | 10/21/2014
10 | Confirmed LM 3.3V regulator does indeed provide enough power for this device.
11 | Transistors were added so that the 5V arduino can communicate with the 3.3V device
12 | The ESP8266 will need the RX/TX lines, so an I2C component may be necessary
13 | Go ahead an order the pcb
14 |
15 | 10/22/2014
16 | PCB ordered from iteadstudio
17 |
18 | 10/23/2014
19 | Transistor to amplify power to infra-red led with supporting resistors should be
20 | placed on the main board. Board ready. Wait until first board is returned for
21 | evaluation before ordering another.
22 |
23 | 11/10/2014
24 | D0 was driving ESPTX. (backwards). Reordering
25 |
26 | 11/18/2014
27 | AT+CIOBAUD=19200 sets the baud rate to 19200. This will allow me to communicate with the
28 | ESP8266 using soft serial. Normal Arduino Serial can be used for debugging (better).
29 | Reordered pcb. D11 and D12 are now connected to ESP8266
30 |
31 | 12/12/2014
32 | Redid the .zip file, but this was unnecessary as the last change has not arrived for evaluation yet.
33 |
34 | 12/31/2014
35 | Last change arrived (some problem in transportation).
36 | pcb checks out ok. Some standoffs would be nice.
37 |
--------------------------------------------------------------------------------
/ESP8266.ino:
--------------------------------------------------------------------------------
1 | boolean initialized = false;
2 |
3 | void setup() {
4 | Serial.begin (115200);
5 | Serial.println ( "Ready2" );
6 | Serial2.begin (115200);
7 | sendCommand ( "AT" );
8 | sendCommand ( "AT+RST" );
9 | delay (4000);
10 | sendCommand ( "AT+CWLAP" );
11 | sendCommand ( "AT+CWJAP=\"SSID\",\"Password\"" );
12 | sendCommand ( "AT+CIPMUX=0" );
13 | sendCommand ( "AT+CIFSR" );
14 | sendCommand ( "AT+CIPMUX=1" );
15 | sendCommand ( "AT+CIPSERVER=1,80" );
16 | initialized = true;
17 | }
18 |
19 | void getResponse () {
20 | unsigned long startTime;
21 | char ch;
22 | char lastCh;
23 |
24 | startTime = millis();
25 | lastCh = ' ';
26 | while (millis() < (startTime + 3000))
27 | if (Serial2.available() )
28 | {
29 | ch = Serial2.read();
30 | Serial.print (ch);
31 | if ((lastCh == 'O') && (ch == 'K'))
32 | break;
33 | lastCh = ch;
34 | }
35 | }
36 |
37 | void sendCommand ( char * cmd ) {
38 | Serial2.println ( cmd );
39 | getResponse();
40 | }
41 |
42 | void httpOutput (char * msg) {
43 | int len = strlen (msg);
44 | Serial2.print ( "AT+CIPSEND=0,");
45 | Serial2.println ( len+2 );
46 | delay (50);
47 | Serial2.println ( msg );
48 | Serial2.println ();
49 | delay (50);
50 | Serial.println ( msg );
51 | }
52 |
53 | void webserver() {
54 | char ch;
55 | httpOutput ( "ESP8266 Server" );
56 | httpOutput ( "Welcome to the ESP8266 Server
");
57 | httpOutput ( "Here is a list: " );
58 | delay (100);
59 | Serial2.println ( "AT+CIPCLOSE=0");
60 | while (Serial2.available() ) // Flush the input buffer
61 | {
62 | ch = Serial2.read();
63 | Serial.print (ch);
64 | }
65 | }
66 |
67 | void loop () {
68 | char ch;
69 | if (initialized)
70 | {
71 | if (Serial.available() )
72 | {
73 | ch = Serial.read();
74 | Serial2.print (ch);
75 | }
76 |
77 | if (Serial2.available() )
78 | {
79 | ch = Serial2.read();
80 | Serial.print (ch);
81 | if (ch == 71)
82 | webserver();
83 | }
84 | }
85 | }
86 |
87 |
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
19 |
20 |
28 |
29 |
37 |
38 |
46 |
47 |
55 |
56 |
64 |
65 |
74 |
75 |
--------------------------------------------------------------------------------
/ESP8266UDP/ESP8266UDP.ino:
--------------------------------------------------------------------------------
1 | #include "PSTRStrings1.h"
2 | PSTRStrings1 commands(5); // BASIC commands
3 | PSTRStrings1 response(4); // Responses
4 |
5 | boolean silentRunning = true;
6 | int state = 0;
7 |
8 | void setup() {
9 | // change "key" to a unique string
10 | commands.addString ( PSTR ( "findkey")); // 0
11 | commands.addString ( PSTR ( "cmd1" )); // 1
12 | commands.addString ( PSTR ( "cmd2" )); // 2
13 | commands.addString ( PSTR ( "cmd3" )); // 3
14 |
15 | response.addString ( PSTR ( "OK" ));
16 | response.addString ( PSTR ( "ready" ));
17 | response.addString ( PSTR ( "no change" ));
18 | Serial.begin (115200);
19 | Serial.println ( "Ready2" );
20 | Serial2.begin (115200);
21 | pinMode (13,OUTPUT);
22 | pinMode (12,OUTPUT);
23 | Serial.println ( "\nEnter \"!\" to setup ESP8266 " );
24 | }
25 |
26 | void launch () {
27 | digitalWrite (13,0);
28 | digitalWrite (12,0);
29 | sendCommand ( "AT", true );
30 | digitalWrite (13,0);
31 | sendCommand ( "AT+RST", false );
32 | digitalWrite (13,1);
33 | sendCommand ( "AT+CWMODE=3",true );
34 | digitalWrite (13,1);
35 | sendCommand ( "AT+CWLAP", true );
36 | sendCommand ( "AT+CWJAP=\"SSID\",\"Password\"", true);
37 | digitalWrite (13,0);
38 | sendCommand ( "AT+CIPMUX=1", true );
39 | digitalWrite (13,1);
40 | sendCommand ( "AT+CIPSERVER=1,3333", true );
41 | digitalWrite (13,0);
42 | sendCommand ( "AT+CIPSTO=120", true );
43 | digitalWrite (13,1);
44 | //sendCommand ("AT+CIOBAUD=115200", true);
45 | Serial.println ( "\nDone" );
46 | }
47 |
48 | void getResponse (boolean waitOK) {
49 | unsigned long startTime;
50 | char ch;
51 | int index;
52 |
53 | startTime = millis();
54 | // Wait 10 seconds maximum
55 | while (millis() < (startTime + 10000))
56 | if (Serial2.available() )
57 | {
58 | ch = Serial2.read();
59 | Serial.print (ch);
60 | index = response.matchString (ch, false);
61 | if (index == 2) // no change
62 | break;
63 | if (waitOK) {
64 | if (index == 0)
65 | break;
66 | } else { // wait for ready
67 | if (index == 1)
68 | break;
69 | }
70 | }
71 | Serial.println ();
72 | }
73 |
74 | void sendCommand ( char * cmd, boolean wait ) {
75 | Serial.print ( "Sending " );
76 | Serial.println ( cmd );
77 | Serial2.println ( cmd );
78 | getResponse(wait);
79 | }
80 |
81 | void respond(char * response, boolean force) {
82 | char ch;
83 | int len = strlen (response);
84 | if (!silentRunning || force) {
85 | Serial2.print ( "AT+CIPSEND=0,");
86 | Serial2.println ( len+2 );
87 | delay (50);
88 | Serial2.println (response);
89 | Serial2.println ();
90 | delay (50);
91 | Serial.println (response);
92 | delay (100);
93 | Serial2.println ( "AT+CIPCLOSE=1");
94 | delay (100);
95 | }
96 | }
97 |
98 | void loop () {
99 | char ch;
100 | int index;
101 | boolean debugIt = true;
102 | char cmd [30];
103 | static int cmdIndex = 0;
104 |
105 | if (Serial.available() ) {
106 | ch = Serial.read();
107 | if (ch == '!')
108 | launch();
109 | else if ((ch == 13) || (ch == 10)) {
110 | if (ch == 13) {
111 | if (cmdIndex > 0)
112 | sendCommand (cmd, true);
113 | cmd[0] = 0;
114 | cmdIndex = 0;
115 | }
116 | } else {
117 | cmd[cmdIndex] = ch;
118 | cmdIndex = cmdIndex + 1;
119 | cmd[cmdIndex] = 0;
120 | }
121 | }
122 |
123 | if (Serial2.available() ) {
124 | ch = Serial2.read();
125 | if (debugIt)
126 | Serial.print (ch);
127 | index = commands.matchString (ch, false);
128 | if (index > -1) {
129 | //Serial.println ( index );
130 | switch (index) {
131 | case 0: // Android device is looking for me
132 | respond ("CTS", true);
133 | digitalWrite (12,1);
134 | break;
135 | case 1: // Command 1
136 | Serial.println ( "Process Command 1" );
137 | respond ("ACK", false);
138 | digitalWrite (13,0);
139 | break;
140 | case 2: // Command 2
141 | Serial.println ( "Process Command 2" );
142 | respond ("ACK", false );
143 | digitalWrite (13,1);
144 | break;
145 | case 3: // Command 3
146 | Serial.println ( "Process Command 3" );
147 | respond ("ACK",false);
148 | digitalWrite (13,0);
149 | break;
150 | default:
151 | break; // Do nothing
152 | }
153 | }
154 | }
155 | }
156 |
157 |
--------------------------------------------------------------------------------
/ESP8266UDP_PWM/ESP8266UDP_PWM.ino:
--------------------------------------------------------------------------------
1 | #include "PSTRStrings1.h"
2 | #include
3 | PSTRStrings1 commands(5); // BASIC commands
4 | boolean initialized = false;
5 | boolean silentRunning = true;
6 | boolean menu = false;
7 | int state = 0;
8 | byte leftOffset = 0;
9 | byte rightOffset = 0;
10 |
11 | /* This could be a pwm class */
12 | unsigned long pwmTimeout = 0;
13 |
14 | #define LEFTFORWARD 9
15 | #define LEFTBACKWARD 10
16 | #define RIGHTFORWARD 6
17 | #define RIGHTBACKWARD 5
18 | #define STEPTIME 300
19 | #define STRAIGHTSPEED 200
20 | #define TURNSPEED 120
21 | #define TURNTIME 100
22 |
23 | int pwms[] = {LEFTFORWARD, LEFTBACKWARD,
24 | RIGHTFORWARD, RIGHTBACKWARD };
25 |
26 | void writePwms ( int leftForward, int leftBackward, int rightForward, int rightBackward) {
27 | analogWrite (pwms[0], leftForward); // Left forward
28 | analogWrite (pwms[1], leftBackward); // Left backward
29 | analogWrite (pwms[2], rightForward); // Right forward
30 | analogWrite (pwms[3], rightBackward); // Right backward
31 | }
32 |
33 | void goForward ( ) {
34 | writePwms (STRAIGHTSPEED-leftOffset,0,STRAIGHTSPEED-rightOffset,0);
35 | pwmTimeout = millis() + STEPTIME;
36 | }
37 |
38 | void goBack() {
39 | writePwms (0,STRAIGHTSPEED-leftOffset,0,STRAIGHTSPEED-rightOffset);
40 | pwmTimeout = millis() + STEPTIME;
41 | }
42 |
43 | void goLeft () {
44 | writePwms (0,TURNSPEED,TURNSPEED,0);
45 | pwmTimeout = millis() + TURNTIME;
46 | }
47 |
48 | void goRight () {
49 | writePwms (TURNSPEED,0,0,TURNSPEED);
50 | pwmTimeout = millis() + TURNTIME;
51 | }
52 |
53 | /* end pwm class */
54 |
55 | void setup() {
56 | // change "key" to a unique string
57 | commands.addString ( PSTR ( "findkey")); // 0
58 | commands.addString ( PSTR ( "cmd1" )); // 1
59 | commands.addString ( PSTR ( "cmd2" )); // 2
60 | commands.addString ( PSTR ( "cmd3" )); // 3
61 | commands.addString ( PSTR ( "!menu!" )); // 4
62 | Serial.begin (115200);
63 | pinMode (13,OUTPUT);
64 | pinMode (12,OUTPUT);
65 | digitalWrite (13,1);
66 | digitalWrite (12,0);
67 | digitalWrite (13,0);
68 |
69 |
70 | leftOffset = EEPROM.read(0);
71 | if (leftOffset == 255) { // Uninitialized
72 | leftOffset = 0;
73 | EEPROM.write ( 0,leftOffset );
74 | }
75 | rightOffset = EEPROM.read (1);
76 | if (rightOffset == 255) { // Uninitialized
77 | rightOffset = 0;
78 | EEPROM.write ( 0, rightOffset );
79 | }
80 |
81 |
82 | sendCommand ( "AT" );
83 | delay (1000);
84 | digitalWrite (13,1);
85 | sendCommand ( "AT+RST" );
86 | delay (8000);
87 | sendCommand ( "AT+CWMODE=3");
88 | delay (1000);
89 | //sendCommand ( "AT+CWLAP" );
90 | //delay (1000); digitalWrite (13,0);
91 | sendCommand ( "AT+CWJAP=\"SSID\",\"Password\"" );
92 | delay (1000);
93 | digitalWrite (13,1);
94 | sendCommand ( "AT+CIPMUX=1" );
95 | delay (4000);
96 | digitalWrite (13,0);
97 | sendCommand ( "AT+CIPSERVER=1,3333" );
98 | delay (1000);
99 | digitalWrite (13,1);
100 | sendCommand ( "AT+CIPSTO=120" );
101 | delay (1000);
102 | initialized = true;
103 |
104 | goRight();
105 |
106 | }
107 |
108 | void getResponse () {
109 | unsigned long startTime;
110 | char ch;
111 | char lastCh;
112 |
113 | startTime = millis();
114 | lastCh = ' ';
115 | while (millis() < (startTime + 3000))
116 | if (Serial.available() )
117 | {
118 | ch = Serial.read();
119 | if ((lastCh == 'O') && (ch == 'K'))
120 | break;
121 | lastCh = ch;
122 | }
123 |
124 | }
125 |
126 | void sendCommand ( char * cmd ) {
127 | Serial.println ( cmd );
128 | getResponse();
129 | }
130 |
131 | void respond(char * response, boolean force) {
132 | char ch;
133 | int len = strlen (response);
134 | if (!silentRunning || force) {
135 | Serial.print ( "AT+CIPSEND=0,");
136 | Serial.println ( len+2 );
137 | delay (50);
138 | Serial.println (response);
139 | Serial.println ();
140 | delay (50);
141 | Serial.println ( "AT+CIPCLOSE=1");
142 | delay (100);
143 | }
144 | }
145 |
146 | void loop () {
147 | char ch;
148 | int index;
149 | static boolean lastMenu = false;
150 |
151 | if (menu) {
152 | if (!lastMenu) {
153 | lastMenu = true;
154 | Serial.println ("* MENU *" );
155 | Serial.println ("* Enter R for faster right side *" );
156 | Serial.println ("* Enter r for slower right side *" );
157 | Serial.println ("* Enter L for faster left side *" );
158 | Serial.println ("* Enter l for slower left side *" );
159 | }
160 | if (Serial.available() ) {
161 | ch = Serial.read();
162 | switch (ch ) {
163 | case 'r':
164 | case 'R':
165 | Serial.print ( "Right offset " );
166 | if (ch == 'r')
167 | if (rightOffset == 100)
168 | Serial.println ( "Right side can go no slower" );
169 | else
170 | rightOffset = rightOffset + 1;
171 | else
172 | if (rightOffset == 0)
173 | Serial.println ( "Right side can go no faster" );
174 | else
175 | rightOffset = rightOffset - 1;
176 | EEPROM.write(1, rightOffset);
177 | Serial.println ( (int)rightOffset );
178 | break;
179 | case 'L':
180 | case 'l':
181 | Serial.print ( "Left offset " );
182 | if (ch == 'l')
183 | if (leftOffset == 100)
184 | Serial.println ( "Left side can go no slower" );
185 | else
186 | leftOffset = leftOffset + 1;
187 | else
188 | if (leftOffset == 0)
189 | Serial.println ( "Left side can go no faster" );
190 | else
191 | leftOffset = leftOffset - 1;
192 | EEPROM.write (0,leftOffset );
193 | Serial.println ( (int)leftOffset );
194 | break;
195 | case '!':
196 | Serial.println ( "Leaving menu mode" );
197 | menu = false;
198 | lastMenu = false;
199 | break;
200 | case 13:
201 | case 10:
202 | break; // Carriage Return / Line Feed
203 | default:
204 | Serial.print ( "Not understood: " );
205 | Serial.println ( ch );
206 | break;
207 | }
208 | }
209 | } else {
210 | if (pwmTimeout > 0) {
211 | if (millis() > pwmTimeout) {
212 | pwmTimeout = 0;
213 | writePwms (0,0,0,0);
214 | }
215 | }
216 | if (initialized)
217 | {
218 | if (Serial.available() )
219 | {
220 | ch = Serial.read();
221 | index = commands.matchString (ch, false);
222 | if (index > -1) {
223 | switch (index) {
224 | case 0: // Android device is looking for me
225 | respond ("CTS", true);
226 | digitalWrite (12,1);
227 | break;
228 | case 1: // Command 1
229 | respond ("ACK", false);
230 | digitalWrite (13,0);
231 | goLeft();
232 | break;
233 | case 2: // Command 2
234 | respond ("ACK", false );
235 | digitalWrite (13,1);
236 | goRight();
237 | break;
238 | case 3: // Command 3
239 | respond ("ACK",false);
240 | digitalWrite (13,0);
241 | goForward();
242 | break;
243 | case 4: // menu
244 | menu = true;
245 | break;
246 |
247 | default:
248 | break; // Do nothing
249 | }
250 | }
251 | }
252 | }
253 | }
254 | }
255 |
256 |
--------------------------------------------------------------------------------
/ESP8266UDP/PSTRStrings1.cpp:
--------------------------------------------------------------------------------
1 | #include "PSTRStrings1.h"
2 | #include
3 |
4 |
5 | bool PSTRStrings1::checkMatch (int which)
6 | {
7 | bool match = false;
8 | CommandStringType * str;
9 | str = &strings [which];
10 |
11 | if (str->matched)
12 | {
13 | match = true;
14 | str->matched = 0;
15 | }
16 | return match;
17 | }
18 |
19 | void PSTRStrings1::clearMatches ()
20 | {
21 | CommandStringType * str;
22 | for (int i=0;imatched = 0;
26 | }
27 | }
28 |
29 | // This also clears the match flags
30 | void PSTRStrings1::showMatches ( )
31 | {
32 | int count = 0;
33 | CommandStringType * str;
34 | for (int i=0;imatched)
38 | {
39 | if (count++ == 0)
40 | debugUtils.printPSTR ( PSTR ( "Matches:\n" ) );
41 |
42 | Serial.print ( count);
43 | debugUtils.printPSTR ( PSTR ( ")" ) );
44 | printString (i);
45 | debugUtils.printPSTR( PSTR ( "\n" ) );
46 | }
47 | }
48 | if (count==0)
49 | debugUtils.printPSTR ( PSTR ( "No matches detected\n" ) );
50 |
51 | }
52 |
53 | // s = pointer to PSTR string
54 | void PSTRStrings1::addString ( const prog_char * s)
55 | {
56 | CommandStringType * str;
57 | prog_char * ptr;
58 | int index;
59 | int mallocSize = sizeof(CommandStringType) * numberOfStrings;
60 |
61 | if (numStrings == 0) // This is the first one
62 | {
63 | strings = (CommandStringType *) malloc ( mallocSize);
64 | //debugUtils.printPSTR ( PSTR ( "Allocation of " ) );
65 | //Serial.println ( mallocSize );
66 | }
67 |
68 | if (numStrings == numberOfStrings)
69 | debugUtils.printPSTR ( PSTR ( "ERR..PSTRStrings1 list full\n" ) );
70 | else if (numStrings < numberOfStrings) // There is memory allocated for the string
71 | {
72 | str = &strings [numStrings++];
73 |
74 | // str->len = progLen (str->ptr);
75 | str->index = 0;
76 | str->len = 0;
77 | str->matched = 0;
78 | str->ptr = (prog_char *)s;
79 | ptr = (prog_char *)s;
80 | while (pgm_read_byte (ptr++))
81 | str->len = str->len + 1;
82 | }
83 | }
84 |
85 | PSTRStrings1::PSTRStrings1(int _numberOfStrings ):debugUtils()
86 | {
87 | strings = 0;
88 | numStrings = 0;
89 | numberOfStrings = _numberOfStrings;
90 | }
91 |
92 | int PSTRStrings1::stringLen( int which)
93 | {
94 | int len = 0;
95 | CommandStringType * str;
96 | if ((which < numStrings) && (which > -1))
97 | {
98 | str = &strings[which];
99 | len = str->len;
100 | }
101 | return len;
102 | }
103 |
104 | void PSTRStrings1::printString ( int which )
105 | {
106 | CommandStringType * str = &strings[which];
107 | char c;
108 | int len = stringLen ( which );
109 |
110 |
111 | for (int i=0; ilen;
119 | char ch = 0;
120 | char * ptr;
121 | bool debugThis = false;
122 |
123 | /*
124 | if (i>=numStrings)
125 | debugUtils.printPSTR ( PSTR ( "charAt i>=numStrings\n" ) );
126 | else if (i < 0)
127 | debugUtils.printPSTR ( PSTR ( "charAt i<0\n" ) );
128 | else if (j >= len)
129 | {
130 | debugUtils.printPSTR ( PSTR ( "charAt j:" ));
131 | Serial.print (j);
132 | debugUtils.printPSTR ( PSTR ( " >= len:" ));
133 | Serial.print ( len);
134 | debugUtils.printPSTR ( PSTR ( " for " ) );
135 | Serial.print (i);
136 | debugUtils.printPSTR ( PSTR ( "): " ) );
137 | printString ( i );
138 | debugUtils.printPSTR ( PSTR ( "\n" ) );
139 | }
140 | else if (j <0)
141 | debugUtils.printPSTR ( PSTR ( "charAt j<0 \n" ) );
142 | else
143 | */
144 | str = &strings [i];
145 | ptr = str->ptr + j;
146 | ch = pgm_read_byte (ptr);
147 | return ch;
148 | }
149 |
150 | void PSTRStrings1::show ( int startValue, int stopValue )
151 | {
152 | if (startValue < 0)
153 | startValue = 0;
154 | if (stopValue >= numStrings)
155 | stopValue = numStrings;
156 |
157 | for (int i=startValue; ilen;
185 | for (int j=0; jmatched = 1;
198 | matched = i;
199 | //printPSTR ( PSTR ( "Got a match on word ") );
200 | //Serial.println ( i );
201 | break;
202 | }
203 | }
204 | if (matched > -1)
205 | break;
206 | }
207 | */
208 | return matched;
209 | }
210 |
211 |
212 | void PSTRStrings1::clearIndexes()
213 | {
214 | CommandStringType * str;
215 | for (int i=0; iindex = 0;
219 | }
220 | }
221 |
222 | int PSTRStrings1::intersect ( PSTRStrings1 * targetList, int index )
223 | {
224 | int found = -1;
225 | int len;
226 | char ch;
227 | char c;
228 | int count;
229 |
230 | // Check all the current strings
231 | for (int i=0; istringLen(index))
237 | {
238 | count = 0;
239 |
240 | for (int j=0; jcharAt (index,j);
244 | if (ch == c)
245 | count++;
246 | else
247 | break;
248 | if (count == len)
249 | break;
250 | }
251 |
252 | if (count == len)
253 | {
254 | //debugUtils.printPSTR ( PSTR ( "Got an intersect on " ) );
255 | //Serial.println ( i );
256 | found = i;
257 | break;
258 | }
259 | }
260 | }
261 |
262 | return found;
263 | }
264 |
265 | // Check all strings for matches using the supplied ch.
266 | int PSTRStrings1::matchString ( char ch, bool doDebug )
267 | {
268 | int matched = -1;
269 | char c;
270 | CommandStringType * str;
271 | int watching = 1;
272 |
273 |
274 | for (int i=0; iindex);
278 | if (ch == c)
279 | {
280 | if (doDebug && (i==watching))
281 | {
282 | Serial.print ( ch );
283 | debugUtils.printPSTR ( PSTR ( " == " ));
284 | Serial.println ( c );
285 | }
286 | str->index = str->index + 1;
287 | }
288 | else
289 | {
290 | if (doDebug && (i==watching))
291 | {
292 | if ((int) ch < 33)
293 | Serial.print ( (int) ch );
294 | else
295 | Serial.print ( ch );
296 | debugUtils.printPSTR ( PSTR ( " != ") );
297 | if ((int)c < 33)
298 | Serial.println ( (int) c );
299 | else
300 | Serial.println (c);
301 | }
302 | str->index = 0;
303 | }
304 | if (str->index == str->len)
305 | {
306 | matched = i;
307 | clearIndexes();
308 | str->matched = 1;
309 | if (doDebug)
310 | {
311 | debugUtils.printPSTR ( PSTR ( "Matched ") );
312 | Serial.println ( i );
313 | }
314 | break;
315 | }
316 | }
317 | return matched;
318 | }
319 |
320 |
--------------------------------------------------------------------------------
/ESP8266UDP_PWM/PSTRStrings1.cpp:
--------------------------------------------------------------------------------
1 | #include "PSTRStrings1.h"
2 | #include
3 |
4 |
5 | bool PSTRStrings1::checkMatch (int which)
6 | {
7 | bool match = false;
8 | CommandStringType * str;
9 | str = &strings [which];
10 |
11 | if (str->matched)
12 | {
13 | match = true;
14 | str->matched = 0;
15 | }
16 | return match;
17 | }
18 |
19 | void PSTRStrings1::clearMatches ()
20 | {
21 | CommandStringType * str;
22 | for (int i=0;imatched = 0;
26 | }
27 | }
28 |
29 | // This also clears the match flags
30 | void PSTRStrings1::showMatches ( )
31 | {
32 | int count = 0;
33 | CommandStringType * str;
34 | for (int i=0;imatched)
38 | {
39 | if (count++ == 0)
40 | debugUtils.printPSTR ( PSTR ( "Matches:\n" ) );
41 |
42 | Serial.print ( count);
43 | debugUtils.printPSTR ( PSTR ( ")" ) );
44 | printString (i);
45 | debugUtils.printPSTR( PSTR ( "\n" ) );
46 | }
47 | }
48 | if (count==0)
49 | debugUtils.printPSTR ( PSTR ( "No matches detected\n" ) );
50 |
51 | }
52 |
53 | // s = pointer to PSTR string
54 | void PSTRStrings1::addString ( const prog_char * s)
55 | {
56 | CommandStringType * str;
57 | prog_char * ptr;
58 | int index;
59 | int mallocSize = sizeof(CommandStringType) * numberOfStrings;
60 |
61 | if (numStrings == 0) // This is the first one
62 | {
63 | strings = (CommandStringType *) malloc ( mallocSize);
64 | //debugUtils.printPSTR ( PSTR ( "Allocation of " ) );
65 | //Serial.println ( mallocSize );
66 | }
67 |
68 | if (numStrings == numberOfStrings)
69 | debugUtils.printPSTR ( PSTR ( "ERR..PSTRStrings1 list full\n" ) );
70 | else if (numStrings < numberOfStrings) // There is memory allocated for the string
71 | {
72 | str = &strings [numStrings++];
73 |
74 | // str->len = progLen (str->ptr);
75 | str->index = 0;
76 | str->len = 0;
77 | str->matched = 0;
78 | str->ptr = (prog_char *)s;
79 | ptr = (prog_char *)s;
80 | while (pgm_read_byte (ptr++))
81 | str->len = str->len + 1;
82 | }
83 | }
84 |
85 | PSTRStrings1::PSTRStrings1(int _numberOfStrings ):debugUtils()
86 | {
87 | strings = 0;
88 | numStrings = 0;
89 | numberOfStrings = _numberOfStrings;
90 | }
91 |
92 | int PSTRStrings1::stringLen( int which)
93 | {
94 | int len = 0;
95 | CommandStringType * str;
96 | if ((which < numStrings) && (which > -1))
97 | {
98 | str = &strings[which];
99 | len = str->len;
100 | }
101 | return len;
102 | }
103 |
104 | void PSTRStrings1::printString ( int which )
105 | {
106 | CommandStringType * str = &strings[which];
107 | char c;
108 | int len = stringLen ( which );
109 |
110 |
111 | for (int i=0; ilen;
119 | char ch = 0;
120 | char * ptr;
121 | bool debugThis = false;
122 |
123 | /*
124 | if (i>=numStrings)
125 | debugUtils.printPSTR ( PSTR ( "charAt i>=numStrings\n" ) );
126 | else if (i < 0)
127 | debugUtils.printPSTR ( PSTR ( "charAt i<0\n" ) );
128 | else if (j >= len)
129 | {
130 | debugUtils.printPSTR ( PSTR ( "charAt j:" ));
131 | Serial.print (j);
132 | debugUtils.printPSTR ( PSTR ( " >= len:" ));
133 | Serial.print ( len);
134 | debugUtils.printPSTR ( PSTR ( " for " ) );
135 | Serial.print (i);
136 | debugUtils.printPSTR ( PSTR ( "): " ) );
137 | printString ( i );
138 | debugUtils.printPSTR ( PSTR ( "\n" ) );
139 | }
140 | else if (j <0)
141 | debugUtils.printPSTR ( PSTR ( "charAt j<0 \n" ) );
142 | else
143 | */
144 | str = &strings [i];
145 | ptr = str->ptr + j;
146 | ch = pgm_read_byte (ptr);
147 | return ch;
148 | }
149 |
150 | void PSTRStrings1::show ( int startValue, int stopValue )
151 | {
152 | if (startValue < 0)
153 | startValue = 0;
154 | if (stopValue >= numStrings)
155 | stopValue = numStrings;
156 |
157 | for (int i=startValue; ilen;
185 | for (int j=0; jmatched = 1;
198 | matched = i;
199 | //printPSTR ( PSTR ( "Got a match on word ") );
200 | //Serial.println ( i );
201 | break;
202 | }
203 | }
204 | if (matched > -1)
205 | break;
206 | }
207 | */
208 | return matched;
209 | }
210 |
211 |
212 | void PSTRStrings1::clearIndexes()
213 | {
214 | CommandStringType * str;
215 | for (int i=0; iindex = 0;
219 | }
220 | }
221 |
222 | int PSTRStrings1::intersect ( PSTRStrings1 * targetList, int index )
223 | {
224 | int found = -1;
225 | int len;
226 | char ch;
227 | char c;
228 | int count;
229 |
230 | // Check all the current strings
231 | for (int i=0; istringLen(index))
237 | {
238 | count = 0;
239 |
240 | for (int j=0; jcharAt (index,j);
244 | if (ch == c)
245 | count++;
246 | else
247 | break;
248 | if (count == len)
249 | break;
250 | }
251 |
252 | if (count == len)
253 | {
254 | //debugUtils.printPSTR ( PSTR ( "Got an intersect on " ) );
255 | //Serial.println ( i );
256 | found = i;
257 | break;
258 | }
259 | }
260 | }
261 |
262 | return found;
263 | }
264 |
265 | // Check all strings for matches using the supplied ch.
266 | int PSTRStrings1::matchString ( char ch, bool doDebug )
267 | {
268 | int matched = -1;
269 | char c;
270 | CommandStringType * str;
271 | int watching = 1;
272 |
273 |
274 | for (int i=0; iindex);
278 | if (ch == c)
279 | {
280 | if (doDebug && (i==watching))
281 | {
282 | Serial.print ( ch );
283 | debugUtils.printPSTR ( PSTR ( " == " ));
284 | Serial.println ( c );
285 | }
286 | str->index = str->index + 1;
287 | }
288 | else
289 | {
290 | if (doDebug && (i==watching))
291 | {
292 | if ((int) ch < 33)
293 | Serial.print ( (int) ch );
294 | else
295 | Serial.print ( ch );
296 | debugUtils.printPSTR ( PSTR ( " != ") );
297 | if ((int)c < 33)
298 | Serial.println ( (int) c );
299 | else
300 | Serial.println (c);
301 | }
302 | str->index = 0;
303 | }
304 | if (str->index == str->len)
305 | {
306 | matched = i;
307 | clearIndexes();
308 | str->matched = 1;
309 | if (doDebug)
310 | {
311 | debugUtils.printPSTR ( PSTR ( "Matched ") );
312 | Serial.println ( i );
313 | }
314 | break;
315 | }
316 | }
317 | return matched;
318 | }
319 |
320 |
--------------------------------------------------------------------------------
/ESP8266UDP_CommCheck/PSTRStrings1.cpp:
--------------------------------------------------------------------------------
1 | #include "PSTRStrings1.h"
2 | #include
3 |
4 |
5 | bool PSTRStrings1::checkMatch (int which)
6 | {
7 | bool match = false;
8 | CommandStringType * str;
9 | str = &strings [which];
10 |
11 | if (str->matched)
12 | {
13 | match = true;
14 | str->matched = 0;
15 | }
16 | return match;
17 | }
18 |
19 | void PSTRStrings1::clearMatches ()
20 | {
21 | CommandStringType * str;
22 | for (int i=0;imatched = 0;
26 | }
27 | }
28 |
29 | // This also clears the match flags
30 | void PSTRStrings1::showMatches ( )
31 | {
32 | int count = 0;
33 | CommandStringType * str;
34 | for (int i=0;imatched)
38 | {
39 | if (count++ == 0)
40 | debugUtils.printPSTR ( PSTR ( "Matches:\n" ) );
41 |
42 | Serial.print ( count);
43 | debugUtils.printPSTR ( PSTR ( ")" ) );
44 | printString (i);
45 | debugUtils.printPSTR( PSTR ( "\n" ) );
46 | }
47 | }
48 | if (count==0)
49 | debugUtils.printPSTR ( PSTR ( "No matches detected\n" ) );
50 |
51 | }
52 |
53 | // s = pointer to PSTR string
54 | void PSTRStrings1::addString ( const prog_char * s)
55 | {
56 | CommandStringType * str;
57 | prog_char * ptr;
58 | int index;
59 | int mallocSize = sizeof(CommandStringType) * numberOfStrings;
60 |
61 | if (numStrings == 0) // This is the first one
62 | {
63 | strings = (CommandStringType *) malloc ( mallocSize);
64 | //debugUtils.printPSTR ( PSTR ( "Allocation of " ) );
65 | //Serial.println ( mallocSize );
66 | }
67 |
68 | if (numStrings == numberOfStrings)
69 | debugUtils.printPSTR ( PSTR ( "ERR..PSTRStrings1 list full\n" ) );
70 | else if (numStrings < numberOfStrings) // There is memory allocated for the string
71 | {
72 | str = &strings [numStrings++];
73 |
74 | // str->len = progLen (str->ptr);
75 | str->index = 0;
76 | str->len = 0;
77 | str->matched = 0;
78 | str->ptr = (prog_char *)s;
79 | ptr = (prog_char *)s;
80 | while (pgm_read_byte (ptr++))
81 | str->len = str->len + 1;
82 | }
83 | }
84 |
85 | PSTRStrings1::PSTRStrings1(int _numberOfStrings ):debugUtils()
86 | {
87 | strings = 0;
88 | numStrings = 0;
89 | numberOfStrings = _numberOfStrings;
90 | }
91 |
92 | int PSTRStrings1::stringLen( int which)
93 | {
94 | int len = 0;
95 | CommandStringType * str;
96 | if ((which < numStrings) && (which > -1))
97 | {
98 | str = &strings[which];
99 | len = str->len;
100 | }
101 | return len;
102 | }
103 |
104 | void PSTRStrings1::printString ( int which )
105 | {
106 | CommandStringType * str = &strings[which];
107 | char c;
108 | int len = stringLen ( which );
109 |
110 |
111 | for (int i=0; ilen;
119 | char ch = 0;
120 | char * ptr;
121 | bool debugThis = false;
122 |
123 | /*
124 | if (i>=numStrings)
125 | debugUtils.printPSTR ( PSTR ( "charAt i>=numStrings\n" ) );
126 | else if (i < 0)
127 | debugUtils.printPSTR ( PSTR ( "charAt i<0\n" ) );
128 | else if (j >= len)
129 | {
130 | debugUtils.printPSTR ( PSTR ( "charAt j:" ));
131 | Serial.print (j);
132 | debugUtils.printPSTR ( PSTR ( " >= len:" ));
133 | Serial.print ( len);
134 | debugUtils.printPSTR ( PSTR ( " for " ) );
135 | Serial.print (i);
136 | debugUtils.printPSTR ( PSTR ( "): " ) );
137 | printString ( i );
138 | debugUtils.printPSTR ( PSTR ( "\n" ) );
139 | }
140 | else if (j <0)
141 | debugUtils.printPSTR ( PSTR ( "charAt j<0 \n" ) );
142 | else
143 | */
144 | str = &strings [i];
145 | ptr = str->ptr + j;
146 | ch = pgm_read_byte (ptr);
147 | return ch;
148 | }
149 |
150 | void PSTRStrings1::show ( int startValue, int stopValue )
151 | {
152 | if (startValue < 0)
153 | startValue = 0;
154 | if (stopValue >= numStrings)
155 | stopValue = numStrings;
156 |
157 | for (int i=startValue; i= numStrings)
175 | stopValue = numStrings;
176 |
177 | for (int i=startValue; ilen;
204 | for (int j=0; jmatched = 1;
217 | matched = i;
218 | //printPSTR ( PSTR ( "Got a match on word ") );
219 | //Serial.println ( i );
220 | break;
221 | }
222 | }
223 | if (matched > -1)
224 | break;
225 | }
226 | */
227 | return matched;
228 | }
229 |
230 |
231 | void PSTRStrings1::clearIndexes()
232 | {
233 | CommandStringType * str;
234 | for (int i=0; iindex = 0;
238 | }
239 | }
240 |
241 | int PSTRStrings1::intersect ( PSTRStrings1 * targetList, int index )
242 | {
243 | int found = -1;
244 | int len;
245 | char ch;
246 | char c;
247 | int count;
248 |
249 | // Check all the current strings
250 | for (int i=0; istringLen(index))
256 | {
257 | count = 0;
258 |
259 | for (int j=0; jcharAt (index,j);
263 | if (ch == c)
264 | count++;
265 | else
266 | break;
267 | if (count == len)
268 | break;
269 | }
270 |
271 | if (count == len)
272 | {
273 | //debugUtils.printPSTR ( PSTR ( "Got an intersect on " ) );
274 | //Serial.println ( i );
275 | found = i;
276 | break;
277 | }
278 | }
279 | }
280 |
281 | return found;
282 | }
283 |
284 | // Check all strings for matches using the supplied ch.
285 | int PSTRStrings1::matchString ( char ch, bool doDebug )
286 | {
287 | int matched = -1;
288 | char c;
289 | CommandStringType * str;
290 | int watching = 1;
291 |
292 |
293 | for (int i=0; iindex);
297 | if (ch == c)
298 | {
299 | if (doDebug && (i==watching))
300 | {
301 | Serial.print ( ch );
302 | debugUtils.printPSTR ( PSTR ( " == " ));
303 | Serial.println ( c );
304 | }
305 | str->index = str->index + 1;
306 | }
307 | else
308 | {
309 | if (doDebug && (i==watching))
310 | {
311 | if ((int) ch < 33)
312 | Serial.print ( (int) ch );
313 | else
314 | Serial.print ( ch );
315 | debugUtils.printPSTR ( PSTR ( " != ") );
316 | if ((int)c < 33)
317 | Serial.println ( (int) c );
318 | else
319 | Serial.println (c);
320 | }
321 | str->index = 0;
322 | }
323 | if (str->index == str->len)
324 | {
325 | matched = i;
326 | clearIndexes();
327 | str->matched = 1;
328 | if (doDebug)
329 | {
330 | debugUtils.printPSTR ( PSTR ( "Matched ") );
331 | Serial.println ( i );
332 | }
333 | break;
334 | }
335 | }
336 | return matched;
337 | }
338 |
339 |
--------------------------------------------------------------------------------
/ESP8266UDP_CommCheck/ESP8266UDP_CommCheck.ino:
--------------------------------------------------------------------------------
1 | #include "PSTRStrings1.h"
2 | #include
3 | #include
4 | #include
5 |
6 | PSTRStrings1 wifiCommands(5); // WIFI commands
7 | PSTRStrings1 response(5); // Responses
8 | PSTRStrings1 serialCommands(5); // Serial Commands
9 |
10 | SoftwareSerial mySerial (12,11); // RX, TX
11 |
12 | boolean silentRunning = true;
13 | boolean menu = false;
14 | int state = 0;
15 | int eepromIndex = 0;
16 |
17 | void setup() {
18 | // change "key" to a unique string
19 | wifiCommands.addString ( PSTR ( "findkey")); // 0
20 | wifiCommands.addString ( PSTR ( "cmd1" )); // 1
21 | wifiCommands.addString ( PSTR ( "cmd2" )); // 2
22 | wifiCommands.addString ( PSTR ( "cmd3" )); // 3
23 |
24 | response.addString ( PSTR ( "OK" ));
25 | response.addString ( PSTR ( "ready" ));
26 | response.addString ( PSTR ( "no change" ));
27 | response.addString ( PSTR ( "busy inet..." ));
28 |
29 | serialCommands.addString ( PSTR ( "launch" ) );
30 | serialCommands.addString ( PSTR ( "ssid " ) );
31 | serialCommands.addString ( PSTR ( "password " ) );
32 | serialCommands.addString ( PSTR ( "key " ) );
33 | serialCommands.addString ( PSTR ( "AT+" ) );
34 |
35 | Serial.begin (115200);
36 |
37 | Serial.println ( "\nAT+CIOBAUD? for baudrate\nReady" );
38 | Serial.println ( "User Commands: " );
39 | serialCommands.showStrings();
40 | Serial.println ( "Memory free: " );
41 | Serial.println ( freeMemory() );
42 | mySerial.begin (9600);
43 | }
44 |
45 | void getResponse (boolean waitOK) {
46 |
47 | unsigned long startTime;
48 | char ch;
49 | int index;
50 | bool gotResponse = false;
51 |
52 | startTime = millis();
53 | // Wait 4 seconds maximum
54 | while (1) {
55 | if (millis() > (startTime + 10000))
56 | {
57 | Serial.println ( "10 seconds expired" );
58 | break;
59 | }
60 | if (mySerial.available())
61 | {
62 | ch = mySerial.read();
63 | Serial.print ( ch );
64 | index = response.matchString (ch, false);
65 | gotResponse = true;
66 | if (index == 2) { // no change
67 | //Serial.println ( "Found no change" );
68 | break;
69 | }
70 |
71 | if (waitOK) {
72 | if (index == 0) {
73 | //Serial.println ( "Found OK" );
74 | break;
75 | }
76 | } else { // wait for ready
77 | if (index == 1) {
78 | //Serial.println ( "Found ready" );
79 | break;
80 | }
81 | }
82 | }
83 | }
84 | Serial.println ( "\nResponse Received" );
85 | }
86 |
87 | void sendCommand ( char * cmd, boolean wait ) {
88 |
89 | Serial.print ( "Send command: " );
90 | Serial.println ( cmd );
91 | mySerial.println ( cmd );
92 | getResponse(wait);
93 | }
94 |
95 | void showEeprom (int index ) {
96 |
97 | char ch;
98 | ch = EEPROM.read ( index );
99 | while (int(ch) != 0) {
100 | Serial.print ( ch );
101 | index = index + 1;
102 | ch = EEPROM.read ( index );
103 | }
104 | Serial.println ();
105 |
106 | }
107 |
108 | void sendSsidPassword () {
109 |
110 | char cmd[] = "AT+CWJAP=\" ";
111 | int index = 0;
112 | int cmdIndex = 10;
113 | char ch;
114 |
115 | while (true) {
116 | ch = EEPROM.read ( index );
117 | index = index + 1;
118 | if (ch == 0)
119 | break;
120 |
121 | cmd[cmdIndex] = ch;
122 | cmdIndex = cmdIndex + 1;
123 | }
124 | cmd[cmdIndex] = 34; // "
125 | cmdIndex = cmdIndex + 1;
126 | cmd[cmdIndex] = ',';
127 | cmdIndex = cmdIndex + 1;
128 | cmd[cmdIndex] = 34; // '\"';
129 | cmdIndex = cmdIndex + 1;
130 |
131 | index = 0;
132 | while (true) {
133 | ch = EEPROM.read (index + 20);
134 | index = index + 1;
135 | if (ch == 0)
136 | break;
137 | cmd[cmdIndex] = ch;
138 | cmdIndex = cmdIndex + 1;
139 | }
140 | cmd[cmdIndex] = 34; // '\"';
141 | cmdIndex = cmdIndex + 1;
142 | cmd[cmdIndex] = 0;
143 | sendCommand ( cmd, true );
144 | }
145 |
146 | void launch () {
147 | Serial.println ( "Initialize the ESP8266" );
148 | sendCommand ( "AT", true );
149 | sendCommand ( "AT+RST", false );
150 | sendCommand ( "AT+CWMODE=3", true);
151 | sendCommand ( "AT+CWLAP", true );
152 | // Send the SSID and Password from EEPROM
153 | sendSsidPassword ();
154 | sendCommand ( "AT+CIPMUX=1",true);
155 | sendCommand ( "AT+CIPSERVER=1,3333", true); // Port 3333
156 | sendCommand ( "AT+CIPSTO=120",true );
157 | Serial.print ( "Launch complete");
158 | }
159 |
160 | void respond(char * response, boolean force) {
161 |
162 | char ch;
163 | char cmd[]="AT+CIPSEND=0, ";
164 | Serial.print ( "Sending response: " );
165 | Serial.println ( response );
166 | int len = strlen (response) + 2;
167 | if (!silentRunning || force) {
168 | if (len>9) {
169 | cmd[13] = '1';
170 | cmd[14] = '0' + len - 10;
171 | cmd[15] = 0;
172 | } else {
173 | cmd[13] = '0' + len;
174 | cmd[14] = 0;
175 | }
176 | mySerial.println (cmd);
177 | delay (150);
178 | mySerial.println (response);
179 | //mySerial.println (); // necesary?
180 | Serial.println ( response );
181 | delay (500);
182 | mySerial.println ( "AT+CIPCLOSE=1");
183 | delay (100);
184 | }
185 | }
186 |
187 | void loop () {
188 | char ch;
189 | int index;
190 | static boolean lastMenu = false;
191 | static int state = 0;
192 | int match = 0;
193 | int len;
194 | int i;
195 | static char serialString [30];
196 | static int serialIndex = 0;
197 |
198 | if (Serial.available()) {
199 | ch = Serial.read();
200 | //Serial.print ( "first read: " );
201 | Serial.print ( ch );
202 | if ((ch == 13) || (ch == 10)) {
203 | //Serial.println ( "Got a CR or LF" );
204 | if (strlen (serialString) > 0) {
205 | len = strlen (serialString);
206 | Serial.print ( "serialIndex: " );
207 | Serial.print ( serialIndex );
208 | Serial.print ( " len: " );
209 | Serial.print ( len );
210 | Serial.print ( " serialString: " );
211 | Serial.println ( serialString );
212 | match = -1;
213 | for (i=0; i -1) {
288 | Serial.println ();
289 | switch (index) {
290 | case 0: // Android device is looking for me
291 | respond ("CTS", true);
292 | break;
293 | case 1: // Command 1
294 | respond ("ACK", false);
295 | break;
296 | case 2: // Command 2
297 | respond ("ACK", false );
298 | break;
299 | case 3: // Command 3
300 | respond ("ACK",false);
301 | break;
302 | case 4: // menu
303 | menu = true;
304 | break;
305 | default:
306 | break; // Do nothing
307 | }
308 | }
309 | }
310 | }
311 |
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/src/com/esp8266_udp/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.esp8266_udp;
2 |
3 | import java.io.IOException;
4 | import java.net.DatagramPacket;
5 | import java.net.DatagramSocket;
6 | import java.net.InetAddress;
7 | import java.net.InterfaceAddress;
8 | import java.net.NetworkInterface;
9 | import java.net.SocketException;
10 | import java.util.Enumeration;
11 |
12 | import com.esp8266_udp.R;
13 |
14 | import android.support.v7.app.ActionBarActivity;
15 | import android.annotation.SuppressLint;
16 | import android.content.pm.ActivityInfo;
17 | import android.os.Bundle;
18 | import android.util.Log;
19 | import android.view.Menu;
20 | import android.view.MenuItem;
21 | import android.view.View;
22 | import android.view.View.OnClickListener;
23 | import android.os.StrictMode;
24 | import android.widget.Button;
25 | import android.widget.EditText;
26 | import android.widget.TextView;
27 |
28 | @SuppressLint("NewApi")
29 | public class MainActivity extends ActionBarActivity {
30 |
31 | private String localNetwork = ""; // Change this to match your subnet
32 | private int hostPort = 3333;
33 | private Button btnFind;
34 | private EditText txtKey;
35 | private Button btnCmd1;
36 | private Button btnCmd2;
37 | private Button btnCmd3;
38 | private TextView txtStatus;
39 | private MyDatagramReceiver myDatagramReceiver;
40 | private String statusString;
41 | private DatagramPacket sendPacket;
42 |
43 | @Override
44 | protected void onDestroy() {
45 | // TODO Auto-generated method stub
46 | myDatagramReceiver.kill();
47 | super.onDestroy();
48 | }
49 |
50 |
51 | @Override
52 | protected void onCreate(Bundle savedInstanceState) {
53 | myDatagramReceiver = new MyDatagramReceiver();
54 | super.onCreate(savedInstanceState);
55 | setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
56 | setContentView(R.layout.activity_main);
57 |
58 | StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
59 | StrictMode.setThreadPolicy(policy);
60 |
61 | txtKey = (EditText) findViewById(R.id.txtKey);
62 |
63 | txtStatus = (TextView) findViewById (R.id.txtStatus);
64 |
65 | // Find the device with the given key
66 | btnFind = (Button) findViewById(R.id.btnFind);
67 | btnFind.setOnClickListener(new OnClickListener() {
68 | @SuppressLint("NewApi")
69 | public void onClick(View v) {
70 | myDatagramReceiver.discoverDeviceAddr (localNetwork);
71 | }
72 | });
73 |
74 | btnCmd1 = (Button) findViewById(R.id.btnCmd1);
75 | btnCmd1.setOnClickListener(new OnClickListener() {
76 | @SuppressLint("NewApi")
77 | public void onClick(View v) {
78 | myDatagramReceiver.sendMessage ("cmd1" );
79 | }
80 | });
81 |
82 | btnCmd2 = (Button) findViewById(R.id.btnCmd2);
83 | btnCmd2.setOnClickListener(new OnClickListener() {
84 | @SuppressLint("NewApi")
85 | public void onClick(View v) {
86 | myDatagramReceiver.sendMessage ("cmd2" );
87 | }
88 | });
89 |
90 | btnCmd3 = (Button) findViewById(R.id.btnCmd3);
91 | btnCmd3.setOnClickListener(new OnClickListener() {
92 | @SuppressLint("NewApi")
93 | public void onClick(View v) {
94 | myDatagramReceiver.sendMessage ("cmd3" );
95 | }
96 | });
97 |
98 | myDatagramReceiver.start();
99 |
100 | }
101 |
102 |
103 | @Override
104 | public boolean onCreateOptionsMenu(Menu menu) {
105 | // Inflate the menu; this adds items to the action bar if it is present.
106 | getMenuInflater().inflate(R.menu.main, menu);
107 | return true;
108 | }
109 |
110 | @Override
111 | public boolean onOptionsItemSelected(MenuItem item) {
112 | // Handle action bar item clicks here. The action bar will
113 | // automatically handle clicks on the Home/Up button, so long
114 | // as you specify a parent activity in AndroidManifest.xml.
115 | int id = item.getItemId();
116 | if (id == R.id.action_settings) {
117 | return true;
118 | }
119 | return super.onOptionsItemSelected(item);
120 | }
121 |
122 | private class MyDatagramReceiver extends Thread {
123 |
124 | private boolean bKeepRunning = true;
125 | private String newMessage = "";
126 | private int msgNumber = 0;
127 | private int lastMsgNumber = 0;
128 | private DatagramSocket socket = null;
129 | public InetAddress deviceAddress = null;
130 | private String myIpAddress;
131 | private InetAddress myAddress = null;
132 | private String receivedData;
133 | private String deviceIpAddress = "";
134 |
135 | public void kill() {
136 | socket.close();
137 | }
138 |
139 |
140 | public void sendMessage(String msg) {
141 |
142 | newMessage = msg;
143 | msgNumber = msgNumber + 1;
144 | }
145 |
146 | public void wait(int millis) {
147 | try {
148 | Thread.sleep(millis); // Allow background task to run
149 | } catch (Exception e) {
150 | }
151 | }
152 |
153 | public DatagramPacket getPacket() {
154 | DatagramPacket receivePacket = null;
155 | byte[] lmessage = new byte[100];
156 |
157 | for (int i = 0; i < 32; i++)
158 | lmessage[i] = 0;
159 | receivePacket = new DatagramPacket(lmessage, lmessage.length);
160 | try {
161 | socket.receive(receivePacket);
162 | } catch (IOException io) {
163 | System.out.println("getPacket, IO Exception getting a packet " + io);
164 | receivePacket = null;
165 | }
166 | return receivePacket;
167 | }
168 |
169 | public boolean getReceivePacket() {
170 | DatagramPacket receivedPacket = getPacket();
171 | boolean gotPacket = false;
172 | if (receivedPacket != null) {
173 | String info = new String(receivedPacket.getData());
174 | receivedData = new String(info.substring(0,receivedPacket.getLength()));
175 | System.out.println("Received " + receivedData + " from device");
176 | statusString = "Received: " + receivedData;
177 | runOnUiThread(updateTxtStatus);
178 | gotPacket = true;
179 | }
180 | return gotPacket;
181 | }
182 |
183 | @SuppressLint("NewApi")
184 | public String getHostName(InterfaceAddress ia) {
185 | String addr = "";
186 | int index;
187 | try {
188 | String a = new String(ia.toString());
189 | index = a.indexOf("/", 2);
190 | addr = new String(a.substring(1, index));
191 | System.out.println("getHostName(InterfaceAddress): " + addr
192 | + ".");
193 | } catch (Exception e) {
194 | System.out
195 | .println("Exception in getHostName(InterfaceAddress)");
196 | }
197 | return addr;
198 | }
199 |
200 | @SuppressLint("NewApi")
201 | public String getHostName(InetAddress ia) {
202 | String addr = "";
203 | int index;
204 | try {
205 | String a = new String(ia.toString());
206 | index = a.indexOf("/", 2);
207 | if (index == -1)
208 | addr = new String(a.substring(1));
209 | else
210 | addr = new String(a.substring(1, index));
211 | System.out.println("getHostName(InetAddress):" + addr + ".");
212 | } catch (Exception e) {
213 | System.out.println("Exception in getHostName(InetAddress)");
214 | }
215 | return addr;
216 | }
217 |
218 | // String deviceIp: Address on local network like 192.168.0.255
219 | public String discoverDeviceAddr(String deviceIp) {
220 | /*
221 | * Send 'find' + txtKey and receive the packet response
222 | * return the address associated with the response from the device
223 | */
224 | String newMessage = "findkey"; // + txtKey.getText();
225 | String addr = "";
226 | int len;
227 |
228 | try {
229 | deviceAddress = InetAddress.getByName(deviceIp);
230 | System.out.println ( "deviceAddress: " + deviceAddress + " hostPort: " + hostPort);
231 |
232 | len = newMessage.length();
233 | System.out.println ( "newMessage.length(): " + len );
234 | System.out.println ( "newMessage:" + newMessage);
235 | sendPacket = new DatagramPacket(newMessage.getBytes(),newMessage.length(), deviceAddress, hostPort);
236 |
237 | try {
238 | System.out.println("discoverDeviceAddr, " + myIpAddress + ": Sending RTS");
239 | socket.send(sendPacket);
240 | try {
241 | statusString = new String(newMessage + " to " + deviceIp + ":" + hostPort);
242 | runOnUiThread(updateTxtStatus);
243 |
244 | getPacket(); // First, we receive the echo.
245 | // Now receive the packet from the device
246 | DatagramPacket devicePacket = getPacket();
247 | if (devicePacket == null)
248 | System.out.println ( "Got a null response (getPacket)");
249 | else {
250 | try {
251 | InetAddress comm_ip = devicePacket.getAddress();
252 | addr = new String(getHostName(comm_ip));
253 | System.out.println("Device discovered at: ");
254 | System.out.println(addr);
255 | statusString = new String ("Device address discovered at: " + addr);
256 | runOnUiThread(updateTxtStatus);
257 | } catch (Exception k) {
258 | System.out.println ( "Could not getAddress " + k );
259 | }
260 | }
261 | } catch (Exception j) {
262 | System.out.println ( "Could not get packet" + j);
263 | }
264 |
265 | } catch (Exception i) {
266 | System.out.println("Could not socket.send: " + i);
267 | }
268 |
269 | } catch (Exception e) {
270 | System.out.println("Could not create a sendPacket1: " + e);
271 | }
272 | return addr;
273 | }
274 |
275 | @SuppressLint("NewApi")
276 | // Get my ip address
277 | public String ip() {
278 | String addr = "";
279 | int lastDot = 0;
280 | try {
281 | Enumeration nis = NetworkInterface
282 | .getNetworkInterfaces();
283 | NetworkInterface ni;
284 | while (nis.hasMoreElements() && (myAddress == null)) {
285 | ni = nis.nextElement();
286 | if (!ni.isLoopback() && ni.isUp()) {
287 | for (InterfaceAddress ia : ni.getInterfaceAddresses()) {
288 | // filter for ipv4/ipv6
289 | if (ia.getAddress().getAddress().length == 4) {
290 | // 4 for ipv4, 16 for ipv6
291 | try {
292 | addr = getHostName(ia);
293 | } catch (Exception e) {
294 | System.out.println("Some error");
295 | }
296 | System.out.println("my ip address: " + addr
297 | + ".");
298 | statusString = new String ( "my ip address = " + addr);
299 | // update localNetwork
300 | lastDot = addr.lastIndexOf ( ".");
301 | localNetwork = new String (addr.substring (0,lastDot) + ".255"); // ".70"); // ".255");
302 | System.out.println ( "localNetwork:" + localNetwork);
303 |
304 | break;
305 | }
306 | }
307 | }
308 | }
309 | } catch (SocketException s) {
310 | // NOTE: in AndroidManifest.xml,
311 | //
312 | System.out.println("Exception in ip()");
313 | }
314 | return addr;
315 | }
316 |
317 | public void run() {
318 | System.out.println ( "DataGramReceiver.run()");
319 |
320 | if (deviceIpAddress.equals("")) {
321 | try {
322 | System.out.println("Get the socket.");
323 | socket = new DatagramSocket(hostPort);
324 | System.out.println("setSoTimeout");
325 | socket.setSoTimeout(3000); // Allow enough time for the device to respond
326 | System.out.println("setReuseAddress");
327 | socket.setReuseAddress(true); // why?
328 | } catch (Exception e) {
329 | Log.e("UDP", "C: Error", e);
330 | }
331 |
332 | myIpAddress = new String(ip());
333 |
334 | while (deviceIpAddress.equals ("")) {
335 | // Get the String for device Address
336 | deviceIpAddress = new String(discoverDeviceAddr(localNetwork)); // Get device address
337 | wait (2500);
338 | }
339 | System.out.println("deviceIpAddress: " + deviceIpAddress);
340 | // Get the InetAddress for deviceAddress
341 | try {
342 | deviceAddress = InetAddress.getByName(deviceIpAddress);
343 | } catch (Exception e) {
344 | Log.e("UDP", "C: Error", e);
345 | }
346 |
347 | statusString = new String ("Device: " + deviceIpAddress);
348 | runOnUiThread(updateTxtStatus);
349 | }
350 |
351 | try {
352 | // DatagramPacket sendPacket;
353 | System.out.println ( "Run forever");
354 | while (bKeepRunning) {
355 |
356 | try {
357 | if (msgNumber != lastMsgNumber) {
358 | lastMsgNumber = msgNumber;
359 | sendPacket = new DatagramPacket(
360 | newMessage.getBytes(), newMessage.length(),
361 | deviceAddress, hostPort);
362 | System.out.println("Send:" + newMessage + " to " + deviceIpAddress);
363 | socket.send(sendPacket);
364 | /*
365 | while (true) {
366 | socket.send(sendPacket);
367 | //statusString = "Sending: " + newMessage;
368 | //runOnUiThread (updateTxtStatus);
369 | if (getReceivePacket()) {
370 | //statusString = receivedData;
371 | //runOnUiThread (updateTxtStatus);
372 | System.out.println ( "Got back response: " + receivedData + ".");
373 | if (receivedData.trim().equals("ACK")) {
374 | statusString = "Device Ack'd " + newMessage;
375 | runOnUiThread (updateTxtStatus);
376 | break;
377 | } else {
378 | statusString = "Device failed to ACK";
379 | runOnUiThread (updateTxtStatus);
380 | }
381 | }
382 | }
383 | */
384 | }
385 | } catch (Throwable e) {
386 | e.printStackTrace();
387 | Log.e("UDP", "D: Error", e);
388 | }
389 |
390 | }
391 |
392 | } catch (Exception e) {
393 | Log.e("UDP", "C: Error", e);
394 | }
395 |
396 |
397 | }
398 |
399 | }
400 |
401 | private Runnable updateTxtStatus = new Runnable() {
402 | /* Update the text field */
403 | public void run() {
404 | txtStatus.setText(statusString);
405 | }
406 | };
407 |
408 |
409 |
410 | }
411 |
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/bin/R.txt:
--------------------------------------------------------------------------------
1 | int anim abc_fade_in 0x7f040000
2 | int anim abc_fade_out 0x7f040001
3 | int anim abc_slide_in_bottom 0x7f040002
4 | int anim abc_slide_in_top 0x7f040003
5 | int anim abc_slide_out_bottom 0x7f040004
6 | int anim abc_slide_out_top 0x7f040005
7 | int attr actionBarDivider 0x7f01000f
8 | int attr actionBarItemBackground 0x7f010010
9 | int attr actionBarSize 0x7f01000e
10 | int attr actionBarSplitStyle 0x7f01000c
11 | int attr actionBarStyle 0x7f01000b
12 | int attr actionBarTabBarStyle 0x7f010008
13 | int attr actionBarTabStyle 0x7f010007
14 | int attr actionBarTabTextStyle 0x7f010009
15 | int attr actionBarWidgetTheme 0x7f01000d
16 | int attr actionButtonStyle 0x7f010016
17 | int attr actionDropDownStyle 0x7f010047
18 | int attr actionLayout 0x7f01004e
19 | int attr actionMenuTextAppearance 0x7f010011
20 | int attr actionMenuTextColor 0x7f010012
21 | int attr actionModeBackground 0x7f01003c
22 | int attr actionModeCloseButtonStyle 0x7f01003b
23 | int attr actionModeCloseDrawable 0x7f01003e
24 | int attr actionModeCopyDrawable 0x7f010040
25 | int attr actionModeCutDrawable 0x7f01003f
26 | int attr actionModeFindDrawable 0x7f010044
27 | int attr actionModePasteDrawable 0x7f010041
28 | int attr actionModePopupWindowStyle 0x7f010046
29 | int attr actionModeSelectAllDrawable 0x7f010042
30 | int attr actionModeShareDrawable 0x7f010043
31 | int attr actionModeSplitBackground 0x7f01003d
32 | int attr actionModeStyle 0x7f01003a
33 | int attr actionModeWebSearchDrawable 0x7f010045
34 | int attr actionOverflowButtonStyle 0x7f01000a
35 | int attr actionProviderClass 0x7f010050
36 | int attr actionViewClass 0x7f01004f
37 | int attr activityChooserViewStyle 0x7f01006c
38 | int attr background 0x7f01002f
39 | int attr backgroundSplit 0x7f010031
40 | int attr backgroundStacked 0x7f010030
41 | int attr buttonBarButtonStyle 0x7f010018
42 | int attr buttonBarStyle 0x7f010017
43 | int attr customNavigationLayout 0x7f010032
44 | int attr disableChildrenWhenDisabled 0x7f010054
45 | int attr displayOptions 0x7f010028
46 | int attr divider 0x7f01002e
47 | int attr dividerHorizontal 0x7f01001b
48 | int attr dividerPadding 0x7f010056
49 | int attr dividerVertical 0x7f01001a
50 | int attr dropDownListViewStyle 0x7f010021
51 | int attr dropdownListPreferredItemHeight 0x7f010048
52 | int attr expandActivityOverflowButtonDrawable 0x7f01006b
53 | int attr height 0x7f010026
54 | int attr homeAsUpIndicator 0x7f010013
55 | int attr homeLayout 0x7f010033
56 | int attr icon 0x7f01002c
57 | int attr iconifiedByDefault 0x7f01005a
58 | int attr indeterminateProgressStyle 0x7f010035
59 | int attr initialActivityCount 0x7f01006a
60 | int attr isLightTheme 0x7f010059
61 | int attr itemPadding 0x7f010037
62 | int attr listChoiceBackgroundIndicator 0x7f01004c
63 | int attr listPopupWindowStyle 0x7f010022
64 | int attr listPreferredItemHeight 0x7f01001c
65 | int attr listPreferredItemHeightLarge 0x7f01001e
66 | int attr listPreferredItemHeightSmall 0x7f01001d
67 | int attr listPreferredItemPaddingLeft 0x7f01001f
68 | int attr listPreferredItemPaddingRight 0x7f010020
69 | int attr logo 0x7f01002d
70 | int attr navigationMode 0x7f010027
71 | int attr paddingEnd 0x7f010039
72 | int attr paddingStart 0x7f010038
73 | int attr panelMenuListTheme 0x7f01004b
74 | int attr panelMenuListWidth 0x7f01004a
75 | int attr popupMenuStyle 0x7f010049
76 | int attr popupPromptView 0x7f010053
77 | int attr progressBarPadding 0x7f010036
78 | int attr progressBarStyle 0x7f010034
79 | int attr prompt 0x7f010051
80 | int attr queryHint 0x7f01005b
81 | int attr searchDropdownBackground 0x7f01005c
82 | int attr searchResultListItemHeight 0x7f010065
83 | int attr searchViewAutoCompleteTextView 0x7f010069
84 | int attr searchViewCloseIcon 0x7f01005d
85 | int attr searchViewEditQuery 0x7f010061
86 | int attr searchViewEditQueryBackground 0x7f010062
87 | int attr searchViewGoIcon 0x7f01005e
88 | int attr searchViewSearchIcon 0x7f01005f
89 | int attr searchViewTextField 0x7f010063
90 | int attr searchViewTextFieldRight 0x7f010064
91 | int attr searchViewVoiceIcon 0x7f010060
92 | int attr selectableItemBackground 0x7f010019
93 | int attr showAsAction 0x7f01004d
94 | int attr showDividers 0x7f010055
95 | int attr spinnerDropDownItemStyle 0x7f010058
96 | int attr spinnerMode 0x7f010052
97 | int attr spinnerStyle 0x7f010057
98 | int attr subtitle 0x7f010029
99 | int attr subtitleTextStyle 0x7f01002b
100 | int attr textAllCaps 0x7f01006d
101 | int attr textAppearanceLargePopupMenu 0x7f010014
102 | int attr textAppearanceListItem 0x7f010023
103 | int attr textAppearanceListItemSmall 0x7f010024
104 | int attr textAppearanceSearchResultSubtitle 0x7f010067
105 | int attr textAppearanceSearchResultTitle 0x7f010066
106 | int attr textAppearanceSmallPopupMenu 0x7f010015
107 | int attr textColorSearchUrl 0x7f010068
108 | int attr title 0x7f010025
109 | int attr titleTextStyle 0x7f01002a
110 | int attr windowActionBar 0x7f010000
111 | int attr windowActionBarOverlay 0x7f010001
112 | int attr windowFixedHeightMajor 0x7f010006
113 | int attr windowFixedHeightMinor 0x7f010004
114 | int attr windowFixedWidthMajor 0x7f010003
115 | int attr windowFixedWidthMinor 0x7f010005
116 | int attr windowSplitActionBar 0x7f010002
117 | int bool abc_action_bar_embed_tabs_pre_jb 0x7f060000
118 | int bool abc_action_bar_expanded_action_views_exclusive 0x7f060001
119 | int bool abc_config_actionMenuItemAllCaps 0x7f060005
120 | int bool abc_config_allowActionMenuItemTextWithIcon 0x7f060004
121 | int bool abc_config_showMenuShortcutsWhenKeyboardPresent 0x7f060003
122 | int bool abc_split_action_bar_is_narrow 0x7f060002
123 | int color abc_search_url_text_holo 0x7f070003
124 | int color abc_search_url_text_normal 0x7f070000
125 | int color abc_search_url_text_pressed 0x7f070002
126 | int color abc_search_url_text_selected 0x7f070001
127 | int dimen abc_action_bar_default_height 0x7f080002
128 | int dimen abc_action_bar_icon_vertical_padding 0x7f080003
129 | int dimen abc_action_bar_progress_bar_size 0x7f08000a
130 | int dimen abc_action_bar_stacked_max_height 0x7f080009
131 | int dimen abc_action_bar_stacked_tab_max_width 0x7f080001
132 | int dimen abc_action_bar_subtitle_bottom_margin 0x7f080007
133 | int dimen abc_action_bar_subtitle_text_size 0x7f080005
134 | int dimen abc_action_bar_subtitle_top_margin 0x7f080006
135 | int dimen abc_action_bar_title_text_size 0x7f080004
136 | int dimen abc_action_button_min_width 0x7f080008
137 | int dimen abc_config_prefDialogWidth 0x7f080000
138 | int dimen abc_dropdownitem_icon_width 0x7f080010
139 | int dimen abc_dropdownitem_text_padding_left 0x7f08000e
140 | int dimen abc_dropdownitem_text_padding_right 0x7f08000f
141 | int dimen abc_panel_menu_list_width 0x7f08000b
142 | int dimen abc_search_view_preferred_width 0x7f08000d
143 | int dimen abc_search_view_text_min_width 0x7f08000c
144 | int dimen activity_horizontal_margin 0x7f080015
145 | int dimen activity_vertical_margin 0x7f080016
146 | int dimen dialog_fixed_height_major 0x7f080013
147 | int dimen dialog_fixed_height_minor 0x7f080014
148 | int dimen dialog_fixed_width_major 0x7f080011
149 | int dimen dialog_fixed_width_minor 0x7f080012
150 | int drawable abc_ab_bottom_solid_dark_holo 0x7f020000
151 | int drawable abc_ab_bottom_solid_light_holo 0x7f020001
152 | int drawable abc_ab_bottom_transparent_dark_holo 0x7f020002
153 | int drawable abc_ab_bottom_transparent_light_holo 0x7f020003
154 | int drawable abc_ab_share_pack_holo_dark 0x7f020004
155 | int drawable abc_ab_share_pack_holo_light 0x7f020005
156 | int drawable abc_ab_solid_dark_holo 0x7f020006
157 | int drawable abc_ab_solid_light_holo 0x7f020007
158 | int drawable abc_ab_stacked_solid_dark_holo 0x7f020008
159 | int drawable abc_ab_stacked_solid_light_holo 0x7f020009
160 | int drawable abc_ab_stacked_transparent_dark_holo 0x7f02000a
161 | int drawable abc_ab_stacked_transparent_light_holo 0x7f02000b
162 | int drawable abc_ab_transparent_dark_holo 0x7f02000c
163 | int drawable abc_ab_transparent_light_holo 0x7f02000d
164 | int drawable abc_cab_background_bottom_holo_dark 0x7f02000e
165 | int drawable abc_cab_background_bottom_holo_light 0x7f02000f
166 | int drawable abc_cab_background_top_holo_dark 0x7f020010
167 | int drawable abc_cab_background_top_holo_light 0x7f020011
168 | int drawable abc_ic_ab_back_holo_dark 0x7f020012
169 | int drawable abc_ic_ab_back_holo_light 0x7f020013
170 | int drawable abc_ic_cab_done_holo_dark 0x7f020014
171 | int drawable abc_ic_cab_done_holo_light 0x7f020015
172 | int drawable abc_ic_clear 0x7f020016
173 | int drawable abc_ic_clear_disabled 0x7f020017
174 | int drawable abc_ic_clear_holo_light 0x7f020018
175 | int drawable abc_ic_clear_normal 0x7f020019
176 | int drawable abc_ic_clear_search_api_disabled_holo_light 0x7f02001a
177 | int drawable abc_ic_clear_search_api_holo_light 0x7f02001b
178 | int drawable abc_ic_commit_search_api_holo_dark 0x7f02001c
179 | int drawable abc_ic_commit_search_api_holo_light 0x7f02001d
180 | int drawable abc_ic_go 0x7f02001e
181 | int drawable abc_ic_go_search_api_holo_light 0x7f02001f
182 | int drawable abc_ic_menu_moreoverflow_normal_holo_dark 0x7f020020
183 | int drawable abc_ic_menu_moreoverflow_normal_holo_light 0x7f020021
184 | int drawable abc_ic_menu_share_holo_dark 0x7f020022
185 | int drawable abc_ic_menu_share_holo_light 0x7f020023
186 | int drawable abc_ic_search 0x7f020024
187 | int drawable abc_ic_search_api_holo_light 0x7f020025
188 | int drawable abc_ic_voice_search 0x7f020026
189 | int drawable abc_ic_voice_search_api_holo_light 0x7f020027
190 | int drawable abc_item_background_holo_dark 0x7f020028
191 | int drawable abc_item_background_holo_light 0x7f020029
192 | int drawable abc_list_divider_holo_dark 0x7f02002a
193 | int drawable abc_list_divider_holo_light 0x7f02002b
194 | int drawable abc_list_focused_holo 0x7f02002c
195 | int drawable abc_list_longpressed_holo 0x7f02002d
196 | int drawable abc_list_pressed_holo_dark 0x7f02002e
197 | int drawable abc_list_pressed_holo_light 0x7f02002f
198 | int drawable abc_list_selector_background_transition_holo_dark 0x7f020030
199 | int drawable abc_list_selector_background_transition_holo_light 0x7f020031
200 | int drawable abc_list_selector_disabled_holo_dark 0x7f020032
201 | int drawable abc_list_selector_disabled_holo_light 0x7f020033
202 | int drawable abc_list_selector_holo_dark 0x7f020034
203 | int drawable abc_list_selector_holo_light 0x7f020035
204 | int drawable abc_menu_dropdown_panel_holo_dark 0x7f020036
205 | int drawable abc_menu_dropdown_panel_holo_light 0x7f020037
206 | int drawable abc_menu_hardkey_panel_holo_dark 0x7f020038
207 | int drawable abc_menu_hardkey_panel_holo_light 0x7f020039
208 | int drawable abc_search_dropdown_dark 0x7f02003a
209 | int drawable abc_search_dropdown_light 0x7f02003b
210 | int drawable abc_spinner_ab_default_holo_dark 0x7f02003c
211 | int drawable abc_spinner_ab_default_holo_light 0x7f02003d
212 | int drawable abc_spinner_ab_disabled_holo_dark 0x7f02003e
213 | int drawable abc_spinner_ab_disabled_holo_light 0x7f02003f
214 | int drawable abc_spinner_ab_focused_holo_dark 0x7f020040
215 | int drawable abc_spinner_ab_focused_holo_light 0x7f020041
216 | int drawable abc_spinner_ab_holo_dark 0x7f020042
217 | int drawable abc_spinner_ab_holo_light 0x7f020043
218 | int drawable abc_spinner_ab_pressed_holo_dark 0x7f020044
219 | int drawable abc_spinner_ab_pressed_holo_light 0x7f020045
220 | int drawable abc_tab_indicator_ab_holo 0x7f020046
221 | int drawable abc_tab_selected_focused_holo 0x7f020047
222 | int drawable abc_tab_selected_holo 0x7f020048
223 | int drawable abc_tab_selected_pressed_holo 0x7f020049
224 | int drawable abc_tab_unselected_pressed_holo 0x7f02004a
225 | int drawable abc_textfield_search_default_holo_dark 0x7f02004b
226 | int drawable abc_textfield_search_default_holo_light 0x7f02004c
227 | int drawable abc_textfield_search_right_default_holo_dark 0x7f02004d
228 | int drawable abc_textfield_search_right_default_holo_light 0x7f02004e
229 | int drawable abc_textfield_search_right_selected_holo_dark 0x7f02004f
230 | int drawable abc_textfield_search_right_selected_holo_light 0x7f020050
231 | int drawable abc_textfield_search_selected_holo_dark 0x7f020051
232 | int drawable abc_textfield_search_selected_holo_light 0x7f020052
233 | int drawable abc_textfield_searchview_holo_dark 0x7f020053
234 | int drawable abc_textfield_searchview_holo_light 0x7f020054
235 | int drawable abc_textfield_searchview_right_holo_dark 0x7f020055
236 | int drawable abc_textfield_searchview_right_holo_light 0x7f020056
237 | int drawable ic_launcher 0x7f020057
238 | int id action_bar 0x7f05001c
239 | int id action_bar_activity_content 0x7f050015
240 | int id action_bar_container 0x7f05001b
241 | int id action_bar_overlay_layout 0x7f05001f
242 | int id action_bar_root 0x7f05001a
243 | int id action_bar_subtitle 0x7f050023
244 | int id action_bar_title 0x7f050022
245 | int id action_context_bar 0x7f05001d
246 | int id action_menu_divider 0x7f050016
247 | int id action_menu_presenter 0x7f050017
248 | int id action_mode_close_button 0x7f050024
249 | int id action_settings 0x7f050043
250 | int id activity_chooser_view_content 0x7f050025
251 | int id always 0x7f05000b
252 | int id beginning 0x7f050011
253 | int id btnCmd1 0x7f05003f
254 | int id btnCmd2 0x7f050040
255 | int id btnCmd3 0x7f050041
256 | int id btnFind 0x7f05003e
257 | int id checkbox 0x7f05002d
258 | int id collapseActionView 0x7f05000d
259 | int id default_activity_button 0x7f050028
260 | int id dialog 0x7f05000e
261 | int id disableHome 0x7f050008
262 | int id dropdown 0x7f05000f
263 | int id edit_query 0x7f050030
264 | int id end 0x7f050013
265 | int id expand_activities_button 0x7f050026
266 | int id expanded_menu 0x7f05002c
267 | int id home 0x7f050014
268 | int id homeAsUp 0x7f050005
269 | int id icon 0x7f05002a
270 | int id ifRoom 0x7f05000a
271 | int id image 0x7f050027
272 | int id listMode 0x7f050001
273 | int id list_item 0x7f050029
274 | int id middle 0x7f050012
275 | int id never 0x7f050009
276 | int id none 0x7f050010
277 | int id normal 0x7f050000
278 | int id progress_circular 0x7f050018
279 | int id progress_horizontal 0x7f050019
280 | int id radio 0x7f05002f
281 | int id search_badge 0x7f050032
282 | int id search_bar 0x7f050031
283 | int id search_button 0x7f050033
284 | int id search_close_btn 0x7f050038
285 | int id search_edit_frame 0x7f050034
286 | int id search_go_btn 0x7f05003a
287 | int id search_mag_icon 0x7f050035
288 | int id search_plate 0x7f050036
289 | int id search_src_text 0x7f050037
290 | int id search_voice_btn 0x7f05003b
291 | int id shortcut 0x7f05002e
292 | int id showCustom 0x7f050007
293 | int id showHome 0x7f050004
294 | int id showTitle 0x7f050006
295 | int id split_action_bar 0x7f05001e
296 | int id submit_area 0x7f050039
297 | int id tabMode 0x7f050002
298 | int id textView1 0x7f05003c
299 | int id title 0x7f05002b
300 | int id top_action_bar 0x7f050020
301 | int id txtKey 0x7f05003d
302 | int id txtStatus 0x7f050042
303 | int id up 0x7f050021
304 | int id useLogo 0x7f050003
305 | int id withText 0x7f05000c
306 | int integer abc_max_action_buttons 0x7f090000
307 | int layout abc_action_bar_decor 0x7f030000
308 | int layout abc_action_bar_decor_include 0x7f030001
309 | int layout abc_action_bar_decor_overlay 0x7f030002
310 | int layout abc_action_bar_home 0x7f030003
311 | int layout abc_action_bar_tab 0x7f030004
312 | int layout abc_action_bar_tabbar 0x7f030005
313 | int layout abc_action_bar_title_item 0x7f030006
314 | int layout abc_action_bar_view_list_nav_layout 0x7f030007
315 | int layout abc_action_menu_item_layout 0x7f030008
316 | int layout abc_action_menu_layout 0x7f030009
317 | int layout abc_action_mode_bar 0x7f03000a
318 | int layout abc_action_mode_close_item 0x7f03000b
319 | int layout abc_activity_chooser_view 0x7f03000c
320 | int layout abc_activity_chooser_view_include 0x7f03000d
321 | int layout abc_activity_chooser_view_list_item 0x7f03000e
322 | int layout abc_expanded_menu_layout 0x7f03000f
323 | int layout abc_list_menu_item_checkbox 0x7f030010
324 | int layout abc_list_menu_item_icon 0x7f030011
325 | int layout abc_list_menu_item_layout 0x7f030012
326 | int layout abc_list_menu_item_radio 0x7f030013
327 | int layout abc_popup_menu_item_layout 0x7f030014
328 | int layout abc_search_dropdown_item_icons_2line 0x7f030015
329 | int layout abc_search_view 0x7f030016
330 | int layout abc_simple_decor 0x7f030017
331 | int layout activity_main 0x7f030018
332 | int layout support_simple_spinner_dropdown_item 0x7f030019
333 | int menu main 0x7f0c0000
334 | int string abc_action_bar_home_description 0x7f0a0001
335 | int string abc_action_bar_up_description 0x7f0a0002
336 | int string abc_action_menu_overflow_description 0x7f0a0003
337 | int string abc_action_mode_done 0x7f0a0000
338 | int string abc_activity_chooser_view_see_all 0x7f0a000a
339 | int string abc_activitychooserview_choose_application 0x7f0a0009
340 | int string abc_searchview_description_clear 0x7f0a0006
341 | int string abc_searchview_description_query 0x7f0a0005
342 | int string abc_searchview_description_search 0x7f0a0004
343 | int string abc_searchview_description_submit 0x7f0a0007
344 | int string abc_searchview_description_voice 0x7f0a0008
345 | int string abc_shareactionprovider_share_with 0x7f0a000c
346 | int string abc_shareactionprovider_share_with_application 0x7f0a000b
347 | int string action_settings 0x7f0a000f
348 | int string app_name 0x7f0a000d
349 | int string hello_world 0x7f0a000e
350 | int style AppBaseTheme 0x7f0b008b
351 | int style AppTheme 0x7f0b008c
352 | int style TextAppearance_AppCompat_Base_CompactMenu_Dialog 0x7f0b0063
353 | int style TextAppearance_AppCompat_Base_SearchResult 0x7f0b006d
354 | int style TextAppearance_AppCompat_Base_SearchResult_Subtitle 0x7f0b006f
355 | int style TextAppearance_AppCompat_Base_SearchResult_Title 0x7f0b006e
356 | int style TextAppearance_AppCompat_Base_Widget_PopupMenu_Large 0x7f0b0069
357 | int style TextAppearance_AppCompat_Base_Widget_PopupMenu_Small 0x7f0b006a
358 | int style TextAppearance_AppCompat_Light_Base_SearchResult 0x7f0b0070
359 | int style TextAppearance_AppCompat_Light_Base_SearchResult_Subtitle 0x7f0b0072
360 | int style TextAppearance_AppCompat_Light_Base_SearchResult_Title 0x7f0b0071
361 | int style TextAppearance_AppCompat_Light_Base_Widget_PopupMenu_Large 0x7f0b006b
362 | int style TextAppearance_AppCompat_Light_Base_Widget_PopupMenu_Small 0x7f0b006c
363 | int style TextAppearance_AppCompat_Light_SearchResult_Subtitle 0x7f0b0035
364 | int style TextAppearance_AppCompat_Light_SearchResult_Title 0x7f0b0034
365 | int style TextAppearance_AppCompat_Light_Widget_PopupMenu_Large 0x7f0b0030
366 | int style TextAppearance_AppCompat_Light_Widget_PopupMenu_Small 0x7f0b0031
367 | int style TextAppearance_AppCompat_SearchResult_Subtitle 0x7f0b0033
368 | int style TextAppearance_AppCompat_SearchResult_Title 0x7f0b0032
369 | int style TextAppearance_AppCompat_Widget_ActionBar_Menu 0x7f0b001a
370 | int style TextAppearance_AppCompat_Widget_ActionBar_Subtitle 0x7f0b0006
371 | int style TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse 0x7f0b0008
372 | int style TextAppearance_AppCompat_Widget_ActionBar_Title 0x7f0b0005
373 | int style TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse 0x7f0b0007
374 | int style TextAppearance_AppCompat_Widget_ActionMode_Subtitle 0x7f0b001e
375 | int style TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse 0x7f0b0020
376 | int style TextAppearance_AppCompat_Widget_ActionMode_Title 0x7f0b001d
377 | int style TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse 0x7f0b001f
378 | int style TextAppearance_AppCompat_Widget_Base_ActionBar_Menu 0x7f0b0054
379 | int style TextAppearance_AppCompat_Widget_Base_ActionBar_Subtitle 0x7f0b0056
380 | int style TextAppearance_AppCompat_Widget_Base_ActionBar_Subtitle_Inverse 0x7f0b0058
381 | int style TextAppearance_AppCompat_Widget_Base_ActionBar_Title 0x7f0b0055
382 | int style TextAppearance_AppCompat_Widget_Base_ActionBar_Title_Inverse 0x7f0b0057
383 | int style TextAppearance_AppCompat_Widget_Base_ActionMode_Subtitle 0x7f0b0051
384 | int style TextAppearance_AppCompat_Widget_Base_ActionMode_Subtitle_Inverse 0x7f0b0053
385 | int style TextAppearance_AppCompat_Widget_Base_ActionMode_Title 0x7f0b0050
386 | int style TextAppearance_AppCompat_Widget_Base_ActionMode_Title_Inverse 0x7f0b0052
387 | int style TextAppearance_AppCompat_Widget_Base_DropDownItem 0x7f0b0061
388 | int style TextAppearance_AppCompat_Widget_DropDownItem 0x7f0b0021
389 | int style TextAppearance_AppCompat_Widget_PopupMenu_Large 0x7f0b002e
390 | int style TextAppearance_AppCompat_Widget_PopupMenu_Small 0x7f0b002f
391 | int style TextAppearance_Widget_AppCompat_Base_ExpandedMenu_Item 0x7f0b0062
392 | int style TextAppearance_Widget_AppCompat_ExpandedMenu_Item 0x7f0b0028
393 | int style Theme_AppCompat 0x7f0b0077
394 | int style Theme_AppCompat_Base_CompactMenu 0x7f0b0083
395 | int style Theme_AppCompat_Base_CompactMenu_Dialog 0x7f0b0084
396 | int style Theme_AppCompat_CompactMenu 0x7f0b007c
397 | int style Theme_AppCompat_CompactMenu_Dialog 0x7f0b007d
398 | int style Theme_AppCompat_DialogWhenLarge 0x7f0b007a
399 | int style Theme_AppCompat_Light 0x7f0b0078
400 | int style Theme_AppCompat_Light_DarkActionBar 0x7f0b0079
401 | int style Theme_AppCompat_Light_DialogWhenLarge 0x7f0b007b
402 | int style Theme_Base 0x7f0b007e
403 | int style Theme_Base_AppCompat 0x7f0b0080
404 | int style Theme_Base_AppCompat_Dialog_FixedSize 0x7f0b0087
405 | int style Theme_Base_AppCompat_Dialog_Light_FixedSize 0x7f0b0088
406 | int style Theme_Base_AppCompat_DialogWhenLarge 0x7f0b0085
407 | int style Theme_Base_AppCompat_DialogWhenLarge_Base 0x7f0b0089
408 | int style Theme_Base_AppCompat_Light 0x7f0b0081
409 | int style Theme_Base_AppCompat_Light_DarkActionBar 0x7f0b0082
410 | int style Theme_Base_AppCompat_Light_DialogWhenLarge 0x7f0b0086
411 | int style Theme_Base_AppCompat_Light_DialogWhenLarge_Base 0x7f0b008a
412 | int style Theme_Base_Light 0x7f0b007f
413 | int style Widget_AppCompat_ActionBar 0x7f0b0000
414 | int style Widget_AppCompat_ActionBar_Solid 0x7f0b0002
415 | int style Widget_AppCompat_ActionBar_TabBar 0x7f0b0011
416 | int style Widget_AppCompat_ActionBar_TabText 0x7f0b0017
417 | int style Widget_AppCompat_ActionBar_TabView 0x7f0b0014
418 | int style Widget_AppCompat_ActionButton 0x7f0b000b
419 | int style Widget_AppCompat_ActionButton_CloseMode 0x7f0b000d
420 | int style Widget_AppCompat_ActionButton_Overflow 0x7f0b000f
421 | int style Widget_AppCompat_ActionMode 0x7f0b001b
422 | int style Widget_AppCompat_ActivityChooserView 0x7f0b0038
423 | int style Widget_AppCompat_AutoCompleteTextView 0x7f0b0036
424 | int style Widget_AppCompat_Base_ActionBar 0x7f0b003a
425 | int style Widget_AppCompat_Base_ActionBar_Solid 0x7f0b003c
426 | int style Widget_AppCompat_Base_ActionBar_TabBar 0x7f0b0045
427 | int style Widget_AppCompat_Base_ActionBar_TabText 0x7f0b004b
428 | int style Widget_AppCompat_Base_ActionBar_TabView 0x7f0b0048
429 | int style Widget_AppCompat_Base_ActionButton 0x7f0b003f
430 | int style Widget_AppCompat_Base_ActionButton_CloseMode 0x7f0b0041
431 | int style Widget_AppCompat_Base_ActionButton_Overflow 0x7f0b0043
432 | int style Widget_AppCompat_Base_ActionMode 0x7f0b004e
433 | int style Widget_AppCompat_Base_ActivityChooserView 0x7f0b0075
434 | int style Widget_AppCompat_Base_AutoCompleteTextView 0x7f0b0073
435 | int style Widget_AppCompat_Base_DropDownItem_Spinner 0x7f0b005d
436 | int style Widget_AppCompat_Base_ListPopupWindow 0x7f0b0065
437 | int style Widget_AppCompat_Base_ListView_DropDown 0x7f0b005f
438 | int style Widget_AppCompat_Base_ListView_Menu 0x7f0b0064
439 | int style Widget_AppCompat_Base_PopupMenu 0x7f0b0067
440 | int style Widget_AppCompat_Base_ProgressBar 0x7f0b005a
441 | int style Widget_AppCompat_Base_ProgressBar_Horizontal 0x7f0b0059
442 | int style Widget_AppCompat_Base_Spinner 0x7f0b005b
443 | int style Widget_AppCompat_DropDownItem_Spinner 0x7f0b0024
444 | int style Widget_AppCompat_Light_ActionBar 0x7f0b0001
445 | int style Widget_AppCompat_Light_ActionBar_Solid 0x7f0b0003
446 | int style Widget_AppCompat_Light_ActionBar_Solid_Inverse 0x7f0b0004
447 | int style Widget_AppCompat_Light_ActionBar_TabBar 0x7f0b0012
448 | int style Widget_AppCompat_Light_ActionBar_TabBar_Inverse 0x7f0b0013
449 | int style Widget_AppCompat_Light_ActionBar_TabText 0x7f0b0018
450 | int style Widget_AppCompat_Light_ActionBar_TabText_Inverse 0x7f0b0019
451 | int style Widget_AppCompat_Light_ActionBar_TabView 0x7f0b0015
452 | int style Widget_AppCompat_Light_ActionBar_TabView_Inverse 0x7f0b0016
453 | int style Widget_AppCompat_Light_ActionButton 0x7f0b000c
454 | int style Widget_AppCompat_Light_ActionButton_CloseMode 0x7f0b000e
455 | int style Widget_AppCompat_Light_ActionButton_Overflow 0x7f0b0010
456 | int style Widget_AppCompat_Light_ActionMode_Inverse 0x7f0b001c
457 | int style Widget_AppCompat_Light_ActivityChooserView 0x7f0b0039
458 | int style Widget_AppCompat_Light_AutoCompleteTextView 0x7f0b0037
459 | int style Widget_AppCompat_Light_Base_ActionBar 0x7f0b003b
460 | int style Widget_AppCompat_Light_Base_ActionBar_Solid 0x7f0b003d
461 | int style Widget_AppCompat_Light_Base_ActionBar_Solid_Inverse 0x7f0b003e
462 | int style Widget_AppCompat_Light_Base_ActionBar_TabBar 0x7f0b0046
463 | int style Widget_AppCompat_Light_Base_ActionBar_TabBar_Inverse 0x7f0b0047
464 | int style Widget_AppCompat_Light_Base_ActionBar_TabText 0x7f0b004c
465 | int style Widget_AppCompat_Light_Base_ActionBar_TabText_Inverse 0x7f0b004d
466 | int style Widget_AppCompat_Light_Base_ActionBar_TabView 0x7f0b0049
467 | int style Widget_AppCompat_Light_Base_ActionBar_TabView_Inverse 0x7f0b004a
468 | int style Widget_AppCompat_Light_Base_ActionButton 0x7f0b0040
469 | int style Widget_AppCompat_Light_Base_ActionButton_CloseMode 0x7f0b0042
470 | int style Widget_AppCompat_Light_Base_ActionButton_Overflow 0x7f0b0044
471 | int style Widget_AppCompat_Light_Base_ActionMode_Inverse 0x7f0b004f
472 | int style Widget_AppCompat_Light_Base_ActivityChooserView 0x7f0b0076
473 | int style Widget_AppCompat_Light_Base_AutoCompleteTextView 0x7f0b0074
474 | int style Widget_AppCompat_Light_Base_DropDownItem_Spinner 0x7f0b005e
475 | int style Widget_AppCompat_Light_Base_ListPopupWindow 0x7f0b0066
476 | int style Widget_AppCompat_Light_Base_ListView_DropDown 0x7f0b0060
477 | int style Widget_AppCompat_Light_Base_PopupMenu 0x7f0b0068
478 | int style Widget_AppCompat_Light_Base_Spinner 0x7f0b005c
479 | int style Widget_AppCompat_Light_DropDownItem_Spinner 0x7f0b0025
480 | int style Widget_AppCompat_Light_ListPopupWindow 0x7f0b002a
481 | int style Widget_AppCompat_Light_ListView_DropDown 0x7f0b0027
482 | int style Widget_AppCompat_Light_PopupMenu 0x7f0b002c
483 | int style Widget_AppCompat_Light_Spinner_DropDown_ActionBar 0x7f0b0023
484 | int style Widget_AppCompat_ListPopupWindow 0x7f0b0029
485 | int style Widget_AppCompat_ListView_DropDown 0x7f0b0026
486 | int style Widget_AppCompat_ListView_Menu 0x7f0b002d
487 | int style Widget_AppCompat_PopupMenu 0x7f0b002b
488 | int style Widget_AppCompat_ProgressBar 0x7f0b000a
489 | int style Widget_AppCompat_ProgressBar_Horizontal 0x7f0b0009
490 | int style Widget_AppCompat_Spinner_DropDown_ActionBar 0x7f0b0022
491 | int[] styleable ActionBar { 0x7f010025, 0x7f010026, 0x7f010027, 0x7f010028, 0x7f010029, 0x7f01002a, 0x7f01002b, 0x7f01002c, 0x7f01002d, 0x7f01002e, 0x7f01002f, 0x7f010030, 0x7f010031, 0x7f010032, 0x7f010033, 0x7f010034, 0x7f010035, 0x7f010036, 0x7f010037 }
492 | int styleable ActionBar_background 10
493 | int styleable ActionBar_backgroundSplit 12
494 | int styleable ActionBar_backgroundStacked 11
495 | int styleable ActionBar_customNavigationLayout 13
496 | int styleable ActionBar_displayOptions 3
497 | int styleable ActionBar_divider 9
498 | int styleable ActionBar_height 1
499 | int styleable ActionBar_homeLayout 14
500 | int styleable ActionBar_icon 7
501 | int styleable ActionBar_indeterminateProgressStyle 16
502 | int styleable ActionBar_itemPadding 18
503 | int styleable ActionBar_logo 8
504 | int styleable ActionBar_navigationMode 2
505 | int styleable ActionBar_progressBarPadding 17
506 | int styleable ActionBar_progressBarStyle 15
507 | int styleable ActionBar_subtitle 4
508 | int styleable ActionBar_subtitleTextStyle 6
509 | int styleable ActionBar_title 0
510 | int styleable ActionBar_titleTextStyle 5
511 | int[] styleable ActionBarLayout { 0x010100b3 }
512 | int styleable ActionBarLayout_android_layout_gravity 0
513 | int[] styleable ActionBarWindow { 0x7f010000, 0x7f010001, 0x7f010002, 0x7f010003, 0x7f010004, 0x7f010005, 0x7f010006 }
514 | int styleable ActionBarWindow_windowActionBar 0
515 | int styleable ActionBarWindow_windowActionBarOverlay 1
516 | int styleable ActionBarWindow_windowFixedHeightMajor 6
517 | int styleable ActionBarWindow_windowFixedHeightMinor 4
518 | int styleable ActionBarWindow_windowFixedWidthMajor 3
519 | int styleable ActionBarWindow_windowFixedWidthMinor 5
520 | int styleable ActionBarWindow_windowSplitActionBar 2
521 | int[] styleable ActionMenuItemView { 0x0101013f }
522 | int styleable ActionMenuItemView_android_minWidth 0
523 | int[] styleable ActionMenuView { }
524 | int[] styleable ActionMode { 0x7f010026, 0x7f01002a, 0x7f01002b, 0x7f01002f, 0x7f010031 }
525 | int styleable ActionMode_background 3
526 | int styleable ActionMode_backgroundSplit 4
527 | int styleable ActionMode_height 0
528 | int styleable ActionMode_subtitleTextStyle 2
529 | int styleable ActionMode_titleTextStyle 1
530 | int[] styleable ActivityChooserView { 0x7f01006a, 0x7f01006b }
531 | int styleable ActivityChooserView_expandActivityOverflowButtonDrawable 1
532 | int styleable ActivityChooserView_initialActivityCount 0
533 | int[] styleable CompatTextView { 0x7f01006d }
534 | int styleable CompatTextView_textAllCaps 0
535 | int[] styleable LinearLayoutICS { 0x7f01002e, 0x7f010055, 0x7f010056 }
536 | int styleable LinearLayoutICS_divider 0
537 | int styleable LinearLayoutICS_dividerPadding 2
538 | int styleable LinearLayoutICS_showDividers 1
539 | int[] styleable MenuGroup { 0x0101000e, 0x010100d0, 0x01010194, 0x010101de, 0x010101df, 0x010101e0 }
540 | int styleable MenuGroup_android_checkableBehavior 5
541 | int styleable MenuGroup_android_enabled 0
542 | int styleable MenuGroup_android_id 1
543 | int styleable MenuGroup_android_menuCategory 3
544 | int styleable MenuGroup_android_orderInCategory 4
545 | int styleable MenuGroup_android_visible 2
546 | int[] styleable MenuItem { 0x01010002, 0x0101000e, 0x010100d0, 0x01010106, 0x01010194, 0x010101de, 0x010101df, 0x010101e1, 0x010101e2, 0x010101e3, 0x010101e4, 0x010101e5, 0x0101026f, 0x7f01004d, 0x7f01004e, 0x7f01004f, 0x7f010050 }
547 | int styleable MenuItem_actionLayout 14
548 | int styleable MenuItem_actionProviderClass 16
549 | int styleable MenuItem_actionViewClass 15
550 | int styleable MenuItem_android_alphabeticShortcut 9
551 | int styleable MenuItem_android_checkable 11
552 | int styleable MenuItem_android_checked 3
553 | int styleable MenuItem_android_enabled 1
554 | int styleable MenuItem_android_icon 0
555 | int styleable MenuItem_android_id 2
556 | int styleable MenuItem_android_menuCategory 5
557 | int styleable MenuItem_android_numericShortcut 10
558 | int styleable MenuItem_android_onClick 12
559 | int styleable MenuItem_android_orderInCategory 6
560 | int styleable MenuItem_android_title 7
561 | int styleable MenuItem_android_titleCondensed 8
562 | int styleable MenuItem_android_visible 4
563 | int styleable MenuItem_showAsAction 13
564 | int[] styleable MenuView { 0x010100ae, 0x0101012c, 0x0101012d, 0x0101012e, 0x0101012f, 0x01010130, 0x01010131, 0x01010435 }
565 | int styleable MenuView_android_headerBackground 4
566 | int styleable MenuView_android_horizontalDivider 2
567 | int styleable MenuView_android_itemBackground 5
568 | int styleable MenuView_android_itemIconDisabledAlpha 6
569 | int styleable MenuView_android_itemTextAppearance 1
570 | int styleable MenuView_android_preserveIconSpacing 7
571 | int styleable MenuView_android_verticalDivider 3
572 | int styleable MenuView_android_windowAnimationStyle 0
573 | int[] styleable SearchView { 0x0101011f, 0x01010220, 0x01010264, 0x7f01005a, 0x7f01005b }
574 | int styleable SearchView_android_imeOptions 2
575 | int styleable SearchView_android_inputType 1
576 | int styleable SearchView_android_maxWidth 0
577 | int styleable SearchView_iconifiedByDefault 3
578 | int styleable SearchView_queryHint 4
579 | int[] styleable Spinner { 0x010100af, 0x01010175, 0x01010176, 0x01010262, 0x010102ac, 0x010102ad, 0x7f010051, 0x7f010052, 0x7f010053, 0x7f010054 }
580 | int styleable Spinner_android_dropDownHorizontalOffset 4
581 | int styleable Spinner_android_dropDownSelector 1
582 | int styleable Spinner_android_dropDownVerticalOffset 5
583 | int styleable Spinner_android_dropDownWidth 3
584 | int styleable Spinner_android_gravity 0
585 | int styleable Spinner_android_popupBackground 2
586 | int styleable Spinner_disableChildrenWhenDisabled 9
587 | int styleable Spinner_popupPromptView 8
588 | int styleable Spinner_prompt 6
589 | int styleable Spinner_spinnerMode 7
590 | int[] styleable Theme { 0x7f010047, 0x7f010048, 0x7f010049, 0x7f01004a, 0x7f01004b, 0x7f01004c }
591 | int styleable Theme_actionDropDownStyle 0
592 | int styleable Theme_dropdownListPreferredItemHeight 1
593 | int styleable Theme_listChoiceBackgroundIndicator 5
594 | int styleable Theme_panelMenuListTheme 4
595 | int styleable Theme_panelMenuListWidth 3
596 | int styleable Theme_popupMenuStyle 2
597 | int[] styleable View { 0x010100da, 0x7f010038, 0x7f010039 }
598 | int styleable View_android_focusable 0
599 | int styleable View_paddingEnd 2
600 | int styleable View_paddingStart 1
601 |
--------------------------------------------------------------------------------
/ESP8266UDP/Android/ESP8266_UDP/gen/android/support/v7/appcompat/R.java:
--------------------------------------------------------------------------------
1 | /* AUTO-GENERATED FILE. DO NOT MODIFY.
2 | *
3 | * This class was automatically generated by the
4 | * aapt tool from the resource data it found. It
5 | * should not be modified by hand.
6 | */
7 | package android.support.v7.appcompat;
8 |
9 | public final class R {
10 | public static final class anim {
11 | public static final int abc_fade_in = 0x7f040000;
12 | public static final int abc_fade_out = 0x7f040001;
13 | public static final int abc_slide_in_bottom = 0x7f040002;
14 | public static final int abc_slide_in_top = 0x7f040003;
15 | public static final int abc_slide_out_bottom = 0x7f040004;
16 | public static final int abc_slide_out_top = 0x7f040005;
17 | }
18 | public static final class attr {
19 | public static final int actionBarDivider = 0x7f01000f;
20 | public static final int actionBarItemBackground = 0x7f010010;
21 | public static final int actionBarSize = 0x7f01000e;
22 | public static final int actionBarSplitStyle = 0x7f01000c;
23 | public static final int actionBarStyle = 0x7f01000b;
24 | public static final int actionBarTabBarStyle = 0x7f010008;
25 | public static final int actionBarTabStyle = 0x7f010007;
26 | public static final int actionBarTabTextStyle = 0x7f010009;
27 | public static final int actionBarWidgetTheme = 0x7f01000d;
28 | public static final int actionButtonStyle = 0x7f010016;
29 | public static final int actionDropDownStyle = 0x7f010047;
30 | public static final int actionLayout = 0x7f01004e;
31 | public static final int actionMenuTextAppearance = 0x7f010011;
32 | public static final int actionMenuTextColor = 0x7f010012;
33 | public static final int actionModeBackground = 0x7f01003c;
34 | public static final int actionModeCloseButtonStyle = 0x7f01003b;
35 | public static final int actionModeCloseDrawable = 0x7f01003e;
36 | public static final int actionModeCopyDrawable = 0x7f010040;
37 | public static final int actionModeCutDrawable = 0x7f01003f;
38 | public static final int actionModeFindDrawable = 0x7f010044;
39 | public static final int actionModePasteDrawable = 0x7f010041;
40 | public static final int actionModePopupWindowStyle = 0x7f010046;
41 | public static final int actionModeSelectAllDrawable = 0x7f010042;
42 | public static final int actionModeShareDrawable = 0x7f010043;
43 | public static final int actionModeSplitBackground = 0x7f01003d;
44 | public static final int actionModeStyle = 0x7f01003a;
45 | public static final int actionModeWebSearchDrawable = 0x7f010045;
46 | public static final int actionOverflowButtonStyle = 0x7f01000a;
47 | public static final int actionProviderClass = 0x7f010050;
48 | public static final int actionViewClass = 0x7f01004f;
49 | public static final int activityChooserViewStyle = 0x7f01006c;
50 | public static final int background = 0x7f01002f;
51 | public static final int backgroundSplit = 0x7f010031;
52 | public static final int backgroundStacked = 0x7f010030;
53 | public static final int buttonBarButtonStyle = 0x7f010018;
54 | public static final int buttonBarStyle = 0x7f010017;
55 | public static final int customNavigationLayout = 0x7f010032;
56 | public static final int disableChildrenWhenDisabled = 0x7f010054;
57 | public static final int displayOptions = 0x7f010028;
58 | public static final int divider = 0x7f01002e;
59 | public static final int dividerHorizontal = 0x7f01001b;
60 | public static final int dividerPadding = 0x7f010056;
61 | public static final int dividerVertical = 0x7f01001a;
62 | public static final int dropDownListViewStyle = 0x7f010021;
63 | public static final int dropdownListPreferredItemHeight = 0x7f010048;
64 | public static final int expandActivityOverflowButtonDrawable = 0x7f01006b;
65 | public static final int height = 0x7f010026;
66 | public static final int homeAsUpIndicator = 0x7f010013;
67 | public static final int homeLayout = 0x7f010033;
68 | public static final int icon = 0x7f01002c;
69 | public static final int iconifiedByDefault = 0x7f01005a;
70 | public static final int indeterminateProgressStyle = 0x7f010035;
71 | public static final int initialActivityCount = 0x7f01006a;
72 | public static final int isLightTheme = 0x7f010059;
73 | public static final int itemPadding = 0x7f010037;
74 | public static final int listChoiceBackgroundIndicator = 0x7f01004c;
75 | public static final int listPopupWindowStyle = 0x7f010022;
76 | public static final int listPreferredItemHeight = 0x7f01001c;
77 | public static final int listPreferredItemHeightLarge = 0x7f01001e;
78 | public static final int listPreferredItemHeightSmall = 0x7f01001d;
79 | public static final int listPreferredItemPaddingLeft = 0x7f01001f;
80 | public static final int listPreferredItemPaddingRight = 0x7f010020;
81 | public static final int logo = 0x7f01002d;
82 | public static final int navigationMode = 0x7f010027;
83 | public static final int paddingEnd = 0x7f010039;
84 | public static final int paddingStart = 0x7f010038;
85 | public static final int panelMenuListTheme = 0x7f01004b;
86 | public static final int panelMenuListWidth = 0x7f01004a;
87 | public static final int popupMenuStyle = 0x7f010049;
88 | public static final int popupPromptView = 0x7f010053;
89 | public static final int progressBarPadding = 0x7f010036;
90 | public static final int progressBarStyle = 0x7f010034;
91 | public static final int prompt = 0x7f010051;
92 | public static final int queryHint = 0x7f01005b;
93 | public static final int searchDropdownBackground = 0x7f01005c;
94 | public static final int searchResultListItemHeight = 0x7f010065;
95 | public static final int searchViewAutoCompleteTextView = 0x7f010069;
96 | public static final int searchViewCloseIcon = 0x7f01005d;
97 | public static final int searchViewEditQuery = 0x7f010061;
98 | public static final int searchViewEditQueryBackground = 0x7f010062;
99 | public static final int searchViewGoIcon = 0x7f01005e;
100 | public static final int searchViewSearchIcon = 0x7f01005f;
101 | public static final int searchViewTextField = 0x7f010063;
102 | public static final int searchViewTextFieldRight = 0x7f010064;
103 | public static final int searchViewVoiceIcon = 0x7f010060;
104 | public static final int selectableItemBackground = 0x7f010019;
105 | public static final int showAsAction = 0x7f01004d;
106 | public static final int showDividers = 0x7f010055;
107 | public static final int spinnerDropDownItemStyle = 0x7f010058;
108 | public static final int spinnerMode = 0x7f010052;
109 | public static final int spinnerStyle = 0x7f010057;
110 | public static final int subtitle = 0x7f010029;
111 | public static final int subtitleTextStyle = 0x7f01002b;
112 | public static final int textAllCaps = 0x7f01006d;
113 | public static final int textAppearanceLargePopupMenu = 0x7f010014;
114 | public static final int textAppearanceListItem = 0x7f010023;
115 | public static final int textAppearanceListItemSmall = 0x7f010024;
116 | public static final int textAppearanceSearchResultSubtitle = 0x7f010067;
117 | public static final int textAppearanceSearchResultTitle = 0x7f010066;
118 | public static final int textAppearanceSmallPopupMenu = 0x7f010015;
119 | public static final int textColorSearchUrl = 0x7f010068;
120 | public static final int title = 0x7f010025;
121 | public static final int titleTextStyle = 0x7f01002a;
122 | public static final int windowActionBar = 0x7f010000;
123 | public static final int windowActionBarOverlay = 0x7f010001;
124 | public static final int windowFixedHeightMajor = 0x7f010006;
125 | public static final int windowFixedHeightMinor = 0x7f010004;
126 | public static final int windowFixedWidthMajor = 0x7f010003;
127 | public static final int windowFixedWidthMinor = 0x7f010005;
128 | public static final int windowSplitActionBar = 0x7f010002;
129 | }
130 | public static final class bool {
131 | public static final int abc_action_bar_embed_tabs_pre_jb = 0x7f060000;
132 | public static final int abc_action_bar_expanded_action_views_exclusive = 0x7f060001;
133 | public static final int abc_config_actionMenuItemAllCaps = 0x7f060005;
134 | public static final int abc_config_allowActionMenuItemTextWithIcon = 0x7f060004;
135 | public static final int abc_config_showMenuShortcutsWhenKeyboardPresent = 0x7f060003;
136 | public static final int abc_split_action_bar_is_narrow = 0x7f060002;
137 | }
138 | public static final class color {
139 | public static final int abc_search_url_text_holo = 0x7f070003;
140 | public static final int abc_search_url_text_normal = 0x7f070000;
141 | public static final int abc_search_url_text_pressed = 0x7f070002;
142 | public static final int abc_search_url_text_selected = 0x7f070001;
143 | }
144 | public static final class dimen {
145 | public static final int abc_action_bar_default_height = 0x7f080002;
146 | public static final int abc_action_bar_icon_vertical_padding = 0x7f080003;
147 | public static final int abc_action_bar_progress_bar_size = 0x7f08000a;
148 | public static final int abc_action_bar_stacked_max_height = 0x7f080009;
149 | public static final int abc_action_bar_stacked_tab_max_width = 0x7f080001;
150 | public static final int abc_action_bar_subtitle_bottom_margin = 0x7f080007;
151 | public static final int abc_action_bar_subtitle_text_size = 0x7f080005;
152 | public static final int abc_action_bar_subtitle_top_margin = 0x7f080006;
153 | public static final int abc_action_bar_title_text_size = 0x7f080004;
154 | public static final int abc_action_button_min_width = 0x7f080008;
155 | public static final int abc_config_prefDialogWidth = 0x7f080000;
156 | public static final int abc_dropdownitem_icon_width = 0x7f080010;
157 | public static final int abc_dropdownitem_text_padding_left = 0x7f08000e;
158 | public static final int abc_dropdownitem_text_padding_right = 0x7f08000f;
159 | public static final int abc_panel_menu_list_width = 0x7f08000b;
160 | public static final int abc_search_view_preferred_width = 0x7f08000d;
161 | public static final int abc_search_view_text_min_width = 0x7f08000c;
162 | public static final int dialog_fixed_height_major = 0x7f080013;
163 | public static final int dialog_fixed_height_minor = 0x7f080014;
164 | public static final int dialog_fixed_width_major = 0x7f080011;
165 | public static final int dialog_fixed_width_minor = 0x7f080012;
166 | }
167 | public static final class drawable {
168 | public static final int abc_ab_bottom_solid_dark_holo = 0x7f020000;
169 | public static final int abc_ab_bottom_solid_light_holo = 0x7f020001;
170 | public static final int abc_ab_bottom_transparent_dark_holo = 0x7f020002;
171 | public static final int abc_ab_bottom_transparent_light_holo = 0x7f020003;
172 | public static final int abc_ab_share_pack_holo_dark = 0x7f020004;
173 | public static final int abc_ab_share_pack_holo_light = 0x7f020005;
174 | public static final int abc_ab_solid_dark_holo = 0x7f020006;
175 | public static final int abc_ab_solid_light_holo = 0x7f020007;
176 | public static final int abc_ab_stacked_solid_dark_holo = 0x7f020008;
177 | public static final int abc_ab_stacked_solid_light_holo = 0x7f020009;
178 | public static final int abc_ab_stacked_transparent_dark_holo = 0x7f02000a;
179 | public static final int abc_ab_stacked_transparent_light_holo = 0x7f02000b;
180 | public static final int abc_ab_transparent_dark_holo = 0x7f02000c;
181 | public static final int abc_ab_transparent_light_holo = 0x7f02000d;
182 | public static final int abc_cab_background_bottom_holo_dark = 0x7f02000e;
183 | public static final int abc_cab_background_bottom_holo_light = 0x7f02000f;
184 | public static final int abc_cab_background_top_holo_dark = 0x7f020010;
185 | public static final int abc_cab_background_top_holo_light = 0x7f020011;
186 | public static final int abc_ic_ab_back_holo_dark = 0x7f020012;
187 | public static final int abc_ic_ab_back_holo_light = 0x7f020013;
188 | public static final int abc_ic_cab_done_holo_dark = 0x7f020014;
189 | public static final int abc_ic_cab_done_holo_light = 0x7f020015;
190 | public static final int abc_ic_clear = 0x7f020016;
191 | public static final int abc_ic_clear_disabled = 0x7f020017;
192 | public static final int abc_ic_clear_holo_light = 0x7f020018;
193 | public static final int abc_ic_clear_normal = 0x7f020019;
194 | public static final int abc_ic_clear_search_api_disabled_holo_light = 0x7f02001a;
195 | public static final int abc_ic_clear_search_api_holo_light = 0x7f02001b;
196 | public static final int abc_ic_commit_search_api_holo_dark = 0x7f02001c;
197 | public static final int abc_ic_commit_search_api_holo_light = 0x7f02001d;
198 | public static final int abc_ic_go = 0x7f02001e;
199 | public static final int abc_ic_go_search_api_holo_light = 0x7f02001f;
200 | public static final int abc_ic_menu_moreoverflow_normal_holo_dark = 0x7f020020;
201 | public static final int abc_ic_menu_moreoverflow_normal_holo_light = 0x7f020021;
202 | public static final int abc_ic_menu_share_holo_dark = 0x7f020022;
203 | public static final int abc_ic_menu_share_holo_light = 0x7f020023;
204 | public static final int abc_ic_search = 0x7f020024;
205 | public static final int abc_ic_search_api_holo_light = 0x7f020025;
206 | public static final int abc_ic_voice_search = 0x7f020026;
207 | public static final int abc_ic_voice_search_api_holo_light = 0x7f020027;
208 | public static final int abc_item_background_holo_dark = 0x7f020028;
209 | public static final int abc_item_background_holo_light = 0x7f020029;
210 | public static final int abc_list_divider_holo_dark = 0x7f02002a;
211 | public static final int abc_list_divider_holo_light = 0x7f02002b;
212 | public static final int abc_list_focused_holo = 0x7f02002c;
213 | public static final int abc_list_longpressed_holo = 0x7f02002d;
214 | public static final int abc_list_pressed_holo_dark = 0x7f02002e;
215 | public static final int abc_list_pressed_holo_light = 0x7f02002f;
216 | public static final int abc_list_selector_background_transition_holo_dark = 0x7f020030;
217 | public static final int abc_list_selector_background_transition_holo_light = 0x7f020031;
218 | public static final int abc_list_selector_disabled_holo_dark = 0x7f020032;
219 | public static final int abc_list_selector_disabled_holo_light = 0x7f020033;
220 | public static final int abc_list_selector_holo_dark = 0x7f020034;
221 | public static final int abc_list_selector_holo_light = 0x7f020035;
222 | public static final int abc_menu_dropdown_panel_holo_dark = 0x7f020036;
223 | public static final int abc_menu_dropdown_panel_holo_light = 0x7f020037;
224 | public static final int abc_menu_hardkey_panel_holo_dark = 0x7f020038;
225 | public static final int abc_menu_hardkey_panel_holo_light = 0x7f020039;
226 | public static final int abc_search_dropdown_dark = 0x7f02003a;
227 | public static final int abc_search_dropdown_light = 0x7f02003b;
228 | public static final int abc_spinner_ab_default_holo_dark = 0x7f02003c;
229 | public static final int abc_spinner_ab_default_holo_light = 0x7f02003d;
230 | public static final int abc_spinner_ab_disabled_holo_dark = 0x7f02003e;
231 | public static final int abc_spinner_ab_disabled_holo_light = 0x7f02003f;
232 | public static final int abc_spinner_ab_focused_holo_dark = 0x7f020040;
233 | public static final int abc_spinner_ab_focused_holo_light = 0x7f020041;
234 | public static final int abc_spinner_ab_holo_dark = 0x7f020042;
235 | public static final int abc_spinner_ab_holo_light = 0x7f020043;
236 | public static final int abc_spinner_ab_pressed_holo_dark = 0x7f020044;
237 | public static final int abc_spinner_ab_pressed_holo_light = 0x7f020045;
238 | public static final int abc_tab_indicator_ab_holo = 0x7f020046;
239 | public static final int abc_tab_selected_focused_holo = 0x7f020047;
240 | public static final int abc_tab_selected_holo = 0x7f020048;
241 | public static final int abc_tab_selected_pressed_holo = 0x7f020049;
242 | public static final int abc_tab_unselected_pressed_holo = 0x7f02004a;
243 | public static final int abc_textfield_search_default_holo_dark = 0x7f02004b;
244 | public static final int abc_textfield_search_default_holo_light = 0x7f02004c;
245 | public static final int abc_textfield_search_right_default_holo_dark = 0x7f02004d;
246 | public static final int abc_textfield_search_right_default_holo_light = 0x7f02004e;
247 | public static final int abc_textfield_search_right_selected_holo_dark = 0x7f02004f;
248 | public static final int abc_textfield_search_right_selected_holo_light = 0x7f020050;
249 | public static final int abc_textfield_search_selected_holo_dark = 0x7f020051;
250 | public static final int abc_textfield_search_selected_holo_light = 0x7f020052;
251 | public static final int abc_textfield_searchview_holo_dark = 0x7f020053;
252 | public static final int abc_textfield_searchview_holo_light = 0x7f020054;
253 | public static final int abc_textfield_searchview_right_holo_dark = 0x7f020055;
254 | public static final int abc_textfield_searchview_right_holo_light = 0x7f020056;
255 | }
256 | public static final class id {
257 | public static final int action_bar = 0x7f05001c;
258 | public static final int action_bar_activity_content = 0x7f050015;
259 | public static final int action_bar_container = 0x7f05001b;
260 | public static final int action_bar_overlay_layout = 0x7f05001f;
261 | public static final int action_bar_root = 0x7f05001a;
262 | public static final int action_bar_subtitle = 0x7f050023;
263 | public static final int action_bar_title = 0x7f050022;
264 | public static final int action_context_bar = 0x7f05001d;
265 | public static final int action_menu_divider = 0x7f050016;
266 | public static final int action_menu_presenter = 0x7f050017;
267 | public static final int action_mode_close_button = 0x7f050024;
268 | public static final int activity_chooser_view_content = 0x7f050025;
269 | public static final int always = 0x7f05000b;
270 | public static final int beginning = 0x7f050011;
271 | public static final int checkbox = 0x7f05002d;
272 | public static final int collapseActionView = 0x7f05000d;
273 | public static final int default_activity_button = 0x7f050028;
274 | public static final int dialog = 0x7f05000e;
275 | public static final int disableHome = 0x7f050008;
276 | public static final int dropdown = 0x7f05000f;
277 | public static final int edit_query = 0x7f050030;
278 | public static final int end = 0x7f050013;
279 | public static final int expand_activities_button = 0x7f050026;
280 | public static final int expanded_menu = 0x7f05002c;
281 | public static final int home = 0x7f050014;
282 | public static final int homeAsUp = 0x7f050005;
283 | public static final int icon = 0x7f05002a;
284 | public static final int ifRoom = 0x7f05000a;
285 | public static final int image = 0x7f050027;
286 | public static final int listMode = 0x7f050001;
287 | public static final int list_item = 0x7f050029;
288 | public static final int middle = 0x7f050012;
289 | public static final int never = 0x7f050009;
290 | public static final int none = 0x7f050010;
291 | public static final int normal = 0x7f050000;
292 | public static final int progress_circular = 0x7f050018;
293 | public static final int progress_horizontal = 0x7f050019;
294 | public static final int radio = 0x7f05002f;
295 | public static final int search_badge = 0x7f050032;
296 | public static final int search_bar = 0x7f050031;
297 | public static final int search_button = 0x7f050033;
298 | public static final int search_close_btn = 0x7f050038;
299 | public static final int search_edit_frame = 0x7f050034;
300 | public static final int search_go_btn = 0x7f05003a;
301 | public static final int search_mag_icon = 0x7f050035;
302 | public static final int search_plate = 0x7f050036;
303 | public static final int search_src_text = 0x7f050037;
304 | public static final int search_voice_btn = 0x7f05003b;
305 | public static final int shortcut = 0x7f05002e;
306 | public static final int showCustom = 0x7f050007;
307 | public static final int showHome = 0x7f050004;
308 | public static final int showTitle = 0x7f050006;
309 | public static final int split_action_bar = 0x7f05001e;
310 | public static final int submit_area = 0x7f050039;
311 | public static final int tabMode = 0x7f050002;
312 | public static final int title = 0x7f05002b;
313 | public static final int top_action_bar = 0x7f050020;
314 | public static final int up = 0x7f050021;
315 | public static final int useLogo = 0x7f050003;
316 | public static final int withText = 0x7f05000c;
317 | }
318 | public static final class integer {
319 | public static final int abc_max_action_buttons = 0x7f090000;
320 | }
321 | public static final class layout {
322 | public static final int abc_action_bar_decor = 0x7f030000;
323 | public static final int abc_action_bar_decor_include = 0x7f030001;
324 | public static final int abc_action_bar_decor_overlay = 0x7f030002;
325 | public static final int abc_action_bar_home = 0x7f030003;
326 | public static final int abc_action_bar_tab = 0x7f030004;
327 | public static final int abc_action_bar_tabbar = 0x7f030005;
328 | public static final int abc_action_bar_title_item = 0x7f030006;
329 | public static final int abc_action_bar_view_list_nav_layout = 0x7f030007;
330 | public static final int abc_action_menu_item_layout = 0x7f030008;
331 | public static final int abc_action_menu_layout = 0x7f030009;
332 | public static final int abc_action_mode_bar = 0x7f03000a;
333 | public static final int abc_action_mode_close_item = 0x7f03000b;
334 | public static final int abc_activity_chooser_view = 0x7f03000c;
335 | public static final int abc_activity_chooser_view_include = 0x7f03000d;
336 | public static final int abc_activity_chooser_view_list_item = 0x7f03000e;
337 | public static final int abc_expanded_menu_layout = 0x7f03000f;
338 | public static final int abc_list_menu_item_checkbox = 0x7f030010;
339 | public static final int abc_list_menu_item_icon = 0x7f030011;
340 | public static final int abc_list_menu_item_layout = 0x7f030012;
341 | public static final int abc_list_menu_item_radio = 0x7f030013;
342 | public static final int abc_popup_menu_item_layout = 0x7f030014;
343 | public static final int abc_search_dropdown_item_icons_2line = 0x7f030015;
344 | public static final int abc_search_view = 0x7f030016;
345 | public static final int abc_simple_decor = 0x7f030017;
346 | public static final int support_simple_spinner_dropdown_item = 0x7f030019;
347 | }
348 | public static final class string {
349 | public static final int abc_action_bar_home_description = 0x7f0a0001;
350 | public static final int abc_action_bar_up_description = 0x7f0a0002;
351 | public static final int abc_action_menu_overflow_description = 0x7f0a0003;
352 | public static final int abc_action_mode_done = 0x7f0a0000;
353 | public static final int abc_activity_chooser_view_see_all = 0x7f0a000a;
354 | public static final int abc_activitychooserview_choose_application = 0x7f0a0009;
355 | public static final int abc_searchview_description_clear = 0x7f0a0006;
356 | public static final int abc_searchview_description_query = 0x7f0a0005;
357 | public static final int abc_searchview_description_search = 0x7f0a0004;
358 | public static final int abc_searchview_description_submit = 0x7f0a0007;
359 | public static final int abc_searchview_description_voice = 0x7f0a0008;
360 | public static final int abc_shareactionprovider_share_with = 0x7f0a000c;
361 | public static final int abc_shareactionprovider_share_with_application = 0x7f0a000b;
362 | }
363 | public static final class style {
364 | public static final int TextAppearance_AppCompat_Base_CompactMenu_Dialog = 0x7f0b0063;
365 | public static final int TextAppearance_AppCompat_Base_SearchResult = 0x7f0b006d;
366 | public static final int TextAppearance_AppCompat_Base_SearchResult_Subtitle = 0x7f0b006f;
367 | public static final int TextAppearance_AppCompat_Base_SearchResult_Title = 0x7f0b006e;
368 | public static final int TextAppearance_AppCompat_Base_Widget_PopupMenu_Large = 0x7f0b0069;
369 | public static final int TextAppearance_AppCompat_Base_Widget_PopupMenu_Small = 0x7f0b006a;
370 | public static final int TextAppearance_AppCompat_Light_Base_SearchResult = 0x7f0b0070;
371 | public static final int TextAppearance_AppCompat_Light_Base_SearchResult_Subtitle = 0x7f0b0072;
372 | public static final int TextAppearance_AppCompat_Light_Base_SearchResult_Title = 0x7f0b0071;
373 | public static final int TextAppearance_AppCompat_Light_Base_Widget_PopupMenu_Large = 0x7f0b006b;
374 | public static final int TextAppearance_AppCompat_Light_Base_Widget_PopupMenu_Small = 0x7f0b006c;
375 | public static final int TextAppearance_AppCompat_Light_SearchResult_Subtitle = 0x7f0b0035;
376 | public static final int TextAppearance_AppCompat_Light_SearchResult_Title = 0x7f0b0034;
377 | public static final int TextAppearance_AppCompat_Light_Widget_PopupMenu_Large = 0x7f0b0030;
378 | public static final int TextAppearance_AppCompat_Light_Widget_PopupMenu_Small = 0x7f0b0031;
379 | public static final int TextAppearance_AppCompat_SearchResult_Subtitle = 0x7f0b0033;
380 | public static final int TextAppearance_AppCompat_SearchResult_Title = 0x7f0b0032;
381 | public static final int TextAppearance_AppCompat_Widget_ActionBar_Menu = 0x7f0b001a;
382 | public static final int TextAppearance_AppCompat_Widget_ActionBar_Subtitle = 0x7f0b0006;
383 | public static final int TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse = 0x7f0b0008;
384 | public static final int TextAppearance_AppCompat_Widget_ActionBar_Title = 0x7f0b0005;
385 | public static final int TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse = 0x7f0b0007;
386 | public static final int TextAppearance_AppCompat_Widget_ActionMode_Subtitle = 0x7f0b001e;
387 | public static final int TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse = 0x7f0b0020;
388 | public static final int TextAppearance_AppCompat_Widget_ActionMode_Title = 0x7f0b001d;
389 | public static final int TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse = 0x7f0b001f;
390 | public static final int TextAppearance_AppCompat_Widget_Base_ActionBar_Menu = 0x7f0b0054;
391 | public static final int TextAppearance_AppCompat_Widget_Base_ActionBar_Subtitle = 0x7f0b0056;
392 | public static final int TextAppearance_AppCompat_Widget_Base_ActionBar_Subtitle_Inverse = 0x7f0b0058;
393 | public static final int TextAppearance_AppCompat_Widget_Base_ActionBar_Title = 0x7f0b0055;
394 | public static final int TextAppearance_AppCompat_Widget_Base_ActionBar_Title_Inverse = 0x7f0b0057;
395 | public static final int TextAppearance_AppCompat_Widget_Base_ActionMode_Subtitle = 0x7f0b0051;
396 | public static final int TextAppearance_AppCompat_Widget_Base_ActionMode_Subtitle_Inverse = 0x7f0b0053;
397 | public static final int TextAppearance_AppCompat_Widget_Base_ActionMode_Title = 0x7f0b0050;
398 | public static final int TextAppearance_AppCompat_Widget_Base_ActionMode_Title_Inverse = 0x7f0b0052;
399 | public static final int TextAppearance_AppCompat_Widget_Base_DropDownItem = 0x7f0b0061;
400 | public static final int TextAppearance_AppCompat_Widget_DropDownItem = 0x7f0b0021;
401 | public static final int TextAppearance_AppCompat_Widget_PopupMenu_Large = 0x7f0b002e;
402 | public static final int TextAppearance_AppCompat_Widget_PopupMenu_Small = 0x7f0b002f;
403 | public static final int TextAppearance_Widget_AppCompat_Base_ExpandedMenu_Item = 0x7f0b0062;
404 | public static final int TextAppearance_Widget_AppCompat_ExpandedMenu_Item = 0x7f0b0028;
405 | public static final int Theme_AppCompat = 0x7f0b0077;
406 | public static final int Theme_AppCompat_Base_CompactMenu = 0x7f0b0083;
407 | public static final int Theme_AppCompat_Base_CompactMenu_Dialog = 0x7f0b0084;
408 | public static final int Theme_AppCompat_CompactMenu = 0x7f0b007c;
409 | public static final int Theme_AppCompat_CompactMenu_Dialog = 0x7f0b007d;
410 | public static final int Theme_AppCompat_DialogWhenLarge = 0x7f0b007a;
411 | public static final int Theme_AppCompat_Light = 0x7f0b0078;
412 | public static final int Theme_AppCompat_Light_DarkActionBar = 0x7f0b0079;
413 | public static final int Theme_AppCompat_Light_DialogWhenLarge = 0x7f0b007b;
414 | public static final int Theme_Base = 0x7f0b007e;
415 | public static final int Theme_Base_AppCompat = 0x7f0b0080;
416 | public static final int Theme_Base_AppCompat_DialogWhenLarge = 0x7f0b0085;
417 | public static final int Theme_Base_AppCompat_DialogWhenLarge_Base = 0x7f0b0089;
418 | public static final int Theme_Base_AppCompat_Dialog_FixedSize = 0x7f0b0087;
419 | public static final int Theme_Base_AppCompat_Dialog_Light_FixedSize = 0x7f0b0088;
420 | public static final int Theme_Base_AppCompat_Light = 0x7f0b0081;
421 | public static final int Theme_Base_AppCompat_Light_DarkActionBar = 0x7f0b0082;
422 | public static final int Theme_Base_AppCompat_Light_DialogWhenLarge = 0x7f0b0086;
423 | public static final int Theme_Base_AppCompat_Light_DialogWhenLarge_Base = 0x7f0b008a;
424 | public static final int Theme_Base_Light = 0x7f0b007f;
425 | public static final int Widget_AppCompat_ActionBar = 0x7f0b0000;
426 | public static final int Widget_AppCompat_ActionBar_Solid = 0x7f0b0002;
427 | public static final int Widget_AppCompat_ActionBar_TabBar = 0x7f0b0011;
428 | public static final int Widget_AppCompat_ActionBar_TabText = 0x7f0b0017;
429 | public static final int Widget_AppCompat_ActionBar_TabView = 0x7f0b0014;
430 | public static final int Widget_AppCompat_ActionButton = 0x7f0b000b;
431 | public static final int Widget_AppCompat_ActionButton_CloseMode = 0x7f0b000d;
432 | public static final int Widget_AppCompat_ActionButton_Overflow = 0x7f0b000f;
433 | public static final int Widget_AppCompat_ActionMode = 0x7f0b001b;
434 | public static final int Widget_AppCompat_ActivityChooserView = 0x7f0b0038;
435 | public static final int Widget_AppCompat_AutoCompleteTextView = 0x7f0b0036;
436 | public static final int Widget_AppCompat_Base_ActionBar = 0x7f0b003a;
437 | public static final int Widget_AppCompat_Base_ActionBar_Solid = 0x7f0b003c;
438 | public static final int Widget_AppCompat_Base_ActionBar_TabBar = 0x7f0b0045;
439 | public static final int Widget_AppCompat_Base_ActionBar_TabText = 0x7f0b004b;
440 | public static final int Widget_AppCompat_Base_ActionBar_TabView = 0x7f0b0048;
441 | public static final int Widget_AppCompat_Base_ActionButton = 0x7f0b003f;
442 | public static final int Widget_AppCompat_Base_ActionButton_CloseMode = 0x7f0b0041;
443 | public static final int Widget_AppCompat_Base_ActionButton_Overflow = 0x7f0b0043;
444 | public static final int Widget_AppCompat_Base_ActionMode = 0x7f0b004e;
445 | public static final int Widget_AppCompat_Base_ActivityChooserView = 0x7f0b0075;
446 | public static final int Widget_AppCompat_Base_AutoCompleteTextView = 0x7f0b0073;
447 | public static final int Widget_AppCompat_Base_DropDownItem_Spinner = 0x7f0b005d;
448 | public static final int Widget_AppCompat_Base_ListPopupWindow = 0x7f0b0065;
449 | public static final int Widget_AppCompat_Base_ListView_DropDown = 0x7f0b005f;
450 | public static final int Widget_AppCompat_Base_ListView_Menu = 0x7f0b0064;
451 | public static final int Widget_AppCompat_Base_PopupMenu = 0x7f0b0067;
452 | public static final int Widget_AppCompat_Base_ProgressBar = 0x7f0b005a;
453 | public static final int Widget_AppCompat_Base_ProgressBar_Horizontal = 0x7f0b0059;
454 | public static final int Widget_AppCompat_Base_Spinner = 0x7f0b005b;
455 | public static final int Widget_AppCompat_DropDownItem_Spinner = 0x7f0b0024;
456 | public static final int Widget_AppCompat_Light_ActionBar = 0x7f0b0001;
457 | public static final int Widget_AppCompat_Light_ActionBar_Solid = 0x7f0b0003;
458 | public static final int Widget_AppCompat_Light_ActionBar_Solid_Inverse = 0x7f0b0004;
459 | public static final int Widget_AppCompat_Light_ActionBar_TabBar = 0x7f0b0012;
460 | public static final int Widget_AppCompat_Light_ActionBar_TabBar_Inverse = 0x7f0b0013;
461 | public static final int Widget_AppCompat_Light_ActionBar_TabText = 0x7f0b0018;
462 | public static final int Widget_AppCompat_Light_ActionBar_TabText_Inverse = 0x7f0b0019;
463 | public static final int Widget_AppCompat_Light_ActionBar_TabView = 0x7f0b0015;
464 | public static final int Widget_AppCompat_Light_ActionBar_TabView_Inverse = 0x7f0b0016;
465 | public static final int Widget_AppCompat_Light_ActionButton = 0x7f0b000c;
466 | public static final int Widget_AppCompat_Light_ActionButton_CloseMode = 0x7f0b000e;
467 | public static final int Widget_AppCompat_Light_ActionButton_Overflow = 0x7f0b0010;
468 | public static final int Widget_AppCompat_Light_ActionMode_Inverse = 0x7f0b001c;
469 | public static final int Widget_AppCompat_Light_ActivityChooserView = 0x7f0b0039;
470 | public static final int Widget_AppCompat_Light_AutoCompleteTextView = 0x7f0b0037;
471 | public static final int Widget_AppCompat_Light_Base_ActionBar = 0x7f0b003b;
472 | public static final int Widget_AppCompat_Light_Base_ActionBar_Solid = 0x7f0b003d;
473 | public static final int Widget_AppCompat_Light_Base_ActionBar_Solid_Inverse = 0x7f0b003e;
474 | public static final int Widget_AppCompat_Light_Base_ActionBar_TabBar = 0x7f0b0046;
475 | public static final int Widget_AppCompat_Light_Base_ActionBar_TabBar_Inverse = 0x7f0b0047;
476 | public static final int Widget_AppCompat_Light_Base_ActionBar_TabText = 0x7f0b004c;
477 | public static final int Widget_AppCompat_Light_Base_ActionBar_TabText_Inverse = 0x7f0b004d;
478 | public static final int Widget_AppCompat_Light_Base_ActionBar_TabView = 0x7f0b0049;
479 | public static final int Widget_AppCompat_Light_Base_ActionBar_TabView_Inverse = 0x7f0b004a;
480 | public static final int Widget_AppCompat_Light_Base_ActionButton = 0x7f0b0040;
481 | public static final int Widget_AppCompat_Light_Base_ActionButton_CloseMode = 0x7f0b0042;
482 | public static final int Widget_AppCompat_Light_Base_ActionButton_Overflow = 0x7f0b0044;
483 | public static final int Widget_AppCompat_Light_Base_ActionMode_Inverse = 0x7f0b004f;
484 | public static final int Widget_AppCompat_Light_Base_ActivityChooserView = 0x7f0b0076;
485 | public static final int Widget_AppCompat_Light_Base_AutoCompleteTextView = 0x7f0b0074;
486 | public static final int Widget_AppCompat_Light_Base_DropDownItem_Spinner = 0x7f0b005e;
487 | public static final int Widget_AppCompat_Light_Base_ListPopupWindow = 0x7f0b0066;
488 | public static final int Widget_AppCompat_Light_Base_ListView_DropDown = 0x7f0b0060;
489 | public static final int Widget_AppCompat_Light_Base_PopupMenu = 0x7f0b0068;
490 | public static final int Widget_AppCompat_Light_Base_Spinner = 0x7f0b005c;
491 | public static final int Widget_AppCompat_Light_DropDownItem_Spinner = 0x7f0b0025;
492 | public static final int Widget_AppCompat_Light_ListPopupWindow = 0x7f0b002a;
493 | public static final int Widget_AppCompat_Light_ListView_DropDown = 0x7f0b0027;
494 | public static final int Widget_AppCompat_Light_PopupMenu = 0x7f0b002c;
495 | public static final int Widget_AppCompat_Light_Spinner_DropDown_ActionBar = 0x7f0b0023;
496 | public static final int Widget_AppCompat_ListPopupWindow = 0x7f0b0029;
497 | public static final int Widget_AppCompat_ListView_DropDown = 0x7f0b0026;
498 | public static final int Widget_AppCompat_ListView_Menu = 0x7f0b002d;
499 | public static final int Widget_AppCompat_PopupMenu = 0x7f0b002b;
500 | public static final int Widget_AppCompat_ProgressBar = 0x7f0b000a;
501 | public static final int Widget_AppCompat_ProgressBar_Horizontal = 0x7f0b0009;
502 | public static final int Widget_AppCompat_Spinner_DropDown_ActionBar = 0x7f0b0022;
503 | }
504 | public static final class styleable {
505 | public static final int[] ActionBar = { 0x7f010025, 0x7f010026, 0x7f010027, 0x7f010028, 0x7f010029, 0x7f01002a, 0x7f01002b, 0x7f01002c, 0x7f01002d, 0x7f01002e, 0x7f01002f, 0x7f010030, 0x7f010031, 0x7f010032, 0x7f010033, 0x7f010034, 0x7f010035, 0x7f010036, 0x7f010037 };
506 | public static final int[] ActionBarLayout = { 0x010100b3 };
507 | public static final int ActionBarLayout_android_layout_gravity = 0;
508 | public static final int[] ActionBarWindow = { 0x7f010000, 0x7f010001, 0x7f010002, 0x7f010003, 0x7f010004, 0x7f010005, 0x7f010006 };
509 | public static final int ActionBarWindow_windowActionBar = 0;
510 | public static final int ActionBarWindow_windowActionBarOverlay = 1;
511 | public static final int ActionBarWindow_windowFixedHeightMajor = 6;
512 | public static final int ActionBarWindow_windowFixedHeightMinor = 4;
513 | public static final int ActionBarWindow_windowFixedWidthMajor = 3;
514 | public static final int ActionBarWindow_windowFixedWidthMinor = 5;
515 | public static final int ActionBarWindow_windowSplitActionBar = 2;
516 | public static final int ActionBar_background = 10;
517 | public static final int ActionBar_backgroundSplit = 12;
518 | public static final int ActionBar_backgroundStacked = 11;
519 | public static final int ActionBar_customNavigationLayout = 13;
520 | public static final int ActionBar_displayOptions = 3;
521 | public static final int ActionBar_divider = 9;
522 | public static final int ActionBar_height = 1;
523 | public static final int ActionBar_homeLayout = 14;
524 | public static final int ActionBar_icon = 7;
525 | public static final int ActionBar_indeterminateProgressStyle = 16;
526 | public static final int ActionBar_itemPadding = 18;
527 | public static final int ActionBar_logo = 8;
528 | public static final int ActionBar_navigationMode = 2;
529 | public static final int ActionBar_progressBarPadding = 17;
530 | public static final int ActionBar_progressBarStyle = 15;
531 | public static final int ActionBar_subtitle = 4;
532 | public static final int ActionBar_subtitleTextStyle = 6;
533 | public static final int ActionBar_title = 0;
534 | public static final int ActionBar_titleTextStyle = 5;
535 | public static final int[] ActionMenuItemView = { 0x0101013f };
536 | public static final int ActionMenuItemView_android_minWidth = 0;
537 | public static final int[] ActionMenuView = { };
538 | public static final int[] ActionMode = { 0x7f010026, 0x7f01002a, 0x7f01002b, 0x7f01002f, 0x7f010031 };
539 | public static final int ActionMode_background = 3;
540 | public static final int ActionMode_backgroundSplit = 4;
541 | public static final int ActionMode_height = 0;
542 | public static final int ActionMode_subtitleTextStyle = 2;
543 | public static final int ActionMode_titleTextStyle = 1;
544 | public static final int[] ActivityChooserView = { 0x7f01006a, 0x7f01006b };
545 | public static final int ActivityChooserView_expandActivityOverflowButtonDrawable = 1;
546 | public static final int ActivityChooserView_initialActivityCount = 0;
547 | public static final int[] CompatTextView = { 0x7f01006d };
548 | public static final int CompatTextView_textAllCaps = 0;
549 | public static final int[] LinearLayoutICS = { 0x7f01002e, 0x7f010055, 0x7f010056 };
550 | public static final int LinearLayoutICS_divider = 0;
551 | public static final int LinearLayoutICS_dividerPadding = 2;
552 | public static final int LinearLayoutICS_showDividers = 1;
553 | public static final int[] MenuGroup = { 0x0101000e, 0x010100d0, 0x01010194, 0x010101de, 0x010101df, 0x010101e0 };
554 | public static final int MenuGroup_android_checkableBehavior = 5;
555 | public static final int MenuGroup_android_enabled = 0;
556 | public static final int MenuGroup_android_id = 1;
557 | public static final int MenuGroup_android_menuCategory = 3;
558 | public static final int MenuGroup_android_orderInCategory = 4;
559 | public static final int MenuGroup_android_visible = 2;
560 | public static final int[] MenuItem = { 0x01010002, 0x0101000e, 0x010100d0, 0x01010106, 0x01010194, 0x010101de, 0x010101df, 0x010101e1, 0x010101e2, 0x010101e3, 0x010101e4, 0x010101e5, 0x0101026f, 0x7f01004d, 0x7f01004e, 0x7f01004f, 0x7f010050 };
561 | public static final int MenuItem_actionLayout = 14;
562 | public static final int MenuItem_actionProviderClass = 16;
563 | public static final int MenuItem_actionViewClass = 15;
564 | public static final int MenuItem_android_alphabeticShortcut = 9;
565 | public static final int MenuItem_android_checkable = 11;
566 | public static final int MenuItem_android_checked = 3;
567 | public static final int MenuItem_android_enabled = 1;
568 | public static final int MenuItem_android_icon = 0;
569 | public static final int MenuItem_android_id = 2;
570 | public static final int MenuItem_android_menuCategory = 5;
571 | public static final int MenuItem_android_numericShortcut = 10;
572 | public static final int MenuItem_android_onClick = 12;
573 | public static final int MenuItem_android_orderInCategory = 6;
574 | public static final int MenuItem_android_title = 7;
575 | public static final int MenuItem_android_titleCondensed = 8;
576 | public static final int MenuItem_android_visible = 4;
577 | public static final int MenuItem_showAsAction = 13;
578 | public static final int[] MenuView = { 0x010100ae, 0x0101012c, 0x0101012d, 0x0101012e, 0x0101012f, 0x01010130, 0x01010131, 0x01010435 };
579 | public static final int MenuView_android_headerBackground = 4;
580 | public static final int MenuView_android_horizontalDivider = 2;
581 | public static final int MenuView_android_itemBackground = 5;
582 | public static final int MenuView_android_itemIconDisabledAlpha = 6;
583 | public static final int MenuView_android_itemTextAppearance = 1;
584 | public static final int MenuView_android_preserveIconSpacing = 7;
585 | public static final int MenuView_android_verticalDivider = 3;
586 | public static final int MenuView_android_windowAnimationStyle = 0;
587 | public static final int[] SearchView = { 0x0101011f, 0x01010220, 0x01010264, 0x7f01005a, 0x7f01005b };
588 | public static final int SearchView_android_imeOptions = 2;
589 | public static final int SearchView_android_inputType = 1;
590 | public static final int SearchView_android_maxWidth = 0;
591 | public static final int SearchView_iconifiedByDefault = 3;
592 | public static final int SearchView_queryHint = 4;
593 | public static final int[] Spinner = { 0x010100af, 0x01010175, 0x01010176, 0x01010262, 0x010102ac, 0x010102ad, 0x7f010051, 0x7f010052, 0x7f010053, 0x7f010054 };
594 | public static final int Spinner_android_dropDownHorizontalOffset = 4;
595 | public static final int Spinner_android_dropDownSelector = 1;
596 | public static final int Spinner_android_dropDownVerticalOffset = 5;
597 | public static final int Spinner_android_dropDownWidth = 3;
598 | public static final int Spinner_android_gravity = 0;
599 | public static final int Spinner_android_popupBackground = 2;
600 | public static final int Spinner_disableChildrenWhenDisabled = 9;
601 | public static final int Spinner_popupPromptView = 8;
602 | public static final int Spinner_prompt = 6;
603 | public static final int Spinner_spinnerMode = 7;
604 | public static final int[] Theme = { 0x7f010047, 0x7f010048, 0x7f010049, 0x7f01004a, 0x7f01004b, 0x7f01004c };
605 | public static final int Theme_actionDropDownStyle = 0;
606 | public static final int Theme_dropdownListPreferredItemHeight = 1;
607 | public static final int Theme_listChoiceBackgroundIndicator = 5;
608 | public static final int Theme_panelMenuListTheme = 4;
609 | public static final int Theme_panelMenuListWidth = 3;
610 | public static final int Theme_popupMenuStyle = 2;
611 | public static final int[] View = { 0x010100da, 0x7f010038, 0x7f010039 };
612 | public static final int View_android_focusable = 0;
613 | public static final int View_paddingEnd = 2;
614 | public static final int View_paddingStart = 1;
615 | }
616 | }
617 |
--------------------------------------------------------------------------------