Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
*.iml | ||
.gradle | ||
/local.properties | ||
/.idea/workspace.xml | ||
/.idea/libraries | ||
.DS_Store | ||
/build | ||
/captures | ||
.externalNativeBuild |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
/build |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
apply plugin: 'com.android.application' | ||
|
||
android { | ||
compileSdkVersion 25 | ||
buildToolsVersion "25.0.2" | ||
defaultConfig { | ||
applicationId "com.bridle.james.austeer" | ||
minSdkVersion 15 | ||
targetSdkVersion 25 | ||
versionCode 1 | ||
versionName "1.0" | ||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" | ||
} | ||
buildTypes { | ||
release { | ||
minifyEnabled false | ||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' | ||
} | ||
} | ||
} | ||
|
||
dependencies { | ||
compile fileTree(dir: 'libs', include: ['*.jar']) | ||
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { | ||
exclude group: 'com.android.support', module: 'support-annotations' | ||
}) | ||
compile 'com.android.support:appcompat-v7:25.2.0' | ||
compile 'com.android.support:design:25.2.0' | ||
testCompile 'junit:junit:4.12' | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# Add project specific ProGuard rules here. | ||
# By default, the flags in this file are appended to flags specified | ||
# in /Users/james/Library/Android/sdk/tools/proguard/proguard-android.txt | ||
# You can edit the include path and order by changing the proguardFiles | ||
# directive in build.gradle. | ||
# | ||
# For more details, see | ||
# http://developer.android.com/guide/developing/tools/proguard.html | ||
|
||
# Add any project specific keep options here: | ||
|
||
# If your project uses WebView with JS, uncomment the following | ||
# and specify the fully qualified class name to the JavaScript interface | ||
# class: | ||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview { | ||
# public *; | ||
#} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
package com.bridle.james.austeer; | ||
|
||
import android.content.Context; | ||
import android.support.test.InstrumentationRegistry; | ||
import android.support.test.runner.AndroidJUnit4; | ||
|
||
import org.junit.Test; | ||
import org.junit.runner.RunWith; | ||
|
||
import static org.junit.Assert.*; | ||
|
||
/** | ||
* Instrumentation test, which will execute on an Android device. | ||
* | ||
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a> | ||
*/ | ||
@RunWith(AndroidJUnit4.class) | ||
public class ExampleInstrumentedTest { | ||
@Test | ||
public void useAppContext() throws Exception { | ||
// Context of the app under test. | ||
Context appContext = InstrumentationRegistry.getTargetContext(); | ||
|
||
assertEquals("com.bridle.james.austeer", appContext.getPackageName()); | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" | ||
package="com.bridle.james.austeer"> | ||
|
||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> | ||
|
||
<application | ||
android:allowBackup="true" | ||
android:icon="@mipmap/ic_launcher" | ||
android:label="@string/app_name" | ||
android:supportsRtl="true" | ||
android:theme="@style/AppTheme"> | ||
|
||
<activity | ||
android:name=".MainActivity" | ||
android:label="@string/app_name" | ||
android:theme="@style/AppTheme.NoActionBar" | ||
android:screenOrientation="landscape"> | ||
<intent-filter> | ||
<action android:name="android.intent.action.MAIN" /> | ||
|
||
<category android:name="android.intent.category.LAUNCHER" /> | ||
</intent-filter> | ||
</activity> | ||
<activity | ||
android:name=".Logging" | ||
android:screenOrientation="landscape"> | ||
<uses-feature | ||
android:name="android.hardware.sensor.accelerometer" | ||
android:required="true" /> | ||
</activity> | ||
|
||
|
||
</application> | ||
|
||
</manifest> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,117 @@ | ||
package com.bridle.james.austeer; | ||
|
||
import android.content.Context; | ||
import android.hardware.Sensor; | ||
import android.hardware.SensorEvent; | ||
import android.hardware.SensorEventListener; | ||
import android.hardware.SensorManager; | ||
import android.location.Location; | ||
import android.location.LocationListener; | ||
import android.location.LocationManager; | ||
import android.support.v7.app.AppCompatActivity; | ||
import android.os.Bundle; | ||
import android.os.Handler; | ||
import android.view.WindowManager; | ||
import android.widget.TextView; | ||
|
||
public class Logging extends AppCompatActivity { | ||
|
||
TextView timerTextView; | ||
long startTime = 0; | ||
|
||
TextView speedTextView; | ||
TextView locationTextView; | ||
TextView steeringTextView; | ||
|
||
String locString = "Getting location..."; | ||
String speedString = "Getting speed..."; | ||
String steerString = "Getting Steering Angle..."; | ||
String steerStringX; | ||
String steerStringY; | ||
String steerStringZ; | ||
|
||
LocationManager locationManager; | ||
LocationListener li; | ||
|
||
SensorManager sMgr; | ||
Sensor gyro; | ||
SensorEventListener sev; | ||
|
||
//runs without a timer by reposting this handler at the end of the runnable | ||
Handler timerHandler = new Handler(); | ||
Runnable timerRunnable = new Runnable() { | ||
|
||
@Override | ||
public void run() { | ||
long millis = System.currentTimeMillis() - startTime; | ||
int seconds = (int) (millis / 1000); | ||
int minutes = seconds / 60; | ||
seconds = seconds % 60; | ||
|
||
timerTextView.setText(String.format("%d:%02d", minutes, seconds)); | ||
locationTextView.setText("Location: "+locString); | ||
speedTextView.setText("Speed: "+speedString); | ||
|
||
steeringTextView.setText("Gyro: "+steerString); | ||
|
||
timerHandler.postDelayed(this, 500); | ||
} | ||
}; | ||
|
||
@Override | ||
protected void onCreate(Bundle savedInstanceState) { | ||
super.onCreate(savedInstanceState); | ||
setContentView(R.layout.activity_logging); | ||
|
||
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); | ||
|
||
timerTextView = (TextView) findViewById(R.id.timerTextView); | ||
locationTextView = (TextView) findViewById(R.id.locationTextView); | ||
speedTextView = (TextView) findViewById(R.id.speedTextView); | ||
steeringTextView = (TextView) findViewById(R.id.steeringTextView); | ||
|
||
startTime = System.currentTimeMillis(); | ||
timerHandler.postDelayed(timerRunnable, 0); | ||
|
||
locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); | ||
|
||
li = new LocationListener() { | ||
public void onLocationChanged(Location location) { | ||
// Called when a new location is found by the network location provider. | ||
locString = Double.toString(location.getLatitude())+','+Double.toString(location.getLongitude()); | ||
speedString = Float.toString(location.getSpeed()); | ||
} | ||
public void onStatusChanged(String provider, int status, Bundle extras) {} | ||
public void onProviderEnabled(String provider) {} | ||
public void onProviderDisabled(String provider) {} | ||
}; | ||
|
||
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, li); | ||
|
||
sMgr = (SensorManager)getSystemService(SENSOR_SERVICE); | ||
gyro = sMgr.getDefaultSensor(Sensor.TYPE_GYROSCOPE); | ||
|
||
sev = new SensorEventListener() { | ||
public void onAccuracyChanged(Sensor sensor, int accuracy) {} | ||
public void onSensorChanged(SensorEvent event) { | ||
float axisX = event.values[0]; | ||
float axisY = event.values[1]; | ||
float axisZ = event.values[2]; | ||
steerStringX = Float.toString(axisX); | ||
steerStringY = Float.toString(axisY); | ||
steerStringZ = Float.toString(axisZ); | ||
steerString = "X: "+steerStringX+" / Y: "+steerStringY+" / Z: "+steerStringZ; | ||
} | ||
}; | ||
|
||
sMgr.registerListener(sev, gyro, SensorManager.SENSOR_DELAY_FASTEST); | ||
|
||
} | ||
|
||
@Override | ||
public void onPause() { | ||
super.onPause(); | ||
timerHandler.removeCallbacks(timerRunnable); | ||
sMgr.unregisterListener(sev); | ||
} | ||
} |