summaryrefslogtreecommitdiffstats
path: root/CAN-binder/libs
diff options
context:
space:
mode:
Diffstat (limited to 'CAN-binder/libs')
-rw-r--r--CAN-binder/libs/CMakeLists.txt29
-rw-r--r--CAN-binder/libs/bitfield-c/.gitignore5
-rw-r--r--CAN-binder/libs/bitfield-c/.travis.yml7
-rw-r--r--CAN-binder/libs/bitfield-c/CHANGELOG.mkd5
-rw-r--r--CAN-binder/libs/bitfield-c/LICENSE24
-rw-r--r--CAN-binder/libs/bitfield-c/Makefile53
-rw-r--r--CAN-binder/libs/bitfield-c/README.mkd107
-rw-r--r--CAN-binder/libs/bitfield-c/runtests.sh17
-rw-r--r--CAN-binder/libs/bitfield-c/src/bitfield/8byte.c61
-rw-r--r--CAN-binder/libs/bitfield-c/src/bitfield/8byte.h88
-rw-r--r--CAN-binder/libs/bitfield-c/src/bitfield/bitarray.c145
-rw-r--r--CAN-binder/libs/bitfield-c/src/bitfield/bitfield.c74
-rw-r--r--CAN-binder/libs/bitfield-c/src/bitfield/bitfield.h220
-rw-r--r--CAN-binder/libs/bitfield-c/src/canutil/read.c34
-rw-r--r--CAN-binder/libs/bitfield-c/src/canutil/read.h81
-rw-r--r--CAN-binder/libs/bitfield-c/src/canutil/write.c48
-rw-r--r--CAN-binder/libs/bitfield-c/src/canutil/write.h57
-rw-r--r--CAN-binder/libs/bitfield-c/tests/8byte_tests.c261
-rw-r--r--CAN-binder/libs/bitfield-c/tests/bitfield_tests.c132
-rw-r--r--CAN-binder/libs/bitfield-c/tests/read_tests.c67
-rw-r--r--CAN-binder/libs/bitfield-c/tests/write_tests.c105
-rw-r--r--CAN-binder/libs/ini-config/ini-config.cpp95
-rw-r--r--CAN-binder/libs/ini-config/ini-config.hpp61
-rw-r--r--CAN-binder/libs/isotp-c/.gitignore6
-rw-r--r--CAN-binder/libs/isotp-c/.gitmodules3
-rw-r--r--CAN-binder/libs/isotp-c/.travis.yml8
-rw-r--r--CAN-binder/libs/isotp-c/CHANGELOG.mkd10
-rw-r--r--CAN-binder/libs/isotp-c/LICENSE24
-rw-r--r--CAN-binder/libs/isotp-c/Makefile56
-rw-r--r--CAN-binder/libs/isotp-c/README.mkd142
m---------CAN-binder/libs/isotp-c/deps/bitfield-c6
-rw-r--r--CAN-binder/libs/isotp-c/runtests.sh17
-rw-r--r--CAN-binder/libs/isotp-c/src/isotp/isotp.c32
-rw-r--r--CAN-binder/libs/isotp-c/src/isotp/isotp.h41
-rw-r--r--CAN-binder/libs/isotp-c/src/isotp/isotp_types.h144
-rw-r--r--CAN-binder/libs/isotp-c/src/isotp/receive.c166
-rw-r--r--CAN-binder/libs/isotp-c/src/isotp/receive.h86
-rw-r--r--CAN-binder/libs/isotp-c/src/isotp/send.c89
-rw-r--r--CAN-binder/libs/isotp-c/src/isotp/send.h86
-rw-r--r--CAN-binder/libs/isotp-c/tests/common.c91
-rw-r--r--CAN-binder/libs/isotp-c/tests/test_core.c78
-rw-r--r--CAN-binder/libs/isotp-c/tests/test_receive.c176
-rw-r--r--CAN-binder/libs/isotp-c/tests/test_send.c103
-rw-r--r--CAN-binder/libs/openxc-message-format/.gitignore1
-rw-r--r--CAN-binder/libs/openxc-message-format/.gitmodules3
-rw-r--r--CAN-binder/libs/openxc-message-format/CHANGELOG.md57
-rw-r--r--CAN-binder/libs/openxc-message-format/JSON.mkd435
-rw-r--r--CAN-binder/libs/openxc-message-format/LICENSE24
-rw-r--r--CAN-binder/libs/openxc-message-format/Makefile11
-rw-r--r--CAN-binder/libs/openxc-message-format/README.md177
-rw-r--r--CAN-binder/libs/openxc-message-format/benchmark/proto/.gitignore1
-rwxr-xr-xCAN-binder/libs/openxc-message-format/benchmark/proto/compare_sizes.py96
-rw-r--r--CAN-binder/libs/openxc-message-format/gen/README.mkd11
-rw-r--r--CAN-binder/libs/openxc-message-format/gen/cpp/openxc.pbbin0 -> 3497 bytes
-rw-r--r--CAN-binder/libs/openxc-message-format/gen/cpp/openxc.pb.c184
-rw-r--r--CAN-binder/libs/openxc-message-format/gen/cpp/openxc.pb.h426
-rw-r--r--CAN-binder/libs/openxc-message-format/gen/java/com/openxc/BinaryMessages.java12099
-rw-r--r--CAN-binder/libs/openxc-message-format/gen/python/openxc_pb2.py1316
m---------CAN-binder/libs/openxc-message-format/libs/nanopb6
-rw-r--r--CAN-binder/libs/openxc-message-format/openxc.options10
-rw-r--r--CAN-binder/libs/openxc-message-format/openxc.proto174
-rw-r--r--CAN-binder/libs/openxc-message-format/pip-requirements.txt1
-rwxr-xr-xCAN-binder/libs/openxc-message-format/script/bootstrap.sh179
63 files changed, 18351 insertions, 0 deletions
diff --git a/CAN-binder/libs/CMakeLists.txt b/CAN-binder/libs/CMakeLists.txt
new file mode 100644
index 00000000..38ccd2d1
--- /dev/null
+++ b/CAN-binder/libs/CMakeLists.txt
@@ -0,0 +1,29 @@
+###########################################################################
+# Copyright 2015, 2016, 2017 IoT.bzh
+#
+# author: Fulup Ar Foll <fulup@iot.bzh>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+###########################################################################
+
+# Add target to project dependency list
+fill_include_dir(${CMAKE_CURRENT_SOURCE_DIR})
+file(GLOB filelist "${CMAKE_CURRENT_SOURCE_DIR}/*")
+foreach(filename ${filelist})
+ if(IS_DIRECTORY ${filename})
+ STRING(REGEX REPLACE "^.*\/(.*)$" "\\1" shortname ${filename})
+ find_source_files(${filename})
+ PROJECT_TARGET_ADD(${shortname})
+ add_library(${shortname} STATIC ${sources_files})
+ endif(IS_DIRECTORY ${filename})
+endforeach()
diff --git a/CAN-binder/libs/bitfield-c/.gitignore b/CAN-binder/libs/bitfield-c/.gitignore
new file mode 100644
index 00000000..834a305d
--- /dev/null
+++ b/CAN-binder/libs/bitfield-c/.gitignore
@@ -0,0 +1,5 @@
+*.o
+.DS_Store
+*~
+*.bin
+build
diff --git a/CAN-binder/libs/bitfield-c/.travis.yml b/CAN-binder/libs/bitfield-c/.travis.yml
new file mode 100644
index 00000000..7654abaa
--- /dev/null
+++ b/CAN-binder/libs/bitfield-c/.travis.yml
@@ -0,0 +1,7 @@
+language: c
+compiler:
+ - gcc
+script: make test
+before_install:
+ - sudo apt-get update -qq
+ - sudo apt-get install check
diff --git a/CAN-binder/libs/bitfield-c/CHANGELOG.mkd b/CAN-binder/libs/bitfield-c/CHANGELOG.mkd
new file mode 100644
index 00000000..eea48c06
--- /dev/null
+++ b/CAN-binder/libs/bitfield-c/CHANGELOG.mkd
@@ -0,0 +1,5 @@
+# Bitfield Utilities in C
+
+## v0.1
+
+* Initial release
diff --git a/CAN-binder/libs/bitfield-c/LICENSE b/CAN-binder/libs/bitfield-c/LICENSE
new file mode 100644
index 00000000..330d61f4
--- /dev/null
+++ b/CAN-binder/libs/bitfield-c/LICENSE
@@ -0,0 +1,24 @@
+Copyright (c) 2013 Ford Motor Company
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the name of the <organization> nor the
+ names of its contributors may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/CAN-binder/libs/bitfield-c/Makefile b/CAN-binder/libs/bitfield-c/Makefile
new file mode 100644
index 00000000..e93efb47
--- /dev/null
+++ b/CAN-binder/libs/bitfield-c/Makefile
@@ -0,0 +1,53 @@
+CC = gcc
+INCLUDES = -Isrc
+CFLAGS = $(INCLUDES) -c -Wall -Werror -g -ggdb -coverage
+LDFLAGS = -coverage -lm
+LDLIBS = -lcheck
+
+TEST_DIR = tests
+TEST_OBJDIR = build
+
+# Guard against \r\n line endings only in Cygwin
+OSTYPE := $(shell uname)
+ifneq ($(OSTYPE),Darwin)
+ OSTYPE := $(shell uname -o)
+ ifeq ($(OSTYPE),Cygwin)
+ TEST_SET_OPTS = igncr
+ endif
+endif
+
+SRC = $(wildcard src/**/*.c)
+OBJS = $(SRC:.c=.o)
+OBJS = $(patsubst %,$(TEST_OBJDIR)/%,$(SRC:.c=.o))
+TEST_SRC = $(wildcard $(TEST_DIR)/*_tests.c)
+TESTS=$(patsubst %.c,$(TEST_OBJDIR)/%.bin,$(TEST_SRC))
+
+all: $(OBJS)
+
+test: $(TESTS)
+ @set -o $(TEST_SET_OPTS) >/dev/null 2>&1
+ @export SHELLOPTS
+ @sh runtests.sh $(TEST_OBJDIR)/$(TEST_DIR)
+
+COVERAGE_INFO_FILENAME = coverage.info
+COVERAGE_INFO_PATH = $(TEST_OBJDIR)/$(COVERAGE_INFO_FILENAME)
+coverage:
+ @lcov --base-directory . --directory $(TEST_OBJDIR) --zerocounters -q
+ @make clean
+ @make test
+ @lcov --base-directory . --directory $(TEST_OBJDIR) -c -o $(TEST_OBJDIR)/coverage.info
+ @lcov --remove $(COVERAGE_INFO_PATH) "/usr/*" -o $(COVERAGE_INFO_PATH)
+ @genhtml -o $(TEST_OBJDIR)/coverage -t "isotp-c test coverage" --num-spaces 4 $(COVERAGE_INFO_PATH)
+ @$(BROWSER) $(TEST_OBJDIR)/coverage/index.html
+ @echo "$(GREEN)Coverage information generated in $(TEST_OBJDIR)/coverage/index.html.$(COLOR_RESET)"
+
+$(TEST_OBJDIR)/%.o: %.c
+ @mkdir -p $(dir $@)
+ $(CC) $(CFLAGS) $(CC_SYMBOLS) $(INCLUDES) -o $@ $<
+
+$(TEST_OBJDIR)/%.bin: $(TEST_OBJDIR)/%.o $(OBJS) $(TEST_SUPPORT_OBJS)
+ @mkdir -p $(dir $@)
+ $(CC) $(LDFLAGS) $(CC_SYMBOLS) $(INCLUDES) -o $@ $^ $(LDLIBS)
+
+clean:
+ rm -rf $(TEST_OBJDIR)
diff --git a/CAN-binder/libs/bitfield-c/README.mkd b/CAN-binder/libs/bitfield-c/README.mkd
new file mode 100644
index 00000000..439b3dd0
--- /dev/null
+++ b/CAN-binder/libs/bitfield-c/README.mkd
@@ -0,0 +1,107 @@
+Bitfield Utilities in C
+===========================
+
+This is a C library with functions to help encode and decode Controller Area
+Network (CAN) message payloads or other bitfields.
+
+The header files contain complete function documentation, but to get you
+started, here are examples using the API:
+
+## Bitfield Manipulation
+
+The bitfields are stored in `uint8_t[]`.
+
+ uint8_t data[4] = {0x12, 0x34, 0x56, 0x78};
+ uint8_t result = get_byte(data, sizeof(data), 0);
+ // result = 0x12;
+ result = get_nibble(data, sizeof(data), 0);
+ // result = 0x1;
+ bool success = copy_bits_right_aligned(data, 4, 4, 12, result, 4)
+ // success == true
+ // result[0] == 0x2
+ // result[1] == 0x34
+
+## 8 Byte Helpers
+
+If you are dealing with 8 byte CAN messages as `uint64_t`, there are some
+additional functions prefixed with `eightbyte_` that may be faster or more
+useful.
+
+### 8 Byte Decoding
+
+ uint64_t data = 0x8000000000000000;
+ uint64_t result = eightbyte_get_bitfield(data, 0, 1, false);
+ // result == 0x1
+
+ data = 0x0402574d555a0401;
+ result = eightbyte_get_bitfield(data, 16, 32, false);
+ // result = 0x574d555a;
+
+ data = 0x00000000F34DFCFF;
+ result = eightbyte_get_byte(data, 0, false);
+ //result = 0x0
+
+ result = eightbyte_get_byte(data, 4, false);
+ //result = 0xF3
+
+ result = eightbyte_get_nibble(data, 10, false);
+ //result = 0x4;
+
+### 8 Byte Encoding
+
+ uint64_t data = 0;
+ fail_unless(8byte_set_bitfield(1, 0, 1, &data));
+ uint64_t result = eightbyte_get_bitfield(data, 0, 1, false);
+ ck_assert_int_eq(result, 0x1);
+
+### CAN Signal Encoding
+
+The library supports encoding floating point CAN signals as well as booleans
+into a uint64_t payload.
+
+ uint64_t payload = eightbyte_encode_float(1, 1, 3, 1, 0)
+ // payload == 0x1000000000000000
+
+ payload = eightbyte_encode_bool(true, 1, 3);
+ // payload == 0x1000000000000000
+
+### CAN Signal Decoding
+
+The library supports parsing floating point CAN signals as well as booleans.
+
+ uint64_t payload = 0xeb00000000000000;
+ float float_result = eightbyte_parse_float(payload,
+ 2, // starting bit
+ 4, // width of the signal's field
+ 1001.0, // transformation factor for the signal value
+ -30000.0); // transformation offset for the signal value
+ // float_result == -19990.0
+
+ bool bool_result = eightbyte_parse_bool(payload,
+ 0, // starting bit
+ 1, // width of the signal's field
+ 1.0, // transformation factor for the signal value
+ 0); // transformation offset for the signal value
+ // bool_result == true
+
+## Testing
+
+The library includes a test suite that uses the `check` C unit test library. It
+requires the unit testing library `check`.
+
+ $ make test
+
+You can also see the test coverage if you have `lcov` installed and the
+`BROWSER` environment variable set to your choice of web browsers:
+
+ $ BROWSER=google-chrome-stable make coverage
+
+## Authors
+
+Chris Peplin cpeplin@ford.com
+
+## License
+
+Copyright (c) 2013 Ford Motor Company
+
+Licensed under the BSD license.
diff --git a/CAN-binder/libs/bitfield-c/runtests.sh b/CAN-binder/libs/bitfield-c/runtests.sh
new file mode 100644
index 00000000..4781636b
--- /dev/null
+++ b/CAN-binder/libs/bitfield-c/runtests.sh
@@ -0,0 +1,17 @@
+echo "Running unit tests:"
+
+for i in $1/*.bin
+do
+ if test -f $i
+ then
+ if ./$i
+ then
+ echo $i PASS
+ else
+ echo "ERROR in test $i:"
+ exit 1
+ fi
+ fi
+done
+
+echo "${txtbld}$(tput setaf 2)All unit tests passed.$(tput sgr0)"
diff --git a/CAN-binder/libs/bitfield-c/src/bitfield/8byte.c b/CAN-binder/libs/bitfield-c/src/bitfield/8byte.c
new file mode 100644
index 00000000..9325ed1b
--- /dev/null
+++ b/CAN-binder/libs/bitfield-c/src/bitfield/8byte.c
@@ -0,0 +1,61 @@
+#include <bitfield/bitfield.h>
+#include <bitfield/8byte.h>
+#include <stddef.h>
+#include <limits.h>
+#include <string.h>
+
+#define EIGHTBYTE_BIT (8 * sizeof(uint64_t))
+
+uint8_t eightbyte_get_nibble(const uint64_t source, const uint8_t nibble_index,
+ const bool data_is_big_endian) {
+ return (uint8_t) eightbyte_get_bitfield(source, NIBBLE_SIZE * nibble_index,
+ NIBBLE_SIZE, data_is_big_endian);
+}
+
+uint8_t eightbyte_get_byte(uint64_t source, const uint8_t byte_index,
+ const bool data_is_big_endian) {
+ if(data_is_big_endian) {
+ source = __builtin_bswap64(source);
+ }
+ return (source >> (EIGHTBYTE_BIT - ((byte_index + 1) * CHAR_BIT))) & 0xFF;
+}
+
+// TODO is this funciton necessary anymore? is it any faster for uint64_t than
+// get_bitfield(data[], ...)? is the performance better on a 32 bit platform
+// like the PIC32?
+uint64_t eightbyte_get_bitfield(uint64_t source, const uint16_t offset,
+ const uint16_t bit_count, const bool data_is_big_endian) {
+ int startByte = offset / CHAR_BIT;
+ int endByte = (offset + bit_count - 1) / CHAR_BIT;
+
+ if(!data_is_big_endian) {
+ source = __builtin_bswap64(source);
+ }
+
+ uint8_t* bytes = (uint8_t*)&source;
+ uint64_t ret = bytes[startByte];
+ if(startByte != endByte) {
+ // The lowest byte address contains the most significant bit.
+ uint8_t i;
+ for(i = startByte + 1; i <= endByte; i++) {
+ ret = ret << 8;
+ ret = ret | bytes[i];
+ }
+ }
+
+ ret >>= 8 - find_end_bit(offset + bit_count);
+ return ret & bitmask(bit_count);
+}
+
+bool eightbyte_set_bitfield(uint64_t value, const uint16_t offset,
+ const uint16_t bit_count, uint64_t* destination) {
+ if(value > bitmask(bit_count)) {
+ return false;
+ }
+
+ int shiftDistance = EIGHTBYTE_BIT - offset - bit_count;
+ value <<= shiftDistance;
+ *destination &= ~(bitmask(bit_count) << shiftDistance);
+ *destination |= value;
+ return true;
+}
diff --git a/CAN-binder/libs/bitfield-c/src/bitfield/8byte.h b/CAN-binder/libs/bitfield-c/src/bitfield/8byte.h
new file mode 100644
index 00000000..04512690
--- /dev/null
+++ b/CAN-binder/libs/bitfield-c/src/bitfield/8byte.h
@@ -0,0 +1,88 @@
+#ifndef __8BYTE_H__
+#define __8BYTE_H__
+
+#include <stdint.h>
+#include <stdbool.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Public: Reads a subset of bits into a uint64_t.
+ *
+ * source - the bytes in question.
+ * offset - the starting index of the bit field (beginning from 0).
+ * bit_count - the width of the bit field to extract.
+ * data_is_big_endian - if the data passed in is little endian, set this to false and it
+ * will be flipped before grabbing the bit field.
+ *
+ * Bit fields are positioned according to big-endian bit layout.
+ *
+ * For example, the bit layout of the value "42" (i.e. 00101010 set at position
+ * 14 with length 6 is:
+ *
+ * 000000000000001010100000000000000000000000000000000000000000000
+ *
+ * and the same value and position but with length 8 is:
+ *
+ * 000000000000000010101000000000000000000000000000000000000000000
+ *
+ * If the architecture where is code is running is little-endian, the input data
+ * will be swapped before grabbing the bit field.
+ *
+ * Examples
+ *
+ * uint64_t value = get_bitfield(data, 2, 4);
+ *
+ * Returns the value of the requested bit field, right aligned in a uint64_t.
+ */
+uint64_t eightbyte_get_bitfield(uint64_t source, const uint16_t offset,
+ const uint16_t bit_count, const bool data_is_big_endian);
+
+/* Public: Return a single nibble from the payload, with range checking.
+ *
+ * source - the source payload.
+ * nibble_index - the index of the nibble to retreive. The leftmost nibble is
+ * index 0.
+ * data_is_big_endian - if the data passed in is little endian, set this to false and it
+ * will be flipped before grabbing the bit field.
+ *
+ * Returns the retreived nibble, right aligned in a uint8_t.
+ */
+uint8_t eightbyte_get_nibble(const uint64_t source, const uint8_t nibble_index,
+ const bool data_is_big_endian);
+
+/* Public: Return a single byte from the payload, with range checking.
+ *
+ * source - the source byte array.
+ * byte_index - the index of the byte to retreive. The leftmost byte is index 0.
+ * data_is_big_endian - if the data passed in is little endian, set this to false and it
+ * will be flipped before grabbing the bit field.
+ *
+ * Returns the retreived byte.
+ */
+uint8_t eightbyte_get_byte(const uint64_t source, const uint8_t byte_index,
+ const bool data_is_big_endian);
+
+/* Public: Set the bit field in the given data array to the new value.
+ *
+ * destination - a byte array with size at least offset + bit_count.
+ * value - the value to set in the bit field.
+ * offset - the starting index of the bit field (beginning from 0).
+ * bit_count - the number of bits to set in the data.
+ *
+ * Returns true if the bit_count is enough to fully represent the value, and
+ * false if it will not fit.
+ */
+bool eightbyte_set_bitfield(uint64_t value,
+ const uint16_t offset, const uint16_t bit_count, uint64_t* destination);
+
+/* Private: Determine the index of the last bit used.
+ */
+uint8_t find_end_bit(const uint16_t num_bits);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __8BYTE_H__
diff --git a/CAN-binder/libs/bitfield-c/src/bitfield/bitarray.c b/CAN-binder/libs/bitfield-c/src/bitfield/bitarray.c
new file mode 100644
index 00000000..dcb9a08f
--- /dev/null
+++ b/CAN-binder/libs/bitfield-c/src/bitfield/bitarray.c
@@ -0,0 +1,145 @@
+#include <bitfield/bitfield.h>
+#include <stddef.h>
+#include <limits.h>
+#include <string.h>
+
+#define PREPARE_FIRST_COPY() \
+ do { \
+ if (bit_count >= (CHAR_BIT - destination_offset_modulo)) { \
+ *destination &= reverse_mask[destination_offset_modulo]; \
+ bit_count -= CHAR_BIT - destination_offset_modulo; \
+ } else { \
+ *destination &= reverse_mask[destination_offset_modulo] \
+ | reverse_mask_xor[destination_offset_modulo + bit_count + 1];\
+ c &= reverse_mask[destination_offset_modulo + bit_count ];\
+ bit_count = 0; \
+ } } while (0)
+
+static const uint8_t reverse_mask[] =
+ { 0x55, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff };
+static const uint8_t reverse_mask_xor[] =
+ { 0xff, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00 };
+
+bool copy_bits(const uint8_t* source_origin, const uint16_t source_length,
+ const uint16_t source_offset, uint16_t bit_count,
+ uint8_t* destination_origin, const uint16_t destination_length,
+ const uint16_t destination_offset) {
+ if(bit_count < 1) {
+ return false;
+ }
+
+ if(source_offset + bit_count > source_length * CHAR_BIT ||
+ destination_offset + bit_count > destination_length * CHAR_BIT ) {
+ return false;
+ }
+
+ const uint8_t* source = source_origin + (source_offset / CHAR_BIT);
+ uint8_t* destination = destination_origin + (destination_offset / CHAR_BIT);
+ int source_offset_modulo = source_offset % CHAR_BIT;
+ int destination_offset_modulo = destination_offset % CHAR_BIT;
+
+ if(source_offset_modulo == destination_offset_modulo) {
+ if(source_offset_modulo > 0) {
+ uint8_t c = reverse_mask_xor[destination_offset_modulo] & *source++;
+ PREPARE_FIRST_COPY();
+ *destination++ |= c;
+ }
+
+ int byte_len = bit_count / CHAR_BIT;
+ int bit_count_modulo = bit_count % CHAR_BIT;
+
+ if(byte_len > 0) {
+ memcpy(destination, source, byte_len);
+ source += byte_len;
+ destination += byte_len;
+ }
+
+ if(bit_count_modulo > 0) {
+ *destination &= reverse_mask_xor[bit_count_modulo];
+ *destination |= reverse_mask[bit_count_modulo] & *source;
+ }
+ } else {
+ int bit_diff_left_shift;
+ int bit_diff_right_shift;
+ uint8_t c;
+ /*
+ * Begin: Line things up on destination.
+ */
+ if(source_offset_modulo > destination_offset_modulo) {
+ bit_diff_left_shift = source_offset_modulo - destination_offset_modulo;
+ bit_diff_right_shift = CHAR_BIT - bit_diff_left_shift;
+
+ c = *source++ << bit_diff_left_shift;
+ c |= *source >> bit_diff_right_shift;
+ c &= reverse_mask_xor[destination_offset_modulo];
+ } else {
+ bit_diff_right_shift = destination_offset_modulo - source_offset_modulo;
+ bit_diff_left_shift = CHAR_BIT - bit_diff_right_shift;
+
+ c = *source >> bit_diff_right_shift &
+ reverse_mask_xor[destination_offset_modulo];
+ }
+ PREPARE_FIRST_COPY();
+ *destination++ |= c;
+
+ /*
+ * Middle: copy with only shifting the source.
+ */
+ int byte_len = bit_count / CHAR_BIT;
+ while(--byte_len >= 0) {
+ c = *source++ << bit_diff_left_shift;
+ c |= *source >> bit_diff_right_shift;
+ *destination++ = c;
+ }
+
+ /*
+ * End: copy the remaing bits;
+ */
+ int bit_count_modulo = bit_count % CHAR_BIT;
+ if(bit_count_modulo > 0) {
+ c = *source++ << bit_diff_left_shift;
+ c |= *source >> bit_diff_right_shift;
+ c &= reverse_mask[bit_count_modulo];
+
+ *destination &= reverse_mask_xor[bit_count_modulo];
+ *destination |= c;
+ }
+ }
+ return true;
+}
+
+uint16_t bits_to_bytes(uint32_t bits) {
+ uint8_t byte_count = bits / CHAR_BIT;
+ if(bits % CHAR_BIT != 0) {
+ ++byte_count;
+ }
+ return byte_count;
+}
+
+/**
+ * Find the ending bit of a bitfield within the final byte.
+ *
+ * Returns: a bit position from 0 to 7.
+ */
+uint8_t find_end_bit(const uint16_t numBits) {
+ int endBit = numBits % CHAR_BIT;
+ return endBit == 0 ? CHAR_BIT : endBit;
+}
+
+bool copy_bits_right_aligned(const uint8_t source[], const uint16_t source_length,
+ const uint16_t offset, const uint16_t bit_count,
+ uint8_t* destination, const uint16_t destination_length) {
+ return copy_bits(source, source_length, offset, bit_count, destination,
+ destination_length,
+ // provide a proper destination offset so the result is right
+ // aligned
+ (destination_length - bits_to_bytes(bit_count)) * CHAR_BIT +
+ CHAR_BIT - find_end_bit(bit_count));
+}
+
+bool copy_bytes_right_aligned(const uint8_t source[], const uint16_t source_length,
+ const uint16_t offset, const uint16_t byte_count,
+ uint8_t* destination, const uint16_t destination_length) {
+ return copy_bits_right_aligned(source, source_length, offset * CHAR_BIT,
+ byte_count * CHAR_BIT, destination, destination_length);
+}
diff --git a/CAN-binder/libs/bitfield-c/src/bitfield/bitfield.c b/CAN-binder/libs/bitfield-c/src/bitfield/bitfield.c
new file mode 100644
index 00000000..795f0208
--- /dev/null
+++ b/CAN-binder/libs/bitfield-c/src/bitfield/bitfield.c
@@ -0,0 +1,74 @@
+#include <bitfield/bitfield.h>
+#include <limits.h>
+#include <string.h>
+#include <stddef.h>
+#include <sys/param.h>
+
+uint64_t bitmask(const uint8_t bit_count) {
+ return (((uint64_t)0x1) << bit_count) - 1;
+}
+
+uint8_t get_nibble(const uint8_t source[], const uint8_t source_length,
+ const uint8_t nibble_index) {
+ uint8_t byte_index = nibble_index / 2;
+ uint8_t result = get_byte(source, source_length, byte_index);
+ if(nibble_index % 2 == 0) {
+ result >>= NIBBLE_SIZE;
+ }
+ result &= bitmask(NIBBLE_SIZE);
+ return result;
+}
+
+uint8_t get_byte(const uint8_t source[], const uint8_t source_length,
+ const uint8_t byte_index) {
+ if(byte_index < source_length) {
+ return source[byte_index];
+ }
+ return 0;
+}
+
+uint64_t get_bitfield(const uint8_t source[], const uint8_t source_length,
+ const uint16_t offset, const uint16_t bit_count) {
+ if(bit_count > 64 || bit_count < 1) {
+ // TODO error reporting?
+ return 0;
+ }
+
+ ArrayOrBytes combined;
+ memset(combined.bytes, 0, sizeof(combined.bytes));
+ if(copy_bits_right_aligned(source, source_length, offset, bit_count,
+ combined.bytes, sizeof(combined.bytes))) {
+ if(BYTE_ORDER == LITTLE_ENDIAN) {
+ combined.whole = __builtin_bswap64(combined.whole);
+ }
+ } else {
+ // debug("couldn't copy enough bits from source")
+ }
+ return combined.whole;
+}
+
+bool set_nibble(const uint16_t nibble_index, const uint8_t value,
+ uint8_t* destination, const uint16_t destination_length) {
+ return copy_bits(&value, CHAR_BIT, NIBBLE_SIZE, NIBBLE_SIZE, destination,
+ destination_length, nibble_index * NIBBLE_SIZE);
+}
+
+bool set_bitfield(const uint64_t value, const uint16_t offset,
+ const uint16_t bit_count, uint8_t destination[],
+ uint16_t destination_length) {
+ if(value > bitmask(bit_count)) {
+ return false;
+ }
+
+ ArrayOrBytes combined = {
+ whole: value
+ };
+
+ if(BYTE_ORDER == LITTLE_ENDIAN) {
+ combined.whole = __builtin_bswap64(combined.whole);
+ }
+
+ return copy_bits(combined.bytes, sizeof(combined.bytes),
+ sizeof(combined.bytes) * CHAR_BIT - bit_count, bit_count,
+ destination, destination_length, offset);
+}
diff --git a/CAN-binder/libs/bitfield-c/src/bitfield/bitfield.h b/CAN-binder/libs/bitfield-c/src/bitfield/bitfield.h
new file mode 100644
index 00000000..df92639a
--- /dev/null
+++ b/CAN-binder/libs/bitfield-c/src/bitfield/bitfield.h
@@ -0,0 +1,220 @@
+#ifndef __BITFIELD_H__
+#define __BITFIELD_H__
+
+#include <stdint.h>
+#include <stdbool.h>
+
+#define NIBBLE_SIZE (CHAR_BIT / 2)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Public: Reads a subset of bits into a uint64_t, right aligned so they may be
+ * interpreted as a number.
+ *
+ * source - the bytes in question.
+ * source_size - the number of bytes in the source.
+ * offset - the starting index of the bit field (beginning from 0).
+ * bit_count - the width of the bit field to extract. This must be less than or
+ * equal to 64.
+ *
+ * Bit fields are positioned according to big-endian bit layout and the data is
+ * swapped automatically as necessary depending on the compiled architecture.
+ *
+ * For example, the bit layout of the value "42" (i.e. 00101010 set at position
+ * 14 with length 6 is:
+ *
+ * 000000000000001010100000000000000000000000000000000000000000000
+ *
+ * and the same value and position but with length 8 is:
+ *
+ * 000000000000000010101000000000000000000000000000000000000000000
+ *
+ * Examples
+ *
+ * uint64_t value = get_bitfield(data, data_size, 2, 4);
+ *
+ * Returns the value of the requested bit field, right aligned in a uint64_t.
+ */
+uint64_t get_bitfield(const uint8_t source[], const uint8_t source_length,
+ const uint16_t offset, const uint16_t bit_count);
+
+/* Public: Return a single nibble from the byte array, with range checking.
+ *
+ * source - the source byte array.
+ * source_length - the total length of the source array.
+ * nibble_index - the index of the nibble to retreive. The leftmost nibble is
+ * index 0.
+ *
+ * Returns the retreived nibble, right aligned in a uint8_t.
+ */
+uint8_t get_nibble(const uint8_t source[], const uint8_t source_length,
+ const uint8_t nibble_index);
+
+/* Public: Return a single byte from the byte array, with range checking.
+ *
+ * source - the source byte array.
+ * source_length - the total length of the source array.
+ * byte_index - the index of the byte to retreive. The leftmost byte is index 0.
+ *
+ * Returns the retreived byte.
+ */
+uint8_t get_byte(const uint8_t source[], const uint8_t source_length,
+ const uint8_t byte_index);
+
+/* Public: Copy a range of bits from one bit array to another.
+ *
+ * The range does not need to be byte aligned, and the source and destination do
+ * not have to be the same size (as long as the desitnation has enough room to
+ * fit the range).
+ *
+ * A bit array with regards to this function always has the leftmost bit in byte
+ * 0, i.e. bit index is the leftmost bit of byte 0. Endianness does not matter.
+ *
+ * For example:
+ *
+ * uint8_t source[4] = {0x11, 0x22, 0x33, 0x44};
+ * uint8_t destination[4] = {0};
+ * copy_bits(source, sizeof(source), 8, 8, destination,
+ * sizeof(destination), 0);
+ * // destination[0] == 0x22
+ * // destination[1] == 0x0
+ * // destination[2] == 0x0
+ * // destination[3] == 0x0
+ *
+ * Thanks to
+ * http://stackoverflow.com/questions/3534535/whats-a-time-efficient-algorithm-to-copy-unaligned-bit-arrays
+ * for the implementation of the algorithm.
+ *
+ * source_origin - the source array.
+ * source_length - the total length of the source array in bytes,
+ * for range checking.
+ * source_offset - an offset in bits to start the copy from the source array.
+ * Specify 0 to start from source_origin.
+ * bit_count - the number of bits to copy.
+ * destination_origin - the destination array.
+ * desitnation_length - the total length of the destination array in bytes,
+ * for range checking.
+ * destination_offset - an offset in bits to start placing the copied range into
+ * the destination array. Specify 0 to start from the beginning of the
+ * destination. If you are copying a range not aligned on a byte, you
+ * probably want to set this to a positive offset to right the resulting
+ * bits in the destination.
+ *
+ * Returns true if the copy was successful and false if the range exceeded the
+ * size of the source or destination, or if the range size negative or 0.
+ */
+bool copy_bits(const uint8_t* source_origin, const uint16_t source_length,
+ const uint16_t source_offset, uint16_t bit_count,
+ uint8_t* destination_origin, const uint16_t destination_length,
+ const uint16_t destination_offset);
+
+/* Public: Copy a range of bits from one array to another, right aligning the
+ * result.
+ *
+ * This is mostly useful if you want to cast the result to an integer type
+ * instead of a byte array.
+ *
+ * For example:
+ *
+ * uint8_t source[4] = {0x11, 0x22, 0x33, 0x44};
+ * uint8_t destination[4] = {0};
+ * copy_bits_right_aligned(source, sizeof(source), 8, 8, destination,
+ * sizeof(destination));
+ * // destination[0] == 0x0
+ * // destination[1] == 0x0
+ * // destination[2] == 0x0
+ * // destination[3] == 0x22
+ *
+ * int value = (int)destination;
+ * // value == 0x22 == 32
+ *
+ * The arguments are the same as copy_bits, but without the destination_offset
+ * option - that's set automatically to right align the result.
+ *
+ * Returns true if the copy was successful and false if the range exceeded the
+ * size of the source or destination, or if the range size negative or 0.
+ */
+bool copy_bits_right_aligned(const uint8_t source[], const uint16_t source_length,
+ const uint16_t offset, const uint16_t bit_count,
+ uint8_t* destination, const uint16_t destination_length);
+
+/* Public: Copy a range of bytes from one byte array to another.
+ *
+ * The source and destination do not have to be the same size (as long as the
+ * desitnation has enough room to fit the range).
+ *
+ * source_origin - the source array.
+ * source_length - the total length of the source array in bytes,
+ * for range checking.
+ * source_offset - a byte offset to start the copy from the source array.
+ * Specify 0 to start from source_origin.
+ * byte_count - the number of bytes to copy.
+ * destination_origin - the destination array.
+ * desitnation_length - the total length of the destination array in bytes,
+ * for range checking.
+ * destination_offset - an offset in bytes to start placing the copied range into
+ * the destination array. Specify 0 to start from the beginning of the
+ * destination.
+ *
+ * Returns true if the copy was successful and false if the range exceeded the
+ * size of the source or destination, or if the range size negative or 0.
+ */
+bool copy_bytes_right_aligned(const uint8_t source[], const uint16_t source_length,
+ const uint16_t offset, const uint16_t byte_count,
+ uint8_t* destination, const uint16_t destination_length);
+
+/* Public: Set the a nibble in the given data array to the new value.
+ *
+ * nibble_index - the index of the nibble to retreive. The leftmost nibble is
+ * index 0.
+ * value - the value to set in the bit field.
+ * destination - the destination array.
+ * destination_length - the total length of the destination array in bytes,
+ * for range checking.
+ *
+ * Returns true if the bit_count is enough to fully represent the value, and
+ * false if it will not fit.
+ */
+bool set_nibble(const uint16_t nibble_index, const uint8_t value,
+ uint8_t* destination, const uint16_t destination_length);
+
+/* Public: Set the bit field in the given data array to the new value.
+ *
+ * value - the value to set in the bit field.
+ * offset - the starting index of the bit field (beginning from 0).
+ * bit_count - the number of bits to set in the data.
+ * destination - the destination array.
+ * destination_length - the total length of the destination array in bytes,
+ * for range checking.
+ *
+ * Returns true if the bit_count is enough to fully represent the value, and
+ * false if it will not fit.
+ */
+bool set_bitfield(const uint64_t value, const uint16_t offset,
+ const uint16_t bit_count, uint8_t destination[],
+ uint16_t destination_length);
+
+/* Public: Return a right aligned bitmask for a uint64_t.
+ *
+ * bit_count - the number of bits to mask, right aligned.
+ */
+uint64_t bitmask(const uint8_t bit_count);
+
+/* Private:
+ */
+uint16_t bits_to_bytes(uint32_t bits);
+
+/* Private: A union to assist swapping between uint64_t and a uint8_t array.
+ */
+typedef union {
+ uint64_t whole;
+ uint8_t bytes[sizeof(uint64_t)];
+} ArrayOrBytes;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __BITFIELD_H__
diff --git a/CAN-binder/libs/bitfield-c/src/canutil/read.c b/CAN-binder/libs/bitfield-c/src/canutil/read.c
new file mode 100644
index 00000000..d0cbb71a
--- /dev/null
+++ b/CAN-binder/libs/bitfield-c/src/canutil/read.c
@@ -0,0 +1,34 @@
+#include <canutil/read.h>
+#include <bitfield/bitfield.h>
+#include <bitfield/8byte.h>
+
+static float decode_float(uint64_t raw, float factor, float offset) {
+ return raw * factor + offset;
+}
+
+float eightbyte_parse_float(uint64_t data, uint8_t bit_offset, uint8_t bit_size,
+ float factor, float offset) {
+ return decode_float(eightbyte_get_bitfield(data, bit_offset, bit_size,
+ true), factor, offset);
+}
+
+bool eightbyte_parse_bool(uint64_t data, uint8_t bit_offset, uint8_t bit_size,
+ float factor, float offset) {
+ float value = eightbyte_parse_float(data, bit_offset, bit_size, factor, offset);
+ return value == 0.0 ? false : true;
+}
+
+float bitfield_parse_float(const uint8_t source[], const uint16_t source_length,
+ const uint8_t bit_offset, const uint8_t bit_size, const float factor,
+ const float offset) {
+ return decode_float(get_bitfield(source, source_length, bit_offset, bit_size),
+ factor, offset);
+}
+
+bool bitfield_parse_bool(const uint8_t source[], const uint16_t source_length,
+ const uint8_t bit_offset, const uint8_t bit_size, const float factor,
+ const float offset) {
+ float value = bitfield_parse_float(source, source_length, bit_offset,
+ bit_size, factor, offset);
+ return value == 0.0 ? false : true;
+}
diff --git a/CAN-binder/libs/bitfield-c/src/canutil/read.h b/CAN-binder/libs/bitfield-c/src/canutil/read.h
new file mode 100644
index 00000000..86fea785
--- /dev/null
+++ b/CAN-binder/libs/bitfield-c/src/canutil/read.h
@@ -0,0 +1,81 @@
+#ifndef __READ_H__
+#define __READ_H__
+
+#include <stdint.h>
+#include <stdbool.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Public: Parse a CAN signal from a message and apply required transformation.
+ *
+ * source - the payload containing the signal.
+ * bit_offset - the starting bit for the signal.
+ * bit_size - the width of the signal.
+ * factor - the transformation factor for the signal value, applied after
+ * pulling out the bit field. Use 1.0 for no factor.
+ * offset - the transformation offset for the signal value, applied after
+ * pulling out the bit field. Use 0 for no offset.
+ *
+ * Returns the decoded and transformed value of the signal.
+ */
+float eightbyte_parse_float(const uint64_t source, const uint8_t bit_offset,
+ const uint8_t bit_size, const float factor, const float offset);
+
+/* Public: Parse a CAN signal from a message storage as a byte array and apply
+ * required transformation.
+ *
+ * source - the payload containing the signal.
+ * source_size - the size of the payload in bytes.
+ * bit_offset - the starting bit for the signal.
+ * bit_size - the width of the signal.
+ * factor - the transformation factor for the signal value, applied after
+ * pulling out the bit field. Use 1.0 for no factor.
+ * offset - the transformation offset for the signal value, applied after
+ * pulling out the bit field. Use 0 for no offset.
+ *
+ * Returns the decoded and transformed value of the signal.
+ */
+float bitfield_parse_float(const uint8_t source[], const uint16_t source_size,
+ const uint8_t bit_offset, const uint8_t bit_size, const float factor,
+ const float offset);
+
+/* Public: Parse a CAN signal from a message and interpret it as a boolean.
+ *
+ * source - the payload containing the signal.
+ * bit_offset - the starting bit for the signal.
+ * bit_size - the width of the signal.
+ * factor - the transformation factor for the signal value, applied after
+ * pulling out the bit field. Use 1.0 for no factor.
+ * offset - the transformation offset for the signal value, applied after
+ * pulling out the bit field. Use 0 for no offset.
+ *
+ * Returns false if the value was 0, otherwise true.
+ */
+bool eightbyte_parse_bool(uint64_t source, uint8_t bit_offset, uint8_t bit_size,
+ float factor, float offset);
+
+/* Public: Parse a CAN signal from a message storage as a byte array and
+ * interpret it as a boolean.
+ *
+ * source - the payload containing the signal.
+ * source_size - the size of the payload in bytes.
+ * bit_offset - the starting bit for the signal.
+ * bit_size - the width of the signal.
+ * factor - the transformation factor for the signal value, applied after
+ * pulling out the bit field. Use 1.0 for no factor.
+ * offset - the transformation offset for the signal value, applied after
+ * pulling out the bit field. Use 0 for no offset.
+ *
+ * Returns false if the value was 0, otherwise true.
+ */
+bool bitfield_parse_bool(const uint8_t source[], const uint16_t source_size,
+ const uint8_t bit_offset, const uint8_t bit_size, const float factor,
+ const float offset);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __READ_H__
diff --git a/CAN-binder/libs/bitfield-c/src/canutil/write.c b/CAN-binder/libs/bitfield-c/src/canutil/write.c
new file mode 100644
index 00000000..7f3a3e04
--- /dev/null
+++ b/CAN-binder/libs/bitfield-c/src/canutil/write.c
@@ -0,0 +1,48 @@
+#include <canutil/write.h>
+#include <bitfield/bitfield.h>
+#include <bitfield/8byte.h>
+
+uint64_t float_to_fixed_point(const float value, const float factor,
+ const float offset) {
+ float raw = (value - offset) / factor;
+ if(raw > 0) {
+ // round up to avoid losing precision when we cast to an int
+ // TODO do we need a way to encode an int back to a signal without any
+ // rounding?
+ raw += 0.5;
+ }
+ return (uint64_t)raw;
+}
+
+uint64_t eightbyte_encode_float(float value, uint8_t bit_offset, uint8_t bit_size,
+ float factor, float offset) {
+ uint64_t result = 0;
+ if(!eightbyte_set_bitfield(float_to_fixed_point(value, factor, offset),
+ bit_offset, bit_size, &result)) {
+ // debug("%f will not fit in a %d bit field", value, bit_size);
+ }
+ return result;
+}
+
+uint64_t eightbyte_encode_bool(const bool value, const uint8_t bit_offset,
+ const uint8_t bit_size) {
+ return eightbyte_encode_float(value, bit_offset, bit_size, 1.0, 0);
+}
+
+bool bitfield_encode_float(const float value, const uint8_t bit_offset,
+ const uint8_t bit_size, const float factor, const float offset,
+ uint8_t destination[], const uint8_t destination_length) {
+ if(!set_bitfield(float_to_fixed_point(value, factor, offset), bit_offset,
+ bit_size, destination, destination_length)) {
+ // debug("%f will not fit in a %d bit field", value, bit_size);
+ return false;
+ }
+ return true;
+}
+
+bool bitfield_encode_bool(const bool value, const uint8_t bit_offset,
+ const uint8_t bit_size, uint8_t destination[],
+ const uint16_t destination_length) {
+ return bitfield_encode_float(value, bit_offset, bit_size, 1.0, 0,
+ destination, destination_length);
+}
diff --git a/CAN-binder/libs/bitfield-c/src/canutil/write.h b/CAN-binder/libs/bitfield-c/src/canutil/write.h
new file mode 100644
index 00000000..c2bef20e
--- /dev/null
+++ b/CAN-binder/libs/bitfield-c/src/canutil/write.h
@@ -0,0 +1,57 @@
+#ifndef __WRITE_H__
+#define __WRITE_H__
+
+#include <stdint.h>
+#include <stdbool.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Public: Encode a floating point number into a fixed point, fixed bit width
+ * field in a bit array.
+ *
+ * value - the floating point value to encode.
+ * bit_offset - the starting point for the encoded bits in the returned value.
+ * bit_size - The max width of the field in the resulting bit array. If bit_size
+ * isn't big enough to store the fixed point version of the value, the
+ * bitfeld will *not* be set. TODO some error reporting would be nice.
+ * factor - a factor used to transform from floating to fixed point before
+ * encoding. Use 1.0 for no factor.
+ * offset - an offset used to transform from floating to fixed point before
+ * encoding. Use 0 for no offset.
+ *
+ * Returns a big-endian uint64_t with the value encoded as a bitfield.
+ */
+uint64_t eightbyte_encode_float(float value, uint8_t bit_offset,
+ uint8_t bit_size, float factor, float offset);
+
+uint64_t float_to_fixed_point(const float value, const float factor,
+ const float offset);
+
+bool bitfield_encode_float(const float value, const uint8_t bit_offset,
+ const uint8_t bit_size, const float factor, const float offset,
+ uint8_t destination[], const uint8_t destination_length);
+
+/* Public: Encode a boolean into fixed bit width field in a bit array.
+ *
+ * value - the boolean value to encode - true will be 1, false will be 0.
+ * bit_offset - the starting point for the encoded bits in the returned value.
+ * bit_size - The max width of the field in the resulting bit array. If bit_size
+ * isn't big enough to store the fixed point version of the value, the
+ * bitfeld will *not* be set. TODO some error reporting would be nice.
+ *
+ * Returns a big-endian uint64_t with the value encoded as a bitfield.
+ */
+uint64_t eightbyte_encode_bool(const bool value, const uint8_t bit_offset,
+ const uint8_t bit_size);
+
+bool bitfield_encode_bool(const bool value, const uint8_t bit_offset, const
+ uint8_t bit_size, uint8_t destination[],
+ const uint16_t destination_length);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __WRITE_H__
diff --git a/CAN-binder/libs/bitfield-c/tests/8byte_tests.c b/CAN-binder/libs/bitfield-c/tests/8byte_tests.c
new file mode 100644
index 00000000..64554acc
--- /dev/null
+++ b/CAN-binder/libs/bitfield-c/tests/8byte_tests.c
@@ -0,0 +1,261 @@
+#include <check.h>
+#include <stdint.h>
+#include <bitfield/bitfield.h>
+#include <bitfield/8byte.h>
+
+START_TEST (test_large_bitmask)
+{
+ uint64_t result = bitmask(32);
+ fail_if(result != 0xffffffff);
+}
+END_TEST
+
+START_TEST (test_one_bit_not_swapped)
+{
+ uint64_t data = 0x80;
+ uint64_t result = eightbyte_get_bitfield(data, 0, 1, false);
+ fail_if(result == 1);
+}
+END_TEST
+
+START_TEST (test_one_bit)
+{
+ uint64_t data = 0x8000000000000000;
+ uint64_t result = eightbyte_get_bitfield(data, 0, 1, false);
+ fail_unless(result == 0x1,
+ "First bit in 0x%llx was 0x%llx instead of 0x1", data, result);
+}
+END_TEST
+
+START_TEST (test_32_bit_parse)
+{
+ uint64_t data = 0x0402574d555a0401;
+ uint64_t result = eightbyte_get_bitfield(data, 16, 32, false);
+ uint64_t expectedValue = 0x574d555a;
+ fail_unless(result == expectedValue,
+ "Field retrieved in 0x%llx was 0x%llx instead of 0x%llx", data,
+ result, expectedValue);
+}
+END_TEST
+
+START_TEST (test_16_bit_parse)
+{
+ uint64_t data = 0xF34DFCFF00000000;
+ uint64_t result = eightbyte_get_bitfield(data, 16, 16, false);
+ uint64_t expectedValue = 0xFCFF;
+ fail_unless(result == expectedValue,
+ "Field retrieved in 0x%llx was 0x%llx instead of 0x%llx", data,
+ result, expectedValue);
+}
+END_TEST
+
+START_TEST (test_one_byte)
+{
+ uint64_t data = 0xFA00000000000000;
+ uint64_t result = eightbyte_get_bitfield(data, 0, 4, false);
+ fail_unless(result == 0xF,
+ "First nibble in 0x%llx was 0x%llx instead of 0xF", data, result);
+ result = eightbyte_get_bitfield(data, 4, 4, false);
+ fail_unless(result == 0xA,
+ "Second nibble in 0x%llx was 0x%llx instead of 0xA", data, result);
+ result = eightbyte_get_bitfield(data, 0, 8, false);
+ fail_unless(result == 0xFA,
+ "All bits in 0x%llx were 0x%llx instead of 0x%llx", data, result, data);
+}
+END_TEST
+
+START_TEST (test_multi_byte)
+{
+ uint64_t data = 0x12FA000000000000;
+ uint64_t result = eightbyte_get_bitfield(data, 0, 4, false);
+ fail_unless(result == 0x1,
+ "First 4 bits in 0x%llx was 0x%llx instead of 0xF", (data >> 60) & 0xF,
+ result);
+ result = eightbyte_get_bitfield(data, 4, 4, false);
+ fail_unless(result == 0x2,
+ "Second 4 bits in 0x%llx was 0x%llx instead of 0xA", (data >> 56) & 0xF,
+ result);
+ result = eightbyte_get_bitfield(data, 8, 4, false);
+ fail_unless(result == 0xF,
+ "First 4 bits in 0x%llx was 0x%llx instead of 0x1", (data >> 52) & 0xF,
+ result);
+ result = eightbyte_get_bitfield(data, 12, 4, false);
+ fail_unless(result == 0xA,
+ "Second 4 bits in 0x%llx was 0x%llx instead of 0x2", (data >> 48) % 0xF,
+ result);
+}
+END_TEST
+
+START_TEST (test_get_multi_byte)
+{
+ uint64_t data = 0x12FA000000000000;
+ uint64_t result = eightbyte_get_bitfield(data, 0, 9, false);
+ ck_assert_int_eq(result, 0x25);
+}
+END_TEST
+
+START_TEST (test_get_off_byte_boundary)
+{
+ uint64_t data = 0x000012FA00000000;
+ uint64_t result = eightbyte_get_bitfield(data, 12, 8, false);
+ ck_assert_int_eq(result, 0x01);
+} END_TEST
+
+START_TEST (test_set_wont_fit)
+{
+ uint64_t data = 0;
+ fail_if(eightbyte_set_bitfield(100, 0, 1, &data));
+}
+END_TEST
+
+START_TEST (test_set_field)
+{
+ uint64_t data = 0;
+ fail_unless(eightbyte_set_bitfield(1, 0, 1, &data));
+ uint64_t result = eightbyte_get_bitfield(data, 0, 1, false);
+ ck_assert_int_eq(result, 0x1);
+ data = 0;
+ fail_unless(eightbyte_set_bitfield(1, 1, 1, &data));
+ result = eightbyte_get_bitfield(data, 1, 1, false);
+ ck_assert_int_eq(result, 0x1);
+
+ data = 0;
+ fail_unless(eightbyte_set_bitfield(0xf, 3, 4, &data));
+ result = eightbyte_get_bitfield(data, 3, 4, false);
+ ck_assert_int_eq(result, 0xf);
+}
+END_TEST
+
+START_TEST (test_set_doesnt_clobber_existing_data)
+{
+ uint64_t data = 0xFFFC4DF300000000;
+ fail_unless(eightbyte_set_bitfield(0x4fc8, 16, 16, &data));
+ uint64_t result = eightbyte_get_bitfield(data, 16, 16, false);
+ fail_unless(result == 0x4fc8,
+ "Field retrieved in 0x%llx was 0x%llx instead of 0x%x", data, result,
+ 0xc84f);
+
+ data = 0x8000000000000000;
+ fail_unless(eightbyte_set_bitfield(1, 21, 1, &data));
+ fail_unless(data == 0x8000040000000000LLU,
+ "Expected combined value 0x8000040000000000 but got 0x%llx%llx",
+ data >> 32, data);
+}
+END_TEST
+
+START_TEST (test_set_off_byte_boundary)
+{
+ uint64_t data = 0xFFFC4DF300000000;
+ fail_unless(eightbyte_set_bitfield(0x12, 12, 8, &data));
+ uint64_t result = eightbyte_get_bitfield(data, 12, 12, false);
+ ck_assert_int_eq(result,0x12d);
+}
+END_TEST
+
+START_TEST (test_set_odd_number_of_bits)
+{
+ uint64_t data = 0xFFFC4DF300000000LLU;
+ fail_unless(eightbyte_set_bitfield(0x12, 11, 5, &data));
+ uint64_t result = eightbyte_get_bitfield(data, 11, 5, false);
+ fail_unless(result == 0x12,
+ "Field set in 0x%llx%llx%llx%llx was 0x%llx instead of 0x%llx", data, result,
+ 0x12);
+
+ data = 0xFFFC4DF300000000LLU;
+ fail_unless(eightbyte_set_bitfield(0x2, 11, 5, &data));
+ result = eightbyte_get_bitfield(data, 11, 5, false);
+ fail_unless(result == 0x2,
+ "Field set in 0x%llx%llx%llx%llx was 0x%llx instead of 0x%llx", data, result,
+ 0x2);
+}
+END_TEST
+
+START_TEST(test_eightbyte_get_byte)
+{
+ uint64_t data = 0x00000000F34DFCFF;
+ uint8_t result = eightbyte_get_byte(data, 0, false);
+ uint8_t expected = 0x0;
+ ck_assert_int_eq(result, expected);
+
+ result = eightbyte_get_byte(data, 4, false);
+ expected = 0xF3;
+ ck_assert_int_eq(result, expected);
+
+ result = eightbyte_get_byte(data, 5, false);
+ expected = 0x4D;
+ ck_assert_int_eq(result, expected);
+
+ result = eightbyte_get_byte(data, 6, false);
+ expected = 0xFC;
+ ck_assert_int_eq(result, expected);
+
+ result = eightbyte_get_byte(data, 7, false);
+ expected = 0xFF;
+ ck_assert_int_eq(result, expected);
+}
+END_TEST
+
+START_TEST(test_eightbyte_get_nibble)
+{
+ uint64_t data = 0x00000000F34DFCFF;
+ uint8_t result = eightbyte_get_nibble(data, 0, false);
+ uint8_t expected = 0x0;
+ ck_assert_int_eq(result, expected);
+
+ result = eightbyte_get_nibble(data, 2, false);
+ expected = 0x0;
+ ck_assert_int_eq(result, expected);
+
+ result = eightbyte_get_nibble(data, 8, false);
+ expected = 0xF;
+ ck_assert_int_eq(result, expected);
+
+ result = eightbyte_get_nibble(data, 9, false);
+ expected = 0x3;
+ ck_assert_int_eq(result, expected);
+
+ result = eightbyte_get_nibble(data, 10, false);
+ expected = 0x4;
+ ck_assert_int_eq(result, expected);
+
+ result = eightbyte_get_nibble(data, 13, false);
+ expected = 0xC;
+ ck_assert_int_eq(result, expected);
+}
+END_TEST
+
+Suite* bitfieldSuite(void) {
+ Suite* s = suite_create("bitfield");
+ TCase *tc_core = tcase_create("core");
+ tcase_add_test(tc_core, test_large_bitmask);
+ tcase_add_test(tc_core, test_one_bit);
+ tcase_add_test(tc_core, test_one_bit_not_swapped);
+ tcase_add_test(tc_core, test_one_byte);
+ tcase_add_test(tc_core, test_16_bit_parse);
+ tcase_add_test(tc_core, test_32_bit_parse);
+ tcase_add_test(tc_core, test_multi_byte);
+ tcase_add_test(tc_core, test_get_multi_byte);
+ tcase_add_test(tc_core, test_get_off_byte_boundary);
+ tcase_add_test(tc_core, test_set_wont_fit);
+ tcase_add_test(tc_core, test_set_field);
+ tcase_add_test(tc_core, test_set_doesnt_clobber_existing_data);
+ tcase_add_test(tc_core, test_set_off_byte_boundary);
+ tcase_add_test(tc_core, test_set_odd_number_of_bits);
+ tcase_add_test(tc_core, test_eightbyte_get_nibble);
+ tcase_add_test(tc_core, test_eightbyte_get_byte);
+ suite_add_tcase(s, tc_core);
+
+ return s;
+}
+
+int main(void) {
+ int numberFailed;
+ Suite* s = bitfieldSuite();
+ SRunner *sr = srunner_create(s);
+ // Don't fork so we can actually use gdb
+ srunner_set_fork_status(sr, CK_NOFORK);
+ srunner_run_all(sr, CK_NORMAL);
+ numberFailed = srunner_ntests_failed(sr);
+ srunner_free(sr);
+ return (numberFailed == 0) ? 0 : 1;
+}
diff --git a/CAN-binder/libs/bitfield-c/tests/bitfield_tests.c b/CAN-binder/libs/bitfield-c/tests/bitfield_tests.c
new file mode 100644
index 00000000..b8c83b59
--- /dev/null
+++ b/CAN-binder/libs/bitfield-c/tests/bitfield_tests.c
@@ -0,0 +1,132 @@
+#include <check.h>
+#include <stdint.h>
+#include <bitfield/bitfield.h>
+
+START_TEST (test_get_byte)
+{
+ uint8_t data[4] = {0x12, 0x34, 0x56, 0x78};
+ uint8_t result = get_byte(data, sizeof(data), 0);
+ ck_assert_int_eq(result, 0x12);
+ result = get_byte(data, sizeof(data), 3);
+ ck_assert_int_eq(result, 0x78);
+}
+END_TEST
+
+START_TEST (test_set_nibble)
+{
+ uint8_t data[4] = {0};
+ fail_unless(set_nibble(0, 0x1, data, sizeof(data)));
+ fail_unless(set_nibble(1, 0x2, data, sizeof(data)));
+ fail_unless(set_nibble(2, 0x3, data, sizeof(data)));
+ fail_unless(set_nibble(3, 0x4, data, sizeof(data)));
+ fail_unless(set_nibble(4, 0x5, data, sizeof(data)));
+ ck_assert_int_eq(data[0], 0x12);
+ ck_assert_int_eq(data[1], 0x34);
+ ck_assert_int_eq(data[2], 0x50);
+}
+END_TEST
+
+START_TEST (test_set_bitfield)
+{
+ uint8_t data[4] = {0};
+ fail_unless(set_bitfield(0x12, 0, 8, data, sizeof(data)));
+ fail_unless(set_bitfield(bitmask(3), 10, 3, data, sizeof(data)));
+ ck_assert_int_eq(data[0], 0x12);
+ ck_assert_int_eq(data[1], 0x38);
+}
+END_TEST
+
+START_TEST (test_set_bitfield_doesnt_fit)
+{
+ uint8_t data[4] = {0};
+ fail_if(set_bitfield(0xffff, 0, 8, data, sizeof(data)));
+ ck_assert_int_eq(data[0], 0);
+ ck_assert_int_eq(data[1], 0);
+ ck_assert_int_eq(data[2], 0);
+ ck_assert_int_eq(data[3], 0);
+}
+END_TEST
+
+START_TEST (test_get_nibble)
+{
+ uint8_t data[4] = {0x12, 0x34, 0x56, 0x78};
+ uint8_t result = get_nibble(data, sizeof(data), 0);
+ ck_assert_int_eq(result, 0x1);
+ result = get_nibble(data, sizeof(data), 1);
+ ck_assert_int_eq(result, 0x2);
+ result = get_nibble(data, sizeof(data), 2);
+ ck_assert_int_eq(result, 0x3);
+}
+END_TEST
+
+START_TEST (test_get_bits_out_of_range)
+{
+ uint8_t data[4] = {0x12, 0x34, 0x56, 0x78};
+ uint8_t result[4];
+ fail_if(copy_bits_right_aligned(data, sizeof(data), 25, 16, result,
+ sizeof(result)));
+}
+END_TEST
+
+START_TEST (test_get_bits)
+{
+ uint8_t data[4] = {0x12, 0x34, 0x56, 0x78};
+ uint8_t result[4] = {0};
+ fail_unless(copy_bits_right_aligned(data, sizeof(data), 0, 16, result,
+ sizeof(result)));
+ ck_assert_int_eq(result[2], 0x12);
+ ck_assert_int_eq(result[3], 0x34);
+}
+END_TEST
+
+START_TEST (test_copy_bytes)
+{
+ uint8_t data[4] = {0x12, 0x34, 0x56, 0x78};
+ uint8_t result[4] = {0};
+ fail_unless(copy_bytes_right_aligned(data, sizeof(data), 1, 3, result,
+ sizeof(result)));
+ ck_assert_int_eq(result[1], 0x34);
+ ck_assert_int_eq(result[2], 0x56);
+ ck_assert_int_eq(result[3], 0x78);
+}
+END_TEST
+
+START_TEST (test_get_uneven_bits)
+{
+ uint8_t data[4] = {0x12, 0x34, 0x56, 0x78};
+ uint8_t result[4] = {0};
+ fail_unless(copy_bits_right_aligned(data, sizeof(data), 4, 12, result,
+ sizeof(result)));
+ ck_assert_int_eq(result[2], 0x2);
+ ck_assert_int_eq(result[3], 0x34);
+}
+END_TEST
+
+Suite* bitfieldSuite(void) {
+ Suite* s = suite_create("bitfield");
+ TCase *tc_core = tcase_create("core");
+ tcase_add_test(tc_core, test_get_byte);
+ tcase_add_test(tc_core, test_get_nibble);
+ tcase_add_test(tc_core, test_set_nibble);
+ tcase_add_test(tc_core, test_set_bitfield);
+ tcase_add_test(tc_core, test_set_bitfield_doesnt_fit);
+ tcase_add_test(tc_core, test_get_bits);
+ tcase_add_test(tc_core, test_copy_bytes);
+ tcase_add_test(tc_core, test_get_bits_out_of_range);
+ tcase_add_test(tc_core, test_get_uneven_bits);
+ suite_add_tcase(s, tc_core);
+
+ return s;
+}
+
+int main(void) {
+ int numberFailed;
+ Suite* s = bitfieldSuite();
+ SRunner *sr = srunner_create(s);
+ // Don't fork so we can actually use gdb
+ srunner_set_fork_status(sr, CK_NOFORK);
+ srunner_run_all(sr, CK_NORMAL);
+ numberFailed = srunner_ntests_failed(sr);
+ srunner_free(sr);
+ return (numberFailed == 0) ? 0 : 1;
+}
diff --git a/CAN-binder/libs/bitfield-c/tests/read_tests.c b/CAN-binder/libs/bitfield-c/tests/read_tests.c
new file mode 100644
index 00000000..5008cc52
--- /dev/null
+++ b/CAN-binder/libs/bitfield-c/tests/read_tests.c
@@ -0,0 +1,67 @@
+#include <check.h>
+#include <stdint.h>
+#include <canutil/read.h>
+
+const uint64_t BIG_ENDIAN_TEST_DATA = __builtin_bswap64(0xEB00000000000000);
+const uint8_t ARRAY_TEST_DATA[] = {0xEB, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0};
+
+START_TEST (test_eightbyte_parse_float)
+{
+ float result = eightbyte_parse_float(BIG_ENDIAN_TEST_DATA, 2, 4, 1001.0,
+ -30000.0);
+ float correctResult = 0xA * 1001.0 - 30000.0;
+ fail_unless(result == correctResult,
+ "parse is incorrect: %f but should be %f", result, correctResult);
+}
+END_TEST
+
+START_TEST (test_eightbyte_parse_bool)
+{
+ bool result = eightbyte_parse_bool(BIG_ENDIAN_TEST_DATA, 0, 1, 1.0, 0);
+ bool correctResult = true;
+ fail_unless(result == correctResult,
+ "parse is incorrect: %d but should be %d", result, correctResult);
+}
+END_TEST
+
+START_TEST (test_bitfield_parse_float)
+{
+ float result = bitfield_parse_float(ARRAY_TEST_DATA,
+ sizeof(ARRAY_TEST_DATA), 2, 4, 1001.0, -30000.0);
+ float correctResult = 0xA * 1001.0 - 30000.0;
+ fail_unless(result == correctResult,
+ "parse is incorrect: %f but should be %f", result, correctResult);
+}
+END_TEST
+
+START_TEST (test_bitfield_parse_bool)
+{
+ fail_unless(bitfield_parse_bool(ARRAY_TEST_DATA, sizeof(ARRAY_TEST_DATA),
+ 0, 1, 1.0, 0));
+}
+END_TEST
+
+Suite* canreadSuite(void) {
+ Suite* s = suite_create("read");
+ TCase *tc_core = tcase_create("core");
+ tcase_add_checked_fixture(tc_core, NULL, NULL);
+ tcase_add_test(tc_core, test_eightbyte_parse_float);
+ tcase_add_test(tc_core, test_eightbyte_parse_bool);
+ tcase_add_test(tc_core, test_bitfield_parse_float);
+ tcase_add_test(tc_core, test_bitfield_parse_bool);
+ suite_add_tcase(s, tc_core);
+
+ return s;
+}
+
+int main(void) {
+ int numberFailed;
+ Suite* s = canreadSuite();
+ SRunner *sr = srunner_create(s);
+ // Don't fork so we can actually use gdb
+ srunner_set_fork_status(sr, CK_NOFORK);
+ srunner_run_all(sr, CK_NORMAL);
+ numberFailed = srunner_ntests_failed(sr);
+ srunner_free(sr);
+ return (numberFailed == 0) ? 0 : 1;
+}
diff --git a/CAN-binder/libs/bitfield-c/tests/write_tests.c b/CAN-binder/libs/bitfield-c/tests/write_tests.c
new file mode 100644
index 00000000..4d5d8fc3
--- /dev/null
+++ b/CAN-binder/libs/bitfield-c/tests/write_tests.c
@@ -0,0 +1,105 @@
+#include <canutil/write.h>
+#include <check.h>
+#include <stdint.h>
+
+START_TEST (test_eightbyte_encode_float_precision)
+{
+ uint64_t value = eightbyte_encode_float(50, 2, 19, 0.001, 0);
+ ck_assert_int_eq(value, 0x061a800000000000LLU);
+}
+END_TEST
+
+START_TEST (test_eightbyte_encode_float)
+{
+ uint64_t value = eightbyte_encode_float(0, 1, 3, 1, 0);
+ ck_assert_int_eq(value, 0);
+
+ value = eightbyte_encode_float(1, 1, 3, 1, 0);
+ ck_assert_int_eq(value, 0x1000000000000000LLU);
+}
+END_TEST
+
+START_TEST (test_eightbyte_encode_bool)
+{
+ uint64_t value = eightbyte_encode_bool(true, 1, 3);
+ ck_assert_int_eq(value, 0x1000000000000000LLU);
+ value = eightbyte_encode_bool(false, 1, 3);
+ ck_assert_int_eq(value, 0x0000000000000000LLU);
+}
+END_TEST
+
+START_TEST (test_bitfield_encode_float)
+{
+ uint8_t data[8] = {0};
+ bitfield_encode_float(0, 1, 3, 1, 0, data, sizeof(data));
+ ck_assert_int_eq(data[0], 0);
+ ck_assert_int_eq(data[1], 0);
+ ck_assert_int_eq(data[2], 0);
+ ck_assert_int_eq(data[3], 0);
+ ck_assert_int_eq(data[4], 0);
+ ck_assert_int_eq(data[5], 0);
+ ck_assert_int_eq(data[6], 0);
+ ck_assert_int_eq(data[7], 0);
+
+ bitfield_encode_float(1, 1, 3, 1, 0, data, sizeof(data));
+ ck_assert_int_eq(data[0], 0x10);
+ ck_assert_int_eq(data[1], 0);
+ ck_assert_int_eq(data[2], 0);
+ ck_assert_int_eq(data[3], 0);
+ ck_assert_int_eq(data[4], 0);
+ ck_assert_int_eq(data[5], 0);
+ ck_assert_int_eq(data[6], 0);
+ ck_assert_int_eq(data[7], 0);
+}
+END_TEST
+
+START_TEST (test_bitfield_encode_bool)
+{
+ uint8_t data[8] = {0};
+ bitfield_encode_bool(true, 1, 3, data, sizeof(data));
+ ck_assert_int_eq(data[0], 0x10);
+ ck_assert_int_eq(data[1], 0);
+ ck_assert_int_eq(data[2], 0);
+ ck_assert_int_eq(data[3], 0);
+ ck_assert_int_eq(data[4], 0);
+ ck_assert_int_eq(data[5], 0);
+ ck_assert_int_eq(data[6], 0);
+ ck_assert_int_eq(data[7], 0);
+
+ bitfield_encode_bool(false, 1, 3, data, sizeof(data));
+ ck_assert_int_eq(data[0], 0);
+ ck_assert_int_eq(data[1], 0);
+ ck_assert_int_eq(data[2], 0);
+ ck_assert_int_eq(data[3], 0);
+ ck_assert_int_eq(data[4], 0);
+ ck_assert_int_eq(data[5], 0);
+ ck_assert_int_eq(data[6], 0);
+ ck_assert_int_eq(data[7], 0);
+}
+END_TEST
+
+Suite* canwriteSuite(void) {
+ Suite* s = suite_create("write");
+ TCase *tc_core = tcase_create("core");
+ tcase_add_checked_fixture(tc_core, NULL, NULL);
+ tcase_add_test(tc_core, test_eightbyte_encode_float);
+ tcase_add_test(tc_core, test_eightbyte_encode_bool);
+ tcase_add_test(tc_core, test_eightbyte_encode_float_precision);
+ tcase_add_test(tc_core, test_bitfield_encode_float);
+ tcase_add_test(tc_core, test_bitfield_encode_bool);
+ suite_add_tcase(s, tc_core);
+
+ return s;
+}
+
+int main(void) {
+ int numberFailed;
+ Suite* s = canwriteSuite();
+ SRunner *sr = srunner_create(s);
+ // Don't fork so we can actually use gdb
+ srunner_set_fork_status(sr, CK_NOFORK);
+ srunner_run_all(sr, CK_NORMAL);
+ numberFailed = srunner_ntests_failed(sr);
+ srunner_free(sr);
+ return (numberFailed == 0) ? 0 : 1;
+}
diff --git a/CAN-binder/libs/ini-config/ini-config.cpp b/CAN-binder/libs/ini-config/ini-config.cpp
new file mode 100644
index 00000000..631a0201
--- /dev/null
+++ b/CAN-binder/libs/ini-config/ini-config.cpp
@@ -0,0 +1,95 @@
+/*
+ * Copyright (C) 2015, 2016 ,2017 "IoT.bzh"
+ * Author "Loïc Collignon" <loic.collignon@iot.bzh>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "ini-config.hpp"
+
+bool starts_with(const std::string& text, const std::string& token)
+{
+ if(text.length() < token.length()) return false;
+ return (text.compare(0, token.length(), token) == 0);
+}
+
+void ini_config::read_file(const std::string& filename)
+{
+ std::ifstream f(filename);
+ if (f)
+ {
+ std::regex r_section("^\\s*\\[([^\\]]+)\\]\\s*(#.*)?$");
+ std::regex r_key("^\\s*([^\\s]+)\\s*=\\s*\"([^\"]+)\"\\s*(#.*)?$");
+ std::string current_section;
+ std::string line;
+ while (std::getline(f, line))
+ {
+ std::smatch mr;
+
+ switch (qualify(line))
+ {
+ case line_type::section:
+ if (std::regex_match(line, mr, r_section) && mr.size() >= 2 && mr[1].matched)
+ {
+ current_section = mr[1].str();
+ }
+ break;
+ case line_type::key:
+ if(std::regex_match(line, mr, r_key) && mr.size() >= 2 && mr[1].matched)
+ {
+ std::string key = current_section + '/' + mr[1].str();
+ config_[key] = (mr.size() >= 3 && mr[2].matched) ? mr[2].str() : "";
+ }
+ break;
+ case line_type::ignore:
+ break;
+ }
+ }
+ }
+}
+
+std::map<std::string, std::string> ini_config::get_keys(const std::string& section)
+{
+ std::map<std::string, std::string> ret;
+
+ std::string prefix = section + '/';
+ for(auto i = config_.begin();
+ i != config_.end();
+ ++i)
+ {
+ if (starts_with(i->first, prefix))
+ {
+ ret[i->first] = i->second;
+ }
+ }
+ return ret;
+}
+
+std::string ini_config::get_value(const std::string& section, const std::string& key)
+{
+ return config_[section + '/' + key];
+}
+
+ini_config::line_type ini_config::qualify(std::string& line)
+{
+ if (line.size())
+ {
+ for (std::string::value_type c : line)
+ {
+ if (c == '#') return line_type::ignore;
+ if (c == '[') return line_type::section;
+ if (!std::isspace(c, std::locale("C"))) return line_type::key;
+ }
+ }
+ return line_type::ignore;
+} \ No newline at end of file
diff --git a/CAN-binder/libs/ini-config/ini-config.hpp b/CAN-binder/libs/ini-config/ini-config.hpp
new file mode 100644
index 00000000..3a154547
--- /dev/null
+++ b/CAN-binder/libs/ini-config/ini-config.hpp
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2015, 2016 ,2017 "IoT.bzh"
+ * Author "Loïc Collignon" <loic.collignon@iot.bzh>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef INI_CONFIG_HPP
+#define INI_CONFIG_HPP
+
+#include <string>
+#include <fstream>
+#include <map>
+#include <regex>
+#include <algorithm>
+
+// Représente un fichier de configuration.
+class ini_config
+{
+public:
+ using map = std::map<std::string, std::string>;
+
+ void read_file(const std::string& filename);
+
+ map get_keys(const std::string& section);
+ std::string get_value(const std::string& section, const std::string& key);
+
+ typename map::size_type size() const { return config_.size(); }
+ typename map::iterator begin() { return config_.begin(); }
+ typename map::iterator end() { return config_.end(); }
+ typename map::const_iterator cbegin() const { return config_.cbegin(); }
+ typename map::const_iterator cend() const { return config_.cend(); }
+ typename map::reverse_iterator rbegin() { return config_.rbegin(); }
+ typename map::reverse_iterator rend() { return config_.rend(); }
+ typename map::const_reverse_iterator crbegin() const { return config_.crbegin(); }
+ typename map::const_reverse_iterator crend() const { return config_.crend(); }
+
+private:
+ map config_;
+
+ enum class line_type
+ {
+ ignore = 0,
+ section = 1,
+ key = 2
+ };
+
+ line_type qualify(std::string& line);
+};
+
+#endif // INI_CONFIG_HPP
diff --git a/CAN-binder/libs/isotp-c/.gitignore b/CAN-binder/libs/isotp-c/.gitignore
new file mode 100644
index 00000000..96a3694f
--- /dev/null
+++ b/CAN-binder/libs/isotp-c/.gitignore
@@ -0,0 +1,6 @@
+*.o
+.DS_Store
+*~
+*.bin
+*.gcno
+build
diff --git a/CAN-binder/libs/isotp-c/.gitmodules b/CAN-binder/libs/isotp-c/.gitmodules
new file mode 100644
index 00000000..aae6d232
--- /dev/null
+++ b/CAN-binder/libs/isotp-c/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "deps/canutil"]
+ path = deps/bitfield-c
+ url = https://github.com/openxc/canutil
diff --git a/CAN-binder/libs/isotp-c/.travis.yml b/CAN-binder/libs/isotp-c/.travis.yml
new file mode 100644
index 00000000..31bfdeb3
--- /dev/null
+++ b/CAN-binder/libs/isotp-c/.travis.yml
@@ -0,0 +1,8 @@
+language: c
+compiler:
+ - gcc
+script: make test
+before_install:
+ - git submodule update --init
+ - sudo apt-get update -qq
+ - sudo apt-get install check
diff --git a/CAN-binder/libs/isotp-c/CHANGELOG.mkd b/CAN-binder/libs/isotp-c/CHANGELOG.mkd
new file mode 100644
index 00000000..e6fd5cc0
--- /dev/null
+++ b/CAN-binder/libs/isotp-c/CHANGELOG.mkd
@@ -0,0 +1,10 @@
+# ISO 15765-2 Support Library in C
+
+## v0.2
+
+* Add multi-frame support for diagnostic responses. An IsoTpMessage payload is
+ currently limited to 256 bytes.
+
+## v0.1
+
+* Initial release
diff --git a/CAN-binder/libs/isotp-c/LICENSE b/CAN-binder/libs/isotp-c/LICENSE
new file mode 100644
index 00000000..330d61f4
--- /dev/null
+++ b/CAN-binder/libs/isotp-c/LICENSE
@@ -0,0 +1,24 @@
+Copyright (c) 2013 Ford Motor Company
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the name of the <organization> nor the
+ names of its contributors may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/CAN-binder/libs/isotp-c/Makefile b/CAN-binder/libs/isotp-c/Makefile
new file mode 100644
index 00000000..90165ba6
--- /dev/null
+++ b/CAN-binder/libs/isotp-c/Makefile
@@ -0,0 +1,56 @@
+CC = gcc
+INCLUDES = -Isrc -Ideps/bitfield-c/src
+CFLAGS = $(INCLUDES) -c -Wall -Werror -g -ggdb -std=gnu99 -coverage
+LDFLAGS = -coverage
+LDLIBS = -lcheck -lm -lrt -lpthread
+
+TEST_DIR = tests
+TEST_OBJDIR = build
+
+# Guard against \r\n line endings only in Cygwin
+OSTYPE := $(shell uname)
+ifneq ($(OSTYPE),Darwin)
+ OSTYPE := $(shell uname -o)
+ ifeq ($(OSTYPE),Cygwin)
+ TEST_SET_OPTS = igncr
+ endif
+endif
+
+LIBS_PATH = deps
+SRC = $(wildcard src/**/*.c)
+SRC += $(wildcard deps/bitfield-c/src/**/*.c)
+OBJS = $(patsubst %,$(TEST_OBJDIR)/%,$(SRC:.c=.o))
+TEST_SRC = $(wildcard $(TEST_DIR)/test_*.c)
+TESTS=$(patsubst %.c,$(TEST_OBJDIR)/%.bin,$(TEST_SRC))
+TEST_SUPPORT_SRC = $(TEST_DIR)/common.c
+TEST_SUPPORT_OBJS = $(patsubst %,$(TEST_OBJDIR)/%,$(TEST_SUPPORT_SRC:.c=.o))
+
+all: $(OBJS)
+
+test: $(TESTS)
+ @set -o $(TEST_SET_OPTS) >/dev/null 2>&1
+ @export SHELLOPTS
+ @sh runtests.sh $(TEST_OBJDIR)/$(TEST_DIR)
+
+COVERAGE_INFO_FILENAME = coverage.info
+COVERAGE_INFO_PATH = $(TEST_OBJDIR)/$(COVERAGE_INFO_FILENAME)
+coverage:
+ @lcov --base-directory . --directory src --zerocounters -q
+ @make clean
+ @make test
+ @lcov --base-directory . --directory $(TEST_OBJDIR) -c -o $(TEST_OBJDIR)/coverage.info
+ @lcov --remove $(COVERAGE_INFO_PATH) "$(LIBS_PATH)/bitfield-c/*" -o $(COVERAGE_INFO_PATH)
+ @genhtml -o $(TEST_OBJDIR)/coverage -t "isotp-c test coverage" --num-spaces 4 $(COVERAGE_INFO_PATH)
+ @$(BROWSER) $(TEST_OBJDIR)/coverage/index.html
+ @echo "$(GREEN)Coverage information generated in $(TEST_OBJDIR)/coverage/index.html.$(COLOR_RESET)"
+
+$(TEST_OBJDIR)/%.o: %.c
+ @mkdir -p $(dir $@)
+ $(CC) $(CFLAGS) $(CC_SYMBOLS) $(INCLUDES) -o $@ $<
+
+$(TEST_OBJDIR)/%.bin: $(TEST_OBJDIR)/%.o $(OBJS) $(TEST_SUPPORT_OBJS)
+ @mkdir -p $(dir $@)
+ $(CC) $(LDFLAGS) $(CC_SYMBOLS) $(INCLUDES) -o $@ $^ $(LDLIBS)
+
+clean:
+ rm -rf $(TEST_OBJDIR)
diff --git a/CAN-binder/libs/isotp-c/README.mkd b/CAN-binder/libs/isotp-c/README.mkd
new file mode 100644
index 00000000..98030483
--- /dev/null
+++ b/CAN-binder/libs/isotp-c/README.mkd
@@ -0,0 +1,142 @@
+ISO-TP (ISO 15765-2) Support Library in C
+================================
+
+This is a platform agnostic C library that implements the ISO 15765-2 (also
+known as ISO-TP) protocol, which runs over a CAN bus. Quoting Wikipedia:
+
+>ISO 15765-2, or ISO-TP, is an international standard for sending data packets
+>over a CAN-Bus. The protocol allows for the transport of messages that exceed
+>the eight byte maximum payload of CAN frames. ISO-TP segments longer messages
+>into multiple frames, adding metadata that allows the interpretation of
+>individual frames and reassembly into a complete message packet by the
+>recipient. It can carry up to 4095 bytes of payload per message packet.
+
+This library doesn't assume anything about the source of the ISO-TP messages or
+the underlying interface to CAN. It uses dependency injection to give you
+complete control.
+
+The current version supports *only single frame ISO-TP messages*. This is fine
+for OBD-II diagnostic messages, for example, but this library needs some
+additional work before it can support sending larger messages.
+
+## Usage
+
+First, create some shim functions to let this library use your lower level
+system:
+
+ // required, this must send a single CAN message with the given arbitration
+ // ID (i.e. the CAN message ID) and data. The size will never be more than 8
+ // bytes.
+ void send_can(const uint16_t arbitration_id, const uint8_t* data,
+ const uint8_t size) {
+ ...
+ }
+
+ // optional, provide to receive debugging log messages
+ void debug(const char* format, ...) {
+ ...
+ }
+
+
+ // not used in the current version
+ void set_timer(uint16_t time_ms, void (*callback)) {
+ ...
+ }
+
+With your shims in place, create an IsoTpShims object to pass them around:
+
+ IsoTpShims shims = isotp_init_shims(debug, send_can, set_timer);
+
+### API
+
+With your shims in hand, send an ISO-TP message:
+
+ // Optional: This is your callback that will be called when the message is
+ // completely sent. If it was single frame (the only type supported right
+ // now), this will be called immediately.
+ void message_sent(const IsoTpMessage* message, const bool success) {
+ // You received the message! Do something with it.
+ }
+
+ IsoTpSendHandle handle = isotp_send(&shims, 0x100, NULL, 0, message_sent);
+
+ if(handle.completed) {
+ if(!handle.success) {
+ // something happened and it already failed - possibly we aren't able to
+ // send CAN messages
+ return;
+ } else {
+ // If the message fit in a single frame, it's already been sent
+ // and you're done
+ }
+ } else {
+ while(true) {
+ // Continue to read from CAN, passing off each message to the handle
+ // this will return true when the message is completely sent (which
+ // may take more than one call if it was multi frame and we're waiting
+ // on flow control responses from the receiver)
+ bool complete = isotp_continue_send(&shims, &handle, 0x100, data, size);
+
+ if(complete && handle.completed) {
+ if(handle.success) {
+ // All frames of the message have now been sent, following
+ // whatever flow control feedback it got from the receiver
+ } else {
+ // the message was unable to be sent and we bailed - fatal
+ // error!
+ }
+ }
+ }
+ }
+
+Finally, receive an ISO-TP message:
+
+ // Optional: This is your callback for when a complete ISO-TP message is
+ // received at the arbitration ID you specify. The completed message is
+ // also returned by isotp_continue_receive, which can sometimes be more
+ // useful since you have more context.
+ void message_received(const IsoTpMessage* message) {
+ }
+
+ IsoTpReceiveHandle handle = isotp_receive(&shims, 0x100, message_received);
+ if(!handle.success) {
+ // something happened and it already failed - possibly we aren't able to
+ // send CAN messages
+ } else {
+ while(true) {
+ // Continue to read from CAN, passing off each message to the handle
+ IsoTpMessage message = isotp_continue_receive(&shims, &handle, 0x100, data, size);
+
+ if(message.completed && handle.completed) {
+ if(handle.success) {
+ // A message has been received successfully
+ } else {
+ // Fatal error - we weren't able to receive a message and
+ // gave up trying. A message using flow control may have
+ // timed out.
+ }
+ }
+ }
+ }
+
+## Testing
+
+The library includes a test suite that uses the `check` C unit test library.
+
+ $ make test
+
+You can also see the test coverage if you have `lcov` installed and the
+`BROWSER` environment variable set to your choice of web browsers:
+
+ $ BROWSER=google-chrome-stable make coverage
+
+## Authors
+
+* Chris Peplin cpeplin@ford.com
+* David Boll dboll2@ford.com (the inspiration for the library's API is from David)
+
+## License
+
+Copyright (c) 2013 Ford Motor Company
+
+Licensed under the BSD license.
diff --git a/CAN-binder/libs/isotp-c/deps/bitfield-c b/CAN-binder/libs/isotp-c/deps/bitfield-c
new file mode 160000
+Subproject 7f1d5473842361f97fef886bc4e98949ecf853b
diff --git a/CAN-binder/libs/isotp-c/runtests.sh b/CAN-binder/libs/isotp-c/runtests.sh
new file mode 100644
index 00000000..4781636b
--- /dev/null
+++ b/CAN-binder/libs/isotp-c/runtests.sh
@@ -0,0 +1,17 @@
+echo "Running unit tests:"
+
+for i in $1/*.bin
+do
+ if test -f $i
+ then
+ if ./$i
+ then
+ echo $i PASS
+ else
+ echo "ERROR in test $i:"
+ exit 1
+ fi
+ fi
+done
+
+echo "${txtbld}$(tput setaf 2)All unit tests passed.$(tput sgr0)"
diff --git a/CAN-binder/libs/isotp-c/src/isotp/isotp.c b/CAN-binder/libs/isotp-c/src/isotp/isotp.c
new file mode 100644
index 00000000..ce87f1bd
--- /dev/null
+++ b/CAN-binder/libs/isotp-c/src/isotp/isotp.c
@@ -0,0 +1,32 @@
+#include <isotp/isotp.h>
+#include <bitfield/bitfield.h>
+#include <inttypes.h>
+
+/* void isotp_set_timeout(IsoTpHandler* handler, uint16_t timeout_ms) { */
+ /* handler->timeout_ms = timeout_ms; */
+/* } */
+
+IsoTpShims isotp_init_shims(LogShim log, SendCanMessageShim send_can_message,
+ SetTimerShim set_timer) {
+ IsoTpShims shims = {
+ log: log,
+ send_can_message: send_can_message,
+ set_timer: set_timer,
+ frame_padding: ISO_TP_DEFAULT_FRAME_PADDING_STATUS
+ };
+ return shims;
+}
+
+void isotp_message_to_string(const IsoTpMessage* message, char* destination,
+ size_t destination_length) {
+ snprintf(destination, destination_length, "ID: 0x%" SCNd32 ", Payload: 0x%02x%02x%02x%02x%02x%02x%02x%02x",
+ message->arbitration_id,
+ message->payload[0],
+ message->payload[1],
+ message->payload[2],
+ message->payload[3],
+ message->payload[4],
+ message->payload[5],
+ message->payload[6],
+ message->payload[7]);
+}
diff --git a/CAN-binder/libs/isotp-c/src/isotp/isotp.h b/CAN-binder/libs/isotp-c/src/isotp/isotp.h
new file mode 100644
index 00000000..3a3658c7
--- /dev/null
+++ b/CAN-binder/libs/isotp-c/src/isotp/isotp.h
@@ -0,0 +1,41 @@
+#ifndef __ISOTP_H__
+#define __ISOTP_H__
+
+#include <isotp/isotp_types.h>
+#include <isotp/send.h>
+#include <isotp/receive.h>
+#include <stdint.h>
+#include <stdbool.h>
+#include <stdio.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Public: Initialize an IsoTpShims with the given callback functions.
+ *
+ * If any callbacks are not to be used, set them to NULL. For documentation of
+ * the function type signatures, see isotp_types.h. This struct is a handy
+ * encapsulation used to pass the shims around to the various isotp_* functions.
+ *
+ * Returns a struct with the fields initailized to the callbacks.
+ */
+IsoTpShims isotp_init_shims(LogShim log,
+ SendCanMessageShim send_can_message,
+ SetTimerShim set_timer);
+
+/* Public: Render an IsoTpMessage as a string into the given buffer.
+ *
+ * message - the message to convert to a string, for debug logging.
+ * destination - the target string buffer.
+ * destination_length - the size of the destination buffer, i.e. the max size
+ * for the rendered string.
+ */
+void isotp_message_to_string(const IsoTpMessage* message, char* destination,
+ size_t destination_length);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __ISOTP_H__
diff --git a/CAN-binder/libs/isotp-c/src/isotp/isotp_types.h b/CAN-binder/libs/isotp-c/src/isotp/isotp_types.h
new file mode 100644
index 00000000..3b7fd26d
--- /dev/null
+++ b/CAN-binder/libs/isotp-c/src/isotp/isotp_types.h
@@ -0,0 +1,144 @@
+#ifndef __ISOTP_TYPES__
+#define __ISOTP_TYPES__
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <stdio.h>
+
+#define CAN_MESSAGE_BYTE_SIZE 8
+#define MAX_ISO_TP_MESSAGE_SIZE 4096
+// TODO we want to avoid malloc, and we can't be allocated 4K on the stack for
+// each IsoTpMessage, so for now we're setting an artificial max message size
+// here - for most multi-frame use cases, 256 bytes is plenty.
+#define OUR_MAX_ISO_TP_MESSAGE_SIZE 127
+
+/* Private: IsoTp nibble specifics for PCI and Payload.
+ */
+#define PCI_NIBBLE_INDEX 0
+#define PAYLOAD_LENGTH_NIBBLE_INDEX 1
+#define PAYLOAD_BYTE_INDEX 1
+
+/* Private: The default timeout to use when waiting for a response during a
+ * multi-frame send or receive.
+ */
+#define ISO_TP_DEFAULT_RESPONSE_TIMEOUT 100
+
+/* Private: Determines if by default, padding is added to ISO-TP message frames.
+ */
+#define ISO_TP_DEFAULT_FRAME_PADDING_STATUS true
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Public: A container for a sent or received ISO-TP message.
+ *
+ * completed - An IsoTpMessage is the return value from a few functions - this
+ * attribute will be true if the message is actually completely received.
+ * If the function returns but is only partially through receiving the
+ * message, this will be false, the multi_frame attribute will be true,
+ * and you should not consider the other data to be valid.
+ * multi_frame - Designates the message is being built with multi-frame.
+ * arbitration_id - The arbitration ID of the message.
+ * payload - The optional payload of the message - don't forget to check the
+ * size!
+ * size - The size of the payload. The size will be 0 if there is no payload.
+ */
+typedef struct {
+ const uint32_t arbitration_id;
+ uint8_t payload[OUR_MAX_ISO_TP_MESSAGE_SIZE];
+ uint16_t size;
+ bool completed;
+ bool multi_frame;
+} IsoTpMessage;
+
+/* Public: The type signature for an optional logging function, if the user
+ * wishes to provide one. It should print, store or otherwise display the
+ * message.
+ *
+ * message - A format string to log using the given parameters.
+ * ... (vargs) - the parameters for the format string.
+ */
+typedef void (*LogShim)(const char* message, ...);
+/* Public: The type signature for a function to send a single CAN message.
+ *
+ * arbitration_id - The arbitration ID of the message.
+ * data - The data payload for the message. NULL is valid if size is also 0.
+ * size - The size of the data payload, in bytes.
+ *
+ * Returns true if the CAN message was sent successfully.
+ */
+typedef bool (*SendCanMessageShim)(const uint32_t arbitration_id,
+ const uint8_t* data, const uint8_t size);
+
+/* Public: The type signature for a... TODO, not used yet.
+ */
+typedef bool (*SetTimerShim)(uint16_t time_ms, void (*callback));
+
+/* Public: The signature for a function to be called when an ISO-TP message has
+ * been completely received.
+ *
+ * message - The received message.
+ */
+typedef void (*IsoTpMessageReceivedHandler)(const IsoTpMessage* message);
+
+/* Public: the signature for a function to be called when an ISO-TP message has
+ * been completely sent, or had a fatal error during sending.
+ *
+ * message - The sent message.
+ * success - True if the message was sent successfully.
+ */
+typedef void (*IsoTpMessageSentHandler)(const IsoTpMessage* message,
+ const bool success);
+
+/* Public: The signature for a function to be called when a CAN frame has been
+ * sent as as part of sending or receive an ISO-TP message.
+ *
+ * This is really only useful for debugging the library itself.
+ *
+ * message - The ISO-TP message that generated this CAN frame.
+ */
+typedef void (*IsoTpCanFrameSentHandler)(const IsoTpMessage* message);
+
+/* Public: A container for the 3 shim functions used by the library to interact
+ * with the wider system.
+ *
+ * Use the isotp_init_shims(...) function to create an instance of this struct.
+ *
+ * By default, all CAN frames sent from this device in the process of an ISO-TP
+ * message are padded out to a complete 8 byte frame. This is often required by
+ * ECUs. To disable this feature, change the 'frame_padding' field to false on
+ * the IsoTpShims object returned from isotp_init_shims(...).
+ *
+ * frame_padding - true if outgoing CAN frames should be padded to a full 8
+ * bytes.
+ */
+typedef struct {
+ LogShim log;
+ SendCanMessageShim send_can_message;
+ SetTimerShim set_timer;
+ bool frame_padding;
+} IsoTpShims;
+
+/* Private: PCI types, for identifying each frame of an ISO-TP message.
+ */
+typedef enum {
+ PCI_SINGLE = 0x0,
+ PCI_FIRST_FRAME = 0x1,
+ PCI_CONSECUTIVE_FRAME = 0x2,
+ PCI_FLOW_CONTROL_FRAME = 0x3
+} IsoTpProtocolControlInformation;
+
+/* Private: PCI flow control identifiers.
+ */
+typedef enum {
+ PCI_FLOW_STATUS_CONTINUE = 0x0,
+ PCI_FLOW_STATUS_WAIT = 0x1,
+ PCI_FLOW_STATUS_OVERFLOW = 0x2
+} IsoTpFlowStatus;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __ISOTP_TYPES__
diff --git a/CAN-binder/libs/isotp-c/src/isotp/receive.c b/CAN-binder/libs/isotp-c/src/isotp/receive.c
new file mode 100644
index 00000000..35b7a2a6
--- /dev/null
+++ b/CAN-binder/libs/isotp-c/src/isotp/receive.c
@@ -0,0 +1,166 @@
+#include <isotp/receive.h>
+#include <isotp/send.h>
+#include <bitfield/bitfield.h>
+#include <string.h>
+#include <stdlib.h>
+
+#define ARBITRATION_ID_OFFSET 0x8
+
+static void isotp_complete_receive(IsoTpReceiveHandle* handle, IsoTpMessage* message) {
+ if(handle->message_received_callback != NULL) {
+ handle->message_received_callback(message);
+ }
+}
+
+bool isotp_handle_single_frame(IsoTpReceiveHandle* handle, IsoTpMessage* message) {
+ isotp_complete_receive(handle, message);
+ return true;
+}
+
+bool isotp_handle_multi_frame(IsoTpReceiveHandle* handle, IsoTpMessage* message) {
+ // call this once all consecutive frames have been received
+ isotp_complete_receive(handle, message);
+ return true;
+}
+
+bool isotp_send_flow_control_frame(IsoTpShims* shims, IsoTpMessage* message) {
+ uint8_t can_data[CAN_MESSAGE_BYTE_SIZE] = {0};
+
+ if(!set_nibble(PCI_NIBBLE_INDEX, PCI_FLOW_CONTROL_FRAME, can_data, sizeof(can_data))) {
+ shims->log("Unable to set PCI in CAN data");
+ return false;
+ }
+
+ shims->send_can_message(message->arbitration_id - ARBITRATION_ID_OFFSET, can_data,
+ shims->frame_padding ? 8 : 1 + message->size);
+ return true;
+}
+
+
+IsoTpReceiveHandle isotp_receive(IsoTpShims* shims,
+ const uint32_t arbitration_id, IsoTpMessageReceivedHandler callback) {
+ IsoTpReceiveHandle handle = {
+ success: false,
+ completed: false,
+ arbitration_id: arbitration_id,
+ message_received_callback: callback
+ };
+
+ return handle;
+}
+
+IsoTpMessage isotp_continue_receive(IsoTpShims* shims,
+ IsoTpReceiveHandle* handle, const uint32_t arbitration_id,
+ const uint8_t data[], const uint8_t size) {
+ IsoTpMessage message = {
+ arbitration_id: arbitration_id,
+ completed: false,
+ multi_frame: false,
+ payload: {0},
+ size: 0
+ };
+
+ if(size < 1) {
+ return message;
+ }
+
+ if(handle->arbitration_id != arbitration_id) {
+ if(shims->log != NULL) {
+ // You may turn this on for debugging, but in normal operation it's
+ // very noisy if you are passing all received CAN messages to this
+ // handler.
+ /* shims->log("The arb ID 0x%x doesn't match the expected rx ID 0x%x", */
+ /* arbitration_id, handle->arbitration_id); */
+ }
+ return message;
+ }
+
+ IsoTpProtocolControlInformation pci = (IsoTpProtocolControlInformation)
+ get_nibble(data, size, 0);
+
+ // TODO this is set up to handle rx a response with a payload, but not to
+ // handle flow control responses for multi frame messages that we're in the
+ // process of sending
+
+ switch(pci) {
+ case PCI_SINGLE: {
+ uint8_t payload_length = get_nibble(data, size, 1);
+
+ if(payload_length > 0) {
+ memcpy(message.payload, &data[1], payload_length);
+ }
+
+ message.size = payload_length;
+ message.completed = true;
+ handle->success = true;
+ handle->completed = true;
+ isotp_handle_single_frame(handle, &message);
+ break;
+ }
+ //If multi-frame, then the payload length is contained in the 12
+ //bits following the first nibble of Byte 0.
+ case PCI_FIRST_FRAME: {
+ uint16_t payload_length = (get_nibble(data, size, 1) << 8) + get_byte(data, size, 1);
+
+ if(payload_length > OUR_MAX_ISO_TP_MESSAGE_SIZE) {
+ shims->log("Multi-frame response too large for receive buffer.");
+ break;
+ }
+
+ //Need to allocate memory for the combination of multi-frame
+ //messages. That way we don't have to allocate 4k of memory
+ //for each multi-frame response.
+ uint8_t* combined_payload = NULL;
+ combined_payload = (uint8_t*)malloc(sizeof(uint8_t)*payload_length);
+
+ if(combined_payload == NULL) {
+ shims->log("Unable to allocate memory for multi-frame response.");
+ break;
+ }
+
+ memcpy(combined_payload, &data[2], CAN_MESSAGE_BYTE_SIZE - 2);
+ handle->receive_buffer = combined_payload;
+ handle->received_buffer_size = CAN_MESSAGE_BYTE_SIZE - 2;
+ handle->incoming_message_size = payload_length;
+
+ message.multi_frame = true;
+ handle->success = false;
+ handle->completed = false;
+ isotp_send_flow_control_frame(shims, &message);
+ break;
+ }
+ case PCI_CONSECUTIVE_FRAME: {
+ uint8_t start_index = handle->received_buffer_size;
+ uint8_t remaining_bytes = handle->incoming_message_size - start_index;
+ message.multi_frame = true;
+
+ if(remaining_bytes > 7) {
+ memcpy(&handle->receive_buffer[start_index], &data[1], CAN_MESSAGE_BYTE_SIZE - 1);
+ handle->received_buffer_size = start_index + 7;
+ } else {
+ memcpy(&handle->receive_buffer[start_index], &data[1], remaining_bytes);
+ handle->received_buffer_size = start_index + remaining_bytes;
+
+ if(handle->received_buffer_size != handle->incoming_message_size){
+ free(handle->receive_buffer);
+ handle->success = false;
+ shims->log("Error capturing all bytes of multi-frame. Freeing memory.");
+ } else {
+ memcpy(message.payload,&handle->receive_buffer[0],handle->incoming_message_size);
+ free(handle->receive_buffer);
+ message.size = handle->incoming_message_size;
+ message.completed = true;
+ shims->log("Successfully captured all of multi-frame. Freeing memory.");
+
+ handle->success = true;
+ handle->completed = true;
+ isotp_handle_multi_frame(handle, &message);
+ }
+ }
+ break;
+ }
+ default:
+ break;
+ }
+ return message;
+}
diff --git a/CAN-binder/libs/isotp-c/src/isotp/receive.h b/CAN-binder/libs/isotp-c/src/isotp/receive.h
new file mode 100644
index 00000000..6788914a
--- /dev/null
+++ b/CAN-binder/libs/isotp-c/src/isotp/receive.h
@@ -0,0 +1,86 @@
+#ifndef __ISOTP_RECEIVE_H__
+#define __ISOTP_RECEIVE_H__
+
+#include <isotp/isotp.h>
+#include <stdint.h>
+#include <stdbool.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Public: A handle for beginning and continuing receiving a single ISO-TP
+ * message - both single and multi-frame.
+ *
+ * Since an ISO-TP message may contain multiple frames, we need to keep a handle
+ * around while waiting for subsequent CAN messages to complete the message.
+ * This struct encapsulates the local state required.
+ *
+ * completed - True if the received message request is completely finished.
+ * success - True if the message request was successful. The value if this field
+ * isn't valid if 'completed' isn't true.
+ */
+typedef struct {
+ bool completed;
+ bool success;
+
+ // Private
+ uint32_t arbitration_id;
+ IsoTpMessageReceivedHandler message_received_callback;
+ uint16_t timeout_ms;
+ // timeout_ms: ISO_TP_DEFAULT_RESPONSE_TIMEOUT,
+ uint8_t* receive_buffer;
+ uint16_t received_buffer_size;
+ uint16_t incoming_message_size;
+ // TODO timer callback for multi frame
+} IsoTpReceiveHandle;
+
+/* Public: Initiate receiving a single ISO-TP message on a particular
+ * arbitration ID.
+ *
+ * Note that no actual CAN data has been received at this point - this just sets
+ * up a handle to be used when new CAN messages to arrive, so they can be parsed
+ * as potential single or multi-frame ISO-TP messages.
+ *
+ * shims - Low-level shims required to send and receive CAN messages, etc.
+ * arbitration_id - The arbitration ID to receive the message on.
+ * callback - an optional function to be called when the message is completely
+ * received (use NULL if no callback required).
+ *
+ * Returns a handle to be used with isotp_continue_receive when a new CAN frame
+ * arrives. The 'completed' field in the returned IsoTpReceiveHandle will be true
+ * when the message is completely sent.
+ */
+IsoTpReceiveHandle isotp_receive(IsoTpShims* shims,
+ const uint32_t arbitration_id, IsoTpMessageReceivedHandler callback);
+
+/* Public: Continue to receive a an ISO-TP message, based on a freshly
+ * received CAN message.
+ *
+ * For a multi-frame ISO-TP message, this function must be called
+ * repeatedly whenever a new CAN message is received in order to complete
+ * receipt.
+ *
+ * TODO does this API work for if we wanted to receive an ISO-TP message and
+ * send our own flow control messages back?
+ *
+ * shims - Low-level shims required to send and receive CAN messages, etc.
+ * handle - An IsoTpReceiveHandle previously returned by isotp_receive(...).
+ * arbitration_id - The arbitration_id of the received CAN message.
+ * data - The data of the received CAN message.
+ * size - The size of the data in the received CAN message.
+ *
+ * Returns an IsoTpMessage with the 'completed' field set to true if a message
+ * was completely received. If 'completed' is false, more CAN frames are
+ * required to complete the messages, or the arbitration ID didn't match this
+ * handle. Keep passing the same handle to this function when CAN frames arrive.
+ */
+IsoTpMessage isotp_continue_receive(IsoTpShims* shims,
+ IsoTpReceiveHandle* handle, const uint32_t arbitration_id,
+ const uint8_t data[], const uint8_t size);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __ISOTP_RECEIVE_H__
diff --git a/CAN-binder/libs/isotp-c/src/isotp/send.c b/CAN-binder/libs/isotp-c/src/isotp/send.c
new file mode 100644
index 00000000..e849bb2c
--- /dev/null
+++ b/CAN-binder/libs/isotp-c/src/isotp/send.c
@@ -0,0 +1,89 @@
+#include <isotp/send.h>
+#include <bitfield/bitfield.h>
+#include <string.h>
+
+#define PCI_NIBBLE_INDEX 0
+#define PAYLOAD_LENGTH_NIBBLE_INDEX 1
+#define PAYLOAD_BYTE_INDEX 1
+
+void isotp_complete_send(IsoTpShims* shims, IsoTpMessage* message,
+ bool status, IsoTpMessageSentHandler callback) {
+ if(callback != NULL) {
+ callback(message, status);
+ }
+}
+
+IsoTpSendHandle isotp_send_single_frame(IsoTpShims* shims, IsoTpMessage* message,
+ IsoTpMessageSentHandler callback) {
+ IsoTpSendHandle handle = {
+ success: false,
+ completed: true
+ };
+
+ uint8_t can_data[CAN_MESSAGE_BYTE_SIZE] = {0};
+ if(!set_nibble(PCI_NIBBLE_INDEX, PCI_SINGLE, can_data, sizeof(can_data))) {
+ shims->log("Unable to set PCI in CAN data");
+ return handle;
+ }
+
+ if(!set_nibble(PAYLOAD_LENGTH_NIBBLE_INDEX, message->size, can_data,
+ sizeof(can_data))) {
+ shims->log("Unable to set payload length in CAN data");
+ return handle;
+ }
+
+ if(message->size > 0) {
+ memcpy(&can_data[1], message->payload, message->size);
+ }
+
+ shims->send_can_message(message->arbitration_id, can_data,
+ shims->frame_padding ? 8 : 1 + message->size);
+ handle.success = true;
+ isotp_complete_send(shims, message, true, callback);
+ return handle;
+}
+
+IsoTpSendHandle isotp_send_multi_frame(IsoTpShims* shims, IsoTpMessage* message,
+ IsoTpMessageSentHandler callback) {
+ // TODO make sure to copy message into a local buffer
+ shims->log("Only single frame messages are supported");
+ IsoTpSendHandle handle = {
+ success: false,
+ completed: true
+ };
+ // TODO need to set sending and receiving arbitration IDs separately if we
+ // can't always just add 0x8 (and I think we can't)
+ return handle;
+}
+
+IsoTpSendHandle isotp_send(IsoTpShims* shims, const uint16_t arbitration_id,
+ const uint8_t payload[], uint16_t size,
+ IsoTpMessageSentHandler callback) {
+ IsoTpMessage message = {
+ arbitration_id: arbitration_id,
+ size: size
+ };
+
+ memcpy(message.payload, payload, size);
+ if(size < 8) {
+ return isotp_send_single_frame(shims, &message, callback);
+ } else {
+ return isotp_send_multi_frame(shims, &message, callback);
+ }
+}
+
+bool isotp_continue_send(IsoTpShims* shims, IsoTpSendHandle* handle,
+ const uint16_t arbitration_id, const uint8_t data[],
+ const uint8_t size) {
+ // TODO this will need to be tested when we add multi-frame support,
+ // which is when it'll be necessary to pass in CAN messages to SENDING
+ // handles.
+ if(handle->receiving_arbitration_id != arbitration_id) {
+ if(shims->log != NULL) {
+ shims->log("The arb ID 0x%x doesn't match the expected tx continuation ID 0x%x",
+ arbitration_id, handle->receiving_arbitration_id);
+ }
+ return false;
+ }
+ return false;
+}
diff --git a/CAN-binder/libs/isotp-c/src/isotp/send.h b/CAN-binder/libs/isotp-c/src/isotp/send.h
new file mode 100644
index 00000000..1af32668
--- /dev/null
+++ b/CAN-binder/libs/isotp-c/src/isotp/send.h
@@ -0,0 +1,86 @@
+#ifndef __ISOTP_SEND_H__
+#define __ISOTP_SEND_H__
+
+#include <isotp/isotp.h>
+#include <stdint.h>
+#include <stdbool.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Public: A handle for beginning and continuing sending a single ISO-TP
+ * message - both single and multi-frame.
+ *
+ * Since an ISO-TP message may contain multiple frames, we need to keep a handle
+ * around while waiting for flow control messages from the receiver.
+ * This struct encapsulates the local state required.
+ *
+ * completed - True if the message was completely sent, or the send was
+ * otherwise cancelled.
+ * success - True if the message send request was successful. The value if this
+ * field isn't valid if 'completed' isn't true.
+ */
+typedef struct {
+ bool completed;
+ bool success;
+
+ // Private
+ uint16_t sending_arbitration_id;
+ uint16_t receiving_arbitration_id;
+ IsoTpMessageSentHandler message_sent_callback;
+ IsoTpCanFrameSentHandler can_frame_sent_callback;
+ // TODO going to need some state here for multi frame messages
+} IsoTpSendHandle;
+
+/* Public: Initiate sending a single ISO-TP message.
+ *
+ * If the message fits in a single ISO-TP frame (i.e. the payload isn't more
+ * than 7 bytes) it will be sent immediately and the returned IsoTpSendHandle's
+ * 'completed' flag will be true.
+ *
+ * For multi-frame messages, see isotp_continue_send(...).
+ *
+ * shims - Low-level shims required to send CAN messages, etc.
+ * arbitration_id - The arbitration ID to send the message on.
+ * payload - The payload for the message. If no payload, NULL is valid is size
+ * is also 0.
+ * size - The size of the payload, or 0 if no payload.
+ * callback - an optional function to be called when the message is completely
+ * sent (use NULL if no callback required).
+ *
+ * Returns a handle to be used with isotp_continue_send to continue sending
+ * multi-frame messages. The 'completed' field in the returned IsoTpSendHandle
+ * will be true when the message is completely sent.
+ */
+IsoTpSendHandle isotp_send(IsoTpShims* shims, const uint16_t arbitration_id,
+ const uint8_t payload[], uint16_t size,
+ IsoTpMessageSentHandler callback);
+
+/* Public: Continue to send a multi-frame ISO-TP message, based on a freshly
+ * received CAN message (potentially from the receiver about flow control).
+ *
+ * For a multi-frame ISO-TP message, this function must be called
+ * repeatedly whenever a new CAN message is received in order to complete the
+ * send. The sender can't just blast everything onto the bus at once - it must
+ * wait for some response from the receiver to know how much to send at once.
+ *
+ * shims - Low-level shims required to send CAN messages, etc.
+ * handle - An IsoTpSendHandle previously returned by isotp_send(...).
+ * arbitration_id - The arbitration_id of the received CAN message.
+ * data - The data of the received CAN message.
+ * size - The size of the data in the received CAN message.
+ *
+ * Returns true if the message was completely sent, or the send was
+ * otherwise cancelled. Check the 'success' field of the handle to see if
+ * it was successful.
+ */
+bool isotp_continue_send(IsoTpShims* shims, IsoTpSendHandle* handle,
+ const uint16_t arbitration_id, const uint8_t data[],
+ const uint8_t size);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __ISOTP_SEND_H__
diff --git a/CAN-binder/libs/isotp-c/tests/common.c b/CAN-binder/libs/isotp-c/tests/common.c
new file mode 100644
index 00000000..a9eed39e
--- /dev/null
+++ b/CAN-binder/libs/isotp-c/tests/common.c
@@ -0,0 +1,91 @@
+#include <isotp/isotp.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+
+IsoTpShims SHIMS;
+IsoTpReceiveHandle RECEIVE_HANDLE;
+
+uint32_t last_can_frame_sent_arb_id;
+uint8_t last_can_payload_sent[8];
+uint8_t last_can_payload_size;
+bool can_frame_was_sent;
+
+bool message_was_received;
+uint32_t last_message_received_arb_id;
+uint8_t last_message_received_payload[OUR_MAX_ISO_TP_MESSAGE_SIZE];
+uint8_t last_message_received_payload_size;
+
+uint32_t last_message_sent_arb_id;
+bool last_message_sent_status;
+uint8_t last_message_sent_payload[OUR_MAX_ISO_TP_MESSAGE_SIZE];
+uint8_t last_message_sent_payload_size;
+
+void debug(const char* format, ...) {
+ va_list args;
+ va_start(args, format);
+ vprintf(format, args);
+ printf("\r\n");
+ va_end(args);
+}
+
+bool mock_send_can(const uint32_t arbitration_id, const uint8_t* data,
+ const uint8_t size) {
+ can_frame_was_sent = true;
+ last_can_frame_sent_arb_id = arbitration_id;
+ last_can_payload_size = size;
+ if(size > 0) {
+ memcpy(last_can_payload_sent, data, size);
+ }
+ return true;
+}
+
+void message_received(const IsoTpMessage* message) {
+ debug("Received ISO-TP message:");
+ message_was_received = true;
+ char str_message[48] = {0};
+ isotp_message_to_string(message, str_message, sizeof(str_message));
+ debug("%s", str_message);
+ last_message_received_arb_id = message->arbitration_id;
+ last_message_received_payload_size = message->size;
+ if(message->size > 0) {
+ memcpy(last_message_received_payload, message->payload, message->size);
+ }
+}
+
+void message_sent(const IsoTpMessage* message, const bool success) {
+ if(success) {
+ debug("Sent ISO-TP message:");
+ } else {
+ debug("Unable to send ISO-TP message:");
+ }
+ char str_message[48] = {0};
+ isotp_message_to_string(message, str_message, sizeof(str_message));
+ debug("%s", str_message);
+
+ last_message_sent_arb_id = message->arbitration_id;
+ last_message_sent_payload_size = message->size;
+ last_message_sent_status = success;
+ if(message->size > 0) {
+ memcpy(last_message_sent_payload, message->payload, message->size);
+ }
+}
+
+void can_frame_sent(const uint32_t arbitration_id, const uint8_t* payload,
+ const uint8_t size) {
+ debug("Sent CAN Frame with arb ID 0x%x and %d bytes", arbitration_id, size);
+}
+
+void setup() {
+ SHIMS = isotp_init_shims(debug, mock_send_can, NULL);
+ RECEIVE_HANDLE = isotp_receive(&SHIMS, 0x2a, message_received);
+ memset(last_message_sent_payload, 0, OUR_MAX_ISO_TP_MESSAGE_SIZE);
+ memset(last_message_received_payload, 0, OUR_MAX_ISO_TP_MESSAGE_SIZE);
+ memset(last_can_payload_sent, 0, sizeof(last_can_payload_sent));
+ last_message_sent_status = false;
+ message_was_received = false;
+ can_frame_was_sent = false;
+}
+
diff --git a/CAN-binder/libs/isotp-c/tests/test_core.c b/CAN-binder/libs/isotp-c/tests/test_core.c
new file mode 100644
index 00000000..73b47af0
--- /dev/null
+++ b/CAN-binder/libs/isotp-c/tests/test_core.c
@@ -0,0 +1,78 @@
+#include <isotp/receive.h>
+#include <check.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+
+extern IsoTpShims SHIMS;
+
+extern void message_sent(const IsoTpMessage* message, const bool success);
+
+extern uint16_t last_can_frame_sent_arb_id;
+extern uint8_t last_can_payload_sent[8];
+extern uint8_t last_can_payload_size;
+extern bool can_frame_was_sent;
+
+extern bool message_was_received;
+extern uint16_t last_message_received_arb_id;
+extern uint8_t last_message_received_payload[];
+extern uint8_t last_message_received_payload_size;
+
+extern uint16_t last_message_sent_arb_id;
+extern bool last_message_sent_status;
+extern uint8_t last_message_sent_payload[];
+extern uint8_t last_message_sent_payload_size;
+
+extern void setup();
+
+START_TEST (test_default_frame_padding_on)
+{
+ ck_assert(SHIMS.frame_padding);
+ const uint8_t payload[] = {0x12, 0x34};
+ uint32_t arbitration_id = 0x2a;
+ isotp_send(&SHIMS, arbitration_id, payload, sizeof(payload), message_sent);
+ ck_assert_int_eq(last_message_sent_arb_id, arbitration_id);
+ fail_unless(last_message_sent_status);
+ ck_assert_int_eq(last_message_sent_payload_size, 2);
+ ck_assert_int_eq(last_can_payload_size, 8);
+
+}
+END_TEST
+
+START_TEST (test_disabled_frame_padding)
+{
+ SHIMS.frame_padding = false;
+ const uint8_t payload[] = {0x12, 0x34};
+ uint32_t arbitration_id = 0x2a;
+ isotp_send(&SHIMS, arbitration_id, payload, sizeof(payload), message_sent);
+ ck_assert_int_eq(last_message_sent_arb_id, arbitration_id);
+ fail_unless(last_message_sent_status);
+ ck_assert_int_eq(last_message_sent_payload_size, 2);
+ ck_assert_int_eq(last_can_payload_size, 3);
+
+}
+END_TEST
+
+Suite* testSuite(void) {
+ Suite* s = suite_create("iso15765");
+ TCase *tc_core = tcase_create("core");
+ tcase_add_checked_fixture(tc_core, setup, NULL);
+ tcase_add_test(tc_core, test_default_frame_padding_on);
+ tcase_add_test(tc_core, test_disabled_frame_padding);
+ suite_add_tcase(s, tc_core);
+
+ return s;
+}
+
+int main(void) {
+ int numberFailed;
+ Suite* s = testSuite();
+ SRunner *sr = srunner_create(s);
+ // Don't fork so we can actually use gdb
+ srunner_set_fork_status(sr, CK_NOFORK);
+ srunner_run_all(sr, CK_NORMAL);
+ numberFailed = srunner_ntests_failed(sr);
+ srunner_free(sr);
+ return (numberFailed == 0) ? 0 : 1;
+}
diff --git a/CAN-binder/libs/isotp-c/tests/test_receive.c b/CAN-binder/libs/isotp-c/tests/test_receive.c
new file mode 100644
index 00000000..607f9061
--- /dev/null
+++ b/CAN-binder/libs/isotp-c/tests/test_receive.c
@@ -0,0 +1,176 @@
+#include <isotp/isotp.h>
+#include <check.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+
+extern IsoTpShims SHIMS;
+extern IsoTpReceiveHandle RECEIVE_HANDLE;
+
+extern void message_sent(const IsoTpMessage* message, const bool success);
+
+extern uint16_t last_can_frame_sent_arb_id;
+extern uint8_t last_can_payload_sent;
+extern uint8_t last_can_payload_size;
+extern bool can_frame_was_sent;
+
+extern bool message_was_received;
+extern uint16_t last_message_received_arb_id;
+extern uint8_t last_message_received_payload[];
+extern uint8_t last_message_received_payload_size;
+
+extern uint16_t last_message_sent_arb_id;
+extern bool last_message_sent_status;
+extern uint8_t last_message_sent_payload[];
+extern uint8_t last_message_sent_payload_size;
+
+extern void setup();
+
+START_TEST (test_receive_empty_can_message)
+{
+ const uint8_t data[CAN_MESSAGE_BYTE_SIZE] = {0};
+ fail_if(RECEIVE_HANDLE.completed);
+ IsoTpMessage message = isotp_continue_receive(&SHIMS, &RECEIVE_HANDLE, 0x100, data, 0);
+ fail_if(message.completed);
+ fail_if(message_was_received);
+}
+END_TEST
+
+START_TEST (test_receive_wrong_id)
+{
+ const uint8_t data[CAN_MESSAGE_BYTE_SIZE] = {0};
+ fail_if(RECEIVE_HANDLE.completed);
+ IsoTpMessage message = isotp_continue_receive(&SHIMS, &RECEIVE_HANDLE, 0x100, data, 1);
+ fail_if(message.completed);
+ fail_if(message_was_received);
+}
+END_TEST
+
+START_TEST (test_receive_bad_pci)
+{
+ // 4 is a reserved number for the PCI field - only 0-3 are allowed
+ const uint8_t data[CAN_MESSAGE_BYTE_SIZE] = {0x40};
+ IsoTpMessage message = isotp_continue_receive(&SHIMS, &RECEIVE_HANDLE, 0x2a, data, 1);
+ fail_if(message.completed);
+ fail_if(message_was_received);
+}
+END_TEST
+
+START_TEST (test_receive_single_frame_empty_payload)
+{
+ const uint8_t data[CAN_MESSAGE_BYTE_SIZE] = {0x00, 0x12, 0x34};
+ fail_if(RECEIVE_HANDLE.completed);
+ IsoTpMessage message = isotp_continue_receive(&SHIMS, &RECEIVE_HANDLE, 0x2a, data, 3);
+ fail_unless(RECEIVE_HANDLE.completed);
+ fail_unless(message.completed);
+ fail_unless(message_was_received);
+ ck_assert_int_eq(last_message_received_arb_id, 0x2a);
+ ck_assert_int_eq(last_message_received_payload_size, 0);
+}
+END_TEST
+
+START_TEST (test_receive_single_frame)
+{
+ const uint8_t data[CAN_MESSAGE_BYTE_SIZE] = {0x02, 0x12, 0x34};
+ IsoTpMessage message = isotp_continue_receive(&SHIMS, &RECEIVE_HANDLE, 0x2a, data, 3);
+ fail_unless(message.completed);
+ fail_unless(message_was_received);
+ ck_assert_int_eq(last_message_received_arb_id, 0x2a);
+ ck_assert_int_eq(last_message_received_payload_size, 2);
+ ck_assert_int_eq(last_message_received_payload[0], 0x12);
+ ck_assert_int_eq(last_message_received_payload[1], 0x34);
+}
+END_TEST
+
+START_TEST (test_receive_multi_frame)
+{
+ const uint8_t data0[CAN_MESSAGE_BYTE_SIZE] = {0x10, 0x14, 0x49, 0x02, 0x01, 0x31, 0x46, 0x4d};
+ IsoTpMessage message0 = isotp_continue_receive(&SHIMS, &RECEIVE_HANDLE, 0x2a, data0, 8);
+ fail_unless(!RECEIVE_HANDLE.completed);
+ fail_unless(!message0.completed);
+ fail_unless(!message_was_received);
+ fail_unless(message0.multi_frame);
+ //make sure flow control message has been sent.
+ ck_assert_int_eq(last_can_frame_sent_arb_id, 0x2a - 8);
+ ck_assert_int_eq(last_can_payload_sent, 0x30);
+
+ const uint8_t data1[CAN_MESSAGE_BYTE_SIZE] = {0x21, 0x43, 0x55, 0x39, 0x4a, 0x39, 0x34, 0x48};
+ IsoTpMessage message1 = isotp_continue_receive(&SHIMS, &RECEIVE_HANDLE, 0x2a, data1, 8);
+ fail_unless(!RECEIVE_HANDLE.completed);
+ fail_unless(!message1.completed);
+ fail_unless(!message_was_received);
+ fail_unless(message1.multi_frame);
+
+ const uint8_t data2[CAN_MESSAGE_BYTE_SIZE] = {0x22, 0x55, 0x41, 0x30, 0x34, 0x35, 0x32, 0x34};
+ IsoTpMessage message2 = isotp_continue_receive(&SHIMS, &RECEIVE_HANDLE, 0x2a, data2, 8);
+ fail_unless(RECEIVE_HANDLE.completed);
+ fail_unless(message2.completed);
+ fail_unless(message_was_received);
+ fail_unless(message2.multi_frame);
+
+ ck_assert_int_eq(last_message_received_arb_id, 0x2a);
+ ck_assert_int_eq(last_message_received_payload_size, 0x14);
+ ck_assert_int_eq(last_message_received_payload[0], 0x49);
+ ck_assert_int_eq(last_message_received_payload[1], 0x02);
+ ck_assert_int_eq(last_message_received_payload[2], 0x01);
+ ck_assert_int_eq(last_message_received_payload[3], 0x31);
+ ck_assert_int_eq(last_message_received_payload[4], 0x46);
+ ck_assert_int_eq(last_message_received_payload[5], 0x4d);
+ ck_assert_int_eq(last_message_received_payload[6], 0x43);
+ ck_assert_int_eq(last_message_received_payload[7], 0x55);
+ ck_assert_int_eq(last_message_received_payload[8], 0x39);
+ ck_assert_int_eq(last_message_received_payload[9], 0x4a);
+ ck_assert_int_eq(last_message_received_payload[10], 0x39);
+ ck_assert_int_eq(last_message_received_payload[11], 0x34);
+ ck_assert_int_eq(last_message_received_payload[12], 0x48);
+ ck_assert_int_eq(last_message_received_payload[13], 0x55);
+ ck_assert_int_eq(last_message_received_payload[14], 0x41);
+ ck_assert_int_eq(last_message_received_payload[15], 0x30);
+ ck_assert_int_eq(last_message_received_payload[16], 0x34);
+ ck_assert_int_eq(last_message_received_payload[17], 0x35);
+ ck_assert_int_eq(last_message_received_payload[18], 0x32);
+ ck_assert_int_eq(last_message_received_payload[19], 0x34);
+}
+END_TEST
+
+START_TEST (test_receive_large_multi_frame)
+{
+ const uint8_t data0[CAN_MESSAGE_BYTE_SIZE] = {0x10, 0x80, 0x49, 0x02, 0x01, 0x31, 0x46, 0x4d};
+ IsoTpMessage message = isotp_continue_receive(&SHIMS, &RECEIVE_HANDLE, 0x2a, data0, 8);
+ //Make sure we don't try to receive messages that are too large and don't send flow control.
+ fail_unless(!can_frame_was_sent);
+ fail_unless(!RECEIVE_HANDLE.completed);
+ fail_unless(!message.completed);
+ fail_unless(!message_was_received);
+ fail_unless(!message.multi_frame);
+}
+END_TEST
+
+Suite* testSuite(void) {
+ Suite* s = suite_create("iso15765");
+ TCase *tc_core = tcase_create("receive");
+ tcase_add_checked_fixture(tc_core, setup, NULL);
+ tcase_add_test(tc_core, test_receive_wrong_id);
+ tcase_add_test(tc_core, test_receive_bad_pci);
+ tcase_add_test(tc_core, test_receive_single_frame);
+ tcase_add_test(tc_core, test_receive_single_frame_empty_payload);
+ tcase_add_test(tc_core, test_receive_empty_can_message);
+ tcase_add_test(tc_core, test_receive_multi_frame);
+ tcase_add_test(tc_core, test_receive_large_multi_frame);
+ suite_add_tcase(s, tc_core);
+
+ return s;
+}
+
+int main(void) {
+ int numberFailed;
+ Suite* s = testSuite();
+ SRunner *sr = srunner_create(s);
+ // Don't fork so we can actually use gdb
+ srunner_set_fork_status(sr, CK_NOFORK);
+ srunner_run_all(sr, CK_NORMAL);
+ numberFailed = srunner_ntests_failed(sr);
+ srunner_free(sr);
+ return (numberFailed == 0) ? 0 : 1;
+}
diff --git a/CAN-binder/libs/isotp-c/tests/test_send.c b/CAN-binder/libs/isotp-c/tests/test_send.c
new file mode 100644
index 00000000..29cf5dec
--- /dev/null
+++ b/CAN-binder/libs/isotp-c/tests/test_send.c
@@ -0,0 +1,103 @@
+#include <isotp/receive.h>
+#include <check.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+
+extern IsoTpShims SHIMS;
+
+extern void message_sent(const IsoTpMessage* message, const bool success);
+
+extern uint16_t last_can_frame_sent_arb_id;
+extern uint8_t last_can_payload_sent[8];
+extern uint8_t last_can_payload_size;
+extern bool can_frame_was_sent;
+
+extern bool message_was_received;
+extern uint16_t last_message_received_arb_id;
+extern uint8_t last_message_received_payload[];
+extern uint8_t last_message_received_payload_size;
+
+extern uint16_t last_message_sent_arb_id;
+extern bool last_message_sent_status;
+extern uint8_t last_message_sent_payload[];
+extern uint8_t last_message_sent_payload_size;
+
+extern void setup();
+
+START_TEST (test_send_empty_payload)
+{
+ SHIMS.frame_padding = false;
+ uint16_t arbitration_id = 0x2a;
+ IsoTpSendHandle handle = isotp_send(&SHIMS, arbitration_id, NULL, 0, message_sent);
+ fail_unless(handle.success);
+ fail_unless(handle.completed);
+ ck_assert_int_eq(last_message_sent_arb_id, arbitration_id);
+ fail_unless(last_message_sent_status);
+ ck_assert_int_eq(last_message_sent_payload[0], '\0');
+ ck_assert_int_eq(last_message_sent_payload_size, 0);
+
+ ck_assert_int_eq(last_can_frame_sent_arb_id, arbitration_id);
+ fail_unless(can_frame_was_sent);
+ ck_assert_int_eq(last_can_payload_sent[0], 0x0);
+ ck_assert_int_eq(last_can_payload_size, 1);
+}
+END_TEST
+
+START_TEST (test_send_single_frame)
+{
+ SHIMS.frame_padding = false;
+ const uint8_t payload[] = {0x12, 0x34};
+ uint16_t arbitration_id = 0x2a;
+ isotp_send(&SHIMS, arbitration_id, payload, sizeof(payload), message_sent);
+ ck_assert_int_eq(last_message_sent_arb_id, arbitration_id);
+ fail_unless(last_message_sent_status);
+ ck_assert_int_eq(last_message_sent_payload[0], 0x12);
+ ck_assert_int_eq(last_message_sent_payload[1], 0x34);
+ ck_assert_int_eq(last_message_sent_payload_size, 2);
+
+ ck_assert_int_eq(last_can_frame_sent_arb_id, arbitration_id);
+ fail_unless(can_frame_was_sent);
+ ck_assert_int_eq(last_can_payload_sent[0], 0x2);
+ ck_assert_int_eq(last_can_payload_sent[1], 0x12);
+ ck_assert_int_eq(last_can_payload_sent[2], 0x34);
+ ck_assert_int_eq(last_can_payload_size, 3);
+}
+END_TEST
+
+START_TEST (test_send_multi_frame)
+{
+ const uint8_t payload[] = {0x12, 0x34, 0x56, 0x78, 0x90, 0x01, 0x23,
+ 0x45, 0x67, 0x89};
+ uint16_t arbitration_id = 0x2a;
+ IsoTpSendHandle handle = isotp_send(&SHIMS, arbitration_id, payload, sizeof(payload),
+ message_sent);
+ fail_unless(handle.completed);
+ fail_if(handle.success);
+}
+END_TEST
+
+Suite* testSuite(void) {
+ Suite* s = suite_create("iso15765");
+ TCase *tc_core = tcase_create("send");
+ tcase_add_checked_fixture(tc_core, setup, NULL);
+ tcase_add_test(tc_core, test_send_empty_payload);
+ tcase_add_test(tc_core, test_send_single_frame);
+ tcase_add_test(tc_core, test_send_multi_frame);
+ suite_add_tcase(s, tc_core);
+
+ return s;
+}
+
+int main(void) {
+ int numberFailed;
+ Suite* s = testSuite();
+ SRunner *sr = srunner_create(s);
+ // Don't fork so we can actually use gdb
+ srunner_set_fork_status(sr, CK_NOFORK);
+ srunner_run_all(sr, CK_NORMAL);
+ numberFailed = srunner_ntests_failed(sr);
+ srunner_free(sr);
+ return (numberFailed == 0) ? 0 : 1;
+}
diff --git a/CAN-binder/libs/openxc-message-format/.gitignore b/CAN-binder/libs/openxc-message-format/.gitignore
new file mode 100644
index 00000000..b25c15b8
--- /dev/null
+++ b/CAN-binder/libs/openxc-message-format/.gitignore
@@ -0,0 +1 @@
+*~
diff --git a/CAN-binder/libs/openxc-message-format/.gitmodules b/CAN-binder/libs/openxc-message-format/.gitmodules
new file mode 100644
index 00000000..5c591244
--- /dev/null
+++ b/CAN-binder/libs/openxc-message-format/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "libs/nanopb"]
+ path = libs/nanopb
+ url = https://github.com/nanopb/nanopb
diff --git a/CAN-binder/libs/openxc-message-format/CHANGELOG.md b/CAN-binder/libs/openxc-message-format/CHANGELOG.md
new file mode 100644
index 00000000..294826cd
--- /dev/null
+++ b/CAN-binder/libs/openxc-message-format/CHANGELOG.md
@@ -0,0 +1,57 @@
+# OpenXC Message Format Changelog
+
+## v0.7.0
+
+* Improvement: Increase diagnostic response payload size to accommodate
+ multi-frame diagnostic responses.
+* Feature: Added command to get device's platform
+
+## v0.6.0
+
+* Feature: Added MessagePack support for BTLE connections.
+* Feature: Support for vehicle message timestamps (changed previous uptime).
+* Feature: Support for C5 SD Card.
+* Feature: Support for C5 RTC.
+* Fix: Update submodule from code.google to github.
+
+## v0.5.0
+
+* Feature: Support for C5 Cellular device. New uptime message.
+
+## v0.4
+
+* BREAKING: Removed factor and offset from diagnostic requests to minimize the number of
+ fields, and since this is such an uncommon use case and one that can be
+ handled by the client receiving the data. We may add them back in the future.
+* BREAKING: Require an 'action' to diagnostic request commands, e.g. cancel or add.
+* BREAKING: Rename "raw" messages to the more precise "CAN messages".
+* BREAKING: Rename "translated" messages to "simple messages".
+* BREAKING: Remove redundant `type` field from simple messages (formerly
+ translated messages). The type can be inferred implicitly through the types of
+ the value and event fields.
+* Feature: Add a command for controlling CAN message passthrough.
+* Feature: Add a command for controlling CAN controller acceptance filter bypass.
+* Feature: Add a command to change the payload format.
+* Feature: Add a command to control whether pre-defined, recurring OBD-II
+ requests are enabled.
+* Improvement: Add `extras` field to JSON messages.
+* Improvement: Add an optional 'status' field to all command responses.
+* Improvement: Build protobuf generated files with nanopb v0.3.1.
+* Improvement: Allow explicitly setting CAN message frame format (i.e. standard
+ or extended frame).
+* Fix: Expand range of mode field to a full byte (#10)
+
+## v0.3
+
+* Add diagnostic message request/response format.
+* Officially add Protcol Buffer encoding.
+* Change JSON delimiter to ```\0``` for both input and output.
+* Officially document version and device ID commands.
+
+## v0.2
+
+* Add a RAW can message format.
+
+## v0.1
+
+* Initial release.
diff --git a/CAN-binder/libs/openxc-message-format/JSON.mkd b/CAN-binder/libs/openxc-message-format/JSON.mkd
new file mode 100644
index 00000000..d320aad0
--- /dev/null
+++ b/CAN-binder/libs/openxc-message-format/JSON.mkd
@@ -0,0 +1,435 @@
+# OpenXC JSON Message Format
+
+Each JSON message published by a VI is delimited with a `\0 ` character.
+
+## Table of Contents
+1. [Vehicle Messages](#vehicle-messages)
+2. [CAN Message](#can-message)
+3. [Diagnostic Message](#diagnostic-message)
+4. [Commands](#commands)
+5. [Extra Values](#extra-values)
+
+## Vehicle Messages
+
+### Simple Vehicle Message
+
+There may not be a 1:1 relationship between input and output signals - i.e.
+engine timing CAN signals may be summarized in an "engine performance" metric on
+the abstract side of the interface.
+
+The expected format of a single valued message is:
+
+ {"name": "steering_wheel_angle", "value": 45}
+
+### Evented Simple Vehicle Message
+
+The expected format of an event message is:
+
+ {"name": "button_event", "value": "up", "event": "pressed"}
+
+This format is good for something like a button event, where there are two
+discrete pieces of information in the measurement.
+
+## CAN Message
+
+The format for a plain CAN message:
+
+ {"bus": 1, "id": 1234, "data": "0x12345678"}
+
+**bus** - the numerical identifier of the CAN bus where this message originated,
+ most likely 1 or 2 (for a vehicle interface with 2 CAN controllers).
+
+**id** - the CAN message ID
+
+**data** - up to 8 bytes of data from the CAN message's payload, represented as
+ a hexidecimal number in a string. Many JSON parser cannot handle 64-bit
+ integers, which is why we are not using a numerical data type. Each byte in
+ the string *must* be represented with 2 characters, e.g. `0x1` is `0x01` - the
+ complete string must have an even number of characters. The `0x` prefix is
+ optional.
+
+**format** - (optional) explicitly set the frame format for the CAN message, one
+ of `standard` or `extended`. If the `id` is greater than `0x7ff`, the extended
+ frame format will be selected automatically.
+
+## Diagnostic Message
+
+### Requests
+
+A diagnostic request is added or cancelled with a JSON object like this example:
+
+ { "command": "diagnostic_request",
+ "action": "add",
+ "diagnostic_request": {
+ "bus": 1,
+ "message_id": 1234,
+ "mode": 1,
+ "pid": 5,
+ "payload": "0x1234",
+ "multiple_responses": false,
+ "frequency": 1,
+ "name": "my_pid"
+ }
+ }
+ }
+
+* The `command` must be `diagnostic_request.`
+* The `action` must be included, and must be one of:
+ * `add` - create a new one-off or recurring diagnostic request.
+ * `cancel` - cancel an existing request.
+* The details of the request must be included in the `request` field, using
+ the sub-fields defined below.
+
+A diagnostic request's `bus`, `id`, `mode` and `pid` (or lack of a `pid`)
+combine to create a unique key to identify a request. These four fields will be
+referred to as the key of the diagnostic request. For example, to create a
+simple one-time diagnostic request:
+
+ { "command": "diagnostic_request",
+ "action": "add",
+ "diagnostic_request": {
+ "bus": 1,
+ "message_id": 1234,
+ "mode": 1,
+ "pid": 5
+ }
+ }
+ }
+
+Requests are completed after any responses are received (unless
+`multiple_responses` is set), or the request has timed out after a certain
+number of seconds. After a request is completed, you can re-`create` the same
+key to make another request.
+
+Requests with a `frequency` are added as *recurring* requests, e.g. to add the
+previous example as a recurring request at 1Hz:
+
+ { "command": "diagnostic_request",
+ "action": "add",
+ "diagnostic_request": {
+ "bus": 1,
+ "message_id": 1234,
+ "mode": 1,
+ "pid": 5,
+ "frequency": 1
+ }
+ }
+ }
+
+To cancel a recurring request, send a `cancel` action with the same key, e.g.:
+
+ { "command": "diagnostic_request",
+ "action": "cancel",
+ "diagnostic_request": {
+ "bus": 1,
+ "message_id": 1234,
+ "mode": 1,
+ "pid": 5
+ }
+ }
+ }
+
+Simultaneous recurring requests for the same key at different rates (e.g. 1Hz
+*and* 2Hz) is not supported. However, non-recurring ("one-off") requests may
+exist in parallel with a recurring request for the same key.
+
+**bus** - the numerical identifier of the CAN bus where this request should be
+ sent, most likely 1 or 2 (for a vehicle interface with 2 CAN controllers).
+
+**message_id** - the CAN message ID for the request.
+
+**mode** - the OBD-II mode of the request - 0x1 through 0xff (1 through 9 are the
+ standardized modes and 0x22 is a common proprietary mode).
+
+**pid** - (optional) the PID for the request, if applicable.
+
+**payload** - (optional) up to 7 bytes of data for the request's payload
+ represented as a hexadecimal number in a string. Many JSON parser cannot
+ handle 64-bit integers, which is why we are not using a numerical data type.
+ Each byte in the string *must* be represented with 2 characters, e.g. `0x1`
+ is `0x01` - the complete string must have an even number of characters. The
+ `0x` prefix is optional.
+
+**name** - (optional, defaults to nothing) A human readable, string name for
+ this request. If provided, the response will have a `name` field (much like a
+ simple vehicle message) with this value in place of `bus`, `id`, `mode` and
+ `pid`.
+
+**multiple_responses** - (optional, false by default) if true, request will stay
+ active for a full 100ms, even after receiving a diagnostic response message.
+ This is useful for requests to the functional broadcast message ID
+ (`0x7df`) when you need to get responses from multiple modules. It's possible
+ to set this to `true` for non-broadcast requests, but in practice you won't
+ see any additional responses after the first and it will just take up memory
+ in the VI for longer.
+
+**frequency** - (optional) Make this request a recurring request, at a this
+ frequency in Hz. To send a single non-recurring request, leave this field out.
+
+**decoded_type** - (optional, defaults to "obd2" if the request is a recognized
+OBD-II mode 1 request, otherwise "none") If specified, the valid values are
+`"none"` and `"obd2"`. If `obd2`, the payload will be decoded according to the
+OBD-II specification and returned in the `value` field. Set this to `none` to
+manually override the OBD-II decoding feature for a known PID.
+
+### Responses
+
+Requests to add or cancel a diagnostic request are first acknowledged by the VI,
+before any responses to the request are returned. The response uses the standard
+command response format:
+
+ { "command_response": "diagnostic_request", "status": true}
+
+**status** - true if the request was successfully created or cancelled.
+
+When a node on the network response to the request and the result is published
+by the VI, the result looks like:
+
+ {"bus": 1,
+ "message_id": 1234,
+ "mode": 1,
+ "pid": 5,
+ "success": true,
+ "payload": "0x1234",
+ "value": 4660}
+
+and to an unsuccessful request, with the `negative_response_code` and no `pid`
+echo:
+
+ {"bus": 1,
+ "message_id": 1234,
+ "mode": 1,
+ "success": false,
+ "negative_response_code": 17}
+
+**bus** - the numerical identifier of the CAN bus where this response was
+ received.
+
+**message_id** - the CAN message ID for this response.
+
+**mode** - the OBD-II mode of the original diagnostic request.
+
+**pid** - (optional) the PID for the request, if applicable.
+
+**success** - true if the response received was a positive response. If this
+ field is false, the remote node returned an error and the
+ `negative_response_code` field should be populated.
+
+**negative_response_code** - (optional) If requested node returned an error,
+ `success` will be `false` and this field will contain the negative response
+ code (NRC).
+
+Finally, the `payload` and `value` fields are mutually exclusive:
+
+**payload** - (optional) up to 7 bytes of data returned in the response,
+ represented as a hexadecimal number in a string. Many JSON parser cannot
+ handle 64-bit integers, which is why we are not using a numerical data type.
+
+**value** - (optional) if the response had a payload, this may be the
+ payload interpreted as an integer.
+
+The response to a simple PID request would look like this:
+
+ {"success": true, "bus": 1, "message_id": 1234, "mode": 1, "pid": 5, "payload": "0x2"}
+
+## Commands
+
+In addition to the `diagnostic_request` command described earlier, there are
+other possible values for the `command` field.
+
+All commands immediately return a `command_response`, e.g.:
+
+ { "command_response": "version", "message": "v6.0-dev (default)", "status": true}
+
+**command_response** - an echo of the command this is a ACKing.
+
+**status** - true if the command was understood and performed succesfully.
+
+**message** - (optional) a string message from the VI, e.g. to return a version
+ descriptor or error message.
+
+### Version Query
+
+The `version` command triggers the VI to inject a firmware version identifier
+response into the outgoing data stream.
+
+**Request**
+
+ { "command": "version"}
+
+**Response**
+
+ { "command_response": "version", "message": "v6.0-dev (default)", "status": true}
+
+### Device ID Query
+
+The `device_id` command triggers the VI to inject a unique device ID (e.g. the
+MAC address of an included Bluetooth module) into into the outgoing data stream.
+
+If no device ID is available, the response message will be "Unknown".
+
+**Request**
+
+ { "command": "device_id"}
+
+**Response**
+
+ { "command_response": "device_id", "message": "0012345678", "status": true}
+
+### Passthrough CAN Mode
+
+The `passthrough` command controls whether low-level CAN messages are passed
+through from the CAN bus through the VI to the output stream. If the CAN
+acceptance filter is in bypass mode and passthrough is enabled, the output
+stream will include all received CAN messages. If the bypass filter is enabled,
+only those CAN messages that have been pre-defined in the firmware are
+forwarded.
+
+**Request**
+
+ { "command": "passthrough",
+ "bus": 1,
+ "enabled": true
+ }
+
+**Response**
+
+If the bus in the request was valid and the passthrough mode was changed, the
+`status` field in the response will be `true`. If `false`, the passthrough mode
+was not changed.
+
+ { "command_response": "passthrough", "status": true}
+
+### Acceptance Filter Bypass
+
+The `af_bypass` command controls whether the CAN message acceptance filter is
+bypassed for each CAN controller. By default, hardware acceptance filter (AF) is
+enabled in the VI - only previously defined CAN message IDs will be received.
+Send this command with `bypass: true` to force the filters to bypassed.
+
+If `passthrough` mode is also enabled, when the AF is bypassed, the output will
+include all CAN messages received.
+
+**Request**
+
+ { "command": "af_bypass",
+ "bus": 1,
+ "bypass": true
+ }
+
+**Response**
+
+If the bus in the request was valid and the AF mode was changed, the `status`
+field in the response will be `true`. If `false`, the passthrough mode was not
+changed.
+
+ { "command_response": "af_bypass", "status": true}
+
+### Payload Format Control
+
+The `payload_format` command determines the format for output data from the VI
+and the expected format of commands sent to the VI.
+
+Valid formats are `json` and `protobuf`.
+
+**Request**
+
+ { "command": "payload_format",
+ "format": "json"
+ }
+
+**Response**
+
+If the format was changed successfully, the `status` in the response will be
+`true`. The response will be in the original message format, and all subsequent
+messages will be in the new format.
+
+ { "command_response": "payload_format", "status": true}
+
+### Automatic Pre-Defined OBD-II PID Requests
+
+The `predefined_obd2` command enables and disables the querying for and
+translating of a set of pre-defined OBD-II PIDs from the attached vehicle. When
+enabled, the VI will query the vehicle to see if these PIDs are claimed to be
+supported and for those that are, it will set up recurring requests. The
+responses will be output as simple vehicle messages, with the names defined in
+the "Signals Defined from Diagnostic Messages" section below.
+
+**Request**
+
+ { "command": "predefined_obd2",
+ "enabled": true
+ }
+
+**Response**
+
+If the predefined requests were enabled or disabled successfully, the `status` in
+the response will be `true`.
+
+ { "command_response": "predefined_obd2", "status": true}
+
+### C5 Cellular Configuration
+
+The ModemConfigurationCommand message allows users to change certain aspects of modem operation on-the-fly (at runtime). The modem configuration settings are stored in flash memory and are untouched by the bootloader during a software update (assuming the correct cellular_c5 linker file is used during compilation of vi-firmware). Thus, new modem settings persistent across power cycles.
+
+The ModemConfigurationCommand message provides three sub-messages for particular groups of modem settings. These are NetworkOperatorSettings, NetworkDataSettings, and ServerConnectSettings. These configuration messages are described in great detail within the [c5_cellular_config](https://github.com/openxc/vi-firmware/docs/advanced/c5_cell_config.html) documentation.
+
+Currently, only the ServerConnectSettings sub-message is supported in the vi-firmware's command interpreter. All other settings are currently compile-time only.
+
+The ServerConnectSettings part of ModemConfigurationCommand allows the user to set the host server name and port that the device will use when opening a TCP socket to upload data. This destination must be running an HTTP server similar to [OpenXCWebServer](https://github.com/openxc/openxc-azure-webserver), which defines a set of supported HTTP transactions where the body is comprised of data in the familiar OpenXC Message Format.
+
+**Request**
+
+ { "command": "modem_configuration",
+ "server": {
+ "host": "www.myhost.com",
+ "port": 10000
+ }
+ }
+
+**Response**
+
+ { "command_response": "modem_configuration", "status": true}
+
+## C5 SD Card Status
+
+In order to check the status of the SD card, the following command is available:
+
+ { "command": "sd_mount_status"}
+
+Command response if the SD card is mounted correctly:
+
+ { "command_response": "sd_mount_status", "status": true}
+
+If the SD card is full, not enabled, or connected as a MSD, the device will respond with:
+
+ { "command_response": "sd_mount_status", "status": false}
+
+For more info see [c5_msd](https://github.com/openxc/vi-firmware/docs/advanced/msd.html).
+
+## C5 RTC Configuration
+
+To set the current time of the RTC, the following
+
+ { "command": "rtc_configuration", "unix_time": "1448551563"}
+
+The response is
+
+ { "command_response": "rtc_configuration", "status": true}
+
+For more info see [c5_rtc](https://github.com/openxc/vi-firmware/docs/advanced/rtc.html).
+
+## Extra Values
+
+Any of the following JSON objects may optionally include an `extras`
+field. The value may be any valid JSON object or array. The client libraries
+will do their best to parse this information into a generic format and pass it
+to your application. For example:
+
+ {"name": "steering_wheel_angle",
+ "value": 45,
+ "extras": {
+ "calibrated": false
+ }
+ }
+
diff --git a/CAN-binder/libs/openxc-message-format/LICENSE b/CAN-binder/libs/openxc-message-format/LICENSE
new file mode 100644
index 00000000..9a30ce45
--- /dev/null
+++ b/CAN-binder/libs/openxc-message-format/LICENSE
@@ -0,0 +1,24 @@
+Copyright (c) 2012 Ford Motor Company
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the name of the <organization> nor the
+ names of its contributors may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/CAN-binder/libs/openxc-message-format/Makefile b/CAN-binder/libs/openxc-message-format/Makefile
new file mode 100644
index 00000000..7b968e63
--- /dev/null
+++ b/CAN-binder/libs/openxc-message-format/Makefile
@@ -0,0 +1,11 @@
+nanopb: proto
+ make -C libs/nanopb/generator/proto
+ python libs/nanopb/generator/nanopb_generator.py gen/cpp/openxc.pb -f openxc.options
+
+proto: openxc.proto
+ @mkdir -p gen/java
+ @mkdir -p gen/python
+ @mkdir -p gen/cpp
+ protoc -I . -I gen -ogen/cpp/openxc.pb --python_out=gen/python --java_out=gen/java $?
+
+all: nanopb proto
diff --git a/CAN-binder/libs/openxc-message-format/README.md b/CAN-binder/libs/openxc-message-format/README.md
new file mode 100644
index 00000000..77758b83
--- /dev/null
+++ b/CAN-binder/libs/openxc-message-format/README.md
@@ -0,0 +1,177 @@
+# OpenXC Message Format Specification
+
+Version: v0.6.0
+
+This specification is a part of the [OpenXC platform][OpenXC].
+
+An OpenXC vehicle interface sends generic vehicle data over one or more output
+interfaces (e.g. USB or Bluetooth) as JSON or Protocol Buffers (protobuf).
+
+## JSON
+
+The JSON format is the most flexible and easiest to use. The format is fully
+specified in the [JSON.mkd](JSON.mkd) file in this repository.
+a more flexible option than binary, but is less compact and
+therefore takes more bandwidth and processing power.
+
+The JSON format is best for most developers, as it is fairly efficient and very
+flexible.
+
+## Binary (Protocol Buffers)
+
+The binary format is encoded using [Google Protocol
+Buffers](https://code.google.com/p/protobuf/). The format is specified in the
+file [openxc.proto](openxc.proto). The descriptions of the messages can be foud
+in the JSON specs - the binary format mirrors this.
+
+The binary messages are published by the VI using the standard length-delimited
+method (any protobuf library should support this).
+
+The binary format is best if you need to maximize the amount of data that can be
+sent from the VI, trading off flexibility for efficiency.
+
+## Message Pack
+MessagePack is an efficient binary serialization format. It lets you exchange data
+among multiple languages like JSON, but it's faster and smaller. Small integers are
+encoded into a single byte, and typical short strings require only one extra byte
+in addition to the strings themselves
+
+For protocol specification visit:
+https://github.com/msgpack/msgpack/blob/master/spec.md
+
+We are using the following lib:
+https://github.com/camgunz/cmp
+
+MessagePack provides a binary alternative to ProtoBuf. There are pros & cons to each
+so you can decide what works best for your project.
+
+## Trace File Format
+
+An OpenXC vehicle trace file is a plaintext file that contains JSON objects,
+separated by newlines (which may be either `\r\n` or `\n`, depending on the
+platform the trace file was recorded).
+
+The first line may be a metadata object, although this is optional:
+
+```
+{"metadata": {
+ "version": "v3.0",
+ "vehicle_interface_id": "7ABF",
+ "vehicle": {
+ "make": "Ford",
+ "model": "Mustang",
+ "trim": "V6 Premium",
+ "year": 2013
+ },
+ "description": "highway drive to work",
+ "driver_name": "TJ Giuli",
+ "vehicle_id": "17N1039247929"
+}
+```
+
+The following lines are OpenXC messages with a `timestamp` field added, e.g.:
+
+ {"timestamp": 1385133351.285525, "name": "steering_wheel_angle", "value": 45}
+
+The timestamp is in [UNIX time](http://en.wikipedia.org/wiki/Unix_time)
+(i.e. seconds since the UNIX epoch, 00:00:00 UTC, 1/1/1970).
+
+## Official Signals
+
+These signal names are a part of the OpenXC specification, although some
+manufacturers may support custom message names.
+
+* steering_wheel_angle
+ * numerical, -600 to +600 degrees
+ * 10Hz
+* torque_at_transmission
+ * numerical, -500 to 1500 Nm
+ * 10Hz
+* engine_speed
+ * numerical, 0 to 16382 RPM
+ * 10Hz
+* vehicle_speed
+ * numerical, 0 to 655 km/h (this will be positive even if going in reverse
+ as it's not a velocity, although you can use the gear status to figure out
+ direction)
+ * 10Hz
+* accelerator_pedal_position
+ * percentage
+ * 10Hz
+* parking_brake_status
+ * boolean, (true == brake engaged)
+ * 1Hz, but sent immediately on change
+* brake_pedal_status
+ * boolean (True == pedal pressed)
+ * 1Hz, but sent immediately on change
+* transmission_gear_position
+ * states: first, second, third, fourth, fifth, sixth, seventh, eighth,
+ ninth, tenth, reverse, neutral
+ * 1Hz, but sent immediately on change
+* gear_lever_position
+ * states: neutral, park, reverse, drive, sport, low, first, second, third,
+ fourth, fifth, sixth, seventh, eighth, ninth, tenth
+ * 1Hz, but sent immediately on change
+* odometer
+ * Numerical, km
+ 0 to 16777214.000 km, with about .2m resolution
+ * 10Hz
+* ignition_status
+ * states: off, accessory, run, start
+ * 1Hz, but sent immediately on change
+* fuel_level
+ * percentage
+ * 2Hz
+* fuel_consumed_since_restart
+ * numerical, 0 - 4294967295.0 L (this goes to 0 every time the vehicle
+ restarts, like a trip meter)
+ * 10Hz
+* door_status
+ * Value is State: driver, passenger, rear_left, rear_right.
+ * Event is boolean: true == ajar
+ * 1Hz, but sent immediately on change
+* headlamp_status
+ * boolean, true is on
+ * 1Hz, but sent immediately on change
+* high_beam_status
+ * boolean, true is on
+ * 1Hz, but sent immediately on change
+* windshield_wiper_status
+ * boolean, true is on
+ * 1Hz, but sent immediately on change
+* latitude
+ * numerical, -89.0 to 89.0 degrees with standard GPS accuracy
+ * 1Hz
+* longitude
+ * numerical, -179.0 to 179.0 degrees with standard GPS accuracy
+ * 1Hz
+
+## Signals from Diagnostic Messages
+
+This set of signals is often retreived from OBD-II requests. The units can be
+found in the [OBD-II standard](http://en.wikipedia.org/wiki/OBD-II_PIDs#Mode_01).
+
+* engine_load
+* engine_coolant_temperature
+* barometric_pressure
+* commanded_throttle_position
+* throttle_position
+* fuel_level
+* intake_air_temperature
+* intake_manifold_pressure
+* running_time
+* fuel_pressure
+* mass_airflow
+* accelerator_pedal_position
+* ethanol_fuel_percentage
+* engine_oil_temperature
+* engine_torque
+
+License
+=======
+
+Copyright (c) 2012-2014 Ford Motor Company
+
+Licensed under the BSD license.
+
+[OpenXC]: http://openxcplatform.com
diff --git a/CAN-binder/libs/openxc-message-format/benchmark/proto/.gitignore b/CAN-binder/libs/openxc-message-format/benchmark/proto/.gitignore
new file mode 100644
index 00000000..0520d7d2
--- /dev/null
+++ b/CAN-binder/libs/openxc-message-format/benchmark/proto/.gitignore
@@ -0,0 +1 @@
+*_pb2.py
diff --git a/CAN-binder/libs/openxc-message-format/benchmark/proto/compare_sizes.py b/CAN-binder/libs/openxc-message-format/benchmark/proto/compare_sizes.py
new file mode 100755
index 00000000..0ed445fd
--- /dev/null
+++ b/CAN-binder/libs/openxc-message-format/benchmark/proto/compare_sizes.py
@@ -0,0 +1,96 @@
+#!/usr/bin/env python
+
+from __future__ import division
+import sys
+import numbers
+
+import openxc_pb2
+import json
+
+def sizeof_fmt(num):
+ for unit in ['bytes', 'KB', 'MB', 'GB', 'TB']:
+ if num < 1024.0:
+ return "%3.1f%s" % (num, unit)
+ num /= 1024.0
+
+total_raw_can_size = 0
+total_raw_json_size = 0
+total_raw_binary_size = 0
+total_translated_json_size = 0
+total_translated_binary_size = 0
+
+for trace_file in sys.argv[1:]:
+ for line in open(trace_file):
+ try:
+ json_message = json.loads(line)
+ except ValueError:
+ continue
+
+ del json_message['timestamp']
+
+ message = openxc_pb2.VehicleMessage()
+
+ if 'id' and 'data' in json_message:
+ # rough approx. that CAN messages are 10 bytes - they could be less
+ # but most of ours are full 64+11 bits
+ total_raw_can_size += 10
+ total_raw_json_size += len(json.dumps(json_message))
+ message.type = openxc_pb2.VehicleMessage.RAW
+ message.raw_message.message_id = json_message['id']
+ message.raw_message.data = int(json_message['data'], 0)
+ total_raw_binary_size += len(message.SerializeToString())
+ else:
+ message.type = openxc_pb2.VehicleMessage.TRANSLATED
+ message.translated_message.name = json_message['name']
+ if 'event' in json_message:
+ message.translated_message.string_value = json_message['value']
+ if isinstance(json_message['event'], bool):
+ message.translated_message.type = openxc_pb2.TranslatedMessage.EVENTED_BOOL
+ message.translated_message.boolean_event = json_message['event']
+ elif isinstance(json_message['event'], numbers.Number):
+ message.translated_message.type = openxc_pb2.TranslatedMessage.EVENTED_NUM
+ message.translated_message.numeric_value = json_message['event']
+ else:
+ message.translated_message.type = openxc_pb2.TranslatedMessage.EVENTED_STRING
+ message.translated_message.string_value = json_message['event']
+ else:
+ if isinstance(json_message['value'], bool):
+ message.translated_message.type = openxc_pb2.TranslatedMessage.BOOL
+ message.translated_message.boolean_value = json_message['value']
+ elif isinstance(json_message['value'], numbers.Number):
+ message.translated_message.type = openxc_pb2.TranslatedMessage.NUM
+ message.translated_message.numeric_value = json_message['value']
+ else:
+ message.translated_message.type = openxc_pb2.TranslatedMessage.STRING
+ message.translated_message.string_value = json_message['value']
+ total_translated_json_size += len(json.dumps(json_message))
+ total_translated_binary_size += len(message.SerializeToString())
+
+
+print("For the %d trace files given..." % len(sys.argv[1:]))
+print("Total transferred raw CAN size is %s" % sizeof_fmt(total_raw_can_size))
+print("Total transferred raw JSON size is %s" % sizeof_fmt(total_raw_json_size))
+print("Total transferred raw binary size is %s" % sizeof_fmt(total_raw_binary_size))
+print("Total transferred translated JSON size is %s" %
+ sizeof_fmt(total_translated_json_size))
+print("Total transferred translated binary size is %s" %
+ sizeof_fmt(total_translated_binary_size))
+
+total_json_size = total_raw_json_size + total_translated_json_size
+print("Total transferred JSON size is %s" % sizeof_fmt(total_json_size))
+total_binary_size = total_raw_binary_size + total_translated_binary_size
+print("Total transferred binary size is %s" % sizeof_fmt(total_binary_size))
+
+if total_raw_can_size > 0:
+ print("Binary encoding adds %f%% overhead to raw CAN messages" % (
+ total_raw_binary_size / total_raw_can_size * 100 - 100))
+ print("JSON encoding adds %f%% overhead to raw CAN messages" % (
+ total_raw_json_size / total_raw_can_size * 100 - 100))
+if total_raw_json_size > 0:
+ print("Binary encoding is %f%% smaller than JSON for raw messages" % (
+ 100 - (total_raw_binary_size / total_raw_json_size * 100)))
+if total_translated_json_size > 0:
+ print("Binary encoding is %f%% smaller than JSON for translated messages" % (
+ 100 - (total_translated_binary_size / total_translated_json_size * 100)))
+print("Binary encoding is %f%% smaller than JSON overall" % (
+ 100 - (total_binary_size / total_json_size * 100)))
diff --git a/CAN-binder/libs/openxc-message-format/gen/README.mkd b/CAN-binder/libs/openxc-message-format/gen/README.mkd
new file mode 100644
index 00000000..e607772d
--- /dev/null
+++ b/CAN-binder/libs/openxc-message-format/gen/README.mkd
@@ -0,0 +1,11 @@
+Generated Files
+================
+
+This directory holds generated implementation files for the Protocol Buffer
+objects defined in openxc.proto. The definitions don't change very often, and so
+it makes more sense to keep a compiled version in the repository for each
+major build environment rather than requiring each developer to get the protobuf
+dependencies.
+
+I've also not found a good way to incorporate protobuf generation with our
+Makefile build system in the openxc/vi-firmware project.
diff --git a/CAN-binder/libs/openxc-message-format/gen/cpp/openxc.pb b/CAN-binder/libs/openxc-message-format/gen/cpp/openxc.pb
new file mode 100644
index 00000000..104c2065
--- /dev/null
+++ b/CAN-binder/libs/openxc-message-format/gen/cpp/openxc.pb
Binary files differ
diff --git a/CAN-binder/libs/openxc-message-format/gen/cpp/openxc.pb.c b/CAN-binder/libs/openxc-message-format/gen/cpp/openxc.pb.c
new file mode 100644
index 00000000..9b90c36b
--- /dev/null
+++ b/CAN-binder/libs/openxc-message-format/gen/cpp/openxc.pb.c
@@ -0,0 +1,184 @@
+/* Automatically generated nanopb constant definitions */
+/* Generated by nanopb-0.3.1 at Wed Sep 14 16:47:53 2016. */
+
+#include "openxc.pb.h"
+
+#if PB_PROTO_HEADER_VERSION != 30
+#error Regenerate this file with the current version of nanopb generator.
+#endif
+
+
+
+const pb_field_t openxc_VehicleMessage_fields[8] = {
+ PB_FIELD( 1, ENUM , OPTIONAL, STATIC , FIRST, openxc_VehicleMessage, type, type, 0),
+ PB_FIELD( 2, MESSAGE , OPTIONAL, STATIC , OTHER, openxc_VehicleMessage, can_message, type, &openxc_CanMessage_fields),
+ PB_FIELD( 3, MESSAGE , OPTIONAL, STATIC , OTHER, openxc_VehicleMessage, simple_message, can_message, &openxc_SimpleMessage_fields),
+ PB_FIELD( 4, MESSAGE , OPTIONAL, STATIC , OTHER, openxc_VehicleMessage, diagnostic_response, simple_message, &openxc_DiagnosticResponse_fields),
+ PB_FIELD( 5, MESSAGE , OPTIONAL, STATIC , OTHER, openxc_VehicleMessage, control_command, diagnostic_response, &openxc_ControlCommand_fields),
+ PB_FIELD( 6, MESSAGE , OPTIONAL, STATIC , OTHER, openxc_VehicleMessage, command_response, control_command, &openxc_CommandResponse_fields),
+ PB_FIELD( 7, UINT64 , OPTIONAL, STATIC , OTHER, openxc_VehicleMessage, timestamp, command_response, 0),
+ PB_LAST_FIELD
+};
+
+const pb_field_t openxc_CanMessage_fields[5] = {
+ PB_FIELD( 1, INT32 , OPTIONAL, STATIC , FIRST, openxc_CanMessage, bus, bus, 0),
+ PB_FIELD( 2, UINT32 , OPTIONAL, STATIC , OTHER, openxc_CanMessage, id, bus, 0),
+ PB_FIELD( 3, BYTES , OPTIONAL, STATIC , OTHER, openxc_CanMessage, data, id, 0),
+ PB_FIELD( 4, ENUM , OPTIONAL, STATIC , OTHER, openxc_CanMessage, frame_format, data, 0),
+ PB_LAST_FIELD
+};
+
+const pb_field_t openxc_ControlCommand_fields[9] = {
+ PB_FIELD( 1, ENUM , OPTIONAL, STATIC , FIRST, openxc_ControlCommand, type, type, 0),
+ PB_FIELD( 2, MESSAGE , OPTIONAL, STATIC , OTHER, openxc_ControlCommand, diagnostic_request, type, &openxc_DiagnosticControlCommand_fields),
+ PB_FIELD( 3, MESSAGE , OPTIONAL, STATIC , OTHER, openxc_ControlCommand, passthrough_mode_request, diagnostic_request, &openxc_PassthroughModeControlCommand_fields),
+ PB_FIELD( 4, MESSAGE , OPTIONAL, STATIC , OTHER, openxc_ControlCommand, acceptance_filter_bypass_command, passthrough_mode_request, &openxc_AcceptanceFilterBypassCommand_fields),
+ PB_FIELD( 5, MESSAGE , OPTIONAL, STATIC , OTHER, openxc_ControlCommand, payload_format_command, acceptance_filter_bypass_command, &openxc_PayloadFormatCommand_fields),
+ PB_FIELD( 6, MESSAGE , OPTIONAL, STATIC , OTHER, openxc_ControlCommand, predefined_obd2_requests_command, payload_format_command, &openxc_PredefinedObd2RequestsCommand_fields),
+ PB_FIELD( 7, MESSAGE , OPTIONAL, STATIC , OTHER, openxc_ControlCommand, modem_configuration_command, predefined_obd2_requests_command, &openxc_ModemConfigurationCommand_fields),
+ PB_FIELD( 8, MESSAGE , OPTIONAL, STATIC , OTHER, openxc_ControlCommand, rtc_configuration_command, modem_configuration_command, &openxc_RTCConfigurationCommand_fields),
+ PB_LAST_FIELD
+};
+
+const pb_field_t openxc_DiagnosticControlCommand_fields[3] = {
+ PB_FIELD( 1, MESSAGE , OPTIONAL, STATIC , FIRST, openxc_DiagnosticControlCommand, request, request, &openxc_DiagnosticRequest_fields),
+ PB_FIELD( 2, ENUM , OPTIONAL, STATIC , OTHER, openxc_DiagnosticControlCommand, action, request, 0),
+ PB_LAST_FIELD
+};
+
+const pb_field_t openxc_PassthroughModeControlCommand_fields[3] = {
+ PB_FIELD( 1, INT32 , OPTIONAL, STATIC , FIRST, openxc_PassthroughModeControlCommand, bus, bus, 0),
+ PB_FIELD( 2, BOOL , OPTIONAL, STATIC , OTHER, openxc_PassthroughModeControlCommand, enabled, bus, 0),
+ PB_LAST_FIELD
+};
+
+const pb_field_t openxc_AcceptanceFilterBypassCommand_fields[3] = {
+ PB_FIELD( 1, INT32 , OPTIONAL, STATIC , FIRST, openxc_AcceptanceFilterBypassCommand, bus, bus, 0),
+ PB_FIELD( 2, BOOL , OPTIONAL, STATIC , OTHER, openxc_AcceptanceFilterBypassCommand, bypass, bus, 0),
+ PB_LAST_FIELD
+};
+
+const pb_field_t openxc_PayloadFormatCommand_fields[2] = {
+ PB_FIELD( 1, ENUM , OPTIONAL, STATIC , FIRST, openxc_PayloadFormatCommand, format, format, 0),
+ PB_LAST_FIELD
+};
+
+const pb_field_t openxc_PredefinedObd2RequestsCommand_fields[2] = {
+ PB_FIELD( 1, BOOL , OPTIONAL, STATIC , FIRST, openxc_PredefinedObd2RequestsCommand, enabled, enabled, 0),
+ PB_LAST_FIELD
+};
+
+const pb_field_t openxc_NetworkOperatorSettings_fields[4] = {
+ PB_FIELD( 1, BOOL , OPTIONAL, STATIC , FIRST, openxc_NetworkOperatorSettings, allowDataRoaming, allowDataRoaming, 0),
+ PB_FIELD( 2, ENUM , OPTIONAL, STATIC , OTHER, openxc_NetworkOperatorSettings, operatorSelectMode, allowDataRoaming, 0),
+ PB_FIELD( 3, MESSAGE , OPTIONAL, STATIC , OTHER, openxc_NetworkOperatorSettings, networkDescriptor, operatorSelectMode, &openxc_NetworkOperatorSettings_NetworkDescriptor_fields),
+ PB_LAST_FIELD
+};
+
+const pb_field_t openxc_NetworkOperatorSettings_NetworkDescriptor_fields[3] = {
+ PB_FIELD( 1, UINT32 , OPTIONAL, STATIC , FIRST, openxc_NetworkOperatorSettings_NetworkDescriptor, PLMN, PLMN, 0),
+ PB_FIELD( 2, ENUM , OPTIONAL, STATIC , OTHER, openxc_NetworkOperatorSettings_NetworkDescriptor, networkType, PLMN, 0),
+ PB_LAST_FIELD
+};
+
+const pb_field_t openxc_NetworkDataSettings_fields[2] = {
+ PB_FIELD( 1, STRING , OPTIONAL, CALLBACK, FIRST, openxc_NetworkDataSettings, APN, APN, 0),
+ PB_LAST_FIELD
+};
+
+const pb_field_t openxc_ServerConnectSettings_fields[3] = {
+ PB_FIELD( 1, STRING , OPTIONAL, STATIC , FIRST, openxc_ServerConnectSettings, host, host, 0),
+ PB_FIELD( 2, UINT32 , OPTIONAL, STATIC , OTHER, openxc_ServerConnectSettings, port, host, 0),
+ PB_LAST_FIELD
+};
+
+const pb_field_t openxc_ModemConfigurationCommand_fields[4] = {
+ PB_FIELD( 1, MESSAGE , OPTIONAL, STATIC , FIRST, openxc_ModemConfigurationCommand, networkOperatorSettings, networkOperatorSettings, &openxc_NetworkOperatorSettings_fields),
+ PB_FIELD( 2, MESSAGE , OPTIONAL, STATIC , OTHER, openxc_ModemConfigurationCommand, networkDataSettings, networkOperatorSettings, &openxc_NetworkDataSettings_fields),
+ PB_FIELD( 3, MESSAGE , OPTIONAL, STATIC , OTHER, openxc_ModemConfigurationCommand, serverConnectSettings, networkDataSettings, &openxc_ServerConnectSettings_fields),
+ PB_LAST_FIELD
+};
+
+const pb_field_t openxc_RTCConfigurationCommand_fields[2] = {
+ PB_FIELD( 1, UINT32 , OPTIONAL, STATIC , FIRST, openxc_RTCConfigurationCommand, unix_time, unix_time, 0),
+ PB_LAST_FIELD
+};
+
+const pb_field_t openxc_CommandResponse_fields[4] = {
+ PB_FIELD( 1, ENUM , OPTIONAL, STATIC , FIRST, openxc_CommandResponse, type, type, 0),
+ PB_FIELD( 2, STRING , OPTIONAL, STATIC , OTHER, openxc_CommandResponse, message, type, 0),
+ PB_FIELD( 3, BOOL , OPTIONAL, STATIC , OTHER, openxc_CommandResponse, status, message, 0),
+ PB_LAST_FIELD
+};
+
+const pb_field_t openxc_DiagnosticRequest_fields[10] = {
+ PB_FIELD( 1, INT32 , OPTIONAL, STATIC , FIRST, openxc_DiagnosticRequest, bus, bus, 0),
+ PB_FIELD( 2, UINT32 , OPTIONAL, STATIC , OTHER, openxc_DiagnosticRequest, message_id, bus, 0),
+ PB_FIELD( 3, UINT32 , OPTIONAL, STATIC , OTHER, openxc_DiagnosticRequest, mode, message_id, 0),
+ PB_FIELD( 4, UINT32 , OPTIONAL, STATIC , OTHER, openxc_DiagnosticRequest, pid, mode, 0),
+ PB_FIELD( 5, BYTES , OPTIONAL, STATIC , OTHER, openxc_DiagnosticRequest, payload, pid, 0),
+ PB_FIELD( 6, BOOL , OPTIONAL, STATIC , OTHER, openxc_DiagnosticRequest, multiple_responses, payload, 0),
+ PB_FIELD( 7, DOUBLE , OPTIONAL, STATIC , OTHER, openxc_DiagnosticRequest, frequency, multiple_responses, 0),
+ PB_FIELD( 8, STRING , OPTIONAL, STATIC , OTHER, openxc_DiagnosticRequest, name, frequency, 0),
+ PB_FIELD( 9, ENUM , OPTIONAL, STATIC , OTHER, openxc_DiagnosticRequest, decoded_type, name, 0),
+ PB_LAST_FIELD
+};
+
+const pb_field_t openxc_DiagnosticResponse_fields[9] = {
+ PB_FIELD( 1, INT32 , OPTIONAL, STATIC , FIRST, openxc_DiagnosticResponse, bus, bus, 0),
+ PB_FIELD( 2, UINT32 , OPTIONAL, STATIC , OTHER, openxc_DiagnosticResponse, message_id, bus, 0),
+ PB_FIELD( 3, UINT32 , OPTIONAL, STATIC , OTHER, openxc_DiagnosticResponse, mode, message_id, 0),
+ PB_FIELD( 4, UINT32 , OPTIONAL, STATIC , OTHER, openxc_DiagnosticResponse, pid, mode, 0),
+ PB_FIELD( 5, BOOL , OPTIONAL, STATIC , OTHER, openxc_DiagnosticResponse, success, pid, 0),
+ PB_FIELD( 6, UINT32 , OPTIONAL, STATIC , OTHER, openxc_DiagnosticResponse, negative_response_code, success, 0),
+ PB_FIELD( 7, BYTES , OPTIONAL, STATIC , OTHER, openxc_DiagnosticResponse, payload, negative_response_code, 0),
+ PB_FIELD( 8, DOUBLE , OPTIONAL, STATIC , OTHER, openxc_DiagnosticResponse, value, payload, 0),
+ PB_LAST_FIELD
+};
+
+const pb_field_t openxc_DynamicField_fields[5] = {
+ PB_FIELD( 1, ENUM , OPTIONAL, STATIC , FIRST, openxc_DynamicField, type, type, 0),
+ PB_FIELD( 2, STRING , OPTIONAL, STATIC , OTHER, openxc_DynamicField, string_value, type, 0),
+ PB_FIELD( 3, DOUBLE , OPTIONAL, STATIC , OTHER, openxc_DynamicField, numeric_value, string_value, 0),
+ PB_FIELD( 4, BOOL , OPTIONAL, STATIC , OTHER, openxc_DynamicField, boolean_value, numeric_value, 0),
+ PB_LAST_FIELD
+};
+
+const pb_field_t openxc_SimpleMessage_fields[4] = {
+ PB_FIELD( 1, STRING , OPTIONAL, STATIC , FIRST, openxc_SimpleMessage, name, name, 0),
+ PB_FIELD( 2, MESSAGE , OPTIONAL, STATIC , OTHER, openxc_SimpleMessage, value, name, &openxc_DynamicField_fields),
+ PB_FIELD( 3, MESSAGE , OPTIONAL, STATIC , OTHER, openxc_SimpleMessage, event, value, &openxc_DynamicField_fields),
+ PB_LAST_FIELD
+};
+
+
+/* Check that field information fits in pb_field_t */
+#if !defined(PB_FIELD_32BIT)
+/* If you get an error here, it means that you need to define PB_FIELD_32BIT
+ * compile-time option. You can do that in pb.h or on compiler command line.
+ *
+ * The reason you need to do this is that some of your messages contain tag
+ * numbers or field sizes that are larger than what can fit in 8 or 16 bit
+ * field descriptors.
+ */
+PB_STATIC_ASSERT((pb_membersize(openxc_VehicleMessage, can_message) < 65536 && pb_membersize(openxc_VehicleMessage, simple_message) < 65536 && pb_membersize(openxc_VehicleMessage, diagnostic_response) < 65536 && pb_membersize(openxc_VehicleMessage, control_command) < 65536 && pb_membersize(openxc_VehicleMessage, command_response) < 65536 && pb_membersize(openxc_ControlCommand, diagnostic_request) < 65536 && pb_membersize(openxc_ControlCommand, passthrough_mode_request) < 65536 && pb_membersize(openxc_ControlCommand, acceptance_filter_bypass_command) < 65536 && pb_membersize(openxc_ControlCommand, payload_format_command) < 65536 && pb_membersize(openxc_ControlCommand, predefined_obd2_requests_command) < 65536 && pb_membersize(openxc_ControlCommand, modem_configuration_command) < 65536 && pb_membersize(openxc_ControlCommand, rtc_configuration_command) < 65536 && pb_membersize(openxc_DiagnosticControlCommand, request) < 65536 && pb_membersize(openxc_NetworkOperatorSettings, networkDescriptor) < 65536 && pb_membersize(openxc_ModemConfigurationCommand, networkOperatorSettings) < 65536 && pb_membersize(openxc_ModemConfigurationCommand, networkDataSettings) < 65536 && pb_membersize(openxc_ModemConfigurationCommand, serverConnectSettings) < 65536 && pb_membersize(openxc_SimpleMessage, value) < 65536 && pb_membersize(openxc_SimpleMessage, event) < 65536), YOU_MUST_DEFINE_PB_FIELD_32BIT_FOR_MESSAGES_openxc_VehicleMessage_openxc_CanMessage_openxc_ControlCommand_openxc_DiagnosticControlCommand_openxc_PassthroughModeControlCommand_openxc_AcceptanceFilterBypassCommand_openxc_PayloadFormatCommand_openxc_PredefinedObd2RequestsCommand_openxc_NetworkOperatorSettings_openxc_NetworkOperatorSettings_NetworkDescriptor_openxc_NetworkDataSettings_openxc_ServerConnectSettings_openxc_ModemConfigurationCommand_openxc_RTCConfigurationCommand_openxc_CommandResponse_openxc_DiagnosticRequest_openxc_DiagnosticResponse_openxc_DynamicField_openxc_SimpleMessage)
+#endif
+
+#if !defined(PB_FIELD_16BIT) && !defined(PB_FIELD_32BIT)
+/* If you get an error here, it means that you need to define PB_FIELD_16BIT
+ * compile-time option. You can do that in pb.h or on compiler command line.
+ *
+ * The reason you need to do this is that some of your messages contain tag
+ * numbers or field sizes that are larger than what can fit in the default
+ * 8 bit descriptors.
+ */
+PB_STATIC_ASSERT((pb_membersize(openxc_VehicleMessage, can_message) < 256 && pb_membersize(openxc_VehicleMessage, simple_message) < 256 && pb_membersize(openxc_VehicleMessage, diagnostic_response) < 256 && pb_membersize(openxc_VehicleMessage, control_command) < 256 && pb_membersize(openxc_VehicleMessage, command_response) < 256 && pb_membersize(openxc_ControlCommand, diagnostic_request) < 256 && pb_membersize(openxc_ControlCommand, passthrough_mode_request) < 256 && pb_membersize(openxc_ControlCommand, acceptance_filter_bypass_command) < 256 && pb_membersize(openxc_ControlCommand, payload_format_command) < 256 && pb_membersize(openxc_ControlCommand, predefined_obd2_requests_command) < 256 && pb_membersize(openxc_ControlCommand, modem_configuration_command) < 256 && pb_membersize(openxc_ControlCommand, rtc_configuration_command) < 256 && pb_membersize(openxc_DiagnosticControlCommand, request) < 256 && pb_membersize(openxc_NetworkOperatorSettings, networkDescriptor) < 256 && pb_membersize(openxc_ModemConfigurationCommand, networkOperatorSettings) < 256 && pb_membersize(openxc_ModemConfigurationCommand, networkDataSettings) < 256 && pb_membersize(openxc_ModemConfigurationCommand, serverConnectSettings) < 256 && pb_membersize(openxc_SimpleMessage, value) < 256 && pb_membersize(openxc_SimpleMessage, event) < 256), YOU_MUST_DEFINE_PB_FIELD_16BIT_FOR_MESSAGES_openxc_VehicleMessage_openxc_CanMessage_openxc_ControlCommand_openxc_DiagnosticControlCommand_openxc_PassthroughModeControlCommand_openxc_AcceptanceFilterBypassCommand_openxc_PayloadFormatCommand_openxc_PredefinedObd2RequestsCommand_openxc_NetworkOperatorSettings_openxc_NetworkOperatorSettings_NetworkDescriptor_openxc_NetworkDataSettings_openxc_ServerConnectSettings_openxc_ModemConfigurationCommand_openxc_RTCConfigurationCommand_openxc_CommandResponse_openxc_DiagnosticRequest_openxc_DiagnosticResponse_openxc_DynamicField_openxc_SimpleMessage)
+#endif
+
+
+/* On some platforms (such as AVR), double is really float.
+ * These are not directly supported by nanopb, but see example_avr_double.
+ * To get rid of this error, remove any double fields from your .proto.
+ */
+PB_STATIC_ASSERT(sizeof(double) == 8, DOUBLE_MUST_BE_8_BYTES)
+
diff --git a/CAN-binder/libs/openxc-message-format/gen/cpp/openxc.pb.h b/CAN-binder/libs/openxc-message-format/gen/cpp/openxc.pb.h
new file mode 100644
index 00000000..09735ee7
--- /dev/null
+++ b/CAN-binder/libs/openxc-message-format/gen/cpp/openxc.pb.h
@@ -0,0 +1,426 @@
+/* Automatically generated nanopb header */
+/* Generated by nanopb-0.3.1 at Wed Sep 14 16:47:53 2016. */
+
+#ifndef PB_OPENXC_PB_H_INCLUDED
+#define PB_OPENXC_PB_H_INCLUDED
+#include <pb.h>
+
+#if PB_PROTO_HEADER_VERSION != 30
+#error Regenerate this file with the current version of nanopb generator.
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Enum definitions */
+typedef enum _openxc_VehicleMessage_Type {
+ openxc_VehicleMessage_Type_CAN = 1,
+ openxc_VehicleMessage_Type_SIMPLE = 2,
+ openxc_VehicleMessage_Type_DIAGNOSTIC = 3,
+ openxc_VehicleMessage_Type_CONTROL_COMMAND = 4,
+ openxc_VehicleMessage_Type_COMMAND_RESPONSE = 5
+} openxc_VehicleMessage_Type;
+
+typedef enum _openxc_CanMessage_FrameFormat {
+ openxc_CanMessage_FrameFormat_STANDARD = 1,
+ openxc_CanMessage_FrameFormat_EXTENDED = 2
+} openxc_CanMessage_FrameFormat;
+
+typedef enum _openxc_ControlCommand_Type {
+ openxc_ControlCommand_Type_VERSION = 1,
+ openxc_ControlCommand_Type_DEVICE_ID = 2,
+ openxc_ControlCommand_Type_DIAGNOSTIC = 3,
+ openxc_ControlCommand_Type_PASSTHROUGH = 4,
+ openxc_ControlCommand_Type_ACCEPTANCE_FILTER_BYPASS = 5,
+ openxc_ControlCommand_Type_PAYLOAD_FORMAT = 6,
+ openxc_ControlCommand_Type_PREDEFINED_OBD2_REQUESTS = 7,
+ openxc_ControlCommand_Type_MODEM_CONFIGURATION = 8,
+ openxc_ControlCommand_Type_RTC_CONFIGURATION = 9,
+ openxc_ControlCommand_Type_SD_MOUNT_STATUS = 10,
+ openxc_ControlCommand_Type_PLATFORM = 11
+} openxc_ControlCommand_Type;
+
+typedef enum _openxc_DiagnosticControlCommand_Action {
+ openxc_DiagnosticControlCommand_Action_ADD = 1,
+ openxc_DiagnosticControlCommand_Action_CANCEL = 2
+} openxc_DiagnosticControlCommand_Action;
+
+typedef enum _openxc_PayloadFormatCommand_PayloadFormat {
+ openxc_PayloadFormatCommand_PayloadFormat_JSON = 1,
+ openxc_PayloadFormatCommand_PayloadFormat_PROTOBUF = 2,
+ openxc_PayloadFormatCommand_PayloadFormat_MESSAGEPACK = 3
+} openxc_PayloadFormatCommand_PayloadFormat;
+
+typedef enum _openxc_NetworkOperatorSettings_OperatorSelectMode {
+ openxc_NetworkOperatorSettings_OperatorSelectMode_AUTOMATIC = 0,
+ openxc_NetworkOperatorSettings_OperatorSelectMode_MANUAL = 1,
+ openxc_NetworkOperatorSettings_OperatorSelectMode_DEREGISTER = 2,
+ openxc_NetworkOperatorSettings_OperatorSelectMode_SET_ONLY = 3,
+ openxc_NetworkOperatorSettings_OperatorSelectMode_MANUAL_AUTOMATIC = 4
+} openxc_NetworkOperatorSettings_OperatorSelectMode;
+
+typedef enum _openxc_NetworkOperatorSettings_NetworkDescriptor_NetworkType {
+ openxc_NetworkOperatorSettings_NetworkDescriptor_NetworkType_GSM = 0,
+ openxc_NetworkOperatorSettings_NetworkDescriptor_NetworkType_UTRAN = 2
+} openxc_NetworkOperatorSettings_NetworkDescriptor_NetworkType;
+
+typedef enum _openxc_DiagnosticRequest_DecodedType {
+ openxc_DiagnosticRequest_DecodedType_NONE = 1,
+ openxc_DiagnosticRequest_DecodedType_OBD2 = 2
+} openxc_DiagnosticRequest_DecodedType;
+
+typedef enum _openxc_DynamicField_Type {
+ openxc_DynamicField_Type_STRING = 1,
+ openxc_DynamicField_Type_NUM = 2,
+ openxc_DynamicField_Type_BOOL = 3
+} openxc_DynamicField_Type;
+
+/* Struct definitions */
+typedef struct _openxc_NetworkDataSettings {
+ pb_callback_t APN;
+} openxc_NetworkDataSettings;
+
+typedef struct _openxc_AcceptanceFilterBypassCommand {
+ bool has_bus;
+ int32_t bus;
+ bool has_bypass;
+ bool bypass;
+} openxc_AcceptanceFilterBypassCommand;
+
+typedef PB_BYTES_ARRAY_T(8) openxc_CanMessage_data_t;
+
+typedef struct _openxc_CanMessage {
+ bool has_bus;
+ int32_t bus;
+ bool has_id;
+ uint32_t id;
+ bool has_data;
+ openxc_CanMessage_data_t data;
+ bool has_frame_format;
+ openxc_CanMessage_FrameFormat frame_format;
+} openxc_CanMessage;
+
+typedef struct _openxc_CommandResponse {
+ bool has_type;
+ openxc_ControlCommand_Type type;
+ bool has_message;
+ char message[128];
+ bool has_status;
+ bool status;
+} openxc_CommandResponse;
+
+typedef PB_BYTES_ARRAY_T(8) openxc_DiagnosticRequest_payload_t;
+
+typedef struct _openxc_DiagnosticRequest {
+ bool has_bus;
+ int32_t bus;
+ bool has_message_id;
+ uint32_t message_id;
+ bool has_mode;
+ uint32_t mode;
+ bool has_pid;
+ uint32_t pid;
+ bool has_payload;
+ openxc_DiagnosticRequest_payload_t payload;
+ bool has_multiple_responses;
+ bool multiple_responses;
+ bool has_frequency;
+ double frequency;
+ bool has_name;
+ char name[10];
+ bool has_decoded_type;
+ openxc_DiagnosticRequest_DecodedType decoded_type;
+} openxc_DiagnosticRequest;
+
+typedef PB_BYTES_ARRAY_T(255) openxc_DiagnosticResponse_payload_t;
+
+typedef struct _openxc_DiagnosticResponse {
+ bool has_bus;
+ int32_t bus;
+ bool has_message_id;
+ uint32_t message_id;
+ bool has_mode;
+ uint32_t mode;
+ bool has_pid;
+ uint32_t pid;
+ bool has_success;
+ bool success;
+ bool has_negative_response_code;
+ uint32_t negative_response_code;
+ bool has_payload;
+ openxc_DiagnosticResponse_payload_t payload;
+ bool has_value;
+ double value;
+} openxc_DiagnosticResponse;
+
+typedef struct _openxc_DynamicField {
+ bool has_type;
+ openxc_DynamicField_Type type;
+ bool has_string_value;
+ char string_value[100];
+ bool has_numeric_value;
+ double numeric_value;
+ bool has_boolean_value;
+ bool boolean_value;
+} openxc_DynamicField;
+
+typedef struct _openxc_NetworkOperatorSettings_NetworkDescriptor {
+ bool has_PLMN;
+ uint32_t PLMN;
+ bool has_networkType;
+ openxc_NetworkOperatorSettings_NetworkDescriptor_NetworkType networkType;
+} openxc_NetworkOperatorSettings_NetworkDescriptor;
+
+typedef struct _openxc_PassthroughModeControlCommand {
+ bool has_bus;
+ int32_t bus;
+ bool has_enabled;
+ bool enabled;
+} openxc_PassthroughModeControlCommand;
+
+typedef struct _openxc_PayloadFormatCommand {
+ bool has_format;
+ openxc_PayloadFormatCommand_PayloadFormat format;
+} openxc_PayloadFormatCommand;
+
+typedef struct _openxc_PredefinedObd2RequestsCommand {
+ bool has_enabled;
+ bool enabled;
+} openxc_PredefinedObd2RequestsCommand;
+
+typedef struct _openxc_RTCConfigurationCommand {
+ bool has_unix_time;
+ uint32_t unix_time;
+} openxc_RTCConfigurationCommand;
+
+typedef struct _openxc_ServerConnectSettings {
+ bool has_host;
+ char host[128];
+ bool has_port;
+ uint32_t port;
+} openxc_ServerConnectSettings;
+
+typedef struct _openxc_DiagnosticControlCommand {
+ bool has_request;
+ openxc_DiagnosticRequest request;
+ bool has_action;
+ openxc_DiagnosticControlCommand_Action action;
+} openxc_DiagnosticControlCommand;
+
+typedef struct _openxc_NetworkOperatorSettings {
+ bool has_allowDataRoaming;
+ bool allowDataRoaming;
+ bool has_operatorSelectMode;
+ openxc_NetworkOperatorSettings_OperatorSelectMode operatorSelectMode;
+ bool has_networkDescriptor;
+ openxc_NetworkOperatorSettings_NetworkDescriptor networkDescriptor;
+} openxc_NetworkOperatorSettings;
+
+typedef struct _openxc_SimpleMessage {
+ bool has_name;
+ char name[100];
+ bool has_value;
+ openxc_DynamicField value;
+ bool has_event;
+ openxc_DynamicField event;
+} openxc_SimpleMessage;
+
+typedef struct _openxc_ModemConfigurationCommand {
+ bool has_networkOperatorSettings;
+ openxc_NetworkOperatorSettings networkOperatorSettings;
+ bool has_networkDataSettings;
+ openxc_NetworkDataSettings networkDataSettings;
+ bool has_serverConnectSettings;
+ openxc_ServerConnectSettings serverConnectSettings;
+} openxc_ModemConfigurationCommand;
+
+typedef struct _openxc_ControlCommand {
+ bool has_type;
+ openxc_ControlCommand_Type type;
+ bool has_diagnostic_request;
+ openxc_DiagnosticControlCommand diagnostic_request;
+ bool has_passthrough_mode_request;
+ openxc_PassthroughModeControlCommand passthrough_mode_request;
+ bool has_acceptance_filter_bypass_command;
+ openxc_AcceptanceFilterBypassCommand acceptance_filter_bypass_command;
+ bool has_payload_format_command;
+ openxc_PayloadFormatCommand payload_format_command;
+ bool has_predefined_obd2_requests_command;
+ openxc_PredefinedObd2RequestsCommand predefined_obd2_requests_command;
+ bool has_modem_configuration_command;
+ openxc_ModemConfigurationCommand modem_configuration_command;
+ bool has_rtc_configuration_command;
+ openxc_RTCConfigurationCommand rtc_configuration_command;
+} openxc_ControlCommand;
+
+typedef struct _openxc_VehicleMessage {
+ bool has_type;
+ openxc_VehicleMessage_Type type;
+ bool has_can_message;
+ openxc_CanMessage can_message;
+ bool has_simple_message;
+ openxc_SimpleMessage simple_message;
+ bool has_diagnostic_response;
+ openxc_DiagnosticResponse diagnostic_response;
+ bool has_control_command;
+ openxc_ControlCommand control_command;
+ bool has_command_response;
+ openxc_CommandResponse command_response;
+ bool has_timestamp;
+ uint64_t timestamp;
+} openxc_VehicleMessage;
+
+/* Default values for struct fields */
+
+/* Initializer values for message structs */
+#define openxc_VehicleMessage_init_default {false, (openxc_VehicleMessage_Type)0, false, openxc_CanMessage_init_default, false, openxc_SimpleMessage_init_default, false, openxc_DiagnosticResponse_init_default, false, openxc_ControlCommand_init_default, false, openxc_CommandResponse_init_default, false, 0}
+#define openxc_CanMessage_init_default {false, 0, false, 0, false, {0, {0}}, false, (openxc_CanMessage_FrameFormat)0}
+#define openxc_ControlCommand_init_default {false, (openxc_ControlCommand_Type)0, false, openxc_DiagnosticControlCommand_init_default, false, openxc_PassthroughModeControlCommand_init_default, false, openxc_AcceptanceFilterBypassCommand_init_default, false, openxc_PayloadFormatCommand_init_default, false, openxc_PredefinedObd2RequestsCommand_init_default, false, openxc_ModemConfigurationCommand_init_default, false, openxc_RTCConfigurationCommand_init_default}
+#define openxc_DiagnosticControlCommand_init_default {false, openxc_DiagnosticRequest_init_default, false, (openxc_DiagnosticControlCommand_Action)0}
+#define openxc_PassthroughModeControlCommand_init_default {false, 0, false, 0}
+#define openxc_AcceptanceFilterBypassCommand_init_default {false, 0, false, 0}
+#define openxc_PayloadFormatCommand_init_default {false, (openxc_PayloadFormatCommand_PayloadFormat)0}
+#define openxc_PredefinedObd2RequestsCommand_init_default {false, 0}
+#define openxc_NetworkOperatorSettings_init_default {false, 0, false, (openxc_NetworkOperatorSettings_OperatorSelectMode)0, false, openxc_NetworkOperatorSettings_NetworkDescriptor_init_default}
+#define openxc_NetworkOperatorSettings_NetworkDescriptor_init_default {false, 0, false, (openxc_NetworkOperatorSettings_NetworkDescriptor_NetworkType)0}
+#define openxc_NetworkDataSettings_init_default {{{NULL}, NULL}}
+#define openxc_ServerConnectSettings_init_default {false, "", false, 0}
+#define openxc_ModemConfigurationCommand_init_default {false, openxc_NetworkOperatorSettings_init_default, false, openxc_NetworkDataSettings_init_default, false, openxc_ServerConnectSettings_init_default}
+#define openxc_RTCConfigurationCommand_init_default {false, 0}
+#define openxc_CommandResponse_init_default {false, (openxc_ControlCommand_Type)0, false, "", false, 0}
+#define openxc_DiagnosticRequest_init_default {false, 0, false, 0, false, 0, false, 0, false, {0, {0}}, false, 0, false, 0, false, "", false, (openxc_DiagnosticRequest_DecodedType)0}
+#define openxc_DiagnosticResponse_init_default {false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, {0, {0}}, false, 0}
+#define openxc_DynamicField_init_default {false, (openxc_DynamicField_Type)0, false, "", false, 0, false, 0}
+#define openxc_SimpleMessage_init_default {false, "", false, openxc_DynamicField_init_default, false, openxc_DynamicField_init_default}
+#define openxc_VehicleMessage_init_zero {false, (openxc_VehicleMessage_Type)0, false, openxc_CanMessage_init_zero, false, openxc_SimpleMessage_init_zero, false, openxc_DiagnosticResponse_init_zero, false, openxc_ControlCommand_init_zero, false, openxc_CommandResponse_init_zero, false, 0}
+#define openxc_CanMessage_init_zero {false, 0, false, 0, false, {0, {0}}, false, (openxc_CanMessage_FrameFormat)0}
+#define openxc_ControlCommand_init_zero {false, (openxc_ControlCommand_Type)0, false, openxc_DiagnosticControlCommand_init_zero, false, openxc_PassthroughModeControlCommand_init_zero, false, openxc_AcceptanceFilterBypassCommand_init_zero, false, openxc_PayloadFormatCommand_init_zero, false, openxc_PredefinedObd2RequestsCommand_init_zero, false, openxc_ModemConfigurationCommand_init_zero, false, openxc_RTCConfigurationCommand_init_zero}
+#define openxc_DiagnosticControlCommand_init_zero {false, openxc_DiagnosticRequest_init_zero, false, (openxc_DiagnosticControlCommand_Action)0}
+#define openxc_PassthroughModeControlCommand_init_zero {false, 0, false, 0}
+#define openxc_AcceptanceFilterBypassCommand_init_zero {false, 0, false, 0}
+#define openxc_PayloadFormatCommand_init_zero {false, (openxc_PayloadFormatCommand_PayloadFormat)0}
+#define openxc_PredefinedObd2RequestsCommand_init_zero {false, 0}
+#define openxc_NetworkOperatorSettings_init_zero {false, 0, false, (openxc_NetworkOperatorSettings_OperatorSelectMode)0, false, openxc_NetworkOperatorSettings_NetworkDescriptor_init_zero}
+#define openxc_NetworkOperatorSettings_NetworkDescriptor_init_zero {false, 0, false, (openxc_NetworkOperatorSettings_NetworkDescriptor_NetworkType)0}
+#define openxc_NetworkDataSettings_init_zero {{{NULL}, NULL}}
+#define openxc_ServerConnectSettings_init_zero {false, "", false, 0}
+#define openxc_ModemConfigurationCommand_init_zero {false, openxc_NetworkOperatorSettings_init_zero, false, openxc_NetworkDataSettings_init_zero, false, openxc_ServerConnectSettings_init_zero}
+#define openxc_RTCConfigurationCommand_init_zero {false, 0}
+#define openxc_CommandResponse_init_zero {false, (openxc_ControlCommand_Type)0, false, "", false, 0}
+#define openxc_DiagnosticRequest_init_zero {false, 0, false, 0, false, 0, false, 0, false, {0, {0}}, false, 0, false, 0, false, "", false, (openxc_DiagnosticRequest_DecodedType)0}
+#define openxc_DiagnosticResponse_init_zero {false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, {0, {0}}, false, 0}
+#define openxc_DynamicField_init_zero {false, (openxc_DynamicField_Type)0, false, "", false, 0, false, 0}
+#define openxc_SimpleMessage_init_zero {false, "", false, openxc_DynamicField_init_zero, false, openxc_DynamicField_init_zero}
+
+/* Field tags (for use in manual encoding/decoding) */
+#define openxc_NetworkDataSettings_APN_tag 1
+#define openxc_AcceptanceFilterBypassCommand_bus_tag 1
+#define openxc_AcceptanceFilterBypassCommand_bypass_tag 2
+#define openxc_CanMessage_bus_tag 1
+#define openxc_CanMessage_id_tag 2
+#define openxc_CanMessage_data_tag 3
+#define openxc_CanMessage_frame_format_tag 4
+#define openxc_CommandResponse_type_tag 1
+#define openxc_CommandResponse_message_tag 2
+#define openxc_CommandResponse_status_tag 3
+#define openxc_DiagnosticRequest_bus_tag 1
+#define openxc_DiagnosticRequest_message_id_tag 2
+#define openxc_DiagnosticRequest_mode_tag 3
+#define openxc_DiagnosticRequest_pid_tag 4
+#define openxc_DiagnosticRequest_payload_tag 5
+#define openxc_DiagnosticRequest_multiple_responses_tag 6
+#define openxc_DiagnosticRequest_frequency_tag 7
+#define openxc_DiagnosticRequest_name_tag 8
+#define openxc_DiagnosticRequest_decoded_type_tag 9
+#define openxc_DiagnosticResponse_bus_tag 1
+#define openxc_DiagnosticResponse_message_id_tag 2
+#define openxc_DiagnosticResponse_mode_tag 3
+#define openxc_DiagnosticResponse_pid_tag 4
+#define openxc_DiagnosticResponse_success_tag 5
+#define openxc_DiagnosticResponse_negative_response_code_tag 6
+#define openxc_DiagnosticResponse_payload_tag 7
+#define openxc_DiagnosticResponse_value_tag 8
+#define openxc_DynamicField_type_tag 1
+#define openxc_DynamicField_string_value_tag 2
+#define openxc_DynamicField_numeric_value_tag 3
+#define openxc_DynamicField_boolean_value_tag 4
+#define openxc_NetworkOperatorSettings_NetworkDescriptor_PLMN_tag 1
+#define openxc_NetworkOperatorSettings_NetworkDescriptor_networkType_tag 2
+#define openxc_PassthroughModeControlCommand_bus_tag 1
+#define openxc_PassthroughModeControlCommand_enabled_tag 2
+#define openxc_PayloadFormatCommand_format_tag 1
+#define openxc_PredefinedObd2RequestsCommand_enabled_tag 1
+#define openxc_RTCConfigurationCommand_unix_time_tag 1
+#define openxc_ServerConnectSettings_host_tag 1
+#define openxc_ServerConnectSettings_port_tag 2
+#define openxc_DiagnosticControlCommand_request_tag 1
+#define openxc_DiagnosticControlCommand_action_tag 2
+#define openxc_NetworkOperatorSettings_allowDataRoaming_tag 1
+#define openxc_NetworkOperatorSettings_operatorSelectMode_tag 2
+#define openxc_NetworkOperatorSettings_networkDescriptor_tag 3
+#define openxc_SimpleMessage_name_tag 1
+#define openxc_SimpleMessage_value_tag 2
+#define openxc_SimpleMessage_event_tag 3
+#define openxc_ModemConfigurationCommand_networkOperatorSettings_tag 1
+#define openxc_ModemConfigurationCommand_networkDataSettings_tag 2
+#define openxc_ModemConfigurationCommand_serverConnectSettings_tag 3
+#define openxc_ControlCommand_type_tag 1
+#define openxc_ControlCommand_diagnostic_request_tag 2
+#define openxc_ControlCommand_passthrough_mode_request_tag 3
+#define openxc_ControlCommand_acceptance_filter_bypass_command_tag 4
+#define openxc_ControlCommand_payload_format_command_tag 5
+#define openxc_ControlCommand_predefined_obd2_requests_command_tag 6
+#define openxc_ControlCommand_modem_configuration_command_tag 7
+#define openxc_ControlCommand_rtc_configuration_command_tag 8
+#define openxc_VehicleMessage_type_tag 1
+#define openxc_VehicleMessage_can_message_tag 2
+#define openxc_VehicleMessage_simple_message_tag 3
+#define openxc_VehicleMessage_diagnostic_response_tag 4
+#define openxc_VehicleMessage_control_command_tag 5
+#define openxc_VehicleMessage_command_response_tag 6
+#define openxc_VehicleMessage_timestamp_tag 7
+
+/* Struct field encoding specification for nanopb */
+extern const pb_field_t openxc_VehicleMessage_fields[8];
+extern const pb_field_t openxc_CanMessage_fields[5];
+extern const pb_field_t openxc_ControlCommand_fields[9];
+extern const pb_field_t openxc_DiagnosticControlCommand_fields[3];
+extern const pb_field_t openxc_PassthroughModeControlCommand_fields[3];
+extern const pb_field_t openxc_AcceptanceFilterBypassCommand_fields[3];
+extern const pb_field_t openxc_PayloadFormatCommand_fields[2];
+extern const pb_field_t openxc_PredefinedObd2RequestsCommand_fields[2];
+extern const pb_field_t openxc_NetworkOperatorSettings_fields[4];
+extern const pb_field_t openxc_NetworkOperatorSettings_NetworkDescriptor_fields[3];
+extern const pb_field_t openxc_NetworkDataSettings_fields[2];
+extern const pb_field_t openxc_ServerConnectSettings_fields[3];
+extern const pb_field_t openxc_ModemConfigurationCommand_fields[4];
+extern const pb_field_t openxc_RTCConfigurationCommand_fields[2];
+extern const pb_field_t openxc_CommandResponse_fields[4];
+extern const pb_field_t openxc_DiagnosticRequest_fields[10];
+extern const pb_field_t openxc_DiagnosticResponse_fields[9];
+extern const pb_field_t openxc_DynamicField_fields[5];
+extern const pb_field_t openxc_SimpleMessage_fields[4];
+
+/* Maximum encoded size of messages (where known) */
+#define openxc_CanMessage_size 33
+#define openxc_DiagnosticControlCommand_size 76
+#define openxc_PassthroughModeControlCommand_size 13
+#define openxc_AcceptanceFilterBypassCommand_size 13
+#define openxc_PayloadFormatCommand_size 6
+#define openxc_PredefinedObd2RequestsCommand_size 2
+#define openxc_NetworkOperatorSettings_size 22
+#define openxc_NetworkOperatorSettings_NetworkDescriptor_size 12
+#define openxc_ServerConnectSettings_size 137
+#define openxc_RTCConfigurationCommand_size 6
+#define openxc_CommandResponse_size 139
+#define openxc_DiagnosticRequest_size 68
+#define openxc_DiagnosticResponse_size 304
+#define openxc_DynamicField_size 119
+#define openxc_SimpleMessage_size 344
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif
diff --git a/CAN-binder/libs/openxc-message-format/gen/java/com/openxc/BinaryMessages.java b/CAN-binder/libs/openxc-message-format/gen/java/com/openxc/BinaryMessages.java
new file mode 100644
index 00000000..4fad1d6a
--- /dev/null
+++ b/CAN-binder/libs/openxc-message-format/gen/java/com/openxc/BinaryMessages.java
@@ -0,0 +1,12099 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: openxc.proto
+
+package com.openxc;
+
+public final class BinaryMessages {
+ private BinaryMessages() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ }
+ public interface VehicleMessageOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional .openxc.VehicleMessage.Type type = 1;
+ boolean hasType();
+ com.openxc.BinaryMessages.VehicleMessage.Type getType();
+
+ // optional .openxc.CanMessage can_message = 2;
+ boolean hasCanMessage();
+ com.openxc.BinaryMessages.CanMessage getCanMessage();
+ com.openxc.BinaryMessages.CanMessageOrBuilder getCanMessageOrBuilder();
+
+ // optional .openxc.SimpleMessage simple_message = 3;
+ boolean hasSimpleMessage();
+ com.openxc.BinaryMessages.SimpleMessage getSimpleMessage();
+ com.openxc.BinaryMessages.SimpleMessageOrBuilder getSimpleMessageOrBuilder();
+
+ // optional .openxc.DiagnosticResponse diagnostic_response = 4;
+ boolean hasDiagnosticResponse();
+ com.openxc.BinaryMessages.DiagnosticResponse getDiagnosticResponse();
+ com.openxc.BinaryMessages.DiagnosticResponseOrBuilder getDiagnosticResponseOrBuilder();
+
+ // optional .openxc.ControlCommand control_command = 5;
+ boolean hasControlCommand();
+ com.openxc.BinaryMessages.ControlCommand getControlCommand();
+ com.openxc.BinaryMessages.ControlCommandOrBuilder getControlCommandOrBuilder();
+
+ // optional .openxc.CommandResponse command_response = 6;
+ boolean hasCommandResponse();
+ com.openxc.BinaryMessages.CommandResponse getCommandResponse();
+ com.openxc.BinaryMessages.CommandResponseOrBuilder getCommandResponseOrBuilder();
+
+ // optional uint64 timestamp = 7;
+ boolean hasTimestamp();
+ long getTimestamp();
+ }
+ public static final class VehicleMessage extends
+ com.google.protobuf.GeneratedMessage
+ implements VehicleMessageOrBuilder {
+ // Use VehicleMessage.newBuilder() to construct.
+ private VehicleMessage(Builder builder) {
+ super(builder);
+ }
+ private VehicleMessage(boolean noInit) {}
+
+ private static final VehicleMessage defaultInstance;
+ public static VehicleMessage getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public VehicleMessage getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_VehicleMessage_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_VehicleMessage_fieldAccessorTable;
+ }
+
+ public enum Type
+ implements com.google.protobuf.ProtocolMessageEnum {
+ CAN(0, 1),
+ SIMPLE(1, 2),
+ DIAGNOSTIC(2, 3),
+ CONTROL_COMMAND(3, 4),
+ COMMAND_RESPONSE(4, 5),
+ ;
+
+ public static final int CAN_VALUE = 1;
+ public static final int SIMPLE_VALUE = 2;
+ public static final int DIAGNOSTIC_VALUE = 3;
+ public static final int CONTROL_COMMAND_VALUE = 4;
+ public static final int COMMAND_RESPONSE_VALUE = 5;
+
+
+ public final int getNumber() { return value; }
+
+ public static Type valueOf(int value) {
+ switch (value) {
+ case 1: return CAN;
+ case 2: return SIMPLE;
+ case 3: return DIAGNOSTIC;
+ case 4: return CONTROL_COMMAND;
+ case 5: return COMMAND_RESPONSE;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap<Type>
+ internalGetValueMap() {
+ return internalValueMap;
+ }
+ private static com.google.protobuf.Internal.EnumLiteMap<Type>
+ internalValueMap =
+ new com.google.protobuf.Internal.EnumLiteMap<Type>() {
+ public Type findValueByNumber(int number) {
+ return Type.valueOf(number);
+ }
+ };
+
+ public final com.google.protobuf.Descriptors.EnumValueDescriptor
+ getValueDescriptor() {
+ return getDescriptor().getValues().get(index);
+ }
+ public final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptorForType() {
+ return getDescriptor();
+ }
+ public static final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.VehicleMessage.getDescriptor().getEnumTypes().get(0);
+ }
+
+ private static final Type[] VALUES = {
+ CAN, SIMPLE, DIAGNOSTIC, CONTROL_COMMAND, COMMAND_RESPONSE,
+ };
+
+ public static Type valueOf(
+ com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+ if (desc.getType() != getDescriptor()) {
+ throw new java.lang.IllegalArgumentException(
+ "EnumValueDescriptor is not for this type.");
+ }
+ return VALUES[desc.getIndex()];
+ }
+
+ private final int index;
+ private final int value;
+
+ private Type(int index, int value) {
+ this.index = index;
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:openxc.VehicleMessage.Type)
+ }
+
+ private int bitField0_;
+ // optional .openxc.VehicleMessage.Type type = 1;
+ public static final int TYPE_FIELD_NUMBER = 1;
+ private com.openxc.BinaryMessages.VehicleMessage.Type type_;
+ public boolean hasType() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public com.openxc.BinaryMessages.VehicleMessage.Type getType() {
+ return type_;
+ }
+
+ // optional .openxc.CanMessage can_message = 2;
+ public static final int CAN_MESSAGE_FIELD_NUMBER = 2;
+ private com.openxc.BinaryMessages.CanMessage canMessage_;
+ public boolean hasCanMessage() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public com.openxc.BinaryMessages.CanMessage getCanMessage() {
+ return canMessage_;
+ }
+ public com.openxc.BinaryMessages.CanMessageOrBuilder getCanMessageOrBuilder() {
+ return canMessage_;
+ }
+
+ // optional .openxc.SimpleMessage simple_message = 3;
+ public static final int SIMPLE_MESSAGE_FIELD_NUMBER = 3;
+ private com.openxc.BinaryMessages.SimpleMessage simpleMessage_;
+ public boolean hasSimpleMessage() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ public com.openxc.BinaryMessages.SimpleMessage getSimpleMessage() {
+ return simpleMessage_;
+ }
+ public com.openxc.BinaryMessages.SimpleMessageOrBuilder getSimpleMessageOrBuilder() {
+ return simpleMessage_;
+ }
+
+ // optional .openxc.DiagnosticResponse diagnostic_response = 4;
+ public static final int DIAGNOSTIC_RESPONSE_FIELD_NUMBER = 4;
+ private com.openxc.BinaryMessages.DiagnosticResponse diagnosticResponse_;
+ public boolean hasDiagnosticResponse() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ public com.openxc.BinaryMessages.DiagnosticResponse getDiagnosticResponse() {
+ return diagnosticResponse_;
+ }
+ public com.openxc.BinaryMessages.DiagnosticResponseOrBuilder getDiagnosticResponseOrBuilder() {
+ return diagnosticResponse_;
+ }
+
+ // optional .openxc.ControlCommand control_command = 5;
+ public static final int CONTROL_COMMAND_FIELD_NUMBER = 5;
+ private com.openxc.BinaryMessages.ControlCommand controlCommand_;
+ public boolean hasControlCommand() {
+ return ((bitField0_ & 0x00000010) == 0x00000010);
+ }
+ public com.openxc.BinaryMessages.ControlCommand getControlCommand() {
+ return controlCommand_;
+ }
+ public com.openxc.BinaryMessages.ControlCommandOrBuilder getControlCommandOrBuilder() {
+ return controlCommand_;
+ }
+
+ // optional .openxc.CommandResponse command_response = 6;
+ public static final int COMMAND_RESPONSE_FIELD_NUMBER = 6;
+ private com.openxc.BinaryMessages.CommandResponse commandResponse_;
+ public boolean hasCommandResponse() {
+ return ((bitField0_ & 0x00000020) == 0x00000020);
+ }
+ public com.openxc.BinaryMessages.CommandResponse getCommandResponse() {
+ return commandResponse_;
+ }
+ public com.openxc.BinaryMessages.CommandResponseOrBuilder getCommandResponseOrBuilder() {
+ return commandResponse_;
+ }
+
+ // optional uint64 timestamp = 7;
+ public static final int TIMESTAMP_FIELD_NUMBER = 7;
+ private long timestamp_;
+ public boolean hasTimestamp() {
+ return ((bitField0_ & 0x00000040) == 0x00000040);
+ }
+ public long getTimestamp() {
+ return timestamp_;
+ }
+
+ private void initFields() {
+ type_ = com.openxc.BinaryMessages.VehicleMessage.Type.CAN;
+ canMessage_ = com.openxc.BinaryMessages.CanMessage.getDefaultInstance();
+ simpleMessage_ = com.openxc.BinaryMessages.SimpleMessage.getDefaultInstance();
+ diagnosticResponse_ = com.openxc.BinaryMessages.DiagnosticResponse.getDefaultInstance();
+ controlCommand_ = com.openxc.BinaryMessages.ControlCommand.getDefaultInstance();
+ commandResponse_ = com.openxc.BinaryMessages.CommandResponse.getDefaultInstance();
+ timestamp_ = 0L;
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeEnum(1, type_.getNumber());
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeMessage(2, canMessage_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ output.writeMessage(3, simpleMessage_);
+ }
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ output.writeMessage(4, diagnosticResponse_);
+ }
+ if (((bitField0_ & 0x00000010) == 0x00000010)) {
+ output.writeMessage(5, controlCommand_);
+ }
+ if (((bitField0_ & 0x00000020) == 0x00000020)) {
+ output.writeMessage(6, commandResponse_);
+ }
+ if (((bitField0_ & 0x00000040) == 0x00000040)) {
+ output.writeUInt64(7, timestamp_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(1, type_.getNumber());
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(2, canMessage_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(3, simpleMessage_);
+ }
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(4, diagnosticResponse_);
+ }
+ if (((bitField0_ & 0x00000010) == 0x00000010)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(5, controlCommand_);
+ }
+ if (((bitField0_ & 0x00000020) == 0x00000020)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(6, commandResponse_);
+ }
+ if (((bitField0_ & 0x00000040) == 0x00000040)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt64Size(7, timestamp_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static com.openxc.BinaryMessages.VehicleMessage parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.VehicleMessage parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.VehicleMessage parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.VehicleMessage parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.VehicleMessage parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.VehicleMessage parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.VehicleMessage parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.VehicleMessage parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.VehicleMessage parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.VehicleMessage parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(com.openxc.BinaryMessages.VehicleMessage prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements com.openxc.BinaryMessages.VehicleMessageOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_VehicleMessage_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_VehicleMessage_fieldAccessorTable;
+ }
+
+ // Construct using com.openxc.BinaryMessages.VehicleMessage.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ getCanMessageFieldBuilder();
+ getSimpleMessageFieldBuilder();
+ getDiagnosticResponseFieldBuilder();
+ getControlCommandFieldBuilder();
+ getCommandResponseFieldBuilder();
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ type_ = com.openxc.BinaryMessages.VehicleMessage.Type.CAN;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ if (canMessageBuilder_ == null) {
+ canMessage_ = com.openxc.BinaryMessages.CanMessage.getDefaultInstance();
+ } else {
+ canMessageBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000002);
+ if (simpleMessageBuilder_ == null) {
+ simpleMessage_ = com.openxc.BinaryMessages.SimpleMessage.getDefaultInstance();
+ } else {
+ simpleMessageBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000004);
+ if (diagnosticResponseBuilder_ == null) {
+ diagnosticResponse_ = com.openxc.BinaryMessages.DiagnosticResponse.getDefaultInstance();
+ } else {
+ diagnosticResponseBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000008);
+ if (controlCommandBuilder_ == null) {
+ controlCommand_ = com.openxc.BinaryMessages.ControlCommand.getDefaultInstance();
+ } else {
+ controlCommandBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000010);
+ if (commandResponseBuilder_ == null) {
+ commandResponse_ = com.openxc.BinaryMessages.CommandResponse.getDefaultInstance();
+ } else {
+ commandResponseBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000020);
+ timestamp_ = 0L;
+ bitField0_ = (bitField0_ & ~0x00000040);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.openxc.BinaryMessages.VehicleMessage.getDescriptor();
+ }
+
+ public com.openxc.BinaryMessages.VehicleMessage getDefaultInstanceForType() {
+ return com.openxc.BinaryMessages.VehicleMessage.getDefaultInstance();
+ }
+
+ public com.openxc.BinaryMessages.VehicleMessage build() {
+ com.openxc.BinaryMessages.VehicleMessage result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ private com.openxc.BinaryMessages.VehicleMessage buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ com.openxc.BinaryMessages.VehicleMessage result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return result;
+ }
+
+ public com.openxc.BinaryMessages.VehicleMessage buildPartial() {
+ com.openxc.BinaryMessages.VehicleMessage result = new com.openxc.BinaryMessages.VehicleMessage(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.type_ = type_;
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ if (canMessageBuilder_ == null) {
+ result.canMessage_ = canMessage_;
+ } else {
+ result.canMessage_ = canMessageBuilder_.build();
+ }
+ if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+ to_bitField0_ |= 0x00000004;
+ }
+ if (simpleMessageBuilder_ == null) {
+ result.simpleMessage_ = simpleMessage_;
+ } else {
+ result.simpleMessage_ = simpleMessageBuilder_.build();
+ }
+ if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
+ to_bitField0_ |= 0x00000008;
+ }
+ if (diagnosticResponseBuilder_ == null) {
+ result.diagnosticResponse_ = diagnosticResponse_;
+ } else {
+ result.diagnosticResponse_ = diagnosticResponseBuilder_.build();
+ }
+ if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
+ to_bitField0_ |= 0x00000010;
+ }
+ if (controlCommandBuilder_ == null) {
+ result.controlCommand_ = controlCommand_;
+ } else {
+ result.controlCommand_ = controlCommandBuilder_.build();
+ }
+ if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
+ to_bitField0_ |= 0x00000020;
+ }
+ if (commandResponseBuilder_ == null) {
+ result.commandResponse_ = commandResponse_;
+ } else {
+ result.commandResponse_ = commandResponseBuilder_.build();
+ }
+ if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
+ to_bitField0_ |= 0x00000040;
+ }
+ result.timestamp_ = timestamp_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.openxc.BinaryMessages.VehicleMessage) {
+ return mergeFrom((com.openxc.BinaryMessages.VehicleMessage)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.openxc.BinaryMessages.VehicleMessage other) {
+ if (other == com.openxc.BinaryMessages.VehicleMessage.getDefaultInstance()) return this;
+ if (other.hasType()) {
+ setType(other.getType());
+ }
+ if (other.hasCanMessage()) {
+ mergeCanMessage(other.getCanMessage());
+ }
+ if (other.hasSimpleMessage()) {
+ mergeSimpleMessage(other.getSimpleMessage());
+ }
+ if (other.hasDiagnosticResponse()) {
+ mergeDiagnosticResponse(other.getDiagnosticResponse());
+ }
+ if (other.hasControlCommand()) {
+ mergeControlCommand(other.getControlCommand());
+ }
+ if (other.hasCommandResponse()) {
+ mergeCommandResponse(other.getCommandResponse());
+ }
+ if (other.hasTimestamp()) {
+ setTimestamp(other.getTimestamp());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ 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 {
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder(
+ this.getUnknownFields());
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ }
+ break;
+ }
+ case 8: {
+ int rawValue = input.readEnum();
+ com.openxc.BinaryMessages.VehicleMessage.Type value = com.openxc.BinaryMessages.VehicleMessage.Type.valueOf(rawValue);
+ if (value == null) {
+ unknownFields.mergeVarintField(1, rawValue);
+ } else {
+ bitField0_ |= 0x00000001;
+ type_ = value;
+ }
+ break;
+ }
+ case 18: {
+ com.openxc.BinaryMessages.CanMessage.Builder subBuilder = com.openxc.BinaryMessages.CanMessage.newBuilder();
+ if (hasCanMessage()) {
+ subBuilder.mergeFrom(getCanMessage());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setCanMessage(subBuilder.buildPartial());
+ break;
+ }
+ case 26: {
+ com.openxc.BinaryMessages.SimpleMessage.Builder subBuilder = com.openxc.BinaryMessages.SimpleMessage.newBuilder();
+ if (hasSimpleMessage()) {
+ subBuilder.mergeFrom(getSimpleMessage());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setSimpleMessage(subBuilder.buildPartial());
+ break;
+ }
+ case 34: {
+ com.openxc.BinaryMessages.DiagnosticResponse.Builder subBuilder = com.openxc.BinaryMessages.DiagnosticResponse.newBuilder();
+ if (hasDiagnosticResponse()) {
+ subBuilder.mergeFrom(getDiagnosticResponse());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setDiagnosticResponse(subBuilder.buildPartial());
+ break;
+ }
+ case 42: {
+ com.openxc.BinaryMessages.ControlCommand.Builder subBuilder = com.openxc.BinaryMessages.ControlCommand.newBuilder();
+ if (hasControlCommand()) {
+ subBuilder.mergeFrom(getControlCommand());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setControlCommand(subBuilder.buildPartial());
+ break;
+ }
+ case 50: {
+ com.openxc.BinaryMessages.CommandResponse.Builder subBuilder = com.openxc.BinaryMessages.CommandResponse.newBuilder();
+ if (hasCommandResponse()) {
+ subBuilder.mergeFrom(getCommandResponse());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setCommandResponse(subBuilder.buildPartial());
+ break;
+ }
+ case 56: {
+ bitField0_ |= 0x00000040;
+ timestamp_ = input.readUInt64();
+ break;
+ }
+ }
+ }
+ }
+
+ private int bitField0_;
+
+ // optional .openxc.VehicleMessage.Type type = 1;
+ private com.openxc.BinaryMessages.VehicleMessage.Type type_ = com.openxc.BinaryMessages.VehicleMessage.Type.CAN;
+ public boolean hasType() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public com.openxc.BinaryMessages.VehicleMessage.Type getType() {
+ return type_;
+ }
+ public Builder setType(com.openxc.BinaryMessages.VehicleMessage.Type value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000001;
+ type_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearType() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ type_ = com.openxc.BinaryMessages.VehicleMessage.Type.CAN;
+ onChanged();
+ return this;
+ }
+
+ // optional .openxc.CanMessage can_message = 2;
+ private com.openxc.BinaryMessages.CanMessage canMessage_ = com.openxc.BinaryMessages.CanMessage.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.CanMessage, com.openxc.BinaryMessages.CanMessage.Builder, com.openxc.BinaryMessages.CanMessageOrBuilder> canMessageBuilder_;
+ public boolean hasCanMessage() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public com.openxc.BinaryMessages.CanMessage getCanMessage() {
+ if (canMessageBuilder_ == null) {
+ return canMessage_;
+ } else {
+ return canMessageBuilder_.getMessage();
+ }
+ }
+ public Builder setCanMessage(com.openxc.BinaryMessages.CanMessage value) {
+ if (canMessageBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ canMessage_ = value;
+ onChanged();
+ } else {
+ canMessageBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000002;
+ return this;
+ }
+ public Builder setCanMessage(
+ com.openxc.BinaryMessages.CanMessage.Builder builderForValue) {
+ if (canMessageBuilder_ == null) {
+ canMessage_ = builderForValue.build();
+ onChanged();
+ } else {
+ canMessageBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000002;
+ return this;
+ }
+ public Builder mergeCanMessage(com.openxc.BinaryMessages.CanMessage value) {
+ if (canMessageBuilder_ == null) {
+ if (((bitField0_ & 0x00000002) == 0x00000002) &&
+ canMessage_ != com.openxc.BinaryMessages.CanMessage.getDefaultInstance()) {
+ canMessage_ =
+ com.openxc.BinaryMessages.CanMessage.newBuilder(canMessage_).mergeFrom(value).buildPartial();
+ } else {
+ canMessage_ = value;
+ }
+ onChanged();
+ } else {
+ canMessageBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000002;
+ return this;
+ }
+ public Builder clearCanMessage() {
+ if (canMessageBuilder_ == null) {
+ canMessage_ = com.openxc.BinaryMessages.CanMessage.getDefaultInstance();
+ onChanged();
+ } else {
+ canMessageBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000002);
+ return this;
+ }
+ public com.openxc.BinaryMessages.CanMessage.Builder getCanMessageBuilder() {
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return getCanMessageFieldBuilder().getBuilder();
+ }
+ public com.openxc.BinaryMessages.CanMessageOrBuilder getCanMessageOrBuilder() {
+ if (canMessageBuilder_ != null) {
+ return canMessageBuilder_.getMessageOrBuilder();
+ } else {
+ return canMessage_;
+ }
+ }
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.CanMessage, com.openxc.BinaryMessages.CanMessage.Builder, com.openxc.BinaryMessages.CanMessageOrBuilder>
+ getCanMessageFieldBuilder() {
+ if (canMessageBuilder_ == null) {
+ canMessageBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.CanMessage, com.openxc.BinaryMessages.CanMessage.Builder, com.openxc.BinaryMessages.CanMessageOrBuilder>(
+ canMessage_,
+ getParentForChildren(),
+ isClean());
+ canMessage_ = null;
+ }
+ return canMessageBuilder_;
+ }
+
+ // optional .openxc.SimpleMessage simple_message = 3;
+ private com.openxc.BinaryMessages.SimpleMessage simpleMessage_ = com.openxc.BinaryMessages.SimpleMessage.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.SimpleMessage, com.openxc.BinaryMessages.SimpleMessage.Builder, com.openxc.BinaryMessages.SimpleMessageOrBuilder> simpleMessageBuilder_;
+ public boolean hasSimpleMessage() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ public com.openxc.BinaryMessages.SimpleMessage getSimpleMessage() {
+ if (simpleMessageBuilder_ == null) {
+ return simpleMessage_;
+ } else {
+ return simpleMessageBuilder_.getMessage();
+ }
+ }
+ public Builder setSimpleMessage(com.openxc.BinaryMessages.SimpleMessage value) {
+ if (simpleMessageBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ simpleMessage_ = value;
+ onChanged();
+ } else {
+ simpleMessageBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000004;
+ return this;
+ }
+ public Builder setSimpleMessage(
+ com.openxc.BinaryMessages.SimpleMessage.Builder builderForValue) {
+ if (simpleMessageBuilder_ == null) {
+ simpleMessage_ = builderForValue.build();
+ onChanged();
+ } else {
+ simpleMessageBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000004;
+ return this;
+ }
+ public Builder mergeSimpleMessage(com.openxc.BinaryMessages.SimpleMessage value) {
+ if (simpleMessageBuilder_ == null) {
+ if (((bitField0_ & 0x00000004) == 0x00000004) &&
+ simpleMessage_ != com.openxc.BinaryMessages.SimpleMessage.getDefaultInstance()) {
+ simpleMessage_ =
+ com.openxc.BinaryMessages.SimpleMessage.newBuilder(simpleMessage_).mergeFrom(value).buildPartial();
+ } else {
+ simpleMessage_ = value;
+ }
+ onChanged();
+ } else {
+ simpleMessageBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000004;
+ return this;
+ }
+ public Builder clearSimpleMessage() {
+ if (simpleMessageBuilder_ == null) {
+ simpleMessage_ = com.openxc.BinaryMessages.SimpleMessage.getDefaultInstance();
+ onChanged();
+ } else {
+ simpleMessageBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000004);
+ return this;
+ }
+ public com.openxc.BinaryMessages.SimpleMessage.Builder getSimpleMessageBuilder() {
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return getSimpleMessageFieldBuilder().getBuilder();
+ }
+ public com.openxc.BinaryMessages.SimpleMessageOrBuilder getSimpleMessageOrBuilder() {
+ if (simpleMessageBuilder_ != null) {
+ return simpleMessageBuilder_.getMessageOrBuilder();
+ } else {
+ return simpleMessage_;
+ }
+ }
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.SimpleMessage, com.openxc.BinaryMessages.SimpleMessage.Builder, com.openxc.BinaryMessages.SimpleMessageOrBuilder>
+ getSimpleMessageFieldBuilder() {
+ if (simpleMessageBuilder_ == null) {
+ simpleMessageBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.SimpleMessage, com.openxc.BinaryMessages.SimpleMessage.Builder, com.openxc.BinaryMessages.SimpleMessageOrBuilder>(
+ simpleMessage_,
+ getParentForChildren(),
+ isClean());
+ simpleMessage_ = null;
+ }
+ return simpleMessageBuilder_;
+ }
+
+ // optional .openxc.DiagnosticResponse diagnostic_response = 4;
+ private com.openxc.BinaryMessages.DiagnosticResponse diagnosticResponse_ = com.openxc.BinaryMessages.DiagnosticResponse.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.DiagnosticResponse, com.openxc.BinaryMessages.DiagnosticResponse.Builder, com.openxc.BinaryMessages.DiagnosticResponseOrBuilder> diagnosticResponseBuilder_;
+ public boolean hasDiagnosticResponse() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ public com.openxc.BinaryMessages.DiagnosticResponse getDiagnosticResponse() {
+ if (diagnosticResponseBuilder_ == null) {
+ return diagnosticResponse_;
+ } else {
+ return diagnosticResponseBuilder_.getMessage();
+ }
+ }
+ public Builder setDiagnosticResponse(com.openxc.BinaryMessages.DiagnosticResponse value) {
+ if (diagnosticResponseBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ diagnosticResponse_ = value;
+ onChanged();
+ } else {
+ diagnosticResponseBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000008;
+ return this;
+ }
+ public Builder setDiagnosticResponse(
+ com.openxc.BinaryMessages.DiagnosticResponse.Builder builderForValue) {
+ if (diagnosticResponseBuilder_ == null) {
+ diagnosticResponse_ = builderForValue.build();
+ onChanged();
+ } else {
+ diagnosticResponseBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000008;
+ return this;
+ }
+ public Builder mergeDiagnosticResponse(com.openxc.BinaryMessages.DiagnosticResponse value) {
+ if (diagnosticResponseBuilder_ == null) {
+ if (((bitField0_ & 0x00000008) == 0x00000008) &&
+ diagnosticResponse_ != com.openxc.BinaryMessages.DiagnosticResponse.getDefaultInstance()) {
+ diagnosticResponse_ =
+ com.openxc.BinaryMessages.DiagnosticResponse.newBuilder(diagnosticResponse_).mergeFrom(value).buildPartial();
+ } else {
+ diagnosticResponse_ = value;
+ }
+ onChanged();
+ } else {
+ diagnosticResponseBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000008;
+ return this;
+ }
+ public Builder clearDiagnosticResponse() {
+ if (diagnosticResponseBuilder_ == null) {
+ diagnosticResponse_ = com.openxc.BinaryMessages.DiagnosticResponse.getDefaultInstance();
+ onChanged();
+ } else {
+ diagnosticResponseBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000008);
+ return this;
+ }
+ public com.openxc.BinaryMessages.DiagnosticResponse.Builder getDiagnosticResponseBuilder() {
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return getDiagnosticResponseFieldBuilder().getBuilder();
+ }
+ public com.openxc.BinaryMessages.DiagnosticResponseOrBuilder getDiagnosticResponseOrBuilder() {
+ if (diagnosticResponseBuilder_ != null) {
+ return diagnosticResponseBuilder_.getMessageOrBuilder();
+ } else {
+ return diagnosticResponse_;
+ }
+ }
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.DiagnosticResponse, com.openxc.BinaryMessages.DiagnosticResponse.Builder, com.openxc.BinaryMessages.DiagnosticResponseOrBuilder>
+ getDiagnosticResponseFieldBuilder() {
+ if (diagnosticResponseBuilder_ == null) {
+ diagnosticResponseBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.DiagnosticResponse, com.openxc.BinaryMessages.DiagnosticResponse.Builder, com.openxc.BinaryMessages.DiagnosticResponseOrBuilder>(
+ diagnosticResponse_,
+ getParentForChildren(),
+ isClean());
+ diagnosticResponse_ = null;
+ }
+ return diagnosticResponseBuilder_;
+ }
+
+ // optional .openxc.ControlCommand control_command = 5;
+ private com.openxc.BinaryMessages.ControlCommand controlCommand_ = com.openxc.BinaryMessages.ControlCommand.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.ControlCommand, com.openxc.BinaryMessages.ControlCommand.Builder, com.openxc.BinaryMessages.ControlCommandOrBuilder> controlCommandBuilder_;
+ public boolean hasControlCommand() {
+ return ((bitField0_ & 0x00000010) == 0x00000010);
+ }
+ public com.openxc.BinaryMessages.ControlCommand getControlCommand() {
+ if (controlCommandBuilder_ == null) {
+ return controlCommand_;
+ } else {
+ return controlCommandBuilder_.getMessage();
+ }
+ }
+ public Builder setControlCommand(com.openxc.BinaryMessages.ControlCommand value) {
+ if (controlCommandBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ controlCommand_ = value;
+ onChanged();
+ } else {
+ controlCommandBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000010;
+ return this;
+ }
+ public Builder setControlCommand(
+ com.openxc.BinaryMessages.ControlCommand.Builder builderForValue) {
+ if (controlCommandBuilder_ == null) {
+ controlCommand_ = builderForValue.build();
+ onChanged();
+ } else {
+ controlCommandBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000010;
+ return this;
+ }
+ public Builder mergeControlCommand(com.openxc.BinaryMessages.ControlCommand value) {
+ if (controlCommandBuilder_ == null) {
+ if (((bitField0_ & 0x00000010) == 0x00000010) &&
+ controlCommand_ != com.openxc.BinaryMessages.ControlCommand.getDefaultInstance()) {
+ controlCommand_ =
+ com.openxc.BinaryMessages.ControlCommand.newBuilder(controlCommand_).mergeFrom(value).buildPartial();
+ } else {
+ controlCommand_ = value;
+ }
+ onChanged();
+ } else {
+ controlCommandBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000010;
+ return this;
+ }
+ public Builder clearControlCommand() {
+ if (controlCommandBuilder_ == null) {
+ controlCommand_ = com.openxc.BinaryMessages.ControlCommand.getDefaultInstance();
+ onChanged();
+ } else {
+ controlCommandBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000010);
+ return this;
+ }
+ public com.openxc.BinaryMessages.ControlCommand.Builder getControlCommandBuilder() {
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return getControlCommandFieldBuilder().getBuilder();
+ }
+ public com.openxc.BinaryMessages.ControlCommandOrBuilder getControlCommandOrBuilder() {
+ if (controlCommandBuilder_ != null) {
+ return controlCommandBuilder_.getMessageOrBuilder();
+ } else {
+ return controlCommand_;
+ }
+ }
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.ControlCommand, com.openxc.BinaryMessages.ControlCommand.Builder, com.openxc.BinaryMessages.ControlCommandOrBuilder>
+ getControlCommandFieldBuilder() {
+ if (controlCommandBuilder_ == null) {
+ controlCommandBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.ControlCommand, com.openxc.BinaryMessages.ControlCommand.Builder, com.openxc.BinaryMessages.ControlCommandOrBuilder>(
+ controlCommand_,
+ getParentForChildren(),
+ isClean());
+ controlCommand_ = null;
+ }
+ return controlCommandBuilder_;
+ }
+
+ // optional .openxc.CommandResponse command_response = 6;
+ private com.openxc.BinaryMessages.CommandResponse commandResponse_ = com.openxc.BinaryMessages.CommandResponse.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.CommandResponse, com.openxc.BinaryMessages.CommandResponse.Builder, com.openxc.BinaryMessages.CommandResponseOrBuilder> commandResponseBuilder_;
+ public boolean hasCommandResponse() {
+ return ((bitField0_ & 0x00000020) == 0x00000020);
+ }
+ public com.openxc.BinaryMessages.CommandResponse getCommandResponse() {
+ if (commandResponseBuilder_ == null) {
+ return commandResponse_;
+ } else {
+ return commandResponseBuilder_.getMessage();
+ }
+ }
+ public Builder setCommandResponse(com.openxc.BinaryMessages.CommandResponse value) {
+ if (commandResponseBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ commandResponse_ = value;
+ onChanged();
+ } else {
+ commandResponseBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000020;
+ return this;
+ }
+ public Builder setCommandResponse(
+ com.openxc.BinaryMessages.CommandResponse.Builder builderForValue) {
+ if (commandResponseBuilder_ == null) {
+ commandResponse_ = builderForValue.build();
+ onChanged();
+ } else {
+ commandResponseBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000020;
+ return this;
+ }
+ public Builder mergeCommandResponse(com.openxc.BinaryMessages.CommandResponse value) {
+ if (commandResponseBuilder_ == null) {
+ if (((bitField0_ & 0x00000020) == 0x00000020) &&
+ commandResponse_ != com.openxc.BinaryMessages.CommandResponse.getDefaultInstance()) {
+ commandResponse_ =
+ com.openxc.BinaryMessages.CommandResponse.newBuilder(commandResponse_).mergeFrom(value).buildPartial();
+ } else {
+ commandResponse_ = value;
+ }
+ onChanged();
+ } else {
+ commandResponseBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000020;
+ return this;
+ }
+ public Builder clearCommandResponse() {
+ if (commandResponseBuilder_ == null) {
+ commandResponse_ = com.openxc.BinaryMessages.CommandResponse.getDefaultInstance();
+ onChanged();
+ } else {
+ commandResponseBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000020);
+ return this;
+ }
+ public com.openxc.BinaryMessages.CommandResponse.Builder getCommandResponseBuilder() {
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return getCommandResponseFieldBuilder().getBuilder();
+ }
+ public com.openxc.BinaryMessages.CommandResponseOrBuilder getCommandResponseOrBuilder() {
+ if (commandResponseBuilder_ != null) {
+ return commandResponseBuilder_.getMessageOrBuilder();
+ } else {
+ return commandResponse_;
+ }
+ }
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.CommandResponse, com.openxc.BinaryMessages.CommandResponse.Builder, com.openxc.BinaryMessages.CommandResponseOrBuilder>
+ getCommandResponseFieldBuilder() {
+ if (commandResponseBuilder_ == null) {
+ commandResponseBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.CommandResponse, com.openxc.BinaryMessages.CommandResponse.Builder, com.openxc.BinaryMessages.CommandResponseOrBuilder>(
+ commandResponse_,
+ getParentForChildren(),
+ isClean());
+ commandResponse_ = null;
+ }
+ return commandResponseBuilder_;
+ }
+
+ // optional uint64 timestamp = 7;
+ private long timestamp_ ;
+ public boolean hasTimestamp() {
+ return ((bitField0_ & 0x00000040) == 0x00000040);
+ }
+ public long getTimestamp() {
+ return timestamp_;
+ }
+ public Builder setTimestamp(long value) {
+ bitField0_ |= 0x00000040;
+ timestamp_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearTimestamp() {
+ bitField0_ = (bitField0_ & ~0x00000040);
+ timestamp_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:openxc.VehicleMessage)
+ }
+
+ static {
+ defaultInstance = new VehicleMessage(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:openxc.VehicleMessage)
+ }
+
+ public interface CanMessageOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional int32 bus = 1;
+ boolean hasBus();
+ int getBus();
+
+ // optional uint32 id = 2;
+ boolean hasId();
+ int getId();
+
+ // optional bytes data = 3;
+ boolean hasData();
+ com.google.protobuf.ByteString getData();
+
+ // optional .openxc.CanMessage.FrameFormat frame_format = 4;
+ boolean hasFrameFormat();
+ com.openxc.BinaryMessages.CanMessage.FrameFormat getFrameFormat();
+ }
+ public static final class CanMessage extends
+ com.google.protobuf.GeneratedMessage
+ implements CanMessageOrBuilder {
+ // Use CanMessage.newBuilder() to construct.
+ private CanMessage(Builder builder) {
+ super(builder);
+ }
+ private CanMessage(boolean noInit) {}
+
+ private static final CanMessage defaultInstance;
+ public static CanMessage getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public CanMessage getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_CanMessage_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_CanMessage_fieldAccessorTable;
+ }
+
+ public enum FrameFormat
+ implements com.google.protobuf.ProtocolMessageEnum {
+ STANDARD(0, 1),
+ EXTENDED(1, 2),
+ ;
+
+ public static final int STANDARD_VALUE = 1;
+ public static final int EXTENDED_VALUE = 2;
+
+
+ public final int getNumber() { return value; }
+
+ public static FrameFormat valueOf(int value) {
+ switch (value) {
+ case 1: return STANDARD;
+ case 2: return EXTENDED;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap<FrameFormat>
+ internalGetValueMap() {
+ return internalValueMap;
+ }
+ private static com.google.protobuf.Internal.EnumLiteMap<FrameFormat>
+ internalValueMap =
+ new com.google.protobuf.Internal.EnumLiteMap<FrameFormat>() {
+ public FrameFormat findValueByNumber(int number) {
+ return FrameFormat.valueOf(number);
+ }
+ };
+
+ public final com.google.protobuf.Descriptors.EnumValueDescriptor
+ getValueDescriptor() {
+ return getDescriptor().getValues().get(index);
+ }
+ public final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptorForType() {
+ return getDescriptor();
+ }
+ public static final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.CanMessage.getDescriptor().getEnumTypes().get(0);
+ }
+
+ private static final FrameFormat[] VALUES = {
+ STANDARD, EXTENDED,
+ };
+
+ public static FrameFormat valueOf(
+ com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+ if (desc.getType() != getDescriptor()) {
+ throw new java.lang.IllegalArgumentException(
+ "EnumValueDescriptor is not for this type.");
+ }
+ return VALUES[desc.getIndex()];
+ }
+
+ private final int index;
+ private final int value;
+
+ private FrameFormat(int index, int value) {
+ this.index = index;
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:openxc.CanMessage.FrameFormat)
+ }
+
+ private int bitField0_;
+ // optional int32 bus = 1;
+ public static final int BUS_FIELD_NUMBER = 1;
+ private int bus_;
+ public boolean hasBus() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public int getBus() {
+ return bus_;
+ }
+
+ // optional uint32 id = 2;
+ public static final int ID_FIELD_NUMBER = 2;
+ private int id_;
+ public boolean hasId() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public int getId() {
+ return id_;
+ }
+
+ // optional bytes data = 3;
+ public static final int DATA_FIELD_NUMBER = 3;
+ private com.google.protobuf.ByteString data_;
+ public boolean hasData() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ public com.google.protobuf.ByteString getData() {
+ return data_;
+ }
+
+ // optional .openxc.CanMessage.FrameFormat frame_format = 4;
+ public static final int FRAME_FORMAT_FIELD_NUMBER = 4;
+ private com.openxc.BinaryMessages.CanMessage.FrameFormat frameFormat_;
+ public boolean hasFrameFormat() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ public com.openxc.BinaryMessages.CanMessage.FrameFormat getFrameFormat() {
+ return frameFormat_;
+ }
+
+ private void initFields() {
+ bus_ = 0;
+ id_ = 0;
+ data_ = com.google.protobuf.ByteString.EMPTY;
+ frameFormat_ = com.openxc.BinaryMessages.CanMessage.FrameFormat.STANDARD;
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeInt32(1, bus_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeUInt32(2, id_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ output.writeBytes(3, data_);
+ }
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ output.writeEnum(4, frameFormat_.getNumber());
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32Size(1, bus_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(2, id_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(3, data_);
+ }
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(4, frameFormat_.getNumber());
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static com.openxc.BinaryMessages.CanMessage parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.CanMessage parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.CanMessage parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.CanMessage parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.CanMessage parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.CanMessage parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.CanMessage parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.CanMessage parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.CanMessage parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.CanMessage parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(com.openxc.BinaryMessages.CanMessage prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements com.openxc.BinaryMessages.CanMessageOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_CanMessage_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_CanMessage_fieldAccessorTable;
+ }
+
+ // Construct using com.openxc.BinaryMessages.CanMessage.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ bus_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ id_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ data_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000004);
+ frameFormat_ = com.openxc.BinaryMessages.CanMessage.FrameFormat.STANDARD;
+ bitField0_ = (bitField0_ & ~0x00000008);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.openxc.BinaryMessages.CanMessage.getDescriptor();
+ }
+
+ public com.openxc.BinaryMessages.CanMessage getDefaultInstanceForType() {
+ return com.openxc.BinaryMessages.CanMessage.getDefaultInstance();
+ }
+
+ public com.openxc.BinaryMessages.CanMessage build() {
+ com.openxc.BinaryMessages.CanMessage result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ private com.openxc.BinaryMessages.CanMessage buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ com.openxc.BinaryMessages.CanMessage result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return result;
+ }
+
+ public com.openxc.BinaryMessages.CanMessage buildPartial() {
+ com.openxc.BinaryMessages.CanMessage result = new com.openxc.BinaryMessages.CanMessage(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.bus_ = bus_;
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ result.id_ = id_;
+ if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+ to_bitField0_ |= 0x00000004;
+ }
+ result.data_ = data_;
+ if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
+ to_bitField0_ |= 0x00000008;
+ }
+ result.frameFormat_ = frameFormat_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.openxc.BinaryMessages.CanMessage) {
+ return mergeFrom((com.openxc.BinaryMessages.CanMessage)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.openxc.BinaryMessages.CanMessage other) {
+ if (other == com.openxc.BinaryMessages.CanMessage.getDefaultInstance()) return this;
+ if (other.hasBus()) {
+ setBus(other.getBus());
+ }
+ if (other.hasId()) {
+ setId(other.getId());
+ }
+ if (other.hasData()) {
+ setData(other.getData());
+ }
+ if (other.hasFrameFormat()) {
+ setFrameFormat(other.getFrameFormat());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ 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 {
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder(
+ this.getUnknownFields());
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ }
+ break;
+ }
+ case 8: {
+ bitField0_ |= 0x00000001;
+ bus_ = input.readInt32();
+ break;
+ }
+ case 16: {
+ bitField0_ |= 0x00000002;
+ id_ = input.readUInt32();
+ break;
+ }
+ case 26: {
+ bitField0_ |= 0x00000004;
+ data_ = input.readBytes();
+ break;
+ }
+ case 32: {
+ int rawValue = input.readEnum();
+ com.openxc.BinaryMessages.CanMessage.FrameFormat value = com.openxc.BinaryMessages.CanMessage.FrameFormat.valueOf(rawValue);
+ if (value == null) {
+ unknownFields.mergeVarintField(4, rawValue);
+ } else {
+ bitField0_ |= 0x00000008;
+ frameFormat_ = value;
+ }
+ break;
+ }
+ }
+ }
+ }
+
+ private int bitField0_;
+
+ // optional int32 bus = 1;
+ private int bus_ ;
+ public boolean hasBus() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public int getBus() {
+ return bus_;
+ }
+ public Builder setBus(int value) {
+ bitField0_ |= 0x00000001;
+ bus_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearBus() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ bus_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional uint32 id = 2;
+ private int id_ ;
+ public boolean hasId() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public int getId() {
+ return id_;
+ }
+ public Builder setId(int value) {
+ bitField0_ |= 0x00000002;
+ id_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearId() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ id_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional bytes data = 3;
+ private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
+ public boolean hasData() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ public com.google.protobuf.ByteString getData() {
+ return data_;
+ }
+ public Builder setData(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000004;
+ data_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearData() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ data_ = getDefaultInstance().getData();
+ onChanged();
+ return this;
+ }
+
+ // optional .openxc.CanMessage.FrameFormat frame_format = 4;
+ private com.openxc.BinaryMessages.CanMessage.FrameFormat frameFormat_ = com.openxc.BinaryMessages.CanMessage.FrameFormat.STANDARD;
+ public boolean hasFrameFormat() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ public com.openxc.BinaryMessages.CanMessage.FrameFormat getFrameFormat() {
+ return frameFormat_;
+ }
+ public Builder setFrameFormat(com.openxc.BinaryMessages.CanMessage.FrameFormat value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000008;
+ frameFormat_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearFrameFormat() {
+ bitField0_ = (bitField0_ & ~0x00000008);
+ frameFormat_ = com.openxc.BinaryMessages.CanMessage.FrameFormat.STANDARD;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:openxc.CanMessage)
+ }
+
+ static {
+ defaultInstance = new CanMessage(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:openxc.CanMessage)
+ }
+
+ public interface ControlCommandOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional .openxc.ControlCommand.Type type = 1;
+ boolean hasType();
+ com.openxc.BinaryMessages.ControlCommand.Type getType();
+
+ // optional .openxc.DiagnosticControlCommand diagnostic_request = 2;
+ boolean hasDiagnosticRequest();
+ com.openxc.BinaryMessages.DiagnosticControlCommand getDiagnosticRequest();
+ com.openxc.BinaryMessages.DiagnosticControlCommandOrBuilder getDiagnosticRequestOrBuilder();
+
+ // optional .openxc.PassthroughModeControlCommand passthrough_mode_request = 3;
+ boolean hasPassthroughModeRequest();
+ com.openxc.BinaryMessages.PassthroughModeControlCommand getPassthroughModeRequest();
+ com.openxc.BinaryMessages.PassthroughModeControlCommandOrBuilder getPassthroughModeRequestOrBuilder();
+
+ // optional .openxc.AcceptanceFilterBypassCommand acceptance_filter_bypass_command = 4;
+ boolean hasAcceptanceFilterBypassCommand();
+ com.openxc.BinaryMessages.AcceptanceFilterBypassCommand getAcceptanceFilterBypassCommand();
+ com.openxc.BinaryMessages.AcceptanceFilterBypassCommandOrBuilder getAcceptanceFilterBypassCommandOrBuilder();
+
+ // optional .openxc.PayloadFormatCommand payload_format_command = 5;
+ boolean hasPayloadFormatCommand();
+ com.openxc.BinaryMessages.PayloadFormatCommand getPayloadFormatCommand();
+ com.openxc.BinaryMessages.PayloadFormatCommandOrBuilder getPayloadFormatCommandOrBuilder();
+
+ // optional .openxc.PredefinedObd2RequestsCommand predefined_obd2_requests_command = 6;
+ boolean hasPredefinedObd2RequestsCommand();
+ com.openxc.BinaryMessages.PredefinedObd2RequestsCommand getPredefinedObd2RequestsCommand();
+ com.openxc.BinaryMessages.PredefinedObd2RequestsCommandOrBuilder getPredefinedObd2RequestsCommandOrBuilder();
+
+ // optional .openxc.ModemConfigurationCommand modem_configuration_command = 7;
+ boolean hasModemConfigurationCommand();
+ com.openxc.BinaryMessages.ModemConfigurationCommand getModemConfigurationCommand();
+ com.openxc.BinaryMessages.ModemConfigurationCommandOrBuilder getModemConfigurationCommandOrBuilder();
+
+ // optional .openxc.RTCConfigurationCommand rtc_configuration_command = 8;
+ boolean hasRtcConfigurationCommand();
+ com.openxc.BinaryMessages.RTCConfigurationCommand getRtcConfigurationCommand();
+ com.openxc.BinaryMessages.RTCConfigurationCommandOrBuilder getRtcConfigurationCommandOrBuilder();
+ }
+ public static final class ControlCommand extends
+ com.google.protobuf.GeneratedMessage
+ implements ControlCommandOrBuilder {
+ // Use ControlCommand.newBuilder() to construct.
+ private ControlCommand(Builder builder) {
+ super(builder);
+ }
+ private ControlCommand(boolean noInit) {}
+
+ private static final ControlCommand defaultInstance;
+ public static ControlCommand getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public ControlCommand getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_ControlCommand_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_ControlCommand_fieldAccessorTable;
+ }
+
+ public enum Type
+ implements com.google.protobuf.ProtocolMessageEnum {
+ VERSION(0, 1),
+ DEVICE_ID(1, 2),
+ DIAGNOSTIC(2, 3),
+ PASSTHROUGH(3, 4),
+ ACCEPTANCE_FILTER_BYPASS(4, 5),
+ PAYLOAD_FORMAT(5, 6),
+ PREDEFINED_OBD2_REQUESTS(6, 7),
+ MODEM_CONFIGURATION(7, 8),
+ RTC_CONFIGURATION(8, 9),
+ SD_MOUNT_STATUS(9, 10),
+ PLATFORM(10, 11),
+ ;
+
+ public static final int VERSION_VALUE = 1;
+ public static final int DEVICE_ID_VALUE = 2;
+ public static final int DIAGNOSTIC_VALUE = 3;
+ public static final int PASSTHROUGH_VALUE = 4;
+ public static final int ACCEPTANCE_FILTER_BYPASS_VALUE = 5;
+ public static final int PAYLOAD_FORMAT_VALUE = 6;
+ public static final int PREDEFINED_OBD2_REQUESTS_VALUE = 7;
+ public static final int MODEM_CONFIGURATION_VALUE = 8;
+ public static final int RTC_CONFIGURATION_VALUE = 9;
+ public static final int SD_MOUNT_STATUS_VALUE = 10;
+ public static final int PLATFORM_VALUE = 11;
+
+
+ public final int getNumber() { return value; }
+
+ public static Type valueOf(int value) {
+ switch (value) {
+ case 1: return VERSION;
+ case 2: return DEVICE_ID;
+ case 3: return DIAGNOSTIC;
+ case 4: return PASSTHROUGH;
+ case 5: return ACCEPTANCE_FILTER_BYPASS;
+ case 6: return PAYLOAD_FORMAT;
+ case 7: return PREDEFINED_OBD2_REQUESTS;
+ case 8: return MODEM_CONFIGURATION;
+ case 9: return RTC_CONFIGURATION;
+ case 10: return SD_MOUNT_STATUS;
+ case 11: return PLATFORM;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap<Type>
+ internalGetValueMap() {
+ return internalValueMap;
+ }
+ private static com.google.protobuf.Internal.EnumLiteMap<Type>
+ internalValueMap =
+ new com.google.protobuf.Internal.EnumLiteMap<Type>() {
+ public Type findValueByNumber(int number) {
+ return Type.valueOf(number);
+ }
+ };
+
+ public final com.google.protobuf.Descriptors.EnumValueDescriptor
+ getValueDescriptor() {
+ return getDescriptor().getValues().get(index);
+ }
+ public final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptorForType() {
+ return getDescriptor();
+ }
+ public static final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.ControlCommand.getDescriptor().getEnumTypes().get(0);
+ }
+
+ private static final Type[] VALUES = {
+ VERSION, DEVICE_ID, DIAGNOSTIC, PASSTHROUGH, ACCEPTANCE_FILTER_BYPASS, PAYLOAD_FORMAT, PREDEFINED_OBD2_REQUESTS, MODEM_CONFIGURATION, RTC_CONFIGURATION, SD_MOUNT_STATUS, PLATFORM,
+ };
+
+ public static Type valueOf(
+ com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+ if (desc.getType() != getDescriptor()) {
+ throw new java.lang.IllegalArgumentException(
+ "EnumValueDescriptor is not for this type.");
+ }
+ return VALUES[desc.getIndex()];
+ }
+
+ private final int index;
+ private final int value;
+
+ private Type(int index, int value) {
+ this.index = index;
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:openxc.ControlCommand.Type)
+ }
+
+ private int bitField0_;
+ // optional .openxc.ControlCommand.Type type = 1;
+ public static final int TYPE_FIELD_NUMBER = 1;
+ private com.openxc.BinaryMessages.ControlCommand.Type type_;
+ public boolean hasType() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public com.openxc.BinaryMessages.ControlCommand.Type getType() {
+ return type_;
+ }
+
+ // optional .openxc.DiagnosticControlCommand diagnostic_request = 2;
+ public static final int DIAGNOSTIC_REQUEST_FIELD_NUMBER = 2;
+ private com.openxc.BinaryMessages.DiagnosticControlCommand diagnosticRequest_;
+ public boolean hasDiagnosticRequest() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public com.openxc.BinaryMessages.DiagnosticControlCommand getDiagnosticRequest() {
+ return diagnosticRequest_;
+ }
+ public com.openxc.BinaryMessages.DiagnosticControlCommandOrBuilder getDiagnosticRequestOrBuilder() {
+ return diagnosticRequest_;
+ }
+
+ // optional .openxc.PassthroughModeControlCommand passthrough_mode_request = 3;
+ public static final int PASSTHROUGH_MODE_REQUEST_FIELD_NUMBER = 3;
+ private com.openxc.BinaryMessages.PassthroughModeControlCommand passthroughModeRequest_;
+ public boolean hasPassthroughModeRequest() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ public com.openxc.BinaryMessages.PassthroughModeControlCommand getPassthroughModeRequest() {
+ return passthroughModeRequest_;
+ }
+ public com.openxc.BinaryMessages.PassthroughModeControlCommandOrBuilder getPassthroughModeRequestOrBuilder() {
+ return passthroughModeRequest_;
+ }
+
+ // optional .openxc.AcceptanceFilterBypassCommand acceptance_filter_bypass_command = 4;
+ public static final int ACCEPTANCE_FILTER_BYPASS_COMMAND_FIELD_NUMBER = 4;
+ private com.openxc.BinaryMessages.AcceptanceFilterBypassCommand acceptanceFilterBypassCommand_;
+ public boolean hasAcceptanceFilterBypassCommand() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ public com.openxc.BinaryMessages.AcceptanceFilterBypassCommand getAcceptanceFilterBypassCommand() {
+ return acceptanceFilterBypassCommand_;
+ }
+ public com.openxc.BinaryMessages.AcceptanceFilterBypassCommandOrBuilder getAcceptanceFilterBypassCommandOrBuilder() {
+ return acceptanceFilterBypassCommand_;
+ }
+
+ // optional .openxc.PayloadFormatCommand payload_format_command = 5;
+ public static final int PAYLOAD_FORMAT_COMMAND_FIELD_NUMBER = 5;
+ private com.openxc.BinaryMessages.PayloadFormatCommand payloadFormatCommand_;
+ public boolean hasPayloadFormatCommand() {
+ return ((bitField0_ & 0x00000010) == 0x00000010);
+ }
+ public com.openxc.BinaryMessages.PayloadFormatCommand getPayloadFormatCommand() {
+ return payloadFormatCommand_;
+ }
+ public com.openxc.BinaryMessages.PayloadFormatCommandOrBuilder getPayloadFormatCommandOrBuilder() {
+ return payloadFormatCommand_;
+ }
+
+ // optional .openxc.PredefinedObd2RequestsCommand predefined_obd2_requests_command = 6;
+ public static final int PREDEFINED_OBD2_REQUESTS_COMMAND_FIELD_NUMBER = 6;
+ private com.openxc.BinaryMessages.PredefinedObd2RequestsCommand predefinedObd2RequestsCommand_;
+ public boolean hasPredefinedObd2RequestsCommand() {
+ return ((bitField0_ & 0x00000020) == 0x00000020);
+ }
+ public com.openxc.BinaryMessages.PredefinedObd2RequestsCommand getPredefinedObd2RequestsCommand() {
+ return predefinedObd2RequestsCommand_;
+ }
+ public com.openxc.BinaryMessages.PredefinedObd2RequestsCommandOrBuilder getPredefinedObd2RequestsCommandOrBuilder() {
+ return predefinedObd2RequestsCommand_;
+ }
+
+ // optional .openxc.ModemConfigurationCommand modem_configuration_command = 7;
+ public static final int MODEM_CONFIGURATION_COMMAND_FIELD_NUMBER = 7;
+ private com.openxc.BinaryMessages.ModemConfigurationCommand modemConfigurationCommand_;
+ public boolean hasModemConfigurationCommand() {
+ return ((bitField0_ & 0x00000040) == 0x00000040);
+ }
+ public com.openxc.BinaryMessages.ModemConfigurationCommand getModemConfigurationCommand() {
+ return modemConfigurationCommand_;
+ }
+ public com.openxc.BinaryMessages.ModemConfigurationCommandOrBuilder getModemConfigurationCommandOrBuilder() {
+ return modemConfigurationCommand_;
+ }
+
+ // optional .openxc.RTCConfigurationCommand rtc_configuration_command = 8;
+ public static final int RTC_CONFIGURATION_COMMAND_FIELD_NUMBER = 8;
+ private com.openxc.BinaryMessages.RTCConfigurationCommand rtcConfigurationCommand_;
+ public boolean hasRtcConfigurationCommand() {
+ return ((bitField0_ & 0x00000080) == 0x00000080);
+ }
+ public com.openxc.BinaryMessages.RTCConfigurationCommand getRtcConfigurationCommand() {
+ return rtcConfigurationCommand_;
+ }
+ public com.openxc.BinaryMessages.RTCConfigurationCommandOrBuilder getRtcConfigurationCommandOrBuilder() {
+ return rtcConfigurationCommand_;
+ }
+
+ private void initFields() {
+ type_ = com.openxc.BinaryMessages.ControlCommand.Type.VERSION;
+ diagnosticRequest_ = com.openxc.BinaryMessages.DiagnosticControlCommand.getDefaultInstance();
+ passthroughModeRequest_ = com.openxc.BinaryMessages.PassthroughModeControlCommand.getDefaultInstance();
+ acceptanceFilterBypassCommand_ = com.openxc.BinaryMessages.AcceptanceFilterBypassCommand.getDefaultInstance();
+ payloadFormatCommand_ = com.openxc.BinaryMessages.PayloadFormatCommand.getDefaultInstance();
+ predefinedObd2RequestsCommand_ = com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.getDefaultInstance();
+ modemConfigurationCommand_ = com.openxc.BinaryMessages.ModemConfigurationCommand.getDefaultInstance();
+ rtcConfigurationCommand_ = com.openxc.BinaryMessages.RTCConfigurationCommand.getDefaultInstance();
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeEnum(1, type_.getNumber());
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeMessage(2, diagnosticRequest_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ output.writeMessage(3, passthroughModeRequest_);
+ }
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ output.writeMessage(4, acceptanceFilterBypassCommand_);
+ }
+ if (((bitField0_ & 0x00000010) == 0x00000010)) {
+ output.writeMessage(5, payloadFormatCommand_);
+ }
+ if (((bitField0_ & 0x00000020) == 0x00000020)) {
+ output.writeMessage(6, predefinedObd2RequestsCommand_);
+ }
+ if (((bitField0_ & 0x00000040) == 0x00000040)) {
+ output.writeMessage(7, modemConfigurationCommand_);
+ }
+ if (((bitField0_ & 0x00000080) == 0x00000080)) {
+ output.writeMessage(8, rtcConfigurationCommand_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(1, type_.getNumber());
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(2, diagnosticRequest_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(3, passthroughModeRequest_);
+ }
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(4, acceptanceFilterBypassCommand_);
+ }
+ if (((bitField0_ & 0x00000010) == 0x00000010)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(5, payloadFormatCommand_);
+ }
+ if (((bitField0_ & 0x00000020) == 0x00000020)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(6, predefinedObd2RequestsCommand_);
+ }
+ if (((bitField0_ & 0x00000040) == 0x00000040)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(7, modemConfigurationCommand_);
+ }
+ if (((bitField0_ & 0x00000080) == 0x00000080)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(8, rtcConfigurationCommand_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static com.openxc.BinaryMessages.ControlCommand parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.ControlCommand parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.ControlCommand parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.ControlCommand parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.ControlCommand parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.ControlCommand parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.ControlCommand parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.ControlCommand parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.ControlCommand parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.ControlCommand parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(com.openxc.BinaryMessages.ControlCommand prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements com.openxc.BinaryMessages.ControlCommandOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_ControlCommand_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_ControlCommand_fieldAccessorTable;
+ }
+
+ // Construct using com.openxc.BinaryMessages.ControlCommand.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ getDiagnosticRequestFieldBuilder();
+ getPassthroughModeRequestFieldBuilder();
+ getAcceptanceFilterBypassCommandFieldBuilder();
+ getPayloadFormatCommandFieldBuilder();
+ getPredefinedObd2RequestsCommandFieldBuilder();
+ getModemConfigurationCommandFieldBuilder();
+ getRtcConfigurationCommandFieldBuilder();
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ type_ = com.openxc.BinaryMessages.ControlCommand.Type.VERSION;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ if (diagnosticRequestBuilder_ == null) {
+ diagnosticRequest_ = com.openxc.BinaryMessages.DiagnosticControlCommand.getDefaultInstance();
+ } else {
+ diagnosticRequestBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000002);
+ if (passthroughModeRequestBuilder_ == null) {
+ passthroughModeRequest_ = com.openxc.BinaryMessages.PassthroughModeControlCommand.getDefaultInstance();
+ } else {
+ passthroughModeRequestBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000004);
+ if (acceptanceFilterBypassCommandBuilder_ == null) {
+ acceptanceFilterBypassCommand_ = com.openxc.BinaryMessages.AcceptanceFilterBypassCommand.getDefaultInstance();
+ } else {
+ acceptanceFilterBypassCommandBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000008);
+ if (payloadFormatCommandBuilder_ == null) {
+ payloadFormatCommand_ = com.openxc.BinaryMessages.PayloadFormatCommand.getDefaultInstance();
+ } else {
+ payloadFormatCommandBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000010);
+ if (predefinedObd2RequestsCommandBuilder_ == null) {
+ predefinedObd2RequestsCommand_ = com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.getDefaultInstance();
+ } else {
+ predefinedObd2RequestsCommandBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000020);
+ if (modemConfigurationCommandBuilder_ == null) {
+ modemConfigurationCommand_ = com.openxc.BinaryMessages.ModemConfigurationCommand.getDefaultInstance();
+ } else {
+ modemConfigurationCommandBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000040);
+ if (rtcConfigurationCommandBuilder_ == null) {
+ rtcConfigurationCommand_ = com.openxc.BinaryMessages.RTCConfigurationCommand.getDefaultInstance();
+ } else {
+ rtcConfigurationCommandBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000080);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.openxc.BinaryMessages.ControlCommand.getDescriptor();
+ }
+
+ public com.openxc.BinaryMessages.ControlCommand getDefaultInstanceForType() {
+ return com.openxc.BinaryMessages.ControlCommand.getDefaultInstance();
+ }
+
+ public com.openxc.BinaryMessages.ControlCommand build() {
+ com.openxc.BinaryMessages.ControlCommand result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ private com.openxc.BinaryMessages.ControlCommand buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ com.openxc.BinaryMessages.ControlCommand result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return result;
+ }
+
+ public com.openxc.BinaryMessages.ControlCommand buildPartial() {
+ com.openxc.BinaryMessages.ControlCommand result = new com.openxc.BinaryMessages.ControlCommand(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.type_ = type_;
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ if (diagnosticRequestBuilder_ == null) {
+ result.diagnosticRequest_ = diagnosticRequest_;
+ } else {
+ result.diagnosticRequest_ = diagnosticRequestBuilder_.build();
+ }
+ if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+ to_bitField0_ |= 0x00000004;
+ }
+ if (passthroughModeRequestBuilder_ == null) {
+ result.passthroughModeRequest_ = passthroughModeRequest_;
+ } else {
+ result.passthroughModeRequest_ = passthroughModeRequestBuilder_.build();
+ }
+ if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
+ to_bitField0_ |= 0x00000008;
+ }
+ if (acceptanceFilterBypassCommandBuilder_ == null) {
+ result.acceptanceFilterBypassCommand_ = acceptanceFilterBypassCommand_;
+ } else {
+ result.acceptanceFilterBypassCommand_ = acceptanceFilterBypassCommandBuilder_.build();
+ }
+ if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
+ to_bitField0_ |= 0x00000010;
+ }
+ if (payloadFormatCommandBuilder_ == null) {
+ result.payloadFormatCommand_ = payloadFormatCommand_;
+ } else {
+ result.payloadFormatCommand_ = payloadFormatCommandBuilder_.build();
+ }
+ if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
+ to_bitField0_ |= 0x00000020;
+ }
+ if (predefinedObd2RequestsCommandBuilder_ == null) {
+ result.predefinedObd2RequestsCommand_ = predefinedObd2RequestsCommand_;
+ } else {
+ result.predefinedObd2RequestsCommand_ = predefinedObd2RequestsCommandBuilder_.build();
+ }
+ if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
+ to_bitField0_ |= 0x00000040;
+ }
+ if (modemConfigurationCommandBuilder_ == null) {
+ result.modemConfigurationCommand_ = modemConfigurationCommand_;
+ } else {
+ result.modemConfigurationCommand_ = modemConfigurationCommandBuilder_.build();
+ }
+ if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
+ to_bitField0_ |= 0x00000080;
+ }
+ if (rtcConfigurationCommandBuilder_ == null) {
+ result.rtcConfigurationCommand_ = rtcConfigurationCommand_;
+ } else {
+ result.rtcConfigurationCommand_ = rtcConfigurationCommandBuilder_.build();
+ }
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.openxc.BinaryMessages.ControlCommand) {
+ return mergeFrom((com.openxc.BinaryMessages.ControlCommand)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.openxc.BinaryMessages.ControlCommand other) {
+ if (other == com.openxc.BinaryMessages.ControlCommand.getDefaultInstance()) return this;
+ if (other.hasType()) {
+ setType(other.getType());
+ }
+ if (other.hasDiagnosticRequest()) {
+ mergeDiagnosticRequest(other.getDiagnosticRequest());
+ }
+ if (other.hasPassthroughModeRequest()) {
+ mergePassthroughModeRequest(other.getPassthroughModeRequest());
+ }
+ if (other.hasAcceptanceFilterBypassCommand()) {
+ mergeAcceptanceFilterBypassCommand(other.getAcceptanceFilterBypassCommand());
+ }
+ if (other.hasPayloadFormatCommand()) {
+ mergePayloadFormatCommand(other.getPayloadFormatCommand());
+ }
+ if (other.hasPredefinedObd2RequestsCommand()) {
+ mergePredefinedObd2RequestsCommand(other.getPredefinedObd2RequestsCommand());
+ }
+ if (other.hasModemConfigurationCommand()) {
+ mergeModemConfigurationCommand(other.getModemConfigurationCommand());
+ }
+ if (other.hasRtcConfigurationCommand()) {
+ mergeRtcConfigurationCommand(other.getRtcConfigurationCommand());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ 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 {
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder(
+ this.getUnknownFields());
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ }
+ break;
+ }
+ case 8: {
+ int rawValue = input.readEnum();
+ com.openxc.BinaryMessages.ControlCommand.Type value = com.openxc.BinaryMessages.ControlCommand.Type.valueOf(rawValue);
+ if (value == null) {
+ unknownFields.mergeVarintField(1, rawValue);
+ } else {
+ bitField0_ |= 0x00000001;
+ type_ = value;
+ }
+ break;
+ }
+ case 18: {
+ com.openxc.BinaryMessages.DiagnosticControlCommand.Builder subBuilder = com.openxc.BinaryMessages.DiagnosticControlCommand.newBuilder();
+ if (hasDiagnosticRequest()) {
+ subBuilder.mergeFrom(getDiagnosticRequest());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setDiagnosticRequest(subBuilder.buildPartial());
+ break;
+ }
+ case 26: {
+ com.openxc.BinaryMessages.PassthroughModeControlCommand.Builder subBuilder = com.openxc.BinaryMessages.PassthroughModeControlCommand.newBuilder();
+ if (hasPassthroughModeRequest()) {
+ subBuilder.mergeFrom(getPassthroughModeRequest());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setPassthroughModeRequest(subBuilder.buildPartial());
+ break;
+ }
+ case 34: {
+ com.openxc.BinaryMessages.AcceptanceFilterBypassCommand.Builder subBuilder = com.openxc.BinaryMessages.AcceptanceFilterBypassCommand.newBuilder();
+ if (hasAcceptanceFilterBypassCommand()) {
+ subBuilder.mergeFrom(getAcceptanceFilterBypassCommand());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setAcceptanceFilterBypassCommand(subBuilder.buildPartial());
+ break;
+ }
+ case 42: {
+ com.openxc.BinaryMessages.PayloadFormatCommand.Builder subBuilder = com.openxc.BinaryMessages.PayloadFormatCommand.newBuilder();
+ if (hasPayloadFormatCommand()) {
+ subBuilder.mergeFrom(getPayloadFormatCommand());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setPayloadFormatCommand(subBuilder.buildPartial());
+ break;
+ }
+ case 50: {
+ com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.Builder subBuilder = com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.newBuilder();
+ if (hasPredefinedObd2RequestsCommand()) {
+ subBuilder.mergeFrom(getPredefinedObd2RequestsCommand());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setPredefinedObd2RequestsCommand(subBuilder.buildPartial());
+ break;
+ }
+ case 58: {
+ com.openxc.BinaryMessages.ModemConfigurationCommand.Builder subBuilder = com.openxc.BinaryMessages.ModemConfigurationCommand.newBuilder();
+ if (hasModemConfigurationCommand()) {
+ subBuilder.mergeFrom(getModemConfigurationCommand());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setModemConfigurationCommand(subBuilder.buildPartial());
+ break;
+ }
+ case 66: {
+ com.openxc.BinaryMessages.RTCConfigurationCommand.Builder subBuilder = com.openxc.BinaryMessages.RTCConfigurationCommand.newBuilder();
+ if (hasRtcConfigurationCommand()) {
+ subBuilder.mergeFrom(getRtcConfigurationCommand());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setRtcConfigurationCommand(subBuilder.buildPartial());
+ break;
+ }
+ }
+ }
+ }
+
+ private int bitField0_;
+
+ // optional .openxc.ControlCommand.Type type = 1;
+ private com.openxc.BinaryMessages.ControlCommand.Type type_ = com.openxc.BinaryMessages.ControlCommand.Type.VERSION;
+ public boolean hasType() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public com.openxc.BinaryMessages.ControlCommand.Type getType() {
+ return type_;
+ }
+ public Builder setType(com.openxc.BinaryMessages.ControlCommand.Type value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000001;
+ type_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearType() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ type_ = com.openxc.BinaryMessages.ControlCommand.Type.VERSION;
+ onChanged();
+ return this;
+ }
+
+ // optional .openxc.DiagnosticControlCommand diagnostic_request = 2;
+ private com.openxc.BinaryMessages.DiagnosticControlCommand diagnosticRequest_ = com.openxc.BinaryMessages.DiagnosticControlCommand.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.DiagnosticControlCommand, com.openxc.BinaryMessages.DiagnosticControlCommand.Builder, com.openxc.BinaryMessages.DiagnosticControlCommandOrBuilder> diagnosticRequestBuilder_;
+ public boolean hasDiagnosticRequest() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public com.openxc.BinaryMessages.DiagnosticControlCommand getDiagnosticRequest() {
+ if (diagnosticRequestBuilder_ == null) {
+ return diagnosticRequest_;
+ } else {
+ return diagnosticRequestBuilder_.getMessage();
+ }
+ }
+ public Builder setDiagnosticRequest(com.openxc.BinaryMessages.DiagnosticControlCommand value) {
+ if (diagnosticRequestBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ diagnosticRequest_ = value;
+ onChanged();
+ } else {
+ diagnosticRequestBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000002;
+ return this;
+ }
+ public Builder setDiagnosticRequest(
+ com.openxc.BinaryMessages.DiagnosticControlCommand.Builder builderForValue) {
+ if (diagnosticRequestBuilder_ == null) {
+ diagnosticRequest_ = builderForValue.build();
+ onChanged();
+ } else {
+ diagnosticRequestBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000002;
+ return this;
+ }
+ public Builder mergeDiagnosticRequest(com.openxc.BinaryMessages.DiagnosticControlCommand value) {
+ if (diagnosticRequestBuilder_ == null) {
+ if (((bitField0_ & 0x00000002) == 0x00000002) &&
+ diagnosticRequest_ != com.openxc.BinaryMessages.DiagnosticControlCommand.getDefaultInstance()) {
+ diagnosticRequest_ =
+ com.openxc.BinaryMessages.DiagnosticControlCommand.newBuilder(diagnosticRequest_).mergeFrom(value).buildPartial();
+ } else {
+ diagnosticRequest_ = value;
+ }
+ onChanged();
+ } else {
+ diagnosticRequestBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000002;
+ return this;
+ }
+ public Builder clearDiagnosticRequest() {
+ if (diagnosticRequestBuilder_ == null) {
+ diagnosticRequest_ = com.openxc.BinaryMessages.DiagnosticControlCommand.getDefaultInstance();
+ onChanged();
+ } else {
+ diagnosticRequestBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000002);
+ return this;
+ }
+ public com.openxc.BinaryMessages.DiagnosticControlCommand.Builder getDiagnosticRequestBuilder() {
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return getDiagnosticRequestFieldBuilder().getBuilder();
+ }
+ public com.openxc.BinaryMessages.DiagnosticControlCommandOrBuilder getDiagnosticRequestOrBuilder() {
+ if (diagnosticRequestBuilder_ != null) {
+ return diagnosticRequestBuilder_.getMessageOrBuilder();
+ } else {
+ return diagnosticRequest_;
+ }
+ }
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.DiagnosticControlCommand, com.openxc.BinaryMessages.DiagnosticControlCommand.Builder, com.openxc.BinaryMessages.DiagnosticControlCommandOrBuilder>
+ getDiagnosticRequestFieldBuilder() {
+ if (diagnosticRequestBuilder_ == null) {
+ diagnosticRequestBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.DiagnosticControlCommand, com.openxc.BinaryMessages.DiagnosticControlCommand.Builder, com.openxc.BinaryMessages.DiagnosticControlCommandOrBuilder>(
+ diagnosticRequest_,
+ getParentForChildren(),
+ isClean());
+ diagnosticRequest_ = null;
+ }
+ return diagnosticRequestBuilder_;
+ }
+
+ // optional .openxc.PassthroughModeControlCommand passthrough_mode_request = 3;
+ private com.openxc.BinaryMessages.PassthroughModeControlCommand passthroughModeRequest_ = com.openxc.BinaryMessages.PassthroughModeControlCommand.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.PassthroughModeControlCommand, com.openxc.BinaryMessages.PassthroughModeControlCommand.Builder, com.openxc.BinaryMessages.PassthroughModeControlCommandOrBuilder> passthroughModeRequestBuilder_;
+ public boolean hasPassthroughModeRequest() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ public com.openxc.BinaryMessages.PassthroughModeControlCommand getPassthroughModeRequest() {
+ if (passthroughModeRequestBuilder_ == null) {
+ return passthroughModeRequest_;
+ } else {
+ return passthroughModeRequestBuilder_.getMessage();
+ }
+ }
+ public Builder setPassthroughModeRequest(com.openxc.BinaryMessages.PassthroughModeControlCommand value) {
+ if (passthroughModeRequestBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ passthroughModeRequest_ = value;
+ onChanged();
+ } else {
+ passthroughModeRequestBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000004;
+ return this;
+ }
+ public Builder setPassthroughModeRequest(
+ com.openxc.BinaryMessages.PassthroughModeControlCommand.Builder builderForValue) {
+ if (passthroughModeRequestBuilder_ == null) {
+ passthroughModeRequest_ = builderForValue.build();
+ onChanged();
+ } else {
+ passthroughModeRequestBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000004;
+ return this;
+ }
+ public Builder mergePassthroughModeRequest(com.openxc.BinaryMessages.PassthroughModeControlCommand value) {
+ if (passthroughModeRequestBuilder_ == null) {
+ if (((bitField0_ & 0x00000004) == 0x00000004) &&
+ passthroughModeRequest_ != com.openxc.BinaryMessages.PassthroughModeControlCommand.getDefaultInstance()) {
+ passthroughModeRequest_ =
+ com.openxc.BinaryMessages.PassthroughModeControlCommand.newBuilder(passthroughModeRequest_).mergeFrom(value).buildPartial();
+ } else {
+ passthroughModeRequest_ = value;
+ }
+ onChanged();
+ } else {
+ passthroughModeRequestBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000004;
+ return this;
+ }
+ public Builder clearPassthroughModeRequest() {
+ if (passthroughModeRequestBuilder_ == null) {
+ passthroughModeRequest_ = com.openxc.BinaryMessages.PassthroughModeControlCommand.getDefaultInstance();
+ onChanged();
+ } else {
+ passthroughModeRequestBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000004);
+ return this;
+ }
+ public com.openxc.BinaryMessages.PassthroughModeControlCommand.Builder getPassthroughModeRequestBuilder() {
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return getPassthroughModeRequestFieldBuilder().getBuilder();
+ }
+ public com.openxc.BinaryMessages.PassthroughModeControlCommandOrBuilder getPassthroughModeRequestOrBuilder() {
+ if (passthroughModeRequestBuilder_ != null) {
+ return passthroughModeRequestBuilder_.getMessageOrBuilder();
+ } else {
+ return passthroughModeRequest_;
+ }
+ }
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.PassthroughModeControlCommand, com.openxc.BinaryMessages.PassthroughModeControlCommand.Builder, com.openxc.BinaryMessages.PassthroughModeControlCommandOrBuilder>
+ getPassthroughModeRequestFieldBuilder() {
+ if (passthroughModeRequestBuilder_ == null) {
+ passthroughModeRequestBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.PassthroughModeControlCommand, com.openxc.BinaryMessages.PassthroughModeControlCommand.Builder, com.openxc.BinaryMessages.PassthroughModeControlCommandOrBuilder>(
+ passthroughModeRequest_,
+ getParentForChildren(),
+ isClean());
+ passthroughModeRequest_ = null;
+ }
+ return passthroughModeRequestBuilder_;
+ }
+
+ // optional .openxc.AcceptanceFilterBypassCommand acceptance_filter_bypass_command = 4;
+ private com.openxc.BinaryMessages.AcceptanceFilterBypassCommand acceptanceFilterBypassCommand_ = com.openxc.BinaryMessages.AcceptanceFilterBypassCommand.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.AcceptanceFilterBypassCommand, com.openxc.BinaryMessages.AcceptanceFilterBypassCommand.Builder, com.openxc.BinaryMessages.AcceptanceFilterBypassCommandOrBuilder> acceptanceFilterBypassCommandBuilder_;
+ public boolean hasAcceptanceFilterBypassCommand() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ public com.openxc.BinaryMessages.AcceptanceFilterBypassCommand getAcceptanceFilterBypassCommand() {
+ if (acceptanceFilterBypassCommandBuilder_ == null) {
+ return acceptanceFilterBypassCommand_;
+ } else {
+ return acceptanceFilterBypassCommandBuilder_.getMessage();
+ }
+ }
+ public Builder setAcceptanceFilterBypassCommand(com.openxc.BinaryMessages.AcceptanceFilterBypassCommand value) {
+ if (acceptanceFilterBypassCommandBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ acceptanceFilterBypassCommand_ = value;
+ onChanged();
+ } else {
+ acceptanceFilterBypassCommandBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000008;
+ return this;
+ }
+ public Builder setAcceptanceFilterBypassCommand(
+ com.openxc.BinaryMessages.AcceptanceFilterBypassCommand.Builder builderForValue) {
+ if (acceptanceFilterBypassCommandBuilder_ == null) {
+ acceptanceFilterBypassCommand_ = builderForValue.build();
+ onChanged();
+ } else {
+ acceptanceFilterBypassCommandBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000008;
+ return this;
+ }
+ public Builder mergeAcceptanceFilterBypassCommand(com.openxc.BinaryMessages.AcceptanceFilterBypassCommand value) {
+ if (acceptanceFilterBypassCommandBuilder_ == null) {
+ if (((bitField0_ & 0x00000008) == 0x00000008) &&
+ acceptanceFilterBypassCommand_ != com.openxc.BinaryMessages.AcceptanceFilterBypassCommand.getDefaultInstance()) {
+ acceptanceFilterBypassCommand_ =
+ com.openxc.BinaryMessages.AcceptanceFilterBypassCommand.newBuilder(acceptanceFilterBypassCommand_).mergeFrom(value).buildPartial();
+ } else {
+ acceptanceFilterBypassCommand_ = value;
+ }
+ onChanged();
+ } else {
+ acceptanceFilterBypassCommandBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000008;
+ return this;
+ }
+ public Builder clearAcceptanceFilterBypassCommand() {
+ if (acceptanceFilterBypassCommandBuilder_ == null) {
+ acceptanceFilterBypassCommand_ = com.openxc.BinaryMessages.AcceptanceFilterBypassCommand.getDefaultInstance();
+ onChanged();
+ } else {
+ acceptanceFilterBypassCommandBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000008);
+ return this;
+ }
+ public com.openxc.BinaryMessages.AcceptanceFilterBypassCommand.Builder getAcceptanceFilterBypassCommandBuilder() {
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return getAcceptanceFilterBypassCommandFieldBuilder().getBuilder();
+ }
+ public com.openxc.BinaryMessages.AcceptanceFilterBypassCommandOrBuilder getAcceptanceFilterBypassCommandOrBuilder() {
+ if (acceptanceFilterBypassCommandBuilder_ != null) {
+ return acceptanceFilterBypassCommandBuilder_.getMessageOrBuilder();
+ } else {
+ return acceptanceFilterBypassCommand_;
+ }
+ }
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.AcceptanceFilterBypassCommand, com.openxc.BinaryMessages.AcceptanceFilterBypassCommand.Builder, com.openxc.BinaryMessages.AcceptanceFilterBypassCommandOrBuilder>
+ getAcceptanceFilterBypassCommandFieldBuilder() {
+ if (acceptanceFilterBypassCommandBuilder_ == null) {
+ acceptanceFilterBypassCommandBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.AcceptanceFilterBypassCommand, com.openxc.BinaryMessages.AcceptanceFilterBypassCommand.Builder, com.openxc.BinaryMessages.AcceptanceFilterBypassCommandOrBuilder>(
+ acceptanceFilterBypassCommand_,
+ getParentForChildren(),
+ isClean());
+ acceptanceFilterBypassCommand_ = null;
+ }
+ return acceptanceFilterBypassCommandBuilder_;
+ }
+
+ // optional .openxc.PayloadFormatCommand payload_format_command = 5;
+ private com.openxc.BinaryMessages.PayloadFormatCommand payloadFormatCommand_ = com.openxc.BinaryMessages.PayloadFormatCommand.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.PayloadFormatCommand, com.openxc.BinaryMessages.PayloadFormatCommand.Builder, com.openxc.BinaryMessages.PayloadFormatCommandOrBuilder> payloadFormatCommandBuilder_;
+ public boolean hasPayloadFormatCommand() {
+ return ((bitField0_ & 0x00000010) == 0x00000010);
+ }
+ public com.openxc.BinaryMessages.PayloadFormatCommand getPayloadFormatCommand() {
+ if (payloadFormatCommandBuilder_ == null) {
+ return payloadFormatCommand_;
+ } else {
+ return payloadFormatCommandBuilder_.getMessage();
+ }
+ }
+ public Builder setPayloadFormatCommand(com.openxc.BinaryMessages.PayloadFormatCommand value) {
+ if (payloadFormatCommandBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ payloadFormatCommand_ = value;
+ onChanged();
+ } else {
+ payloadFormatCommandBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000010;
+ return this;
+ }
+ public Builder setPayloadFormatCommand(
+ com.openxc.BinaryMessages.PayloadFormatCommand.Builder builderForValue) {
+ if (payloadFormatCommandBuilder_ == null) {
+ payloadFormatCommand_ = builderForValue.build();
+ onChanged();
+ } else {
+ payloadFormatCommandBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000010;
+ return this;
+ }
+ public Builder mergePayloadFormatCommand(com.openxc.BinaryMessages.PayloadFormatCommand value) {
+ if (payloadFormatCommandBuilder_ == null) {
+ if (((bitField0_ & 0x00000010) == 0x00000010) &&
+ payloadFormatCommand_ != com.openxc.BinaryMessages.PayloadFormatCommand.getDefaultInstance()) {
+ payloadFormatCommand_ =
+ com.openxc.BinaryMessages.PayloadFormatCommand.newBuilder(payloadFormatCommand_).mergeFrom(value).buildPartial();
+ } else {
+ payloadFormatCommand_ = value;
+ }
+ onChanged();
+ } else {
+ payloadFormatCommandBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000010;
+ return this;
+ }
+ public Builder clearPayloadFormatCommand() {
+ if (payloadFormatCommandBuilder_ == null) {
+ payloadFormatCommand_ = com.openxc.BinaryMessages.PayloadFormatCommand.getDefaultInstance();
+ onChanged();
+ } else {
+ payloadFormatCommandBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000010);
+ return this;
+ }
+ public com.openxc.BinaryMessages.PayloadFormatCommand.Builder getPayloadFormatCommandBuilder() {
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return getPayloadFormatCommandFieldBuilder().getBuilder();
+ }
+ public com.openxc.BinaryMessages.PayloadFormatCommandOrBuilder getPayloadFormatCommandOrBuilder() {
+ if (payloadFormatCommandBuilder_ != null) {
+ return payloadFormatCommandBuilder_.getMessageOrBuilder();
+ } else {
+ return payloadFormatCommand_;
+ }
+ }
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.PayloadFormatCommand, com.openxc.BinaryMessages.PayloadFormatCommand.Builder, com.openxc.BinaryMessages.PayloadFormatCommandOrBuilder>
+ getPayloadFormatCommandFieldBuilder() {
+ if (payloadFormatCommandBuilder_ == null) {
+ payloadFormatCommandBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.PayloadFormatCommand, com.openxc.BinaryMessages.PayloadFormatCommand.Builder, com.openxc.BinaryMessages.PayloadFormatCommandOrBuilder>(
+ payloadFormatCommand_,
+ getParentForChildren(),
+ isClean());
+ payloadFormatCommand_ = null;
+ }
+ return payloadFormatCommandBuilder_;
+ }
+
+ // optional .openxc.PredefinedObd2RequestsCommand predefined_obd2_requests_command = 6;
+ private com.openxc.BinaryMessages.PredefinedObd2RequestsCommand predefinedObd2RequestsCommand_ = com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.PredefinedObd2RequestsCommand, com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.Builder, com.openxc.BinaryMessages.PredefinedObd2RequestsCommandOrBuilder> predefinedObd2RequestsCommandBuilder_;
+ public boolean hasPredefinedObd2RequestsCommand() {
+ return ((bitField0_ & 0x00000020) == 0x00000020);
+ }
+ public com.openxc.BinaryMessages.PredefinedObd2RequestsCommand getPredefinedObd2RequestsCommand() {
+ if (predefinedObd2RequestsCommandBuilder_ == null) {
+ return predefinedObd2RequestsCommand_;
+ } else {
+ return predefinedObd2RequestsCommandBuilder_.getMessage();
+ }
+ }
+ public Builder setPredefinedObd2RequestsCommand(com.openxc.BinaryMessages.PredefinedObd2RequestsCommand value) {
+ if (predefinedObd2RequestsCommandBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ predefinedObd2RequestsCommand_ = value;
+ onChanged();
+ } else {
+ predefinedObd2RequestsCommandBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000020;
+ return this;
+ }
+ public Builder setPredefinedObd2RequestsCommand(
+ com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.Builder builderForValue) {
+ if (predefinedObd2RequestsCommandBuilder_ == null) {
+ predefinedObd2RequestsCommand_ = builderForValue.build();
+ onChanged();
+ } else {
+ predefinedObd2RequestsCommandBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000020;
+ return this;
+ }
+ public Builder mergePredefinedObd2RequestsCommand(com.openxc.BinaryMessages.PredefinedObd2RequestsCommand value) {
+ if (predefinedObd2RequestsCommandBuilder_ == null) {
+ if (((bitField0_ & 0x00000020) == 0x00000020) &&
+ predefinedObd2RequestsCommand_ != com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.getDefaultInstance()) {
+ predefinedObd2RequestsCommand_ =
+ com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.newBuilder(predefinedObd2RequestsCommand_).mergeFrom(value).buildPartial();
+ } else {
+ predefinedObd2RequestsCommand_ = value;
+ }
+ onChanged();
+ } else {
+ predefinedObd2RequestsCommandBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000020;
+ return this;
+ }
+ public Builder clearPredefinedObd2RequestsCommand() {
+ if (predefinedObd2RequestsCommandBuilder_ == null) {
+ predefinedObd2RequestsCommand_ = com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.getDefaultInstance();
+ onChanged();
+ } else {
+ predefinedObd2RequestsCommandBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000020);
+ return this;
+ }
+ public com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.Builder getPredefinedObd2RequestsCommandBuilder() {
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return getPredefinedObd2RequestsCommandFieldBuilder().getBuilder();
+ }
+ public com.openxc.BinaryMessages.PredefinedObd2RequestsCommandOrBuilder getPredefinedObd2RequestsCommandOrBuilder() {
+ if (predefinedObd2RequestsCommandBuilder_ != null) {
+ return predefinedObd2RequestsCommandBuilder_.getMessageOrBuilder();
+ } else {
+ return predefinedObd2RequestsCommand_;
+ }
+ }
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.PredefinedObd2RequestsCommand, com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.Builder, com.openxc.BinaryMessages.PredefinedObd2RequestsCommandOrBuilder>
+ getPredefinedObd2RequestsCommandFieldBuilder() {
+ if (predefinedObd2RequestsCommandBuilder_ == null) {
+ predefinedObd2RequestsCommandBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.PredefinedObd2RequestsCommand, com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.Builder, com.openxc.BinaryMessages.PredefinedObd2RequestsCommandOrBuilder>(
+ predefinedObd2RequestsCommand_,
+ getParentForChildren(),
+ isClean());
+ predefinedObd2RequestsCommand_ = null;
+ }
+ return predefinedObd2RequestsCommandBuilder_;
+ }
+
+ // optional .openxc.ModemConfigurationCommand modem_configuration_command = 7;
+ private com.openxc.BinaryMessages.ModemConfigurationCommand modemConfigurationCommand_ = com.openxc.BinaryMessages.ModemConfigurationCommand.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.ModemConfigurationCommand, com.openxc.BinaryMessages.ModemConfigurationCommand.Builder, com.openxc.BinaryMessages.ModemConfigurationCommandOrBuilder> modemConfigurationCommandBuilder_;
+ public boolean hasModemConfigurationCommand() {
+ return ((bitField0_ & 0x00000040) == 0x00000040);
+ }
+ public com.openxc.BinaryMessages.ModemConfigurationCommand getModemConfigurationCommand() {
+ if (modemConfigurationCommandBuilder_ == null) {
+ return modemConfigurationCommand_;
+ } else {
+ return modemConfigurationCommandBuilder_.getMessage();
+ }
+ }
+ public Builder setModemConfigurationCommand(com.openxc.BinaryMessages.ModemConfigurationCommand value) {
+ if (modemConfigurationCommandBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ modemConfigurationCommand_ = value;
+ onChanged();
+ } else {
+ modemConfigurationCommandBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000040;
+ return this;
+ }
+ public Builder setModemConfigurationCommand(
+ com.openxc.BinaryMessages.ModemConfigurationCommand.Builder builderForValue) {
+ if (modemConfigurationCommandBuilder_ == null) {
+ modemConfigurationCommand_ = builderForValue.build();
+ onChanged();
+ } else {
+ modemConfigurationCommandBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000040;
+ return this;
+ }
+ public Builder mergeModemConfigurationCommand(com.openxc.BinaryMessages.ModemConfigurationCommand value) {
+ if (modemConfigurationCommandBuilder_ == null) {
+ if (((bitField0_ & 0x00000040) == 0x00000040) &&
+ modemConfigurationCommand_ != com.openxc.BinaryMessages.ModemConfigurationCommand.getDefaultInstance()) {
+ modemConfigurationCommand_ =
+ com.openxc.BinaryMessages.ModemConfigurationCommand.newBuilder(modemConfigurationCommand_).mergeFrom(value).buildPartial();
+ } else {
+ modemConfigurationCommand_ = value;
+ }
+ onChanged();
+ } else {
+ modemConfigurationCommandBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000040;
+ return this;
+ }
+ public Builder clearModemConfigurationCommand() {
+ if (modemConfigurationCommandBuilder_ == null) {
+ modemConfigurationCommand_ = com.openxc.BinaryMessages.ModemConfigurationCommand.getDefaultInstance();
+ onChanged();
+ } else {
+ modemConfigurationCommandBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000040);
+ return this;
+ }
+ public com.openxc.BinaryMessages.ModemConfigurationCommand.Builder getModemConfigurationCommandBuilder() {
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return getModemConfigurationCommandFieldBuilder().getBuilder();
+ }
+ public com.openxc.BinaryMessages.ModemConfigurationCommandOrBuilder getModemConfigurationCommandOrBuilder() {
+ if (modemConfigurationCommandBuilder_ != null) {
+ return modemConfigurationCommandBuilder_.getMessageOrBuilder();
+ } else {
+ return modemConfigurationCommand_;
+ }
+ }
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.ModemConfigurationCommand, com.openxc.BinaryMessages.ModemConfigurationCommand.Builder, com.openxc.BinaryMessages.ModemConfigurationCommandOrBuilder>
+ getModemConfigurationCommandFieldBuilder() {
+ if (modemConfigurationCommandBuilder_ == null) {
+ modemConfigurationCommandBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.ModemConfigurationCommand, com.openxc.BinaryMessages.ModemConfigurationCommand.Builder, com.openxc.BinaryMessages.ModemConfigurationCommandOrBuilder>(
+ modemConfigurationCommand_,
+ getParentForChildren(),
+ isClean());
+ modemConfigurationCommand_ = null;
+ }
+ return modemConfigurationCommandBuilder_;
+ }
+
+ // optional .openxc.RTCConfigurationCommand rtc_configuration_command = 8;
+ private com.openxc.BinaryMessages.RTCConfigurationCommand rtcConfigurationCommand_ = com.openxc.BinaryMessages.RTCConfigurationCommand.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.RTCConfigurationCommand, com.openxc.BinaryMessages.RTCConfigurationCommand.Builder, com.openxc.BinaryMessages.RTCConfigurationCommandOrBuilder> rtcConfigurationCommandBuilder_;
+ public boolean hasRtcConfigurationCommand() {
+ return ((bitField0_ & 0x00000080) == 0x00000080);
+ }
+ public com.openxc.BinaryMessages.RTCConfigurationCommand getRtcConfigurationCommand() {
+ if (rtcConfigurationCommandBuilder_ == null) {
+ return rtcConfigurationCommand_;
+ } else {
+ return rtcConfigurationCommandBuilder_.getMessage();
+ }
+ }
+ public Builder setRtcConfigurationCommand(com.openxc.BinaryMessages.RTCConfigurationCommand value) {
+ if (rtcConfigurationCommandBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ rtcConfigurationCommand_ = value;
+ onChanged();
+ } else {
+ rtcConfigurationCommandBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000080;
+ return this;
+ }
+ public Builder setRtcConfigurationCommand(
+ com.openxc.BinaryMessages.RTCConfigurationCommand.Builder builderForValue) {
+ if (rtcConfigurationCommandBuilder_ == null) {
+ rtcConfigurationCommand_ = builderForValue.build();
+ onChanged();
+ } else {
+ rtcConfigurationCommandBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000080;
+ return this;
+ }
+ public Builder mergeRtcConfigurationCommand(com.openxc.BinaryMessages.RTCConfigurationCommand value) {
+ if (rtcConfigurationCommandBuilder_ == null) {
+ if (((bitField0_ & 0x00000080) == 0x00000080) &&
+ rtcConfigurationCommand_ != com.openxc.BinaryMessages.RTCConfigurationCommand.getDefaultInstance()) {
+ rtcConfigurationCommand_ =
+ com.openxc.BinaryMessages.RTCConfigurationCommand.newBuilder(rtcConfigurationCommand_).mergeFrom(value).buildPartial();
+ } else {
+ rtcConfigurationCommand_ = value;
+ }
+ onChanged();
+ } else {
+ rtcConfigurationCommandBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000080;
+ return this;
+ }
+ public Builder clearRtcConfigurationCommand() {
+ if (rtcConfigurationCommandBuilder_ == null) {
+ rtcConfigurationCommand_ = com.openxc.BinaryMessages.RTCConfigurationCommand.getDefaultInstance();
+ onChanged();
+ } else {
+ rtcConfigurationCommandBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000080);
+ return this;
+ }
+ public com.openxc.BinaryMessages.RTCConfigurationCommand.Builder getRtcConfigurationCommandBuilder() {
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return getRtcConfigurationCommandFieldBuilder().getBuilder();
+ }
+ public com.openxc.BinaryMessages.RTCConfigurationCommandOrBuilder getRtcConfigurationCommandOrBuilder() {
+ if (rtcConfigurationCommandBuilder_ != null) {
+ return rtcConfigurationCommandBuilder_.getMessageOrBuilder();
+ } else {
+ return rtcConfigurationCommand_;
+ }
+ }
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.RTCConfigurationCommand, com.openxc.BinaryMessages.RTCConfigurationCommand.Builder, com.openxc.BinaryMessages.RTCConfigurationCommandOrBuilder>
+ getRtcConfigurationCommandFieldBuilder() {
+ if (rtcConfigurationCommandBuilder_ == null) {
+ rtcConfigurationCommandBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.RTCConfigurationCommand, com.openxc.BinaryMessages.RTCConfigurationCommand.Builder, com.openxc.BinaryMessages.RTCConfigurationCommandOrBuilder>(
+ rtcConfigurationCommand_,
+ getParentForChildren(),
+ isClean());
+ rtcConfigurationCommand_ = null;
+ }
+ return rtcConfigurationCommandBuilder_;
+ }
+
+ // @@protoc_insertion_point(builder_scope:openxc.ControlCommand)
+ }
+
+ static {
+ defaultInstance = new ControlCommand(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:openxc.ControlCommand)
+ }
+
+ public interface DiagnosticControlCommandOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional .openxc.DiagnosticRequest request = 1;
+ boolean hasRequest();
+ com.openxc.BinaryMessages.DiagnosticRequest getRequest();
+ com.openxc.BinaryMessages.DiagnosticRequestOrBuilder getRequestOrBuilder();
+
+ // optional .openxc.DiagnosticControlCommand.Action action = 2;
+ boolean hasAction();
+ com.openxc.BinaryMessages.DiagnosticControlCommand.Action getAction();
+ }
+ public static final class DiagnosticControlCommand extends
+ com.google.protobuf.GeneratedMessage
+ implements DiagnosticControlCommandOrBuilder {
+ // Use DiagnosticControlCommand.newBuilder() to construct.
+ private DiagnosticControlCommand(Builder builder) {
+ super(builder);
+ }
+ private DiagnosticControlCommand(boolean noInit) {}
+
+ private static final DiagnosticControlCommand defaultInstance;
+ public static DiagnosticControlCommand getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public DiagnosticControlCommand getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_DiagnosticControlCommand_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_DiagnosticControlCommand_fieldAccessorTable;
+ }
+
+ public enum Action
+ implements com.google.protobuf.ProtocolMessageEnum {
+ ADD(0, 1),
+ CANCEL(1, 2),
+ ;
+
+ public static final int ADD_VALUE = 1;
+ public static final int CANCEL_VALUE = 2;
+
+
+ public final int getNumber() { return value; }
+
+ public static Action valueOf(int value) {
+ switch (value) {
+ case 1: return ADD;
+ case 2: return CANCEL;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap<Action>
+ internalGetValueMap() {
+ return internalValueMap;
+ }
+ private static com.google.protobuf.Internal.EnumLiteMap<Action>
+ internalValueMap =
+ new com.google.protobuf.Internal.EnumLiteMap<Action>() {
+ public Action findValueByNumber(int number) {
+ return Action.valueOf(number);
+ }
+ };
+
+ public final com.google.protobuf.Descriptors.EnumValueDescriptor
+ getValueDescriptor() {
+ return getDescriptor().getValues().get(index);
+ }
+ public final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptorForType() {
+ return getDescriptor();
+ }
+ public static final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.DiagnosticControlCommand.getDescriptor().getEnumTypes().get(0);
+ }
+
+ private static final Action[] VALUES = {
+ ADD, CANCEL,
+ };
+
+ public static Action valueOf(
+ com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+ if (desc.getType() != getDescriptor()) {
+ throw new java.lang.IllegalArgumentException(
+ "EnumValueDescriptor is not for this type.");
+ }
+ return VALUES[desc.getIndex()];
+ }
+
+ private final int index;
+ private final int value;
+
+ private Action(int index, int value) {
+ this.index = index;
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:openxc.DiagnosticControlCommand.Action)
+ }
+
+ private int bitField0_;
+ // optional .openxc.DiagnosticRequest request = 1;
+ public static final int REQUEST_FIELD_NUMBER = 1;
+ private com.openxc.BinaryMessages.DiagnosticRequest request_;
+ public boolean hasRequest() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public com.openxc.BinaryMessages.DiagnosticRequest getRequest() {
+ return request_;
+ }
+ public com.openxc.BinaryMessages.DiagnosticRequestOrBuilder getRequestOrBuilder() {
+ return request_;
+ }
+
+ // optional .openxc.DiagnosticControlCommand.Action action = 2;
+ public static final int ACTION_FIELD_NUMBER = 2;
+ private com.openxc.BinaryMessages.DiagnosticControlCommand.Action action_;
+ public boolean hasAction() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public com.openxc.BinaryMessages.DiagnosticControlCommand.Action getAction() {
+ return action_;
+ }
+
+ private void initFields() {
+ request_ = com.openxc.BinaryMessages.DiagnosticRequest.getDefaultInstance();
+ action_ = com.openxc.BinaryMessages.DiagnosticControlCommand.Action.ADD;
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeMessage(1, request_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeEnum(2, action_.getNumber());
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(1, request_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(2, action_.getNumber());
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static com.openxc.BinaryMessages.DiagnosticControlCommand parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.DiagnosticControlCommand parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.DiagnosticControlCommand parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.DiagnosticControlCommand parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.DiagnosticControlCommand parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.DiagnosticControlCommand parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.DiagnosticControlCommand parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.DiagnosticControlCommand parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.DiagnosticControlCommand parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.DiagnosticControlCommand parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(com.openxc.BinaryMessages.DiagnosticControlCommand prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements com.openxc.BinaryMessages.DiagnosticControlCommandOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_DiagnosticControlCommand_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_DiagnosticControlCommand_fieldAccessorTable;
+ }
+
+ // Construct using com.openxc.BinaryMessages.DiagnosticControlCommand.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ getRequestFieldBuilder();
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ if (requestBuilder_ == null) {
+ request_ = com.openxc.BinaryMessages.DiagnosticRequest.getDefaultInstance();
+ } else {
+ requestBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000001);
+ action_ = com.openxc.BinaryMessages.DiagnosticControlCommand.Action.ADD;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.openxc.BinaryMessages.DiagnosticControlCommand.getDescriptor();
+ }
+
+ public com.openxc.BinaryMessages.DiagnosticControlCommand getDefaultInstanceForType() {
+ return com.openxc.BinaryMessages.DiagnosticControlCommand.getDefaultInstance();
+ }
+
+ public com.openxc.BinaryMessages.DiagnosticControlCommand build() {
+ com.openxc.BinaryMessages.DiagnosticControlCommand result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ private com.openxc.BinaryMessages.DiagnosticControlCommand buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ com.openxc.BinaryMessages.DiagnosticControlCommand result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return result;
+ }
+
+ public com.openxc.BinaryMessages.DiagnosticControlCommand buildPartial() {
+ com.openxc.BinaryMessages.DiagnosticControlCommand result = new com.openxc.BinaryMessages.DiagnosticControlCommand(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ if (requestBuilder_ == null) {
+ result.request_ = request_;
+ } else {
+ result.request_ = requestBuilder_.build();
+ }
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ result.action_ = action_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.openxc.BinaryMessages.DiagnosticControlCommand) {
+ return mergeFrom((com.openxc.BinaryMessages.DiagnosticControlCommand)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.openxc.BinaryMessages.DiagnosticControlCommand other) {
+ if (other == com.openxc.BinaryMessages.DiagnosticControlCommand.getDefaultInstance()) return this;
+ if (other.hasRequest()) {
+ mergeRequest(other.getRequest());
+ }
+ if (other.hasAction()) {
+ setAction(other.getAction());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ 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 {
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder(
+ this.getUnknownFields());
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ }
+ break;
+ }
+ case 10: {
+ com.openxc.BinaryMessages.DiagnosticRequest.Builder subBuilder = com.openxc.BinaryMessages.DiagnosticRequest.newBuilder();
+ if (hasRequest()) {
+ subBuilder.mergeFrom(getRequest());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setRequest(subBuilder.buildPartial());
+ break;
+ }
+ case 16: {
+ int rawValue = input.readEnum();
+ com.openxc.BinaryMessages.DiagnosticControlCommand.Action value = com.openxc.BinaryMessages.DiagnosticControlCommand.Action.valueOf(rawValue);
+ if (value == null) {
+ unknownFields.mergeVarintField(2, rawValue);
+ } else {
+ bitField0_ |= 0x00000002;
+ action_ = value;
+ }
+ break;
+ }
+ }
+ }
+ }
+
+ private int bitField0_;
+
+ // optional .openxc.DiagnosticRequest request = 1;
+ private com.openxc.BinaryMessages.DiagnosticRequest request_ = com.openxc.BinaryMessages.DiagnosticRequest.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.DiagnosticRequest, com.openxc.BinaryMessages.DiagnosticRequest.Builder, com.openxc.BinaryMessages.DiagnosticRequestOrBuilder> requestBuilder_;
+ public boolean hasRequest() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public com.openxc.BinaryMessages.DiagnosticRequest getRequest() {
+ if (requestBuilder_ == null) {
+ return request_;
+ } else {
+ return requestBuilder_.getMessage();
+ }
+ }
+ public Builder setRequest(com.openxc.BinaryMessages.DiagnosticRequest value) {
+ if (requestBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ request_ = value;
+ onChanged();
+ } else {
+ requestBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000001;
+ return this;
+ }
+ public Builder setRequest(
+ com.openxc.BinaryMessages.DiagnosticRequest.Builder builderForValue) {
+ if (requestBuilder_ == null) {
+ request_ = builderForValue.build();
+ onChanged();
+ } else {
+ requestBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000001;
+ return this;
+ }
+ public Builder mergeRequest(com.openxc.BinaryMessages.DiagnosticRequest value) {
+ if (requestBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) == 0x00000001) &&
+ request_ != com.openxc.BinaryMessages.DiagnosticRequest.getDefaultInstance()) {
+ request_ =
+ com.openxc.BinaryMessages.DiagnosticRequest.newBuilder(request_).mergeFrom(value).buildPartial();
+ } else {
+ request_ = value;
+ }
+ onChanged();
+ } else {
+ requestBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000001;
+ return this;
+ }
+ public Builder clearRequest() {
+ if (requestBuilder_ == null) {
+ request_ = com.openxc.BinaryMessages.DiagnosticRequest.getDefaultInstance();
+ onChanged();
+ } else {
+ requestBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000001);
+ return this;
+ }
+ public com.openxc.BinaryMessages.DiagnosticRequest.Builder getRequestBuilder() {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return getRequestFieldBuilder().getBuilder();
+ }
+ public com.openxc.BinaryMessages.DiagnosticRequestOrBuilder getRequestOrBuilder() {
+ if (requestBuilder_ != null) {
+ return requestBuilder_.getMessageOrBuilder();
+ } else {
+ return request_;
+ }
+ }
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.DiagnosticRequest, com.openxc.BinaryMessages.DiagnosticRequest.Builder, com.openxc.BinaryMessages.DiagnosticRequestOrBuilder>
+ getRequestFieldBuilder() {
+ if (requestBuilder_ == null) {
+ requestBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.DiagnosticRequest, com.openxc.BinaryMessages.DiagnosticRequest.Builder, com.openxc.BinaryMessages.DiagnosticRequestOrBuilder>(
+ request_,
+ getParentForChildren(),
+ isClean());
+ request_ = null;
+ }
+ return requestBuilder_;
+ }
+
+ // optional .openxc.DiagnosticControlCommand.Action action = 2;
+ private com.openxc.BinaryMessages.DiagnosticControlCommand.Action action_ = com.openxc.BinaryMessages.DiagnosticControlCommand.Action.ADD;
+ public boolean hasAction() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public com.openxc.BinaryMessages.DiagnosticControlCommand.Action getAction() {
+ return action_;
+ }
+ public Builder setAction(com.openxc.BinaryMessages.DiagnosticControlCommand.Action value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000002;
+ action_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearAction() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ action_ = com.openxc.BinaryMessages.DiagnosticControlCommand.Action.ADD;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:openxc.DiagnosticControlCommand)
+ }
+
+ static {
+ defaultInstance = new DiagnosticControlCommand(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:openxc.DiagnosticControlCommand)
+ }
+
+ public interface PassthroughModeControlCommandOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional int32 bus = 1;
+ boolean hasBus();
+ int getBus();
+
+ // optional bool enabled = 2;
+ boolean hasEnabled();
+ boolean getEnabled();
+ }
+ public static final class PassthroughModeControlCommand extends
+ com.google.protobuf.GeneratedMessage
+ implements PassthroughModeControlCommandOrBuilder {
+ // Use PassthroughModeControlCommand.newBuilder() to construct.
+ private PassthroughModeControlCommand(Builder builder) {
+ super(builder);
+ }
+ private PassthroughModeControlCommand(boolean noInit) {}
+
+ private static final PassthroughModeControlCommand defaultInstance;
+ public static PassthroughModeControlCommand getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public PassthroughModeControlCommand getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_PassthroughModeControlCommand_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_PassthroughModeControlCommand_fieldAccessorTable;
+ }
+
+ private int bitField0_;
+ // optional int32 bus = 1;
+ public static final int BUS_FIELD_NUMBER = 1;
+ private int bus_;
+ public boolean hasBus() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public int getBus() {
+ return bus_;
+ }
+
+ // optional bool enabled = 2;
+ public static final int ENABLED_FIELD_NUMBER = 2;
+ private boolean enabled_;
+ public boolean hasEnabled() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public boolean getEnabled() {
+ return enabled_;
+ }
+
+ private void initFields() {
+ bus_ = 0;
+ enabled_ = false;
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeInt32(1, bus_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeBool(2, enabled_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32Size(1, bus_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBoolSize(2, enabled_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static com.openxc.BinaryMessages.PassthroughModeControlCommand parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.PassthroughModeControlCommand parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.PassthroughModeControlCommand parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.PassthroughModeControlCommand parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.PassthroughModeControlCommand parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.PassthroughModeControlCommand parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.PassthroughModeControlCommand parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.PassthroughModeControlCommand parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.PassthroughModeControlCommand parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.PassthroughModeControlCommand parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(com.openxc.BinaryMessages.PassthroughModeControlCommand prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements com.openxc.BinaryMessages.PassthroughModeControlCommandOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_PassthroughModeControlCommand_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_PassthroughModeControlCommand_fieldAccessorTable;
+ }
+
+ // Construct using com.openxc.BinaryMessages.PassthroughModeControlCommand.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ bus_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ enabled_ = false;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.openxc.BinaryMessages.PassthroughModeControlCommand.getDescriptor();
+ }
+
+ public com.openxc.BinaryMessages.PassthroughModeControlCommand getDefaultInstanceForType() {
+ return com.openxc.BinaryMessages.PassthroughModeControlCommand.getDefaultInstance();
+ }
+
+ public com.openxc.BinaryMessages.PassthroughModeControlCommand build() {
+ com.openxc.BinaryMessages.PassthroughModeControlCommand result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ private com.openxc.BinaryMessages.PassthroughModeControlCommand buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ com.openxc.BinaryMessages.PassthroughModeControlCommand result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return result;
+ }
+
+ public com.openxc.BinaryMessages.PassthroughModeControlCommand buildPartial() {
+ com.openxc.BinaryMessages.PassthroughModeControlCommand result = new com.openxc.BinaryMessages.PassthroughModeControlCommand(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.bus_ = bus_;
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ result.enabled_ = enabled_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.openxc.BinaryMessages.PassthroughModeControlCommand) {
+ return mergeFrom((com.openxc.BinaryMessages.PassthroughModeControlCommand)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.openxc.BinaryMessages.PassthroughModeControlCommand other) {
+ if (other == com.openxc.BinaryMessages.PassthroughModeControlCommand.getDefaultInstance()) return this;
+ if (other.hasBus()) {
+ setBus(other.getBus());
+ }
+ if (other.hasEnabled()) {
+ setEnabled(other.getEnabled());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ 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 {
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder(
+ this.getUnknownFields());
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ }
+ break;
+ }
+ case 8: {
+ bitField0_ |= 0x00000001;
+ bus_ = input.readInt32();
+ break;
+ }
+ case 16: {
+ bitField0_ |= 0x00000002;
+ enabled_ = input.readBool();
+ break;
+ }
+ }
+ }
+ }
+
+ private int bitField0_;
+
+ // optional int32 bus = 1;
+ private int bus_ ;
+ public boolean hasBus() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public int getBus() {
+ return bus_;
+ }
+ public Builder setBus(int value) {
+ bitField0_ |= 0x00000001;
+ bus_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearBus() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ bus_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional bool enabled = 2;
+ private boolean enabled_ ;
+ public boolean hasEnabled() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public boolean getEnabled() {
+ return enabled_;
+ }
+ public Builder setEnabled(boolean value) {
+ bitField0_ |= 0x00000002;
+ enabled_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearEnabled() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ enabled_ = false;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:openxc.PassthroughModeControlCommand)
+ }
+
+ static {
+ defaultInstance = new PassthroughModeControlCommand(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:openxc.PassthroughModeControlCommand)
+ }
+
+ public interface AcceptanceFilterBypassCommandOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional int32 bus = 1;
+ boolean hasBus();
+ int getBus();
+
+ // optional bool bypass = 2;
+ boolean hasBypass();
+ boolean getBypass();
+ }
+ public static final class AcceptanceFilterBypassCommand extends
+ com.google.protobuf.GeneratedMessage
+ implements AcceptanceFilterBypassCommandOrBuilder {
+ // Use AcceptanceFilterBypassCommand.newBuilder() to construct.
+ private AcceptanceFilterBypassCommand(Builder builder) {
+ super(builder);
+ }
+ private AcceptanceFilterBypassCommand(boolean noInit) {}
+
+ private static final AcceptanceFilterBypassCommand defaultInstance;
+ public static AcceptanceFilterBypassCommand getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public AcceptanceFilterBypassCommand getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_AcceptanceFilterBypassCommand_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_AcceptanceFilterBypassCommand_fieldAccessorTable;
+ }
+
+ private int bitField0_;
+ // optional int32 bus = 1;
+ public static final int BUS_FIELD_NUMBER = 1;
+ private int bus_;
+ public boolean hasBus() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public int getBus() {
+ return bus_;
+ }
+
+ // optional bool bypass = 2;
+ public static final int BYPASS_FIELD_NUMBER = 2;
+ private boolean bypass_;
+ public boolean hasBypass() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public boolean getBypass() {
+ return bypass_;
+ }
+
+ private void initFields() {
+ bus_ = 0;
+ bypass_ = false;
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeInt32(1, bus_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeBool(2, bypass_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32Size(1, bus_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBoolSize(2, bypass_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static com.openxc.BinaryMessages.AcceptanceFilterBypassCommand parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.AcceptanceFilterBypassCommand parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.AcceptanceFilterBypassCommand parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.AcceptanceFilterBypassCommand parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.AcceptanceFilterBypassCommand parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.AcceptanceFilterBypassCommand parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.AcceptanceFilterBypassCommand parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.AcceptanceFilterBypassCommand parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.AcceptanceFilterBypassCommand parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.AcceptanceFilterBypassCommand parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(com.openxc.BinaryMessages.AcceptanceFilterBypassCommand prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements com.openxc.BinaryMessages.AcceptanceFilterBypassCommandOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_AcceptanceFilterBypassCommand_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_AcceptanceFilterBypassCommand_fieldAccessorTable;
+ }
+
+ // Construct using com.openxc.BinaryMessages.AcceptanceFilterBypassCommand.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ bus_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ bypass_ = false;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.openxc.BinaryMessages.AcceptanceFilterBypassCommand.getDescriptor();
+ }
+
+ public com.openxc.BinaryMessages.AcceptanceFilterBypassCommand getDefaultInstanceForType() {
+ return com.openxc.BinaryMessages.AcceptanceFilterBypassCommand.getDefaultInstance();
+ }
+
+ public com.openxc.BinaryMessages.AcceptanceFilterBypassCommand build() {
+ com.openxc.BinaryMessages.AcceptanceFilterBypassCommand result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ private com.openxc.BinaryMessages.AcceptanceFilterBypassCommand buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ com.openxc.BinaryMessages.AcceptanceFilterBypassCommand result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return result;
+ }
+
+ public com.openxc.BinaryMessages.AcceptanceFilterBypassCommand buildPartial() {
+ com.openxc.BinaryMessages.AcceptanceFilterBypassCommand result = new com.openxc.BinaryMessages.AcceptanceFilterBypassCommand(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.bus_ = bus_;
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ result.bypass_ = bypass_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.openxc.BinaryMessages.AcceptanceFilterBypassCommand) {
+ return mergeFrom((com.openxc.BinaryMessages.AcceptanceFilterBypassCommand)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.openxc.BinaryMessages.AcceptanceFilterBypassCommand other) {
+ if (other == com.openxc.BinaryMessages.AcceptanceFilterBypassCommand.getDefaultInstance()) return this;
+ if (other.hasBus()) {
+ setBus(other.getBus());
+ }
+ if (other.hasBypass()) {
+ setBypass(other.getBypass());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ 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 {
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder(
+ this.getUnknownFields());
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ }
+ break;
+ }
+ case 8: {
+ bitField0_ |= 0x00000001;
+ bus_ = input.readInt32();
+ break;
+ }
+ case 16: {
+ bitField0_ |= 0x00000002;
+ bypass_ = input.readBool();
+ break;
+ }
+ }
+ }
+ }
+
+ private int bitField0_;
+
+ // optional int32 bus = 1;
+ private int bus_ ;
+ public boolean hasBus() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public int getBus() {
+ return bus_;
+ }
+ public Builder setBus(int value) {
+ bitField0_ |= 0x00000001;
+ bus_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearBus() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ bus_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional bool bypass = 2;
+ private boolean bypass_ ;
+ public boolean hasBypass() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public boolean getBypass() {
+ return bypass_;
+ }
+ public Builder setBypass(boolean value) {
+ bitField0_ |= 0x00000002;
+ bypass_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearBypass() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ bypass_ = false;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:openxc.AcceptanceFilterBypassCommand)
+ }
+
+ static {
+ defaultInstance = new AcceptanceFilterBypassCommand(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:openxc.AcceptanceFilterBypassCommand)
+ }
+
+ public interface PayloadFormatCommandOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional .openxc.PayloadFormatCommand.PayloadFormat format = 1;
+ boolean hasFormat();
+ com.openxc.BinaryMessages.PayloadFormatCommand.PayloadFormat getFormat();
+ }
+ public static final class PayloadFormatCommand extends
+ com.google.protobuf.GeneratedMessage
+ implements PayloadFormatCommandOrBuilder {
+ // Use PayloadFormatCommand.newBuilder() to construct.
+ private PayloadFormatCommand(Builder builder) {
+ super(builder);
+ }
+ private PayloadFormatCommand(boolean noInit) {}
+
+ private static final PayloadFormatCommand defaultInstance;
+ public static PayloadFormatCommand getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public PayloadFormatCommand getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_PayloadFormatCommand_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_PayloadFormatCommand_fieldAccessorTable;
+ }
+
+ public enum PayloadFormat
+ implements com.google.protobuf.ProtocolMessageEnum {
+ JSON(0, 1),
+ PROTOBUF(1, 2),
+ MESSAGEPACK(2, 3),
+ ;
+
+ public static final int JSON_VALUE = 1;
+ public static final int PROTOBUF_VALUE = 2;
+ public static final int MESSAGEPACK_VALUE = 3;
+
+
+ public final int getNumber() { return value; }
+
+ public static PayloadFormat valueOf(int value) {
+ switch (value) {
+ case 1: return JSON;
+ case 2: return PROTOBUF;
+ case 3: return MESSAGEPACK;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap<PayloadFormat>
+ internalGetValueMap() {
+ return internalValueMap;
+ }
+ private static com.google.protobuf.Internal.EnumLiteMap<PayloadFormat>
+ internalValueMap =
+ new com.google.protobuf.Internal.EnumLiteMap<PayloadFormat>() {
+ public PayloadFormat findValueByNumber(int number) {
+ return PayloadFormat.valueOf(number);
+ }
+ };
+
+ public final com.google.protobuf.Descriptors.EnumValueDescriptor
+ getValueDescriptor() {
+ return getDescriptor().getValues().get(index);
+ }
+ public final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptorForType() {
+ return getDescriptor();
+ }
+ public static final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.PayloadFormatCommand.getDescriptor().getEnumTypes().get(0);
+ }
+
+ private static final PayloadFormat[] VALUES = {
+ JSON, PROTOBUF, MESSAGEPACK,
+ };
+
+ public static PayloadFormat valueOf(
+ com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+ if (desc.getType() != getDescriptor()) {
+ throw new java.lang.IllegalArgumentException(
+ "EnumValueDescriptor is not for this type.");
+ }
+ return VALUES[desc.getIndex()];
+ }
+
+ private final int index;
+ private final int value;
+
+ private PayloadFormat(int index, int value) {
+ this.index = index;
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:openxc.PayloadFormatCommand.PayloadFormat)
+ }
+
+ private int bitField0_;
+ // optional .openxc.PayloadFormatCommand.PayloadFormat format = 1;
+ public static final int FORMAT_FIELD_NUMBER = 1;
+ private com.openxc.BinaryMessages.PayloadFormatCommand.PayloadFormat format_;
+ public boolean hasFormat() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public com.openxc.BinaryMessages.PayloadFormatCommand.PayloadFormat getFormat() {
+ return format_;
+ }
+
+ private void initFields() {
+ format_ = com.openxc.BinaryMessages.PayloadFormatCommand.PayloadFormat.JSON;
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeEnum(1, format_.getNumber());
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(1, format_.getNumber());
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static com.openxc.BinaryMessages.PayloadFormatCommand parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.PayloadFormatCommand parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.PayloadFormatCommand parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.PayloadFormatCommand parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.PayloadFormatCommand parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.PayloadFormatCommand parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.PayloadFormatCommand parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.PayloadFormatCommand parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.PayloadFormatCommand parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.PayloadFormatCommand parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(com.openxc.BinaryMessages.PayloadFormatCommand prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements com.openxc.BinaryMessages.PayloadFormatCommandOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_PayloadFormatCommand_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_PayloadFormatCommand_fieldAccessorTable;
+ }
+
+ // Construct using com.openxc.BinaryMessages.PayloadFormatCommand.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ format_ = com.openxc.BinaryMessages.PayloadFormatCommand.PayloadFormat.JSON;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.openxc.BinaryMessages.PayloadFormatCommand.getDescriptor();
+ }
+
+ public com.openxc.BinaryMessages.PayloadFormatCommand getDefaultInstanceForType() {
+ return com.openxc.BinaryMessages.PayloadFormatCommand.getDefaultInstance();
+ }
+
+ public com.openxc.BinaryMessages.PayloadFormatCommand build() {
+ com.openxc.BinaryMessages.PayloadFormatCommand result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ private com.openxc.BinaryMessages.PayloadFormatCommand buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ com.openxc.BinaryMessages.PayloadFormatCommand result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return result;
+ }
+
+ public com.openxc.BinaryMessages.PayloadFormatCommand buildPartial() {
+ com.openxc.BinaryMessages.PayloadFormatCommand result = new com.openxc.BinaryMessages.PayloadFormatCommand(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.format_ = format_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.openxc.BinaryMessages.PayloadFormatCommand) {
+ return mergeFrom((com.openxc.BinaryMessages.PayloadFormatCommand)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.openxc.BinaryMessages.PayloadFormatCommand other) {
+ if (other == com.openxc.BinaryMessages.PayloadFormatCommand.getDefaultInstance()) return this;
+ if (other.hasFormat()) {
+ setFormat(other.getFormat());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ 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 {
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder(
+ this.getUnknownFields());
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ }
+ break;
+ }
+ case 8: {
+ int rawValue = input.readEnum();
+ com.openxc.BinaryMessages.PayloadFormatCommand.PayloadFormat value = com.openxc.BinaryMessages.PayloadFormatCommand.PayloadFormat.valueOf(rawValue);
+ if (value == null) {
+ unknownFields.mergeVarintField(1, rawValue);
+ } else {
+ bitField0_ |= 0x00000001;
+ format_ = value;
+ }
+ break;
+ }
+ }
+ }
+ }
+
+ private int bitField0_;
+
+ // optional .openxc.PayloadFormatCommand.PayloadFormat format = 1;
+ private com.openxc.BinaryMessages.PayloadFormatCommand.PayloadFormat format_ = com.openxc.BinaryMessages.PayloadFormatCommand.PayloadFormat.JSON;
+ public boolean hasFormat() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public com.openxc.BinaryMessages.PayloadFormatCommand.PayloadFormat getFormat() {
+ return format_;
+ }
+ public Builder setFormat(com.openxc.BinaryMessages.PayloadFormatCommand.PayloadFormat value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000001;
+ format_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearFormat() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ format_ = com.openxc.BinaryMessages.PayloadFormatCommand.PayloadFormat.JSON;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:openxc.PayloadFormatCommand)
+ }
+
+ static {
+ defaultInstance = new PayloadFormatCommand(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:openxc.PayloadFormatCommand)
+ }
+
+ public interface PredefinedObd2RequestsCommandOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional bool enabled = 1;
+ boolean hasEnabled();
+ boolean getEnabled();
+ }
+ public static final class PredefinedObd2RequestsCommand extends
+ com.google.protobuf.GeneratedMessage
+ implements PredefinedObd2RequestsCommandOrBuilder {
+ // Use PredefinedObd2RequestsCommand.newBuilder() to construct.
+ private PredefinedObd2RequestsCommand(Builder builder) {
+ super(builder);
+ }
+ private PredefinedObd2RequestsCommand(boolean noInit) {}
+
+ private static final PredefinedObd2RequestsCommand defaultInstance;
+ public static PredefinedObd2RequestsCommand getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public PredefinedObd2RequestsCommand getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_PredefinedObd2RequestsCommand_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_PredefinedObd2RequestsCommand_fieldAccessorTable;
+ }
+
+ private int bitField0_;
+ // optional bool enabled = 1;
+ public static final int ENABLED_FIELD_NUMBER = 1;
+ private boolean enabled_;
+ public boolean hasEnabled() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public boolean getEnabled() {
+ return enabled_;
+ }
+
+ private void initFields() {
+ enabled_ = false;
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeBool(1, enabled_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBoolSize(1, enabled_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static com.openxc.BinaryMessages.PredefinedObd2RequestsCommand parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.PredefinedObd2RequestsCommand parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.PredefinedObd2RequestsCommand parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.PredefinedObd2RequestsCommand parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.PredefinedObd2RequestsCommand parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.PredefinedObd2RequestsCommand parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.PredefinedObd2RequestsCommand parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.PredefinedObd2RequestsCommand parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.PredefinedObd2RequestsCommand parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.PredefinedObd2RequestsCommand parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(com.openxc.BinaryMessages.PredefinedObd2RequestsCommand prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements com.openxc.BinaryMessages.PredefinedObd2RequestsCommandOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_PredefinedObd2RequestsCommand_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_PredefinedObd2RequestsCommand_fieldAccessorTable;
+ }
+
+ // Construct using com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ enabled_ = false;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.getDescriptor();
+ }
+
+ public com.openxc.BinaryMessages.PredefinedObd2RequestsCommand getDefaultInstanceForType() {
+ return com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.getDefaultInstance();
+ }
+
+ public com.openxc.BinaryMessages.PredefinedObd2RequestsCommand build() {
+ com.openxc.BinaryMessages.PredefinedObd2RequestsCommand result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ private com.openxc.BinaryMessages.PredefinedObd2RequestsCommand buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ com.openxc.BinaryMessages.PredefinedObd2RequestsCommand result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return result;
+ }
+
+ public com.openxc.BinaryMessages.PredefinedObd2RequestsCommand buildPartial() {
+ com.openxc.BinaryMessages.PredefinedObd2RequestsCommand result = new com.openxc.BinaryMessages.PredefinedObd2RequestsCommand(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.enabled_ = enabled_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.openxc.BinaryMessages.PredefinedObd2RequestsCommand) {
+ return mergeFrom((com.openxc.BinaryMessages.PredefinedObd2RequestsCommand)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.openxc.BinaryMessages.PredefinedObd2RequestsCommand other) {
+ if (other == com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.getDefaultInstance()) return this;
+ if (other.hasEnabled()) {
+ setEnabled(other.getEnabled());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ 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 {
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder(
+ this.getUnknownFields());
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ }
+ break;
+ }
+ case 8: {
+ bitField0_ |= 0x00000001;
+ enabled_ = input.readBool();
+ break;
+ }
+ }
+ }
+ }
+
+ private int bitField0_;
+
+ // optional bool enabled = 1;
+ private boolean enabled_ ;
+ public boolean hasEnabled() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public boolean getEnabled() {
+ return enabled_;
+ }
+ public Builder setEnabled(boolean value) {
+ bitField0_ |= 0x00000001;
+ enabled_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearEnabled() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ enabled_ = false;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:openxc.PredefinedObd2RequestsCommand)
+ }
+
+ static {
+ defaultInstance = new PredefinedObd2RequestsCommand(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:openxc.PredefinedObd2RequestsCommand)
+ }
+
+ public interface NetworkOperatorSettingsOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional bool allowDataRoaming = 1;
+ boolean hasAllowDataRoaming();
+ boolean getAllowDataRoaming();
+
+ // optional .openxc.NetworkOperatorSettings.OperatorSelectMode operatorSelectMode = 2;
+ boolean hasOperatorSelectMode();
+ com.openxc.BinaryMessages.NetworkOperatorSettings.OperatorSelectMode getOperatorSelectMode();
+
+ // optional .openxc.NetworkOperatorSettings.NetworkDescriptor networkDescriptor = 3;
+ boolean hasNetworkDescriptor();
+ com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor getNetworkDescriptor();
+ com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptorOrBuilder getNetworkDescriptorOrBuilder();
+ }
+ public static final class NetworkOperatorSettings extends
+ com.google.protobuf.GeneratedMessage
+ implements NetworkOperatorSettingsOrBuilder {
+ // Use NetworkOperatorSettings.newBuilder() to construct.
+ private NetworkOperatorSettings(Builder builder) {
+ super(builder);
+ }
+ private NetworkOperatorSettings(boolean noInit) {}
+
+ private static final NetworkOperatorSettings defaultInstance;
+ public static NetworkOperatorSettings getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public NetworkOperatorSettings getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_NetworkOperatorSettings_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_NetworkOperatorSettings_fieldAccessorTable;
+ }
+
+ public enum OperatorSelectMode
+ implements com.google.protobuf.ProtocolMessageEnum {
+ AUTOMATIC(0, 0),
+ MANUAL(1, 1),
+ DEREGISTER(2, 2),
+ SET_ONLY(3, 3),
+ MANUAL_AUTOMATIC(4, 4),
+ ;
+
+ public static final int AUTOMATIC_VALUE = 0;
+ public static final int MANUAL_VALUE = 1;
+ public static final int DEREGISTER_VALUE = 2;
+ public static final int SET_ONLY_VALUE = 3;
+ public static final int MANUAL_AUTOMATIC_VALUE = 4;
+
+
+ public final int getNumber() { return value; }
+
+ public static OperatorSelectMode valueOf(int value) {
+ switch (value) {
+ case 0: return AUTOMATIC;
+ case 1: return MANUAL;
+ case 2: return DEREGISTER;
+ case 3: return SET_ONLY;
+ case 4: return MANUAL_AUTOMATIC;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap<OperatorSelectMode>
+ internalGetValueMap() {
+ return internalValueMap;
+ }
+ private static com.google.protobuf.Internal.EnumLiteMap<OperatorSelectMode>
+ internalValueMap =
+ new com.google.protobuf.Internal.EnumLiteMap<OperatorSelectMode>() {
+ public OperatorSelectMode findValueByNumber(int number) {
+ return OperatorSelectMode.valueOf(number);
+ }
+ };
+
+ public final com.google.protobuf.Descriptors.EnumValueDescriptor
+ getValueDescriptor() {
+ return getDescriptor().getValues().get(index);
+ }
+ public final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptorForType() {
+ return getDescriptor();
+ }
+ public static final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.NetworkOperatorSettings.getDescriptor().getEnumTypes().get(0);
+ }
+
+ private static final OperatorSelectMode[] VALUES = {
+ AUTOMATIC, MANUAL, DEREGISTER, SET_ONLY, MANUAL_AUTOMATIC,
+ };
+
+ public static OperatorSelectMode valueOf(
+ com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+ if (desc.getType() != getDescriptor()) {
+ throw new java.lang.IllegalArgumentException(
+ "EnumValueDescriptor is not for this type.");
+ }
+ return VALUES[desc.getIndex()];
+ }
+
+ private final int index;
+ private final int value;
+
+ private OperatorSelectMode(int index, int value) {
+ this.index = index;
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:openxc.NetworkOperatorSettings.OperatorSelectMode)
+ }
+
+ public interface NetworkDescriptorOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional uint32 PLMN = 1;
+ boolean hasPLMN();
+ int getPLMN();
+
+ // optional .openxc.NetworkOperatorSettings.NetworkDescriptor.NetworkType networkType = 2;
+ boolean hasNetworkType();
+ com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.NetworkType getNetworkType();
+ }
+ public static final class NetworkDescriptor extends
+ com.google.protobuf.GeneratedMessage
+ implements NetworkDescriptorOrBuilder {
+ // Use NetworkDescriptor.newBuilder() to construct.
+ private NetworkDescriptor(Builder builder) {
+ super(builder);
+ }
+ private NetworkDescriptor(boolean noInit) {}
+
+ private static final NetworkDescriptor defaultInstance;
+ public static NetworkDescriptor getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public NetworkDescriptor getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_NetworkOperatorSettings_NetworkDescriptor_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_NetworkOperatorSettings_NetworkDescriptor_fieldAccessorTable;
+ }
+
+ public enum NetworkType
+ implements com.google.protobuf.ProtocolMessageEnum {
+ GSM(0, 0),
+ UTRAN(1, 2),
+ ;
+
+ public static final int GSM_VALUE = 0;
+ public static final int UTRAN_VALUE = 2;
+
+
+ public final int getNumber() { return value; }
+
+ public static NetworkType valueOf(int value) {
+ switch (value) {
+ case 0: return GSM;
+ case 2: return UTRAN;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap<NetworkType>
+ internalGetValueMap() {
+ return internalValueMap;
+ }
+ private static com.google.protobuf.Internal.EnumLiteMap<NetworkType>
+ internalValueMap =
+ new com.google.protobuf.Internal.EnumLiteMap<NetworkType>() {
+ public NetworkType findValueByNumber(int number) {
+ return NetworkType.valueOf(number);
+ }
+ };
+
+ public final com.google.protobuf.Descriptors.EnumValueDescriptor
+ getValueDescriptor() {
+ return getDescriptor().getValues().get(index);
+ }
+ public final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptorForType() {
+ return getDescriptor();
+ }
+ public static final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.getDescriptor().getEnumTypes().get(0);
+ }
+
+ private static final NetworkType[] VALUES = {
+ GSM, UTRAN,
+ };
+
+ public static NetworkType valueOf(
+ com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+ if (desc.getType() != getDescriptor()) {
+ throw new java.lang.IllegalArgumentException(
+ "EnumValueDescriptor is not for this type.");
+ }
+ return VALUES[desc.getIndex()];
+ }
+
+ private final int index;
+ private final int value;
+
+ private NetworkType(int index, int value) {
+ this.index = index;
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:openxc.NetworkOperatorSettings.NetworkDescriptor.NetworkType)
+ }
+
+ private int bitField0_;
+ // optional uint32 PLMN = 1;
+ public static final int PLMN_FIELD_NUMBER = 1;
+ private int pLMN_;
+ public boolean hasPLMN() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public int getPLMN() {
+ return pLMN_;
+ }
+
+ // optional .openxc.NetworkOperatorSettings.NetworkDescriptor.NetworkType networkType = 2;
+ public static final int NETWORKTYPE_FIELD_NUMBER = 2;
+ private com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.NetworkType networkType_;
+ public boolean hasNetworkType() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.NetworkType getNetworkType() {
+ return networkType_;
+ }
+
+ private void initFields() {
+ pLMN_ = 0;
+ networkType_ = com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.NetworkType.GSM;
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeUInt32(1, pLMN_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeEnum(2, networkType_.getNumber());
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(1, pLMN_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(2, networkType_.getNumber());
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptorOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_NetworkOperatorSettings_NetworkDescriptor_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_NetworkOperatorSettings_NetworkDescriptor_fieldAccessorTable;
+ }
+
+ // Construct using com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ pLMN_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ networkType_ = com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.NetworkType.GSM;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.getDescriptor();
+ }
+
+ public com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor getDefaultInstanceForType() {
+ return com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.getDefaultInstance();
+ }
+
+ public com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor build() {
+ com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ private com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return result;
+ }
+
+ public com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor buildPartial() {
+ com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor result = new com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.pLMN_ = pLMN_;
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ result.networkType_ = networkType_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor) {
+ return mergeFrom((com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor other) {
+ if (other == com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.getDefaultInstance()) return this;
+ if (other.hasPLMN()) {
+ setPLMN(other.getPLMN());
+ }
+ if (other.hasNetworkType()) {
+ setNetworkType(other.getNetworkType());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ 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 {
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder(
+ this.getUnknownFields());
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ }
+ break;
+ }
+ case 8: {
+ bitField0_ |= 0x00000001;
+ pLMN_ = input.readUInt32();
+ break;
+ }
+ case 16: {
+ int rawValue = input.readEnum();
+ com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.NetworkType value = com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.NetworkType.valueOf(rawValue);
+ if (value == null) {
+ unknownFields.mergeVarintField(2, rawValue);
+ } else {
+ bitField0_ |= 0x00000002;
+ networkType_ = value;
+ }
+ break;
+ }
+ }
+ }
+ }
+
+ private int bitField0_;
+
+ // optional uint32 PLMN = 1;
+ private int pLMN_ ;
+ public boolean hasPLMN() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public int getPLMN() {
+ return pLMN_;
+ }
+ public Builder setPLMN(int value) {
+ bitField0_ |= 0x00000001;
+ pLMN_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearPLMN() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ pLMN_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional .openxc.NetworkOperatorSettings.NetworkDescriptor.NetworkType networkType = 2;
+ private com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.NetworkType networkType_ = com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.NetworkType.GSM;
+ public boolean hasNetworkType() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.NetworkType getNetworkType() {
+ return networkType_;
+ }
+ public Builder setNetworkType(com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.NetworkType value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000002;
+ networkType_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearNetworkType() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ networkType_ = com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.NetworkType.GSM;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:openxc.NetworkOperatorSettings.NetworkDescriptor)
+ }
+
+ static {
+ defaultInstance = new NetworkDescriptor(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:openxc.NetworkOperatorSettings.NetworkDescriptor)
+ }
+
+ private int bitField0_;
+ // optional bool allowDataRoaming = 1;
+ public static final int ALLOWDATAROAMING_FIELD_NUMBER = 1;
+ private boolean allowDataRoaming_;
+ public boolean hasAllowDataRoaming() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public boolean getAllowDataRoaming() {
+ return allowDataRoaming_;
+ }
+
+ // optional .openxc.NetworkOperatorSettings.OperatorSelectMode operatorSelectMode = 2;
+ public static final int OPERATORSELECTMODE_FIELD_NUMBER = 2;
+ private com.openxc.BinaryMessages.NetworkOperatorSettings.OperatorSelectMode operatorSelectMode_;
+ public boolean hasOperatorSelectMode() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public com.openxc.BinaryMessages.NetworkOperatorSettings.OperatorSelectMode getOperatorSelectMode() {
+ return operatorSelectMode_;
+ }
+
+ // optional .openxc.NetworkOperatorSettings.NetworkDescriptor networkDescriptor = 3;
+ public static final int NETWORKDESCRIPTOR_FIELD_NUMBER = 3;
+ private com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor networkDescriptor_;
+ public boolean hasNetworkDescriptor() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ public com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor getNetworkDescriptor() {
+ return networkDescriptor_;
+ }
+ public com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptorOrBuilder getNetworkDescriptorOrBuilder() {
+ return networkDescriptor_;
+ }
+
+ private void initFields() {
+ allowDataRoaming_ = false;
+ operatorSelectMode_ = com.openxc.BinaryMessages.NetworkOperatorSettings.OperatorSelectMode.AUTOMATIC;
+ networkDescriptor_ = com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.getDefaultInstance();
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeBool(1, allowDataRoaming_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeEnum(2, operatorSelectMode_.getNumber());
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ output.writeMessage(3, networkDescriptor_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBoolSize(1, allowDataRoaming_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(2, operatorSelectMode_.getNumber());
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(3, networkDescriptor_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static com.openxc.BinaryMessages.NetworkOperatorSettings parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.NetworkOperatorSettings parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.NetworkOperatorSettings parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.NetworkOperatorSettings parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.NetworkOperatorSettings parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.NetworkOperatorSettings parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.NetworkOperatorSettings parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.NetworkOperatorSettings parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.NetworkOperatorSettings parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.NetworkOperatorSettings parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(com.openxc.BinaryMessages.NetworkOperatorSettings prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements com.openxc.BinaryMessages.NetworkOperatorSettingsOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_NetworkOperatorSettings_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_NetworkOperatorSettings_fieldAccessorTable;
+ }
+
+ // Construct using com.openxc.BinaryMessages.NetworkOperatorSettings.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ getNetworkDescriptorFieldBuilder();
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ allowDataRoaming_ = false;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ operatorSelectMode_ = com.openxc.BinaryMessages.NetworkOperatorSettings.OperatorSelectMode.AUTOMATIC;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ if (networkDescriptorBuilder_ == null) {
+ networkDescriptor_ = com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.getDefaultInstance();
+ } else {
+ networkDescriptorBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000004);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.openxc.BinaryMessages.NetworkOperatorSettings.getDescriptor();
+ }
+
+ public com.openxc.BinaryMessages.NetworkOperatorSettings getDefaultInstanceForType() {
+ return com.openxc.BinaryMessages.NetworkOperatorSettings.getDefaultInstance();
+ }
+
+ public com.openxc.BinaryMessages.NetworkOperatorSettings build() {
+ com.openxc.BinaryMessages.NetworkOperatorSettings result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ private com.openxc.BinaryMessages.NetworkOperatorSettings buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ com.openxc.BinaryMessages.NetworkOperatorSettings result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return result;
+ }
+
+ public com.openxc.BinaryMessages.NetworkOperatorSettings buildPartial() {
+ com.openxc.BinaryMessages.NetworkOperatorSettings result = new com.openxc.BinaryMessages.NetworkOperatorSettings(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.allowDataRoaming_ = allowDataRoaming_;
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ result.operatorSelectMode_ = operatorSelectMode_;
+ if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+ to_bitField0_ |= 0x00000004;
+ }
+ if (networkDescriptorBuilder_ == null) {
+ result.networkDescriptor_ = networkDescriptor_;
+ } else {
+ result.networkDescriptor_ = networkDescriptorBuilder_.build();
+ }
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.openxc.BinaryMessages.NetworkOperatorSettings) {
+ return mergeFrom((com.openxc.BinaryMessages.NetworkOperatorSettings)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.openxc.BinaryMessages.NetworkOperatorSettings other) {
+ if (other == com.openxc.BinaryMessages.NetworkOperatorSettings.getDefaultInstance()) return this;
+ if (other.hasAllowDataRoaming()) {
+ setAllowDataRoaming(other.getAllowDataRoaming());
+ }
+ if (other.hasOperatorSelectMode()) {
+ setOperatorSelectMode(other.getOperatorSelectMode());
+ }
+ if (other.hasNetworkDescriptor()) {
+ mergeNetworkDescriptor(other.getNetworkDescriptor());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ 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 {
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder(
+ this.getUnknownFields());
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ }
+ break;
+ }
+ case 8: {
+ bitField0_ |= 0x00000001;
+ allowDataRoaming_ = input.readBool();
+ break;
+ }
+ case 16: {
+ int rawValue = input.readEnum();
+ com.openxc.BinaryMessages.NetworkOperatorSettings.OperatorSelectMode value = com.openxc.BinaryMessages.NetworkOperatorSettings.OperatorSelectMode.valueOf(rawValue);
+ if (value == null) {
+ unknownFields.mergeVarintField(2, rawValue);
+ } else {
+ bitField0_ |= 0x00000002;
+ operatorSelectMode_ = value;
+ }
+ break;
+ }
+ case 26: {
+ com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.Builder subBuilder = com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.newBuilder();
+ if (hasNetworkDescriptor()) {
+ subBuilder.mergeFrom(getNetworkDescriptor());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setNetworkDescriptor(subBuilder.buildPartial());
+ break;
+ }
+ }
+ }
+ }
+
+ private int bitField0_;
+
+ // optional bool allowDataRoaming = 1;
+ private boolean allowDataRoaming_ ;
+ public boolean hasAllowDataRoaming() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public boolean getAllowDataRoaming() {
+ return allowDataRoaming_;
+ }
+ public Builder setAllowDataRoaming(boolean value) {
+ bitField0_ |= 0x00000001;
+ allowDataRoaming_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearAllowDataRoaming() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ allowDataRoaming_ = false;
+ onChanged();
+ return this;
+ }
+
+ // optional .openxc.NetworkOperatorSettings.OperatorSelectMode operatorSelectMode = 2;
+ private com.openxc.BinaryMessages.NetworkOperatorSettings.OperatorSelectMode operatorSelectMode_ = com.openxc.BinaryMessages.NetworkOperatorSettings.OperatorSelectMode.AUTOMATIC;
+ public boolean hasOperatorSelectMode() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public com.openxc.BinaryMessages.NetworkOperatorSettings.OperatorSelectMode getOperatorSelectMode() {
+ return operatorSelectMode_;
+ }
+ public Builder setOperatorSelectMode(com.openxc.BinaryMessages.NetworkOperatorSettings.OperatorSelectMode value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000002;
+ operatorSelectMode_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearOperatorSelectMode() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ operatorSelectMode_ = com.openxc.BinaryMessages.NetworkOperatorSettings.OperatorSelectMode.AUTOMATIC;
+ onChanged();
+ return this;
+ }
+
+ // optional .openxc.NetworkOperatorSettings.NetworkDescriptor networkDescriptor = 3;
+ private com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor networkDescriptor_ = com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor, com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.Builder, com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptorOrBuilder> networkDescriptorBuilder_;
+ public boolean hasNetworkDescriptor() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ public com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor getNetworkDescriptor() {
+ if (networkDescriptorBuilder_ == null) {
+ return networkDescriptor_;
+ } else {
+ return networkDescriptorBuilder_.getMessage();
+ }
+ }
+ public Builder setNetworkDescriptor(com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor value) {
+ if (networkDescriptorBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ networkDescriptor_ = value;
+ onChanged();
+ } else {
+ networkDescriptorBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000004;
+ return this;
+ }
+ public Builder setNetworkDescriptor(
+ com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.Builder builderForValue) {
+ if (networkDescriptorBuilder_ == null) {
+ networkDescriptor_ = builderForValue.build();
+ onChanged();
+ } else {
+ networkDescriptorBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000004;
+ return this;
+ }
+ public Builder mergeNetworkDescriptor(com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor value) {
+ if (networkDescriptorBuilder_ == null) {
+ if (((bitField0_ & 0x00000004) == 0x00000004) &&
+ networkDescriptor_ != com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.getDefaultInstance()) {
+ networkDescriptor_ =
+ com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.newBuilder(networkDescriptor_).mergeFrom(value).buildPartial();
+ } else {
+ networkDescriptor_ = value;
+ }
+ onChanged();
+ } else {
+ networkDescriptorBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000004;
+ return this;
+ }
+ public Builder clearNetworkDescriptor() {
+ if (networkDescriptorBuilder_ == null) {
+ networkDescriptor_ = com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.getDefaultInstance();
+ onChanged();
+ } else {
+ networkDescriptorBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000004);
+ return this;
+ }
+ public com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.Builder getNetworkDescriptorBuilder() {
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return getNetworkDescriptorFieldBuilder().getBuilder();
+ }
+ public com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptorOrBuilder getNetworkDescriptorOrBuilder() {
+ if (networkDescriptorBuilder_ != null) {
+ return networkDescriptorBuilder_.getMessageOrBuilder();
+ } else {
+ return networkDescriptor_;
+ }
+ }
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor, com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.Builder, com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptorOrBuilder>
+ getNetworkDescriptorFieldBuilder() {
+ if (networkDescriptorBuilder_ == null) {
+ networkDescriptorBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor, com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.Builder, com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptorOrBuilder>(
+ networkDescriptor_,
+ getParentForChildren(),
+ isClean());
+ networkDescriptor_ = null;
+ }
+ return networkDescriptorBuilder_;
+ }
+
+ // @@protoc_insertion_point(builder_scope:openxc.NetworkOperatorSettings)
+ }
+
+ static {
+ defaultInstance = new NetworkOperatorSettings(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:openxc.NetworkOperatorSettings)
+ }
+
+ public interface NetworkDataSettingsOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional string APN = 1;
+ boolean hasAPN();
+ String getAPN();
+ }
+ public static final class NetworkDataSettings extends
+ com.google.protobuf.GeneratedMessage
+ implements NetworkDataSettingsOrBuilder {
+ // Use NetworkDataSettings.newBuilder() to construct.
+ private NetworkDataSettings(Builder builder) {
+ super(builder);
+ }
+ private NetworkDataSettings(boolean noInit) {}
+
+ private static final NetworkDataSettings defaultInstance;
+ public static NetworkDataSettings getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public NetworkDataSettings getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_NetworkDataSettings_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_NetworkDataSettings_fieldAccessorTable;
+ }
+
+ private int bitField0_;
+ // optional string APN = 1;
+ public static final int APN_FIELD_NUMBER = 1;
+ private java.lang.Object aPN_;
+ public boolean hasAPN() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public String getAPN() {
+ java.lang.Object ref = aPN_;
+ if (ref instanceof String) {
+ return (String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ String s = bs.toStringUtf8();
+ if (com.google.protobuf.Internal.isValidUtf8(bs)) {
+ aPN_ = s;
+ }
+ return s;
+ }
+ }
+ private com.google.protobuf.ByteString getAPNBytes() {
+ java.lang.Object ref = aPN_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((String) ref);
+ aPN_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ private void initFields() {
+ aPN_ = "";
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeBytes(1, getAPNBytes());
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(1, getAPNBytes());
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static com.openxc.BinaryMessages.NetworkDataSettings parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.NetworkDataSettings parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.NetworkDataSettings parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.NetworkDataSettings parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.NetworkDataSettings parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.NetworkDataSettings parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.NetworkDataSettings parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.NetworkDataSettings parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.NetworkDataSettings parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.NetworkDataSettings parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(com.openxc.BinaryMessages.NetworkDataSettings prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements com.openxc.BinaryMessages.NetworkDataSettingsOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_NetworkDataSettings_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_NetworkDataSettings_fieldAccessorTable;
+ }
+
+ // Construct using com.openxc.BinaryMessages.NetworkDataSettings.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ aPN_ = "";
+ bitField0_ = (bitField0_ & ~0x00000001);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.openxc.BinaryMessages.NetworkDataSettings.getDescriptor();
+ }
+
+ public com.openxc.BinaryMessages.NetworkDataSettings getDefaultInstanceForType() {
+ return com.openxc.BinaryMessages.NetworkDataSettings.getDefaultInstance();
+ }
+
+ public com.openxc.BinaryMessages.NetworkDataSettings build() {
+ com.openxc.BinaryMessages.NetworkDataSettings result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ private com.openxc.BinaryMessages.NetworkDataSettings buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ com.openxc.BinaryMessages.NetworkDataSettings result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return result;
+ }
+
+ public com.openxc.BinaryMessages.NetworkDataSettings buildPartial() {
+ com.openxc.BinaryMessages.NetworkDataSettings result = new com.openxc.BinaryMessages.NetworkDataSettings(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.aPN_ = aPN_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.openxc.BinaryMessages.NetworkDataSettings) {
+ return mergeFrom((com.openxc.BinaryMessages.NetworkDataSettings)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.openxc.BinaryMessages.NetworkDataSettings other) {
+ if (other == com.openxc.BinaryMessages.NetworkDataSettings.getDefaultInstance()) return this;
+ if (other.hasAPN()) {
+ setAPN(other.getAPN());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ 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 {
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder(
+ this.getUnknownFields());
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ }
+ break;
+ }
+ case 10: {
+ bitField0_ |= 0x00000001;
+ aPN_ = input.readBytes();
+ break;
+ }
+ }
+ }
+ }
+
+ private int bitField0_;
+
+ // optional string APN = 1;
+ private java.lang.Object aPN_ = "";
+ public boolean hasAPN() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public String getAPN() {
+ java.lang.Object ref = aPN_;
+ if (!(ref instanceof String)) {
+ String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
+ aPN_ = s;
+ return s;
+ } else {
+ return (String) ref;
+ }
+ }
+ public Builder setAPN(String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000001;
+ aPN_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearAPN() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ aPN_ = getDefaultInstance().getAPN();
+ onChanged();
+ return this;
+ }
+ void setAPN(com.google.protobuf.ByteString value) {
+ bitField0_ |= 0x00000001;
+ aPN_ = value;
+ onChanged();
+ }
+
+ // @@protoc_insertion_point(builder_scope:openxc.NetworkDataSettings)
+ }
+
+ static {
+ defaultInstance = new NetworkDataSettings(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:openxc.NetworkDataSettings)
+ }
+
+ public interface ServerConnectSettingsOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional string host = 1;
+ boolean hasHost();
+ String getHost();
+
+ // optional uint32 port = 2;
+ boolean hasPort();
+ int getPort();
+ }
+ public static final class ServerConnectSettings extends
+ com.google.protobuf.GeneratedMessage
+ implements ServerConnectSettingsOrBuilder {
+ // Use ServerConnectSettings.newBuilder() to construct.
+ private ServerConnectSettings(Builder builder) {
+ super(builder);
+ }
+ private ServerConnectSettings(boolean noInit) {}
+
+ private static final ServerConnectSettings defaultInstance;
+ public static ServerConnectSettings getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public ServerConnectSettings getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_ServerConnectSettings_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_ServerConnectSettings_fieldAccessorTable;
+ }
+
+ private int bitField0_;
+ // optional string host = 1;
+ public static final int HOST_FIELD_NUMBER = 1;
+ private java.lang.Object host_;
+ public boolean hasHost() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public String getHost() {
+ java.lang.Object ref = host_;
+ if (ref instanceof String) {
+ return (String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ String s = bs.toStringUtf8();
+ if (com.google.protobuf.Internal.isValidUtf8(bs)) {
+ host_ = s;
+ }
+ return s;
+ }
+ }
+ private com.google.protobuf.ByteString getHostBytes() {
+ java.lang.Object ref = host_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((String) ref);
+ host_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ // optional uint32 port = 2;
+ public static final int PORT_FIELD_NUMBER = 2;
+ private int port_;
+ public boolean hasPort() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public int getPort() {
+ return port_;
+ }
+
+ private void initFields() {
+ host_ = "";
+ port_ = 0;
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeBytes(1, getHostBytes());
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeUInt32(2, port_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(1, getHostBytes());
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(2, port_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static com.openxc.BinaryMessages.ServerConnectSettings parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.ServerConnectSettings parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.ServerConnectSettings parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.ServerConnectSettings parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.ServerConnectSettings parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.ServerConnectSettings parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.ServerConnectSettings parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.ServerConnectSettings parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.ServerConnectSettings parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.ServerConnectSettings parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(com.openxc.BinaryMessages.ServerConnectSettings prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements com.openxc.BinaryMessages.ServerConnectSettingsOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_ServerConnectSettings_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_ServerConnectSettings_fieldAccessorTable;
+ }
+
+ // Construct using com.openxc.BinaryMessages.ServerConnectSettings.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ host_ = "";
+ bitField0_ = (bitField0_ & ~0x00000001);
+ port_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.openxc.BinaryMessages.ServerConnectSettings.getDescriptor();
+ }
+
+ public com.openxc.BinaryMessages.ServerConnectSettings getDefaultInstanceForType() {
+ return com.openxc.BinaryMessages.ServerConnectSettings.getDefaultInstance();
+ }
+
+ public com.openxc.BinaryMessages.ServerConnectSettings build() {
+ com.openxc.BinaryMessages.ServerConnectSettings result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ private com.openxc.BinaryMessages.ServerConnectSettings buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ com.openxc.BinaryMessages.ServerConnectSettings result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return result;
+ }
+
+ public com.openxc.BinaryMessages.ServerConnectSettings buildPartial() {
+ com.openxc.BinaryMessages.ServerConnectSettings result = new com.openxc.BinaryMessages.ServerConnectSettings(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.host_ = host_;
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ result.port_ = port_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.openxc.BinaryMessages.ServerConnectSettings) {
+ return mergeFrom((com.openxc.BinaryMessages.ServerConnectSettings)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.openxc.BinaryMessages.ServerConnectSettings other) {
+ if (other == com.openxc.BinaryMessages.ServerConnectSettings.getDefaultInstance()) return this;
+ if (other.hasHost()) {
+ setHost(other.getHost());
+ }
+ if (other.hasPort()) {
+ setPort(other.getPort());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ 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 {
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder(
+ this.getUnknownFields());
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ }
+ break;
+ }
+ case 10: {
+ bitField0_ |= 0x00000001;
+ host_ = input.readBytes();
+ break;
+ }
+ case 16: {
+ bitField0_ |= 0x00000002;
+ port_ = input.readUInt32();
+ break;
+ }
+ }
+ }
+ }
+
+ private int bitField0_;
+
+ // optional string host = 1;
+ private java.lang.Object host_ = "";
+ public boolean hasHost() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public String getHost() {
+ java.lang.Object ref = host_;
+ if (!(ref instanceof String)) {
+ String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
+ host_ = s;
+ return s;
+ } else {
+ return (String) ref;
+ }
+ }
+ public Builder setHost(String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000001;
+ host_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearHost() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ host_ = getDefaultInstance().getHost();
+ onChanged();
+ return this;
+ }
+ void setHost(com.google.protobuf.ByteString value) {
+ bitField0_ |= 0x00000001;
+ host_ = value;
+ onChanged();
+ }
+
+ // optional uint32 port = 2;
+ private int port_ ;
+ public boolean hasPort() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public int getPort() {
+ return port_;
+ }
+ public Builder setPort(int value) {
+ bitField0_ |= 0x00000002;
+ port_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearPort() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ port_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:openxc.ServerConnectSettings)
+ }
+
+ static {
+ defaultInstance = new ServerConnectSettings(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:openxc.ServerConnectSettings)
+ }
+
+ public interface ModemConfigurationCommandOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional .openxc.NetworkOperatorSettings networkOperatorSettings = 1;
+ boolean hasNetworkOperatorSettings();
+ com.openxc.BinaryMessages.NetworkOperatorSettings getNetworkOperatorSettings();
+ com.openxc.BinaryMessages.NetworkOperatorSettingsOrBuilder getNetworkOperatorSettingsOrBuilder();
+
+ // optional .openxc.NetworkDataSettings networkDataSettings = 2;
+ boolean hasNetworkDataSettings();
+ com.openxc.BinaryMessages.NetworkDataSettings getNetworkDataSettings();
+ com.openxc.BinaryMessages.NetworkDataSettingsOrBuilder getNetworkDataSettingsOrBuilder();
+
+ // optional .openxc.ServerConnectSettings serverConnectSettings = 3;
+ boolean hasServerConnectSettings();
+ com.openxc.BinaryMessages.ServerConnectSettings getServerConnectSettings();
+ com.openxc.BinaryMessages.ServerConnectSettingsOrBuilder getServerConnectSettingsOrBuilder();
+ }
+ public static final class ModemConfigurationCommand extends
+ com.google.protobuf.GeneratedMessage
+ implements ModemConfigurationCommandOrBuilder {
+ // Use ModemConfigurationCommand.newBuilder() to construct.
+ private ModemConfigurationCommand(Builder builder) {
+ super(builder);
+ }
+ private ModemConfigurationCommand(boolean noInit) {}
+
+ private static final ModemConfigurationCommand defaultInstance;
+ public static ModemConfigurationCommand getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public ModemConfigurationCommand getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_ModemConfigurationCommand_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_ModemConfigurationCommand_fieldAccessorTable;
+ }
+
+ private int bitField0_;
+ // optional .openxc.NetworkOperatorSettings networkOperatorSettings = 1;
+ public static final int NETWORKOPERATORSETTINGS_FIELD_NUMBER = 1;
+ private com.openxc.BinaryMessages.NetworkOperatorSettings networkOperatorSettings_;
+ public boolean hasNetworkOperatorSettings() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public com.openxc.BinaryMessages.NetworkOperatorSettings getNetworkOperatorSettings() {
+ return networkOperatorSettings_;
+ }
+ public com.openxc.BinaryMessages.NetworkOperatorSettingsOrBuilder getNetworkOperatorSettingsOrBuilder() {
+ return networkOperatorSettings_;
+ }
+
+ // optional .openxc.NetworkDataSettings networkDataSettings = 2;
+ public static final int NETWORKDATASETTINGS_FIELD_NUMBER = 2;
+ private com.openxc.BinaryMessages.NetworkDataSettings networkDataSettings_;
+ public boolean hasNetworkDataSettings() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public com.openxc.BinaryMessages.NetworkDataSettings getNetworkDataSettings() {
+ return networkDataSettings_;
+ }
+ public com.openxc.BinaryMessages.NetworkDataSettingsOrBuilder getNetworkDataSettingsOrBuilder() {
+ return networkDataSettings_;
+ }
+
+ // optional .openxc.ServerConnectSettings serverConnectSettings = 3;
+ public static final int SERVERCONNECTSETTINGS_FIELD_NUMBER = 3;
+ private com.openxc.BinaryMessages.ServerConnectSettings serverConnectSettings_;
+ public boolean hasServerConnectSettings() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ public com.openxc.BinaryMessages.ServerConnectSettings getServerConnectSettings() {
+ return serverConnectSettings_;
+ }
+ public com.openxc.BinaryMessages.ServerConnectSettingsOrBuilder getServerConnectSettingsOrBuilder() {
+ return serverConnectSettings_;
+ }
+
+ private void initFields() {
+ networkOperatorSettings_ = com.openxc.BinaryMessages.NetworkOperatorSettings.getDefaultInstance();
+ networkDataSettings_ = com.openxc.BinaryMessages.NetworkDataSettings.getDefaultInstance();
+ serverConnectSettings_ = com.openxc.BinaryMessages.ServerConnectSettings.getDefaultInstance();
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeMessage(1, networkOperatorSettings_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeMessage(2, networkDataSettings_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ output.writeMessage(3, serverConnectSettings_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(1, networkOperatorSettings_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(2, networkDataSettings_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(3, serverConnectSettings_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static com.openxc.BinaryMessages.ModemConfigurationCommand parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.ModemConfigurationCommand parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.ModemConfigurationCommand parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.ModemConfigurationCommand parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.ModemConfigurationCommand parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.ModemConfigurationCommand parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.ModemConfigurationCommand parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.ModemConfigurationCommand parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.ModemConfigurationCommand parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.ModemConfigurationCommand parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(com.openxc.BinaryMessages.ModemConfigurationCommand prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements com.openxc.BinaryMessages.ModemConfigurationCommandOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_ModemConfigurationCommand_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_ModemConfigurationCommand_fieldAccessorTable;
+ }
+
+ // Construct using com.openxc.BinaryMessages.ModemConfigurationCommand.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ getNetworkOperatorSettingsFieldBuilder();
+ getNetworkDataSettingsFieldBuilder();
+ getServerConnectSettingsFieldBuilder();
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ if (networkOperatorSettingsBuilder_ == null) {
+ networkOperatorSettings_ = com.openxc.BinaryMessages.NetworkOperatorSettings.getDefaultInstance();
+ } else {
+ networkOperatorSettingsBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000001);
+ if (networkDataSettingsBuilder_ == null) {
+ networkDataSettings_ = com.openxc.BinaryMessages.NetworkDataSettings.getDefaultInstance();
+ } else {
+ networkDataSettingsBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000002);
+ if (serverConnectSettingsBuilder_ == null) {
+ serverConnectSettings_ = com.openxc.BinaryMessages.ServerConnectSettings.getDefaultInstance();
+ } else {
+ serverConnectSettingsBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000004);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.openxc.BinaryMessages.ModemConfigurationCommand.getDescriptor();
+ }
+
+ public com.openxc.BinaryMessages.ModemConfigurationCommand getDefaultInstanceForType() {
+ return com.openxc.BinaryMessages.ModemConfigurationCommand.getDefaultInstance();
+ }
+
+ public com.openxc.BinaryMessages.ModemConfigurationCommand build() {
+ com.openxc.BinaryMessages.ModemConfigurationCommand result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ private com.openxc.BinaryMessages.ModemConfigurationCommand buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ com.openxc.BinaryMessages.ModemConfigurationCommand result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return result;
+ }
+
+ public com.openxc.BinaryMessages.ModemConfigurationCommand buildPartial() {
+ com.openxc.BinaryMessages.ModemConfigurationCommand result = new com.openxc.BinaryMessages.ModemConfigurationCommand(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ if (networkOperatorSettingsBuilder_ == null) {
+ result.networkOperatorSettings_ = networkOperatorSettings_;
+ } else {
+ result.networkOperatorSettings_ = networkOperatorSettingsBuilder_.build();
+ }
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ if (networkDataSettingsBuilder_ == null) {
+ result.networkDataSettings_ = networkDataSettings_;
+ } else {
+ result.networkDataSettings_ = networkDataSettingsBuilder_.build();
+ }
+ if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+ to_bitField0_ |= 0x00000004;
+ }
+ if (serverConnectSettingsBuilder_ == null) {
+ result.serverConnectSettings_ = serverConnectSettings_;
+ } else {
+ result.serverConnectSettings_ = serverConnectSettingsBuilder_.build();
+ }
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.openxc.BinaryMessages.ModemConfigurationCommand) {
+ return mergeFrom((com.openxc.BinaryMessages.ModemConfigurationCommand)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.openxc.BinaryMessages.ModemConfigurationCommand other) {
+ if (other == com.openxc.BinaryMessages.ModemConfigurationCommand.getDefaultInstance()) return this;
+ if (other.hasNetworkOperatorSettings()) {
+ mergeNetworkOperatorSettings(other.getNetworkOperatorSettings());
+ }
+ if (other.hasNetworkDataSettings()) {
+ mergeNetworkDataSettings(other.getNetworkDataSettings());
+ }
+ if (other.hasServerConnectSettings()) {
+ mergeServerConnectSettings(other.getServerConnectSettings());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ 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 {
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder(
+ this.getUnknownFields());
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ }
+ break;
+ }
+ case 10: {
+ com.openxc.BinaryMessages.NetworkOperatorSettings.Builder subBuilder = com.openxc.BinaryMessages.NetworkOperatorSettings.newBuilder();
+ if (hasNetworkOperatorSettings()) {
+ subBuilder.mergeFrom(getNetworkOperatorSettings());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setNetworkOperatorSettings(subBuilder.buildPartial());
+ break;
+ }
+ case 18: {
+ com.openxc.BinaryMessages.NetworkDataSettings.Builder subBuilder = com.openxc.BinaryMessages.NetworkDataSettings.newBuilder();
+ if (hasNetworkDataSettings()) {
+ subBuilder.mergeFrom(getNetworkDataSettings());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setNetworkDataSettings(subBuilder.buildPartial());
+ break;
+ }
+ case 26: {
+ com.openxc.BinaryMessages.ServerConnectSettings.Builder subBuilder = com.openxc.BinaryMessages.ServerConnectSettings.newBuilder();
+ if (hasServerConnectSettings()) {
+ subBuilder.mergeFrom(getServerConnectSettings());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setServerConnectSettings(subBuilder.buildPartial());
+ break;
+ }
+ }
+ }
+ }
+
+ private int bitField0_;
+
+ // optional .openxc.NetworkOperatorSettings networkOperatorSettings = 1;
+ private com.openxc.BinaryMessages.NetworkOperatorSettings networkOperatorSettings_ = com.openxc.BinaryMessages.NetworkOperatorSettings.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.NetworkOperatorSettings, com.openxc.BinaryMessages.NetworkOperatorSettings.Builder, com.openxc.BinaryMessages.NetworkOperatorSettingsOrBuilder> networkOperatorSettingsBuilder_;
+ public boolean hasNetworkOperatorSettings() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public com.openxc.BinaryMessages.NetworkOperatorSettings getNetworkOperatorSettings() {
+ if (networkOperatorSettingsBuilder_ == null) {
+ return networkOperatorSettings_;
+ } else {
+ return networkOperatorSettingsBuilder_.getMessage();
+ }
+ }
+ public Builder setNetworkOperatorSettings(com.openxc.BinaryMessages.NetworkOperatorSettings value) {
+ if (networkOperatorSettingsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ networkOperatorSettings_ = value;
+ onChanged();
+ } else {
+ networkOperatorSettingsBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000001;
+ return this;
+ }
+ public Builder setNetworkOperatorSettings(
+ com.openxc.BinaryMessages.NetworkOperatorSettings.Builder builderForValue) {
+ if (networkOperatorSettingsBuilder_ == null) {
+ networkOperatorSettings_ = builderForValue.build();
+ onChanged();
+ } else {
+ networkOperatorSettingsBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000001;
+ return this;
+ }
+ public Builder mergeNetworkOperatorSettings(com.openxc.BinaryMessages.NetworkOperatorSettings value) {
+ if (networkOperatorSettingsBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) == 0x00000001) &&
+ networkOperatorSettings_ != com.openxc.BinaryMessages.NetworkOperatorSettings.getDefaultInstance()) {
+ networkOperatorSettings_ =
+ com.openxc.BinaryMessages.NetworkOperatorSettings.newBuilder(networkOperatorSettings_).mergeFrom(value).buildPartial();
+ } else {
+ networkOperatorSettings_ = value;
+ }
+ onChanged();
+ } else {
+ networkOperatorSettingsBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000001;
+ return this;
+ }
+ public Builder clearNetworkOperatorSettings() {
+ if (networkOperatorSettingsBuilder_ == null) {
+ networkOperatorSettings_ = com.openxc.BinaryMessages.NetworkOperatorSettings.getDefaultInstance();
+ onChanged();
+ } else {
+ networkOperatorSettingsBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000001);
+ return this;
+ }
+ public com.openxc.BinaryMessages.NetworkOperatorSettings.Builder getNetworkOperatorSettingsBuilder() {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return getNetworkOperatorSettingsFieldBuilder().getBuilder();
+ }
+ public com.openxc.BinaryMessages.NetworkOperatorSettingsOrBuilder getNetworkOperatorSettingsOrBuilder() {
+ if (networkOperatorSettingsBuilder_ != null) {
+ return networkOperatorSettingsBuilder_.getMessageOrBuilder();
+ } else {
+ return networkOperatorSettings_;
+ }
+ }
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.NetworkOperatorSettings, com.openxc.BinaryMessages.NetworkOperatorSettings.Builder, com.openxc.BinaryMessages.NetworkOperatorSettingsOrBuilder>
+ getNetworkOperatorSettingsFieldBuilder() {
+ if (networkOperatorSettingsBuilder_ == null) {
+ networkOperatorSettingsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.NetworkOperatorSettings, com.openxc.BinaryMessages.NetworkOperatorSettings.Builder, com.openxc.BinaryMessages.NetworkOperatorSettingsOrBuilder>(
+ networkOperatorSettings_,
+ getParentForChildren(),
+ isClean());
+ networkOperatorSettings_ = null;
+ }
+ return networkOperatorSettingsBuilder_;
+ }
+
+ // optional .openxc.NetworkDataSettings networkDataSettings = 2;
+ private com.openxc.BinaryMessages.NetworkDataSettings networkDataSettings_ = com.openxc.BinaryMessages.NetworkDataSettings.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.NetworkDataSettings, com.openxc.BinaryMessages.NetworkDataSettings.Builder, com.openxc.BinaryMessages.NetworkDataSettingsOrBuilder> networkDataSettingsBuilder_;
+ public boolean hasNetworkDataSettings() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public com.openxc.BinaryMessages.NetworkDataSettings getNetworkDataSettings() {
+ if (networkDataSettingsBuilder_ == null) {
+ return networkDataSettings_;
+ } else {
+ return networkDataSettingsBuilder_.getMessage();
+ }
+ }
+ public Builder setNetworkDataSettings(com.openxc.BinaryMessages.NetworkDataSettings value) {
+ if (networkDataSettingsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ networkDataSettings_ = value;
+ onChanged();
+ } else {
+ networkDataSettingsBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000002;
+ return this;
+ }
+ public Builder setNetworkDataSettings(
+ com.openxc.BinaryMessages.NetworkDataSettings.Builder builderForValue) {
+ if (networkDataSettingsBuilder_ == null) {
+ networkDataSettings_ = builderForValue.build();
+ onChanged();
+ } else {
+ networkDataSettingsBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000002;
+ return this;
+ }
+ public Builder mergeNetworkDataSettings(com.openxc.BinaryMessages.NetworkDataSettings value) {
+ if (networkDataSettingsBuilder_ == null) {
+ if (((bitField0_ & 0x00000002) == 0x00000002) &&
+ networkDataSettings_ != com.openxc.BinaryMessages.NetworkDataSettings.getDefaultInstance()) {
+ networkDataSettings_ =
+ com.openxc.BinaryMessages.NetworkDataSettings.newBuilder(networkDataSettings_).mergeFrom(value).buildPartial();
+ } else {
+ networkDataSettings_ = value;
+ }
+ onChanged();
+ } else {
+ networkDataSettingsBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000002;
+ return this;
+ }
+ public Builder clearNetworkDataSettings() {
+ if (networkDataSettingsBuilder_ == null) {
+ networkDataSettings_ = com.openxc.BinaryMessages.NetworkDataSettings.getDefaultInstance();
+ onChanged();
+ } else {
+ networkDataSettingsBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000002);
+ return this;
+ }
+ public com.openxc.BinaryMessages.NetworkDataSettings.Builder getNetworkDataSettingsBuilder() {
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return getNetworkDataSettingsFieldBuilder().getBuilder();
+ }
+ public com.openxc.BinaryMessages.NetworkDataSettingsOrBuilder getNetworkDataSettingsOrBuilder() {
+ if (networkDataSettingsBuilder_ != null) {
+ return networkDataSettingsBuilder_.getMessageOrBuilder();
+ } else {
+ return networkDataSettings_;
+ }
+ }
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.NetworkDataSettings, com.openxc.BinaryMessages.NetworkDataSettings.Builder, com.openxc.BinaryMessages.NetworkDataSettingsOrBuilder>
+ getNetworkDataSettingsFieldBuilder() {
+ if (networkDataSettingsBuilder_ == null) {
+ networkDataSettingsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.NetworkDataSettings, com.openxc.BinaryMessages.NetworkDataSettings.Builder, com.openxc.BinaryMessages.NetworkDataSettingsOrBuilder>(
+ networkDataSettings_,
+ getParentForChildren(),
+ isClean());
+ networkDataSettings_ = null;
+ }
+ return networkDataSettingsBuilder_;
+ }
+
+ // optional .openxc.ServerConnectSettings serverConnectSettings = 3;
+ private com.openxc.BinaryMessages.ServerConnectSettings serverConnectSettings_ = com.openxc.BinaryMessages.ServerConnectSettings.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.ServerConnectSettings, com.openxc.BinaryMessages.ServerConnectSettings.Builder, com.openxc.BinaryMessages.ServerConnectSettingsOrBuilder> serverConnectSettingsBuilder_;
+ public boolean hasServerConnectSettings() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ public com.openxc.BinaryMessages.ServerConnectSettings getServerConnectSettings() {
+ if (serverConnectSettingsBuilder_ == null) {
+ return serverConnectSettings_;
+ } else {
+ return serverConnectSettingsBuilder_.getMessage();
+ }
+ }
+ public Builder setServerConnectSettings(com.openxc.BinaryMessages.ServerConnectSettings value) {
+ if (serverConnectSettingsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ serverConnectSettings_ = value;
+ onChanged();
+ } else {
+ serverConnectSettingsBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000004;
+ return this;
+ }
+ public Builder setServerConnectSettings(
+ com.openxc.BinaryMessages.ServerConnectSettings.Builder builderForValue) {
+ if (serverConnectSettingsBuilder_ == null) {
+ serverConnectSettings_ = builderForValue.build();
+ onChanged();
+ } else {
+ serverConnectSettingsBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000004;
+ return this;
+ }
+ public Builder mergeServerConnectSettings(com.openxc.BinaryMessages.ServerConnectSettings value) {
+ if (serverConnectSettingsBuilder_ == null) {
+ if (((bitField0_ & 0x00000004) == 0x00000004) &&
+ serverConnectSettings_ != com.openxc.BinaryMessages.ServerConnectSettings.getDefaultInstance()) {
+ serverConnectSettings_ =
+ com.openxc.BinaryMessages.ServerConnectSettings.newBuilder(serverConnectSettings_).mergeFrom(value).buildPartial();
+ } else {
+ serverConnectSettings_ = value;
+ }
+ onChanged();
+ } else {
+ serverConnectSettingsBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000004;
+ return this;
+ }
+ public Builder clearServerConnectSettings() {
+ if (serverConnectSettingsBuilder_ == null) {
+ serverConnectSettings_ = com.openxc.BinaryMessages.ServerConnectSettings.getDefaultInstance();
+ onChanged();
+ } else {
+ serverConnectSettingsBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000004);
+ return this;
+ }
+ public com.openxc.BinaryMessages.ServerConnectSettings.Builder getServerConnectSettingsBuilder() {
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return getServerConnectSettingsFieldBuilder().getBuilder();
+ }
+ public com.openxc.BinaryMessages.ServerConnectSettingsOrBuilder getServerConnectSettingsOrBuilder() {
+ if (serverConnectSettingsBuilder_ != null) {
+ return serverConnectSettingsBuilder_.getMessageOrBuilder();
+ } else {
+ return serverConnectSettings_;
+ }
+ }
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.ServerConnectSettings, com.openxc.BinaryMessages.ServerConnectSettings.Builder, com.openxc.BinaryMessages.ServerConnectSettingsOrBuilder>
+ getServerConnectSettingsFieldBuilder() {
+ if (serverConnectSettingsBuilder_ == null) {
+ serverConnectSettingsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.ServerConnectSettings, com.openxc.BinaryMessages.ServerConnectSettings.Builder, com.openxc.BinaryMessages.ServerConnectSettingsOrBuilder>(
+ serverConnectSettings_,
+ getParentForChildren(),
+ isClean());
+ serverConnectSettings_ = null;
+ }
+ return serverConnectSettingsBuilder_;
+ }
+
+ // @@protoc_insertion_point(builder_scope:openxc.ModemConfigurationCommand)
+ }
+
+ static {
+ defaultInstance = new ModemConfigurationCommand(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:openxc.ModemConfigurationCommand)
+ }
+
+ public interface RTCConfigurationCommandOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional uint32 unix_time = 1;
+ boolean hasUnixTime();
+ int getUnixTime();
+ }
+ public static final class RTCConfigurationCommand extends
+ com.google.protobuf.GeneratedMessage
+ implements RTCConfigurationCommandOrBuilder {
+ // Use RTCConfigurationCommand.newBuilder() to construct.
+ private RTCConfigurationCommand(Builder builder) {
+ super(builder);
+ }
+ private RTCConfigurationCommand(boolean noInit) {}
+
+ private static final RTCConfigurationCommand defaultInstance;
+ public static RTCConfigurationCommand getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public RTCConfigurationCommand getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_RTCConfigurationCommand_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_RTCConfigurationCommand_fieldAccessorTable;
+ }
+
+ private int bitField0_;
+ // optional uint32 unix_time = 1;
+ public static final int UNIX_TIME_FIELD_NUMBER = 1;
+ private int unixTime_;
+ public boolean hasUnixTime() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public int getUnixTime() {
+ return unixTime_;
+ }
+
+ private void initFields() {
+ unixTime_ = 0;
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeUInt32(1, unixTime_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(1, unixTime_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static com.openxc.BinaryMessages.RTCConfigurationCommand parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.RTCConfigurationCommand parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.RTCConfigurationCommand parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.RTCConfigurationCommand parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.RTCConfigurationCommand parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.RTCConfigurationCommand parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.RTCConfigurationCommand parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.RTCConfigurationCommand parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.RTCConfigurationCommand parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.RTCConfigurationCommand parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(com.openxc.BinaryMessages.RTCConfigurationCommand prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements com.openxc.BinaryMessages.RTCConfigurationCommandOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_RTCConfigurationCommand_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_RTCConfigurationCommand_fieldAccessorTable;
+ }
+
+ // Construct using com.openxc.BinaryMessages.RTCConfigurationCommand.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ unixTime_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.openxc.BinaryMessages.RTCConfigurationCommand.getDescriptor();
+ }
+
+ public com.openxc.BinaryMessages.RTCConfigurationCommand getDefaultInstanceForType() {
+ return com.openxc.BinaryMessages.RTCConfigurationCommand.getDefaultInstance();
+ }
+
+ public com.openxc.BinaryMessages.RTCConfigurationCommand build() {
+ com.openxc.BinaryMessages.RTCConfigurationCommand result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ private com.openxc.BinaryMessages.RTCConfigurationCommand buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ com.openxc.BinaryMessages.RTCConfigurationCommand result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return result;
+ }
+
+ public com.openxc.BinaryMessages.RTCConfigurationCommand buildPartial() {
+ com.openxc.BinaryMessages.RTCConfigurationCommand result = new com.openxc.BinaryMessages.RTCConfigurationCommand(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.unixTime_ = unixTime_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.openxc.BinaryMessages.RTCConfigurationCommand) {
+ return mergeFrom((com.openxc.BinaryMessages.RTCConfigurationCommand)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.openxc.BinaryMessages.RTCConfigurationCommand other) {
+ if (other == com.openxc.BinaryMessages.RTCConfigurationCommand.getDefaultInstance()) return this;
+ if (other.hasUnixTime()) {
+ setUnixTime(other.getUnixTime());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ 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 {
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder(
+ this.getUnknownFields());
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ }
+ break;
+ }
+ case 8: {
+ bitField0_ |= 0x00000001;
+ unixTime_ = input.readUInt32();
+ break;
+ }
+ }
+ }
+ }
+
+ private int bitField0_;
+
+ // optional uint32 unix_time = 1;
+ private int unixTime_ ;
+ public boolean hasUnixTime() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public int getUnixTime() {
+ return unixTime_;
+ }
+ public Builder setUnixTime(int value) {
+ bitField0_ |= 0x00000001;
+ unixTime_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearUnixTime() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ unixTime_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:openxc.RTCConfigurationCommand)
+ }
+
+ static {
+ defaultInstance = new RTCConfigurationCommand(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:openxc.RTCConfigurationCommand)
+ }
+
+ public interface CommandResponseOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional .openxc.ControlCommand.Type type = 1;
+ boolean hasType();
+ com.openxc.BinaryMessages.ControlCommand.Type getType();
+
+ // optional string message = 2;
+ boolean hasMessage();
+ String getMessage();
+
+ // optional bool status = 3;
+ boolean hasStatus();
+ boolean getStatus();
+ }
+ public static final class CommandResponse extends
+ com.google.protobuf.GeneratedMessage
+ implements CommandResponseOrBuilder {
+ // Use CommandResponse.newBuilder() to construct.
+ private CommandResponse(Builder builder) {
+ super(builder);
+ }
+ private CommandResponse(boolean noInit) {}
+
+ private static final CommandResponse defaultInstance;
+ public static CommandResponse getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public CommandResponse getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_CommandResponse_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_CommandResponse_fieldAccessorTable;
+ }
+
+ private int bitField0_;
+ // optional .openxc.ControlCommand.Type type = 1;
+ public static final int TYPE_FIELD_NUMBER = 1;
+ private com.openxc.BinaryMessages.ControlCommand.Type type_;
+ public boolean hasType() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public com.openxc.BinaryMessages.ControlCommand.Type getType() {
+ return type_;
+ }
+
+ // optional string message = 2;
+ public static final int MESSAGE_FIELD_NUMBER = 2;
+ private java.lang.Object message_;
+ public boolean hasMessage() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public String getMessage() {
+ java.lang.Object ref = message_;
+ if (ref instanceof String) {
+ return (String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ String s = bs.toStringUtf8();
+ if (com.google.protobuf.Internal.isValidUtf8(bs)) {
+ message_ = s;
+ }
+ return s;
+ }
+ }
+ private com.google.protobuf.ByteString getMessageBytes() {
+ java.lang.Object ref = message_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((String) ref);
+ message_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ // optional bool status = 3;
+ public static final int STATUS_FIELD_NUMBER = 3;
+ private boolean status_;
+ public boolean hasStatus() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ public boolean getStatus() {
+ return status_;
+ }
+
+ private void initFields() {
+ type_ = com.openxc.BinaryMessages.ControlCommand.Type.VERSION;
+ message_ = "";
+ status_ = false;
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeEnum(1, type_.getNumber());
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeBytes(2, getMessageBytes());
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ output.writeBool(3, status_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(1, type_.getNumber());
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(2, getMessageBytes());
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBoolSize(3, status_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static com.openxc.BinaryMessages.CommandResponse parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.CommandResponse parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.CommandResponse parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.CommandResponse parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.CommandResponse parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.CommandResponse parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.CommandResponse parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.CommandResponse parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.CommandResponse parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.CommandResponse parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(com.openxc.BinaryMessages.CommandResponse prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements com.openxc.BinaryMessages.CommandResponseOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_CommandResponse_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_CommandResponse_fieldAccessorTable;
+ }
+
+ // Construct using com.openxc.BinaryMessages.CommandResponse.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ type_ = com.openxc.BinaryMessages.ControlCommand.Type.VERSION;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ message_ = "";
+ bitField0_ = (bitField0_ & ~0x00000002);
+ status_ = false;
+ bitField0_ = (bitField0_ & ~0x00000004);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.openxc.BinaryMessages.CommandResponse.getDescriptor();
+ }
+
+ public com.openxc.BinaryMessages.CommandResponse getDefaultInstanceForType() {
+ return com.openxc.BinaryMessages.CommandResponse.getDefaultInstance();
+ }
+
+ public com.openxc.BinaryMessages.CommandResponse build() {
+ com.openxc.BinaryMessages.CommandResponse result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ private com.openxc.BinaryMessages.CommandResponse buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ com.openxc.BinaryMessages.CommandResponse result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return result;
+ }
+
+ public com.openxc.BinaryMessages.CommandResponse buildPartial() {
+ com.openxc.BinaryMessages.CommandResponse result = new com.openxc.BinaryMessages.CommandResponse(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.type_ = type_;
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ result.message_ = message_;
+ if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+ to_bitField0_ |= 0x00000004;
+ }
+ result.status_ = status_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.openxc.BinaryMessages.CommandResponse) {
+ return mergeFrom((com.openxc.BinaryMessages.CommandResponse)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.openxc.BinaryMessages.CommandResponse other) {
+ if (other == com.openxc.BinaryMessages.CommandResponse.getDefaultInstance()) return this;
+ if (other.hasType()) {
+ setType(other.getType());
+ }
+ if (other.hasMessage()) {
+ setMessage(other.getMessage());
+ }
+ if (other.hasStatus()) {
+ setStatus(other.getStatus());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ 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 {
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder(
+ this.getUnknownFields());
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ }
+ break;
+ }
+ case 8: {
+ int rawValue = input.readEnum();
+ com.openxc.BinaryMessages.ControlCommand.Type value = com.openxc.BinaryMessages.ControlCommand.Type.valueOf(rawValue);
+ if (value == null) {
+ unknownFields.mergeVarintField(1, rawValue);
+ } else {
+ bitField0_ |= 0x00000001;
+ type_ = value;
+ }
+ break;
+ }
+ case 18: {
+ bitField0_ |= 0x00000002;
+ message_ = input.readBytes();
+ break;
+ }
+ case 24: {
+ bitField0_ |= 0x00000004;
+ status_ = input.readBool();
+ break;
+ }
+ }
+ }
+ }
+
+ private int bitField0_;
+
+ // optional .openxc.ControlCommand.Type type = 1;
+ private com.openxc.BinaryMessages.ControlCommand.Type type_ = com.openxc.BinaryMessages.ControlCommand.Type.VERSION;
+ public boolean hasType() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public com.openxc.BinaryMessages.ControlCommand.Type getType() {
+ return type_;
+ }
+ public Builder setType(com.openxc.BinaryMessages.ControlCommand.Type value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000001;
+ type_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearType() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ type_ = com.openxc.BinaryMessages.ControlCommand.Type.VERSION;
+ onChanged();
+ return this;
+ }
+
+ // optional string message = 2;
+ private java.lang.Object message_ = "";
+ public boolean hasMessage() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public String getMessage() {
+ java.lang.Object ref = message_;
+ if (!(ref instanceof String)) {
+ String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
+ message_ = s;
+ return s;
+ } else {
+ return (String) ref;
+ }
+ }
+ public Builder setMessage(String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000002;
+ message_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearMessage() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ message_ = getDefaultInstance().getMessage();
+ onChanged();
+ return this;
+ }
+ void setMessage(com.google.protobuf.ByteString value) {
+ bitField0_ |= 0x00000002;
+ message_ = value;
+ onChanged();
+ }
+
+ // optional bool status = 3;
+ private boolean status_ ;
+ public boolean hasStatus() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ public boolean getStatus() {
+ return status_;
+ }
+ public Builder setStatus(boolean value) {
+ bitField0_ |= 0x00000004;
+ status_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearStatus() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ status_ = false;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:openxc.CommandResponse)
+ }
+
+ static {
+ defaultInstance = new CommandResponse(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:openxc.CommandResponse)
+ }
+
+ public interface DiagnosticRequestOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional int32 bus = 1;
+ boolean hasBus();
+ int getBus();
+
+ // optional uint32 message_id = 2;
+ boolean hasMessageId();
+ int getMessageId();
+
+ // optional uint32 mode = 3;
+ boolean hasMode();
+ int getMode();
+
+ // optional uint32 pid = 4;
+ boolean hasPid();
+ int getPid();
+
+ // optional bytes payload = 5;
+ boolean hasPayload();
+ com.google.protobuf.ByteString getPayload();
+
+ // optional bool multiple_responses = 6;
+ boolean hasMultipleResponses();
+ boolean getMultipleResponses();
+
+ // optional double frequency = 7;
+ boolean hasFrequency();
+ double getFrequency();
+
+ // optional string name = 8;
+ boolean hasName();
+ String getName();
+
+ // optional .openxc.DiagnosticRequest.DecodedType decoded_type = 9;
+ boolean hasDecodedType();
+ com.openxc.BinaryMessages.DiagnosticRequest.DecodedType getDecodedType();
+ }
+ public static final class DiagnosticRequest extends
+ com.google.protobuf.GeneratedMessage
+ implements DiagnosticRequestOrBuilder {
+ // Use DiagnosticRequest.newBuilder() to construct.
+ private DiagnosticRequest(Builder builder) {
+ super(builder);
+ }
+ private DiagnosticRequest(boolean noInit) {}
+
+ private static final DiagnosticRequest defaultInstance;
+ public static DiagnosticRequest getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public DiagnosticRequest getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_DiagnosticRequest_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_DiagnosticRequest_fieldAccessorTable;
+ }
+
+ public enum DecodedType
+ implements com.google.protobuf.ProtocolMessageEnum {
+ NONE(0, 1),
+ OBD2(1, 2),
+ ;
+
+ public static final int NONE_VALUE = 1;
+ public static final int OBD2_VALUE = 2;
+
+
+ public final int getNumber() { return value; }
+
+ public static DecodedType valueOf(int value) {
+ switch (value) {
+ case 1: return NONE;
+ case 2: return OBD2;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap<DecodedType>
+ internalGetValueMap() {
+ return internalValueMap;
+ }
+ private static com.google.protobuf.Internal.EnumLiteMap<DecodedType>
+ internalValueMap =
+ new com.google.protobuf.Internal.EnumLiteMap<DecodedType>() {
+ public DecodedType findValueByNumber(int number) {
+ return DecodedType.valueOf(number);
+ }
+ };
+
+ public final com.google.protobuf.Descriptors.EnumValueDescriptor
+ getValueDescriptor() {
+ return getDescriptor().getValues().get(index);
+ }
+ public final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptorForType() {
+ return getDescriptor();
+ }
+ public static final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.DiagnosticRequest.getDescriptor().getEnumTypes().get(0);
+ }
+
+ private static final DecodedType[] VALUES = {
+ NONE, OBD2,
+ };
+
+ public static DecodedType valueOf(
+ com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+ if (desc.getType() != getDescriptor()) {
+ throw new java.lang.IllegalArgumentException(
+ "EnumValueDescriptor is not for this type.");
+ }
+ return VALUES[desc.getIndex()];
+ }
+
+ private final int index;
+ private final int value;
+
+ private DecodedType(int index, int value) {
+ this.index = index;
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:openxc.DiagnosticRequest.DecodedType)
+ }
+
+ private int bitField0_;
+ // optional int32 bus = 1;
+ public static final int BUS_FIELD_NUMBER = 1;
+ private int bus_;
+ public boolean hasBus() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public int getBus() {
+ return bus_;
+ }
+
+ // optional uint32 message_id = 2;
+ public static final int MESSAGE_ID_FIELD_NUMBER = 2;
+ private int messageId_;
+ public boolean hasMessageId() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public int getMessageId() {
+ return messageId_;
+ }
+
+ // optional uint32 mode = 3;
+ public static final int MODE_FIELD_NUMBER = 3;
+ private int mode_;
+ public boolean hasMode() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ public int getMode() {
+ return mode_;
+ }
+
+ // optional uint32 pid = 4;
+ public static final int PID_FIELD_NUMBER = 4;
+ private int pid_;
+ public boolean hasPid() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ public int getPid() {
+ return pid_;
+ }
+
+ // optional bytes payload = 5;
+ public static final int PAYLOAD_FIELD_NUMBER = 5;
+ private com.google.protobuf.ByteString payload_;
+ public boolean hasPayload() {
+ return ((bitField0_ & 0x00000010) == 0x00000010);
+ }
+ public com.google.protobuf.ByteString getPayload() {
+ return payload_;
+ }
+
+ // optional bool multiple_responses = 6;
+ public static final int MULTIPLE_RESPONSES_FIELD_NUMBER = 6;
+ private boolean multipleResponses_;
+ public boolean hasMultipleResponses() {
+ return ((bitField0_ & 0x00000020) == 0x00000020);
+ }
+ public boolean getMultipleResponses() {
+ return multipleResponses_;
+ }
+
+ // optional double frequency = 7;
+ public static final int FREQUENCY_FIELD_NUMBER = 7;
+ private double frequency_;
+ public boolean hasFrequency() {
+ return ((bitField0_ & 0x00000040) == 0x00000040);
+ }
+ public double getFrequency() {
+ return frequency_;
+ }
+
+ // optional string name = 8;
+ public static final int NAME_FIELD_NUMBER = 8;
+ private java.lang.Object name_;
+ public boolean hasName() {
+ return ((bitField0_ & 0x00000080) == 0x00000080);
+ }
+ public String getName() {
+ java.lang.Object ref = name_;
+ if (ref instanceof String) {
+ return (String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ String s = bs.toStringUtf8();
+ if (com.google.protobuf.Internal.isValidUtf8(bs)) {
+ name_ = s;
+ }
+ return s;
+ }
+ }
+ private com.google.protobuf.ByteString getNameBytes() {
+ java.lang.Object ref = name_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((String) ref);
+ name_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ // optional .openxc.DiagnosticRequest.DecodedType decoded_type = 9;
+ public static final int DECODED_TYPE_FIELD_NUMBER = 9;
+ private com.openxc.BinaryMessages.DiagnosticRequest.DecodedType decodedType_;
+ public boolean hasDecodedType() {
+ return ((bitField0_ & 0x00000100) == 0x00000100);
+ }
+ public com.openxc.BinaryMessages.DiagnosticRequest.DecodedType getDecodedType() {
+ return decodedType_;
+ }
+
+ private void initFields() {
+ bus_ = 0;
+ messageId_ = 0;
+ mode_ = 0;
+ pid_ = 0;
+ payload_ = com.google.protobuf.ByteString.EMPTY;
+ multipleResponses_ = false;
+ frequency_ = 0D;
+ name_ = "";
+ decodedType_ = com.openxc.BinaryMessages.DiagnosticRequest.DecodedType.NONE;
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeInt32(1, bus_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeUInt32(2, messageId_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ output.writeUInt32(3, mode_);
+ }
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ output.writeUInt32(4, pid_);
+ }
+ if (((bitField0_ & 0x00000010) == 0x00000010)) {
+ output.writeBytes(5, payload_);
+ }
+ if (((bitField0_ & 0x00000020) == 0x00000020)) {
+ output.writeBool(6, multipleResponses_);
+ }
+ if (((bitField0_ & 0x00000040) == 0x00000040)) {
+ output.writeDouble(7, frequency_);
+ }
+ if (((bitField0_ & 0x00000080) == 0x00000080)) {
+ output.writeBytes(8, getNameBytes());
+ }
+ if (((bitField0_ & 0x00000100) == 0x00000100)) {
+ output.writeEnum(9, decodedType_.getNumber());
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32Size(1, bus_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(2, messageId_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(3, mode_);
+ }
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(4, pid_);
+ }
+ if (((bitField0_ & 0x00000010) == 0x00000010)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(5, payload_);
+ }
+ if (((bitField0_ & 0x00000020) == 0x00000020)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBoolSize(6, multipleResponses_);
+ }
+ if (((bitField0_ & 0x00000040) == 0x00000040)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeDoubleSize(7, frequency_);
+ }
+ if (((bitField0_ & 0x00000080) == 0x00000080)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(8, getNameBytes());
+ }
+ if (((bitField0_ & 0x00000100) == 0x00000100)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(9, decodedType_.getNumber());
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static com.openxc.BinaryMessages.DiagnosticRequest parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.DiagnosticRequest parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.DiagnosticRequest parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.DiagnosticRequest parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.DiagnosticRequest parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.DiagnosticRequest parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.DiagnosticRequest parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.DiagnosticRequest parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.DiagnosticRequest parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.DiagnosticRequest parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(com.openxc.BinaryMessages.DiagnosticRequest prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements com.openxc.BinaryMessages.DiagnosticRequestOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_DiagnosticRequest_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_DiagnosticRequest_fieldAccessorTable;
+ }
+
+ // Construct using com.openxc.BinaryMessages.DiagnosticRequest.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ bus_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ messageId_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ mode_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000004);
+ pid_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000008);
+ payload_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000010);
+ multipleResponses_ = false;
+ bitField0_ = (bitField0_ & ~0x00000020);
+ frequency_ = 0D;
+ bitField0_ = (bitField0_ & ~0x00000040);
+ name_ = "";
+ bitField0_ = (bitField0_ & ~0x00000080);
+ decodedType_ = com.openxc.BinaryMessages.DiagnosticRequest.DecodedType.NONE;
+ bitField0_ = (bitField0_ & ~0x00000100);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.openxc.BinaryMessages.DiagnosticRequest.getDescriptor();
+ }
+
+ public com.openxc.BinaryMessages.DiagnosticRequest getDefaultInstanceForType() {
+ return com.openxc.BinaryMessages.DiagnosticRequest.getDefaultInstance();
+ }
+
+ public com.openxc.BinaryMessages.DiagnosticRequest build() {
+ com.openxc.BinaryMessages.DiagnosticRequest result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ private com.openxc.BinaryMessages.DiagnosticRequest buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ com.openxc.BinaryMessages.DiagnosticRequest result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return result;
+ }
+
+ public com.openxc.BinaryMessages.DiagnosticRequest buildPartial() {
+ com.openxc.BinaryMessages.DiagnosticRequest result = new com.openxc.BinaryMessages.DiagnosticRequest(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.bus_ = bus_;
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ result.messageId_ = messageId_;
+ if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+ to_bitField0_ |= 0x00000004;
+ }
+ result.mode_ = mode_;
+ if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
+ to_bitField0_ |= 0x00000008;
+ }
+ result.pid_ = pid_;
+ if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
+ to_bitField0_ |= 0x00000010;
+ }
+ result.payload_ = payload_;
+ if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
+ to_bitField0_ |= 0x00000020;
+ }
+ result.multipleResponses_ = multipleResponses_;
+ if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
+ to_bitField0_ |= 0x00000040;
+ }
+ result.frequency_ = frequency_;
+ if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
+ to_bitField0_ |= 0x00000080;
+ }
+ result.name_ = name_;
+ if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
+ to_bitField0_ |= 0x00000100;
+ }
+ result.decodedType_ = decodedType_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.openxc.BinaryMessages.DiagnosticRequest) {
+ return mergeFrom((com.openxc.BinaryMessages.DiagnosticRequest)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.openxc.BinaryMessages.DiagnosticRequest other) {
+ if (other == com.openxc.BinaryMessages.DiagnosticRequest.getDefaultInstance()) return this;
+ if (other.hasBus()) {
+ setBus(other.getBus());
+ }
+ if (other.hasMessageId()) {
+ setMessageId(other.getMessageId());
+ }
+ if (other.hasMode()) {
+ setMode(other.getMode());
+ }
+ if (other.hasPid()) {
+ setPid(other.getPid());
+ }
+ if (other.hasPayload()) {
+ setPayload(other.getPayload());
+ }
+ if (other.hasMultipleResponses()) {
+ setMultipleResponses(other.getMultipleResponses());
+ }
+ if (other.hasFrequency()) {
+ setFrequency(other.getFrequency());
+ }
+ if (other.hasName()) {
+ setName(other.getName());
+ }
+ if (other.hasDecodedType()) {
+ setDecodedType(other.getDecodedType());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ 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 {
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder(
+ this.getUnknownFields());
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ }
+ break;
+ }
+ case 8: {
+ bitField0_ |= 0x00000001;
+ bus_ = input.readInt32();
+ break;
+ }
+ case 16: {
+ bitField0_ |= 0x00000002;
+ messageId_ = input.readUInt32();
+ break;
+ }
+ case 24: {
+ bitField0_ |= 0x00000004;
+ mode_ = input.readUInt32();
+ break;
+ }
+ case 32: {
+ bitField0_ |= 0x00000008;
+ pid_ = input.readUInt32();
+ break;
+ }
+ case 42: {
+ bitField0_ |= 0x00000010;
+ payload_ = input.readBytes();
+ break;
+ }
+ case 48: {
+ bitField0_ |= 0x00000020;
+ multipleResponses_ = input.readBool();
+ break;
+ }
+ case 57: {
+ bitField0_ |= 0x00000040;
+ frequency_ = input.readDouble();
+ break;
+ }
+ case 66: {
+ bitField0_ |= 0x00000080;
+ name_ = input.readBytes();
+ break;
+ }
+ case 72: {
+ int rawValue = input.readEnum();
+ com.openxc.BinaryMessages.DiagnosticRequest.DecodedType value = com.openxc.BinaryMessages.DiagnosticRequest.DecodedType.valueOf(rawValue);
+ if (value == null) {
+ unknownFields.mergeVarintField(9, rawValue);
+ } else {
+ bitField0_ |= 0x00000100;
+ decodedType_ = value;
+ }
+ break;
+ }
+ }
+ }
+ }
+
+ private int bitField0_;
+
+ // optional int32 bus = 1;
+ private int bus_ ;
+ public boolean hasBus() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public int getBus() {
+ return bus_;
+ }
+ public Builder setBus(int value) {
+ bitField0_ |= 0x00000001;
+ bus_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearBus() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ bus_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional uint32 message_id = 2;
+ private int messageId_ ;
+ public boolean hasMessageId() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public int getMessageId() {
+ return messageId_;
+ }
+ public Builder setMessageId(int value) {
+ bitField0_ |= 0x00000002;
+ messageId_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearMessageId() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ messageId_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional uint32 mode = 3;
+ private int mode_ ;
+ public boolean hasMode() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ public int getMode() {
+ return mode_;
+ }
+ public Builder setMode(int value) {
+ bitField0_ |= 0x00000004;
+ mode_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearMode() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ mode_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional uint32 pid = 4;
+ private int pid_ ;
+ public boolean hasPid() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ public int getPid() {
+ return pid_;
+ }
+ public Builder setPid(int value) {
+ bitField0_ |= 0x00000008;
+ pid_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearPid() {
+ bitField0_ = (bitField0_ & ~0x00000008);
+ pid_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional bytes payload = 5;
+ private com.google.protobuf.ByteString payload_ = com.google.protobuf.ByteString.EMPTY;
+ public boolean hasPayload() {
+ return ((bitField0_ & 0x00000010) == 0x00000010);
+ }
+ public com.google.protobuf.ByteString getPayload() {
+ return payload_;
+ }
+ public Builder setPayload(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000010;
+ payload_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearPayload() {
+ bitField0_ = (bitField0_ & ~0x00000010);
+ payload_ = getDefaultInstance().getPayload();
+ onChanged();
+ return this;
+ }
+
+ // optional bool multiple_responses = 6;
+ private boolean multipleResponses_ ;
+ public boolean hasMultipleResponses() {
+ return ((bitField0_ & 0x00000020) == 0x00000020);
+ }
+ public boolean getMultipleResponses() {
+ return multipleResponses_;
+ }
+ public Builder setMultipleResponses(boolean value) {
+ bitField0_ |= 0x00000020;
+ multipleResponses_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearMultipleResponses() {
+ bitField0_ = (bitField0_ & ~0x00000020);
+ multipleResponses_ = false;
+ onChanged();
+ return this;
+ }
+
+ // optional double frequency = 7;
+ private double frequency_ ;
+ public boolean hasFrequency() {
+ return ((bitField0_ & 0x00000040) == 0x00000040);
+ }
+ public double getFrequency() {
+ return frequency_;
+ }
+ public Builder setFrequency(double value) {
+ bitField0_ |= 0x00000040;
+ frequency_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearFrequency() {
+ bitField0_ = (bitField0_ & ~0x00000040);
+ frequency_ = 0D;
+ onChanged();
+ return this;
+ }
+
+ // optional string name = 8;
+ private java.lang.Object name_ = "";
+ public boolean hasName() {
+ return ((bitField0_ & 0x00000080) == 0x00000080);
+ }
+ public String getName() {
+ java.lang.Object ref = name_;
+ if (!(ref instanceof String)) {
+ String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
+ name_ = s;
+ return s;
+ } else {
+ return (String) ref;
+ }
+ }
+ public Builder setName(String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000080;
+ name_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearName() {
+ bitField0_ = (bitField0_ & ~0x00000080);
+ name_ = getDefaultInstance().getName();
+ onChanged();
+ return this;
+ }
+ void setName(com.google.protobuf.ByteString value) {
+ bitField0_ |= 0x00000080;
+ name_ = value;
+ onChanged();
+ }
+
+ // optional .openxc.DiagnosticRequest.DecodedType decoded_type = 9;
+ private com.openxc.BinaryMessages.DiagnosticRequest.DecodedType decodedType_ = com.openxc.BinaryMessages.DiagnosticRequest.DecodedType.NONE;
+ public boolean hasDecodedType() {
+ return ((bitField0_ & 0x00000100) == 0x00000100);
+ }
+ public com.openxc.BinaryMessages.DiagnosticRequest.DecodedType getDecodedType() {
+ return decodedType_;
+ }
+ public Builder setDecodedType(com.openxc.BinaryMessages.DiagnosticRequest.DecodedType value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000100;
+ decodedType_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearDecodedType() {
+ bitField0_ = (bitField0_ & ~0x00000100);
+ decodedType_ = com.openxc.BinaryMessages.DiagnosticRequest.DecodedType.NONE;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:openxc.DiagnosticRequest)
+ }
+
+ static {
+ defaultInstance = new DiagnosticRequest(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:openxc.DiagnosticRequest)
+ }
+
+ public interface DiagnosticResponseOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional int32 bus = 1;
+ boolean hasBus();
+ int getBus();
+
+ // optional uint32 message_id = 2;
+ boolean hasMessageId();
+ int getMessageId();
+
+ // optional uint32 mode = 3;
+ boolean hasMode();
+ int getMode();
+
+ // optional uint32 pid = 4;
+ boolean hasPid();
+ int getPid();
+
+ // optional bool success = 5;
+ boolean hasSuccess();
+ boolean getSuccess();
+
+ // optional uint32 negative_response_code = 6;
+ boolean hasNegativeResponseCode();
+ int getNegativeResponseCode();
+
+ // optional bytes payload = 7;
+ boolean hasPayload();
+ com.google.protobuf.ByteString getPayload();
+
+ // optional double value = 8;
+ boolean hasValue();
+ double getValue();
+ }
+ public static final class DiagnosticResponse extends
+ com.google.protobuf.GeneratedMessage
+ implements DiagnosticResponseOrBuilder {
+ // Use DiagnosticResponse.newBuilder() to construct.
+ private DiagnosticResponse(Builder builder) {
+ super(builder);
+ }
+ private DiagnosticResponse(boolean noInit) {}
+
+ private static final DiagnosticResponse defaultInstance;
+ public static DiagnosticResponse getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public DiagnosticResponse getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_DiagnosticResponse_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_DiagnosticResponse_fieldAccessorTable;
+ }
+
+ private int bitField0_;
+ // optional int32 bus = 1;
+ public static final int BUS_FIELD_NUMBER = 1;
+ private int bus_;
+ public boolean hasBus() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public int getBus() {
+ return bus_;
+ }
+
+ // optional uint32 message_id = 2;
+ public static final int MESSAGE_ID_FIELD_NUMBER = 2;
+ private int messageId_;
+ public boolean hasMessageId() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public int getMessageId() {
+ return messageId_;
+ }
+
+ // optional uint32 mode = 3;
+ public static final int MODE_FIELD_NUMBER = 3;
+ private int mode_;
+ public boolean hasMode() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ public int getMode() {
+ return mode_;
+ }
+
+ // optional uint32 pid = 4;
+ public static final int PID_FIELD_NUMBER = 4;
+ private int pid_;
+ public boolean hasPid() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ public int getPid() {
+ return pid_;
+ }
+
+ // optional bool success = 5;
+ public static final int SUCCESS_FIELD_NUMBER = 5;
+ private boolean success_;
+ public boolean hasSuccess() {
+ return ((bitField0_ & 0x00000010) == 0x00000010);
+ }
+ public boolean getSuccess() {
+ return success_;
+ }
+
+ // optional uint32 negative_response_code = 6;
+ public static final int NEGATIVE_RESPONSE_CODE_FIELD_NUMBER = 6;
+ private int negativeResponseCode_;
+ public boolean hasNegativeResponseCode() {
+ return ((bitField0_ & 0x00000020) == 0x00000020);
+ }
+ public int getNegativeResponseCode() {
+ return negativeResponseCode_;
+ }
+
+ // optional bytes payload = 7;
+ public static final int PAYLOAD_FIELD_NUMBER = 7;
+ private com.google.protobuf.ByteString payload_;
+ public boolean hasPayload() {
+ return ((bitField0_ & 0x00000040) == 0x00000040);
+ }
+ public com.google.protobuf.ByteString getPayload() {
+ return payload_;
+ }
+
+ // optional double value = 8;
+ public static final int VALUE_FIELD_NUMBER = 8;
+ private double value_;
+ public boolean hasValue() {
+ return ((bitField0_ & 0x00000080) == 0x00000080);
+ }
+ public double getValue() {
+ return value_;
+ }
+
+ private void initFields() {
+ bus_ = 0;
+ messageId_ = 0;
+ mode_ = 0;
+ pid_ = 0;
+ success_ = false;
+ negativeResponseCode_ = 0;
+ payload_ = com.google.protobuf.ByteString.EMPTY;
+ value_ = 0D;
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeInt32(1, bus_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeUInt32(2, messageId_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ output.writeUInt32(3, mode_);
+ }
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ output.writeUInt32(4, pid_);
+ }
+ if (((bitField0_ & 0x00000010) == 0x00000010)) {
+ output.writeBool(5, success_);
+ }
+ if (((bitField0_ & 0x00000020) == 0x00000020)) {
+ output.writeUInt32(6, negativeResponseCode_);
+ }
+ if (((bitField0_ & 0x00000040) == 0x00000040)) {
+ output.writeBytes(7, payload_);
+ }
+ if (((bitField0_ & 0x00000080) == 0x00000080)) {
+ output.writeDouble(8, value_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32Size(1, bus_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(2, messageId_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(3, mode_);
+ }
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(4, pid_);
+ }
+ if (((bitField0_ & 0x00000010) == 0x00000010)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBoolSize(5, success_);
+ }
+ if (((bitField0_ & 0x00000020) == 0x00000020)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(6, negativeResponseCode_);
+ }
+ if (((bitField0_ & 0x00000040) == 0x00000040)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(7, payload_);
+ }
+ if (((bitField0_ & 0x00000080) == 0x00000080)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeDoubleSize(8, value_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static com.openxc.BinaryMessages.DiagnosticResponse parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.DiagnosticResponse parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.DiagnosticResponse parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.DiagnosticResponse parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.DiagnosticResponse parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.DiagnosticResponse parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.DiagnosticResponse parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.DiagnosticResponse parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.DiagnosticResponse parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.DiagnosticResponse parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(com.openxc.BinaryMessages.DiagnosticResponse prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements com.openxc.BinaryMessages.DiagnosticResponseOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_DiagnosticResponse_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_DiagnosticResponse_fieldAccessorTable;
+ }
+
+ // Construct using com.openxc.BinaryMessages.DiagnosticResponse.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ bus_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ messageId_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ mode_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000004);
+ pid_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000008);
+ success_ = false;
+ bitField0_ = (bitField0_ & ~0x00000010);
+ negativeResponseCode_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000020);
+ payload_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000040);
+ value_ = 0D;
+ bitField0_ = (bitField0_ & ~0x00000080);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.openxc.BinaryMessages.DiagnosticResponse.getDescriptor();
+ }
+
+ public com.openxc.BinaryMessages.DiagnosticResponse getDefaultInstanceForType() {
+ return com.openxc.BinaryMessages.DiagnosticResponse.getDefaultInstance();
+ }
+
+ public com.openxc.BinaryMessages.DiagnosticResponse build() {
+ com.openxc.BinaryMessages.DiagnosticResponse result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ private com.openxc.BinaryMessages.DiagnosticResponse buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ com.openxc.BinaryMessages.DiagnosticResponse result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return result;
+ }
+
+ public com.openxc.BinaryMessages.DiagnosticResponse buildPartial() {
+ com.openxc.BinaryMessages.DiagnosticResponse result = new com.openxc.BinaryMessages.DiagnosticResponse(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.bus_ = bus_;
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ result.messageId_ = messageId_;
+ if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+ to_bitField0_ |= 0x00000004;
+ }
+ result.mode_ = mode_;
+ if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
+ to_bitField0_ |= 0x00000008;
+ }
+ result.pid_ = pid_;
+ if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
+ to_bitField0_ |= 0x00000010;
+ }
+ result.success_ = success_;
+ if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
+ to_bitField0_ |= 0x00000020;
+ }
+ result.negativeResponseCode_ = negativeResponseCode_;
+ if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
+ to_bitField0_ |= 0x00000040;
+ }
+ result.payload_ = payload_;
+ if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
+ to_bitField0_ |= 0x00000080;
+ }
+ result.value_ = value_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.openxc.BinaryMessages.DiagnosticResponse) {
+ return mergeFrom((com.openxc.BinaryMessages.DiagnosticResponse)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.openxc.BinaryMessages.DiagnosticResponse other) {
+ if (other == com.openxc.BinaryMessages.DiagnosticResponse.getDefaultInstance()) return this;
+ if (other.hasBus()) {
+ setBus(other.getBus());
+ }
+ if (other.hasMessageId()) {
+ setMessageId(other.getMessageId());
+ }
+ if (other.hasMode()) {
+ setMode(other.getMode());
+ }
+ if (other.hasPid()) {
+ setPid(other.getPid());
+ }
+ if (other.hasSuccess()) {
+ setSuccess(other.getSuccess());
+ }
+ if (other.hasNegativeResponseCode()) {
+ setNegativeResponseCode(other.getNegativeResponseCode());
+ }
+ if (other.hasPayload()) {
+ setPayload(other.getPayload());
+ }
+ if (other.hasValue()) {
+ setValue(other.getValue());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ 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 {
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder(
+ this.getUnknownFields());
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ }
+ break;
+ }
+ case 8: {
+ bitField0_ |= 0x00000001;
+ bus_ = input.readInt32();
+ break;
+ }
+ case 16: {
+ bitField0_ |= 0x00000002;
+ messageId_ = input.readUInt32();
+ break;
+ }
+ case 24: {
+ bitField0_ |= 0x00000004;
+ mode_ = input.readUInt32();
+ break;
+ }
+ case 32: {
+ bitField0_ |= 0x00000008;
+ pid_ = input.readUInt32();
+ break;
+ }
+ case 40: {
+ bitField0_ |= 0x00000010;
+ success_ = input.readBool();
+ break;
+ }
+ case 48: {
+ bitField0_ |= 0x00000020;
+ negativeResponseCode_ = input.readUInt32();
+ break;
+ }
+ case 58: {
+ bitField0_ |= 0x00000040;
+ payload_ = input.readBytes();
+ break;
+ }
+ case 65: {
+ bitField0_ |= 0x00000080;
+ value_ = input.readDouble();
+ break;
+ }
+ }
+ }
+ }
+
+ private int bitField0_;
+
+ // optional int32 bus = 1;
+ private int bus_ ;
+ public boolean hasBus() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public int getBus() {
+ return bus_;
+ }
+ public Builder setBus(int value) {
+ bitField0_ |= 0x00000001;
+ bus_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearBus() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ bus_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional uint32 message_id = 2;
+ private int messageId_ ;
+ public boolean hasMessageId() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public int getMessageId() {
+ return messageId_;
+ }
+ public Builder setMessageId(int value) {
+ bitField0_ |= 0x00000002;
+ messageId_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearMessageId() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ messageId_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional uint32 mode = 3;
+ private int mode_ ;
+ public boolean hasMode() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ public int getMode() {
+ return mode_;
+ }
+ public Builder setMode(int value) {
+ bitField0_ |= 0x00000004;
+ mode_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearMode() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ mode_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional uint32 pid = 4;
+ private int pid_ ;
+ public boolean hasPid() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ public int getPid() {
+ return pid_;
+ }
+ public Builder setPid(int value) {
+ bitField0_ |= 0x00000008;
+ pid_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearPid() {
+ bitField0_ = (bitField0_ & ~0x00000008);
+ pid_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional bool success = 5;
+ private boolean success_ ;
+ public boolean hasSuccess() {
+ return ((bitField0_ & 0x00000010) == 0x00000010);
+ }
+ public boolean getSuccess() {
+ return success_;
+ }
+ public Builder setSuccess(boolean value) {
+ bitField0_ |= 0x00000010;
+ success_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearSuccess() {
+ bitField0_ = (bitField0_ & ~0x00000010);
+ success_ = false;
+ onChanged();
+ return this;
+ }
+
+ // optional uint32 negative_response_code = 6;
+ private int negativeResponseCode_ ;
+ public boolean hasNegativeResponseCode() {
+ return ((bitField0_ & 0x00000020) == 0x00000020);
+ }
+ public int getNegativeResponseCode() {
+ return negativeResponseCode_;
+ }
+ public Builder setNegativeResponseCode(int value) {
+ bitField0_ |= 0x00000020;
+ negativeResponseCode_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearNegativeResponseCode() {
+ bitField0_ = (bitField0_ & ~0x00000020);
+ negativeResponseCode_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional bytes payload = 7;
+ private com.google.protobuf.ByteString payload_ = com.google.protobuf.ByteString.EMPTY;
+ public boolean hasPayload() {
+ return ((bitField0_ & 0x00000040) == 0x00000040);
+ }
+ public com.google.protobuf.ByteString getPayload() {
+ return payload_;
+ }
+ public Builder setPayload(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000040;
+ payload_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearPayload() {
+ bitField0_ = (bitField0_ & ~0x00000040);
+ payload_ = getDefaultInstance().getPayload();
+ onChanged();
+ return this;
+ }
+
+ // optional double value = 8;
+ private double value_ ;
+ public boolean hasValue() {
+ return ((bitField0_ & 0x00000080) == 0x00000080);
+ }
+ public double getValue() {
+ return value_;
+ }
+ public Builder setValue(double value) {
+ bitField0_ |= 0x00000080;
+ value_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearValue() {
+ bitField0_ = (bitField0_ & ~0x00000080);
+ value_ = 0D;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:openxc.DiagnosticResponse)
+ }
+
+ static {
+ defaultInstance = new DiagnosticResponse(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:openxc.DiagnosticResponse)
+ }
+
+ public interface DynamicFieldOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional .openxc.DynamicField.Type type = 1;
+ boolean hasType();
+ com.openxc.BinaryMessages.DynamicField.Type getType();
+
+ // optional string string_value = 2;
+ boolean hasStringValue();
+ String getStringValue();
+
+ // optional double numeric_value = 3;
+ boolean hasNumericValue();
+ double getNumericValue();
+
+ // optional bool boolean_value = 4;
+ boolean hasBooleanValue();
+ boolean getBooleanValue();
+ }
+ public static final class DynamicField extends
+ com.google.protobuf.GeneratedMessage
+ implements DynamicFieldOrBuilder {
+ // Use DynamicField.newBuilder() to construct.
+ private DynamicField(Builder builder) {
+ super(builder);
+ }
+ private DynamicField(boolean noInit) {}
+
+ private static final DynamicField defaultInstance;
+ public static DynamicField getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public DynamicField getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_DynamicField_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_DynamicField_fieldAccessorTable;
+ }
+
+ public enum Type
+ implements com.google.protobuf.ProtocolMessageEnum {
+ STRING(0, 1),
+ NUM(1, 2),
+ BOOL(2, 3),
+ ;
+
+ public static final int STRING_VALUE = 1;
+ public static final int NUM_VALUE = 2;
+ public static final int BOOL_VALUE = 3;
+
+
+ public final int getNumber() { return value; }
+
+ public static Type valueOf(int value) {
+ switch (value) {
+ case 1: return STRING;
+ case 2: return NUM;
+ case 3: return BOOL;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap<Type>
+ internalGetValueMap() {
+ return internalValueMap;
+ }
+ private static com.google.protobuf.Internal.EnumLiteMap<Type>
+ internalValueMap =
+ new com.google.protobuf.Internal.EnumLiteMap<Type>() {
+ public Type findValueByNumber(int number) {
+ return Type.valueOf(number);
+ }
+ };
+
+ public final com.google.protobuf.Descriptors.EnumValueDescriptor
+ getValueDescriptor() {
+ return getDescriptor().getValues().get(index);
+ }
+ public final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptorForType() {
+ return getDescriptor();
+ }
+ public static final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.DynamicField.getDescriptor().getEnumTypes().get(0);
+ }
+
+ private static final Type[] VALUES = {
+ STRING, NUM, BOOL,
+ };
+
+ public static Type valueOf(
+ com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+ if (desc.getType() != getDescriptor()) {
+ throw new java.lang.IllegalArgumentException(
+ "EnumValueDescriptor is not for this type.");
+ }
+ return VALUES[desc.getIndex()];
+ }
+
+ private final int index;
+ private final int value;
+
+ private Type(int index, int value) {
+ this.index = index;
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:openxc.DynamicField.Type)
+ }
+
+ private int bitField0_;
+ // optional .openxc.DynamicField.Type type = 1;
+ public static final int TYPE_FIELD_NUMBER = 1;
+ private com.openxc.BinaryMessages.DynamicField.Type type_;
+ public boolean hasType() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public com.openxc.BinaryMessages.DynamicField.Type getType() {
+ return type_;
+ }
+
+ // optional string string_value = 2;
+ public static final int STRING_VALUE_FIELD_NUMBER = 2;
+ private java.lang.Object stringValue_;
+ public boolean hasStringValue() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public String getStringValue() {
+ java.lang.Object ref = stringValue_;
+ if (ref instanceof String) {
+ return (String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ String s = bs.toStringUtf8();
+ if (com.google.protobuf.Internal.isValidUtf8(bs)) {
+ stringValue_ = s;
+ }
+ return s;
+ }
+ }
+ private com.google.protobuf.ByteString getStringValueBytes() {
+ java.lang.Object ref = stringValue_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((String) ref);
+ stringValue_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ // optional double numeric_value = 3;
+ public static final int NUMERIC_VALUE_FIELD_NUMBER = 3;
+ private double numericValue_;
+ public boolean hasNumericValue() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ public double getNumericValue() {
+ return numericValue_;
+ }
+
+ // optional bool boolean_value = 4;
+ public static final int BOOLEAN_VALUE_FIELD_NUMBER = 4;
+ private boolean booleanValue_;
+ public boolean hasBooleanValue() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ public boolean getBooleanValue() {
+ return booleanValue_;
+ }
+
+ private void initFields() {
+ type_ = com.openxc.BinaryMessages.DynamicField.Type.STRING;
+ stringValue_ = "";
+ numericValue_ = 0D;
+ booleanValue_ = false;
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeEnum(1, type_.getNumber());
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeBytes(2, getStringValueBytes());
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ output.writeDouble(3, numericValue_);
+ }
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ output.writeBool(4, booleanValue_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(1, type_.getNumber());
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(2, getStringValueBytes());
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeDoubleSize(3, numericValue_);
+ }
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBoolSize(4, booleanValue_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static com.openxc.BinaryMessages.DynamicField parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.DynamicField parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.DynamicField parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.DynamicField parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.DynamicField parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.DynamicField parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.DynamicField parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.DynamicField parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.DynamicField parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.DynamicField parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(com.openxc.BinaryMessages.DynamicField prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements com.openxc.BinaryMessages.DynamicFieldOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_DynamicField_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_DynamicField_fieldAccessorTable;
+ }
+
+ // Construct using com.openxc.BinaryMessages.DynamicField.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ type_ = com.openxc.BinaryMessages.DynamicField.Type.STRING;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ stringValue_ = "";
+ bitField0_ = (bitField0_ & ~0x00000002);
+ numericValue_ = 0D;
+ bitField0_ = (bitField0_ & ~0x00000004);
+ booleanValue_ = false;
+ bitField0_ = (bitField0_ & ~0x00000008);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.openxc.BinaryMessages.DynamicField.getDescriptor();
+ }
+
+ public com.openxc.BinaryMessages.DynamicField getDefaultInstanceForType() {
+ return com.openxc.BinaryMessages.DynamicField.getDefaultInstance();
+ }
+
+ public com.openxc.BinaryMessages.DynamicField build() {
+ com.openxc.BinaryMessages.DynamicField result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ private com.openxc.BinaryMessages.DynamicField buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ com.openxc.BinaryMessages.DynamicField result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return result;
+ }
+
+ public com.openxc.BinaryMessages.DynamicField buildPartial() {
+ com.openxc.BinaryMessages.DynamicField result = new com.openxc.BinaryMessages.DynamicField(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.type_ = type_;
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ result.stringValue_ = stringValue_;
+ if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+ to_bitField0_ |= 0x00000004;
+ }
+ result.numericValue_ = numericValue_;
+ if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
+ to_bitField0_ |= 0x00000008;
+ }
+ result.booleanValue_ = booleanValue_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.openxc.BinaryMessages.DynamicField) {
+ return mergeFrom((com.openxc.BinaryMessages.DynamicField)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.openxc.BinaryMessages.DynamicField other) {
+ if (other == com.openxc.BinaryMessages.DynamicField.getDefaultInstance()) return this;
+ if (other.hasType()) {
+ setType(other.getType());
+ }
+ if (other.hasStringValue()) {
+ setStringValue(other.getStringValue());
+ }
+ if (other.hasNumericValue()) {
+ setNumericValue(other.getNumericValue());
+ }
+ if (other.hasBooleanValue()) {
+ setBooleanValue(other.getBooleanValue());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ 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 {
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder(
+ this.getUnknownFields());
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ }
+ break;
+ }
+ case 8: {
+ int rawValue = input.readEnum();
+ com.openxc.BinaryMessages.DynamicField.Type value = com.openxc.BinaryMessages.DynamicField.Type.valueOf(rawValue);
+ if (value == null) {
+ unknownFields.mergeVarintField(1, rawValue);
+ } else {
+ bitField0_ |= 0x00000001;
+ type_ = value;
+ }
+ break;
+ }
+ case 18: {
+ bitField0_ |= 0x00000002;
+ stringValue_ = input.readBytes();
+ break;
+ }
+ case 25: {
+ bitField0_ |= 0x00000004;
+ numericValue_ = input.readDouble();
+ break;
+ }
+ case 32: {
+ bitField0_ |= 0x00000008;
+ booleanValue_ = input.readBool();
+ break;
+ }
+ }
+ }
+ }
+
+ private int bitField0_;
+
+ // optional .openxc.DynamicField.Type type = 1;
+ private com.openxc.BinaryMessages.DynamicField.Type type_ = com.openxc.BinaryMessages.DynamicField.Type.STRING;
+ public boolean hasType() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public com.openxc.BinaryMessages.DynamicField.Type getType() {
+ return type_;
+ }
+ public Builder setType(com.openxc.BinaryMessages.DynamicField.Type value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000001;
+ type_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearType() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ type_ = com.openxc.BinaryMessages.DynamicField.Type.STRING;
+ onChanged();
+ return this;
+ }
+
+ // optional string string_value = 2;
+ private java.lang.Object stringValue_ = "";
+ public boolean hasStringValue() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public String getStringValue() {
+ java.lang.Object ref = stringValue_;
+ if (!(ref instanceof String)) {
+ String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
+ stringValue_ = s;
+ return s;
+ } else {
+ return (String) ref;
+ }
+ }
+ public Builder setStringValue(String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000002;
+ stringValue_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearStringValue() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ stringValue_ = getDefaultInstance().getStringValue();
+ onChanged();
+ return this;
+ }
+ void setStringValue(com.google.protobuf.ByteString value) {
+ bitField0_ |= 0x00000002;
+ stringValue_ = value;
+ onChanged();
+ }
+
+ // optional double numeric_value = 3;
+ private double numericValue_ ;
+ public boolean hasNumericValue() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ public double getNumericValue() {
+ return numericValue_;
+ }
+ public Builder setNumericValue(double value) {
+ bitField0_ |= 0x00000004;
+ numericValue_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearNumericValue() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ numericValue_ = 0D;
+ onChanged();
+ return this;
+ }
+
+ // optional bool boolean_value = 4;
+ private boolean booleanValue_ ;
+ public boolean hasBooleanValue() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ public boolean getBooleanValue() {
+ return booleanValue_;
+ }
+ public Builder setBooleanValue(boolean value) {
+ bitField0_ |= 0x00000008;
+ booleanValue_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearBooleanValue() {
+ bitField0_ = (bitField0_ & ~0x00000008);
+ booleanValue_ = false;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:openxc.DynamicField)
+ }
+
+ static {
+ defaultInstance = new DynamicField(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:openxc.DynamicField)
+ }
+
+ public interface SimpleMessageOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional string name = 1;
+ boolean hasName();
+ String getName();
+
+ // optional .openxc.DynamicField value = 2;
+ boolean hasValue();
+ com.openxc.BinaryMessages.DynamicField getValue();
+ com.openxc.BinaryMessages.DynamicFieldOrBuilder getValueOrBuilder();
+
+ // optional .openxc.DynamicField event = 3;
+ boolean hasEvent();
+ com.openxc.BinaryMessages.DynamicField getEvent();
+ com.openxc.BinaryMessages.DynamicFieldOrBuilder getEventOrBuilder();
+ }
+ public static final class SimpleMessage extends
+ com.google.protobuf.GeneratedMessage
+ implements SimpleMessageOrBuilder {
+ // Use SimpleMessage.newBuilder() to construct.
+ private SimpleMessage(Builder builder) {
+ super(builder);
+ }
+ private SimpleMessage(boolean noInit) {}
+
+ private static final SimpleMessage defaultInstance;
+ public static SimpleMessage getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public SimpleMessage getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_SimpleMessage_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_SimpleMessage_fieldAccessorTable;
+ }
+
+ private int bitField0_;
+ // optional string name = 1;
+ public static final int NAME_FIELD_NUMBER = 1;
+ private java.lang.Object name_;
+ public boolean hasName() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public String getName() {
+ java.lang.Object ref = name_;
+ if (ref instanceof String) {
+ return (String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ String s = bs.toStringUtf8();
+ if (com.google.protobuf.Internal.isValidUtf8(bs)) {
+ name_ = s;
+ }
+ return s;
+ }
+ }
+ private com.google.protobuf.ByteString getNameBytes() {
+ java.lang.Object ref = name_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((String) ref);
+ name_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ // optional .openxc.DynamicField value = 2;
+ public static final int VALUE_FIELD_NUMBER = 2;
+ private com.openxc.BinaryMessages.DynamicField value_;
+ public boolean hasValue() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public com.openxc.BinaryMessages.DynamicField getValue() {
+ return value_;
+ }
+ public com.openxc.BinaryMessages.DynamicFieldOrBuilder getValueOrBuilder() {
+ return value_;
+ }
+
+ // optional .openxc.DynamicField event = 3;
+ public static final int EVENT_FIELD_NUMBER = 3;
+ private com.openxc.BinaryMessages.DynamicField event_;
+ public boolean hasEvent() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ public com.openxc.BinaryMessages.DynamicField getEvent() {
+ return event_;
+ }
+ public com.openxc.BinaryMessages.DynamicFieldOrBuilder getEventOrBuilder() {
+ return event_;
+ }
+
+ private void initFields() {
+ name_ = "";
+ value_ = com.openxc.BinaryMessages.DynamicField.getDefaultInstance();
+ event_ = com.openxc.BinaryMessages.DynamicField.getDefaultInstance();
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeBytes(1, getNameBytes());
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeMessage(2, value_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ output.writeMessage(3, event_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(1, getNameBytes());
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(2, value_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(3, event_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static com.openxc.BinaryMessages.SimpleMessage parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.SimpleMessage parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.SimpleMessage parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.SimpleMessage parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.SimpleMessage parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.SimpleMessage parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static com.openxc.BinaryMessages.SimpleMessage parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.SimpleMessage parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static com.openxc.BinaryMessages.SimpleMessage parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static com.openxc.BinaryMessages.SimpleMessage parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(com.openxc.BinaryMessages.SimpleMessage prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements com.openxc.BinaryMessages.SimpleMessageOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.openxc.BinaryMessages.internal_static_openxc_SimpleMessage_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.openxc.BinaryMessages.internal_static_openxc_SimpleMessage_fieldAccessorTable;
+ }
+
+ // Construct using com.openxc.BinaryMessages.SimpleMessage.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ getValueFieldBuilder();
+ getEventFieldBuilder();
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ name_ = "";
+ bitField0_ = (bitField0_ & ~0x00000001);
+ if (valueBuilder_ == null) {
+ value_ = com.openxc.BinaryMessages.DynamicField.getDefaultInstance();
+ } else {
+ valueBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000002);
+ if (eventBuilder_ == null) {
+ event_ = com.openxc.BinaryMessages.DynamicField.getDefaultInstance();
+ } else {
+ eventBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000004);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.openxc.BinaryMessages.SimpleMessage.getDescriptor();
+ }
+
+ public com.openxc.BinaryMessages.SimpleMessage getDefaultInstanceForType() {
+ return com.openxc.BinaryMessages.SimpleMessage.getDefaultInstance();
+ }
+
+ public com.openxc.BinaryMessages.SimpleMessage build() {
+ com.openxc.BinaryMessages.SimpleMessage result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ private com.openxc.BinaryMessages.SimpleMessage buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ com.openxc.BinaryMessages.SimpleMessage result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return result;
+ }
+
+ public com.openxc.BinaryMessages.SimpleMessage buildPartial() {
+ com.openxc.BinaryMessages.SimpleMessage result = new com.openxc.BinaryMessages.SimpleMessage(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.name_ = name_;
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ if (valueBuilder_ == null) {
+ result.value_ = value_;
+ } else {
+ result.value_ = valueBuilder_.build();
+ }
+ if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+ to_bitField0_ |= 0x00000004;
+ }
+ if (eventBuilder_ == null) {
+ result.event_ = event_;
+ } else {
+ result.event_ = eventBuilder_.build();
+ }
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.openxc.BinaryMessages.SimpleMessage) {
+ return mergeFrom((com.openxc.BinaryMessages.SimpleMessage)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.openxc.BinaryMessages.SimpleMessage other) {
+ if (other == com.openxc.BinaryMessages.SimpleMessage.getDefaultInstance()) return this;
+ if (other.hasName()) {
+ setName(other.getName());
+ }
+ if (other.hasValue()) {
+ mergeValue(other.getValue());
+ }
+ if (other.hasEvent()) {
+ mergeEvent(other.getEvent());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ 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 {
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder(
+ this.getUnknownFields());
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ }
+ break;
+ }
+ case 10: {
+ bitField0_ |= 0x00000001;
+ name_ = input.readBytes();
+ break;
+ }
+ case 18: {
+ com.openxc.BinaryMessages.DynamicField.Builder subBuilder = com.openxc.BinaryMessages.DynamicField.newBuilder();
+ if (hasValue()) {
+ subBuilder.mergeFrom(getValue());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setValue(subBuilder.buildPartial());
+ break;
+ }
+ case 26: {
+ com.openxc.BinaryMessages.DynamicField.Builder subBuilder = com.openxc.BinaryMessages.DynamicField.newBuilder();
+ if (hasEvent()) {
+ subBuilder.mergeFrom(getEvent());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setEvent(subBuilder.buildPartial());
+ break;
+ }
+ }
+ }
+ }
+
+ private int bitField0_;
+
+ // optional string name = 1;
+ private java.lang.Object name_ = "";
+ public boolean hasName() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public String getName() {
+ java.lang.Object ref = name_;
+ if (!(ref instanceof String)) {
+ String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
+ name_ = s;
+ return s;
+ } else {
+ return (String) ref;
+ }
+ }
+ public Builder setName(String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000001;
+ name_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearName() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ name_ = getDefaultInstance().getName();
+ onChanged();
+ return this;
+ }
+ void setName(com.google.protobuf.ByteString value) {
+ bitField0_ |= 0x00000001;
+ name_ = value;
+ onChanged();
+ }
+
+ // optional .openxc.DynamicField value = 2;
+ private com.openxc.BinaryMessages.DynamicField value_ = com.openxc.BinaryMessages.DynamicField.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.DynamicField, com.openxc.BinaryMessages.DynamicField.Builder, com.openxc.BinaryMessages.DynamicFieldOrBuilder> valueBuilder_;
+ public boolean hasValue() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public com.openxc.BinaryMessages.DynamicField getValue() {
+ if (valueBuilder_ == null) {
+ return value_;
+ } else {
+ return valueBuilder_.getMessage();
+ }
+ }
+ public Builder setValue(com.openxc.BinaryMessages.DynamicField value) {
+ if (valueBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ value_ = value;
+ onChanged();
+ } else {
+ valueBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000002;
+ return this;
+ }
+ public Builder setValue(
+ com.openxc.BinaryMessages.DynamicField.Builder builderForValue) {
+ if (valueBuilder_ == null) {
+ value_ = builderForValue.build();
+ onChanged();
+ } else {
+ valueBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000002;
+ return this;
+ }
+ public Builder mergeValue(com.openxc.BinaryMessages.DynamicField value) {
+ if (valueBuilder_ == null) {
+ if (((bitField0_ & 0x00000002) == 0x00000002) &&
+ value_ != com.openxc.BinaryMessages.DynamicField.getDefaultInstance()) {
+ value_ =
+ com.openxc.BinaryMessages.DynamicField.newBuilder(value_).mergeFrom(value).buildPartial();
+ } else {
+ value_ = value;
+ }
+ onChanged();
+ } else {
+ valueBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000002;
+ return this;
+ }
+ public Builder clearValue() {
+ if (valueBuilder_ == null) {
+ value_ = com.openxc.BinaryMessages.DynamicField.getDefaultInstance();
+ onChanged();
+ } else {
+ valueBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000002);
+ return this;
+ }
+ public com.openxc.BinaryMessages.DynamicField.Builder getValueBuilder() {
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return getValueFieldBuilder().getBuilder();
+ }
+ public com.openxc.BinaryMessages.DynamicFieldOrBuilder getValueOrBuilder() {
+ if (valueBuilder_ != null) {
+ return valueBuilder_.getMessageOrBuilder();
+ } else {
+ return value_;
+ }
+ }
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.DynamicField, com.openxc.BinaryMessages.DynamicField.Builder, com.openxc.BinaryMessages.DynamicFieldOrBuilder>
+ getValueFieldBuilder() {
+ if (valueBuilder_ == null) {
+ valueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.DynamicField, com.openxc.BinaryMessages.DynamicField.Builder, com.openxc.BinaryMessages.DynamicFieldOrBuilder>(
+ value_,
+ getParentForChildren(),
+ isClean());
+ value_ = null;
+ }
+ return valueBuilder_;
+ }
+
+ // optional .openxc.DynamicField event = 3;
+ private com.openxc.BinaryMessages.DynamicField event_ = com.openxc.BinaryMessages.DynamicField.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.DynamicField, com.openxc.BinaryMessages.DynamicField.Builder, com.openxc.BinaryMessages.DynamicFieldOrBuilder> eventBuilder_;
+ public boolean hasEvent() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ public com.openxc.BinaryMessages.DynamicField getEvent() {
+ if (eventBuilder_ == null) {
+ return event_;
+ } else {
+ return eventBuilder_.getMessage();
+ }
+ }
+ public Builder setEvent(com.openxc.BinaryMessages.DynamicField value) {
+ if (eventBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ event_ = value;
+ onChanged();
+ } else {
+ eventBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000004;
+ return this;
+ }
+ public Builder setEvent(
+ com.openxc.BinaryMessages.DynamicField.Builder builderForValue) {
+ if (eventBuilder_ == null) {
+ event_ = builderForValue.build();
+ onChanged();
+ } else {
+ eventBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000004;
+ return this;
+ }
+ public Builder mergeEvent(com.openxc.BinaryMessages.DynamicField value) {
+ if (eventBuilder_ == null) {
+ if (((bitField0_ & 0x00000004) == 0x00000004) &&
+ event_ != com.openxc.BinaryMessages.DynamicField.getDefaultInstance()) {
+ event_ =
+ com.openxc.BinaryMessages.DynamicField.newBuilder(event_).mergeFrom(value).buildPartial();
+ } else {
+ event_ = value;
+ }
+ onChanged();
+ } else {
+ eventBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000004;
+ return this;
+ }
+ public Builder clearEvent() {
+ if (eventBuilder_ == null) {
+ event_ = com.openxc.BinaryMessages.DynamicField.getDefaultInstance();
+ onChanged();
+ } else {
+ eventBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000004);
+ return this;
+ }
+ public com.openxc.BinaryMessages.DynamicField.Builder getEventBuilder() {
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return getEventFieldBuilder().getBuilder();
+ }
+ public com.openxc.BinaryMessages.DynamicFieldOrBuilder getEventOrBuilder() {
+ if (eventBuilder_ != null) {
+ return eventBuilder_.getMessageOrBuilder();
+ } else {
+ return event_;
+ }
+ }
+ private com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.DynamicField, com.openxc.BinaryMessages.DynamicField.Builder, com.openxc.BinaryMessages.DynamicFieldOrBuilder>
+ getEventFieldBuilder() {
+ if (eventBuilder_ == null) {
+ eventBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ com.openxc.BinaryMessages.DynamicField, com.openxc.BinaryMessages.DynamicField.Builder, com.openxc.BinaryMessages.DynamicFieldOrBuilder>(
+ event_,
+ getParentForChildren(),
+ isClean());
+ event_ = null;
+ }
+ return eventBuilder_;
+ }
+
+ // @@protoc_insertion_point(builder_scope:openxc.SimpleMessage)
+ }
+
+ static {
+ defaultInstance = new SimpleMessage(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:openxc.SimpleMessage)
+ }
+
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_openxc_VehicleMessage_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_openxc_VehicleMessage_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_openxc_CanMessage_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_openxc_CanMessage_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_openxc_ControlCommand_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_openxc_ControlCommand_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_openxc_DiagnosticControlCommand_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_openxc_DiagnosticControlCommand_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_openxc_PassthroughModeControlCommand_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_openxc_PassthroughModeControlCommand_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_openxc_AcceptanceFilterBypassCommand_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_openxc_AcceptanceFilterBypassCommand_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_openxc_PayloadFormatCommand_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_openxc_PayloadFormatCommand_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_openxc_PredefinedObd2RequestsCommand_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_openxc_PredefinedObd2RequestsCommand_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_openxc_NetworkOperatorSettings_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_openxc_NetworkOperatorSettings_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_openxc_NetworkOperatorSettings_NetworkDescriptor_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_openxc_NetworkOperatorSettings_NetworkDescriptor_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_openxc_NetworkDataSettings_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_openxc_NetworkDataSettings_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_openxc_ServerConnectSettings_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_openxc_ServerConnectSettings_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_openxc_ModemConfigurationCommand_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_openxc_ModemConfigurationCommand_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_openxc_RTCConfigurationCommand_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_openxc_RTCConfigurationCommand_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_openxc_CommandResponse_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_openxc_CommandResponse_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_openxc_DiagnosticRequest_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_openxc_DiagnosticRequest_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_openxc_DiagnosticResponse_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_openxc_DiagnosticResponse_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_openxc_DynamicField_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_openxc_DynamicField_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_openxc_SimpleMessage_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_openxc_SimpleMessage_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\014openxc.proto\022\006openxc\"\233\003\n\016VehicleMessag" +
+ "e\022)\n\004type\030\001 \001(\0162\033.openxc.VehicleMessage." +
+ "Type\022\'\n\013can_message\030\002 \001(\0132\022.openxc.CanMe" +
+ "ssage\022-\n\016simple_message\030\003 \001(\0132\025.openxc.S" +
+ "impleMessage\0227\n\023diagnostic_response\030\004 \001(" +
+ "\0132\032.openxc.DiagnosticResponse\022/\n\017control" +
+ "_command\030\005 \001(\0132\026.openxc.ControlCommand\0221" +
+ "\n\020command_response\030\006 \001(\0132\027.openxc.Comman" +
+ "dResponse\022\021\n\ttimestamp\030\007 \001(\004\"V\n\004Type\022\007\n\003" +
+ "CAN\020\001\022\n\n\006SIMPLE\020\002\022\016\n\nDIAGNOSTIC\020\003\022\023\n\017CON",
+ "TROL_COMMAND\020\004\022\024\n\020COMMAND_RESPONSE\020\005\"\224\001\n" +
+ "\nCanMessage\022\013\n\003bus\030\001 \001(\005\022\n\n\002id\030\002 \001(\r\022\014\n\004" +
+ "data\030\003 \001(\014\0224\n\014frame_format\030\004 \001(\0162\036.openx" +
+ "c.CanMessage.FrameFormat\")\n\013FrameFormat\022" +
+ "\014\n\010STANDARD\020\001\022\014\n\010EXTENDED\020\002\"\227\006\n\016ControlC" +
+ "ommand\022)\n\004type\030\001 \001(\0162\033.openxc.ControlCom" +
+ "mand.Type\022<\n\022diagnostic_request\030\002 \001(\0132 ." +
+ "openxc.DiagnosticControlCommand\022G\n\030passt" +
+ "hrough_mode_request\030\003 \001(\0132%.openxc.Passt" +
+ "hroughModeControlCommand\022O\n acceptance_f",
+ "ilter_bypass_command\030\004 \001(\0132%.openxc.Acce" +
+ "ptanceFilterBypassCommand\022<\n\026payload_for" +
+ "mat_command\030\005 \001(\0132\034.openxc.PayloadFormat" +
+ "Command\022O\n predefined_obd2_requests_comm" +
+ "and\030\006 \001(\0132%.openxc.PredefinedObd2Request" +
+ "sCommand\022F\n\033modem_configuration_command\030" +
+ "\007 \001(\0132!.openxc.ModemConfigurationCommand" +
+ "\022B\n\031rtc_configuration_command\030\010 \001(\0132\037.op" +
+ "enxc.RTCConfigurationCommand\"\346\001\n\004Type\022\013\n" +
+ "\007VERSION\020\001\022\r\n\tDEVICE_ID\020\002\022\016\n\nDIAGNOSTIC\020",
+ "\003\022\017\n\013PASSTHROUGH\020\004\022\034\n\030ACCEPTANCE_FILTER_" +
+ "BYPASS\020\005\022\022\n\016PAYLOAD_FORMAT\020\006\022\034\n\030PREDEFIN" +
+ "ED_OBD2_REQUESTS\020\007\022\027\n\023MODEM_CONFIGURATIO" +
+ "N\020\010\022\025\n\021RTC_CONFIGURATION\020\t\022\023\n\017SD_MOUNT_S" +
+ "TATUS\020\n\022\014\n\010PLATFORM\020\013\"\236\001\n\030DiagnosticCont" +
+ "rolCommand\022*\n\007request\030\001 \001(\0132\031.openxc.Dia" +
+ "gnosticRequest\0227\n\006action\030\002 \001(\0162\'.openxc." +
+ "DiagnosticControlCommand.Action\"\035\n\006Actio" +
+ "n\022\007\n\003ADD\020\001\022\n\n\006CANCEL\020\002\"=\n\035PassthroughMod" +
+ "eControlCommand\022\013\n\003bus\030\001 \001(\005\022\017\n\007enabled\030",
+ "\002 \001(\010\"<\n\035AcceptanceFilterBypassCommand\022\013" +
+ "\n\003bus\030\001 \001(\005\022\016\n\006bypass\030\002 \001(\010\"\214\001\n\024PayloadF" +
+ "ormatCommand\022:\n\006format\030\001 \001(\0162*.openxc.Pa" +
+ "yloadFormatCommand.PayloadFormat\"8\n\rPayl" +
+ "oadFormat\022\010\n\004JSON\020\001\022\014\n\010PROTOBUF\020\002\022\017\n\013MES" +
+ "SAGEPACK\020\003\"0\n\035PredefinedObd2RequestsComm" +
+ "and\022\017\n\007enabled\030\001 \001(\010\"\321\003\n\027NetworkOperator" +
+ "Settings\022\030\n\020allowDataRoaming\030\001 \001(\010\022N\n\022op" +
+ "eratorSelectMode\030\002 \001(\01622.openxc.NetworkO" +
+ "peratorSettings.OperatorSelectMode\022L\n\021ne",
+ "tworkDescriptor\030\003 \001(\01321.openxc.NetworkOp" +
+ "eratorSettings.NetworkDescriptor\032\230\001\n\021Net" +
+ "workDescriptor\022\014\n\004PLMN\030\001 \001(\r\022R\n\013networkT" +
+ "ype\030\002 \001(\0162=.openxc.NetworkOperatorSettin" +
+ "gs.NetworkDescriptor.NetworkType\"!\n\013Netw" +
+ "orkType\022\007\n\003GSM\020\000\022\t\n\005UTRAN\020\002\"c\n\022OperatorS" +
+ "electMode\022\r\n\tAUTOMATIC\020\000\022\n\n\006MANUAL\020\001\022\016\n\n" +
+ "DEREGISTER\020\002\022\014\n\010SET_ONLY\020\003\022\024\n\020MANUAL_AUT" +
+ "OMATIC\020\004\"\"\n\023NetworkDataSettings\022\013\n\003APN\030\001" +
+ " \001(\t\"3\n\025ServerConnectSettings\022\014\n\004host\030\001 ",
+ "\001(\t\022\014\n\004port\030\002 \001(\r\"\325\001\n\031ModemConfiguration" +
+ "Command\022@\n\027networkOperatorSettings\030\001 \001(\013" +
+ "2\037.openxc.NetworkOperatorSettings\0228\n\023net" +
+ "workDataSettings\030\002 \001(\0132\033.openxc.NetworkD" +
+ "ataSettings\022<\n\025serverConnectSettings\030\003 \001" +
+ "(\0132\035.openxc.ServerConnectSettings\",\n\027RTC" +
+ "ConfigurationCommand\022\021\n\tunix_time\030\001 \001(\r\"" +
+ "]\n\017CommandResponse\022)\n\004type\030\001 \001(\0162\033.openx" +
+ "c.ControlCommand.Type\022\017\n\007message\030\002 \001(\t\022\016" +
+ "\n\006status\030\003 \001(\010\"\375\001\n\021DiagnosticRequest\022\013\n\003",
+ "bus\030\001 \001(\005\022\022\n\nmessage_id\030\002 \001(\r\022\014\n\004mode\030\003 " +
+ "\001(\r\022\013\n\003pid\030\004 \001(\r\022\017\n\007payload\030\005 \001(\014\022\032\n\022mul" +
+ "tiple_responses\030\006 \001(\010\022\021\n\tfrequency\030\007 \001(\001" +
+ "\022\014\n\004name\030\010 \001(\t\022;\n\014decoded_type\030\t \001(\0162%.o" +
+ "penxc.DiagnosticRequest.DecodedType\"!\n\013D" +
+ "ecodedType\022\010\n\004NONE\020\001\022\010\n\004OBD2\020\002\"\241\001\n\022Diagn" +
+ "osticResponse\022\013\n\003bus\030\001 \001(\005\022\022\n\nmessage_id" +
+ "\030\002 \001(\r\022\014\n\004mode\030\003 \001(\r\022\013\n\003pid\030\004 \001(\r\022\017\n\007suc" +
+ "cess\030\005 \001(\010\022\036\n\026negative_response_code\030\006 \001" +
+ "(\r\022\017\n\007payload\030\007 \001(\014\022\r\n\005value\030\010 \001(\001\"\242\001\n\014D",
+ "ynamicField\022\'\n\004type\030\001 \001(\0162\031.openxc.Dynam" +
+ "icField.Type\022\024\n\014string_value\030\002 \001(\t\022\025\n\rnu" +
+ "meric_value\030\003 \001(\001\022\025\n\rboolean_value\030\004 \001(\010" +
+ "\"%\n\004Type\022\n\n\006STRING\020\001\022\007\n\003NUM\020\002\022\010\n\004BOOL\020\003\"" +
+ "g\n\rSimpleMessage\022\014\n\004name\030\001 \001(\t\022#\n\005value\030" +
+ "\002 \001(\0132\024.openxc.DynamicField\022#\n\005event\030\003 \001" +
+ "(\0132\024.openxc.DynamicFieldB\034\n\ncom.openxcB\016" +
+ "BinaryMessages"
+ };
+ 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;
+ internal_static_openxc_VehicleMessage_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_openxc_VehicleMessage_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_openxc_VehicleMessage_descriptor,
+ new java.lang.String[] { "Type", "CanMessage", "SimpleMessage", "DiagnosticResponse", "ControlCommand", "CommandResponse", "Timestamp", },
+ com.openxc.BinaryMessages.VehicleMessage.class,
+ com.openxc.BinaryMessages.VehicleMessage.Builder.class);
+ internal_static_openxc_CanMessage_descriptor =
+ getDescriptor().getMessageTypes().get(1);
+ internal_static_openxc_CanMessage_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_openxc_CanMessage_descriptor,
+ new java.lang.String[] { "Bus", "Id", "Data", "FrameFormat", },
+ com.openxc.BinaryMessages.CanMessage.class,
+ com.openxc.BinaryMessages.CanMessage.Builder.class);
+ internal_static_openxc_ControlCommand_descriptor =
+ getDescriptor().getMessageTypes().get(2);
+ internal_static_openxc_ControlCommand_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_openxc_ControlCommand_descriptor,
+ new java.lang.String[] { "Type", "DiagnosticRequest", "PassthroughModeRequest", "AcceptanceFilterBypassCommand", "PayloadFormatCommand", "PredefinedObd2RequestsCommand", "ModemConfigurationCommand", "RtcConfigurationCommand", },
+ com.openxc.BinaryMessages.ControlCommand.class,
+ com.openxc.BinaryMessages.ControlCommand.Builder.class);
+ internal_static_openxc_DiagnosticControlCommand_descriptor =
+ getDescriptor().getMessageTypes().get(3);
+ internal_static_openxc_DiagnosticControlCommand_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_openxc_DiagnosticControlCommand_descriptor,
+ new java.lang.String[] { "Request", "Action", },
+ com.openxc.BinaryMessages.DiagnosticControlCommand.class,
+ com.openxc.BinaryMessages.DiagnosticControlCommand.Builder.class);
+ internal_static_openxc_PassthroughModeControlCommand_descriptor =
+ getDescriptor().getMessageTypes().get(4);
+ internal_static_openxc_PassthroughModeControlCommand_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_openxc_PassthroughModeControlCommand_descriptor,
+ new java.lang.String[] { "Bus", "Enabled", },
+ com.openxc.BinaryMessages.PassthroughModeControlCommand.class,
+ com.openxc.BinaryMessages.PassthroughModeControlCommand.Builder.class);
+ internal_static_openxc_AcceptanceFilterBypassCommand_descriptor =
+ getDescriptor().getMessageTypes().get(5);
+ internal_static_openxc_AcceptanceFilterBypassCommand_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_openxc_AcceptanceFilterBypassCommand_descriptor,
+ new java.lang.String[] { "Bus", "Bypass", },
+ com.openxc.BinaryMessages.AcceptanceFilterBypassCommand.class,
+ com.openxc.BinaryMessages.AcceptanceFilterBypassCommand.Builder.class);
+ internal_static_openxc_PayloadFormatCommand_descriptor =
+ getDescriptor().getMessageTypes().get(6);
+ internal_static_openxc_PayloadFormatCommand_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_openxc_PayloadFormatCommand_descriptor,
+ new java.lang.String[] { "Format", },
+ com.openxc.BinaryMessages.PayloadFormatCommand.class,
+ com.openxc.BinaryMessages.PayloadFormatCommand.Builder.class);
+ internal_static_openxc_PredefinedObd2RequestsCommand_descriptor =
+ getDescriptor().getMessageTypes().get(7);
+ internal_static_openxc_PredefinedObd2RequestsCommand_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_openxc_PredefinedObd2RequestsCommand_descriptor,
+ new java.lang.String[] { "Enabled", },
+ com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.class,
+ com.openxc.BinaryMessages.PredefinedObd2RequestsCommand.Builder.class);
+ internal_static_openxc_NetworkOperatorSettings_descriptor =
+ getDescriptor().getMessageTypes().get(8);
+ internal_static_openxc_NetworkOperatorSettings_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_openxc_NetworkOperatorSettings_descriptor,
+ new java.lang.String[] { "AllowDataRoaming", "OperatorSelectMode", "NetworkDescriptor", },
+ com.openxc.BinaryMessages.NetworkOperatorSettings.class,
+ com.openxc.BinaryMessages.NetworkOperatorSettings.Builder.class);
+ internal_static_openxc_NetworkOperatorSettings_NetworkDescriptor_descriptor =
+ internal_static_openxc_NetworkOperatorSettings_descriptor.getNestedTypes().get(0);
+ internal_static_openxc_NetworkOperatorSettings_NetworkDescriptor_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_openxc_NetworkOperatorSettings_NetworkDescriptor_descriptor,
+ new java.lang.String[] { "PLMN", "NetworkType", },
+ com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.class,
+ com.openxc.BinaryMessages.NetworkOperatorSettings.NetworkDescriptor.Builder.class);
+ internal_static_openxc_NetworkDataSettings_descriptor =
+ getDescriptor().getMessageTypes().get(9);
+ internal_static_openxc_NetworkDataSettings_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_openxc_NetworkDataSettings_descriptor,
+ new java.lang.String[] { "APN", },
+ com.openxc.BinaryMessages.NetworkDataSettings.class,
+ com.openxc.BinaryMessages.NetworkDataSettings.Builder.class);
+ internal_static_openxc_ServerConnectSettings_descriptor =
+ getDescriptor().getMessageTypes().get(10);
+ internal_static_openxc_ServerConnectSettings_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_openxc_ServerConnectSettings_descriptor,
+ new java.lang.String[] { "Host", "Port", },
+ com.openxc.BinaryMessages.ServerConnectSettings.class,
+ com.openxc.BinaryMessages.ServerConnectSettings.Builder.class);
+ internal_static_openxc_ModemConfigurationCommand_descriptor =
+ getDescriptor().getMessageTypes().get(11);
+ internal_static_openxc_ModemConfigurationCommand_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_openxc_ModemConfigurationCommand_descriptor,
+ new java.lang.String[] { "NetworkOperatorSettings", "NetworkDataSettings", "ServerConnectSettings", },
+ com.openxc.BinaryMessages.ModemConfigurationCommand.class,
+ com.openxc.BinaryMessages.ModemConfigurationCommand.Builder.class);
+ internal_static_openxc_RTCConfigurationCommand_descriptor =
+ getDescriptor().getMessageTypes().get(12);
+ internal_static_openxc_RTCConfigurationCommand_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_openxc_RTCConfigurationCommand_descriptor,
+ new java.lang.String[] { "UnixTime", },
+ com.openxc.BinaryMessages.RTCConfigurationCommand.class,
+ com.openxc.BinaryMessages.RTCConfigurationCommand.Builder.class);
+ internal_static_openxc_CommandResponse_descriptor =
+ getDescriptor().getMessageTypes().get(13);
+ internal_static_openxc_CommandResponse_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_openxc_CommandResponse_descriptor,
+ new java.lang.String[] { "Type", "Message", "Status", },
+ com.openxc.BinaryMessages.CommandResponse.class,
+ com.openxc.BinaryMessages.CommandResponse.Builder.class);
+ internal_static_openxc_DiagnosticRequest_descriptor =
+ getDescriptor().getMessageTypes().get(14);
+ internal_static_openxc_DiagnosticRequest_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_openxc_DiagnosticRequest_descriptor,
+ new java.lang.String[] { "Bus", "MessageId", "Mode", "Pid", "Payload", "MultipleResponses", "Frequency", "Name", "DecodedType", },
+ com.openxc.BinaryMessages.DiagnosticRequest.class,
+ com.openxc.BinaryMessages.DiagnosticRequest.Builder.class);
+ internal_static_openxc_DiagnosticResponse_descriptor =
+ getDescriptor().getMessageTypes().get(15);
+ internal_static_openxc_DiagnosticResponse_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_openxc_DiagnosticResponse_descriptor,
+ new java.lang.String[] { "Bus", "MessageId", "Mode", "Pid", "Success", "NegativeResponseCode", "Payload", "Value", },
+ com.openxc.BinaryMessages.DiagnosticResponse.class,
+ com.openxc.BinaryMessages.DiagnosticResponse.Builder.class);
+ internal_static_openxc_DynamicField_descriptor =
+ getDescriptor().getMessageTypes().get(16);
+ internal_static_openxc_DynamicField_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_openxc_DynamicField_descriptor,
+ new java.lang.String[] { "Type", "StringValue", "NumericValue", "BooleanValue", },
+ com.openxc.BinaryMessages.DynamicField.class,
+ com.openxc.BinaryMessages.DynamicField.Builder.class);
+ internal_static_openxc_SimpleMessage_descriptor =
+ getDescriptor().getMessageTypes().get(17);
+ internal_static_openxc_SimpleMessage_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_openxc_SimpleMessage_descriptor,
+ new java.lang.String[] { "Name", "Value", "Event", },
+ com.openxc.BinaryMessages.SimpleMessage.class,
+ com.openxc.BinaryMessages.SimpleMessage.Builder.class);
+ 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/CAN-binder/libs/openxc-message-format/gen/python/openxc_pb2.py b/CAN-binder/libs/openxc-message-format/gen/python/openxc_pb2.py
new file mode 100644
index 00000000..cd5ec5f0
--- /dev/null
+++ b/CAN-binder/libs/openxc-message-format/gen/python/openxc_pb2.py
@@ -0,0 +1,1316 @@
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+
+from google.protobuf import descriptor
+from google.protobuf import message
+from google.protobuf import reflection
+from google.protobuf import descriptor_pb2
+# @@protoc_insertion_point(imports)
+
+
+
+DESCRIPTOR = descriptor.FileDescriptor(
+ name='openxc.proto',
+ package='openxc',
+ serialized_pb='\n\x0copenxc.proto\x12\x06openxc\"\x9b\x03\n\x0eVehicleMessage\x12)\n\x04type\x18\x01 \x01(\x0e\x32\x1b.openxc.VehicleMessage.Type\x12\'\n\x0b\x63\x61n_message\x18\x02 \x01(\x0b\x32\x12.openxc.CanMessage\x12-\n\x0esimple_message\x18\x03 \x01(\x0b\x32\x15.openxc.SimpleMessage\x12\x37\n\x13\x64iagnostic_response\x18\x04 \x01(\x0b\x32\x1a.openxc.DiagnosticResponse\x12/\n\x0f\x63ontrol_command\x18\x05 \x01(\x0b\x32\x16.openxc.ControlCommand\x12\x31\n\x10\x63ommand_response\x18\x06 \x01(\x0b\x32\x17.openxc.CommandResponse\x12\x11\n\ttimestamp\x18\x07 \x01(\x04\"V\n\x04Type\x12\x07\n\x03\x43\x41N\x10\x01\x12\n\n\x06SIMPLE\x10\x02\x12\x0e\n\nDIAGNOSTIC\x10\x03\x12\x13\n\x0f\x43ONTROL_COMMAND\x10\x04\x12\x14\n\x10\x43OMMAND_RESPONSE\x10\x05\"\x94\x01\n\nCanMessage\x12\x0b\n\x03\x62us\x18\x01 \x01(\x05\x12\n\n\x02id\x18\x02 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\x12\x34\n\x0c\x66rame_format\x18\x04 \x01(\x0e\x32\x1e.openxc.CanMessage.FrameFormat\")\n\x0b\x46rameFormat\x12\x0c\n\x08STANDARD\x10\x01\x12\x0c\n\x08\x45XTENDED\x10\x02\"\x97\x06\n\x0e\x43ontrolCommand\x12)\n\x04type\x18\x01 \x01(\x0e\x32\x1b.openxc.ControlCommand.Type\x12<\n\x12\x64iagnostic_request\x18\x02 \x01(\x0b\x32 .openxc.DiagnosticControlCommand\x12G\n\x18passthrough_mode_request\x18\x03 \x01(\x0b\x32%.openxc.PassthroughModeControlCommand\x12O\n acceptance_filter_bypass_command\x18\x04 \x01(\x0b\x32%.openxc.AcceptanceFilterBypassCommand\x12<\n\x16payload_format_command\x18\x05 \x01(\x0b\x32\x1c.openxc.PayloadFormatCommand\x12O\n predefined_obd2_requests_command\x18\x06 \x01(\x0b\x32%.openxc.PredefinedObd2RequestsCommand\x12\x46\n\x1bmodem_configuration_command\x18\x07 \x01(\x0b\x32!.openxc.ModemConfigurationCommand\x12\x42\n\x19rtc_configuration_command\x18\x08 \x01(\x0b\x32\x1f.openxc.RTCConfigurationCommand\"\xe6\x01\n\x04Type\x12\x0b\n\x07VERSION\x10\x01\x12\r\n\tDEVICE_ID\x10\x02\x12\x0e\n\nDIAGNOSTIC\x10\x03\x12\x0f\n\x0bPASSTHROUGH\x10\x04\x12\x1c\n\x18\x41\x43\x43\x45PTANCE_FILTER_BYPASS\x10\x05\x12\x12\n\x0ePAYLOAD_FORMAT\x10\x06\x12\x1c\n\x18PREDEFINED_OBD2_REQUESTS\x10\x07\x12\x17\n\x13MODEM_CONFIGURATION\x10\x08\x12\x15\n\x11RTC_CONFIGURATION\x10\t\x12\x13\n\x0fSD_MOUNT_STATUS\x10\n\x12\x0c\n\x08PLATFORM\x10\x0b\"\x9e\x01\n\x18\x44iagnosticControlCommand\x12*\n\x07request\x18\x01 \x01(\x0b\x32\x19.openxc.DiagnosticRequest\x12\x37\n\x06\x61\x63tion\x18\x02 \x01(\x0e\x32\'.openxc.DiagnosticControlCommand.Action\"\x1d\n\x06\x41\x63tion\x12\x07\n\x03\x41\x44\x44\x10\x01\x12\n\n\x06\x43\x41NCEL\x10\x02\"=\n\x1dPassthroughModeControlCommand\x12\x0b\n\x03\x62us\x18\x01 \x01(\x05\x12\x0f\n\x07\x65nabled\x18\x02 \x01(\x08\"<\n\x1d\x41\x63\x63\x65ptanceFilterBypassCommand\x12\x0b\n\x03\x62us\x18\x01 \x01(\x05\x12\x0e\n\x06\x62ypass\x18\x02 \x01(\x08\"\x8c\x01\n\x14PayloadFormatCommand\x12:\n\x06\x66ormat\x18\x01 \x01(\x0e\x32*.openxc.PayloadFormatCommand.PayloadFormat\"8\n\rPayloadFormat\x12\x08\n\x04JSON\x10\x01\x12\x0c\n\x08PROTOBUF\x10\x02\x12\x0f\n\x0bMESSAGEPACK\x10\x03\"0\n\x1dPredefinedObd2RequestsCommand\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\"\xd1\x03\n\x17NetworkOperatorSettings\x12\x18\n\x10\x61llowDataRoaming\x18\x01 \x01(\x08\x12N\n\x12operatorSelectMode\x18\x02 \x01(\x0e\x32\x32.openxc.NetworkOperatorSettings.OperatorSelectMode\x12L\n\x11networkDescriptor\x18\x03 \x01(\x0b\x32\x31.openxc.NetworkOperatorSettings.NetworkDescriptor\x1a\x98\x01\n\x11NetworkDescriptor\x12\x0c\n\x04PLMN\x18\x01 \x01(\r\x12R\n\x0bnetworkType\x18\x02 \x01(\x0e\x32=.openxc.NetworkOperatorSettings.NetworkDescriptor.NetworkType\"!\n\x0bNetworkType\x12\x07\n\x03GSM\x10\x00\x12\t\n\x05UTRAN\x10\x02\"c\n\x12OperatorSelectMode\x12\r\n\tAUTOMATIC\x10\x00\x12\n\n\x06MANUAL\x10\x01\x12\x0e\n\nDEREGISTER\x10\x02\x12\x0c\n\x08SET_ONLY\x10\x03\x12\x14\n\x10MANUAL_AUTOMATIC\x10\x04\"\"\n\x13NetworkDataSettings\x12\x0b\n\x03\x41PN\x18\x01 \x01(\t\"3\n\x15ServerConnectSettings\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x0c\n\x04port\x18\x02 \x01(\r\"\xd5\x01\n\x19ModemConfigurationCommand\x12@\n\x17networkOperatorSettings\x18\x01 \x01(\x0b\x32\x1f.openxc.NetworkOperatorSettings\x12\x38\n\x13networkDataSettings\x18\x02 \x01(\x0b\x32\x1b.openxc.NetworkDataSettings\x12<\n\x15serverConnectSettings\x18\x03 \x01(\x0b\x32\x1d.openxc.ServerConnectSettings\",\n\x17RTCConfigurationCommand\x12\x11\n\tunix_time\x18\x01 \x01(\r\"]\n\x0f\x43ommandResponse\x12)\n\x04type\x18\x01 \x01(\x0e\x32\x1b.openxc.ControlCommand.Type\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\x08\"\xfd\x01\n\x11\x44iagnosticRequest\x12\x0b\n\x03\x62us\x18\x01 \x01(\x05\x12\x12\n\nmessage_id\x18\x02 \x01(\r\x12\x0c\n\x04mode\x18\x03 \x01(\r\x12\x0b\n\x03pid\x18\x04 \x01(\r\x12\x0f\n\x07payload\x18\x05 \x01(\x0c\x12\x1a\n\x12multiple_responses\x18\x06 \x01(\x08\x12\x11\n\tfrequency\x18\x07 \x01(\x01\x12\x0c\n\x04name\x18\x08 \x01(\t\x12;\n\x0c\x64\x65\x63oded_type\x18\t \x01(\x0e\x32%.openxc.DiagnosticRequest.DecodedType\"!\n\x0b\x44\x65\x63odedType\x12\x08\n\x04NONE\x10\x01\x12\x08\n\x04OBD2\x10\x02\"\xa1\x01\n\x12\x44iagnosticResponse\x12\x0b\n\x03\x62us\x18\x01 \x01(\x05\x12\x12\n\nmessage_id\x18\x02 \x01(\r\x12\x0c\n\x04mode\x18\x03 \x01(\r\x12\x0b\n\x03pid\x18\x04 \x01(\r\x12\x0f\n\x07success\x18\x05 \x01(\x08\x12\x1e\n\x16negative_response_code\x18\x06 \x01(\r\x12\x0f\n\x07payload\x18\x07 \x01(\x0c\x12\r\n\x05value\x18\x08 \x01(\x01\"\xa2\x01\n\x0c\x44ynamicField\x12\'\n\x04type\x18\x01 \x01(\x0e\x32\x19.openxc.DynamicField.Type\x12\x14\n\x0cstring_value\x18\x02 \x01(\t\x12\x15\n\rnumeric_value\x18\x03 \x01(\x01\x12\x15\n\rboolean_value\x18\x04 \x01(\x08\"%\n\x04Type\x12\n\n\x06STRING\x10\x01\x12\x07\n\x03NUM\x10\x02\x12\x08\n\x04\x42OOL\x10\x03\"g\n\rSimpleMessage\x12\x0c\n\x04name\x18\x01 \x01(\t\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.openxc.DynamicField\x12#\n\x05\x65vent\x18\x03 \x01(\x0b\x32\x14.openxc.DynamicFieldB\x1c\n\ncom.openxcB\x0e\x42inaryMessages')
+
+
+
+_VEHICLEMESSAGE_TYPE = descriptor.EnumDescriptor(
+ name='Type',
+ full_name='openxc.VehicleMessage.Type',
+ filename=None,
+ file=DESCRIPTOR,
+ values=[
+ descriptor.EnumValueDescriptor(
+ name='CAN', index=0, number=1,
+ options=None,
+ type=None),
+ descriptor.EnumValueDescriptor(
+ name='SIMPLE', index=1, number=2,
+ options=None,
+ type=None),
+ descriptor.EnumValueDescriptor(
+ name='DIAGNOSTIC', index=2, number=3,
+ options=None,
+ type=None),
+ descriptor.EnumValueDescriptor(
+ name='CONTROL_COMMAND', index=3, number=4,
+ options=None,
+ type=None),
+ descriptor.EnumValueDescriptor(
+ name='COMMAND_RESPONSE', index=4, number=5,
+ options=None,
+ type=None),
+ ],
+ containing_type=None,
+ options=None,
+ serialized_start=350,
+ serialized_end=436,
+)
+
+_CANMESSAGE_FRAMEFORMAT = descriptor.EnumDescriptor(
+ name='FrameFormat',
+ full_name='openxc.CanMessage.FrameFormat',
+ filename=None,
+ file=DESCRIPTOR,
+ values=[
+ descriptor.EnumValueDescriptor(
+ name='STANDARD', index=0, number=1,
+ options=None,
+ type=None),
+ descriptor.EnumValueDescriptor(
+ name='EXTENDED', index=1, number=2,
+ options=None,
+ type=None),
+ ],
+ containing_type=None,
+ options=None,
+ serialized_start=546,
+ serialized_end=587,
+)
+
+_CONTROLCOMMAND_TYPE = descriptor.EnumDescriptor(
+ name='Type',
+ full_name='openxc.ControlCommand.Type',
+ filename=None,
+ file=DESCRIPTOR,
+ values=[
+ descriptor.EnumValueDescriptor(
+ name='VERSION', index=0, number=1,
+ options=None,
+ type=None),
+ descriptor.EnumValueDescriptor(
+ name='DEVICE_ID', index=1, number=2,
+ options=None,
+ type=None),
+ descriptor.EnumValueDescriptor(
+ name='DIAGNOSTIC', index=2, number=3,
+ options=None,
+ type=None),
+ descriptor.EnumValueDescriptor(
+ name='PASSTHROUGH', index=3, number=4,
+ options=None,
+ type=None),
+ descriptor.EnumValueDescriptor(
+ name='ACCEPTANCE_FILTER_BYPASS', index=4, number=5,
+ options=None,
+ type=None),
+ descriptor.EnumValueDescriptor(
+ name='PAYLOAD_FORMAT', index=5, number=6,
+ options=None,
+ type=None),
+ descriptor.EnumValueDescriptor(
+ name='PREDEFINED_OBD2_REQUESTS', index=6, number=7,
+ options=None,
+ type=None),
+ descriptor.EnumValueDescriptor(
+ name='MODEM_CONFIGURATION', index=7, number=8,
+ options=None,
+ type=None),
+ descriptor.EnumValueDescriptor(
+ name='RTC_CONFIGURATION', index=8, number=9,
+ options=None,
+ type=None),
+ descriptor.EnumValueDescriptor(
+ name='SD_MOUNT_STATUS', index=9, number=10,
+ options=None,
+ type=None),
+ descriptor.EnumValueDescriptor(
+ name='PLATFORM', index=10, number=11,
+ options=None,
+ type=None),
+ ],
+ containing_type=None,
+ options=None,
+ serialized_start=1151,
+ serialized_end=1381,
+)
+
+_DIAGNOSTICCONTROLCOMMAND_ACTION = descriptor.EnumDescriptor(
+ name='Action',
+ full_name='openxc.DiagnosticControlCommand.Action',
+ filename=None,
+ file=DESCRIPTOR,
+ values=[
+ descriptor.EnumValueDescriptor(
+ name='ADD', index=0, number=1,
+ options=None,
+ type=None),
+ descriptor.EnumValueDescriptor(
+ name='CANCEL', index=1, number=2,
+ options=None,
+ type=None),
+ ],
+ containing_type=None,
+ options=None,
+ serialized_start=1513,
+ serialized_end=1542,
+)
+
+_PAYLOADFORMATCOMMAND_PAYLOADFORMAT = descriptor.EnumDescriptor(
+ name='PayloadFormat',
+ full_name='openxc.PayloadFormatCommand.PayloadFormat',
+ filename=None,
+ file=DESCRIPTOR,
+ values=[
+ descriptor.EnumValueDescriptor(
+ name='JSON', index=0, number=1,
+ options=None,
+ type=None),
+ descriptor.EnumValueDescriptor(
+ name='PROTOBUF', index=1, number=2,
+ options=None,
+ type=None),
+ descriptor.EnumValueDescriptor(
+ name='MESSAGEPACK', index=2, number=3,
+ options=None,
+ type=None),
+ ],
+ containing_type=None,
+ options=None,
+ serialized_start=1754,
+ serialized_end=1810,
+)
+
+_NETWORKOPERATORSETTINGS_NETWORKDESCRIPTOR_NETWORKTYPE = descriptor.EnumDescriptor(
+ name='NetworkType',
+ full_name='openxc.NetworkOperatorSettings.NetworkDescriptor.NetworkType',
+ filename=None,
+ file=DESCRIPTOR,
+ values=[
+ descriptor.EnumValueDescriptor(
+ name='GSM', index=0, number=0,
+ options=None,
+ type=None),
+ descriptor.EnumValueDescriptor(
+ name='UTRAN', index=1, number=2,
+ options=None,
+ type=None),
+ ],
+ containing_type=None,
+ options=None,
+ serialized_start=2194,
+ serialized_end=2227,
+)
+
+_NETWORKOPERATORSETTINGS_OPERATORSELECTMODE = descriptor.EnumDescriptor(
+ name='OperatorSelectMode',
+ full_name='openxc.NetworkOperatorSettings.OperatorSelectMode',
+ filename=None,
+ file=DESCRIPTOR,
+ values=[
+ descriptor.EnumValueDescriptor(
+ name='AUTOMATIC', index=0, number=0,
+ options=None,
+ type=None),
+ descriptor.EnumValueDescriptor(
+ name='MANUAL', index=1, number=1,
+ options=None,
+ type=None),
+ descriptor.EnumValueDescriptor(
+ name='DEREGISTER', index=2, number=2,
+ options=None,
+ type=None),
+ descriptor.EnumValueDescriptor(
+ name='SET_ONLY', index=3, number=3,
+ options=None,
+ type=None),
+ descriptor.EnumValueDescriptor(
+ name='MANUAL_AUTOMATIC', index=4, number=4,
+ options=None,
+ type=None),
+ ],
+ containing_type=None,
+ options=None,
+ serialized_start=2229,
+ serialized_end=2328,
+)
+
+_DIAGNOSTICREQUEST_DECODEDTYPE = descriptor.EnumDescriptor(
+ name='DecodedType',
+ full_name='openxc.DiagnosticRequest.DecodedType',
+ filename=None,
+ file=DESCRIPTOR,
+ values=[
+ descriptor.EnumValueDescriptor(
+ name='NONE', index=0, number=1,
+ options=None,
+ type=None),
+ descriptor.EnumValueDescriptor(
+ name='OBD2', index=1, number=2,
+ options=None,
+ type=None),
+ ],
+ containing_type=None,
+ options=None,
+ serialized_start=2997,
+ serialized_end=3030,
+)
+
+_DYNAMICFIELD_TYPE = descriptor.EnumDescriptor(
+ name='Type',
+ full_name='openxc.DynamicField.Type',
+ filename=None,
+ file=DESCRIPTOR,
+ values=[
+ descriptor.EnumValueDescriptor(
+ name='STRING', index=0, number=1,
+ options=None,
+ type=None),
+ descriptor.EnumValueDescriptor(
+ name='NUM', index=1, number=2,
+ options=None,
+ type=None),
+ descriptor.EnumValueDescriptor(
+ name='BOOL', index=2, number=3,
+ options=None,
+ type=None),
+ ],
+ containing_type=None,
+ options=None,
+ serialized_start=3322,
+ serialized_end=3359,
+)
+
+
+_VEHICLEMESSAGE = descriptor.Descriptor(
+ name='VehicleMessage',
+ full_name='openxc.VehicleMessage',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ descriptor.FieldDescriptor(
+ name='type', full_name='openxc.VehicleMessage.type', index=0,
+ number=1, type=14, cpp_type=8, label=1,
+ has_default_value=False, default_value=1,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='can_message', full_name='openxc.VehicleMessage.can_message', index=1,
+ number=2, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='simple_message', full_name='openxc.VehicleMessage.simple_message', index=2,
+ number=3, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='diagnostic_response', full_name='openxc.VehicleMessage.diagnostic_response', index=3,
+ number=4, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='control_command', full_name='openxc.VehicleMessage.control_command', index=4,
+ number=5, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='command_response', full_name='openxc.VehicleMessage.command_response', index=5,
+ number=6, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='timestamp', full_name='openxc.VehicleMessage.timestamp', index=6,
+ number=7, type=4, cpp_type=4, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ _VEHICLEMESSAGE_TYPE,
+ ],
+ options=None,
+ is_extendable=False,
+ extension_ranges=[],
+ serialized_start=25,
+ serialized_end=436,
+)
+
+
+_CANMESSAGE = descriptor.Descriptor(
+ name='CanMessage',
+ full_name='openxc.CanMessage',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ descriptor.FieldDescriptor(
+ name='bus', full_name='openxc.CanMessage.bus', index=0,
+ number=1, type=5, cpp_type=1, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='id', full_name='openxc.CanMessage.id', index=1,
+ number=2, type=13, cpp_type=3, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='data', full_name='openxc.CanMessage.data', index=2,
+ number=3, type=12, cpp_type=9, label=1,
+ has_default_value=False, default_value="",
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='frame_format', full_name='openxc.CanMessage.frame_format', index=3,
+ number=4, type=14, cpp_type=8, label=1,
+ has_default_value=False, default_value=1,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ _CANMESSAGE_FRAMEFORMAT,
+ ],
+ options=None,
+ is_extendable=False,
+ extension_ranges=[],
+ serialized_start=439,
+ serialized_end=587,
+)
+
+
+_CONTROLCOMMAND = descriptor.Descriptor(
+ name='ControlCommand',
+ full_name='openxc.ControlCommand',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ descriptor.FieldDescriptor(
+ name='type', full_name='openxc.ControlCommand.type', index=0,
+ number=1, type=14, cpp_type=8, label=1,
+ has_default_value=False, default_value=1,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='diagnostic_request', full_name='openxc.ControlCommand.diagnostic_request', index=1,
+ number=2, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='passthrough_mode_request', full_name='openxc.ControlCommand.passthrough_mode_request', index=2,
+ number=3, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='acceptance_filter_bypass_command', full_name='openxc.ControlCommand.acceptance_filter_bypass_command', index=3,
+ number=4, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='payload_format_command', full_name='openxc.ControlCommand.payload_format_command', index=4,
+ number=5, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='predefined_obd2_requests_command', full_name='openxc.ControlCommand.predefined_obd2_requests_command', index=5,
+ number=6, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='modem_configuration_command', full_name='openxc.ControlCommand.modem_configuration_command', index=6,
+ number=7, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='rtc_configuration_command', full_name='openxc.ControlCommand.rtc_configuration_command', index=7,
+ number=8, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ _CONTROLCOMMAND_TYPE,
+ ],
+ options=None,
+ is_extendable=False,
+ extension_ranges=[],
+ serialized_start=590,
+ serialized_end=1381,
+)
+
+
+_DIAGNOSTICCONTROLCOMMAND = descriptor.Descriptor(
+ name='DiagnosticControlCommand',
+ full_name='openxc.DiagnosticControlCommand',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ descriptor.FieldDescriptor(
+ name='request', full_name='openxc.DiagnosticControlCommand.request', index=0,
+ number=1, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='action', full_name='openxc.DiagnosticControlCommand.action', index=1,
+ number=2, type=14, cpp_type=8, label=1,
+ has_default_value=False, default_value=1,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ _DIAGNOSTICCONTROLCOMMAND_ACTION,
+ ],
+ options=None,
+ is_extendable=False,
+ extension_ranges=[],
+ serialized_start=1384,
+ serialized_end=1542,
+)
+
+
+_PASSTHROUGHMODECONTROLCOMMAND = descriptor.Descriptor(
+ name='PassthroughModeControlCommand',
+ full_name='openxc.PassthroughModeControlCommand',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ descriptor.FieldDescriptor(
+ name='bus', full_name='openxc.PassthroughModeControlCommand.bus', index=0,
+ number=1, type=5, cpp_type=1, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='enabled', full_name='openxc.PassthroughModeControlCommand.enabled', index=1,
+ number=2, type=8, cpp_type=7, label=1,
+ has_default_value=False, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ extension_ranges=[],
+ serialized_start=1544,
+ serialized_end=1605,
+)
+
+
+_ACCEPTANCEFILTERBYPASSCOMMAND = descriptor.Descriptor(
+ name='AcceptanceFilterBypassCommand',
+ full_name='openxc.AcceptanceFilterBypassCommand',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ descriptor.FieldDescriptor(
+ name='bus', full_name='openxc.AcceptanceFilterBypassCommand.bus', index=0,
+ number=1, type=5, cpp_type=1, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='bypass', full_name='openxc.AcceptanceFilterBypassCommand.bypass', index=1,
+ number=2, type=8, cpp_type=7, label=1,
+ has_default_value=False, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ extension_ranges=[],
+ serialized_start=1607,
+ serialized_end=1667,
+)
+
+
+_PAYLOADFORMATCOMMAND = descriptor.Descriptor(
+ name='PayloadFormatCommand',
+ full_name='openxc.PayloadFormatCommand',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ descriptor.FieldDescriptor(
+ name='format', full_name='openxc.PayloadFormatCommand.format', index=0,
+ number=1, type=14, cpp_type=8, label=1,
+ has_default_value=False, default_value=1,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ _PAYLOADFORMATCOMMAND_PAYLOADFORMAT,
+ ],
+ options=None,
+ is_extendable=False,
+ extension_ranges=[],
+ serialized_start=1670,
+ serialized_end=1810,
+)
+
+
+_PREDEFINEDOBD2REQUESTSCOMMAND = descriptor.Descriptor(
+ name='PredefinedObd2RequestsCommand',
+ full_name='openxc.PredefinedObd2RequestsCommand',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ descriptor.FieldDescriptor(
+ name='enabled', full_name='openxc.PredefinedObd2RequestsCommand.enabled', index=0,
+ number=1, type=8, cpp_type=7, label=1,
+ has_default_value=False, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ extension_ranges=[],
+ serialized_start=1812,
+ serialized_end=1860,
+)
+
+
+_NETWORKOPERATORSETTINGS_NETWORKDESCRIPTOR = descriptor.Descriptor(
+ name='NetworkDescriptor',
+ full_name='openxc.NetworkOperatorSettings.NetworkDescriptor',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ descriptor.FieldDescriptor(
+ name='PLMN', full_name='openxc.NetworkOperatorSettings.NetworkDescriptor.PLMN', index=0,
+ number=1, type=13, cpp_type=3, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='networkType', full_name='openxc.NetworkOperatorSettings.NetworkDescriptor.networkType', index=1,
+ number=2, type=14, cpp_type=8, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ _NETWORKOPERATORSETTINGS_NETWORKDESCRIPTOR_NETWORKTYPE,
+ ],
+ options=None,
+ is_extendable=False,
+ extension_ranges=[],
+ serialized_start=2075,
+ serialized_end=2227,
+)
+
+_NETWORKOPERATORSETTINGS = descriptor.Descriptor(
+ name='NetworkOperatorSettings',
+ full_name='openxc.NetworkOperatorSettings',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ descriptor.FieldDescriptor(
+ name='allowDataRoaming', full_name='openxc.NetworkOperatorSettings.allowDataRoaming', index=0,
+ number=1, type=8, cpp_type=7, label=1,
+ has_default_value=False, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='operatorSelectMode', full_name='openxc.NetworkOperatorSettings.operatorSelectMode', index=1,
+ number=2, type=14, cpp_type=8, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='networkDescriptor', full_name='openxc.NetworkOperatorSettings.networkDescriptor', index=2,
+ number=3, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[_NETWORKOPERATORSETTINGS_NETWORKDESCRIPTOR, ],
+ enum_types=[
+ _NETWORKOPERATORSETTINGS_OPERATORSELECTMODE,
+ ],
+ options=None,
+ is_extendable=False,
+ extension_ranges=[],
+ serialized_start=1863,
+ serialized_end=2328,
+)
+
+
+_NETWORKDATASETTINGS = descriptor.Descriptor(
+ name='NetworkDataSettings',
+ full_name='openxc.NetworkDataSettings',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ descriptor.FieldDescriptor(
+ name='APN', full_name='openxc.NetworkDataSettings.APN', index=0,
+ number=1, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=unicode("", "utf-8"),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ extension_ranges=[],
+ serialized_start=2330,
+ serialized_end=2364,
+)
+
+
+_SERVERCONNECTSETTINGS = descriptor.Descriptor(
+ name='ServerConnectSettings',
+ full_name='openxc.ServerConnectSettings',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ descriptor.FieldDescriptor(
+ name='host', full_name='openxc.ServerConnectSettings.host', index=0,
+ number=1, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=unicode("", "utf-8"),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='port', full_name='openxc.ServerConnectSettings.port', index=1,
+ number=2, type=13, cpp_type=3, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ extension_ranges=[],
+ serialized_start=2366,
+ serialized_end=2417,
+)
+
+
+_MODEMCONFIGURATIONCOMMAND = descriptor.Descriptor(
+ name='ModemConfigurationCommand',
+ full_name='openxc.ModemConfigurationCommand',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ descriptor.FieldDescriptor(
+ name='networkOperatorSettings', full_name='openxc.ModemConfigurationCommand.networkOperatorSettings', index=0,
+ number=1, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='networkDataSettings', full_name='openxc.ModemConfigurationCommand.networkDataSettings', index=1,
+ number=2, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='serverConnectSettings', full_name='openxc.ModemConfigurationCommand.serverConnectSettings', index=2,
+ number=3, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ extension_ranges=[],
+ serialized_start=2420,
+ serialized_end=2633,
+)
+
+
+_RTCCONFIGURATIONCOMMAND = descriptor.Descriptor(
+ name='RTCConfigurationCommand',
+ full_name='openxc.RTCConfigurationCommand',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ descriptor.FieldDescriptor(
+ name='unix_time', full_name='openxc.RTCConfigurationCommand.unix_time', index=0,
+ number=1, type=13, cpp_type=3, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ extension_ranges=[],
+ serialized_start=2635,
+ serialized_end=2679,
+)
+
+
+_COMMANDRESPONSE = descriptor.Descriptor(
+ name='CommandResponse',
+ full_name='openxc.CommandResponse',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ descriptor.FieldDescriptor(
+ name='type', full_name='openxc.CommandResponse.type', index=0,
+ number=1, type=14, cpp_type=8, label=1,
+ has_default_value=False, default_value=1,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='message', full_name='openxc.CommandResponse.message', index=1,
+ number=2, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=unicode("", "utf-8"),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='status', full_name='openxc.CommandResponse.status', index=2,
+ number=3, type=8, cpp_type=7, label=1,
+ has_default_value=False, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ extension_ranges=[],
+ serialized_start=2681,
+ serialized_end=2774,
+)
+
+
+_DIAGNOSTICREQUEST = descriptor.Descriptor(
+ name='DiagnosticRequest',
+ full_name='openxc.DiagnosticRequest',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ descriptor.FieldDescriptor(
+ name='bus', full_name='openxc.DiagnosticRequest.bus', index=0,
+ number=1, type=5, cpp_type=1, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='message_id', full_name='openxc.DiagnosticRequest.message_id', index=1,
+ number=2, type=13, cpp_type=3, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='mode', full_name='openxc.DiagnosticRequest.mode', index=2,
+ number=3, type=13, cpp_type=3, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='pid', full_name='openxc.DiagnosticRequest.pid', index=3,
+ number=4, type=13, cpp_type=3, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='payload', full_name='openxc.DiagnosticRequest.payload', index=4,
+ number=5, type=12, cpp_type=9, label=1,
+ has_default_value=False, default_value="",
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='multiple_responses', full_name='openxc.DiagnosticRequest.multiple_responses', index=5,
+ number=6, type=8, cpp_type=7, label=1,
+ has_default_value=False, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='frequency', full_name='openxc.DiagnosticRequest.frequency', index=6,
+ number=7, type=1, cpp_type=5, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='name', full_name='openxc.DiagnosticRequest.name', index=7,
+ number=8, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=unicode("", "utf-8"),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='decoded_type', full_name='openxc.DiagnosticRequest.decoded_type', index=8,
+ number=9, type=14, cpp_type=8, label=1,
+ has_default_value=False, default_value=1,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ _DIAGNOSTICREQUEST_DECODEDTYPE,
+ ],
+ options=None,
+ is_extendable=False,
+ extension_ranges=[],
+ serialized_start=2777,
+ serialized_end=3030,
+)
+
+
+_DIAGNOSTICRESPONSE = descriptor.Descriptor(
+ name='DiagnosticResponse',
+ full_name='openxc.DiagnosticResponse',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ descriptor.FieldDescriptor(
+ name='bus', full_name='openxc.DiagnosticResponse.bus', index=0,
+ number=1, type=5, cpp_type=1, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='message_id', full_name='openxc.DiagnosticResponse.message_id', index=1,
+ number=2, type=13, cpp_type=3, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='mode', full_name='openxc.DiagnosticResponse.mode', index=2,
+ number=3, type=13, cpp_type=3, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='pid', full_name='openxc.DiagnosticResponse.pid', index=3,
+ number=4, type=13, cpp_type=3, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='success', full_name='openxc.DiagnosticResponse.success', index=4,
+ number=5, type=8, cpp_type=7, label=1,
+ has_default_value=False, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='negative_response_code', full_name='openxc.DiagnosticResponse.negative_response_code', index=5,
+ number=6, type=13, cpp_type=3, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='payload', full_name='openxc.DiagnosticResponse.payload', index=6,
+ number=7, type=12, cpp_type=9, label=1,
+ has_default_value=False, default_value="",
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='value', full_name='openxc.DiagnosticResponse.value', index=7,
+ number=8, type=1, cpp_type=5, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ extension_ranges=[],
+ serialized_start=3033,
+ serialized_end=3194,
+)
+
+
+_DYNAMICFIELD = descriptor.Descriptor(
+ name='DynamicField',
+ full_name='openxc.DynamicField',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ descriptor.FieldDescriptor(
+ name='type', full_name='openxc.DynamicField.type', index=0,
+ number=1, type=14, cpp_type=8, label=1,
+ has_default_value=False, default_value=1,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='string_value', full_name='openxc.DynamicField.string_value', index=1,
+ number=2, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=unicode("", "utf-8"),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='numeric_value', full_name='openxc.DynamicField.numeric_value', index=2,
+ number=3, type=1, cpp_type=5, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='boolean_value', full_name='openxc.DynamicField.boolean_value', index=3,
+ number=4, type=8, cpp_type=7, label=1,
+ has_default_value=False, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ _DYNAMICFIELD_TYPE,
+ ],
+ options=None,
+ is_extendable=False,
+ extension_ranges=[],
+ serialized_start=3197,
+ serialized_end=3359,
+)
+
+
+_SIMPLEMESSAGE = descriptor.Descriptor(
+ name='SimpleMessage',
+ full_name='openxc.SimpleMessage',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ descriptor.FieldDescriptor(
+ name='name', full_name='openxc.SimpleMessage.name', index=0,
+ number=1, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=unicode("", "utf-8"),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='value', full_name='openxc.SimpleMessage.value', index=1,
+ number=2, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ descriptor.FieldDescriptor(
+ name='event', full_name='openxc.SimpleMessage.event', index=2,
+ number=3, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ options=None),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ options=None,
+ is_extendable=False,
+ extension_ranges=[],
+ serialized_start=3361,
+ serialized_end=3464,
+)
+
+_VEHICLEMESSAGE.fields_by_name['type'].enum_type = _VEHICLEMESSAGE_TYPE
+_VEHICLEMESSAGE.fields_by_name['can_message'].message_type = _CANMESSAGE
+_VEHICLEMESSAGE.fields_by_name['simple_message'].message_type = _SIMPLEMESSAGE
+_VEHICLEMESSAGE.fields_by_name['diagnostic_response'].message_type = _DIAGNOSTICRESPONSE
+_VEHICLEMESSAGE.fields_by_name['control_command'].message_type = _CONTROLCOMMAND
+_VEHICLEMESSAGE.fields_by_name['command_response'].message_type = _COMMANDRESPONSE
+_VEHICLEMESSAGE_TYPE.containing_type = _VEHICLEMESSAGE;
+_CANMESSAGE.fields_by_name['frame_format'].enum_type = _CANMESSAGE_FRAMEFORMAT
+_CANMESSAGE_FRAMEFORMAT.containing_type = _CANMESSAGE;
+_CONTROLCOMMAND.fields_by_name['type'].enum_type = _CONTROLCOMMAND_TYPE
+_CONTROLCOMMAND.fields_by_name['diagnostic_request'].message_type = _DIAGNOSTICCONTROLCOMMAND
+_CONTROLCOMMAND.fields_by_name['passthrough_mode_request'].message_type = _PASSTHROUGHMODECONTROLCOMMAND
+_CONTROLCOMMAND.fields_by_name['acceptance_filter_bypass_command'].message_type = _ACCEPTANCEFILTERBYPASSCOMMAND
+_CONTROLCOMMAND.fields_by_name['payload_format_command'].message_type = _PAYLOADFORMATCOMMAND
+_CONTROLCOMMAND.fields_by_name['predefined_obd2_requests_command'].message_type = _PREDEFINEDOBD2REQUESTSCOMMAND
+_CONTROLCOMMAND.fields_by_name['modem_configuration_command'].message_type = _MODEMCONFIGURATIONCOMMAND
+_CONTROLCOMMAND.fields_by_name['rtc_configuration_command'].message_type = _RTCCONFIGURATIONCOMMAND
+_CONTROLCOMMAND_TYPE.containing_type = _CONTROLCOMMAND;
+_DIAGNOSTICCONTROLCOMMAND.fields_by_name['request'].message_type = _DIAGNOSTICREQUEST
+_DIAGNOSTICCONTROLCOMMAND.fields_by_name['action'].enum_type = _DIAGNOSTICCONTROLCOMMAND_ACTION
+_DIAGNOSTICCONTROLCOMMAND_ACTION.containing_type = _DIAGNOSTICCONTROLCOMMAND;
+_PAYLOADFORMATCOMMAND.fields_by_name['format'].enum_type = _PAYLOADFORMATCOMMAND_PAYLOADFORMAT
+_PAYLOADFORMATCOMMAND_PAYLOADFORMAT.containing_type = _PAYLOADFORMATCOMMAND;
+_NETWORKOPERATORSETTINGS_NETWORKDESCRIPTOR.fields_by_name['networkType'].enum_type = _NETWORKOPERATORSETTINGS_NETWORKDESCRIPTOR_NETWORKTYPE
+_NETWORKOPERATORSETTINGS_NETWORKDESCRIPTOR.containing_type = _NETWORKOPERATORSETTINGS;
+_NETWORKOPERATORSETTINGS_NETWORKDESCRIPTOR_NETWORKTYPE.containing_type = _NETWORKOPERATORSETTINGS_NETWORKDESCRIPTOR;
+_NETWORKOPERATORSETTINGS.fields_by_name['operatorSelectMode'].enum_type = _NETWORKOPERATORSETTINGS_OPERATORSELECTMODE
+_NETWORKOPERATORSETTINGS.fields_by_name['networkDescriptor'].message_type = _NETWORKOPERATORSETTINGS_NETWORKDESCRIPTOR
+_NETWORKOPERATORSETTINGS_OPERATORSELECTMODE.containing_type = _NETWORKOPERATORSETTINGS;
+_MODEMCONFIGURATIONCOMMAND.fields_by_name['networkOperatorSettings'].message_type = _NETWORKOPERATORSETTINGS
+_MODEMCONFIGURATIONCOMMAND.fields_by_name['networkDataSettings'].message_type = _NETWORKDATASETTINGS
+_MODEMCONFIGURATIONCOMMAND.fields_by_name['serverConnectSettings'].message_type = _SERVERCONNECTSETTINGS
+_COMMANDRESPONSE.fields_by_name['type'].enum_type = _CONTROLCOMMAND_TYPE
+_DIAGNOSTICREQUEST.fields_by_name['decoded_type'].enum_type = _DIAGNOSTICREQUEST_DECODEDTYPE
+_DIAGNOSTICREQUEST_DECODEDTYPE.containing_type = _DIAGNOSTICREQUEST;
+_DYNAMICFIELD.fields_by_name['type'].enum_type = _DYNAMICFIELD_TYPE
+_DYNAMICFIELD_TYPE.containing_type = _DYNAMICFIELD;
+_SIMPLEMESSAGE.fields_by_name['value'].message_type = _DYNAMICFIELD
+_SIMPLEMESSAGE.fields_by_name['event'].message_type = _DYNAMICFIELD
+DESCRIPTOR.message_types_by_name['VehicleMessage'] = _VEHICLEMESSAGE
+DESCRIPTOR.message_types_by_name['CanMessage'] = _CANMESSAGE
+DESCRIPTOR.message_types_by_name['ControlCommand'] = _CONTROLCOMMAND
+DESCRIPTOR.message_types_by_name['DiagnosticControlCommand'] = _DIAGNOSTICCONTROLCOMMAND
+DESCRIPTOR.message_types_by_name['PassthroughModeControlCommand'] = _PASSTHROUGHMODECONTROLCOMMAND
+DESCRIPTOR.message_types_by_name['AcceptanceFilterBypassCommand'] = _ACCEPTANCEFILTERBYPASSCOMMAND
+DESCRIPTOR.message_types_by_name['PayloadFormatCommand'] = _PAYLOADFORMATCOMMAND
+DESCRIPTOR.message_types_by_name['PredefinedObd2RequestsCommand'] = _PREDEFINEDOBD2REQUESTSCOMMAND
+DESCRIPTOR.message_types_by_name['NetworkOperatorSettings'] = _NETWORKOPERATORSETTINGS
+DESCRIPTOR.message_types_by_name['NetworkDataSettings'] = _NETWORKDATASETTINGS
+DESCRIPTOR.message_types_by_name['ServerConnectSettings'] = _SERVERCONNECTSETTINGS
+DESCRIPTOR.message_types_by_name['ModemConfigurationCommand'] = _MODEMCONFIGURATIONCOMMAND
+DESCRIPTOR.message_types_by_name['RTCConfigurationCommand'] = _RTCCONFIGURATIONCOMMAND
+DESCRIPTOR.message_types_by_name['CommandResponse'] = _COMMANDRESPONSE
+DESCRIPTOR.message_types_by_name['DiagnosticRequest'] = _DIAGNOSTICREQUEST
+DESCRIPTOR.message_types_by_name['DiagnosticResponse'] = _DIAGNOSTICRESPONSE
+DESCRIPTOR.message_types_by_name['DynamicField'] = _DYNAMICFIELD
+DESCRIPTOR.message_types_by_name['SimpleMessage'] = _SIMPLEMESSAGE
+
+class VehicleMessage(message.Message):
+ __metaclass__ = reflection.GeneratedProtocolMessageType
+ DESCRIPTOR = _VEHICLEMESSAGE
+
+ # @@protoc_insertion_point(class_scope:openxc.VehicleMessage)
+
+class CanMessage(message.Message):
+ __metaclass__ = reflection.GeneratedProtocolMessageType
+ DESCRIPTOR = _CANMESSAGE
+
+ # @@protoc_insertion_point(class_scope:openxc.CanMessage)
+
+class ControlCommand(message.Message):
+ __metaclass__ = reflection.GeneratedProtocolMessageType
+ DESCRIPTOR = _CONTROLCOMMAND
+
+ # @@protoc_insertion_point(class_scope:openxc.ControlCommand)
+
+class DiagnosticControlCommand(message.Message):
+ __metaclass__ = reflection.GeneratedProtocolMessageType
+ DESCRIPTOR = _DIAGNOSTICCONTROLCOMMAND
+
+ # @@protoc_insertion_point(class_scope:openxc.DiagnosticControlCommand)
+
+class PassthroughModeControlCommand(message.Message):
+ __metaclass__ = reflection.GeneratedProtocolMessageType
+ DESCRIPTOR = _PASSTHROUGHMODECONTROLCOMMAND
+
+ # @@protoc_insertion_point(class_scope:openxc.PassthroughModeControlCommand)
+
+class AcceptanceFilterBypassCommand(message.Message):
+ __metaclass__ = reflection.GeneratedProtocolMessageType
+ DESCRIPTOR = _ACCEPTANCEFILTERBYPASSCOMMAND
+
+ # @@protoc_insertion_point(class_scope:openxc.AcceptanceFilterBypassCommand)
+
+class PayloadFormatCommand(message.Message):
+ __metaclass__ = reflection.GeneratedProtocolMessageType
+ DESCRIPTOR = _PAYLOADFORMATCOMMAND
+
+ # @@protoc_insertion_point(class_scope:openxc.PayloadFormatCommand)
+
+class PredefinedObd2RequestsCommand(message.Message):
+ __metaclass__ = reflection.GeneratedProtocolMessageType
+ DESCRIPTOR = _PREDEFINEDOBD2REQUESTSCOMMAND
+
+ # @@protoc_insertion_point(class_scope:openxc.PredefinedObd2RequestsCommand)
+
+class NetworkOperatorSettings(message.Message):
+ __metaclass__ = reflection.GeneratedProtocolMessageType
+
+ class NetworkDescriptor(message.Message):
+ __metaclass__ = reflection.GeneratedProtocolMessageType
+ DESCRIPTOR = _NETWORKOPERATORSETTINGS_NETWORKDESCRIPTOR
+
+ # @@protoc_insertion_point(class_scope:openxc.NetworkOperatorSettings.NetworkDescriptor)
+ DESCRIPTOR = _NETWORKOPERATORSETTINGS
+
+ # @@protoc_insertion_point(class_scope:openxc.NetworkOperatorSettings)
+
+class NetworkDataSettings(message.Message):
+ __metaclass__ = reflection.GeneratedProtocolMessageType
+ DESCRIPTOR = _NETWORKDATASETTINGS
+
+ # @@protoc_insertion_point(class_scope:openxc.NetworkDataSettings)
+
+class ServerConnectSettings(message.Message):
+ __metaclass__ = reflection.GeneratedProtocolMessageType
+ DESCRIPTOR = _SERVERCONNECTSETTINGS
+
+ # @@protoc_insertion_point(class_scope:openxc.ServerConnectSettings)
+
+class ModemConfigurationCommand(message.Message):
+ __metaclass__ = reflection.GeneratedProtocolMessageType
+ DESCRIPTOR = _MODEMCONFIGURATIONCOMMAND
+
+ # @@protoc_insertion_point(class_scope:openxc.ModemConfigurationCommand)
+
+class RTCConfigurationCommand(message.Message):
+ __metaclass__ = reflection.GeneratedProtocolMessageType
+ DESCRIPTOR = _RTCCONFIGURATIONCOMMAND
+
+ # @@protoc_insertion_point(class_scope:openxc.RTCConfigurationCommand)
+
+class CommandResponse(message.Message):
+ __metaclass__ = reflection.GeneratedProtocolMessageType
+ DESCRIPTOR = _COMMANDRESPONSE
+
+ # @@protoc_insertion_point(class_scope:openxc.CommandResponse)
+
+class DiagnosticRequest(message.Message):
+ __metaclass__ = reflection.GeneratedProtocolMessageType
+ DESCRIPTOR = _DIAGNOSTICREQUEST
+
+ # @@protoc_insertion_point(class_scope:openxc.DiagnosticRequest)
+
+class DiagnosticResponse(message.Message):
+ __metaclass__ = reflection.GeneratedProtocolMessageType
+ DESCRIPTOR = _DIAGNOSTICRESPONSE
+
+ # @@protoc_insertion_point(class_scope:openxc.DiagnosticResponse)
+
+class DynamicField(message.Message):
+ __metaclass__ = reflection.GeneratedProtocolMessageType
+ DESCRIPTOR = _DYNAMICFIELD
+
+ # @@protoc_insertion_point(class_scope:openxc.DynamicField)
+
+class SimpleMessage(message.Message):
+ __metaclass__ = reflection.GeneratedProtocolMessageType
+ DESCRIPTOR = _SIMPLEMESSAGE
+
+ # @@protoc_insertion_point(class_scope:openxc.SimpleMessage)
+
+# @@protoc_insertion_point(module_scope)
diff --git a/CAN-binder/libs/openxc-message-format/libs/nanopb b/CAN-binder/libs/openxc-message-format/libs/nanopb
new file mode 160000
+Subproject b947dc6e2c0d63a29e83ebf9c8af450d2531aef
diff --git a/CAN-binder/libs/openxc-message-format/openxc.options b/CAN-binder/libs/openxc-message-format/openxc.options
new file mode 100644
index 00000000..53726fc4
--- /dev/null
+++ b/CAN-binder/libs/openxc-message-format/openxc.options
@@ -0,0 +1,10 @@
+openxc.SimpleMessage.name max_size:100
+openxc.DynamicField.string_value max_size:100
+openxc.CommandResponse.message max_size:128
+openxc.DiagnosticResponse.payload max_size:255
+openxc.DiagnosticRequest.name max_size:10
+openxc.DiagnosticRequest.payload max_size:8
+openxc.CanMessage.data max_size:8
+
+openxc.ServerConnectSettings.host max_size:128
+openxc.NetworkDataSettings.apn max_size:64
diff --git a/CAN-binder/libs/openxc-message-format/openxc.proto b/CAN-binder/libs/openxc-message-format/openxc.proto
new file mode 100644
index 00000000..db7164ff
--- /dev/null
+++ b/CAN-binder/libs/openxc-message-format/openxc.proto
@@ -0,0 +1,174 @@
+package openxc;
+
+option java_package = "com.openxc";
+option java_outer_classname = "BinaryMessages";
+
+message VehicleMessage {
+ enum Type { CAN = 1; SIMPLE = 2; DIAGNOSTIC = 3; CONTROL_COMMAND = 4;
+ COMMAND_RESPONSE = 5; }
+
+ optional Type type = 1;
+ optional CanMessage can_message = 2;
+ optional SimpleMessage simple_message = 3;
+ optional DiagnosticResponse diagnostic_response = 4;
+ optional ControlCommand control_command = 5;
+ optional CommandResponse command_response = 6;
+ optional uint64 timestamp = 7;
+}
+
+message CanMessage {
+ enum FrameFormat {
+ STANDARD = 1;
+ EXTENDED = 2;
+ }
+ optional int32 bus = 1;
+ optional uint32 id = 2;
+ optional bytes data = 3;
+ optional FrameFormat frame_format = 4;
+}
+
+message ControlCommand {
+ enum Type {
+ VERSION = 1;
+ DEVICE_ID = 2;
+ DIAGNOSTIC = 3;
+ PASSTHROUGH = 4;
+ ACCEPTANCE_FILTER_BYPASS = 5;
+ PAYLOAD_FORMAT = 6;
+ PREDEFINED_OBD2_REQUESTS = 7;
+ MODEM_CONFIGURATION = 8;
+ RTC_CONFIGURATION = 9;
+ SD_MOUNT_STATUS = 10;
+ PLATFORM = 11;
+ }
+
+ optional Type type = 1;
+ optional DiagnosticControlCommand diagnostic_request = 2;
+ optional PassthroughModeControlCommand passthrough_mode_request = 3;
+ optional AcceptanceFilterBypassCommand acceptance_filter_bypass_command = 4;
+ optional PayloadFormatCommand payload_format_command = 5;
+ optional PredefinedObd2RequestsCommand predefined_obd2_requests_command = 6;
+ optional ModemConfigurationCommand modem_configuration_command = 7;
+ optional RTCConfigurationCommand rtc_configuration_command = 8;
+}
+
+message DiagnosticControlCommand {
+ enum Action { ADD = 1; CANCEL = 2; }
+
+ optional DiagnosticRequest request = 1;
+ optional Action action = 2;
+}
+
+message PassthroughModeControlCommand {
+ optional int32 bus = 1;
+ optional bool enabled = 2;
+}
+
+message AcceptanceFilterBypassCommand {
+ optional int32 bus = 1;
+ optional bool bypass = 2;
+}
+
+message PayloadFormatCommand {
+ enum PayloadFormat {
+ JSON = 1;
+ PROTOBUF = 2;
+ MESSAGEPACK = 3;
+ }
+
+ optional PayloadFormat format = 1;
+}
+
+message PredefinedObd2RequestsCommand {
+ optional bool enabled = 1;
+}
+
+message NetworkOperatorSettings {
+ enum OperatorSelectMode {
+ AUTOMATIC = 0;
+ MANUAL = 1;
+ DEREGISTER = 2;
+ SET_ONLY = 3;
+ MANUAL_AUTOMATIC = 4;
+ }
+ message NetworkDescriptor {
+ enum NetworkType {
+ GSM = 0;
+ UTRAN = 2;
+ }
+ optional uint32 PLMN = 1;
+ optional NetworkType networkType = 2;
+ }
+ optional bool allowDataRoaming = 1;
+ optional OperatorSelectMode operatorSelectMode = 2;
+ optional NetworkDescriptor networkDescriptor = 3;
+}
+
+message NetworkDataSettings {
+ optional string APN = 1;
+}
+
+message ServerConnectSettings {
+ optional string host = 1;
+ optional uint32 port = 2;
+}
+
+message ModemConfigurationCommand {
+ optional NetworkOperatorSettings networkOperatorSettings = 1;
+ optional NetworkDataSettings networkDataSettings = 2;
+ optional ServerConnectSettings serverConnectSettings = 3;
+}
+
+message RTCConfigurationCommand {
+ optional uint32 unix_time = 1;
+}
+
+message CommandResponse {
+ optional ControlCommand.Type type = 1;
+ optional string message = 2;
+ optional bool status = 3;
+}
+
+message DiagnosticRequest {
+ enum DecodedType { NONE = 1; OBD2 = 2; }
+
+ optional int32 bus = 1;
+ optional uint32 message_id = 2;
+ optional uint32 mode = 3;
+ optional uint32 pid = 4;
+ // TODO we are capping this at 8 bytes for now - need to change when we
+ // support multi-frame responses
+ optional bytes payload = 5;
+ optional bool multiple_responses = 6;
+ optional double frequency = 7;
+ optional string name = 8;
+ optional DecodedType decoded_type = 9;
+}
+
+message DiagnosticResponse {
+ optional int32 bus = 1;
+ optional uint32 message_id = 2;
+ optional uint32 mode = 3;
+ optional uint32 pid = 4;
+ optional bool success = 5;
+ optional uint32 negative_response_code = 6;
+ // TODO we are capping this at 8 bytes for now - need to change when we
+ // support multi-frame responses
+ optional bytes payload = 7;
+ optional double value = 8;
+}
+
+message DynamicField {
+ enum Type { STRING = 1; NUM = 2; BOOL = 3; }
+
+ optional Type type = 1;
+ optional string string_value = 2;
+ optional double numeric_value = 3;
+ optional bool boolean_value = 4;
+}
+
+message SimpleMessage {
+ optional string name = 1;
+ optional DynamicField value = 2;
+ optional DynamicField event = 3;
+}
diff --git a/CAN-binder/libs/openxc-message-format/pip-requirements.txt b/CAN-binder/libs/openxc-message-format/pip-requirements.txt
new file mode 100644
index 00000000..7f147d92
--- /dev/null
+++ b/CAN-binder/libs/openxc-message-format/pip-requirements.txt
@@ -0,0 +1 @@
+protobuf==2.5.0
diff --git a/CAN-binder/libs/openxc-message-format/script/bootstrap.sh b/CAN-binder/libs/openxc-message-format/script/bootstrap.sh
new file mode 100755
index 00000000..c0422422
--- /dev/null
+++ b/CAN-binder/libs/openxc-message-format/script/bootstrap.sh
@@ -0,0 +1,179 @@
+#!/usr/bin/env bash
+
+set -e
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+pushd $DIR/..
+
+# TODO this is kind of a hacky way of determining if root is required -
+# ideally we wouuld set up a little virtualenv in the dependencies folder
+SUDO_CMD=
+if command -v sudo >/dev/null 2>&1; then
+ SUDO_CMD="sudo -E"
+
+ echo "The bootstrap script needs to install a few packages to your system as an admin, and we will use the 'sudo' command - enter your password to continue"
+ $SUDO_CMD ls > /dev/null
+fi
+
+KERNEL=`uname`
+if [ ${KERNEL:0:7} == "MINGW32" ]; then
+ OS="windows"
+elif [ ${KERNEL:0:6} == "CYGWIN" ]; then
+ OS="cygwin"
+elif [ $KERNEL == "Darwin" ]; then
+ OS="mac"
+else
+ OS="linux"
+ if ! command -v lsb_release >/dev/null 2>&1; then
+ # Arch Linux
+ if command -v pacman>/dev/null 2>&1; then
+ $SUDO_CMD pacman -S lsb-release
+ fi
+ fi
+
+ DISTRO=`lsb_release -si`
+fi
+
+die() {
+ echo >&2 "${bldred}$@${txtrst}"
+ exit 1
+}
+
+_cygwin_error() {
+ echo
+ echo "${bldred}Missing \"$1\"${txtrst} - run the Cygwin installer again and select the base package set:"
+ echo " $CYGWIN_PACKAGES"
+ echo "After installing the packages, re-run this bootstrap script."
+ die
+}
+
+if ! command -v tput >/dev/null 2>&1; then
+ if [ $OS == "cygwin" ]; then
+ echo "OPTIONAL: Install the \"ncurses\" package in Cygwin to get colored shell output"
+ fi
+else
+ txtrst=$(tput sgr0) # reset
+ bldred=${txtbld}$(tput setaf 1)
+ bldgreen=${txtbld}$(tput setaf 2)
+fi
+
+_pushd() {
+ pushd $1 > /dev/null
+}
+
+_popd() {
+ popd > /dev/null
+}
+
+_wait() {
+ if [ -z $CI ]; then
+ echo "Press Enter when done"
+ read
+ fi
+}
+
+_install() {
+ if [ $OS == "cygwin" ]; then
+ _cygwin_error $1
+ elif [ $OS == "mac" ]; then
+ # brew exists with 1 if it's already installed
+ set +e
+ brew install $1
+ set -e
+ else
+ if [ -z $DISTRO ]; then
+ echo
+ echo "Missing $1 - install it using your distro's package manager or build from source"
+ _wait
+ else
+ if [ $DISTRO == "arch" ]; then
+ $SUDO_CMD pacman -S $1
+ elif [ $DISTRO == "Ubuntu" ]; then
+ $SUDO_CMD apt-get update -qq
+ $SUDO_CMD apt-get install $1 -y
+ else
+ echo
+ echo "Missing $1 - install it using your distro's package manager or build from source"
+ _wait
+ fi
+ fi
+ fi
+}
+
+CYGWIN_PACKAGES="make curl, libsasl2, ca-certificates, ncurses, python-setuptools"
+
+download() {
+ url=$1
+ filename=$2
+ curl $url -L --O $filename
+}
+
+if [ `id -u` == 0 ]; then
+ die "Error: running as root - don't use 'sudo' with this script"
+fi
+
+if ! command -v curl >/dev/null 2>&1; then
+ if [ $OS == "cygwin" ]; then
+ _cygwin_error "curl"
+ else
+ _install curl
+ fi
+fi
+
+if [ $OS == "windows" ]; then
+ die "Sorry, the bootstrap script for compiling from source doesn't support the Windows console - try Cygwin."
+fi
+
+if [ $OS == "mac" ] && ! command -v brew >/dev/null 2>&1; then
+ echo "Installing Homebrew..."
+ ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"
+fi
+
+if ! command -v make >/dev/null 2>&1; then
+ if [ $OS == "cygwin" ]; then
+ _cygwin_error "make"
+ elif [ $OS == "mac" ]; then
+ die "Missing 'make' - install the Xcode CLI tools"
+ else
+ if [ $DISTRO == "arch" ]; then
+ $SUDO_CMD pacman -S base-devel
+ elif [ $DISTRO == "Ubuntu" ]; then
+ $SUDO_CMD apt-get update -qq
+ $SUDO_CMD apt-get install build-essential -y
+ fi
+ fi
+fi
+
+if ! command -v python >/dev/null 2>&1; then
+ echo "Installing Python..."
+ _install "python"
+fi
+
+if ! command -v pip >/dev/null 2>&1; then
+ echo "Installing Pip..."
+ if ! command -v easy_install >/dev/null 2>&1; then
+ die "easy_install not available, can't install pip"
+ fi
+
+ $SUDO_CMD easy_install pip
+fi
+
+$SUDO_CMD pip install -U pip
+$SUDO_CMD pip install --pre -Ur pip-requirements.txt
+
+if ! command -v protoc >/dev/null 2>&1; then
+ if [ $OS == "cygwin" ]; then
+ _cygwin_error "protobuf"
+ elif [ $OS == "mac" ] || [ $OS == "linux" ]; then
+ if [ $DISTRO == "Ubuntu" ]; then
+ _install protobuf-compiler
+ else
+ _install protobuf
+ fi
+ fi
+fi
+
+popd
+
+echo
+echo "${bldgreen}All developer dependencies installed, ready to compile.$txtrst"