diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2017-11-05 14:53:46 +0200 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2017-11-05 14:53:46 +0200 |
| commit | 4b4e1154f0f041bcfea4fa6b922c0c5c2274983c (patch) | |
| tree | e5c895aedef095240adbfd63729939b3a2b491f5 /Software | |
| parent | 13d10370d7f10aec71d48c5914c76208111eeb05 (diff) | |
| download | Tango-4b4e1154f0f041bcfea4fa6b922c0c5c2274983c.tar.gz Tango-4b4e1154f0f041bcfea4fa6b922c0c5c2274983c.zip | |
Added new Android Studio project.
Implemented PMR script for android studio.
Added C++ support.
Implemented android PMR unit testing.
Diffstat (limited to 'Software')
64 files changed, 4196 insertions, 6 deletions
diff --git a/Software/Android-Studio/.gitignore b/Software/Android-Studio/.gitignore new file mode 100644 index 000000000..39fb081a4 --- /dev/null +++ b/Software/Android-Studio/.gitignore @@ -0,0 +1,9 @@ +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures +.externalNativeBuild diff --git a/Software/Android-Studio/Tango.BL/.gitignore b/Software/Android-Studio/Tango.BL/.gitignore new file mode 100644 index 000000000..796b96d1c --- /dev/null +++ b/Software/Android-Studio/Tango.BL/.gitignore @@ -0,0 +1 @@ +/build diff --git a/Software/Android-Studio/Tango.BL/CMakeLists.txt b/Software/Android-Studio/Tango.BL/CMakeLists.txt new file mode 100644 index 000000000..201e7c537 --- /dev/null +++ b/Software/Android-Studio/Tango.BL/CMakeLists.txt @@ -0,0 +1,45 @@ +# For more information about using CMake with Android Studio, read the +# documentation: https://d.android.com/studio/projects/add-native-code.html + +# Sets the minimum version of CMake required to build the native library. + +cmake_minimum_required(VERSION 3.4.1) + +# Creates and names a library, sets it as either STATIC +# or SHARED, and provides the relative paths to its source code. +# You can define multiple libraries, and CMake builds them for you. +# Gradle automatically packages shared libraries with your APK. + +add_library( # Sets the name of the library. + native-lib + + # Sets the library as a shared library. + SHARED + + # Provides a relative path to your source file(s). + src/main/cpp/native-lib.cpp + src/main/cpp/OtherClass.cpp ) + +# Searches for a specified prebuilt library and stores the path as a +# variable. Because CMake includes system libraries in the search path by +# default, you only need to specify the name of the public NDK library +# you want to add. CMake verifies that the library exists before +# completing its build. + +find_library( # Sets the name of the path variable. + log-lib + + # Specifies the name of the NDK library that + # you want CMake to locate. + log ) + +# Specifies libraries CMake should link to your target library. You +# can link multiple libraries, such as libraries you define in this +# build script, prebuilt third-party libraries, or system libraries. + +target_link_libraries( # Specifies the target library. + native-lib + + # Links the target library to the log library + # included in the NDK. + ${log-lib} )
\ No newline at end of file diff --git a/Software/Android-Studio/Tango.BL/build.gradle b/Software/Android-Studio/Tango.BL/build.gradle new file mode 100644 index 000000000..f93ac6d3d --- /dev/null +++ b/Software/Android-Studio/Tango.BL/build.gradle @@ -0,0 +1,42 @@ +apply plugin: 'com.android.library' + +android { + compileSdkVersion 26 + buildToolsVersion "26.0.1" + + + defaultConfig { + minSdkVersion 22 + targetSdkVersion 26 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + externalNativeBuild { + cmake { + cppFlags "-std=c++11 -frtti -fexceptions" + } + } + + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + externalNativeBuild { + cmake { + path "CMakeLists.txt" + } + } +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + + implementation 'com.android.support:appcompat-v7:26.1.0' + testImplementation 'junit:junit:4.12' + androidTestImplementation 'com.android.support.test:runner:1.0.1' + androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' +} diff --git a/Software/Android-Studio/Tango.BL/proguard-rules.pro b/Software/Android-Studio/Tango.BL/proguard-rules.pro new file mode 100644 index 000000000..a0eef131a --- /dev/null +++ b/Software/Android-Studio/Tango.BL/proguard-rules.pro @@ -0,0 +1,25 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in C:\Users\Roy\AppData\Local\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 *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/Software/Android-Studio/Tango.BL/src/androidTest/java/com/twine/tango/bl/ExampleInstrumentedTest.java b/Software/Android-Studio/Tango.BL/src/androidTest/java/com/twine/tango/bl/ExampleInstrumentedTest.java new file mode 100644 index 000000000..53e0be06b --- /dev/null +++ b/Software/Android-Studio/Tango.BL/src/androidTest/java/com/twine/tango/bl/ExampleInstrumentedTest.java @@ -0,0 +1,29 @@ +package com.twine.tango.bl; + +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.*; + +/** + * Instrumented 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(); + + Example e = new Example(); + e.Do(); + + assertEquals("com.twine.tango.bl.test", appContext.getPackageName()); + } +} diff --git a/Software/Android-Studio/Tango.BL/src/main/AndroidManifest.xml b/Software/Android-Studio/Tango.BL/src/main/AndroidManifest.xml new file mode 100644 index 000000000..29e67ea39 --- /dev/null +++ b/Software/Android-Studio/Tango.BL/src/main/AndroidManifest.xml @@ -0,0 +1,2 @@ +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.twine.tango.bl" /> diff --git a/Software/Android-Studio/Tango.BL/src/main/cpp/Android.mk b/Software/Android-Studio/Tango.BL/src/main/cpp/Android.mk new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/Software/Android-Studio/Tango.BL/src/main/cpp/Android.mk diff --git a/Software/Android-Studio/Tango.BL/src/main/cpp/OtherClass.cpp b/Software/Android-Studio/Tango.BL/src/main/cpp/OtherClass.cpp new file mode 100644 index 000000000..50d6304dd --- /dev/null +++ b/Software/Android-Studio/Tango.BL/src/main/cpp/OtherClass.cpp @@ -0,0 +1,9 @@ +// +// Created by Roy on 11/5/2017. +// + +#include "OtherClass.h" + +string OtherClass::getString(string str) { + return str; +} diff --git a/Software/Android-Studio/Tango.BL/src/main/cpp/OtherClass.h b/Software/Android-Studio/Tango.BL/src/main/cpp/OtherClass.h new file mode 100644 index 000000000..0efe65b71 --- /dev/null +++ b/Software/Android-Studio/Tango.BL/src/main/cpp/OtherClass.h @@ -0,0 +1,19 @@ +// +// Created by Roy on 11/5/2017. +// +#include <string> + +using namespace std; + +#ifndef ANDROID_STUDIO_OTHERCLASS_H +#define ANDROID_STUDIO_OTHERCLASS_H + + +class OtherClass { + +public: + string getString(string str); +}; + + +#endif //ANDROID_STUDIO_OTHERCLASS_H diff --git a/Software/Android-Studio/Tango.BL/src/main/cpp/native-lib.cpp b/Software/Android-Studio/Tango.BL/src/main/cpp/native-lib.cpp new file mode 100644 index 000000000..c7317d615 --- /dev/null +++ b/Software/Android-Studio/Tango.BL/src/main/cpp/native-lib.cpp @@ -0,0 +1,18 @@ +#include <jni.h> +#include <string> +#include "OtherClass.h" + +extern "C" +JNIEXPORT jstring + +JNICALL +Java_com_twine_tango_bl_Example_getString( + JNIEnv *env, + jobject /* this */) +{ + + OtherClass c; + + std::string hello = "Hello from C++" + c.getString(" Some String"); + return env->NewStringUTF(hello.c_str()); +} diff --git a/Software/Android-Studio/Tango.BL/src/main/java/com/twine/tango/bl/Example.java b/Software/Android-Studio/Tango.BL/src/main/java/com/twine/tango/bl/Example.java new file mode 100644 index 000000000..992ddf16f --- /dev/null +++ b/Software/Android-Studio/Tango.BL/src/main/java/com/twine/tango/bl/Example.java @@ -0,0 +1,21 @@ +package com.twine.tango.bl; + +import android.util.Log; + +/** + * Created by Roy on 11/2/2017. + */ + +public class Example { + public native String getString(); + + static { + System.loadLibrary("native-lib"); + } + + public void Do() + { + String a = getString(); + Log.i("NATIVE NATIVE",a); + } +} diff --git a/Software/Android-Studio/Tango.BL/src/main/res/values/strings.xml b/Software/Android-Studio/Tango.BL/src/main/res/values/strings.xml new file mode 100644 index 000000000..5c465ac04 --- /dev/null +++ b/Software/Android-Studio/Tango.BL/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ +<resources> + <string name="app_name">Tango.BL</string> +</resources> diff --git a/Software/Android-Studio/Tango.BL/src/test/java/com/twine/tango/bl/ExampleUnitTest.java b/Software/Android-Studio/Tango.BL/src/test/java/com/twine/tango/bl/ExampleUnitTest.java new file mode 100644 index 000000000..5db76b579 --- /dev/null +++ b/Software/Android-Studio/Tango.BL/src/test/java/com/twine/tango/bl/ExampleUnitTest.java @@ -0,0 +1,17 @@ +package com.twine.tango.bl; + +import org.junit.Test; + +import static org.junit.Assert.*; + +/** + * Example local unit test, which will execute on the development machine (host). + * + * @see <a href="http://d.android.com/tools/testing">Testing documentation</a> + */ +public class ExampleUnitTest { + @Test + public void addition_isCorrect() throws Exception { + assertEquals(4, 2 + 2); + } +}
\ No newline at end of file diff --git a/Software/Android-Studio/Tango.PMR/.gitignore b/Software/Android-Studio/Tango.PMR/.gitignore new file mode 100644 index 000000000..796b96d1c --- /dev/null +++ b/Software/Android-Studio/Tango.PMR/.gitignore @@ -0,0 +1 @@ +/build diff --git a/Software/Android-Studio/Tango.PMR/build.gradle b/Software/Android-Studio/Tango.PMR/build.gradle new file mode 100644 index 000000000..06435d18d --- /dev/null +++ b/Software/Android-Studio/Tango.PMR/build.gradle @@ -0,0 +1,22 @@ +apply plugin: 'java-library' + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + compile 'com.google.protobuf:protobuf-java:3.4.0' +} + +sourceCompatibility = "1.7" +targetCompatibility = "1.7" + +task createPMR(type: Exec, description: 'Update all PMR files') { + + commandLine '..\\Visual Studio\\Build\\Debug\\proto-tc.exe', '-i' , '..\\..\\PMR\\Messages', '-o', 'src\\main\\java\\Tango\\PMR', '-l', 'Java' + + ext.output = { + return standardOutput.toString() + } +} + +tasks.withType(JavaCompile) { + compileTask -> compileTask.dependsOn createPMR +}
\ No newline at end of file diff --git a/Software/Android-Studio/Tango.PMR/src/main/java/Tango/PMR/Common/MessageContainerOuterClass.java b/Software/Android-Studio/Tango.PMR/src/main/java/Tango/PMR/Common/MessageContainerOuterClass.java new file mode 100644 index 000000000..331fab637 --- /dev/null +++ b/Software/Android-Studio/Tango.PMR/src/main/java/Tango/PMR/Common/MessageContainerOuterClass.java @@ -0,0 +1,602 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: MessageContainer.proto + +package Tango.PMR.Common; + +public final class MessageContainerOuterClass { + private MessageContainerOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface MessageContainerOrBuilder extends + // @@protoc_insertion_point(interface_extends:Tango.PMR.Common.MessageContainer) + com.google.protobuf.MessageOrBuilder { + + /** + * <code>.Tango.PMR.Common.MessageType Type = 1;</code> + */ + int getTypeValue(); + /** + * <code>.Tango.PMR.Common.MessageType Type = 1;</code> + */ + Tango.PMR.Common.MessageTypeOuterClass.MessageType getType(); + + /** + * <code>bytes Data = 2;</code> + */ + com.google.protobuf.ByteString getData(); + } + /** + * Protobuf type {@code Tango.PMR.Common.MessageContainer} + */ + public static final class MessageContainer extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:Tango.PMR.Common.MessageContainer) + MessageContainerOrBuilder { + private static final long serialVersionUID = 0L; + // Use MessageContainer.newBuilder() to construct. + private MessageContainer(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + super(builder); + } + private MessageContainer() { + type_ = 0; + data_ = com.google.protobuf.ByteString.EMPTY; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private MessageContainer( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!parseUnknownFieldProto3( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + case 8: { + int rawValue = input.readEnum(); + + type_ = rawValue; + break; + } + case 18: { + + data_ = input.readBytes(); + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return Tango.PMR.Common.MessageContainerOuterClass.internal_static_Tango_PMR_Common_MessageContainer_descriptor; + } + + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return Tango.PMR.Common.MessageContainerOuterClass.internal_static_Tango_PMR_Common_MessageContainer_fieldAccessorTable + .ensureFieldAccessorsInitialized( + Tango.PMR.Common.MessageContainerOuterClass.MessageContainer.class, Tango.PMR.Common.MessageContainerOuterClass.MessageContainer.Builder.class); + } + + public static final int TYPE_FIELD_NUMBER = 1; + private int type_; + /** + * <code>.Tango.PMR.Common.MessageType Type = 1;</code> + */ + public int getTypeValue() { + return type_; + } + /** + * <code>.Tango.PMR.Common.MessageType Type = 1;</code> + */ + public Tango.PMR.Common.MessageTypeOuterClass.MessageType getType() { + Tango.PMR.Common.MessageTypeOuterClass.MessageType result = Tango.PMR.Common.MessageTypeOuterClass.MessageType.valueOf(type_); + return result == null ? Tango.PMR.Common.MessageTypeOuterClass.MessageType.UNRECOGNIZED : result; + } + + public static final int DATA_FIELD_NUMBER = 2; + private com.google.protobuf.ByteString data_; + /** + * <code>bytes Data = 2;</code> + */ + public com.google.protobuf.ByteString getData() { + return data_; + } + + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (type_ != Tango.PMR.Common.MessageTypeOuterClass.MessageType.RGB.getNumber()) { + output.writeEnum(1, type_); + } + if (!data_.isEmpty()) { + output.writeBytes(2, data_); + } + unknownFields.writeTo(output); + } + + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (type_ != Tango.PMR.Common.MessageTypeOuterClass.MessageType.RGB.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(1, type_); + } + if (!data_.isEmpty()) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(2, data_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof Tango.PMR.Common.MessageContainerOuterClass.MessageContainer)) { + return super.equals(obj); + } + Tango.PMR.Common.MessageContainerOuterClass.MessageContainer other = (Tango.PMR.Common.MessageContainerOuterClass.MessageContainer) obj; + + boolean result = true; + result = result && type_ == other.type_; + result = result && getData() + .equals(other.getData()); + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + TYPE_FIELD_NUMBER; + hash = (53 * hash) + type_; + hash = (37 * hash) + DATA_FIELD_NUMBER; + hash = (53 * hash) + getData().hashCode(); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static Tango.PMR.Common.MessageContainerOuterClass.MessageContainer parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Tango.PMR.Common.MessageContainerOuterClass.MessageContainer parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Tango.PMR.Common.MessageContainerOuterClass.MessageContainer parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Tango.PMR.Common.MessageContainerOuterClass.MessageContainer parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Tango.PMR.Common.MessageContainerOuterClass.MessageContainer parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Tango.PMR.Common.MessageContainerOuterClass.MessageContainer parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Tango.PMR.Common.MessageContainerOuterClass.MessageContainer parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static Tango.PMR.Common.MessageContainerOuterClass.MessageContainer parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static Tango.PMR.Common.MessageContainerOuterClass.MessageContainer parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static Tango.PMR.Common.MessageContainerOuterClass.MessageContainer parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static Tango.PMR.Common.MessageContainerOuterClass.MessageContainer parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static Tango.PMR.Common.MessageContainerOuterClass.MessageContainer parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(Tango.PMR.Common.MessageContainerOuterClass.MessageContainer prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code Tango.PMR.Common.MessageContainer} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements + // @@protoc_insertion_point(builder_implements:Tango.PMR.Common.MessageContainer) + Tango.PMR.Common.MessageContainerOuterClass.MessageContainerOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return Tango.PMR.Common.MessageContainerOuterClass.internal_static_Tango_PMR_Common_MessageContainer_descriptor; + } + + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return Tango.PMR.Common.MessageContainerOuterClass.internal_static_Tango_PMR_Common_MessageContainer_fieldAccessorTable + .ensureFieldAccessorsInitialized( + Tango.PMR.Common.MessageContainerOuterClass.MessageContainer.class, Tango.PMR.Common.MessageContainerOuterClass.MessageContainer.Builder.class); + } + + // Construct using Tango.PMR.Common.MessageContainerOuterClass.MessageContainer.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + public Builder clear() { + super.clear(); + type_ = 0; + + data_ = com.google.protobuf.ByteString.EMPTY; + + return this; + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return Tango.PMR.Common.MessageContainerOuterClass.internal_static_Tango_PMR_Common_MessageContainer_descriptor; + } + + public Tango.PMR.Common.MessageContainerOuterClass.MessageContainer getDefaultInstanceForType() { + return Tango.PMR.Common.MessageContainerOuterClass.MessageContainer.getDefaultInstance(); + } + + public Tango.PMR.Common.MessageContainerOuterClass.MessageContainer build() { + Tango.PMR.Common.MessageContainerOuterClass.MessageContainer result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public Tango.PMR.Common.MessageContainerOuterClass.MessageContainer buildPartial() { + Tango.PMR.Common.MessageContainerOuterClass.MessageContainer result = new Tango.PMR.Common.MessageContainerOuterClass.MessageContainer(this); + result.type_ = type_; + result.data_ = data_; + onBuilt(); + return result; + } + + public Builder clone() { + return (Builder) super.clone(); + } + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.setField(field, value); + } + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof Tango.PMR.Common.MessageContainerOuterClass.MessageContainer) { + return mergeFrom((Tango.PMR.Common.MessageContainerOuterClass.MessageContainer)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(Tango.PMR.Common.MessageContainerOuterClass.MessageContainer other) { + if (other == Tango.PMR.Common.MessageContainerOuterClass.MessageContainer.getDefaultInstance()) return this; + if (other.type_ != 0) { + setTypeValue(other.getTypeValue()); + } + if (other.getData() != com.google.protobuf.ByteString.EMPTY) { + setData(other.getData()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + public final boolean isInitialized() { + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + Tango.PMR.Common.MessageContainerOuterClass.MessageContainer parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (Tango.PMR.Common.MessageContainerOuterClass.MessageContainer) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int type_ = 0; + /** + * <code>.Tango.PMR.Common.MessageType Type = 1;</code> + */ + public int getTypeValue() { + return type_; + } + /** + * <code>.Tango.PMR.Common.MessageType Type = 1;</code> + */ + public Builder setTypeValue(int value) { + type_ = value; + onChanged(); + return this; + } + /** + * <code>.Tango.PMR.Common.MessageType Type = 1;</code> + */ + public Tango.PMR.Common.MessageTypeOuterClass.MessageType getType() { + Tango.PMR.Common.MessageTypeOuterClass.MessageType result = Tango.PMR.Common.MessageTypeOuterClass.MessageType.valueOf(type_); + return result == null ? Tango.PMR.Common.MessageTypeOuterClass.MessageType.UNRECOGNIZED : result; + } + /** + * <code>.Tango.PMR.Common.MessageType Type = 1;</code> + */ + public Builder setType(Tango.PMR.Common.MessageTypeOuterClass.MessageType value) { + if (value == null) { + throw new NullPointerException(); + } + + type_ = value.getNumber(); + onChanged(); + return this; + } + /** + * <code>.Tango.PMR.Common.MessageType Type = 1;</code> + */ + public Builder clearType() { + + type_ = 0; + onChanged(); + return this; + } + + private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY; + /** + * <code>bytes Data = 2;</code> + */ + public com.google.protobuf.ByteString getData() { + return data_; + } + /** + * <code>bytes Data = 2;</code> + */ + public Builder setData(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + + data_ = value; + onChanged(); + return this; + } + /** + * <code>bytes Data = 2;</code> + */ + public Builder clearData() { + + data_ = getDefaultInstance().getData(); + onChanged(); + return this; + } + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFieldsProto3(unknownFields); + } + + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:Tango.PMR.Common.MessageContainer) + } + + // @@protoc_insertion_point(class_scope:Tango.PMR.Common.MessageContainer) + private static final Tango.PMR.Common.MessageContainerOuterClass.MessageContainer DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new Tango.PMR.Common.MessageContainerOuterClass.MessageContainer(); + } + + public static Tango.PMR.Common.MessageContainerOuterClass.MessageContainer getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser<MessageContainer> + PARSER = new com.google.protobuf.AbstractParser<MessageContainer>() { + public MessageContainer parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new MessageContainer(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser<MessageContainer> parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser<MessageContainer> getParserForType() { + return PARSER; + } + + public Tango.PMR.Common.MessageContainerOuterClass.MessageContainer getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_Tango_PMR_Common_MessageContainer_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_Tango_PMR_Common_MessageContainer_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\026MessageContainer.proto\022\020Tango.PMR.Comm" + + "on\032\021MessageType.proto\"M\n\020MessageContaine" + + "r\022+\n\004Type\030\001 \001(\0162\035.Tango.PMR.Common.Messa" + + "geType\022\014\n\004Data\030\002 \001(\014b\006proto3" + }; + com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = + new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { + public com.google.protobuf.ExtensionRegistry assignDescriptors( + com.google.protobuf.Descriptors.FileDescriptor root) { + descriptor = root; + return null; + } + }; + com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + Tango.PMR.Common.MessageTypeOuterClass.getDescriptor(), + }, assigner); + internal_static_Tango_PMR_Common_MessageContainer_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_Tango_PMR_Common_MessageContainer_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_Tango_PMR_Common_MessageContainer_descriptor, + new java.lang.String[] { "Type", "Data", }); + Tango.PMR.Common.MessageTypeOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/Software/Android-Studio/Tango.PMR/src/main/java/Tango/PMR/Common/MessageTypeOuterClass.java b/Software/Android-Studio/Tango.PMR/src/main/java/Tango/PMR/Common/MessageTypeOuterClass.java new file mode 100644 index 000000000..dcdd6b0e3 --- /dev/null +++ b/Software/Android-Studio/Tango.PMR/src/main/java/Tango/PMR/Common/MessageTypeOuterClass.java @@ -0,0 +1,152 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: MessageType.proto + +package Tango.PMR.Common; + +public final class MessageTypeOuterClass { + private MessageTypeOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + /** + * Protobuf enum {@code Tango.PMR.Common.MessageType} + */ + public enum MessageType + implements com.google.protobuf.ProtocolMessageEnum { + /** + * <code>RGB = 0;</code> + */ + RGB(0), + /** + * <code>Job = 1;</code> + */ + Job(1), + /** + * <code>Segment = 2;</code> + */ + Segment(2), + UNRECOGNIZED(-1), + ; + + /** + * <code>RGB = 0;</code> + */ + public static final int RGB_VALUE = 0; + /** + * <code>Job = 1;</code> + */ + public static final int Job_VALUE = 1; + /** + * <code>Segment = 2;</code> + */ + public static final int Segment_VALUE = 2; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static MessageType valueOf(int value) { + return forNumber(value); + } + + public static MessageType forNumber(int value) { + switch (value) { + case 0: return RGB; + case 1: return Job; + case 2: return Segment; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap<MessageType> + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + MessageType> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap<MessageType>() { + public MessageType findValueByNumber(int number) { + return MessageType.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return Tango.PMR.Common.MessageTypeOuterClass.getDescriptor().getEnumTypes().get(0); + } + + private static final MessageType[] VALUES = values(); + + public static MessageType valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private MessageType(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:Tango.PMR.Common.MessageType) + } + + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\021MessageType.proto\022\020Tango.PMR.Common*,\n" + + "\013MessageType\022\007\n\003RGB\020\000\022\007\n\003Job\020\001\022\013\n\007Segmen" + + "t\020\002b\006proto3" + }; + com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = + new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { + public com.google.protobuf.ExtensionRegistry assignDescriptors( + com.google.protobuf.Descriptors.FileDescriptor root) { + descriptor = root; + return null; + } + }; + com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }, assigner); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/Software/Android-Studio/Tango.PMR/src/main/java/Tango/PMR/Common/RGBOuterClass.java b/Software/Android-Studio/Tango.PMR/src/main/java/Tango/PMR/Common/RGBOuterClass.java new file mode 100644 index 000000000..7838d31f6 --- /dev/null +++ b/Software/Android-Studio/Tango.PMR/src/main/java/Tango/PMR/Common/RGBOuterClass.java @@ -0,0 +1,629 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: RGB.proto + +package Tango.PMR.Common; + +public final class RGBOuterClass { + private RGBOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface RGBOrBuilder extends + // @@protoc_insertion_point(interface_extends:Tango.PMR.Common.RGB) + com.google.protobuf.MessageOrBuilder { + + /** + * <code>int32 R = 1;</code> + */ + int getR(); + + /** + * <code>int32 G = 2;</code> + */ + int getG(); + + /** + * <code>int32 B = 3;</code> + */ + int getB(); + } + /** + * Protobuf type {@code Tango.PMR.Common.RGB} + */ + public static final class RGB extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:Tango.PMR.Common.RGB) + RGBOrBuilder { + private static final long serialVersionUID = 0L; + // Use RGB.newBuilder() to construct. + private RGB(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + super(builder); + } + private RGB() { + r_ = 0; + g_ = 0; + b_ = 0; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private RGB( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!parseUnknownFieldProto3( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + case 8: { + + r_ = input.readInt32(); + break; + } + case 16: { + + g_ = input.readInt32(); + break; + } + case 24: { + + b_ = input.readInt32(); + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return Tango.PMR.Common.RGBOuterClass.internal_static_Tango_PMR_Common_RGB_descriptor; + } + + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return Tango.PMR.Common.RGBOuterClass.internal_static_Tango_PMR_Common_RGB_fieldAccessorTable + .ensureFieldAccessorsInitialized( + Tango.PMR.Common.RGBOuterClass.RGB.class, Tango.PMR.Common.RGBOuterClass.RGB.Builder.class); + } + + public static final int R_FIELD_NUMBER = 1; + private int r_; + /** + * <code>int32 R = 1;</code> + */ + public int getR() { + return r_; + } + + public static final int G_FIELD_NUMBER = 2; + private int g_; + /** + * <code>int32 G = 2;</code> + */ + public int getG() { + return g_; + } + + public static final int B_FIELD_NUMBER = 3; + private int b_; + /** + * <code>int32 B = 3;</code> + */ + public int getB() { + return b_; + } + + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (r_ != 0) { + output.writeInt32(1, r_); + } + if (g_ != 0) { + output.writeInt32(2, g_); + } + if (b_ != 0) { + output.writeInt32(3, b_); + } + unknownFields.writeTo(output); + } + + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (r_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, r_); + } + if (g_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(2, g_); + } + if (b_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(3, b_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof Tango.PMR.Common.RGBOuterClass.RGB)) { + return super.equals(obj); + } + Tango.PMR.Common.RGBOuterClass.RGB other = (Tango.PMR.Common.RGBOuterClass.RGB) obj; + + boolean result = true; + result = result && (getR() + == other.getR()); + result = result && (getG() + == other.getG()); + result = result && (getB() + == other.getB()); + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + R_FIELD_NUMBER; + hash = (53 * hash) + getR(); + hash = (37 * hash) + G_FIELD_NUMBER; + hash = (53 * hash) + getG(); + hash = (37 * hash) + B_FIELD_NUMBER; + hash = (53 * hash) + getB(); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static Tango.PMR.Common.RGBOuterClass.RGB parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Tango.PMR.Common.RGBOuterClass.RGB parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Tango.PMR.Common.RGBOuterClass.RGB parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Tango.PMR.Common.RGBOuterClass.RGB parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Tango.PMR.Common.RGBOuterClass.RGB parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Tango.PMR.Common.RGBOuterClass.RGB parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Tango.PMR.Common.RGBOuterClass.RGB parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static Tango.PMR.Common.RGBOuterClass.RGB parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static Tango.PMR.Common.RGBOuterClass.RGB parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static Tango.PMR.Common.RGBOuterClass.RGB parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static Tango.PMR.Common.RGBOuterClass.RGB parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static Tango.PMR.Common.RGBOuterClass.RGB parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(Tango.PMR.Common.RGBOuterClass.RGB prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code Tango.PMR.Common.RGB} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements + // @@protoc_insertion_point(builder_implements:Tango.PMR.Common.RGB) + Tango.PMR.Common.RGBOuterClass.RGBOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return Tango.PMR.Common.RGBOuterClass.internal_static_Tango_PMR_Common_RGB_descriptor; + } + + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return Tango.PMR.Common.RGBOuterClass.internal_static_Tango_PMR_Common_RGB_fieldAccessorTable + .ensureFieldAccessorsInitialized( + Tango.PMR.Common.RGBOuterClass.RGB.class, Tango.PMR.Common.RGBOuterClass.RGB.Builder.class); + } + + // Construct using Tango.PMR.Common.RGBOuterClass.RGB.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + public Builder clear() { + super.clear(); + r_ = 0; + + g_ = 0; + + b_ = 0; + + return this; + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return Tango.PMR.Common.RGBOuterClass.internal_static_Tango_PMR_Common_RGB_descriptor; + } + + public Tango.PMR.Common.RGBOuterClass.RGB getDefaultInstanceForType() { + return Tango.PMR.Common.RGBOuterClass.RGB.getDefaultInstance(); + } + + public Tango.PMR.Common.RGBOuterClass.RGB build() { + Tango.PMR.Common.RGBOuterClass.RGB result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public Tango.PMR.Common.RGBOuterClass.RGB buildPartial() { + Tango.PMR.Common.RGBOuterClass.RGB result = new Tango.PMR.Common.RGBOuterClass.RGB(this); + result.r_ = r_; + result.g_ = g_; + result.b_ = b_; + onBuilt(); + return result; + } + + public Builder clone() { + return (Builder) super.clone(); + } + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.setField(field, value); + } + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof Tango.PMR.Common.RGBOuterClass.RGB) { + return mergeFrom((Tango.PMR.Common.RGBOuterClass.RGB)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(Tango.PMR.Common.RGBOuterClass.RGB other) { + if (other == Tango.PMR.Common.RGBOuterClass.RGB.getDefaultInstance()) return this; + if (other.getR() != 0) { + setR(other.getR()); + } + if (other.getG() != 0) { + setG(other.getG()); + } + if (other.getB() != 0) { + setB(other.getB()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + public final boolean isInitialized() { + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + Tango.PMR.Common.RGBOuterClass.RGB parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (Tango.PMR.Common.RGBOuterClass.RGB) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int r_ ; + /** + * <code>int32 R = 1;</code> + */ + public int getR() { + return r_; + } + /** + * <code>int32 R = 1;</code> + */ + public Builder setR(int value) { + + r_ = value; + onChanged(); + return this; + } + /** + * <code>int32 R = 1;</code> + */ + public Builder clearR() { + + r_ = 0; + onChanged(); + return this; + } + + private int g_ ; + /** + * <code>int32 G = 2;</code> + */ + public int getG() { + return g_; + } + /** + * <code>int32 G = 2;</code> + */ + public Builder setG(int value) { + + g_ = value; + onChanged(); + return this; + } + /** + * <code>int32 G = 2;</code> + */ + public Builder clearG() { + + g_ = 0; + onChanged(); + return this; + } + + private int b_ ; + /** + * <code>int32 B = 3;</code> + */ + public int getB() { + return b_; + } + /** + * <code>int32 B = 3;</code> + */ + public Builder setB(int value) { + + b_ = value; + onChanged(); + return this; + } + /** + * <code>int32 B = 3;</code> + */ + public Builder clearB() { + + b_ = 0; + onChanged(); + return this; + } + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFieldsProto3(unknownFields); + } + + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:Tango.PMR.Common.RGB) + } + + // @@protoc_insertion_point(class_scope:Tango.PMR.Common.RGB) + private static final Tango.PMR.Common.RGBOuterClass.RGB DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new Tango.PMR.Common.RGBOuterClass.RGB(); + } + + public static Tango.PMR.Common.RGBOuterClass.RGB getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser<RGB> + PARSER = new com.google.protobuf.AbstractParser<RGB>() { + public RGB parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new RGB(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser<RGB> parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser<RGB> getParserForType() { + return PARSER; + } + + public Tango.PMR.Common.RGBOuterClass.RGB getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_Tango_PMR_Common_RGB_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_Tango_PMR_Common_RGB_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\tRGB.proto\022\020Tango.PMR.Common\"&\n\003RGB\022\t\n\001" + + "R\030\001 \001(\005\022\t\n\001G\030\002 \001(\005\022\t\n\001B\030\003 \001(\005b\006proto3" + }; + com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = + new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { + public com.google.protobuf.ExtensionRegistry assignDescriptors( + com.google.protobuf.Descriptors.FileDescriptor root) { + descriptor = root; + return null; + } + }; + com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }, assigner); + internal_static_Tango_PMR_Common_RGB_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_Tango_PMR_Common_RGB_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_Tango_PMR_Common_RGB_descriptor, + new java.lang.String[] { "R", "G", "B", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/Software/Android-Studio/Tango.PMR/src/main/java/Tango/PMR/Jobs/JobOuterClass.java b/Software/Android-Studio/Tango.PMR/src/main/java/Tango/PMR/Jobs/JobOuterClass.java new file mode 100644 index 000000000..827ab3f95 --- /dev/null +++ b/Software/Android-Studio/Tango.PMR/src/main/java/Tango/PMR/Jobs/JobOuterClass.java @@ -0,0 +1,952 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: Job.proto + +package Tango.PMR.Jobs; + +public final class JobOuterClass { + private JobOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface JobOrBuilder extends + // @@protoc_insertion_point(interface_extends:Tango.PMR.Jobs.Job) + com.google.protobuf.MessageOrBuilder { + + /** + * <code>string Name = 1;</code> + */ + java.lang.String getName(); + /** + * <code>string Name = 1;</code> + */ + com.google.protobuf.ByteString + getNameBytes(); + + /** + * <code>repeated .Tango.PMR.Jobs.Segment Segments = 2;</code> + */ + java.util.List<Tango.PMR.Jobs.SegmentOuterClass.Segment> + getSegmentsList(); + /** + * <code>repeated .Tango.PMR.Jobs.Segment Segments = 2;</code> + */ + Tango.PMR.Jobs.SegmentOuterClass.Segment getSegments(int index); + /** + * <code>repeated .Tango.PMR.Jobs.Segment Segments = 2;</code> + */ + int getSegmentsCount(); + /** + * <code>repeated .Tango.PMR.Jobs.Segment Segments = 2;</code> + */ + java.util.List<? extends Tango.PMR.Jobs.SegmentOuterClass.SegmentOrBuilder> + getSegmentsOrBuilderList(); + /** + * <code>repeated .Tango.PMR.Jobs.Segment Segments = 2;</code> + */ + Tango.PMR.Jobs.SegmentOuterClass.SegmentOrBuilder getSegmentsOrBuilder( + int index); + } + /** + * Protobuf type {@code Tango.PMR.Jobs.Job} + */ + public static final class Job extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:Tango.PMR.Jobs.Job) + JobOrBuilder { + private static final long serialVersionUID = 0L; + // Use Job.newBuilder() to construct. + private Job(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + super(builder); + } + private Job() { + name_ = ""; + segments_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private Job( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!parseUnknownFieldProto3( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + + name_ = s; + break; + } + case 18: { + if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) { + segments_ = new java.util.ArrayList<Tango.PMR.Jobs.SegmentOuterClass.Segment>(); + mutable_bitField0_ |= 0x00000002; + } + segments_.add( + input.readMessage(Tango.PMR.Jobs.SegmentOuterClass.Segment.parser(), extensionRegistry)); + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) { + segments_ = java.util.Collections.unmodifiableList(segments_); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return Tango.PMR.Jobs.JobOuterClass.internal_static_Tango_PMR_Jobs_Job_descriptor; + } + + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return Tango.PMR.Jobs.JobOuterClass.internal_static_Tango_PMR_Jobs_Job_fieldAccessorTable + .ensureFieldAccessorsInitialized( + Tango.PMR.Jobs.JobOuterClass.Job.class, Tango.PMR.Jobs.JobOuterClass.Job.Builder.class); + } + + private int bitField0_; + public static final int NAME_FIELD_NUMBER = 1; + private volatile java.lang.Object name_; + /** + * <code>string Name = 1;</code> + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } + } + /** + * <code>string Name = 1;</code> + */ + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int SEGMENTS_FIELD_NUMBER = 2; + private java.util.List<Tango.PMR.Jobs.SegmentOuterClass.Segment> segments_; + /** + * <code>repeated .Tango.PMR.Jobs.Segment Segments = 2;</code> + */ + public java.util.List<Tango.PMR.Jobs.SegmentOuterClass.Segment> getSegmentsList() { + return segments_; + } + /** + * <code>repeated .Tango.PMR.Jobs.Segment Segments = 2;</code> + */ + public java.util.List<? extends Tango.PMR.Jobs.SegmentOuterClass.SegmentOrBuilder> + getSegmentsOrBuilderList() { + return segments_; + } + /** + * <code>repeated .Tango.PMR.Jobs.Segment Segments = 2;</code> + */ + public int getSegmentsCount() { + return segments_.size(); + } + /** + * <code>repeated .Tango.PMR.Jobs.Segment Segments = 2;</code> + */ + public Tango.PMR.Jobs.SegmentOuterClass.Segment getSegments(int index) { + return segments_.get(index); + } + /** + * <code>repeated .Tango.PMR.Jobs.Segment Segments = 2;</code> + */ + public Tango.PMR.Jobs.SegmentOuterClass.SegmentOrBuilder getSegmentsOrBuilder( + int index) { + return segments_.get(index); + } + + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!getNameBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); + } + for (int i = 0; i < segments_.size(); i++) { + output.writeMessage(2, segments_.get(i)); + } + unknownFields.writeTo(output); + } + + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!getNameBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); + } + for (int i = 0; i < segments_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, segments_.get(i)); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof Tango.PMR.Jobs.JobOuterClass.Job)) { + return super.equals(obj); + } + Tango.PMR.Jobs.JobOuterClass.Job other = (Tango.PMR.Jobs.JobOuterClass.Job) obj; + + boolean result = true; + result = result && getName() + .equals(other.getName()); + result = result && getSegmentsList() + .equals(other.getSegmentsList()); + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + if (getSegmentsCount() > 0) { + hash = (37 * hash) + SEGMENTS_FIELD_NUMBER; + hash = (53 * hash) + getSegmentsList().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static Tango.PMR.Jobs.JobOuterClass.Job parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Tango.PMR.Jobs.JobOuterClass.Job parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Tango.PMR.Jobs.JobOuterClass.Job parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Tango.PMR.Jobs.JobOuterClass.Job parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Tango.PMR.Jobs.JobOuterClass.Job parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Tango.PMR.Jobs.JobOuterClass.Job parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Tango.PMR.Jobs.JobOuterClass.Job parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static Tango.PMR.Jobs.JobOuterClass.Job parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static Tango.PMR.Jobs.JobOuterClass.Job parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static Tango.PMR.Jobs.JobOuterClass.Job parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static Tango.PMR.Jobs.JobOuterClass.Job parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static Tango.PMR.Jobs.JobOuterClass.Job parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(Tango.PMR.Jobs.JobOuterClass.Job prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code Tango.PMR.Jobs.Job} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements + // @@protoc_insertion_point(builder_implements:Tango.PMR.Jobs.Job) + Tango.PMR.Jobs.JobOuterClass.JobOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return Tango.PMR.Jobs.JobOuterClass.internal_static_Tango_PMR_Jobs_Job_descriptor; + } + + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return Tango.PMR.Jobs.JobOuterClass.internal_static_Tango_PMR_Jobs_Job_fieldAccessorTable + .ensureFieldAccessorsInitialized( + Tango.PMR.Jobs.JobOuterClass.Job.class, Tango.PMR.Jobs.JobOuterClass.Job.Builder.class); + } + + // Construct using Tango.PMR.Jobs.JobOuterClass.Job.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + getSegmentsFieldBuilder(); + } + } + public Builder clear() { + super.clear(); + name_ = ""; + + if (segmentsBuilder_ == null) { + segments_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); + } else { + segmentsBuilder_.clear(); + } + return this; + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return Tango.PMR.Jobs.JobOuterClass.internal_static_Tango_PMR_Jobs_Job_descriptor; + } + + public Tango.PMR.Jobs.JobOuterClass.Job getDefaultInstanceForType() { + return Tango.PMR.Jobs.JobOuterClass.Job.getDefaultInstance(); + } + + public Tango.PMR.Jobs.JobOuterClass.Job build() { + Tango.PMR.Jobs.JobOuterClass.Job result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public Tango.PMR.Jobs.JobOuterClass.Job buildPartial() { + Tango.PMR.Jobs.JobOuterClass.Job result = new Tango.PMR.Jobs.JobOuterClass.Job(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + result.name_ = name_; + if (segmentsBuilder_ == null) { + if (((bitField0_ & 0x00000002) == 0x00000002)) { + segments_ = java.util.Collections.unmodifiableList(segments_); + bitField0_ = (bitField0_ & ~0x00000002); + } + result.segments_ = segments_; + } else { + result.segments_ = segmentsBuilder_.build(); + } + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder clone() { + return (Builder) super.clone(); + } + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.setField(field, value); + } + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof Tango.PMR.Jobs.JobOuterClass.Job) { + return mergeFrom((Tango.PMR.Jobs.JobOuterClass.Job)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(Tango.PMR.Jobs.JobOuterClass.Job other) { + if (other == Tango.PMR.Jobs.JobOuterClass.Job.getDefaultInstance()) return this; + if (!other.getName().isEmpty()) { + name_ = other.name_; + onChanged(); + } + if (segmentsBuilder_ == null) { + if (!other.segments_.isEmpty()) { + if (segments_.isEmpty()) { + segments_ = other.segments_; + bitField0_ = (bitField0_ & ~0x00000002); + } else { + ensureSegmentsIsMutable(); + segments_.addAll(other.segments_); + } + onChanged(); + } + } else { + if (!other.segments_.isEmpty()) { + if (segmentsBuilder_.isEmpty()) { + segmentsBuilder_.dispose(); + segmentsBuilder_ = null; + segments_ = other.segments_; + bitField0_ = (bitField0_ & ~0x00000002); + segmentsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getSegmentsFieldBuilder() : null; + } else { + segmentsBuilder_.addAllMessages(other.segments_); + } + } + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + public final boolean isInitialized() { + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + Tango.PMR.Jobs.JobOuterClass.Job parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (Tango.PMR.Jobs.JobOuterClass.Job) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private java.lang.Object name_ = ""; + /** + * <code>string Name = 1;</code> + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * <code>string Name = 1;</code> + */ + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * <code>string Name = 1;</code> + */ + public Builder setName( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + name_ = value; + onChanged(); + return this; + } + /** + * <code>string Name = 1;</code> + */ + public Builder clearName() { + + name_ = getDefaultInstance().getName(); + onChanged(); + return this; + } + /** + * <code>string Name = 1;</code> + */ + public Builder setNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + name_ = value; + onChanged(); + return this; + } + + private java.util.List<Tango.PMR.Jobs.SegmentOuterClass.Segment> segments_ = + java.util.Collections.emptyList(); + private void ensureSegmentsIsMutable() { + if (!((bitField0_ & 0x00000002) == 0x00000002)) { + segments_ = new java.util.ArrayList<Tango.PMR.Jobs.SegmentOuterClass.Segment>(segments_); + bitField0_ |= 0x00000002; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + Tango.PMR.Jobs.SegmentOuterClass.Segment, Tango.PMR.Jobs.SegmentOuterClass.Segment.Builder, Tango.PMR.Jobs.SegmentOuterClass.SegmentOrBuilder> segmentsBuilder_; + + /** + * <code>repeated .Tango.PMR.Jobs.Segment Segments = 2;</code> + */ + public java.util.List<Tango.PMR.Jobs.SegmentOuterClass.Segment> getSegmentsList() { + if (segmentsBuilder_ == null) { + return java.util.Collections.unmodifiableList(segments_); + } else { + return segmentsBuilder_.getMessageList(); + } + } + /** + * <code>repeated .Tango.PMR.Jobs.Segment Segments = 2;</code> + */ + public int getSegmentsCount() { + if (segmentsBuilder_ == null) { + return segments_.size(); + } else { + return segmentsBuilder_.getCount(); + } + } + /** + * <code>repeated .Tango.PMR.Jobs.Segment Segments = 2;</code> + */ + public Tango.PMR.Jobs.SegmentOuterClass.Segment getSegments(int index) { + if (segmentsBuilder_ == null) { + return segments_.get(index); + } else { + return segmentsBuilder_.getMessage(index); + } + } + /** + * <code>repeated .Tango.PMR.Jobs.Segment Segments = 2;</code> + */ + public Builder setSegments( + int index, Tango.PMR.Jobs.SegmentOuterClass.Segment value) { + if (segmentsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSegmentsIsMutable(); + segments_.set(index, value); + onChanged(); + } else { + segmentsBuilder_.setMessage(index, value); + } + return this; + } + /** + * <code>repeated .Tango.PMR.Jobs.Segment Segments = 2;</code> + */ + public Builder setSegments( + int index, Tango.PMR.Jobs.SegmentOuterClass.Segment.Builder builderForValue) { + if (segmentsBuilder_ == null) { + ensureSegmentsIsMutable(); + segments_.set(index, builderForValue.build()); + onChanged(); + } else { + segmentsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * <code>repeated .Tango.PMR.Jobs.Segment Segments = 2;</code> + */ + public Builder addSegments(Tango.PMR.Jobs.SegmentOuterClass.Segment value) { + if (segmentsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSegmentsIsMutable(); + segments_.add(value); + onChanged(); + } else { + segmentsBuilder_.addMessage(value); + } + return this; + } + /** + * <code>repeated .Tango.PMR.Jobs.Segment Segments = 2;</code> + */ + public Builder addSegments( + int index, Tango.PMR.Jobs.SegmentOuterClass.Segment value) { + if (segmentsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSegmentsIsMutable(); + segments_.add(index, value); + onChanged(); + } else { + segmentsBuilder_.addMessage(index, value); + } + return this; + } + /** + * <code>repeated .Tango.PMR.Jobs.Segment Segments = 2;</code> + */ + public Builder addSegments( + Tango.PMR.Jobs.SegmentOuterClass.Segment.Builder builderForValue) { + if (segmentsBuilder_ == null) { + ensureSegmentsIsMutable(); + segments_.add(builderForValue.build()); + onChanged(); + } else { + segmentsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * <code>repeated .Tango.PMR.Jobs.Segment Segments = 2;</code> + */ + public Builder addSegments( + int index, Tango.PMR.Jobs.SegmentOuterClass.Segment.Builder builderForValue) { + if (segmentsBuilder_ == null) { + ensureSegmentsIsMutable(); + segments_.add(index, builderForValue.build()); + onChanged(); + } else { + segmentsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * <code>repeated .Tango.PMR.Jobs.Segment Segments = 2;</code> + */ + public Builder addAllSegments( + java.lang.Iterable<? extends Tango.PMR.Jobs.SegmentOuterClass.Segment> values) { + if (segmentsBuilder_ == null) { + ensureSegmentsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, segments_); + onChanged(); + } else { + segmentsBuilder_.addAllMessages(values); + } + return this; + } + /** + * <code>repeated .Tango.PMR.Jobs.Segment Segments = 2;</code> + */ + public Builder clearSegments() { + if (segmentsBuilder_ == null) { + segments_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + } else { + segmentsBuilder_.clear(); + } + return this; + } + /** + * <code>repeated .Tango.PMR.Jobs.Segment Segments = 2;</code> + */ + public Builder removeSegments(int index) { + if (segmentsBuilder_ == null) { + ensureSegmentsIsMutable(); + segments_.remove(index); + onChanged(); + } else { + segmentsBuilder_.remove(index); + } + return this; + } + /** + * <code>repeated .Tango.PMR.Jobs.Segment Segments = 2;</code> + */ + public Tango.PMR.Jobs.SegmentOuterClass.Segment.Builder getSegmentsBuilder( + int index) { + return getSegmentsFieldBuilder().getBuilder(index); + } + /** + * <code>repeated .Tango.PMR.Jobs.Segment Segments = 2;</code> + */ + public Tango.PMR.Jobs.SegmentOuterClass.SegmentOrBuilder getSegmentsOrBuilder( + int index) { + if (segmentsBuilder_ == null) { + return segments_.get(index); } else { + return segmentsBuilder_.getMessageOrBuilder(index); + } + } + /** + * <code>repeated .Tango.PMR.Jobs.Segment Segments = 2;</code> + */ + public java.util.List<? extends Tango.PMR.Jobs.SegmentOuterClass.SegmentOrBuilder> + getSegmentsOrBuilderList() { + if (segmentsBuilder_ != null) { + return segmentsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(segments_); + } + } + /** + * <code>repeated .Tango.PMR.Jobs.Segment Segments = 2;</code> + */ + public Tango.PMR.Jobs.SegmentOuterClass.Segment.Builder addSegmentsBuilder() { + return getSegmentsFieldBuilder().addBuilder( + Tango.PMR.Jobs.SegmentOuterClass.Segment.getDefaultInstance()); + } + /** + * <code>repeated .Tango.PMR.Jobs.Segment Segments = 2;</code> + */ + public Tango.PMR.Jobs.SegmentOuterClass.Segment.Builder addSegmentsBuilder( + int index) { + return getSegmentsFieldBuilder().addBuilder( + index, Tango.PMR.Jobs.SegmentOuterClass.Segment.getDefaultInstance()); + } + /** + * <code>repeated .Tango.PMR.Jobs.Segment Segments = 2;</code> + */ + public java.util.List<Tango.PMR.Jobs.SegmentOuterClass.Segment.Builder> + getSegmentsBuilderList() { + return getSegmentsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + Tango.PMR.Jobs.SegmentOuterClass.Segment, Tango.PMR.Jobs.SegmentOuterClass.Segment.Builder, Tango.PMR.Jobs.SegmentOuterClass.SegmentOrBuilder> + getSegmentsFieldBuilder() { + if (segmentsBuilder_ == null) { + segmentsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + Tango.PMR.Jobs.SegmentOuterClass.Segment, Tango.PMR.Jobs.SegmentOuterClass.Segment.Builder, Tango.PMR.Jobs.SegmentOuterClass.SegmentOrBuilder>( + segments_, + ((bitField0_ & 0x00000002) == 0x00000002), + getParentForChildren(), + isClean()); + segments_ = null; + } + return segmentsBuilder_; + } + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFieldsProto3(unknownFields); + } + + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:Tango.PMR.Jobs.Job) + } + + // @@protoc_insertion_point(class_scope:Tango.PMR.Jobs.Job) + private static final Tango.PMR.Jobs.JobOuterClass.Job DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new Tango.PMR.Jobs.JobOuterClass.Job(); + } + + public static Tango.PMR.Jobs.JobOuterClass.Job getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser<Job> + PARSER = new com.google.protobuf.AbstractParser<Job>() { + public Job parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new Job(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser<Job> parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser<Job> getParserForType() { + return PARSER; + } + + public Tango.PMR.Jobs.JobOuterClass.Job getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_Tango_PMR_Jobs_Job_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_Tango_PMR_Jobs_Job_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\tJob.proto\022\016Tango.PMR.Jobs\032\rSegment.pro" + + "to\">\n\003Job\022\014\n\004Name\030\001 \001(\t\022)\n\010Segments\030\002 \003(" + + "\0132\027.Tango.PMR.Jobs.Segmentb\006proto3" + }; + com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = + new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { + public com.google.protobuf.ExtensionRegistry assignDescriptors( + com.google.protobuf.Descriptors.FileDescriptor root) { + descriptor = root; + return null; + } + }; + com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + Tango.PMR.Jobs.SegmentOuterClass.getDescriptor(), + }, assigner); + internal_static_Tango_PMR_Jobs_Job_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_Tango_PMR_Jobs_Job_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_Tango_PMR_Jobs_Job_descriptor, + new java.lang.String[] { "Name", "Segments", }); + Tango.PMR.Jobs.SegmentOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/Software/Android-Studio/Tango.PMR/src/main/java/Tango/PMR/Jobs/SegmentOuterClass.java b/Software/Android-Studio/Tango.PMR/src/main/java/Tango/PMR/Jobs/SegmentOuterClass.java new file mode 100644 index 000000000..bca42e8b0 --- /dev/null +++ b/Software/Android-Studio/Tango.PMR/src/main/java/Tango/PMR/Jobs/SegmentOuterClass.java @@ -0,0 +1,838 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: Segment.proto + +package Tango.PMR.Jobs; + +public final class SegmentOuterClass { + private SegmentOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface SegmentOrBuilder extends + // @@protoc_insertion_point(interface_extends:Tango.PMR.Jobs.Segment) + com.google.protobuf.MessageOrBuilder { + + /** + * <code>string Name = 1;</code> + */ + java.lang.String getName(); + /** + * <code>string Name = 1;</code> + */ + com.google.protobuf.ByteString + getNameBytes(); + + /** + * <code>int32 Length = 2;</code> + */ + int getLength(); + + /** + * <code>.Tango.PMR.Common.RGB Color = 3;</code> + */ + boolean hasColor(); + /** + * <code>.Tango.PMR.Common.RGB Color = 3;</code> + */ + Tango.PMR.Common.RGBOuterClass.RGB getColor(); + /** + * <code>.Tango.PMR.Common.RGB Color = 3;</code> + */ + Tango.PMR.Common.RGBOuterClass.RGBOrBuilder getColorOrBuilder(); + } + /** + * Protobuf type {@code Tango.PMR.Jobs.Segment} + */ + public static final class Segment extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:Tango.PMR.Jobs.Segment) + SegmentOrBuilder { + private static final long serialVersionUID = 0L; + // Use Segment.newBuilder() to construct. + private Segment(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + super(builder); + } + private Segment() { + name_ = ""; + length_ = 0; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private Segment( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!parseUnknownFieldProto3( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + + name_ = s; + break; + } + case 16: { + + length_ = input.readInt32(); + break; + } + case 26: { + Tango.PMR.Common.RGBOuterClass.RGB.Builder subBuilder = null; + if (color_ != null) { + subBuilder = color_.toBuilder(); + } + color_ = input.readMessage(Tango.PMR.Common.RGBOuterClass.RGB.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(color_); + color_ = subBuilder.buildPartial(); + } + + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return Tango.PMR.Jobs.SegmentOuterClass.internal_static_Tango_PMR_Jobs_Segment_descriptor; + } + + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return Tango.PMR.Jobs.SegmentOuterClass.internal_static_Tango_PMR_Jobs_Segment_fieldAccessorTable + .ensureFieldAccessorsInitialized( + Tango.PMR.Jobs.SegmentOuterClass.Segment.class, Tango.PMR.Jobs.SegmentOuterClass.Segment.Builder.class); + } + + public static final int NAME_FIELD_NUMBER = 1; + private volatile java.lang.Object name_; + /** + * <code>string Name = 1;</code> + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } + } + /** + * <code>string Name = 1;</code> + */ + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int LENGTH_FIELD_NUMBER = 2; + private int length_; + /** + * <code>int32 Length = 2;</code> + */ + public int getLength() { + return length_; + } + + public static final int COLOR_FIELD_NUMBER = 3; + private Tango.PMR.Common.RGBOuterClass.RGB color_; + /** + * <code>.Tango.PMR.Common.RGB Color = 3;</code> + */ + public boolean hasColor() { + return color_ != null; + } + /** + * <code>.Tango.PMR.Common.RGB Color = 3;</code> + */ + public Tango.PMR.Common.RGBOuterClass.RGB getColor() { + return color_ == null ? Tango.PMR.Common.RGBOuterClass.RGB.getDefaultInstance() : color_; + } + /** + * <code>.Tango.PMR.Common.RGB Color = 3;</code> + */ + public Tango.PMR.Common.RGBOuterClass.RGBOrBuilder getColorOrBuilder() { + return getColor(); + } + + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!getNameBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); + } + if (length_ != 0) { + output.writeInt32(2, length_); + } + if (color_ != null) { + output.writeMessage(3, getColor()); + } + unknownFields.writeTo(output); + } + + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!getNameBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); + } + if (length_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(2, length_); + } + if (color_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, getColor()); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof Tango.PMR.Jobs.SegmentOuterClass.Segment)) { + return super.equals(obj); + } + Tango.PMR.Jobs.SegmentOuterClass.Segment other = (Tango.PMR.Jobs.SegmentOuterClass.Segment) obj; + + boolean result = true; + result = result && getName() + .equals(other.getName()); + result = result && (getLength() + == other.getLength()); + result = result && (hasColor() == other.hasColor()); + if (hasColor()) { + result = result && getColor() + .equals(other.getColor()); + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + hash = (37 * hash) + LENGTH_FIELD_NUMBER; + hash = (53 * hash) + getLength(); + if (hasColor()) { + hash = (37 * hash) + COLOR_FIELD_NUMBER; + hash = (53 * hash) + getColor().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static Tango.PMR.Jobs.SegmentOuterClass.Segment parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Tango.PMR.Jobs.SegmentOuterClass.Segment parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Tango.PMR.Jobs.SegmentOuterClass.Segment parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Tango.PMR.Jobs.SegmentOuterClass.Segment parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Tango.PMR.Jobs.SegmentOuterClass.Segment parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Tango.PMR.Jobs.SegmentOuterClass.Segment parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Tango.PMR.Jobs.SegmentOuterClass.Segment parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static Tango.PMR.Jobs.SegmentOuterClass.Segment parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static Tango.PMR.Jobs.SegmentOuterClass.Segment parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static Tango.PMR.Jobs.SegmentOuterClass.Segment parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static Tango.PMR.Jobs.SegmentOuterClass.Segment parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static Tango.PMR.Jobs.SegmentOuterClass.Segment parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(Tango.PMR.Jobs.SegmentOuterClass.Segment prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code Tango.PMR.Jobs.Segment} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements + // @@protoc_insertion_point(builder_implements:Tango.PMR.Jobs.Segment) + Tango.PMR.Jobs.SegmentOuterClass.SegmentOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return Tango.PMR.Jobs.SegmentOuterClass.internal_static_Tango_PMR_Jobs_Segment_descriptor; + } + + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return Tango.PMR.Jobs.SegmentOuterClass.internal_static_Tango_PMR_Jobs_Segment_fieldAccessorTable + .ensureFieldAccessorsInitialized( + Tango.PMR.Jobs.SegmentOuterClass.Segment.class, Tango.PMR.Jobs.SegmentOuterClass.Segment.Builder.class); + } + + // Construct using Tango.PMR.Jobs.SegmentOuterClass.Segment.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + public Builder clear() { + super.clear(); + name_ = ""; + + length_ = 0; + + if (colorBuilder_ == null) { + color_ = null; + } else { + color_ = null; + colorBuilder_ = null; + } + return this; + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return Tango.PMR.Jobs.SegmentOuterClass.internal_static_Tango_PMR_Jobs_Segment_descriptor; + } + + public Tango.PMR.Jobs.SegmentOuterClass.Segment getDefaultInstanceForType() { + return Tango.PMR.Jobs.SegmentOuterClass.Segment.getDefaultInstance(); + } + + public Tango.PMR.Jobs.SegmentOuterClass.Segment build() { + Tango.PMR.Jobs.SegmentOuterClass.Segment result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public Tango.PMR.Jobs.SegmentOuterClass.Segment buildPartial() { + Tango.PMR.Jobs.SegmentOuterClass.Segment result = new Tango.PMR.Jobs.SegmentOuterClass.Segment(this); + result.name_ = name_; + result.length_ = length_; + if (colorBuilder_ == null) { + result.color_ = color_; + } else { + result.color_ = colorBuilder_.build(); + } + onBuilt(); + return result; + } + + public Builder clone() { + return (Builder) super.clone(); + } + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.setField(field, value); + } + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof Tango.PMR.Jobs.SegmentOuterClass.Segment) { + return mergeFrom((Tango.PMR.Jobs.SegmentOuterClass.Segment)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(Tango.PMR.Jobs.SegmentOuterClass.Segment other) { + if (other == Tango.PMR.Jobs.SegmentOuterClass.Segment.getDefaultInstance()) return this; + if (!other.getName().isEmpty()) { + name_ = other.name_; + onChanged(); + } + if (other.getLength() != 0) { + setLength(other.getLength()); + } + if (other.hasColor()) { + mergeColor(other.getColor()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + public final boolean isInitialized() { + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + Tango.PMR.Jobs.SegmentOuterClass.Segment parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (Tango.PMR.Jobs.SegmentOuterClass.Segment) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private java.lang.Object name_ = ""; + /** + * <code>string Name = 1;</code> + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * <code>string Name = 1;</code> + */ + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * <code>string Name = 1;</code> + */ + public Builder setName( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + name_ = value; + onChanged(); + return this; + } + /** + * <code>string Name = 1;</code> + */ + public Builder clearName() { + + name_ = getDefaultInstance().getName(); + onChanged(); + return this; + } + /** + * <code>string Name = 1;</code> + */ + public Builder setNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + name_ = value; + onChanged(); + return this; + } + + private int length_ ; + /** + * <code>int32 Length = 2;</code> + */ + public int getLength() { + return length_; + } + /** + * <code>int32 Length = 2;</code> + */ + public Builder setLength(int value) { + + length_ = value; + onChanged(); + return this; + } + /** + * <code>int32 Length = 2;</code> + */ + public Builder clearLength() { + + length_ = 0; + onChanged(); + return this; + } + + private Tango.PMR.Common.RGBOuterClass.RGB color_ = null; + private com.google.protobuf.SingleFieldBuilderV3< + Tango.PMR.Common.RGBOuterClass.RGB, Tango.PMR.Common.RGBOuterClass.RGB.Builder, Tango.PMR.Common.RGBOuterClass.RGBOrBuilder> colorBuilder_; + /** + * <code>.Tango.PMR.Common.RGB Color = 3;</code> + */ + public boolean hasColor() { + return colorBuilder_ != null || color_ != null; + } + /** + * <code>.Tango.PMR.Common.RGB Color = 3;</code> + */ + public Tango.PMR.Common.RGBOuterClass.RGB getColor() { + if (colorBuilder_ == null) { + return color_ == null ? Tango.PMR.Common.RGBOuterClass.RGB.getDefaultInstance() : color_; + } else { + return colorBuilder_.getMessage(); + } + } + /** + * <code>.Tango.PMR.Common.RGB Color = 3;</code> + */ + public Builder setColor(Tango.PMR.Common.RGBOuterClass.RGB value) { + if (colorBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + color_ = value; + onChanged(); + } else { + colorBuilder_.setMessage(value); + } + + return this; + } + /** + * <code>.Tango.PMR.Common.RGB Color = 3;</code> + */ + public Builder setColor( + Tango.PMR.Common.RGBOuterClass.RGB.Builder builderForValue) { + if (colorBuilder_ == null) { + color_ = builderForValue.build(); + onChanged(); + } else { + colorBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * <code>.Tango.PMR.Common.RGB Color = 3;</code> + */ + public Builder mergeColor(Tango.PMR.Common.RGBOuterClass.RGB value) { + if (colorBuilder_ == null) { + if (color_ != null) { + color_ = + Tango.PMR.Common.RGBOuterClass.RGB.newBuilder(color_).mergeFrom(value).buildPartial(); + } else { + color_ = value; + } + onChanged(); + } else { + colorBuilder_.mergeFrom(value); + } + + return this; + } + /** + * <code>.Tango.PMR.Common.RGB Color = 3;</code> + */ + public Builder clearColor() { + if (colorBuilder_ == null) { + color_ = null; + onChanged(); + } else { + color_ = null; + colorBuilder_ = null; + } + + return this; + } + /** + * <code>.Tango.PMR.Common.RGB Color = 3;</code> + */ + public Tango.PMR.Common.RGBOuterClass.RGB.Builder getColorBuilder() { + + onChanged(); + return getColorFieldBuilder().getBuilder(); + } + /** + * <code>.Tango.PMR.Common.RGB Color = 3;</code> + */ + public Tango.PMR.Common.RGBOuterClass.RGBOrBuilder getColorOrBuilder() { + if (colorBuilder_ != null) { + return colorBuilder_.getMessageOrBuilder(); + } else { + return color_ == null ? + Tango.PMR.Common.RGBOuterClass.RGB.getDefaultInstance() : color_; + } + } + /** + * <code>.Tango.PMR.Common.RGB Color = 3;</code> + */ + private com.google.protobuf.SingleFieldBuilderV3< + Tango.PMR.Common.RGBOuterClass.RGB, Tango.PMR.Common.RGBOuterClass.RGB.Builder, Tango.PMR.Common.RGBOuterClass.RGBOrBuilder> + getColorFieldBuilder() { + if (colorBuilder_ == null) { + colorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + Tango.PMR.Common.RGBOuterClass.RGB, Tango.PMR.Common.RGBOuterClass.RGB.Builder, Tango.PMR.Common.RGBOuterClass.RGBOrBuilder>( + getColor(), + getParentForChildren(), + isClean()); + color_ = null; + } + return colorBuilder_; + } + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFieldsProto3(unknownFields); + } + + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:Tango.PMR.Jobs.Segment) + } + + // @@protoc_insertion_point(class_scope:Tango.PMR.Jobs.Segment) + private static final Tango.PMR.Jobs.SegmentOuterClass.Segment DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new Tango.PMR.Jobs.SegmentOuterClass.Segment(); + } + + public static Tango.PMR.Jobs.SegmentOuterClass.Segment getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser<Segment> + PARSER = new com.google.protobuf.AbstractParser<Segment>() { + public Segment parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new Segment(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser<Segment> parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser<Segment> getParserForType() { + return PARSER; + } + + public Tango.PMR.Jobs.SegmentOuterClass.Segment getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_Tango_PMR_Jobs_Segment_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_Tango_PMR_Jobs_Segment_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\rSegment.proto\022\016Tango.PMR.Jobs\032\tRGB.pro" + + "to\"M\n\007Segment\022\014\n\004Name\030\001 \001(\t\022\016\n\006Length\030\002 " + + "\001(\005\022$\n\005Color\030\003 \001(\0132\025.Tango.PMR.Common.RG" + + "Bb\006proto3" + }; + com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = + new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { + public com.google.protobuf.ExtensionRegistry assignDescriptors( + com.google.protobuf.Descriptors.FileDescriptor root) { + descriptor = root; + return null; + } + }; + com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + Tango.PMR.Common.RGBOuterClass.getDescriptor(), + }, assigner); + internal_static_Tango_PMR_Jobs_Segment_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_Tango_PMR_Jobs_Segment_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_Tango_PMR_Jobs_Segment_descriptor, + new java.lang.String[] { "Name", "Length", "Color", }); + Tango.PMR.Common.RGBOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/Software/Android-Studio/Tango.PMR/src/main/java/Tango/PMR/dummyClass.java b/Software/Android-Studio/Tango.PMR/src/main/java/Tango/PMR/dummyClass.java new file mode 100644 index 000000000..f1cfd7e74 --- /dev/null +++ b/Software/Android-Studio/Tango.PMR/src/main/java/Tango/PMR/dummyClass.java @@ -0,0 +1,5 @@ +package Tango.PMR; + +public class dummyClass { + +} diff --git a/Software/Android-Studio/app/.gitignore b/Software/Android-Studio/app/.gitignore new file mode 100644 index 000000000..796b96d1c --- /dev/null +++ b/Software/Android-Studio/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/Software/Android-Studio/app/CMakeLists.txt b/Software/Android-Studio/app/CMakeLists.txt new file mode 100644 index 000000000..f8e6e8b3d --- /dev/null +++ b/Software/Android-Studio/app/CMakeLists.txt @@ -0,0 +1,44 @@ +# For more information about using CMake with Android Studio, read the +# documentation: https://d.android.com/studio/projects/add-native-code.html + +# Sets the minimum version of CMake required to build the native library. + +cmake_minimum_required(VERSION 3.4.1) + +# Creates and names a library, sets it as either STATIC +# or SHARED, and provides the relative paths to its source code. +# You can define multiple libraries, and CMake builds them for you. +# Gradle automatically packages shared libraries with your APK. + +add_library( # Sets the name of the library. + native-lib + + # Sets the library as a shared library. + SHARED + + # Provides a relative path to your source file(s). + src/main/cpp/native-lib.cpp ) + +# Searches for a specified prebuilt library and stores the path as a +# variable. Because CMake includes system libraries in the search path by +# default, you only need to specify the name of the public NDK library +# you want to add. CMake verifies that the library exists before +# completing its build. + +find_library( # Sets the name of the path variable. + log-lib + + # Specifies the name of the NDK library that + # you want CMake to locate. + log ) + +# Specifies libraries CMake should link to your target library. You +# can link multiple libraries, such as libraries you define in this +# build script, prebuilt third-party libraries, or system libraries. + +target_link_libraries( # Specifies the target library. + native-lib + + # Links the target library to the log library + # included in the NDK. + ${log-lib} )
\ No newline at end of file diff --git a/Software/Android-Studio/app/build.gradle b/Software/Android-Studio/app/build.gradle new file mode 100644 index 000000000..ccd536141 --- /dev/null +++ b/Software/Android-Studio/app/build.gradle @@ -0,0 +1,41 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 26 + buildToolsVersion "26.0.1" + defaultConfig { + applicationId "com.twine.tango" + minSdkVersion 22 + targetSdkVersion 26 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + externalNativeBuild { + cmake { + cppFlags "-std=c++11 -frtti -fexceptions" + } + } + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + externalNativeBuild { + cmake { + path "CMakeLists.txt" + } + } +} + +dependencies { + implementation fileTree(include: ['*.jar'], dir: 'libs') + implementation 'com.android.support:appcompat-v7:26.1.0' + implementation 'com.android.support.constraint:constraint-layout:1.0.2' + testImplementation 'junit:junit:4.12' + androidTestImplementation 'com.android.support.test:runner:1.0.1' + androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' + compile 'com.google.protobuf:protobuf-java:3.4.0' + implementation project(':Tango.PMR') +} diff --git a/Software/Android-Studio/app/proguard-rules.pro b/Software/Android-Studio/app/proguard-rules.pro new file mode 100644 index 000000000..a0eef131a --- /dev/null +++ b/Software/Android-Studio/app/proguard-rules.pro @@ -0,0 +1,25 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in C:\Users\Roy\AppData\Local\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 *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/Software/Android-Studio/app/src/androidTest/java/com/twine/tango/ExampleInstrumentedTest.java b/Software/Android-Studio/app/src/androidTest/java/com/twine/tango/ExampleInstrumentedTest.java new file mode 100644 index 000000000..bed558a6e --- /dev/null +++ b/Software/Android-Studio/app/src/androidTest/java/com/twine/tango/ExampleInstrumentedTest.java @@ -0,0 +1,29 @@ +package com.twine.tango; + +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.*; + +/** + * Instrumented 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(); + + MainActivity a = new MainActivity(); + a.Do(); + + assertEquals("com.twine.tango", appContext.getPackageName()); + } +} diff --git a/Software/Android-Studio/app/src/main/AndroidManifest.xml b/Software/Android-Studio/app/src/main/AndroidManifest.xml new file mode 100644 index 000000000..9fb70555b --- /dev/null +++ b/Software/Android-Studio/app/src/main/AndroidManifest.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.twine.tango"> + + <application + android:allowBackup="true" + android:icon="@mipmap/ic_launcher" + android:label="@string/app_name" + android:roundIcon="@mipmap/ic_launcher_round" + android:supportsRtl="true" + android:theme="@style/AppTheme"> + <activity android:name=".MainActivity"> + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + </activity> + </application> + +</manifest>
\ No newline at end of file diff --git a/Software/Android-Studio/app/src/main/cpp/Android.mk b/Software/Android-Studio/app/src/main/cpp/Android.mk new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/Software/Android-Studio/app/src/main/cpp/Android.mk diff --git a/Software/Android-Studio/app/src/main/cpp/native-lib.cpp b/Software/Android-Studio/app/src/main/cpp/native-lib.cpp new file mode 100644 index 000000000..fa595fbae --- /dev/null +++ b/Software/Android-Studio/app/src/main/cpp/native-lib.cpp @@ -0,0 +1,13 @@ +#include <jni.h> +#include <string> + +extern "C" +JNIEXPORT jstring + +JNICALL +Java_com_twine_tango_MainActivity_stringFromJNI( + JNIEnv *env, + jobject /* this */) { + std::string hello = "Hello from C++"; + return env->NewStringUTF(hello.c_str()); +} diff --git a/Software/Android-Studio/app/src/main/java/com/twine/tango/MainActivity.java b/Software/Android-Studio/app/src/main/java/com/twine/tango/MainActivity.java new file mode 100644 index 000000000..e739c599d --- /dev/null +++ b/Software/Android-Studio/app/src/main/java/com/twine/tango/MainActivity.java @@ -0,0 +1,34 @@ +package com.twine.tango; + +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.widget.TextView; + +public class MainActivity extends AppCompatActivity { + + // Used to load the 'native-lib' library on application startup. + static { + System.loadLibrary("native-lib"); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + // Example of a call to a native method + TextView tv = (TextView) findViewById(R.id.sample_text); + tv.setText(stringFromJNI()); + } + + public void Do() + { + stringFromJNI(); + } + + /** + * A native method that is implemented by the 'native-lib' native library, + * which is packaged with this application. + */ + public native String stringFromJNI(); +} diff --git a/Software/Android-Studio/app/src/main/res/drawable/ic_launcher_background.xml b/Software/Android-Studio/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 000000000..1cd2a3665 --- /dev/null +++ b/Software/Android-Studio/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,113 @@ +<?xml version="1.0" encoding="utf-8"?> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportHeight="108.0" + android:viewportWidth="108.0"> + <path + android:fillColor="#26A69A" + android:pathData="M0,0h108v108h-108z" + android:strokeColor="#66FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M19,0L19,108" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M9,0L9,108" + android:strokeColor="#66FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M39,0L39,108" + android:strokeColor="#66FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M29,0L29,108" + android:strokeColor="#66FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M59,0L59,108" + android:strokeColor="#66FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M49,0L49,108" + android:strokeColor="#66FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M79,0L79,108" + android:strokeColor="#66FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M69,0L69,108" + android:strokeColor="#66FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M89,0L89,108" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M99,0L99,108" + android:strokeColor="#66FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M0,89L108,89" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M0,99L108,99" + android:strokeColor="#66FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M0,69L108,69" + android:strokeColor="#66FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M0,79L108,79" + android:strokeColor="#66FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M0,49L108,49" + android:strokeColor="#66FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M0,59L108,59" + android:strokeColor="#66FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M0,29L108,29" + android:strokeColor="#66FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M0,39L108,39" + android:strokeColor="#66FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M0,19L108,19" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M0,9L108,9" + android:strokeColor="#66FFFFFF" + android:strokeWidth="0.8" /> +</vector> + diff --git a/Software/Android-Studio/app/src/main/res/layout/activity_main.xml b/Software/Android-Studio/app/src/main/res/layout/activity_main.xml new file mode 100644 index 000000000..ef968203f --- /dev/null +++ b/Software/Android-Studio/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + tools:context="com.twine.tango.MainActivity"> + + <TextView + android:id="@+id/sample_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="Hello World!" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintLeft_toLeftOf="parent" + app:layout_constraintRight_toRightOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + +</android.support.constraint.ConstraintLayout> diff --git a/Software/Android-Studio/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/Software/Android-Studio/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 000000000..00f9eaaf3 --- /dev/null +++ b/Software/Android-Studio/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?> +<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> + <background android:drawable="@drawable/ic_launcher_background" /> + <foreground android:drawable="@mipmap/ic_launcher_foreground" /> +</adaptive-icon>
\ No newline at end of file diff --git a/Software/Android-Studio/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/Software/Android-Studio/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 000000000..00f9eaaf3 --- /dev/null +++ b/Software/Android-Studio/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?> +<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> + <background android:drawable="@drawable/ic_launcher_background" /> + <foreground android:drawable="@mipmap/ic_launcher_foreground" /> +</adaptive-icon>
\ No newline at end of file diff --git a/Software/Android-Studio/app/src/main/res/mipmap-hdpi/ic_launcher.png b/Software/Android-Studio/app/src/main/res/mipmap-hdpi/ic_launcher.png Binary files differnew file mode 100644 index 000000000..550730310 --- /dev/null +++ b/Software/Android-Studio/app/src/main/res/mipmap-hdpi/ic_launcher.png diff --git a/Software/Android-Studio/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/Software/Android-Studio/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png Binary files differnew file mode 100644 index 000000000..4e526c95b --- /dev/null +++ b/Software/Android-Studio/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png diff --git a/Software/Android-Studio/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/Software/Android-Studio/app/src/main/res/mipmap-hdpi/ic_launcher_round.png Binary files differnew file mode 100644 index 000000000..8fab6a3a5 --- /dev/null +++ b/Software/Android-Studio/app/src/main/res/mipmap-hdpi/ic_launcher_round.png diff --git a/Software/Android-Studio/app/src/main/res/mipmap-mdpi/ic_launcher.png b/Software/Android-Studio/app/src/main/res/mipmap-mdpi/ic_launcher.png Binary files differnew file mode 100644 index 000000000..6bc7fcd6f --- /dev/null +++ b/Software/Android-Studio/app/src/main/res/mipmap-mdpi/ic_launcher.png diff --git a/Software/Android-Studio/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/Software/Android-Studio/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png Binary files differnew file mode 100644 index 000000000..2c38c7190 --- /dev/null +++ b/Software/Android-Studio/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png diff --git a/Software/Android-Studio/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/Software/Android-Studio/app/src/main/res/mipmap-mdpi/ic_launcher_round.png Binary files differnew file mode 100644 index 000000000..1eecc0e7d --- /dev/null +++ b/Software/Android-Studio/app/src/main/res/mipmap-mdpi/ic_launcher_round.png diff --git a/Software/Android-Studio/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/Software/Android-Studio/app/src/main/res/mipmap-xhdpi/ic_launcher.png Binary files differnew file mode 100644 index 000000000..ec87dcebe --- /dev/null +++ b/Software/Android-Studio/app/src/main/res/mipmap-xhdpi/ic_launcher.png diff --git a/Software/Android-Studio/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/Software/Android-Studio/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png Binary files differnew file mode 100644 index 000000000..072467eaa --- /dev/null +++ b/Software/Android-Studio/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png diff --git a/Software/Android-Studio/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/Software/Android-Studio/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png Binary files differnew file mode 100644 index 000000000..05ca079ca --- /dev/null +++ b/Software/Android-Studio/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png diff --git a/Software/Android-Studio/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/Software/Android-Studio/app/src/main/res/mipmap-xxhdpi/ic_launcher.png Binary files differnew file mode 100644 index 000000000..6f67f21ba --- /dev/null +++ b/Software/Android-Studio/app/src/main/res/mipmap-xxhdpi/ic_launcher.png diff --git a/Software/Android-Studio/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/Software/Android-Studio/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png Binary files differnew file mode 100644 index 000000000..78a6b7a34 --- /dev/null +++ b/Software/Android-Studio/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png diff --git a/Software/Android-Studio/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/Software/Android-Studio/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png Binary files differnew file mode 100644 index 000000000..8bac0f274 --- /dev/null +++ b/Software/Android-Studio/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png diff --git a/Software/Android-Studio/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/Software/Android-Studio/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png Binary files differnew file mode 100644 index 000000000..0327e13fa --- /dev/null +++ b/Software/Android-Studio/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png diff --git a/Software/Android-Studio/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/Software/Android-Studio/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png Binary files differnew file mode 100644 index 000000000..68ebe33fe --- /dev/null +++ b/Software/Android-Studio/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png diff --git a/Software/Android-Studio/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/Software/Android-Studio/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png Binary files differnew file mode 100644 index 000000000..bacd3e758 --- /dev/null +++ b/Software/Android-Studio/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png diff --git a/Software/Android-Studio/app/src/main/res/values/colors.xml b/Software/Android-Studio/app/src/main/res/values/colors.xml new file mode 100644 index 000000000..3ab3e9cbc --- /dev/null +++ b/Software/Android-Studio/app/src/main/res/values/colors.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + <color name="colorPrimary">#3F51B5</color> + <color name="colorPrimaryDark">#303F9F</color> + <color name="colorAccent">#FF4081</color> +</resources> diff --git a/Software/Android-Studio/app/src/main/res/values/strings.xml b/Software/Android-Studio/app/src/main/res/values/strings.xml new file mode 100644 index 000000000..9bff8a19c --- /dev/null +++ b/Software/Android-Studio/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ +<resources> + <string name="app_name">Tango</string> +</resources> diff --git a/Software/Android-Studio/app/src/main/res/values/styles.xml b/Software/Android-Studio/app/src/main/res/values/styles.xml new file mode 100644 index 000000000..5885930df --- /dev/null +++ b/Software/Android-Studio/app/src/main/res/values/styles.xml @@ -0,0 +1,11 @@ +<resources> + + <!-- Base application theme. --> + <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> + <!-- Customize your theme here. --> + <item name="colorPrimary">@color/colorPrimary</item> + <item name="colorPrimaryDark">@color/colorPrimaryDark</item> + <item name="colorAccent">@color/colorAccent</item> + </style> + +</resources> diff --git a/Software/Android-Studio/app/src/test/java/com/twine/tango/ExampleUnitTest.java b/Software/Android-Studio/app/src/test/java/com/twine/tango/ExampleUnitTest.java new file mode 100644 index 000000000..4ef42c6db --- /dev/null +++ b/Software/Android-Studio/app/src/test/java/com/twine/tango/ExampleUnitTest.java @@ -0,0 +1,20 @@ +package com.twine.tango; + +import org.junit.Test; + +import static org.junit.Assert.*; + +/** + * Example local unit test, which will execute on the development machine (host). + * + * @see <a href="http://d.android.com/tools/testing">Testing documentation</a> + */ +public class ExampleUnitTest { + @Test + public void addition_isCorrect() throws Exception { + + MainActivity a = new MainActivity(); + a.Do(); + assertEquals(4, 2 + 2); + } +}
\ No newline at end of file diff --git a/Software/Android-Studio/app/src/test/java/com/twine/tango/PMR_TST.java b/Software/Android-Studio/app/src/test/java/com/twine/tango/PMR_TST.java new file mode 100644 index 000000000..e37996343 --- /dev/null +++ b/Software/Android-Studio/app/src/test/java/com/twine/tango/PMR_TST.java @@ -0,0 +1,55 @@ +package com.twine.tango; + +import org.junit.Test; + +import Tango.PMR.Common.MessageContainerOuterClass.MessageContainer; +import Tango.PMR.Common.MessageTypeOuterClass.MessageType; +import Tango.PMR.Common.RGBOuterClass.RGB; +import Tango.PMR.Jobs.JobOuterClass.Job; +import Tango.PMR.Jobs.SegmentOuterClass.Segment; + +import static org.junit.Assert.assertEquals; + +/** + * Created by Roy on 11/2/2017. + */ + +public class PMR_TST { + @Test + public void read_write_PMR() throws Exception { + + MessageContainer.Builder container = MessageContainer.newBuilder(); + + Job.Builder job = Job.newBuilder(); + job.setName("Test Job"); + + job.addSegments( + Segment.newBuilder(). + setName("Segment 1"). + setColor(RGB.newBuilder() + .setR(10) + .setG(20) + .setB(30)) + .build()); + + job.addSegments( + Segment.newBuilder(). + setName("Segment 2"). + setColor(RGB.newBuilder() + .setR(100) + .setG(200) + .setB(300)) + .build()); + + container.setType(MessageType.Job); + Job buildJob = job.build(); + container.setData(buildJob.toByteString()); + + byte[] bytes = container.build().toByteArray(); + + MessageContainer parsed = MessageContainer.parseFrom(bytes); + Job parsedJob = Job.parseFrom(parsed.getData()); + + assertEquals(buildJob, parsedJob); + } +} diff --git a/Software/Android-Studio/build.gradle b/Software/Android-Studio/build.gradle new file mode 100644 index 000000000..0e2d08bbb --- /dev/null +++ b/Software/Android-Studio/build.gradle @@ -0,0 +1,27 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + + repositories { + google() + jcenter() + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:3.0.0-beta2' + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + google() + jcenter() + mavenCentral() + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/Software/Android-Studio/gradle.properties b/Software/Android-Studio/gradle.properties new file mode 100644 index 000000000..aac7c9b46 --- /dev/null +++ b/Software/Android-Studio/gradle.properties @@ -0,0 +1,17 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx1536m + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true diff --git a/Software/Android-Studio/gradle/wrapper/gradle-wrapper.jar b/Software/Android-Studio/gradle/wrapper/gradle-wrapper.jar Binary files differnew file mode 100644 index 000000000..13372aef5 --- /dev/null +++ b/Software/Android-Studio/gradle/wrapper/gradle-wrapper.jar diff --git a/Software/Android-Studio/gradle/wrapper/gradle-wrapper.properties b/Software/Android-Studio/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 000000000..d86868739 --- /dev/null +++ b/Software/Android-Studio/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Thu Nov 02 18:59:39 IST 2017 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip diff --git a/Software/Android-Studio/gradlew b/Software/Android-Studio/gradlew new file mode 100644 index 000000000..9d82f7891 --- /dev/null +++ b/Software/Android-Studio/gradlew @@ -0,0 +1,160 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/Software/Android-Studio/gradlew.bat b/Software/Android-Studio/gradlew.bat new file mode 100644 index 000000000..8a0b282aa --- /dev/null +++ b/Software/Android-Studio/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/Software/Android-Studio/settings.gradle b/Software/Android-Studio/settings.gradle new file mode 100644 index 000000000..2e7f8ec0e --- /dev/null +++ b/Software/Android-Studio/settings.gradle @@ -0,0 +1 @@ +include ':app', ':Tango.PMR', ':Tango.BL' diff --git a/Software/Visual Studio/Tango.Protobuf/ProtoCompiler.cs b/Software/Visual Studio/Tango.Protobuf/ProtoCompiler.cs index 684248209..c48ec6a70 100644 --- a/Software/Visual Studio/Tango.Protobuf/ProtoCompiler.cs +++ b/Software/Visual Studio/Tango.Protobuf/ProtoCompiler.cs @@ -71,6 +71,7 @@ namespace Tango.Protobuf LogManager.Log("Compilers folder path: " + _compilersPath); p.StartInfo.WorkingDirectory = _compilersPath; + String oldCurrentDirectory = Environment.CurrentDirectory; Environment.CurrentDirectory = _compilersPath; p.StartInfo.FileName = GetProtoCompilerName(); @@ -98,6 +99,8 @@ namespace Tango.Protobuf p.Start(); p.WaitForExit(5000); + Environment.CurrentDirectory = oldCurrentDirectory; + String error = p.StandardError.ReadToEnd(); if (!String.IsNullOrWhiteSpace(error)) diff --git a/Software/Visual Studio/Utilities/Tango.Protobuf.CLI/Program.cs b/Software/Visual Studio/Utilities/Tango.Protobuf.CLI/Program.cs index 96d42d10c..7232a9b6d 100644 --- a/Software/Visual Studio/Utilities/Tango.Protobuf.CLI/Program.cs +++ b/Software/Visual Studio/Utilities/Tango.Protobuf.CLI/Program.cs @@ -22,11 +22,11 @@ namespace Tango.Protobuf.CLI { if (!Directory.Exists(options.SourceFolder)) { - return ExitError("Could not locate source folder."); + return ExitError("Could not locate source folder \"" + Path.GetFullPath(options.SourceFolder) + "\""); } if (!Directory.Exists(options.OutputFolder)) { - return ExitError("Could not locate output folder."); + return ExitError("Could not locate output folder " + Path.GetFullPath(options.OutputFolder)); } CompilerLanguage language; @@ -38,8 +38,8 @@ namespace Tango.Protobuf.CLI try { var compiler = CompilerFactory.CreateCompiler(language); - var result = compiler.CompileFolder(options.SourceFolder); - result.Save(options.OutputFolder); + var result = compiler.CompileFolder(Path.GetFullPath(options.SourceFolder)); + result.Save(Path.GetFullPath(options.OutputFolder)); } catch (Exception ex) { @@ -47,10 +47,10 @@ namespace Tango.Protobuf.CLI } } - return ExitSuccess(); + return ExitSuccess("Folder compiled to " + Path.GetFullPath(options.SourceFolder)); } - private static int ExitSuccess() + private static int ExitSuccess(String text) { Console.WriteLine("Done!"); return 0; |
