aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Code_Composer
diff options
context:
space:
mode:
authorAvi Levkovich <avi@twine-s.com>2017-12-10 11:16:41 +0200
committerAvi Levkovich <avi@twine-s.com>2017-12-10 11:16:41 +0200
commit8eec69d8933841f4e45fd9e63010bff51ae64a27 (patch)
treece7c1500e8a2ca40902fe9d1e9c6c10f1595d99e /Software/Code_Composer
parent64770427ddf0508c1b9cb75bda75d4cecab500f3 (diff)
downloadTango-8eec69d8933841f4e45fd9e63010bff51ae64a27.tar.gz
Tango-8eec69d8933841f4e45fd9e63010bff51ae64a27.zip
Implemented most stubs as PMR messages.
Diffstat (limited to 'Software/Code_Composer')
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Common/ErrorCode.pb-c.c37
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Common/ErrorCode.pb-c.h43
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Common/MessageContainer.pb-c.c32
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Common/MessageContainer.pb-c.h7
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Common/MessageType.pb-c.c58
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Common/MessageType.pb-c.h26
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Cartridge.c0
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Cartridge.h0
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeReadRequest.pb-c.c92
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeReadRequest.pb-c.h75
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeReadResponse.pb-c.c159
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeReadResponse.pb-c.h82
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeWriteRequest.pb-c.c144
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeWriteRequest.pb-c.h88
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeWriteResponse.pb-c.c106
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeWriteResponse.pb-c.h74
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Dispenser.c41
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Dispenser.h1
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_DispenserRequest.pb-c.c144
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_DispenserRequest.pb-c.h92
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_DispenserResponse.pb-c.c131
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_DispenserResponse.pb-c.h89
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIO.c191
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIO.h4
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadBitRequest.pb-c.c105
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadBitRequest.pb-c.h80
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadBitResponse.pb-c.c131
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadBitResponse.pb-c.h87
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadByteRequest.pb-c.c92
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadByteRequest.pb-c.h75
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadByteResponse.pb-c.c118
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadByteResponse.pb-c.h82
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteBitRequest.pb-c.c118
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteBitRequest.pb-c.h82
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteBitResponse.pb-c.c118
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteBitResponse.pb-c.h85
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteByteRequest.pb-c.c106
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteByteRequest.pb-c.h77
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteByteResponse.pb-c.c106
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteByteResponse.pb-c.h80
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Heater.c41
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Heater.h1
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_HeaterRequest.pb-c.c118
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_HeaterRequest.pb-c.h82
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_HeaterResponse.pb-c.c118
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_HeaterResponse.pb-c.h82
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_MotorEncoder.c41
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_MotorEncoder.h1
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_MotorEncoderRequest.pb-c.c131
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_MotorEncoderRequest.pb-c.h87
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_MotorEncoderResponse.pb-c.c144
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_MotorEncoderResponse.pb-c.h89
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_OptLimitSwitch.c41
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_OptLimitSwitch.h1
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_OptLimitSwitchRequest.pb-c.c105
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_OptLimitSwitchRequest.pb-c.h80
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_OptLimitSwitchResponse.pb-c.c118
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_OptLimitSwitchResponse.pb-c.h84
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_SteperMotor.c41
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_SteperMotor.h1
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_SteperMotorRequest.pb-c.c144
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_SteperMotorRequest.pb-c.h95
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_SteperMotorResponse.pb-c.c118
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_SteperMotorResponse.pb-c.h84
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Valve.c41
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Valve.h1
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_ValveRequest.pb-c.c118
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_ValveRequest.pb-c.h85
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_ValveResponse.pb-c.c92
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_ValveResponse.pb-c.h75
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Synchronization/SynchronizeDBRequest.pb-c.c105
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Synchronization/SynchronizeDBRequest.pb-c.h73
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Synchronization/SynchronizeDBResponse.pb-c.c92
-rw-r--r--Software/Code_Composer/twine_usblib_demo/PMR/Synchronization/SynchronizeDBResponse.pb-c.h72
-rw-r--r--Software/Code_Composer/twine_usblib_demo/main.c98
75 files changed, 5944 insertions, 13 deletions
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Common/ErrorCode.pb-c.c b/Software/Code_Composer/twine_usblib_demo/PMR/Common/ErrorCode.pb-c.c
new file mode 100644
index 000000000..4f930f614
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Common/ErrorCode.pb-c.c
@@ -0,0 +1,37 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: ErrorCode.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "ErrorCode.pb-c.h"
+static const ProtobufCEnumValue error_code__enum_values_by_number[2] =
+{
+ { "NONE", "ERROR_CODE__NONE", 0 },
+ { "BAD_CRC", "ERROR_CODE__BAD_CRC", 1 },
+};
+static const ProtobufCIntRange error_code__value_ranges[] = {
+{0, 0},{0, 2}
+};
+static const ProtobufCEnumValueIndex error_code__enum_values_by_name[2] =
+{
+ { "BAD_CRC", 1 },
+ { "NONE", 0 },
+};
+const ProtobufCEnumDescriptor error_code__descriptor =
+{
+ PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
+ "ErrorCode",
+ "ErrorCode",
+ "ErrorCode",
+ "",
+ 2,
+ error_code__enum_values_by_number,
+ 2,
+ error_code__enum_values_by_name,
+ 1,
+ error_code__value_ranges,
+ NULL,NULL,NULL,NULL /* reserved[1234] */
+};
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Common/ErrorCode.pb-c.h b/Software/Code_Composer/twine_usblib_demo/PMR/Common/ErrorCode.pb-c.h
new file mode 100644
index 000000000..7cc30c1d4
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Common/ErrorCode.pb-c.h
@@ -0,0 +1,43 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: ErrorCode.proto */
+
+#ifndef PROTOBUF_C_ErrorCode_2eproto__INCLUDED
+#define PROTOBUF_C_ErrorCode_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
+#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+
+
+
+/* --- enums --- */
+
+typedef enum _ErrorCode {
+ ERROR_CODE__NONE = 0,
+ ERROR_CODE__BAD_CRC = 1
+ PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(ERROR_CODE)
+} ErrorCode;
+
+/* --- messages --- */
+
+/* --- per-message closures --- */
+
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCEnumDescriptor error_code__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_ErrorCode_2eproto__INCLUDED */
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Common/MessageContainer.pb-c.c b/Software/Code_Composer/twine_usblib_demo/PMR/Common/MessageContainer.pb-c.c
index cd488bb01..de74c4054 100644
--- a/Software/Code_Composer/twine_usblib_demo/PMR/Common/MessageContainer.pb-c.c
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Common/MessageContainer.pb-c.c
@@ -52,7 +52,7 @@ void message_container__free_unpacked
assert(message->base.descriptor == &message_container__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
-static const ProtobufCFieldDescriptor message_container__field_descriptors[5] =
+static const ProtobufCFieldDescriptor message_container__field_descriptors[7] =
{
{
"Type",
@@ -114,18 +114,44 @@ static const ProtobufCFieldDescriptor message_container__field_descriptors[5] =
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
+ {
+ "CRC",
+ 6,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(MessageContainer, has_crc),
+ offsetof(MessageContainer, crc),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Error",
+ 7,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_ENUM,
+ offsetof(MessageContainer, has_error),
+ offsetof(MessageContainer, error),
+ &error_code__descriptor,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
};
static const unsigned message_container__field_indices_by_name[] = {
+ 5, /* field[5] = CRC */
3, /* field[3] = Completed */
2, /* field[2] = Continuous */
4, /* field[4] = Data */
+ 6, /* field[6] = Error */
1, /* field[1] = Token */
0, /* field[0] = Type */
};
static const ProtobufCIntRange message_container__number_ranges[1 + 1] =
{
{ 1, 0 },
- { 0, 5 }
+ { 0, 7 }
};
const ProtobufCMessageDescriptor message_container__descriptor =
{
@@ -135,7 +161,7 @@ const ProtobufCMessageDescriptor message_container__descriptor =
"MessageContainer",
"",
sizeof(MessageContainer),
- 5,
+ 7,
message_container__field_descriptors,
message_container__field_indices_by_name,
1, message_container__number_ranges,
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Common/MessageContainer.pb-c.h b/Software/Code_Composer/twine_usblib_demo/PMR/Common/MessageContainer.pb-c.h
index 194907452..e0849d4ad 100644
--- a/Software/Code_Composer/twine_usblib_demo/PMR/Common/MessageContainer.pb-c.h
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Common/MessageContainer.pb-c.h
@@ -15,6 +15,7 @@ PROTOBUF_C__BEGIN_DECLS
#endif
#include "MessageType.pb-c.h"
+#include "ErrorCode.pb-c.h"
typedef struct _MessageContainer MessageContainer;
@@ -36,10 +37,14 @@ struct _MessageContainer
protobuf_c_boolean completed;
protobuf_c_boolean has_data;
ProtobufCBinaryData data;
+ protobuf_c_boolean has_crc;
+ uint32_t crc;
+ protobuf_c_boolean has_error;
+ ErrorCode error;
};
#define MESSAGE_CONTAINER__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&message_container__descriptor) \
- , 0, MESSAGE_TYPE__RGB, NULL, 0, 0, 0, 0, 0, {0,NULL} }
+ , 0, MESSAGE_TYPE__RGB, NULL, 0, 0, 0, 0, 0, {0,NULL}, 0, 0, 0, ERROR_CODE__NONE }
/* MessageContainer methods */
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Common/MessageType.pb-c.c b/Software/Code_Composer/twine_usblib_demo/PMR/Common/MessageType.pb-c.c
index faaef3d1f..b4a52d09f 100644
--- a/Software/Code_Composer/twine_usblib_demo/PMR/Common/MessageType.pb-c.c
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Common/MessageType.pb-c.c
@@ -7,7 +7,7 @@
#endif
#include "MessageType.pb-c.h"
-static const ProtobufCEnumValue message_type__enum_values_by_number[7] =
+static const ProtobufCEnumValue message_type__enum_values_by_number[31] =
{
{ "RGB", "MESSAGE_TYPE__RGB", 0 },
{ "Job", "MESSAGE_TYPE__Job", 1 },
@@ -16,11 +16,35 @@ static const ProtobufCEnumValue message_type__enum_values_by_number[7] =
{ "CalculateResponse", "MESSAGE_TYPE__CalculateResponse", 4 },
{ "ProgressRequest", "MESSAGE_TYPE__ProgressRequest", 5 },
{ "ProgressResponse", "MESSAGE_TYPE__ProgressResponse", 6 },
+ { "Stub_CartridgeReadRequest", "MESSAGE_TYPE__Stub_CartridgeReadRequest", 7 },
+ { "Stub_CartridgeReadResponse", "MESSAGE_TYPE__Stub_CartridgeReadResponse", 8 },
+ { "Stub_CartridgeWriteRequest", "MESSAGE_TYPE__Stub_CartridgeWriteRequest", 9 },
+ { "Stub_CartridgeWriteResponse", "MESSAGE_TYPE__Stub_CartridgeWriteResponse", 10 },
+ { "Stub_DispenserRequest", "MESSAGE_TYPE__Stub_DispenserRequest", 11 },
+ { "Stub_DispenserResponse", "MESSAGE_TYPE__Stub_DispenserResponse", 12 },
+ { "Stub_GPIOReadBitRequest", "MESSAGE_TYPE__Stub_GPIOReadBitRequest", 13 },
+ { "Stub_GPIOReadBitResponse", "MESSAGE_TYPE__Stub_GPIOReadBitResponse", 14 },
+ { "Stub_GPIOReadByteRequest", "MESSAGE_TYPE__Stub_GPIOReadByteRequest", 15 },
+ { "Stub_GPIOReadByteResponse", "MESSAGE_TYPE__Stub_GPIOReadByteResponse", 16 },
+ { "Stub_GPIOWriteBitRequest", "MESSAGE_TYPE__Stub_GPIOWriteBitRequest", 17 },
+ { "Stub_GPIOWriteBitResponse", "MESSAGE_TYPE__Stub_GPIOWriteBitResponse", 18 },
+ { "Stub_GPIOWriteByteRequest", "MESSAGE_TYPE__Stub_GPIOWriteByteRequest", 19 },
+ { "Stub_GPIOWriteByteResponse", "MESSAGE_TYPE__Stub_GPIOWriteByteResponse", 20 },
+ { "Stub_HeaterRequest", "MESSAGE_TYPE__Stub_HeaterRequest", 21 },
+ { "Stub_HeaterResponse", "MESSAGE_TYPE__Stub_HeaterResponse", 22 },
+ { "Stub_MotorEncoderRequest", "MESSAGE_TYPE__Stub_MotorEncoderRequest", 23 },
+ { "Stub_MotorEncoderResponse", "MESSAGE_TYPE__Stub_MotorEncoderResponse", 24 },
+ { "Stub_OptLimitSwitchRequest", "MESSAGE_TYPE__Stub_OptLimitSwitchRequest", 25 },
+ { "Stub_OptLimitSwitchResponse", "MESSAGE_TYPE__Stub_OptLimitSwitchResponse", 26 },
+ { "Stub_SteperMotorRequest", "MESSAGE_TYPE__Stub_SteperMotorRequest", 27 },
+ { "Stub_SteperMotorResponse", "MESSAGE_TYPE__Stub_SteperMotorResponse", 28 },
+ { "Stub_ValveRequest", "MESSAGE_TYPE__Stub_ValveRequest", 29 },
+ { "Stub_ValveResponse", "MESSAGE_TYPE__Stub_ValveResponse", 30 },
};
static const ProtobufCIntRange message_type__value_ranges[] = {
-{0, 0},{0, 7}
+{0, 0},{0, 31}
};
-static const ProtobufCEnumValueIndex message_type__enum_values_by_name[7] =
+static const ProtobufCEnumValueIndex message_type__enum_values_by_name[31] =
{
{ "CalculateRequest", 3 },
{ "CalculateResponse", 4 },
@@ -29,6 +53,30 @@ static const ProtobufCEnumValueIndex message_type__enum_values_by_name[7] =
{ "ProgressResponse", 6 },
{ "RGB", 0 },
{ "Segment", 2 },
+ { "Stub_CartridgeReadRequest", 7 },
+ { "Stub_CartridgeReadResponse", 8 },
+ { "Stub_CartridgeWriteRequest", 9 },
+ { "Stub_CartridgeWriteResponse", 10 },
+ { "Stub_DispenserRequest", 11 },
+ { "Stub_DispenserResponse", 12 },
+ { "Stub_GPIOReadBitRequest", 13 },
+ { "Stub_GPIOReadBitResponse", 14 },
+ { "Stub_GPIOReadByteRequest", 15 },
+ { "Stub_GPIOReadByteResponse", 16 },
+ { "Stub_GPIOWriteBitRequest", 17 },
+ { "Stub_GPIOWriteBitResponse", 18 },
+ { "Stub_GPIOWriteByteRequest", 19 },
+ { "Stub_GPIOWriteByteResponse", 20 },
+ { "Stub_HeaterRequest", 21 },
+ { "Stub_HeaterResponse", 22 },
+ { "Stub_MotorEncoderRequest", 23 },
+ { "Stub_MotorEncoderResponse", 24 },
+ { "Stub_OptLimitSwitchRequest", 25 },
+ { "Stub_OptLimitSwitchResponse", 26 },
+ { "Stub_SteperMotorRequest", 27 },
+ { "Stub_SteperMotorResponse", 28 },
+ { "Stub_ValveRequest", 29 },
+ { "Stub_ValveResponse", 30 },
};
const ProtobufCEnumDescriptor message_type__descriptor =
{
@@ -37,9 +85,9 @@ const ProtobufCEnumDescriptor message_type__descriptor =
"MessageType",
"MessageType",
"",
- 7,
+ 31,
message_type__enum_values_by_number,
- 7,
+ 31,
message_type__enum_values_by_name,
1,
message_type__value_ranges,
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Common/MessageType.pb-c.h b/Software/Code_Composer/twine_usblib_demo/PMR/Common/MessageType.pb-c.h
index 952a677c6..359611f11 100644
--- a/Software/Code_Composer/twine_usblib_demo/PMR/Common/MessageType.pb-c.h
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Common/MessageType.pb-c.h
@@ -26,7 +26,31 @@ typedef enum _MessageType {
MESSAGE_TYPE__CalculateRequest = 3,
MESSAGE_TYPE__CalculateResponse = 4,
MESSAGE_TYPE__ProgressRequest = 5,
- MESSAGE_TYPE__ProgressResponse = 6
+ MESSAGE_TYPE__ProgressResponse = 6,
+ MESSAGE_TYPE__Stub_CartridgeReadRequest = 7,
+ MESSAGE_TYPE__Stub_CartridgeReadResponse = 8,
+ MESSAGE_TYPE__Stub_CartridgeWriteRequest = 9,
+ MESSAGE_TYPE__Stub_CartridgeWriteResponse = 10,
+ MESSAGE_TYPE__Stub_DispenserRequest = 11,
+ MESSAGE_TYPE__Stub_DispenserResponse = 12,
+ MESSAGE_TYPE__Stub_GPIOReadBitRequest = 13,
+ MESSAGE_TYPE__Stub_GPIOReadBitResponse = 14,
+ MESSAGE_TYPE__Stub_GPIOReadByteRequest = 15,
+ MESSAGE_TYPE__Stub_GPIOReadByteResponse = 16,
+ MESSAGE_TYPE__Stub_GPIOWriteBitRequest = 17,
+ MESSAGE_TYPE__Stub_GPIOWriteBitResponse = 18,
+ MESSAGE_TYPE__Stub_GPIOWriteByteRequest = 19,
+ MESSAGE_TYPE__Stub_GPIOWriteByteResponse = 20,
+ MESSAGE_TYPE__Stub_HeaterRequest = 21,
+ MESSAGE_TYPE__Stub_HeaterResponse = 22,
+ MESSAGE_TYPE__Stub_MotorEncoderRequest = 23,
+ MESSAGE_TYPE__Stub_MotorEncoderResponse = 24,
+ MESSAGE_TYPE__Stub_OptLimitSwitchRequest = 25,
+ MESSAGE_TYPE__Stub_OptLimitSwitchResponse = 26,
+ MESSAGE_TYPE__Stub_SteperMotorRequest = 27,
+ MESSAGE_TYPE__Stub_SteperMotorResponse = 28,
+ MESSAGE_TYPE__Stub_ValveRequest = 29,
+ MESSAGE_TYPE__Stub_ValveResponse = 30
PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(MESSAGE_TYPE)
} MessageType;
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Cartridge.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Cartridge.c
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Cartridge.c
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Cartridge.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Cartridge.h
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Cartridge.h
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeReadRequest.pb-c.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeReadRequest.pb-c.c
new file mode 100644
index 000000000..10b72bcfb
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeReadRequest.pb-c.c
@@ -0,0 +1,92 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_CartridgeReadRequest.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "Stub_CartridgeReadRequest.pb-c.h"
+void stub__cartridge_read_request__init
+ (StubCartridgeReadRequest *message)
+{
+ static const StubCartridgeReadRequest init_value = STUB__CARTRIDGE_READ_REQUEST__INIT;
+ *message = init_value;
+}
+size_t stub__cartridge_read_request__get_packed_size
+ (const StubCartridgeReadRequest *message)
+{
+ assert(message->base.descriptor == &stub__cartridge_read_request__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub__cartridge_read_request__pack
+ (const StubCartridgeReadRequest *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub__cartridge_read_request__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub__cartridge_read_request__pack_to_buffer
+ (const StubCartridgeReadRequest *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub__cartridge_read_request__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubCartridgeReadRequest *
+ stub__cartridge_read_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubCartridgeReadRequest *)
+ protobuf_c_message_unpack (&stub__cartridge_read_request__descriptor,
+ allocator, len, data);
+}
+void stub__cartridge_read_request__free_unpacked
+ (StubCartridgeReadRequest *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub__cartridge_read_request__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub__cartridge_read_request__field_descriptors[1] =
+{
+ {
+ "CartridgeId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubCartridgeReadRequest, has_cartridgeid),
+ offsetof(StubCartridgeReadRequest, cartridgeid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub__cartridge_read_request__field_indices_by_name[] = {
+ 0, /* field[0] = CartridgeId */
+};
+static const ProtobufCIntRange stub__cartridge_read_request__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 1 }
+};
+const ProtobufCMessageDescriptor stub__cartridge_read_request__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "Stub_CartridgeReadRequest",
+ "StubCartridgeReadRequest",
+ "StubCartridgeReadRequest",
+ "",
+ sizeof(StubCartridgeReadRequest),
+ 1,
+ stub__cartridge_read_request__field_descriptors,
+ stub__cartridge_read_request__field_indices_by_name,
+ 1, stub__cartridge_read_request__number_ranges,
+ (ProtobufCMessageInit) stub__cartridge_read_request__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeReadRequest.pb-c.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeReadRequest.pb-c.h
new file mode 100644
index 000000000..3cd7f8398
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeReadRequest.pb-c.h
@@ -0,0 +1,75 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_CartridgeReadRequest.proto */
+
+#ifndef PROTOBUF_C_Stub_5fCartridgeReadRequest_2eproto__INCLUDED
+#define PROTOBUF_C_Stub_5fCartridgeReadRequest_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
+#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+
+typedef struct _StubCartridgeReadRequest StubCartridgeReadRequest;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubCartridgeReadRequest
+{
+ ProtobufCMessage base;
+ /*
+ *0..7
+ */
+ protobuf_c_boolean has_cartridgeid;
+ uint32_t cartridgeid;
+};
+#define STUB__CARTRIDGE_READ_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub__cartridge_read_request__descriptor) \
+ , 0, 0 }
+
+
+/* StubCartridgeReadRequest methods */
+void stub__cartridge_read_request__init
+ (StubCartridgeReadRequest *message);
+size_t stub__cartridge_read_request__get_packed_size
+ (const StubCartridgeReadRequest *message);
+size_t stub__cartridge_read_request__pack
+ (const StubCartridgeReadRequest *message,
+ uint8_t *out);
+size_t stub__cartridge_read_request__pack_to_buffer
+ (const StubCartridgeReadRequest *message,
+ ProtobufCBuffer *buffer);
+StubCartridgeReadRequest *
+ stub__cartridge_read_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub__cartridge_read_request__free_unpacked
+ (StubCartridgeReadRequest *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubCartridgeReadRequest_Closure)
+ (const StubCartridgeReadRequest *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub__cartridge_read_request__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_Stub_5fCartridgeReadRequest_2eproto__INCLUDED */
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeReadResponse.pb-c.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeReadResponse.pb-c.c
new file mode 100644
index 000000000..95b7e352b
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeReadResponse.pb-c.c
@@ -0,0 +1,159 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_CartridgeReadResponse.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "Stub_CartridgeReadResponse.pb-c.h"
+void stub__cartridge_read_response__init
+ (StubCartridgeReadResponse *message)
+{
+ static const StubCartridgeReadResponse init_value = STUB__CARTRIDGE_READ_RESPONSE__INIT;
+ *message = init_value;
+}
+size_t stub__cartridge_read_response__get_packed_size
+ (const StubCartridgeReadResponse *message)
+{
+ assert(message->base.descriptor == &stub__cartridge_read_response__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub__cartridge_read_response__pack
+ (const StubCartridgeReadResponse *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub__cartridge_read_response__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub__cartridge_read_response__pack_to_buffer
+ (const StubCartridgeReadResponse *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub__cartridge_read_response__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubCartridgeReadResponse *
+ stub__cartridge_read_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubCartridgeReadResponse *)
+ protobuf_c_message_unpack (&stub__cartridge_read_response__descriptor,
+ allocator, len, data);
+}
+void stub__cartridge_read_response__free_unpacked
+ (StubCartridgeReadResponse *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub__cartridge_read_response__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub__cartridge_read_response__field_descriptors[6] =
+{
+ {
+ "CartridgeId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubCartridgeReadResponse, has_cartridgeid),
+ offsetof(StubCartridgeReadResponse, cartridgeid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "CartridgeColor",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubCartridgeReadResponse, has_cartridgecolor),
+ offsetof(StubCartridgeReadResponse, cartridgecolor),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "CartridgeVersion",
+ 4,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubCartridgeReadResponse, has_cartridgeversion),
+ offsetof(StubCartridgeReadResponse, cartridgeversion),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "CartridgeData",
+ 5,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubCartridgeReadResponse, has_cartridgedata),
+ offsetof(StubCartridgeReadResponse, cartridgedata),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "CartridgeUsed",
+ 6,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubCartridgeReadResponse, has_cartridgeused),
+ offsetof(StubCartridgeReadResponse, cartridgeused),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Status",
+ 8,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubCartridgeReadResponse, has_status),
+ offsetof(StubCartridgeReadResponse, status),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub__cartridge_read_response__field_indices_by_name[] = {
+ 1, /* field[1] = CartridgeColor */
+ 3, /* field[3] = CartridgeData */
+ 0, /* field[0] = CartridgeId */
+ 4, /* field[4] = CartridgeUsed */
+ 2, /* field[2] = CartridgeVersion */
+ 5, /* field[5] = Status */
+};
+static const ProtobufCIntRange stub__cartridge_read_response__number_ranges[3 + 1] =
+{
+ { 1, 0 },
+ { 3, 1 },
+ { 8, 5 },
+ { 0, 6 }
+};
+const ProtobufCMessageDescriptor stub__cartridge_read_response__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "Stub_CartridgeReadResponse",
+ "StubCartridgeReadResponse",
+ "StubCartridgeReadResponse",
+ "",
+ sizeof(StubCartridgeReadResponse),
+ 6,
+ stub__cartridge_read_response__field_descriptors,
+ stub__cartridge_read_response__field_indices_by_name,
+ 3, stub__cartridge_read_response__number_ranges,
+ (ProtobufCMessageInit) stub__cartridge_read_response__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeReadResponse.pb-c.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeReadResponse.pb-c.h
new file mode 100644
index 000000000..efc00923a
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeReadResponse.pb-c.h
@@ -0,0 +1,82 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_CartridgeReadResponse.proto */
+
+#ifndef PROTOBUF_C_Stub_5fCartridgeReadResponse_2eproto__INCLUDED
+#define PROTOBUF_C_Stub_5fCartridgeReadResponse_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
+#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+
+typedef struct _StubCartridgeReadResponse StubCartridgeReadResponse;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubCartridgeReadResponse
+{
+ ProtobufCMessage base;
+ protobuf_c_boolean has_cartridgeid;
+ uint32_t cartridgeid;
+ protobuf_c_boolean has_cartridgecolor;
+ uint32_t cartridgecolor;
+ protobuf_c_boolean has_cartridgeversion;
+ uint32_t cartridgeversion;
+ protobuf_c_boolean has_cartridgedata;
+ uint32_t cartridgedata;
+ protobuf_c_boolean has_cartridgeused;
+ protobuf_c_boolean cartridgeused;
+ protobuf_c_boolean has_status;
+ uint32_t status;
+};
+#define STUB__CARTRIDGE_READ_RESPONSE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub__cartridge_read_response__descriptor) \
+ , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+
+
+/* StubCartridgeReadResponse methods */
+void stub__cartridge_read_response__init
+ (StubCartridgeReadResponse *message);
+size_t stub__cartridge_read_response__get_packed_size
+ (const StubCartridgeReadResponse *message);
+size_t stub__cartridge_read_response__pack
+ (const StubCartridgeReadResponse *message,
+ uint8_t *out);
+size_t stub__cartridge_read_response__pack_to_buffer
+ (const StubCartridgeReadResponse *message,
+ ProtobufCBuffer *buffer);
+StubCartridgeReadResponse *
+ stub__cartridge_read_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub__cartridge_read_response__free_unpacked
+ (StubCartridgeReadResponse *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubCartridgeReadResponse_Closure)
+ (const StubCartridgeReadResponse *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub__cartridge_read_response__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_Stub_5fCartridgeReadResponse_2eproto__INCLUDED */
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeWriteRequest.pb-c.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeWriteRequest.pb-c.c
new file mode 100644
index 000000000..23f2b88af
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeWriteRequest.pb-c.c
@@ -0,0 +1,144 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_CartridgeWriteRequest.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "Stub_CartridgeWriteRequest.pb-c.h"
+void stub__cartridge_write_request__init
+ (StubCartridgeWriteRequest *message)
+{
+ static const StubCartridgeWriteRequest init_value = STUB__CARTRIDGE_WRITE_REQUEST__INIT;
+ *message = init_value;
+}
+size_t stub__cartridge_write_request__get_packed_size
+ (const StubCartridgeWriteRequest *message)
+{
+ assert(message->base.descriptor == &stub__cartridge_write_request__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub__cartridge_write_request__pack
+ (const StubCartridgeWriteRequest *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub__cartridge_write_request__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub__cartridge_write_request__pack_to_buffer
+ (const StubCartridgeWriteRequest *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub__cartridge_write_request__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubCartridgeWriteRequest *
+ stub__cartridge_write_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubCartridgeWriteRequest *)
+ protobuf_c_message_unpack (&stub__cartridge_write_request__descriptor,
+ allocator, len, data);
+}
+void stub__cartridge_write_request__free_unpacked
+ (StubCartridgeWriteRequest *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub__cartridge_write_request__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub__cartridge_write_request__field_descriptors[5] =
+{
+ {
+ "CartridgeId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubCartridgeWriteRequest, has_cartridgeid),
+ offsetof(StubCartridgeWriteRequest, cartridgeid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "CartridgeColor",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubCartridgeWriteRequest, has_cartridgecolor),
+ offsetof(StubCartridgeWriteRequest, cartridgecolor),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "CartridgeVersion",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubCartridgeWriteRequest, has_cartridgeversion),
+ offsetof(StubCartridgeWriteRequest, cartridgeversion),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "CartridgeData",
+ 4,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubCartridgeWriteRequest, has_cartridgedata),
+ offsetof(StubCartridgeWriteRequest, cartridgedata),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "CartridgeUsed",
+ 5,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubCartridgeWriteRequest, has_cartridgeused),
+ offsetof(StubCartridgeWriteRequest, cartridgeused),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub__cartridge_write_request__field_indices_by_name[] = {
+ 1, /* field[1] = CartridgeColor */
+ 3, /* field[3] = CartridgeData */
+ 0, /* field[0] = CartridgeId */
+ 4, /* field[4] = CartridgeUsed */
+ 2, /* field[2] = CartridgeVersion */
+};
+static const ProtobufCIntRange stub__cartridge_write_request__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 5 }
+};
+const ProtobufCMessageDescriptor stub__cartridge_write_request__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "Stub_CartridgeWriteRequest",
+ "StubCartridgeWriteRequest",
+ "StubCartridgeWriteRequest",
+ "",
+ sizeof(StubCartridgeWriteRequest),
+ 5,
+ stub__cartridge_write_request__field_descriptors,
+ stub__cartridge_write_request__field_indices_by_name,
+ 1, stub__cartridge_write_request__number_ranges,
+ (ProtobufCMessageInit) stub__cartridge_write_request__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeWriteRequest.pb-c.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeWriteRequest.pb-c.h
new file mode 100644
index 000000000..b179d5d37
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeWriteRequest.pb-c.h
@@ -0,0 +1,88 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_CartridgeWriteRequest.proto */
+
+#ifndef PROTOBUF_C_Stub_5fCartridgeWriteRequest_2eproto__INCLUDED
+#define PROTOBUF_C_Stub_5fCartridgeWriteRequest_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
+#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+
+typedef struct _StubCartridgeWriteRequest StubCartridgeWriteRequest;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubCartridgeWriteRequest
+{
+ ProtobufCMessage base;
+ /*
+ *0..7
+ */
+ protobuf_c_boolean has_cartridgeid;
+ uint32_t cartridgeid;
+ /*
+ */
+ protobuf_c_boolean has_cartridgecolor;
+ uint32_t cartridgecolor;
+ protobuf_c_boolean has_cartridgeversion;
+ uint32_t cartridgeversion;
+ protobuf_c_boolean has_cartridgedata;
+ uint32_t cartridgedata;
+ /*
+ * 0 - new 1- used
+ */
+ protobuf_c_boolean has_cartridgeused;
+ protobuf_c_boolean cartridgeused;
+};
+#define STUB__CARTRIDGE_WRITE_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub__cartridge_write_request__descriptor) \
+ , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+
+
+/* StubCartridgeWriteRequest methods */
+void stub__cartridge_write_request__init
+ (StubCartridgeWriteRequest *message);
+size_t stub__cartridge_write_request__get_packed_size
+ (const StubCartridgeWriteRequest *message);
+size_t stub__cartridge_write_request__pack
+ (const StubCartridgeWriteRequest *message,
+ uint8_t *out);
+size_t stub__cartridge_write_request__pack_to_buffer
+ (const StubCartridgeWriteRequest *message,
+ ProtobufCBuffer *buffer);
+StubCartridgeWriteRequest *
+ stub__cartridge_write_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub__cartridge_write_request__free_unpacked
+ (StubCartridgeWriteRequest *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubCartridgeWriteRequest_Closure)
+ (const StubCartridgeWriteRequest *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub__cartridge_write_request__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_Stub_5fCartridgeWriteRequest_2eproto__INCLUDED */
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeWriteResponse.pb-c.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeWriteResponse.pb-c.c
new file mode 100644
index 000000000..98cd45956
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeWriteResponse.pb-c.c
@@ -0,0 +1,106 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_CartridgeWriteResponse.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "Stub_CartridgeWriteResponse.pb-c.h"
+void stub__cartridge_write_response__init
+ (StubCartridgeWriteResponse *message)
+{
+ static const StubCartridgeWriteResponse init_value = STUB__CARTRIDGE_WRITE_RESPONSE__INIT;
+ *message = init_value;
+}
+size_t stub__cartridge_write_response__get_packed_size
+ (const StubCartridgeWriteResponse *message)
+{
+ assert(message->base.descriptor == &stub__cartridge_write_response__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub__cartridge_write_response__pack
+ (const StubCartridgeWriteResponse *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub__cartridge_write_response__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub__cartridge_write_response__pack_to_buffer
+ (const StubCartridgeWriteResponse *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub__cartridge_write_response__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubCartridgeWriteResponse *
+ stub__cartridge_write_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubCartridgeWriteResponse *)
+ protobuf_c_message_unpack (&stub__cartridge_write_response__descriptor,
+ allocator, len, data);
+}
+void stub__cartridge_write_response__free_unpacked
+ (StubCartridgeWriteResponse *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub__cartridge_write_response__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub__cartridge_write_response__field_descriptors[2] =
+{
+ {
+ "CartridgeId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubCartridgeWriteResponse, has_cartridgeid),
+ offsetof(StubCartridgeWriteResponse, cartridgeid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Status",
+ 8,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubCartridgeWriteResponse, has_status),
+ offsetof(StubCartridgeWriteResponse, status),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub__cartridge_write_response__field_indices_by_name[] = {
+ 0, /* field[0] = CartridgeId */
+ 1, /* field[1] = Status */
+};
+static const ProtobufCIntRange stub__cartridge_write_response__number_ranges[2 + 1] =
+{
+ { 1, 0 },
+ { 8, 1 },
+ { 0, 2 }
+};
+const ProtobufCMessageDescriptor stub__cartridge_write_response__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "Stub_CartridgeWriteResponse",
+ "StubCartridgeWriteResponse",
+ "StubCartridgeWriteResponse",
+ "",
+ sizeof(StubCartridgeWriteResponse),
+ 2,
+ stub__cartridge_write_response__field_descriptors,
+ stub__cartridge_write_response__field_indices_by_name,
+ 2, stub__cartridge_write_response__number_ranges,
+ (ProtobufCMessageInit) stub__cartridge_write_response__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeWriteResponse.pb-c.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeWriteResponse.pb-c.h
new file mode 100644
index 000000000..89b9b4cee
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_CartridgeWriteResponse.pb-c.h
@@ -0,0 +1,74 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_CartridgeWriteResponse.proto */
+
+#ifndef PROTOBUF_C_Stub_5fCartridgeWriteResponse_2eproto__INCLUDED
+#define PROTOBUF_C_Stub_5fCartridgeWriteResponse_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
+#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+
+typedef struct _StubCartridgeWriteResponse StubCartridgeWriteResponse;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubCartridgeWriteResponse
+{
+ ProtobufCMessage base;
+ protobuf_c_boolean has_cartridgeid;
+ uint32_t cartridgeid;
+ protobuf_c_boolean has_status;
+ uint32_t status;
+};
+#define STUB__CARTRIDGE_WRITE_RESPONSE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub__cartridge_write_response__descriptor) \
+ , 0, 0, 0, 0 }
+
+
+/* StubCartridgeWriteResponse methods */
+void stub__cartridge_write_response__init
+ (StubCartridgeWriteResponse *message);
+size_t stub__cartridge_write_response__get_packed_size
+ (const StubCartridgeWriteResponse *message);
+size_t stub__cartridge_write_response__pack
+ (const StubCartridgeWriteResponse *message,
+ uint8_t *out);
+size_t stub__cartridge_write_response__pack_to_buffer
+ (const StubCartridgeWriteResponse *message,
+ ProtobufCBuffer *buffer);
+StubCartridgeWriteResponse *
+ stub__cartridge_write_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub__cartridge_write_response__free_unpacked
+ (StubCartridgeWriteResponse *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubCartridgeWriteResponse_Closure)
+ (const StubCartridgeWriteResponse *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub__cartridge_write_response__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_Stub_5fCartridgeWriteResponse_2eproto__INCLUDED */
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Dispenser.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Dispenser.c
new file mode 100644
index 000000000..0f7b90e8c
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Dispenser.c
@@ -0,0 +1,41 @@
+
+
+#include <stdbool.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <string.h>
+
+#include "inc/hw_memmap.h"
+#include "inc/hw_types.h"
+#include "inc/hw_uart.h"
+#include "driverlib/gpio.h"
+
+#include "MessageContainer.pb-c.h"
+
+#include "Stub_DispenserResponse.pb-c.h"
+#include "Stub_DispenserRequest.pb-c.h"
+
+MessageContainer createContainer(MessageType type, char* token, protobuf_c_boolean completed, void* response, size_t (*packPtr)(void*, uint8_t*), size_t (*sizePtr)(void*));
+
+void Stub_DispenserRequest(MessageContainer* requestContainer)
+{
+ MessageContainer responseContainer;
+
+ StubDispenserRequest* request = stub__dispenser_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
+
+
+
+
+
+ StubDispenserResponse response = STUB__DISPENSER_RESPONSE__INIT;
+
+ responseContainer = createContainer(MESSAGE_TYPE__Stub_DispenserResponse, requestContainer->token, true, &response, &stub__dispenser_response__pack, &stub__dispenser_response__get_packed_size);
+
+ //-------------------------------------------------------------------------------------------
+ uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer));
+ size_t container_size = message_container__pack(&responseContainer, container_buffer);
+ SendChars((char*)container_buffer, container_size);
+ free(container_buffer);
+ free(requestContainer);
+}
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Dispenser.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Dispenser.h
new file mode 100644
index 000000000..b9f82d577
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Dispenser.h
@@ -0,0 +1 @@
+void Stub_DispenserRequest(MessageContainer* requestContainer); \ No newline at end of file
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_DispenserRequest.pb-c.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_DispenserRequest.pb-c.c
new file mode 100644
index 000000000..6763976cf
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_DispenserRequest.pb-c.c
@@ -0,0 +1,144 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_DispenserRequest.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "Stub_DispenserRequest.pb-c.h"
+void stub__dispenser_request__init
+ (StubDispenserRequest *message)
+{
+ static const StubDispenserRequest init_value = STUB__DISPENSER_REQUEST__INIT;
+ *message = init_value;
+}
+size_t stub__dispenser_request__get_packed_size
+ (const StubDispenserRequest *message)
+{
+ assert(message->base.descriptor == &stub__dispenser_request__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub__dispenser_request__pack
+ (const StubDispenserRequest *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub__dispenser_request__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub__dispenser_request__pack_to_buffer
+ (const StubDispenserRequest *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub__dispenser_request__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubDispenserRequest *
+ stub__dispenser_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubDispenserRequest *)
+ protobuf_c_message_unpack (&stub__dispenser_request__descriptor,
+ allocator, len, data);
+}
+void stub__dispenser_request__free_unpacked
+ (StubDispenserRequest *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub__dispenser_request__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub__dispenser_request__field_descriptors[5] =
+{
+ {
+ "DispenserId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubDispenserRequest, has_dispenserid),
+ offsetof(StubDispenserRequest, dispenserid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Start",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubDispenserRequest, has_start),
+ offsetof(StubDispenserRequest, start),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "SetDirection",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubDispenserRequest, has_setdirection),
+ offsetof(StubDispenserRequest, setdirection),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "SetMicrostepDivision",
+ 4,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_INT32,
+ offsetof(StubDispenserRequest, has_setmicrostepdivision),
+ offsetof(StubDispenserRequest, setmicrostepdivision),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "SetSpeed",
+ 5,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_INT32,
+ offsetof(StubDispenserRequest, has_setspeed),
+ offsetof(StubDispenserRequest, setspeed),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub__dispenser_request__field_indices_by_name[] = {
+ 0, /* field[0] = DispenserId */
+ 2, /* field[2] = SetDirection */
+ 3, /* field[3] = SetMicrostepDivision */
+ 4, /* field[4] = SetSpeed */
+ 1, /* field[1] = Start */
+};
+static const ProtobufCIntRange stub__dispenser_request__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 5 }
+};
+const ProtobufCMessageDescriptor stub__dispenser_request__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "Stub_DispenserRequest",
+ "StubDispenserRequest",
+ "StubDispenserRequest",
+ "",
+ sizeof(StubDispenserRequest),
+ 5,
+ stub__dispenser_request__field_descriptors,
+ stub__dispenser_request__field_indices_by_name,
+ 1, stub__dispenser_request__number_ranges,
+ (ProtobufCMessageInit) stub__dispenser_request__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_DispenserRequest.pb-c.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_DispenserRequest.pb-c.h
new file mode 100644
index 000000000..e45e3f1f4
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_DispenserRequest.pb-c.h
@@ -0,0 +1,92 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_DispenserRequest.proto */
+
+#ifndef PROTOBUF_C_Stub_5fDispenserRequest_2eproto__INCLUDED
+#define PROTOBUF_C_Stub_5fDispenserRequest_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
+#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+
+typedef struct _StubDispenserRequest StubDispenserRequest;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubDispenserRequest
+{
+ ProtobufCMessage base;
+ /*
+ * 0..7
+ */
+ protobuf_c_boolean has_dispenserid;
+ uint32_t dispenserid;
+ /*
+ * 1-start 0-stop
+ */
+ protobuf_c_boolean has_start;
+ protobuf_c_boolean start;
+ /*
+ * 1-cw 0-ccw
+ */
+ protobuf_c_boolean has_setdirection;
+ protobuf_c_boolean setdirection;
+ /*
+ * No. of steps for 360 deg.
+ */
+ protobuf_c_boolean has_setmicrostepdivision;
+ int32_t setmicrostepdivision;
+ protobuf_c_boolean has_setspeed;
+ int32_t setspeed;
+};
+#define STUB__DISPENSER_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub__dispenser_request__descriptor) \
+ , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+
+
+/* StubDispenserRequest methods */
+void stub__dispenser_request__init
+ (StubDispenserRequest *message);
+size_t stub__dispenser_request__get_packed_size
+ (const StubDispenserRequest *message);
+size_t stub__dispenser_request__pack
+ (const StubDispenserRequest *message,
+ uint8_t *out);
+size_t stub__dispenser_request__pack_to_buffer
+ (const StubDispenserRequest *message,
+ ProtobufCBuffer *buffer);
+StubDispenserRequest *
+ stub__dispenser_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub__dispenser_request__free_unpacked
+ (StubDispenserRequest *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubDispenserRequest_Closure)
+ (const StubDispenserRequest *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub__dispenser_request__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_Stub_5fDispenserRequest_2eproto__INCLUDED */
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_DispenserResponse.pb-c.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_DispenserResponse.pb-c.c
new file mode 100644
index 000000000..8fcc49027
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_DispenserResponse.pb-c.c
@@ -0,0 +1,131 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_DispenserResponse.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "Stub_DispenserResponse.pb-c.h"
+void stub__dispenser_response__init
+ (StubDispenserResponse *message)
+{
+ static const StubDispenserResponse init_value = STUB__DISPENSER_RESPONSE__INIT;
+ *message = init_value;
+}
+size_t stub__dispenser_response__get_packed_size
+ (const StubDispenserResponse *message)
+{
+ assert(message->base.descriptor == &stub__dispenser_response__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub__dispenser_response__pack
+ (const StubDispenserResponse *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub__dispenser_response__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub__dispenser_response__pack_to_buffer
+ (const StubDispenserResponse *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub__dispenser_response__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubDispenserResponse *
+ stub__dispenser_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubDispenserResponse *)
+ protobuf_c_message_unpack (&stub__dispenser_response__descriptor,
+ allocator, len, data);
+}
+void stub__dispenser_response__free_unpacked
+ (StubDispenserResponse *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub__dispenser_response__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub__dispenser_response__field_descriptors[4] =
+{
+ {
+ "DispenserId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubDispenserResponse, has_dispenserid),
+ offsetof(StubDispenserResponse, dispenserid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "DispenserPosition",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubDispenserResponse, has_dispenserposition),
+ offsetof(StubDispenserResponse, dispenserposition),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "InkWorningLevel",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubDispenserResponse, has_inkworninglevel),
+ offsetof(StubDispenserResponse, inkworninglevel),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Status",
+ 4,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubDispenserResponse, has_status),
+ offsetof(StubDispenserResponse, status),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub__dispenser_response__field_indices_by_name[] = {
+ 0, /* field[0] = DispenserId */
+ 1, /* field[1] = DispenserPosition */
+ 2, /* field[2] = InkWorningLevel */
+ 3, /* field[3] = Status */
+};
+static const ProtobufCIntRange stub__dispenser_response__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 4 }
+};
+const ProtobufCMessageDescriptor stub__dispenser_response__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "Stub_DispenserResponse",
+ "StubDispenserResponse",
+ "StubDispenserResponse",
+ "",
+ sizeof(StubDispenserResponse),
+ 4,
+ stub__dispenser_response__field_descriptors,
+ stub__dispenser_response__field_indices_by_name,
+ 1, stub__dispenser_response__number_ranges,
+ (ProtobufCMessageInit) stub__dispenser_response__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_DispenserResponse.pb-c.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_DispenserResponse.pb-c.h
new file mode 100644
index 000000000..71c174d4d
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_DispenserResponse.pb-c.h
@@ -0,0 +1,89 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_DispenserResponse.proto */
+
+#ifndef PROTOBUF_C_Stub_5fDispenserResponse_2eproto__INCLUDED
+#define PROTOBUF_C_Stub_5fDispenserResponse_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
+#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+
+typedef struct _StubDispenserResponse StubDispenserResponse;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubDispenserResponse
+{
+ ProtobufCMessage base;
+ /*
+ * 0..7
+ */
+ protobuf_c_boolean has_dispenserid;
+ uint32_t dispenserid;
+ /*
+ */
+ protobuf_c_boolean has_dispenserposition;
+ uint32_t dispenserposition;
+ /*
+ * 1- critical 2- level 3- overflow
+ */
+ protobuf_c_boolean has_inkworninglevel;
+ uint32_t inkworninglevel;
+ /*
+ * 0-OK 1-Failed
+ */
+ protobuf_c_boolean has_status;
+ protobuf_c_boolean status;
+};
+#define STUB__DISPENSER_RESPONSE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub__dispenser_response__descriptor) \
+ , 0, 0, 0, 0, 0, 0, 0, 0 }
+
+
+/* StubDispenserResponse methods */
+void stub__dispenser_response__init
+ (StubDispenserResponse *message);
+size_t stub__dispenser_response__get_packed_size
+ (const StubDispenserResponse *message);
+size_t stub__dispenser_response__pack
+ (const StubDispenserResponse *message,
+ uint8_t *out);
+size_t stub__dispenser_response__pack_to_buffer
+ (const StubDispenserResponse *message,
+ ProtobufCBuffer *buffer);
+StubDispenserResponse *
+ stub__dispenser_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub__dispenser_response__free_unpacked
+ (StubDispenserResponse *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubDispenserResponse_Closure)
+ (const StubDispenserResponse *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub__dispenser_response__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_Stub_5fDispenserResponse_2eproto__INCLUDED */
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIO.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIO.c
new file mode 100644
index 000000000..c9d713b60
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIO.c
@@ -0,0 +1,191 @@
+
+
+//#include <protobuf-c/person-pb-c.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <string.h>
+//#include "inc/hw_ints.h"
+#include "inc/hw_memmap.h"
+#include "inc/hw_types.h"
+#include "inc/hw_uart.h"
+#include "driverlib/gpio.h"
+
+#include "MessageContainer.pb-c.h"
+
+#include "Stub_GPIOWriteBitRequest.pb-c.h"
+#include "Stub_GPIOWriteBitResponse.pb-c.h"
+#include "Stub_GPIOReadByteResponse.pb-c.h"
+#include "Stub_GPIOReadByteRequest.pb-c.h"
+
+MessageContainer createContainer(MessageType type, char* token, protobuf_c_boolean completed, void* response, size_t (*packPtr)(void*, uint8_t*), size_t (*sizePtr)(void*));
+
+void Stub_GPIOWriteBitRequest(MessageContainer* requestContainer)
+{
+ MessageContainer responseContainer;
+
+ StubGPIOWriteBitRequest* request = stub__gpiowrite_bit_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
+
+
+ uint8_t PinId;
+ uint32_t PortId;
+
+ switch(request->pinid)
+ {
+ case 0:
+ PinId = GPIO_PIN_0;
+ break;
+ case 1:
+ PinId = GPIO_PIN_1;
+ break;
+ case 2:
+ PinId = GPIO_PIN_2;
+ break;
+ case 3:
+ PinId = GPIO_PIN_3;
+ break;
+ case 4:
+ PinId = GPIO_PIN_4;
+ break;
+ case 5:
+ PinId = GPIO_PIN_5;
+ break;
+ case 6:
+ PinId = GPIO_PIN_6;
+ break;
+ case 7:
+ PinId = GPIO_PIN_7;
+ break;
+ default:
+ break;
+ }
+
+ switch(request->portid)
+ {
+ case 0:
+ PortId = GPIO_PORTA_BASE;
+ break;
+ case 1:
+ PortId = GPIO_PORTB_BASE;
+ break;
+ case 2:
+ PortId = GPIO_PORTC_BASE;
+ break;
+ case 3:
+ PortId = GPIO_PORTD_BASE;
+ break;
+ case 4:
+ PortId = GPIO_PORTE_BASE;
+ break;
+ case 5:
+ PortId = GPIO_PORTF_BASE;
+ break;
+ case 6:
+ PortId = GPIO_PORTH_BASE;
+ break;
+ case 7:
+ PortId = GPIO_PORTK_BASE;
+ break;
+ case 8:
+ PortId = GPIO_PORTL_BASE;
+ break;
+ case 9:
+ PortId = GPIO_PORTM_BASE;
+ break;
+ case 11:
+ PortId = GPIO_PORTN_BASE;
+ break;
+ case 12:
+ PortId = GPIO_PORTP_BASE;
+ break;
+ case 13:
+ PortId = GPIO_PORTQ_BASE;
+ break;
+
+ default:
+ break;
+ }
+
+ GPIOPinWrite(PortId, PinId, PinId*request->bittowrite);//
+
+ StubGPIOWriteBitResponse response = STUB__GPIOWRITE_BIT_RESPONSE__INIT;
+
+ responseContainer = createContainer(MESSAGE_TYPE__Stub_GPIOWriteBitResponse, requestContainer->token, true, &response, &stub__gpiowrite_bit_response__pack, &stub__gpiowrite_bit_response__get_packed_size);
+
+ //-------------------------------------------------------------------------------------------
+ uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer));
+ size_t container_size = message_container__pack(&responseContainer, container_buffer);
+ SendChars((char*)container_buffer, container_size);
+ free(container_buffer);
+ free(requestContainer);
+}
+
+
+void Stub_GPIOReadByteRequest(MessageContainer* requestContainer)
+{
+ MessageContainer responseContainer;
+
+ StubGPIOReadByteRequest* request = stub__gpiowrite_bit_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
+
+ uint32_t PortId;
+
+ switch(request->portid)
+ {
+ case 0:
+ PortId = GPIO_PORTA_BASE;
+ break;
+ case 1:
+ PortId = GPIO_PORTB_BASE;
+ break;
+ case 2:
+ PortId = GPIO_PORTC_BASE;
+ break;
+ case 3:
+ PortId = GPIO_PORTD_BASE;
+ break;
+ case 4:
+ PortId = GPIO_PORTE_BASE;
+ break;
+ case 5:
+ PortId = GPIO_PORTF_BASE;
+ break;
+ case 6:
+ PortId = GPIO_PORTH_BASE;
+ break;
+ case 7:
+ PortId = GPIO_PORTK_BASE;
+ break;
+ case 8:
+ PortId = GPIO_PORTL_BASE;
+ break;
+ case 9:
+ PortId = GPIO_PORTM_BASE;
+ break;
+ case 11:
+ PortId = GPIO_PORTN_BASE;
+ break;
+ case 12:
+ PortId = GPIO_PORTP_BASE;
+ break;
+ case 13:
+ PortId = GPIO_PORTQ_BASE;
+ break;
+
+ default:
+ break;
+ }
+
+
+ StubGPIOReadByteResponse response = STUB__GPIOREAD_BYTE_RESPONSE__INIT;
+
+ responseContainer = createContainer(MESSAGE_TYPE__Stub_GPIOReadByteResponse, requestContainer->token, true, &response, &stub__gpioread_byte_response__pack, &stub__gpioread_byte_response__get_packed_size);
+
+ //-------------------------------------------------------------------------------------------
+ uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer));
+ size_t container_size = message_container__pack(&responseContainer, container_buffer);
+ SendChars((char*)container_buffer, container_size);
+ free(container_buffer);
+ free(requestContainer);
+}
+
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIO.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIO.h
new file mode 100644
index 000000000..03e5d0f99
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIO.h
@@ -0,0 +1,4 @@
+#include "MessageContainer.pb-c.h"
+
+void Stub_GPIOWriteBitRequest(MessageContainer* requestContainer);
+void Stub_GPIOReadByteRequest(MessageContainer* requestContainer);
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadBitRequest.pb-c.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadBitRequest.pb-c.c
new file mode 100644
index 000000000..2961fe9dc
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadBitRequest.pb-c.c
@@ -0,0 +1,105 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_GPIOReadBitRequest.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "Stub_GPIOReadBitRequest.pb-c.h"
+void stub__gpioread_bit_request__init
+ (StubGPIOReadBitRequest *message)
+{
+ static const StubGPIOReadBitRequest init_value = STUB__GPIOREAD_BIT_REQUEST__INIT;
+ *message = init_value;
+}
+size_t stub__gpioread_bit_request__get_packed_size
+ (const StubGPIOReadBitRequest *message)
+{
+ assert(message->base.descriptor == &stub__gpioread_bit_request__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub__gpioread_bit_request__pack
+ (const StubGPIOReadBitRequest *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub__gpioread_bit_request__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub__gpioread_bit_request__pack_to_buffer
+ (const StubGPIOReadBitRequest *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub__gpioread_bit_request__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubGPIOReadBitRequest *
+ stub__gpioread_bit_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubGPIOReadBitRequest *)
+ protobuf_c_message_unpack (&stub__gpioread_bit_request__descriptor,
+ allocator, len, data);
+}
+void stub__gpioread_bit_request__free_unpacked
+ (StubGPIOReadBitRequest *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub__gpioread_bit_request__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub__gpioread_bit_request__field_descriptors[2] =
+{
+ {
+ "PortId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubGPIOReadBitRequest, has_portid),
+ offsetof(StubGPIOReadBitRequest, portid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "PinId",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubGPIOReadBitRequest, has_pinid),
+ offsetof(StubGPIOReadBitRequest, pinid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub__gpioread_bit_request__field_indices_by_name[] = {
+ 1, /* field[1] = PinId */
+ 0, /* field[0] = PortId */
+};
+static const ProtobufCIntRange stub__gpioread_bit_request__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 2 }
+};
+const ProtobufCMessageDescriptor stub__gpioread_bit_request__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "Stub_GPIOReadBitRequest",
+ "StubGPIOReadBitRequest",
+ "StubGPIOReadBitRequest",
+ "",
+ sizeof(StubGPIOReadBitRequest),
+ 2,
+ stub__gpioread_bit_request__field_descriptors,
+ stub__gpioread_bit_request__field_indices_by_name,
+ 1, stub__gpioread_bit_request__number_ranges,
+ (ProtobufCMessageInit) stub__gpioread_bit_request__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadBitRequest.pb-c.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadBitRequest.pb-c.h
new file mode 100644
index 000000000..df5b795a7
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadBitRequest.pb-c.h
@@ -0,0 +1,80 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_GPIOReadBitRequest.proto */
+
+#ifndef PROTOBUF_C_Stub_5fGPIOReadBitRequest_2eproto__INCLUDED
+#define PROTOBUF_C_Stub_5fGPIOReadBitRequest_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
+#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+
+typedef struct _StubGPIOReadBitRequest StubGPIOReadBitRequest;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubGPIOReadBitRequest
+{
+ ProtobufCMessage base;
+ /*
+ * 0..119
+ */
+ protobuf_c_boolean has_portid;
+ uint32_t portid;
+ /*
+ * 0..7
+ */
+ protobuf_c_boolean has_pinid;
+ uint32_t pinid;
+};
+#define STUB__GPIOREAD_BIT_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub__gpioread_bit_request__descriptor) \
+ , 0, 0, 0, 0 }
+
+
+/* StubGPIOReadBitRequest methods */
+void stub__gpioread_bit_request__init
+ (StubGPIOReadBitRequest *message);
+size_t stub__gpioread_bit_request__get_packed_size
+ (const StubGPIOReadBitRequest *message);
+size_t stub__gpioread_bit_request__pack
+ (const StubGPIOReadBitRequest *message,
+ uint8_t *out);
+size_t stub__gpioread_bit_request__pack_to_buffer
+ (const StubGPIOReadBitRequest *message,
+ ProtobufCBuffer *buffer);
+StubGPIOReadBitRequest *
+ stub__gpioread_bit_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub__gpioread_bit_request__free_unpacked
+ (StubGPIOReadBitRequest *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubGPIOReadBitRequest_Closure)
+ (const StubGPIOReadBitRequest *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub__gpioread_bit_request__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_Stub_5fGPIOReadBitRequest_2eproto__INCLUDED */
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadBitResponse.pb-c.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadBitResponse.pb-c.c
new file mode 100644
index 000000000..5f20857a3
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadBitResponse.pb-c.c
@@ -0,0 +1,131 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_GPIOReadBitResponse.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "Stub_GPIOReadBitResponse.pb-c.h"
+void stub__gpioread_bit_response__init
+ (StubGPIOReadBitResponse *message)
+{
+ static const StubGPIOReadBitResponse init_value = STUB__GPIOREAD_BIT_RESPONSE__INIT;
+ *message = init_value;
+}
+size_t stub__gpioread_bit_response__get_packed_size
+ (const StubGPIOReadBitResponse *message)
+{
+ assert(message->base.descriptor == &stub__gpioread_bit_response__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub__gpioread_bit_response__pack
+ (const StubGPIOReadBitResponse *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub__gpioread_bit_response__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub__gpioread_bit_response__pack_to_buffer
+ (const StubGPIOReadBitResponse *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub__gpioread_bit_response__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubGPIOReadBitResponse *
+ stub__gpioread_bit_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubGPIOReadBitResponse *)
+ protobuf_c_message_unpack (&stub__gpioread_bit_response__descriptor,
+ allocator, len, data);
+}
+void stub__gpioread_bit_response__free_unpacked
+ (StubGPIOReadBitResponse *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub__gpioread_bit_response__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub__gpioread_bit_response__field_descriptors[4] =
+{
+ {
+ "PortId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubGPIOReadBitResponse, has_portid),
+ offsetof(StubGPIOReadBitResponse, portid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "PinId",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubGPIOReadBitResponse, has_pinid),
+ offsetof(StubGPIOReadBitResponse, pinid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "BitValue",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubGPIOReadBitResponse, has_bitvalue),
+ offsetof(StubGPIOReadBitResponse, bitvalue),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Status",
+ 4,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubGPIOReadBitResponse, has_status),
+ offsetof(StubGPIOReadBitResponse, status),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub__gpioread_bit_response__field_indices_by_name[] = {
+ 2, /* field[2] = BitValue */
+ 1, /* field[1] = PinId */
+ 0, /* field[0] = PortId */
+ 3, /* field[3] = Status */
+};
+static const ProtobufCIntRange stub__gpioread_bit_response__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 4 }
+};
+const ProtobufCMessageDescriptor stub__gpioread_bit_response__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "Stub_GPIOReadBitResponse",
+ "StubGPIOReadBitResponse",
+ "StubGPIOReadBitResponse",
+ "",
+ sizeof(StubGPIOReadBitResponse),
+ 4,
+ stub__gpioread_bit_response__field_descriptors,
+ stub__gpioread_bit_response__field_indices_by_name,
+ 1, stub__gpioread_bit_response__number_ranges,
+ (ProtobufCMessageInit) stub__gpioread_bit_response__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadBitResponse.pb-c.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadBitResponse.pb-c.h
new file mode 100644
index 000000000..3d7839939
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadBitResponse.pb-c.h
@@ -0,0 +1,87 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_GPIOReadBitResponse.proto */
+
+#ifndef PROTOBUF_C_Stub_5fGPIOReadBitResponse_2eproto__INCLUDED
+#define PROTOBUF_C_Stub_5fGPIOReadBitResponse_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
+#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+
+typedef struct _StubGPIOReadBitResponse StubGPIOReadBitResponse;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubGPIOReadBitResponse
+{
+ ProtobufCMessage base;
+ /*
+ * 0..119
+ */
+ protobuf_c_boolean has_portid;
+ uint32_t portid;
+ /*
+ * 0..7
+ */
+ protobuf_c_boolean has_pinid;
+ uint32_t pinid;
+ protobuf_c_boolean has_bitvalue;
+ protobuf_c_boolean bitvalue;
+ /*
+ * 0-OK 1-Failed
+ */
+ protobuf_c_boolean has_status;
+ protobuf_c_boolean status;
+};
+#define STUB__GPIOREAD_BIT_RESPONSE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub__gpioread_bit_response__descriptor) \
+ , 0, 0, 0, 0, 0, 0, 0, 0 }
+
+
+/* StubGPIOReadBitResponse methods */
+void stub__gpioread_bit_response__init
+ (StubGPIOReadBitResponse *message);
+size_t stub__gpioread_bit_response__get_packed_size
+ (const StubGPIOReadBitResponse *message);
+size_t stub__gpioread_bit_response__pack
+ (const StubGPIOReadBitResponse *message,
+ uint8_t *out);
+size_t stub__gpioread_bit_response__pack_to_buffer
+ (const StubGPIOReadBitResponse *message,
+ ProtobufCBuffer *buffer);
+StubGPIOReadBitResponse *
+ stub__gpioread_bit_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub__gpioread_bit_response__free_unpacked
+ (StubGPIOReadBitResponse *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubGPIOReadBitResponse_Closure)
+ (const StubGPIOReadBitResponse *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub__gpioread_bit_response__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_Stub_5fGPIOReadBitResponse_2eproto__INCLUDED */
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadByteRequest.pb-c.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadByteRequest.pb-c.c
new file mode 100644
index 000000000..3d9818383
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadByteRequest.pb-c.c
@@ -0,0 +1,92 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_GPIOReadByteRequest.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "Stub_GPIOReadByteRequest.pb-c.h"
+void stub__gpioread_byte_request__init
+ (StubGPIOReadByteRequest *message)
+{
+ static const StubGPIOReadByteRequest init_value = STUB__GPIOREAD_BYTE_REQUEST__INIT;
+ *message = init_value;
+}
+size_t stub__gpioread_byte_request__get_packed_size
+ (const StubGPIOReadByteRequest *message)
+{
+ assert(message->base.descriptor == &stub__gpioread_byte_request__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub__gpioread_byte_request__pack
+ (const StubGPIOReadByteRequest *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub__gpioread_byte_request__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub__gpioread_byte_request__pack_to_buffer
+ (const StubGPIOReadByteRequest *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub__gpioread_byte_request__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubGPIOReadByteRequest *
+ stub__gpioread_byte_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubGPIOReadByteRequest *)
+ protobuf_c_message_unpack (&stub__gpioread_byte_request__descriptor,
+ allocator, len, data);
+}
+void stub__gpioread_byte_request__free_unpacked
+ (StubGPIOReadByteRequest *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub__gpioread_byte_request__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub__gpioread_byte_request__field_descriptors[1] =
+{
+ {
+ "PortId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubGPIOReadByteRequest, has_portid),
+ offsetof(StubGPIOReadByteRequest, portid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub__gpioread_byte_request__field_indices_by_name[] = {
+ 0, /* field[0] = PortId */
+};
+static const ProtobufCIntRange stub__gpioread_byte_request__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 1 }
+};
+const ProtobufCMessageDescriptor stub__gpioread_byte_request__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "Stub_GPIOReadByteRequest",
+ "StubGPIOReadByteRequest",
+ "StubGPIOReadByteRequest",
+ "",
+ sizeof(StubGPIOReadByteRequest),
+ 1,
+ stub__gpioread_byte_request__field_descriptors,
+ stub__gpioread_byte_request__field_indices_by_name,
+ 1, stub__gpioread_byte_request__number_ranges,
+ (ProtobufCMessageInit) stub__gpioread_byte_request__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadByteRequest.pb-c.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadByteRequest.pb-c.h
new file mode 100644
index 000000000..8537440ab
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadByteRequest.pb-c.h
@@ -0,0 +1,75 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_GPIOReadByteRequest.proto */
+
+#ifndef PROTOBUF_C_Stub_5fGPIOReadByteRequest_2eproto__INCLUDED
+#define PROTOBUF_C_Stub_5fGPIOReadByteRequest_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
+#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+
+typedef struct _StubGPIOReadByteRequest StubGPIOReadByteRequest;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubGPIOReadByteRequest
+{
+ ProtobufCMessage base;
+ /*
+ * 0..119
+ */
+ protobuf_c_boolean has_portid;
+ uint32_t portid;
+};
+#define STUB__GPIOREAD_BYTE_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub__gpioread_byte_request__descriptor) \
+ , 0, 0 }
+
+
+/* StubGPIOReadByteRequest methods */
+void stub__gpioread_byte_request__init
+ (StubGPIOReadByteRequest *message);
+size_t stub__gpioread_byte_request__get_packed_size
+ (const StubGPIOReadByteRequest *message);
+size_t stub__gpioread_byte_request__pack
+ (const StubGPIOReadByteRequest *message,
+ uint8_t *out);
+size_t stub__gpioread_byte_request__pack_to_buffer
+ (const StubGPIOReadByteRequest *message,
+ ProtobufCBuffer *buffer);
+StubGPIOReadByteRequest *
+ stub__gpioread_byte_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub__gpioread_byte_request__free_unpacked
+ (StubGPIOReadByteRequest *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubGPIOReadByteRequest_Closure)
+ (const StubGPIOReadByteRequest *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub__gpioread_byte_request__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_Stub_5fGPIOReadByteRequest_2eproto__INCLUDED */
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadByteResponse.pb-c.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadByteResponse.pb-c.c
new file mode 100644
index 000000000..34fb3bfd0
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadByteResponse.pb-c.c
@@ -0,0 +1,118 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_GPIOReadByteResponse.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "Stub_GPIOReadByteResponse.pb-c.h"
+void stub__gpioread_byte_response__init
+ (StubGPIOReadByteResponse *message)
+{
+ static const StubGPIOReadByteResponse init_value = STUB__GPIOREAD_BYTE_RESPONSE__INIT;
+ *message = init_value;
+}
+size_t stub__gpioread_byte_response__get_packed_size
+ (const StubGPIOReadByteResponse *message)
+{
+ assert(message->base.descriptor == &stub__gpioread_byte_response__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub__gpioread_byte_response__pack
+ (const StubGPIOReadByteResponse *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub__gpioread_byte_response__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub__gpioread_byte_response__pack_to_buffer
+ (const StubGPIOReadByteResponse *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub__gpioread_byte_response__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubGPIOReadByteResponse *
+ stub__gpioread_byte_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubGPIOReadByteResponse *)
+ protobuf_c_message_unpack (&stub__gpioread_byte_response__descriptor,
+ allocator, len, data);
+}
+void stub__gpioread_byte_response__free_unpacked
+ (StubGPIOReadByteResponse *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub__gpioread_byte_response__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub__gpioread_byte_response__field_descriptors[3] =
+{
+ {
+ "PortId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubGPIOReadByteResponse, has_portid),
+ offsetof(StubGPIOReadByteResponse, portid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "ByteValue",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubGPIOReadByteResponse, has_bytevalue),
+ offsetof(StubGPIOReadByteResponse, bytevalue),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "status",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubGPIOReadByteResponse, has_status),
+ offsetof(StubGPIOReadByteResponse, status),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub__gpioread_byte_response__field_indices_by_name[] = {
+ 1, /* field[1] = ByteValue */
+ 0, /* field[0] = PortId */
+ 2, /* field[2] = status */
+};
+static const ProtobufCIntRange stub__gpioread_byte_response__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 3 }
+};
+const ProtobufCMessageDescriptor stub__gpioread_byte_response__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "Stub_GPIOReadByteResponse",
+ "StubGPIOReadByteResponse",
+ "StubGPIOReadByteResponse",
+ "",
+ sizeof(StubGPIOReadByteResponse),
+ 3,
+ stub__gpioread_byte_response__field_descriptors,
+ stub__gpioread_byte_response__field_indices_by_name,
+ 1, stub__gpioread_byte_response__number_ranges,
+ (ProtobufCMessageInit) stub__gpioread_byte_response__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadByteResponse.pb-c.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadByteResponse.pb-c.h
new file mode 100644
index 000000000..93f82f2eb
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOReadByteResponse.pb-c.h
@@ -0,0 +1,82 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_GPIOReadByteResponse.proto */
+
+#ifndef PROTOBUF_C_Stub_5fGPIOReadByteResponse_2eproto__INCLUDED
+#define PROTOBUF_C_Stub_5fGPIOReadByteResponse_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
+#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+
+typedef struct _StubGPIOReadByteResponse StubGPIOReadByteResponse;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubGPIOReadByteResponse
+{
+ ProtobufCMessage base;
+ /*
+ * 0..119
+ */
+ protobuf_c_boolean has_portid;
+ uint32_t portid;
+ protobuf_c_boolean has_bytevalue;
+ uint32_t bytevalue;
+ /*
+ * 0-OK 1-Failed
+ */
+ protobuf_c_boolean has_status;
+ protobuf_c_boolean status;
+};
+#define STUB__GPIOREAD_BYTE_RESPONSE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub__gpioread_byte_response__descriptor) \
+ , 0, 0, 0, 0, 0, 0 }
+
+
+/* StubGPIOReadByteResponse methods */
+void stub__gpioread_byte_response__init
+ (StubGPIOReadByteResponse *message);
+size_t stub__gpioread_byte_response__get_packed_size
+ (const StubGPIOReadByteResponse *message);
+size_t stub__gpioread_byte_response__pack
+ (const StubGPIOReadByteResponse *message,
+ uint8_t *out);
+size_t stub__gpioread_byte_response__pack_to_buffer
+ (const StubGPIOReadByteResponse *message,
+ ProtobufCBuffer *buffer);
+StubGPIOReadByteResponse *
+ stub__gpioread_byte_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub__gpioread_byte_response__free_unpacked
+ (StubGPIOReadByteResponse *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubGPIOReadByteResponse_Closure)
+ (const StubGPIOReadByteResponse *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub__gpioread_byte_response__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_Stub_5fGPIOReadByteResponse_2eproto__INCLUDED */
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteBitRequest.pb-c.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteBitRequest.pb-c.c
new file mode 100644
index 000000000..e0050a153
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteBitRequest.pb-c.c
@@ -0,0 +1,118 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_GPIOWriteBitRequest.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "Stub_GPIOWriteBitRequest.pb-c.h"
+void stub__gpiowrite_bit_request__init
+ (StubGPIOWriteBitRequest *message)
+{
+ static const StubGPIOWriteBitRequest init_value = STUB__GPIOWRITE_BIT_REQUEST__INIT;
+ *message = init_value;
+}
+size_t stub__gpiowrite_bit_request__get_packed_size
+ (const StubGPIOWriteBitRequest *message)
+{
+ assert(message->base.descriptor == &stub__gpiowrite_bit_request__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub__gpiowrite_bit_request__pack
+ (const StubGPIOWriteBitRequest *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub__gpiowrite_bit_request__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub__gpiowrite_bit_request__pack_to_buffer
+ (const StubGPIOWriteBitRequest *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub__gpiowrite_bit_request__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubGPIOWriteBitRequest *
+ stub__gpiowrite_bit_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubGPIOWriteBitRequest *)
+ protobuf_c_message_unpack (&stub__gpiowrite_bit_request__descriptor,
+ allocator, len, data);
+}
+void stub__gpiowrite_bit_request__free_unpacked
+ (StubGPIOWriteBitRequest *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub__gpiowrite_bit_request__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub__gpiowrite_bit_request__field_descriptors[3] =
+{
+ {
+ "PortId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubGPIOWriteBitRequest, has_portid),
+ offsetof(StubGPIOWriteBitRequest, portid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "PinId",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubGPIOWriteBitRequest, has_pinid),
+ offsetof(StubGPIOWriteBitRequest, pinid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "BitToWrite",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubGPIOWriteBitRequest, has_bittowrite),
+ offsetof(StubGPIOWriteBitRequest, bittowrite),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub__gpiowrite_bit_request__field_indices_by_name[] = {
+ 2, /* field[2] = BitToWrite */
+ 1, /* field[1] = PinId */
+ 0, /* field[0] = PortId */
+};
+static const ProtobufCIntRange stub__gpiowrite_bit_request__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 3 }
+};
+const ProtobufCMessageDescriptor stub__gpiowrite_bit_request__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "Stub_GPIOWriteBitRequest",
+ "StubGPIOWriteBitRequest",
+ "StubGPIOWriteBitRequest",
+ "",
+ sizeof(StubGPIOWriteBitRequest),
+ 3,
+ stub__gpiowrite_bit_request__field_descriptors,
+ stub__gpiowrite_bit_request__field_indices_by_name,
+ 1, stub__gpiowrite_bit_request__number_ranges,
+ (ProtobufCMessageInit) stub__gpiowrite_bit_request__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteBitRequest.pb-c.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteBitRequest.pb-c.h
new file mode 100644
index 000000000..560cc6790
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteBitRequest.pb-c.h
@@ -0,0 +1,82 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_GPIOWriteBitRequest.proto */
+
+#ifndef PROTOBUF_C_Stub_5fGPIOWriteBitRequest_2eproto__INCLUDED
+#define PROTOBUF_C_Stub_5fGPIOWriteBitRequest_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
+#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+
+typedef struct _StubGPIOWriteBitRequest StubGPIOWriteBitRequest;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubGPIOWriteBitRequest
+{
+ ProtobufCMessage base;
+ /*
+ * 0..119
+ */
+ protobuf_c_boolean has_portid;
+ uint32_t portid;
+ /*
+ * 0..7
+ */
+ protobuf_c_boolean has_pinid;
+ uint32_t pinid;
+ protobuf_c_boolean has_bittowrite;
+ protobuf_c_boolean bittowrite;
+};
+#define STUB__GPIOWRITE_BIT_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub__gpiowrite_bit_request__descriptor) \
+ , 0, 0, 0, 0, 0, 0 }
+
+
+/* StubGPIOWriteBitRequest methods */
+void stub__gpiowrite_bit_request__init
+ (StubGPIOWriteBitRequest *message);
+size_t stub__gpiowrite_bit_request__get_packed_size
+ (const StubGPIOWriteBitRequest *message);
+size_t stub__gpiowrite_bit_request__pack
+ (const StubGPIOWriteBitRequest *message,
+ uint8_t *out);
+size_t stub__gpiowrite_bit_request__pack_to_buffer
+ (const StubGPIOWriteBitRequest *message,
+ ProtobufCBuffer *buffer);
+StubGPIOWriteBitRequest *
+ stub__gpiowrite_bit_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub__gpiowrite_bit_request__free_unpacked
+ (StubGPIOWriteBitRequest *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubGPIOWriteBitRequest_Closure)
+ (const StubGPIOWriteBitRequest *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub__gpiowrite_bit_request__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_Stub_5fGPIOWriteBitRequest_2eproto__INCLUDED */
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteBitResponse.pb-c.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteBitResponse.pb-c.c
new file mode 100644
index 000000000..d58950b3d
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteBitResponse.pb-c.c
@@ -0,0 +1,118 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_GPIOWriteBitResponse.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "Stub_GPIOWriteBitResponse.pb-c.h"
+void stub__gpiowrite_bit_response__init
+ (StubGPIOWriteBitResponse *message)
+{
+ static const StubGPIOWriteBitResponse init_value = STUB__GPIOWRITE_BIT_RESPONSE__INIT;
+ *message = init_value;
+}
+size_t stub__gpiowrite_bit_response__get_packed_size
+ (const StubGPIOWriteBitResponse *message)
+{
+ assert(message->base.descriptor == &stub__gpiowrite_bit_response__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub__gpiowrite_bit_response__pack
+ (const StubGPIOWriteBitResponse *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub__gpiowrite_bit_response__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub__gpiowrite_bit_response__pack_to_buffer
+ (const StubGPIOWriteBitResponse *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub__gpiowrite_bit_response__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubGPIOWriteBitResponse *
+ stub__gpiowrite_bit_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubGPIOWriteBitResponse *)
+ protobuf_c_message_unpack (&stub__gpiowrite_bit_response__descriptor,
+ allocator, len, data);
+}
+void stub__gpiowrite_bit_response__free_unpacked
+ (StubGPIOWriteBitResponse *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub__gpiowrite_bit_response__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub__gpiowrite_bit_response__field_descriptors[3] =
+{
+ {
+ "PortId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubGPIOWriteBitResponse, has_portid),
+ offsetof(StubGPIOWriteBitResponse, portid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "PinId",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubGPIOWriteBitResponse, has_pinid),
+ offsetof(StubGPIOWriteBitResponse, pinid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Status",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubGPIOWriteBitResponse, has_status),
+ offsetof(StubGPIOWriteBitResponse, status),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub__gpiowrite_bit_response__field_indices_by_name[] = {
+ 1, /* field[1] = PinId */
+ 0, /* field[0] = PortId */
+ 2, /* field[2] = Status */
+};
+static const ProtobufCIntRange stub__gpiowrite_bit_response__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 3 }
+};
+const ProtobufCMessageDescriptor stub__gpiowrite_bit_response__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "Stub_GPIOWriteBitResponse",
+ "StubGPIOWriteBitResponse",
+ "StubGPIOWriteBitResponse",
+ "",
+ sizeof(StubGPIOWriteBitResponse),
+ 3,
+ stub__gpiowrite_bit_response__field_descriptors,
+ stub__gpiowrite_bit_response__field_indices_by_name,
+ 1, stub__gpiowrite_bit_response__number_ranges,
+ (ProtobufCMessageInit) stub__gpiowrite_bit_response__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteBitResponse.pb-c.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteBitResponse.pb-c.h
new file mode 100644
index 000000000..d9399f891
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteBitResponse.pb-c.h
@@ -0,0 +1,85 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_GPIOWriteBitResponse.proto */
+
+#ifndef PROTOBUF_C_Stub_5fGPIOWriteBitResponse_2eproto__INCLUDED
+#define PROTOBUF_C_Stub_5fGPIOWriteBitResponse_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
+#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+
+typedef struct _StubGPIOWriteBitResponse StubGPIOWriteBitResponse;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubGPIOWriteBitResponse
+{
+ ProtobufCMessage base;
+ /*
+ * 0..119
+ */
+ protobuf_c_boolean has_portid;
+ uint32_t portid;
+ /*
+ * 0..7
+ */
+ protobuf_c_boolean has_pinid;
+ uint32_t pinid;
+ /*
+ * 0-OK 1-Failed
+ */
+ protobuf_c_boolean has_status;
+ protobuf_c_boolean status;
+};
+#define STUB__GPIOWRITE_BIT_RESPONSE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub__gpiowrite_bit_response__descriptor) \
+ , 0, 0, 0, 0, 0, 0 }
+
+
+/* StubGPIOWriteBitResponse methods */
+void stub__gpiowrite_bit_response__init
+ (StubGPIOWriteBitResponse *message);
+size_t stub__gpiowrite_bit_response__get_packed_size
+ (const StubGPIOWriteBitResponse *message);
+size_t stub__gpiowrite_bit_response__pack
+ (const StubGPIOWriteBitResponse *message,
+ uint8_t *out);
+size_t stub__gpiowrite_bit_response__pack_to_buffer
+ (const StubGPIOWriteBitResponse *message,
+ ProtobufCBuffer *buffer);
+StubGPIOWriteBitResponse *
+ stub__gpiowrite_bit_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub__gpiowrite_bit_response__free_unpacked
+ (StubGPIOWriteBitResponse *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubGPIOWriteBitResponse_Closure)
+ (const StubGPIOWriteBitResponse *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub__gpiowrite_bit_response__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_Stub_5fGPIOWriteBitResponse_2eproto__INCLUDED */
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteByteRequest.pb-c.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteByteRequest.pb-c.c
new file mode 100644
index 000000000..c73327c71
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteByteRequest.pb-c.c
@@ -0,0 +1,106 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_GPIOWriteByteRequest.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "Stub_GPIOWriteByteRequest.pb-c.h"
+void stub__gpiowrite_byte_request__init
+ (StubGPIOWriteByteRequest *message)
+{
+ static const StubGPIOWriteByteRequest init_value = STUB__GPIOWRITE_BYTE_REQUEST__INIT;
+ *message = init_value;
+}
+size_t stub__gpiowrite_byte_request__get_packed_size
+ (const StubGPIOWriteByteRequest *message)
+{
+ assert(message->base.descriptor == &stub__gpiowrite_byte_request__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub__gpiowrite_byte_request__pack
+ (const StubGPIOWriteByteRequest *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub__gpiowrite_byte_request__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub__gpiowrite_byte_request__pack_to_buffer
+ (const StubGPIOWriteByteRequest *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub__gpiowrite_byte_request__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubGPIOWriteByteRequest *
+ stub__gpiowrite_byte_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubGPIOWriteByteRequest *)
+ protobuf_c_message_unpack (&stub__gpiowrite_byte_request__descriptor,
+ allocator, len, data);
+}
+void stub__gpiowrite_byte_request__free_unpacked
+ (StubGPIOWriteByteRequest *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub__gpiowrite_byte_request__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub__gpiowrite_byte_request__field_descriptors[2] =
+{
+ {
+ "PortId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubGPIOWriteByteRequest, has_portid),
+ offsetof(StubGPIOWriteByteRequest, portid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "DataToWrite",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubGPIOWriteByteRequest, has_datatowrite),
+ offsetof(StubGPIOWriteByteRequest, datatowrite),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub__gpiowrite_byte_request__field_indices_by_name[] = {
+ 1, /* field[1] = DataToWrite */
+ 0, /* field[0] = PortId */
+};
+static const ProtobufCIntRange stub__gpiowrite_byte_request__number_ranges[2 + 1] =
+{
+ { 1, 0 },
+ { 3, 1 },
+ { 0, 2 }
+};
+const ProtobufCMessageDescriptor stub__gpiowrite_byte_request__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "Stub_GPIOWriteByteRequest",
+ "StubGPIOWriteByteRequest",
+ "StubGPIOWriteByteRequest",
+ "",
+ sizeof(StubGPIOWriteByteRequest),
+ 2,
+ stub__gpiowrite_byte_request__field_descriptors,
+ stub__gpiowrite_byte_request__field_indices_by_name,
+ 2, stub__gpiowrite_byte_request__number_ranges,
+ (ProtobufCMessageInit) stub__gpiowrite_byte_request__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteByteRequest.pb-c.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteByteRequest.pb-c.h
new file mode 100644
index 000000000..fc8378ba3
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteByteRequest.pb-c.h
@@ -0,0 +1,77 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_GPIOWriteByteRequest.proto */
+
+#ifndef PROTOBUF_C_Stub_5fGPIOWriteByteRequest_2eproto__INCLUDED
+#define PROTOBUF_C_Stub_5fGPIOWriteByteRequest_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
+#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+
+typedef struct _StubGPIOWriteByteRequest StubGPIOWriteByteRequest;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubGPIOWriteByteRequest
+{
+ ProtobufCMessage base;
+ /*
+ * 0..119
+ */
+ protobuf_c_boolean has_portid;
+ uint32_t portid;
+ protobuf_c_boolean has_datatowrite;
+ uint32_t datatowrite;
+};
+#define STUB__GPIOWRITE_BYTE_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub__gpiowrite_byte_request__descriptor) \
+ , 0, 0, 0, 0 }
+
+
+/* StubGPIOWriteByteRequest methods */
+void stub__gpiowrite_byte_request__init
+ (StubGPIOWriteByteRequest *message);
+size_t stub__gpiowrite_byte_request__get_packed_size
+ (const StubGPIOWriteByteRequest *message);
+size_t stub__gpiowrite_byte_request__pack
+ (const StubGPIOWriteByteRequest *message,
+ uint8_t *out);
+size_t stub__gpiowrite_byte_request__pack_to_buffer
+ (const StubGPIOWriteByteRequest *message,
+ ProtobufCBuffer *buffer);
+StubGPIOWriteByteRequest *
+ stub__gpiowrite_byte_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub__gpiowrite_byte_request__free_unpacked
+ (StubGPIOWriteByteRequest *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubGPIOWriteByteRequest_Closure)
+ (const StubGPIOWriteByteRequest *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub__gpiowrite_byte_request__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_Stub_5fGPIOWriteByteRequest_2eproto__INCLUDED */
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteByteResponse.pb-c.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteByteResponse.pb-c.c
new file mode 100644
index 000000000..eef9b938b
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteByteResponse.pb-c.c
@@ -0,0 +1,106 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_GPIOWriteByteResponse.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "Stub_GPIOWriteByteResponse.pb-c.h"
+void stub__gpiowrite_byte_response__init
+ (StubGPIOWriteByteResponse *message)
+{
+ static const StubGPIOWriteByteResponse init_value = STUB__GPIOWRITE_BYTE_RESPONSE__INIT;
+ *message = init_value;
+}
+size_t stub__gpiowrite_byte_response__get_packed_size
+ (const StubGPIOWriteByteResponse *message)
+{
+ assert(message->base.descriptor == &stub__gpiowrite_byte_response__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub__gpiowrite_byte_response__pack
+ (const StubGPIOWriteByteResponse *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub__gpiowrite_byte_response__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub__gpiowrite_byte_response__pack_to_buffer
+ (const StubGPIOWriteByteResponse *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub__gpiowrite_byte_response__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubGPIOWriteByteResponse *
+ stub__gpiowrite_byte_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubGPIOWriteByteResponse *)
+ protobuf_c_message_unpack (&stub__gpiowrite_byte_response__descriptor,
+ allocator, len, data);
+}
+void stub__gpiowrite_byte_response__free_unpacked
+ (StubGPIOWriteByteResponse *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub__gpiowrite_byte_response__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub__gpiowrite_byte_response__field_descriptors[2] =
+{
+ {
+ "PortId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubGPIOWriteByteResponse, has_portid),
+ offsetof(StubGPIOWriteByteResponse, portid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "status",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubGPIOWriteByteResponse, has_status),
+ offsetof(StubGPIOWriteByteResponse, status),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub__gpiowrite_byte_response__field_indices_by_name[] = {
+ 0, /* field[0] = PortId */
+ 1, /* field[1] = status */
+};
+static const ProtobufCIntRange stub__gpiowrite_byte_response__number_ranges[2 + 1] =
+{
+ { 1, 0 },
+ { 3, 1 },
+ { 0, 2 }
+};
+const ProtobufCMessageDescriptor stub__gpiowrite_byte_response__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "Stub_GPIOWriteByteResponse",
+ "StubGPIOWriteByteResponse",
+ "StubGPIOWriteByteResponse",
+ "",
+ sizeof(StubGPIOWriteByteResponse),
+ 2,
+ stub__gpiowrite_byte_response__field_descriptors,
+ stub__gpiowrite_byte_response__field_indices_by_name,
+ 2, stub__gpiowrite_byte_response__number_ranges,
+ (ProtobufCMessageInit) stub__gpiowrite_byte_response__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteByteResponse.pb-c.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteByteResponse.pb-c.h
new file mode 100644
index 000000000..72c9754ea
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_GPIOWriteByteResponse.pb-c.h
@@ -0,0 +1,80 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_GPIOWriteByteResponse.proto */
+
+#ifndef PROTOBUF_C_Stub_5fGPIOWriteByteResponse_2eproto__INCLUDED
+#define PROTOBUF_C_Stub_5fGPIOWriteByteResponse_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
+#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+
+typedef struct _StubGPIOWriteByteResponse StubGPIOWriteByteResponse;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubGPIOWriteByteResponse
+{
+ ProtobufCMessage base;
+ /*
+ * 0..119
+ */
+ protobuf_c_boolean has_portid;
+ uint32_t portid;
+ /*
+ * 0-OK 1-Failed
+ */
+ protobuf_c_boolean has_status;
+ protobuf_c_boolean status;
+};
+#define STUB__GPIOWRITE_BYTE_RESPONSE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub__gpiowrite_byte_response__descriptor) \
+ , 0, 0, 0, 0 }
+
+
+/* StubGPIOWriteByteResponse methods */
+void stub__gpiowrite_byte_response__init
+ (StubGPIOWriteByteResponse *message);
+size_t stub__gpiowrite_byte_response__get_packed_size
+ (const StubGPIOWriteByteResponse *message);
+size_t stub__gpiowrite_byte_response__pack
+ (const StubGPIOWriteByteResponse *message,
+ uint8_t *out);
+size_t stub__gpiowrite_byte_response__pack_to_buffer
+ (const StubGPIOWriteByteResponse *message,
+ ProtobufCBuffer *buffer);
+StubGPIOWriteByteResponse *
+ stub__gpiowrite_byte_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub__gpiowrite_byte_response__free_unpacked
+ (StubGPIOWriteByteResponse *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubGPIOWriteByteResponse_Closure)
+ (const StubGPIOWriteByteResponse *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub__gpiowrite_byte_response__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_Stub_5fGPIOWriteByteResponse_2eproto__INCLUDED */
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Heater.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Heater.c
new file mode 100644
index 000000000..4069ee0d4
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Heater.c
@@ -0,0 +1,41 @@
+
+
+#include <stdbool.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <string.h>
+
+#include "inc/hw_memmap.h"
+#include "inc/hw_types.h"
+#include "inc/hw_uart.h"
+#include "driverlib/gpio.h"
+
+#include "MessageContainer.pb-c.h"
+
+#include "Stub_HeaterResponse.pb-c.h"
+#include "Stub_HeaterRequest.pb-c.h"
+
+MessageContainer createContainer(MessageType type, char* token, protobuf_c_boolean completed, void* response, size_t (*packPtr)(void*, uint8_t*), size_t (*sizePtr)(void*));
+
+void Stub_HeaterRequest(MessageContainer* requestContainer)
+{
+ MessageContainer responseContainer;
+
+ StubHeaterRequest* request = stub__heater_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
+
+
+
+
+
+ StubHeaterResponse response = STUB__HEATER_RESPONSE__INIT;
+
+ responseContainer = createContainer(MESSAGE_TYPE__Stub_HeaterResponse, requestContainer->token, true, &response, &stub__heater_response__pack, &stub__heater_response__get_packed_size);
+
+ //-------------------------------------------------------------------------------------------
+ uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer));
+ size_t container_size = message_container__pack(&responseContainer, container_buffer);
+ SendChars((char*)container_buffer, container_size);
+ free(container_buffer);
+ free(requestContainer);
+}
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Heater.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Heater.h
new file mode 100644
index 000000000..5443c187f
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Heater.h
@@ -0,0 +1 @@
+void Stub_HeaterRequest(MessageContainer* requestContainer);
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_HeaterRequest.pb-c.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_HeaterRequest.pb-c.c
new file mode 100644
index 000000000..3169a9f55
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_HeaterRequest.pb-c.c
@@ -0,0 +1,118 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_HeaterRequest.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "Stub_HeaterRequest.pb-c.h"
+void stub__heater_request__init
+ (StubHeaterRequest *message)
+{
+ static const StubHeaterRequest init_value = STUB__HEATER_REQUEST__INIT;
+ *message = init_value;
+}
+size_t stub__heater_request__get_packed_size
+ (const StubHeaterRequest *message)
+{
+ assert(message->base.descriptor == &stub__heater_request__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub__heater_request__pack
+ (const StubHeaterRequest *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub__heater_request__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub__heater_request__pack_to_buffer
+ (const StubHeaterRequest *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub__heater_request__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubHeaterRequest *
+ stub__heater_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubHeaterRequest *)
+ protobuf_c_message_unpack (&stub__heater_request__descriptor,
+ allocator, len, data);
+}
+void stub__heater_request__free_unpacked
+ (StubHeaterRequest *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub__heater_request__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub__heater_request__field_descriptors[3] =
+{
+ {
+ "HeaterGroupId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubHeaterRequest, has_heatergroupid),
+ offsetof(StubHeaterRequest, heatergroupid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "HeaterGroupOn",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubHeaterRequest, has_heatergroupon),
+ offsetof(StubHeaterRequest, heatergroupon),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "HeaterTemperatureReq",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubHeaterRequest, has_heatertemperaturereq),
+ offsetof(StubHeaterRequest, heatertemperaturereq),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub__heater_request__field_indices_by_name[] = {
+ 0, /* field[0] = HeaterGroupId */
+ 1, /* field[1] = HeaterGroupOn */
+ 2, /* field[2] = HeaterTemperatureReq */
+};
+static const ProtobufCIntRange stub__heater_request__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 3 }
+};
+const ProtobufCMessageDescriptor stub__heater_request__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "Stub_HeaterRequest",
+ "StubHeaterRequest",
+ "StubHeaterRequest",
+ "",
+ sizeof(StubHeaterRequest),
+ 3,
+ stub__heater_request__field_descriptors,
+ stub__heater_request__field_indices_by_name,
+ 1, stub__heater_request__number_ranges,
+ (ProtobufCMessageInit) stub__heater_request__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_HeaterRequest.pb-c.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_HeaterRequest.pb-c.h
new file mode 100644
index 000000000..4fb904442
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_HeaterRequest.pb-c.h
@@ -0,0 +1,82 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_HeaterRequest.proto */
+
+#ifndef PROTOBUF_C_Stub_5fHeaterRequest_2eproto__INCLUDED
+#define PROTOBUF_C_Stub_5fHeaterRequest_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
+#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+
+typedef struct _StubHeaterRequest StubHeaterRequest;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubHeaterRequest
+{
+ ProtobufCMessage base;
+ /*
+ *0..2
+ */
+ protobuf_c_boolean has_heatergroupid;
+ uint32_t heatergroupid;
+ /*
+ * 1-On 0-Off
+ */
+ protobuf_c_boolean has_heatergroupon;
+ protobuf_c_boolean heatergroupon;
+ protobuf_c_boolean has_heatertemperaturereq;
+ uint32_t heatertemperaturereq;
+};
+#define STUB__HEATER_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub__heater_request__descriptor) \
+ , 0, 0, 0, 0, 0, 0 }
+
+
+/* StubHeaterRequest methods */
+void stub__heater_request__init
+ (StubHeaterRequest *message);
+size_t stub__heater_request__get_packed_size
+ (const StubHeaterRequest *message);
+size_t stub__heater_request__pack
+ (const StubHeaterRequest *message,
+ uint8_t *out);
+size_t stub__heater_request__pack_to_buffer
+ (const StubHeaterRequest *message,
+ ProtobufCBuffer *buffer);
+StubHeaterRequest *
+ stub__heater_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub__heater_request__free_unpacked
+ (StubHeaterRequest *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubHeaterRequest_Closure)
+ (const StubHeaterRequest *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub__heater_request__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_Stub_5fHeaterRequest_2eproto__INCLUDED */
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_HeaterResponse.pb-c.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_HeaterResponse.pb-c.c
new file mode 100644
index 000000000..9c482cee5
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_HeaterResponse.pb-c.c
@@ -0,0 +1,118 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_HeaterResponse.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "Stub_HeaterResponse.pb-c.h"
+void stub__heater_response__init
+ (StubHeaterResponse *message)
+{
+ static const StubHeaterResponse init_value = STUB__HEATER_RESPONSE__INIT;
+ *message = init_value;
+}
+size_t stub__heater_response__get_packed_size
+ (const StubHeaterResponse *message)
+{
+ assert(message->base.descriptor == &stub__heater_response__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub__heater_response__pack
+ (const StubHeaterResponse *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub__heater_response__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub__heater_response__pack_to_buffer
+ (const StubHeaterResponse *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub__heater_response__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubHeaterResponse *
+ stub__heater_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubHeaterResponse *)
+ protobuf_c_message_unpack (&stub__heater_response__descriptor,
+ allocator, len, data);
+}
+void stub__heater_response__free_unpacked
+ (StubHeaterResponse *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub__heater_response__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub__heater_response__field_descriptors[3] =
+{
+ {
+ "HeaterGroupId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubHeaterResponse, has_heatergroupid),
+ offsetof(StubHeaterResponse, heatergroupid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "HeaterTemperatureSensor",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubHeaterResponse, has_heatertemperaturesensor),
+ offsetof(StubHeaterResponse, heatertemperaturesensor),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Status",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubHeaterResponse, has_status),
+ offsetof(StubHeaterResponse, status),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub__heater_response__field_indices_by_name[] = {
+ 0, /* field[0] = HeaterGroupId */
+ 1, /* field[1] = HeaterTemperatureSensor */
+ 2, /* field[2] = Status */
+};
+static const ProtobufCIntRange stub__heater_response__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 3 }
+};
+const ProtobufCMessageDescriptor stub__heater_response__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "Stub_HeaterResponse",
+ "StubHeaterResponse",
+ "StubHeaterResponse",
+ "",
+ sizeof(StubHeaterResponse),
+ 3,
+ stub__heater_response__field_descriptors,
+ stub__heater_response__field_indices_by_name,
+ 1, stub__heater_response__number_ranges,
+ (ProtobufCMessageInit) stub__heater_response__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_HeaterResponse.pb-c.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_HeaterResponse.pb-c.h
new file mode 100644
index 000000000..91855aff8
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_HeaterResponse.pb-c.h
@@ -0,0 +1,82 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_HeaterResponse.proto */
+
+#ifndef PROTOBUF_C_Stub_5fHeaterResponse_2eproto__INCLUDED
+#define PROTOBUF_C_Stub_5fHeaterResponse_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
+#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+
+typedef struct _StubHeaterResponse StubHeaterResponse;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubHeaterResponse
+{
+ ProtobufCMessage base;
+ /*
+ *0..2
+ */
+ protobuf_c_boolean has_heatergroupid;
+ uint32_t heatergroupid;
+ protobuf_c_boolean has_heatertemperaturesensor;
+ uint32_t heatertemperaturesensor;
+ /*
+ * 0-OK 1-Failed
+ */
+ protobuf_c_boolean has_status;
+ protobuf_c_boolean status;
+};
+#define STUB__HEATER_RESPONSE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub__heater_response__descriptor) \
+ , 0, 0, 0, 0, 0, 0 }
+
+
+/* StubHeaterResponse methods */
+void stub__heater_response__init
+ (StubHeaterResponse *message);
+size_t stub__heater_response__get_packed_size
+ (const StubHeaterResponse *message);
+size_t stub__heater_response__pack
+ (const StubHeaterResponse *message,
+ uint8_t *out);
+size_t stub__heater_response__pack_to_buffer
+ (const StubHeaterResponse *message,
+ ProtobufCBuffer *buffer);
+StubHeaterResponse *
+ stub__heater_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub__heater_response__free_unpacked
+ (StubHeaterResponse *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubHeaterResponse_Closure)
+ (const StubHeaterResponse *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub__heater_response__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_Stub_5fHeaterResponse_2eproto__INCLUDED */
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_MotorEncoder.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_MotorEncoder.c
new file mode 100644
index 000000000..2045d473d
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_MotorEncoder.c
@@ -0,0 +1,41 @@
+
+
+#include <stdbool.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <string.h>
+
+#include "inc/hw_memmap.h"
+#include "inc/hw_types.h"
+#include "inc/hw_uart.h"
+#include "driverlib/gpio.h"
+
+#include "MessageContainer.pb-c.h"
+
+#include "Stub_MotorEncoderResponse.pb-c.h"
+#include "Stub_MotorEncoderRequest.pb-c.h"
+
+MessageContainer createContainer(MessageType type, char* token, protobuf_c_boolean completed, void* response, size_t (*packPtr)(void*, uint8_t*), size_t (*sizePtr)(void*));
+
+void Stub_MotorEncoderRequest(MessageContainer* requestContainer)
+{
+ MessageContainer responseContainer;
+
+ StubMotorEncoderRequest* request = stub__motor_encoder_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
+
+
+
+
+
+ StubMotorEncoderResponse response = STUB__MOTOR_ENCODER_RESPONSE__INIT;
+
+ responseContainer = createContainer(MESSAGE_TYPE__Stub_MotorEncoderResponse, requestContainer->token, true, &response, &stub__motor_encoder_response__pack, &stub__motor_encoder_response__get_packed_size);
+
+ //-------------------------------------------------------------------------------------------
+ uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer));
+ size_t container_size = message_container__pack(&responseContainer, container_buffer);
+ SendChars((char*)container_buffer, container_size);
+ free(container_buffer);
+ free(requestContainer);
+}
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_MotorEncoder.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_MotorEncoder.h
new file mode 100644
index 000000000..586867d5a
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_MotorEncoder.h
@@ -0,0 +1 @@
+void Stub_MotorEncoderRequest(MessageContainer* requestContainer); \ No newline at end of file
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_MotorEncoderRequest.pb-c.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_MotorEncoderRequest.pb-c.c
new file mode 100644
index 000000000..3a917e602
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_MotorEncoderRequest.pb-c.c
@@ -0,0 +1,131 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_MotorEncoderRequest.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "Stub_MotorEncoderRequest.pb-c.h"
+void stub__motor_encoder_request__init
+ (StubMotorEncoderRequest *message)
+{
+ static const StubMotorEncoderRequest init_value = STUB__MOTOR_ENCODER_REQUEST__INIT;
+ *message = init_value;
+}
+size_t stub__motor_encoder_request__get_packed_size
+ (const StubMotorEncoderRequest *message)
+{
+ assert(message->base.descriptor == &stub__motor_encoder_request__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub__motor_encoder_request__pack
+ (const StubMotorEncoderRequest *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub__motor_encoder_request__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub__motor_encoder_request__pack_to_buffer
+ (const StubMotorEncoderRequest *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub__motor_encoder_request__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubMotorEncoderRequest *
+ stub__motor_encoder_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubMotorEncoderRequest *)
+ protobuf_c_message_unpack (&stub__motor_encoder_request__descriptor,
+ allocator, len, data);
+}
+void stub__motor_encoder_request__free_unpacked
+ (StubMotorEncoderRequest *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub__motor_encoder_request__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub__motor_encoder_request__field_descriptors[4] =
+{
+ {
+ "MotorId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubMotorEncoderRequest, has_motorid),
+ offsetof(StubMotorEncoderRequest, motorid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "ReadEncSpeed",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubMotorEncoderRequest, has_readencspeed),
+ offsetof(StubMotorEncoderRequest, readencspeed),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "ReadDirection",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubMotorEncoderRequest, has_readdirection),
+ offsetof(StubMotorEncoderRequest, readdirection),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Motion_Control",
+ 4,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubMotorEncoderRequest, has_motion_control),
+ offsetof(StubMotorEncoderRequest, motion_control),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub__motor_encoder_request__field_indices_by_name[] = {
+ 3, /* field[3] = Motion_Control */
+ 0, /* field[0] = MotorId */
+ 2, /* field[2] = ReadDirection */
+ 1, /* field[1] = ReadEncSpeed */
+};
+static const ProtobufCIntRange stub__motor_encoder_request__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 4 }
+};
+const ProtobufCMessageDescriptor stub__motor_encoder_request__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "Stub_MotorEncoderRequest",
+ "StubMotorEncoderRequest",
+ "StubMotorEncoderRequest",
+ "",
+ sizeof(StubMotorEncoderRequest),
+ 4,
+ stub__motor_encoder_request__field_descriptors,
+ stub__motor_encoder_request__field_indices_by_name,
+ 1, stub__motor_encoder_request__number_ranges,
+ (ProtobufCMessageInit) stub__motor_encoder_request__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_MotorEncoderRequest.pb-c.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_MotorEncoderRequest.pb-c.h
new file mode 100644
index 000000000..e07d3c91e
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_MotorEncoderRequest.pb-c.h
@@ -0,0 +1,87 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_MotorEncoderRequest.proto */
+
+#ifndef PROTOBUF_C_Stub_5fMotorEncoderRequest_2eproto__INCLUDED
+#define PROTOBUF_C_Stub_5fMotorEncoderRequest_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
+#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+
+typedef struct _StubMotorEncoderRequest StubMotorEncoderRequest;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubMotorEncoderRequest
+{
+ ProtobufCMessage base;
+ /*
+ *0..8
+ */
+ protobuf_c_boolean has_motorid;
+ uint32_t motorid;
+ protobuf_c_boolean has_readencspeed;
+ protobuf_c_boolean readencspeed;
+ /*
+ * 1-cw 0-ccw
+ */
+ protobuf_c_boolean has_readdirection;
+ protobuf_c_boolean readdirection;
+ /*
+ * close loop using the encoder
+ */
+ protobuf_c_boolean has_motion_control;
+ protobuf_c_boolean motion_control;
+};
+#define STUB__MOTOR_ENCODER_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub__motor_encoder_request__descriptor) \
+ , 0, 0, 0, 0, 0, 0, 0, 0 }
+
+
+/* StubMotorEncoderRequest methods */
+void stub__motor_encoder_request__init
+ (StubMotorEncoderRequest *message);
+size_t stub__motor_encoder_request__get_packed_size
+ (const StubMotorEncoderRequest *message);
+size_t stub__motor_encoder_request__pack
+ (const StubMotorEncoderRequest *message,
+ uint8_t *out);
+size_t stub__motor_encoder_request__pack_to_buffer
+ (const StubMotorEncoderRequest *message,
+ ProtobufCBuffer *buffer);
+StubMotorEncoderRequest *
+ stub__motor_encoder_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub__motor_encoder_request__free_unpacked
+ (StubMotorEncoderRequest *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubMotorEncoderRequest_Closure)
+ (const StubMotorEncoderRequest *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub__motor_encoder_request__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_Stub_5fMotorEncoderRequest_2eproto__INCLUDED */
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_MotorEncoderResponse.pb-c.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_MotorEncoderResponse.pb-c.c
new file mode 100644
index 000000000..e5d69b685
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_MotorEncoderResponse.pb-c.c
@@ -0,0 +1,144 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_MotorEncoderResponse.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "Stub_MotorEncoderResponse.pb-c.h"
+void stub__motor_encoder_response__init
+ (StubMotorEncoderResponse *message)
+{
+ static const StubMotorEncoderResponse init_value = STUB__MOTOR_ENCODER_RESPONSE__INIT;
+ *message = init_value;
+}
+size_t stub__motor_encoder_response__get_packed_size
+ (const StubMotorEncoderResponse *message)
+{
+ assert(message->base.descriptor == &stub__motor_encoder_response__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub__motor_encoder_response__pack
+ (const StubMotorEncoderResponse *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub__motor_encoder_response__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub__motor_encoder_response__pack_to_buffer
+ (const StubMotorEncoderResponse *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub__motor_encoder_response__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubMotorEncoderResponse *
+ stub__motor_encoder_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubMotorEncoderResponse *)
+ protobuf_c_message_unpack (&stub__motor_encoder_response__descriptor,
+ allocator, len, data);
+}
+void stub__motor_encoder_response__free_unpacked
+ (StubMotorEncoderResponse *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub__motor_encoder_response__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub__motor_encoder_response__field_descriptors[5] =
+{
+ {
+ "EncoderId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubMotorEncoderResponse, has_encoderid),
+ offsetof(StubMotorEncoderResponse, encoderid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "EncoderVersion",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubMotorEncoderResponse, has_encoderversion),
+ offsetof(StubMotorEncoderResponse, encoderversion),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "MotorSpeed",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_INT32,
+ offsetof(StubMotorEncoderResponse, has_motorspeed),
+ offsetof(StubMotorEncoderResponse, motorspeed),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "MotorDirection",
+ 4,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubMotorEncoderResponse, has_motordirection),
+ offsetof(StubMotorEncoderResponse, motordirection),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Status",
+ 5,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubMotorEncoderResponse, has_status),
+ offsetof(StubMotorEncoderResponse, status),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub__motor_encoder_response__field_indices_by_name[] = {
+ 0, /* field[0] = EncoderId */
+ 1, /* field[1] = EncoderVersion */
+ 3, /* field[3] = MotorDirection */
+ 2, /* field[2] = MotorSpeed */
+ 4, /* field[4] = Status */
+};
+static const ProtobufCIntRange stub__motor_encoder_response__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 5 }
+};
+const ProtobufCMessageDescriptor stub__motor_encoder_response__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "Stub_MotorEncoderResponse",
+ "StubMotorEncoderResponse",
+ "StubMotorEncoderResponse",
+ "",
+ sizeof(StubMotorEncoderResponse),
+ 5,
+ stub__motor_encoder_response__field_descriptors,
+ stub__motor_encoder_response__field_indices_by_name,
+ 1, stub__motor_encoder_response__number_ranges,
+ (ProtobufCMessageInit) stub__motor_encoder_response__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_MotorEncoderResponse.pb-c.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_MotorEncoderResponse.pb-c.h
new file mode 100644
index 000000000..b9c359e53
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_MotorEncoderResponse.pb-c.h
@@ -0,0 +1,89 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_MotorEncoderResponse.proto */
+
+#ifndef PROTOBUF_C_Stub_5fMotorEncoderResponse_2eproto__INCLUDED
+#define PROTOBUF_C_Stub_5fMotorEncoderResponse_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
+#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+
+typedef struct _StubMotorEncoderResponse StubMotorEncoderResponse;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubMotorEncoderResponse
+{
+ ProtobufCMessage base;
+ /*
+ *0..8
+ */
+ protobuf_c_boolean has_encoderid;
+ uint32_t encoderid;
+ protobuf_c_boolean has_encoderversion;
+ uint32_t encoderversion;
+ protobuf_c_boolean has_motorspeed;
+ int32_t motorspeed;
+ /*
+ * 1-cw 0-ccw
+ */
+ protobuf_c_boolean has_motordirection;
+ protobuf_c_boolean motordirection;
+ /*
+ * 0-OK 1-Failed ( motion control error > ?)
+ */
+ protobuf_c_boolean has_status;
+ protobuf_c_boolean status;
+};
+#define STUB__MOTOR_ENCODER_RESPONSE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub__motor_encoder_response__descriptor) \
+ , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+
+
+/* StubMotorEncoderResponse methods */
+void stub__motor_encoder_response__init
+ (StubMotorEncoderResponse *message);
+size_t stub__motor_encoder_response__get_packed_size
+ (const StubMotorEncoderResponse *message);
+size_t stub__motor_encoder_response__pack
+ (const StubMotorEncoderResponse *message,
+ uint8_t *out);
+size_t stub__motor_encoder_response__pack_to_buffer
+ (const StubMotorEncoderResponse *message,
+ ProtobufCBuffer *buffer);
+StubMotorEncoderResponse *
+ stub__motor_encoder_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub__motor_encoder_response__free_unpacked
+ (StubMotorEncoderResponse *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubMotorEncoderResponse_Closure)
+ (const StubMotorEncoderResponse *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub__motor_encoder_response__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_Stub_5fMotorEncoderResponse_2eproto__INCLUDED */
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_OptLimitSwitch.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_OptLimitSwitch.c
new file mode 100644
index 000000000..29a16e4ed
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_OptLimitSwitch.c
@@ -0,0 +1,41 @@
+
+
+#include <stdbool.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <string.h>
+
+#include "inc/hw_memmap.h"
+#include "inc/hw_types.h"
+#include "inc/hw_uart.h"
+#include "driverlib/gpio.h"
+
+#include "MessageContainer.pb-c.h"
+
+#include "Stub_OptLimitSwitchResponse.pb-c.h"
+#include "Stub_OptLimitSwitchRequest.pb-c.h"
+
+MessageContainer createContainer(MessageType type, char* token, protobuf_c_boolean completed, void* response, size_t (*packPtr)(void*, uint8_t*), size_t (*sizePtr)(void*));
+
+void Stub_OptLimitSwitchRequest(MessageContainer* requestContainer)
+{
+ MessageContainer responseContainer;
+
+ StubOptLimitSwitchRequest* request = stub__opt_limit_switch_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
+
+
+
+
+
+ StubOptLimitSwitchResponse response = STUB__OPT_LIMIT_SWITCH_RESPONSE__INIT;
+
+ responseContainer = createContainer(MESSAGE_TYPE__Stub_OptLimitSwitchResponse, requestContainer->token, true, &response, &stub__opt_limit_switch_response__pack, &stub__opt_limit_switch_response__get_packed_size);
+
+ //-------------------------------------------------------------------------------------------
+ uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer));
+ size_t container_size = message_container__pack(&responseContainer, container_buffer);
+ SendChars((char*)container_buffer, container_size);
+ free(container_buffer);
+ free(requestContainer);
+}
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_OptLimitSwitch.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_OptLimitSwitch.h
new file mode 100644
index 000000000..b38eaf8c8
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_OptLimitSwitch.h
@@ -0,0 +1 @@
+void Stub_OptLimitSwitchRequest(MessageContainer* requestContainer); \ No newline at end of file
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_OptLimitSwitchRequest.pb-c.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_OptLimitSwitchRequest.pb-c.c
new file mode 100644
index 000000000..13030455f
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_OptLimitSwitchRequest.pb-c.c
@@ -0,0 +1,105 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_OptLimitSwitchRequest.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "Stub_OptLimitSwitchRequest.pb-c.h"
+void stub__opt_limit_switch_request__init
+ (StubOptLimitSwitchRequest *message)
+{
+ static const StubOptLimitSwitchRequest init_value = STUB__OPT_LIMIT_SWITCH_REQUEST__INIT;
+ *message = init_value;
+}
+size_t stub__opt_limit_switch_request__get_packed_size
+ (const StubOptLimitSwitchRequest *message)
+{
+ assert(message->base.descriptor == &stub__opt_limit_switch_request__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub__opt_limit_switch_request__pack
+ (const StubOptLimitSwitchRequest *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub__opt_limit_switch_request__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub__opt_limit_switch_request__pack_to_buffer
+ (const StubOptLimitSwitchRequest *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub__opt_limit_switch_request__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubOptLimitSwitchRequest *
+ stub__opt_limit_switch_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubOptLimitSwitchRequest *)
+ protobuf_c_message_unpack (&stub__opt_limit_switch_request__descriptor,
+ allocator, len, data);
+}
+void stub__opt_limit_switch_request__free_unpacked
+ (StubOptLimitSwitchRequest *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub__opt_limit_switch_request__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub__opt_limit_switch_request__field_descriptors[2] =
+{
+ {
+ "LimitSwitchrId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubOptLimitSwitchRequest, has_limitswitchrid),
+ offsetof(StubOptLimitSwitchRequest, limitswitchrid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "LimitSwitchrDisable",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubOptLimitSwitchRequest, has_limitswitchrdisable),
+ offsetof(StubOptLimitSwitchRequest, limitswitchrdisable),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub__opt_limit_switch_request__field_indices_by_name[] = {
+ 1, /* field[1] = LimitSwitchrDisable */
+ 0, /* field[0] = LimitSwitchrId */
+};
+static const ProtobufCIntRange stub__opt_limit_switch_request__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 2 }
+};
+const ProtobufCMessageDescriptor stub__opt_limit_switch_request__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "Stub_OptLimitSwitchRequest",
+ "StubOptLimitSwitchRequest",
+ "StubOptLimitSwitchRequest",
+ "",
+ sizeof(StubOptLimitSwitchRequest),
+ 2,
+ stub__opt_limit_switch_request__field_descriptors,
+ stub__opt_limit_switch_request__field_indices_by_name,
+ 1, stub__opt_limit_switch_request__number_ranges,
+ (ProtobufCMessageInit) stub__opt_limit_switch_request__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_OptLimitSwitchRequest.pb-c.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_OptLimitSwitchRequest.pb-c.h
new file mode 100644
index 000000000..70668e033
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_OptLimitSwitchRequest.pb-c.h
@@ -0,0 +1,80 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_OptLimitSwitchRequest.proto */
+
+#ifndef PROTOBUF_C_Stub_5fOptLimitSwitchRequest_2eproto__INCLUDED
+#define PROTOBUF_C_Stub_5fOptLimitSwitchRequest_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
+#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+
+typedef struct _StubOptLimitSwitchRequest StubOptLimitSwitchRequest;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubOptLimitSwitchRequest
+{
+ ProtobufCMessage base;
+ /*
+ *0..16
+ */
+ protobuf_c_boolean has_limitswitchrid;
+ uint32_t limitswitchrid;
+ /*
+ * 0 - Enable 1 - Disable
+ */
+ protobuf_c_boolean has_limitswitchrdisable;
+ protobuf_c_boolean limitswitchrdisable;
+};
+#define STUB__OPT_LIMIT_SWITCH_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub__opt_limit_switch_request__descriptor) \
+ , 0, 0, 0, 0 }
+
+
+/* StubOptLimitSwitchRequest methods */
+void stub__opt_limit_switch_request__init
+ (StubOptLimitSwitchRequest *message);
+size_t stub__opt_limit_switch_request__get_packed_size
+ (const StubOptLimitSwitchRequest *message);
+size_t stub__opt_limit_switch_request__pack
+ (const StubOptLimitSwitchRequest *message,
+ uint8_t *out);
+size_t stub__opt_limit_switch_request__pack_to_buffer
+ (const StubOptLimitSwitchRequest *message,
+ ProtobufCBuffer *buffer);
+StubOptLimitSwitchRequest *
+ stub__opt_limit_switch_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub__opt_limit_switch_request__free_unpacked
+ (StubOptLimitSwitchRequest *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubOptLimitSwitchRequest_Closure)
+ (const StubOptLimitSwitchRequest *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub__opt_limit_switch_request__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_Stub_5fOptLimitSwitchRequest_2eproto__INCLUDED */
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_OptLimitSwitchResponse.pb-c.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_OptLimitSwitchResponse.pb-c.c
new file mode 100644
index 000000000..acaa44afd
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_OptLimitSwitchResponse.pb-c.c
@@ -0,0 +1,118 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_OptLimitSwitchResponse.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "Stub_OptLimitSwitchResponse.pb-c.h"
+void stub__opt_limit_switch_response__init
+ (StubOptLimitSwitchResponse *message)
+{
+ static const StubOptLimitSwitchResponse init_value = STUB__OPT_LIMIT_SWITCH_RESPONSE__INIT;
+ *message = init_value;
+}
+size_t stub__opt_limit_switch_response__get_packed_size
+ (const StubOptLimitSwitchResponse *message)
+{
+ assert(message->base.descriptor == &stub__opt_limit_switch_response__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub__opt_limit_switch_response__pack
+ (const StubOptLimitSwitchResponse *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub__opt_limit_switch_response__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub__opt_limit_switch_response__pack_to_buffer
+ (const StubOptLimitSwitchResponse *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub__opt_limit_switch_response__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubOptLimitSwitchResponse *
+ stub__opt_limit_switch_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubOptLimitSwitchResponse *)
+ protobuf_c_message_unpack (&stub__opt_limit_switch_response__descriptor,
+ allocator, len, data);
+}
+void stub__opt_limit_switch_response__free_unpacked
+ (StubOptLimitSwitchResponse *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub__opt_limit_switch_response__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub__opt_limit_switch_response__field_descriptors[3] =
+{
+ {
+ "LimitSwitchrId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubOptLimitSwitchResponse, has_limitswitchrid),
+ offsetof(StubOptLimitSwitchResponse, limitswitchrid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "LimitSwitchDitection",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubOptLimitSwitchResponse, has_limitswitchditection),
+ offsetof(StubOptLimitSwitchResponse, limitswitchditection),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Status",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubOptLimitSwitchResponse, has_status),
+ offsetof(StubOptLimitSwitchResponse, status),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub__opt_limit_switch_response__field_indices_by_name[] = {
+ 1, /* field[1] = LimitSwitchDitection */
+ 0, /* field[0] = LimitSwitchrId */
+ 2, /* field[2] = Status */
+};
+static const ProtobufCIntRange stub__opt_limit_switch_response__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 3 }
+};
+const ProtobufCMessageDescriptor stub__opt_limit_switch_response__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "Stub_OptLimitSwitchResponse",
+ "StubOptLimitSwitchResponse",
+ "StubOptLimitSwitchResponse",
+ "",
+ sizeof(StubOptLimitSwitchResponse),
+ 3,
+ stub__opt_limit_switch_response__field_descriptors,
+ stub__opt_limit_switch_response__field_indices_by_name,
+ 1, stub__opt_limit_switch_response__number_ranges,
+ (ProtobufCMessageInit) stub__opt_limit_switch_response__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_OptLimitSwitchResponse.pb-c.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_OptLimitSwitchResponse.pb-c.h
new file mode 100644
index 000000000..71d0c4266
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_OptLimitSwitchResponse.pb-c.h
@@ -0,0 +1,84 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_OptLimitSwitchResponse.proto */
+
+#ifndef PROTOBUF_C_Stub_5fOptLimitSwitchResponse_2eproto__INCLUDED
+#define PROTOBUF_C_Stub_5fOptLimitSwitchResponse_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
+#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+
+typedef struct _StubOptLimitSwitchResponse StubOptLimitSwitchResponse;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubOptLimitSwitchResponse
+{
+ ProtobufCMessage base;
+ /*
+ *0..19
+ */
+ protobuf_c_boolean has_limitswitchrid;
+ uint32_t limitswitchrid;
+ /*
+ */
+ protobuf_c_boolean has_limitswitchditection;
+ protobuf_c_boolean limitswitchditection;
+ /*
+ * 0-OK 1-Failed
+ */
+ protobuf_c_boolean has_status;
+ protobuf_c_boolean status;
+};
+#define STUB__OPT_LIMIT_SWITCH_RESPONSE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub__opt_limit_switch_response__descriptor) \
+ , 0, 0, 0, 0, 0, 0 }
+
+
+/* StubOptLimitSwitchResponse methods */
+void stub__opt_limit_switch_response__init
+ (StubOptLimitSwitchResponse *message);
+size_t stub__opt_limit_switch_response__get_packed_size
+ (const StubOptLimitSwitchResponse *message);
+size_t stub__opt_limit_switch_response__pack
+ (const StubOptLimitSwitchResponse *message,
+ uint8_t *out);
+size_t stub__opt_limit_switch_response__pack_to_buffer
+ (const StubOptLimitSwitchResponse *message,
+ ProtobufCBuffer *buffer);
+StubOptLimitSwitchResponse *
+ stub__opt_limit_switch_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub__opt_limit_switch_response__free_unpacked
+ (StubOptLimitSwitchResponse *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubOptLimitSwitchResponse_Closure)
+ (const StubOptLimitSwitchResponse *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub__opt_limit_switch_response__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_Stub_5fOptLimitSwitchResponse_2eproto__INCLUDED */
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_SteperMotor.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_SteperMotor.c
new file mode 100644
index 000000000..4dbe27e6a
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_SteperMotor.c
@@ -0,0 +1,41 @@
+
+
+#include <stdbool.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <string.h>
+
+#include "inc/hw_memmap.h"
+#include "inc/hw_types.h"
+#include "inc/hw_uart.h"
+#include "driverlib/gpio.h"
+
+#include "MessageContainer.pb-c.h"
+
+#include "Stub_SteperMotorRequest.pb-c.h"
+#include "Stub_SteperMotorResponse.pb-c.h"
+
+MessageContainer createContainer(MessageType type, char* token, protobuf_c_boolean completed, void* response, size_t (*packPtr)(void*, uint8_t*), size_t (*sizePtr)(void*));
+
+void Stub_SteperMotorRequest(MessageContainer* requestContainer)
+{
+ MessageContainer responseContainer;
+
+ StubStepeMotorRequest* request = stub__stepe_motor_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
+
+
+
+
+
+ StubSteperMotorResponse response = STUB__STEPER_MOTOR_RESPONSE__INIT;
+
+ responseContainer = createContainer(MESSAGE_TYPE__Stub_SteperMotorResponse, requestContainer->token, true, &response, &stub__steper_motor_response__pack, &stub__steper_motor_response__get_packed_size);
+
+ //-------------------------------------------------------------------------------------------
+ uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer));
+ size_t container_size = message_container__pack(&responseContainer, container_buffer);
+ SendChars((char*)container_buffer, container_size);
+ free(container_buffer);
+ free(requestContainer);
+}
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_SteperMotor.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_SteperMotor.h
new file mode 100644
index 000000000..91d940ada
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_SteperMotor.h
@@ -0,0 +1 @@
+void Stub_SteperMotorRequest(MessageContainer* requestContainer); \ No newline at end of file
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_SteperMotorRequest.pb-c.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_SteperMotorRequest.pb-c.c
new file mode 100644
index 000000000..4c4a246ea
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_SteperMotorRequest.pb-c.c
@@ -0,0 +1,144 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_SteperMotorRequest.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "Stub_SteperMotorRequest.pb-c.h"
+void stub__stepe_motor_request__init
+ (StubStepeMotorRequest *message)
+{
+ static const StubStepeMotorRequest init_value = STUB__STEPE_MOTOR_REQUEST__INIT;
+ *message = init_value;
+}
+size_t stub__stepe_motor_request__get_packed_size
+ (const StubStepeMotorRequest *message)
+{
+ assert(message->base.descriptor == &stub__stepe_motor_request__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub__stepe_motor_request__pack
+ (const StubStepeMotorRequest *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub__stepe_motor_request__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub__stepe_motor_request__pack_to_buffer
+ (const StubStepeMotorRequest *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub__stepe_motor_request__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubStepeMotorRequest *
+ stub__stepe_motor_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubStepeMotorRequest *)
+ protobuf_c_message_unpack (&stub__stepe_motor_request__descriptor,
+ allocator, len, data);
+}
+void stub__stepe_motor_request__free_unpacked
+ (StubStepeMotorRequest *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub__stepe_motor_request__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub__stepe_motor_request__field_descriptors[5] =
+{
+ {
+ "MotorId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubStepeMotorRequest, has_motorid),
+ offsetof(StubStepeMotorRequest, motorid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Start",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubStepeMotorRequest, has_start),
+ offsetof(StubStepeMotorRequest, start),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "SetDirection",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubStepeMotorRequest, has_setdirection),
+ offsetof(StubStepeMotorRequest, setdirection),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "SetMicrostepDivision",
+ 4,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_INT32,
+ offsetof(StubStepeMotorRequest, has_setmicrostepdivision),
+ offsetof(StubStepeMotorRequest, setmicrostepdivision),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "SetSpeed",
+ 5,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_INT32,
+ offsetof(StubStepeMotorRequest, has_setspeed),
+ offsetof(StubStepeMotorRequest, setspeed),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub__stepe_motor_request__field_indices_by_name[] = {
+ 0, /* field[0] = MotorId */
+ 2, /* field[2] = SetDirection */
+ 3, /* field[3] = SetMicrostepDivision */
+ 4, /* field[4] = SetSpeed */
+ 1, /* field[1] = Start */
+};
+static const ProtobufCIntRange stub__stepe_motor_request__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 5 }
+};
+const ProtobufCMessageDescriptor stub__stepe_motor_request__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "Stub_StepeMotorRequest",
+ "StubStepeMotorRequest",
+ "StubStepeMotorRequest",
+ "",
+ sizeof(StubStepeMotorRequest),
+ 5,
+ stub__stepe_motor_request__field_descriptors,
+ stub__stepe_motor_request__field_indices_by_name,
+ 1, stub__stepe_motor_request__number_ranges,
+ (ProtobufCMessageInit) stub__stepe_motor_request__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_SteperMotorRequest.pb-c.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_SteperMotorRequest.pb-c.h
new file mode 100644
index 000000000..eb740b223
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_SteperMotorRequest.pb-c.h
@@ -0,0 +1,95 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_SteperMotorRequest.proto */
+
+#ifndef PROTOBUF_C_Stub_5fSteperMotorRequest_2eproto__INCLUDED
+#define PROTOBUF_C_Stub_5fSteperMotorRequest_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
+#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+
+typedef struct _StubStepeMotorRequest StubStepeMotorRequest;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubStepeMotorRequest
+{
+ ProtobufCMessage base;
+ /*
+ *0..19
+ */
+ protobuf_c_boolean has_motorid;
+ uint32_t motorid;
+ /*
+ * 1-start 0-stop
+ */
+ protobuf_c_boolean has_start;
+ protobuf_c_boolean start;
+ /*
+ * 1-cw 0-ccw
+ */
+ protobuf_c_boolean has_setdirection;
+ protobuf_c_boolean setdirection;
+ /*
+ * No. of steps for 360 deg.
+ */
+ protobuf_c_boolean has_setmicrostepdivision;
+ int32_t setmicrostepdivision;
+ /*
+ * ?
+ */
+ protobuf_c_boolean has_setspeed;
+ int32_t setspeed;
+};
+#define STUB__STEPE_MOTOR_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub__stepe_motor_request__descriptor) \
+ , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+
+
+/* StubStepeMotorRequest methods */
+void stub__stepe_motor_request__init
+ (StubStepeMotorRequest *message);
+size_t stub__stepe_motor_request__get_packed_size
+ (const StubStepeMotorRequest *message);
+size_t stub__stepe_motor_request__pack
+ (const StubStepeMotorRequest *message,
+ uint8_t *out);
+size_t stub__stepe_motor_request__pack_to_buffer
+ (const StubStepeMotorRequest *message,
+ ProtobufCBuffer *buffer);
+StubStepeMotorRequest *
+ stub__stepe_motor_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub__stepe_motor_request__free_unpacked
+ (StubStepeMotorRequest *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubStepeMotorRequest_Closure)
+ (const StubStepeMotorRequest *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub__stepe_motor_request__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_Stub_5fSteperMotorRequest_2eproto__INCLUDED */
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_SteperMotorResponse.pb-c.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_SteperMotorResponse.pb-c.c
new file mode 100644
index 000000000..62b443026
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_SteperMotorResponse.pb-c.c
@@ -0,0 +1,118 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_SteperMotorResponse.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "Stub_SteperMotorResponse.pb-c.h"
+void stub__steper_motor_response__init
+ (StubSteperMotorResponse *message)
+{
+ static const StubSteperMotorResponse init_value = STUB__STEPER_MOTOR_RESPONSE__INIT;
+ *message = init_value;
+}
+size_t stub__steper_motor_response__get_packed_size
+ (const StubSteperMotorResponse *message)
+{
+ assert(message->base.descriptor == &stub__steper_motor_response__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub__steper_motor_response__pack
+ (const StubSteperMotorResponse *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub__steper_motor_response__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub__steper_motor_response__pack_to_buffer
+ (const StubSteperMotorResponse *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub__steper_motor_response__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubSteperMotorResponse *
+ stub__steper_motor_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubSteperMotorResponse *)
+ protobuf_c_message_unpack (&stub__steper_motor_response__descriptor,
+ allocator, len, data);
+}
+void stub__steper_motor_response__free_unpacked
+ (StubSteperMotorResponse *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub__steper_motor_response__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub__steper_motor_response__field_descriptors[3] =
+{
+ {
+ "MotorId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubSteperMotorResponse, has_motorid),
+ offsetof(StubSteperMotorResponse, motorid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "MotorVersion",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubSteperMotorResponse, has_motorversion),
+ offsetof(StubSteperMotorResponse, motorversion),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Status",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubSteperMotorResponse, has_status),
+ offsetof(StubSteperMotorResponse, status),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub__steper_motor_response__field_indices_by_name[] = {
+ 0, /* field[0] = MotorId */
+ 1, /* field[1] = MotorVersion */
+ 2, /* field[2] = Status */
+};
+static const ProtobufCIntRange stub__steper_motor_response__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 3 }
+};
+const ProtobufCMessageDescriptor stub__steper_motor_response__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "Stub_SteperMotorResponse",
+ "StubSteperMotorResponse",
+ "StubSteperMotorResponse",
+ "",
+ sizeof(StubSteperMotorResponse),
+ 3,
+ stub__steper_motor_response__field_descriptors,
+ stub__steper_motor_response__field_indices_by_name,
+ 1, stub__steper_motor_response__number_ranges,
+ (ProtobufCMessageInit) stub__steper_motor_response__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_SteperMotorResponse.pb-c.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_SteperMotorResponse.pb-c.h
new file mode 100644
index 000000000..9d35bc109
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_SteperMotorResponse.pb-c.h
@@ -0,0 +1,84 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_SteperMotorResponse.proto */
+
+#ifndef PROTOBUF_C_Stub_5fSteperMotorResponse_2eproto__INCLUDED
+#define PROTOBUF_C_Stub_5fSteperMotorResponse_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
+#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+
+typedef struct _StubSteperMotorResponse StubSteperMotorResponse;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubSteperMotorResponse
+{
+ ProtobufCMessage base;
+ /*
+ *0..19
+ */
+ protobuf_c_boolean has_motorid;
+ uint32_t motorid;
+ /*
+ */
+ protobuf_c_boolean has_motorversion;
+ uint32_t motorversion;
+ /*
+ * 0-OK 1-Failed
+ */
+ protobuf_c_boolean has_status;
+ protobuf_c_boolean status;
+};
+#define STUB__STEPER_MOTOR_RESPONSE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub__steper_motor_response__descriptor) \
+ , 0, 0, 0, 0, 0, 0 }
+
+
+/* StubSteperMotorResponse methods */
+void stub__steper_motor_response__init
+ (StubSteperMotorResponse *message);
+size_t stub__steper_motor_response__get_packed_size
+ (const StubSteperMotorResponse *message);
+size_t stub__steper_motor_response__pack
+ (const StubSteperMotorResponse *message,
+ uint8_t *out);
+size_t stub__steper_motor_response__pack_to_buffer
+ (const StubSteperMotorResponse *message,
+ ProtobufCBuffer *buffer);
+StubSteperMotorResponse *
+ stub__steper_motor_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub__steper_motor_response__free_unpacked
+ (StubSteperMotorResponse *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubSteperMotorResponse_Closure)
+ (const StubSteperMotorResponse *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub__steper_motor_response__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_Stub_5fSteperMotorResponse_2eproto__INCLUDED */
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Valve.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Valve.c
new file mode 100644
index 000000000..2fea0d945
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Valve.c
@@ -0,0 +1,41 @@
+
+
+#include <stdbool.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <string.h>
+
+#include "inc/hw_memmap.h"
+#include "inc/hw_types.h"
+#include "inc/hw_uart.h"
+#include "driverlib/gpio.h"
+
+#include "MessageContainer.pb-c.h"
+
+#include "Stub_ValveResponse.pb-c.h"
+#include "Stub_ValveRequest.pb-c.h"
+
+MessageContainer createContainer(MessageType type, char* token, protobuf_c_boolean completed, void* response, size_t (*packPtr)(void*, uint8_t*), size_t (*sizePtr)(void*));
+
+void Stub_ValveRequest(MessageContainer* requestContainer)
+{
+ MessageContainer responseContainer;
+
+ StubValveRequest* request = stub__valve_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
+
+
+
+
+
+ StubValveResponse response = STUB__VALVE_RESPONSE__INIT;
+
+ responseContainer = createContainer(MESSAGE_TYPE__Stub_ValveResponse, requestContainer->token, true, &response, &stub__valve_response__pack, &stub__valve_request__get_packed_size);
+
+ //-------------------------------------------------------------------------------------------
+ uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer));
+ size_t container_size = message_container__pack(&responseContainer, container_buffer);
+ SendChars((char*)container_buffer, container_size);
+ free(container_buffer);
+ free(requestContainer);
+}
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Valve.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Valve.h
new file mode 100644
index 000000000..e5ca78a86
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_Valve.h
@@ -0,0 +1 @@
+void Stub_ValveRequest(MessageContainer* requestContainer); \ No newline at end of file
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_ValveRequest.pb-c.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_ValveRequest.pb-c.c
new file mode 100644
index 000000000..0fc776c5c
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_ValveRequest.pb-c.c
@@ -0,0 +1,118 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_ValveRequest.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "Stub_ValveRequest.pb-c.h"
+void stub__valve_request__init
+ (StubValveRequest *message)
+{
+ static const StubValveRequest init_value = STUB__VALVE_REQUEST__INIT;
+ *message = init_value;
+}
+size_t stub__valve_request__get_packed_size
+ (const StubValveRequest *message)
+{
+ assert(message->base.descriptor == &stub__valve_request__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub__valve_request__pack
+ (const StubValveRequest *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub__valve_request__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub__valve_request__pack_to_buffer
+ (const StubValveRequest *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub__valve_request__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubValveRequest *
+ stub__valve_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubValveRequest *)
+ protobuf_c_message_unpack (&stub__valve_request__descriptor,
+ allocator, len, data);
+}
+void stub__valve_request__free_unpacked
+ (StubValveRequest *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub__valve_request__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub__valve_request__field_descriptors[3] =
+{
+ {
+ "ValveId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubValveRequest, has_valveid),
+ offsetof(StubValveRequest, valveid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Inkflow",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubValveRequest, has_inkflow),
+ offsetof(StubValveRequest, inkflow),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "ValveOn",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubValveRequest, has_valveon),
+ offsetof(StubValveRequest, valveon),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub__valve_request__field_indices_by_name[] = {
+ 1, /* field[1] = Inkflow */
+ 0, /* field[0] = ValveId */
+ 2, /* field[2] = ValveOn */
+};
+static const ProtobufCIntRange stub__valve_request__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 3 }
+};
+const ProtobufCMessageDescriptor stub__valve_request__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "Stub_ValveRequest",
+ "StubValveRequest",
+ "StubValveRequest",
+ "",
+ sizeof(StubValveRequest),
+ 3,
+ stub__valve_request__field_descriptors,
+ stub__valve_request__field_indices_by_name,
+ 1, stub__valve_request__number_ranges,
+ (ProtobufCMessageInit) stub__valve_request__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_ValveRequest.pb-c.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_ValveRequest.pb-c.h
new file mode 100644
index 000000000..da468f7b2
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_ValveRequest.pb-c.h
@@ -0,0 +1,85 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_ValveRequest.proto */
+
+#ifndef PROTOBUF_C_Stub_5fValveRequest_2eproto__INCLUDED
+#define PROTOBUF_C_Stub_5fValveRequest_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
+#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+
+typedef struct _StubValveRequest StubValveRequest;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubValveRequest
+{
+ ProtobufCMessage base;
+ /*
+ *0..19
+ */
+ protobuf_c_boolean has_valveid;
+ uint32_t valveid;
+ /*
+ *0-Min
+ */
+ protobuf_c_boolean has_inkflow;
+ uint32_t inkflow;
+ /*
+ * 0-Off 1-On
+ */
+ protobuf_c_boolean has_valveon;
+ protobuf_c_boolean valveon;
+};
+#define STUB__VALVE_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub__valve_request__descriptor) \
+ , 0, 0, 0, 0, 0, 0 }
+
+
+/* StubValveRequest methods */
+void stub__valve_request__init
+ (StubValveRequest *message);
+size_t stub__valve_request__get_packed_size
+ (const StubValveRequest *message);
+size_t stub__valve_request__pack
+ (const StubValveRequest *message,
+ uint8_t *out);
+size_t stub__valve_request__pack_to_buffer
+ (const StubValveRequest *message,
+ ProtobufCBuffer *buffer);
+StubValveRequest *
+ stub__valve_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub__valve_request__free_unpacked
+ (StubValveRequest *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubValveRequest_Closure)
+ (const StubValveRequest *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub__valve_request__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_Stub_5fValveRequest_2eproto__INCLUDED */
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_ValveResponse.pb-c.c b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_ValveResponse.pb-c.c
new file mode 100644
index 000000000..1f998eebb
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_ValveResponse.pb-c.c
@@ -0,0 +1,92 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_ValveResponse.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "Stub_ValveResponse.pb-c.h"
+void stub__valve_response__init
+ (StubValveResponse *message)
+{
+ static const StubValveResponse init_value = STUB__VALVE_RESPONSE__INIT;
+ *message = init_value;
+}
+size_t stub__valve_response__get_packed_size
+ (const StubValveResponse *message)
+{
+ assert(message->base.descriptor == &stub__valve_response__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub__valve_response__pack
+ (const StubValveResponse *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub__valve_response__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub__valve_response__pack_to_buffer
+ (const StubValveResponse *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub__valve_response__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubValveResponse *
+ stub__valve_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubValveResponse *)
+ protobuf_c_message_unpack (&stub__valve_response__descriptor,
+ allocator, len, data);
+}
+void stub__valve_response__free_unpacked
+ (StubValveResponse *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub__valve_response__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub__valve_response__field_descriptors[1] =
+{
+ {
+ "Status",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubValveResponse, has_status),
+ offsetof(StubValveResponse, status),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub__valve_response__field_indices_by_name[] = {
+ 0, /* field[0] = Status */
+};
+static const ProtobufCIntRange stub__valve_response__number_ranges[1 + 1] =
+{
+ { 3, 0 },
+ { 0, 1 }
+};
+const ProtobufCMessageDescriptor stub__valve_response__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "Stub_ValveResponse",
+ "StubValveResponse",
+ "StubValveResponse",
+ "",
+ sizeof(StubValveResponse),
+ 1,
+ stub__valve_response__field_descriptors,
+ stub__valve_response__field_indices_by_name,
+ 1, stub__valve_response__number_ranges,
+ (ProtobufCMessageInit) stub__valve_response__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_ValveResponse.pb-c.h b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_ValveResponse.pb-c.h
new file mode 100644
index 000000000..95a59bcbc
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Stubs/Stub_ValveResponse.pb-c.h
@@ -0,0 +1,75 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Stub_ValveResponse.proto */
+
+#ifndef PROTOBUF_C_Stub_5fValveResponse_2eproto__INCLUDED
+#define PROTOBUF_C_Stub_5fValveResponse_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
+#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+
+typedef struct _StubValveResponse StubValveResponse;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubValveResponse
+{
+ ProtobufCMessage base;
+ /*
+ * 0-OK 1-Failed
+ */
+ protobuf_c_boolean has_status;
+ protobuf_c_boolean status;
+};
+#define STUB__VALVE_RESPONSE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub__valve_response__descriptor) \
+ , 0, 0 }
+
+
+/* StubValveResponse methods */
+void stub__valve_response__init
+ (StubValveResponse *message);
+size_t stub__valve_response__get_packed_size
+ (const StubValveResponse *message);
+size_t stub__valve_response__pack
+ (const StubValveResponse *message,
+ uint8_t *out);
+size_t stub__valve_response__pack_to_buffer
+ (const StubValveResponse *message,
+ ProtobufCBuffer *buffer);
+StubValveResponse *
+ stub__valve_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub__valve_response__free_unpacked
+ (StubValveResponse *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubValveResponse_Closure)
+ (const StubValveResponse *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub__valve_response__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_Stub_5fValveResponse_2eproto__INCLUDED */
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Synchronization/SynchronizeDBRequest.pb-c.c b/Software/Code_Composer/twine_usblib_demo/PMR/Synchronization/SynchronizeDBRequest.pb-c.c
new file mode 100644
index 000000000..97b733360
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Synchronization/SynchronizeDBRequest.pb-c.c
@@ -0,0 +1,105 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: SynchronizeDBRequest.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "SynchronizeDBRequest.pb-c.h"
+void synchronize_dbrequest__init
+ (SynchronizeDBRequest *message)
+{
+ static const SynchronizeDBRequest init_value = SYNCHRONIZE_DBREQUEST__INIT;
+ *message = init_value;
+}
+size_t synchronize_dbrequest__get_packed_size
+ (const SynchronizeDBRequest *message)
+{
+ assert(message->base.descriptor == &synchronize_dbrequest__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t synchronize_dbrequest__pack
+ (const SynchronizeDBRequest *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &synchronize_dbrequest__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t synchronize_dbrequest__pack_to_buffer
+ (const SynchronizeDBRequest *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &synchronize_dbrequest__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+SynchronizeDBRequest *
+ synchronize_dbrequest__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (SynchronizeDBRequest *)
+ protobuf_c_message_unpack (&synchronize_dbrequest__descriptor,
+ allocator, len, data);
+}
+void synchronize_dbrequest__free_unpacked
+ (SynchronizeDBRequest *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &synchronize_dbrequest__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor synchronize_dbrequest__field_descriptors[2] =
+{
+ {
+ "SerialNumber",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_STRING,
+ 0, /* quantifier_offset */
+ offsetof(SynchronizeDBRequest, serialnumber),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "LocalDB",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BYTES,
+ offsetof(SynchronizeDBRequest, has_localdb),
+ offsetof(SynchronizeDBRequest, localdb),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned synchronize_dbrequest__field_indices_by_name[] = {
+ 1, /* field[1] = LocalDB */
+ 0, /* field[0] = SerialNumber */
+};
+static const ProtobufCIntRange synchronize_dbrequest__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 2 }
+};
+const ProtobufCMessageDescriptor synchronize_dbrequest__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "SynchronizeDBRequest",
+ "SynchronizeDBRequest",
+ "SynchronizeDBRequest",
+ "",
+ sizeof(SynchronizeDBRequest),
+ 2,
+ synchronize_dbrequest__field_descriptors,
+ synchronize_dbrequest__field_indices_by_name,
+ 1, synchronize_dbrequest__number_ranges,
+ (ProtobufCMessageInit) synchronize_dbrequest__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Synchronization/SynchronizeDBRequest.pb-c.h b/Software/Code_Composer/twine_usblib_demo/PMR/Synchronization/SynchronizeDBRequest.pb-c.h
new file mode 100644
index 000000000..a1652cce9
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Synchronization/SynchronizeDBRequest.pb-c.h
@@ -0,0 +1,73 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: SynchronizeDBRequest.proto */
+
+#ifndef PROTOBUF_C_SynchronizeDBRequest_2eproto__INCLUDED
+#define PROTOBUF_C_SynchronizeDBRequest_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
+#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+
+typedef struct _SynchronizeDBRequest SynchronizeDBRequest;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _SynchronizeDBRequest
+{
+ ProtobufCMessage base;
+ char *serialnumber;
+ protobuf_c_boolean has_localdb;
+ ProtobufCBinaryData localdb;
+};
+#define SYNCHRONIZE_DBREQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&synchronize_dbrequest__descriptor) \
+ , NULL, 0, {0,NULL} }
+
+
+/* SynchronizeDBRequest methods */
+void synchronize_dbrequest__init
+ (SynchronizeDBRequest *message);
+size_t synchronize_dbrequest__get_packed_size
+ (const SynchronizeDBRequest *message);
+size_t synchronize_dbrequest__pack
+ (const SynchronizeDBRequest *message,
+ uint8_t *out);
+size_t synchronize_dbrequest__pack_to_buffer
+ (const SynchronizeDBRequest *message,
+ ProtobufCBuffer *buffer);
+SynchronizeDBRequest *
+ synchronize_dbrequest__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void synchronize_dbrequest__free_unpacked
+ (SynchronizeDBRequest *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*SynchronizeDBRequest_Closure)
+ (const SynchronizeDBRequest *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor synchronize_dbrequest__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_SynchronizeDBRequest_2eproto__INCLUDED */
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Synchronization/SynchronizeDBResponse.pb-c.c b/Software/Code_Composer/twine_usblib_demo/PMR/Synchronization/SynchronizeDBResponse.pb-c.c
new file mode 100644
index 000000000..208c1a9a5
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Synchronization/SynchronizeDBResponse.pb-c.c
@@ -0,0 +1,92 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: SynchronizeDBResponse.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "SynchronizeDBResponse.pb-c.h"
+void synchronize_dbresponse__init
+ (SynchronizeDBResponse *message)
+{
+ static const SynchronizeDBResponse init_value = SYNCHRONIZE_DBRESPONSE__INIT;
+ *message = init_value;
+}
+size_t synchronize_dbresponse__get_packed_size
+ (const SynchronizeDBResponse *message)
+{
+ assert(message->base.descriptor == &synchronize_dbresponse__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t synchronize_dbresponse__pack
+ (const SynchronizeDBResponse *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &synchronize_dbresponse__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t synchronize_dbresponse__pack_to_buffer
+ (const SynchronizeDBResponse *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &synchronize_dbresponse__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+SynchronizeDBResponse *
+ synchronize_dbresponse__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (SynchronizeDBResponse *)
+ protobuf_c_message_unpack (&synchronize_dbresponse__descriptor,
+ allocator, len, data);
+}
+void synchronize_dbresponse__free_unpacked
+ (SynchronizeDBResponse *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &synchronize_dbresponse__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor synchronize_dbresponse__field_descriptors[1] =
+{
+ {
+ "RemoteDB",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BYTES,
+ offsetof(SynchronizeDBResponse, has_remotedb),
+ offsetof(SynchronizeDBResponse, remotedb),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned synchronize_dbresponse__field_indices_by_name[] = {
+ 0, /* field[0] = RemoteDB */
+};
+static const ProtobufCIntRange synchronize_dbresponse__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 1 }
+};
+const ProtobufCMessageDescriptor synchronize_dbresponse__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "SynchronizeDBResponse",
+ "SynchronizeDBResponse",
+ "SynchronizeDBResponse",
+ "",
+ sizeof(SynchronizeDBResponse),
+ 1,
+ synchronize_dbresponse__field_descriptors,
+ synchronize_dbresponse__field_indices_by_name,
+ 1, synchronize_dbresponse__number_ranges,
+ (ProtobufCMessageInit) synchronize_dbresponse__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Code_Composer/twine_usblib_demo/PMR/Synchronization/SynchronizeDBResponse.pb-c.h b/Software/Code_Composer/twine_usblib_demo/PMR/Synchronization/SynchronizeDBResponse.pb-c.h
new file mode 100644
index 000000000..445695991
--- /dev/null
+++ b/Software/Code_Composer/twine_usblib_demo/PMR/Synchronization/SynchronizeDBResponse.pb-c.h
@@ -0,0 +1,72 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: SynchronizeDBResponse.proto */
+
+#ifndef PROTOBUF_C_SynchronizeDBResponse_2eproto__INCLUDED
+#define PROTOBUF_C_SynchronizeDBResponse_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
+#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+
+typedef struct _SynchronizeDBResponse SynchronizeDBResponse;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _SynchronizeDBResponse
+{
+ ProtobufCMessage base;
+ protobuf_c_boolean has_remotedb;
+ ProtobufCBinaryData remotedb;
+};
+#define SYNCHRONIZE_DBRESPONSE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&synchronize_dbresponse__descriptor) \
+ , 0, {0,NULL} }
+
+
+/* SynchronizeDBResponse methods */
+void synchronize_dbresponse__init
+ (SynchronizeDBResponse *message);
+size_t synchronize_dbresponse__get_packed_size
+ (const SynchronizeDBResponse *message);
+size_t synchronize_dbresponse__pack
+ (const SynchronizeDBResponse *message,
+ uint8_t *out);
+size_t synchronize_dbresponse__pack_to_buffer
+ (const SynchronizeDBResponse *message,
+ ProtobufCBuffer *buffer);
+SynchronizeDBResponse *
+ synchronize_dbresponse__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void synchronize_dbresponse__free_unpacked
+ (SynchronizeDBResponse *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*SynchronizeDBResponse_Closure)
+ (const SynchronizeDBResponse *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor synchronize_dbresponse__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_SynchronizeDBResponse_2eproto__INCLUDED */
diff --git a/Software/Code_Composer/twine_usblib_demo/main.c b/Software/Code_Composer/twine_usblib_demo/main.c
index b2245b705..88b7b5e91 100644
--- a/Software/Code_Composer/twine_usblib_demo/main.c
+++ b/Software/Code_Composer/twine_usblib_demo/main.c
@@ -4,6 +4,7 @@
#include <stdio.h>
#include <stdint.h>
#include <string.h>
+#include <Stub_GPIO.h>
#include "inc/hw_ints.h"
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
@@ -30,8 +31,10 @@
#include "MessageContainer.pb-c.h"
#include "CalculateRequest.pb-c.h"
#include "CalculateResponse.pb-c.h"
-#include "ProgressRequest.pb-c.h";
-#include "ProgressResponse.pb-c.h";
+#include "ProgressRequest.pb-c.h"
+#include "ProgressResponse.pb-c.h"
+
+
//*****************************************************************************
//
@@ -89,7 +92,21 @@ void receive_callback(char* buffer, size_t length)
MessageContainer responseContainer;
- if (requestContainer->type == MESSAGE_TYPE__CalculateRequest)
+ //Avi->
+
+ if (requestContainer->type == MESSAGE_TYPE__Stub_GPIOWriteBitRequest)
+ {
+ Stub_GPIOWriteBitRequest(requestContainer);
+ return;
+ }
+ else if (requestContainer->type == MESSAGE_TYPE__Stub_GPIOReadByteRequest)
+ {
+ Stub_GPIOReadByteRequest(requestContainer);
+ return;
+ }
+ //<-Avi
+
+ else if (requestContainer->type == MESSAGE_TYPE__CalculateRequest)
{
CalculateRequest* request = calculate_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
@@ -172,6 +189,79 @@ MessageContainer createContainer(MessageType type, char* token, protobuf_c_boole
return container;
}
+
+void user_leds()//AVI
+{
+ /*#define RED_LED GPIO_PIN_1
+ #define BLUE_LED GPIO_PIN_2
+ #define GREEN_LED GPIO_PIN_3
+
+ char i;
+
+ //for(i=0;i<30;i++)
+ while(1)
+ {
+ // Turn on the LED
+ //GPIOPinWrite(GPIO_PORTF_BASE, RED_LED|BLUE_LED|GREEN_LED, RED_LED);
+ GPIOPinWrite(GPIO_PORTG_BASE, GPIO_PIN_2, GPIO_PIN_2);
+ // Delay for a bit
+ SysCtlDelay(5000000);
+
+
+ // Turn on the LED
+ //GPIOPinWrite(GPIO_PORTF_BASE, RED_LED|BLUE_LED|GREEN_LED, BLUE_LED);
+ // Delay for a bit
+ SysCtlDelay(2000000);
+
+ // Turn on the LED
+ //GPIOPinWrite(GPIO_PORTF_BASE, RED_LED|BLUE_LED|GREEN_LED, RED_LED);
+ // Delay for a bit
+ SysCtlDelay(2000000);
+
+ }*/
+ uint32_t ui32Loop;
+
+ //
+ // Enable the GPIO port that is used for the on-board LED.
+ //
+ SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOG);
+
+ //
+ // Check if the peripheral access is enabled.
+ //
+ while(!SysCtlPeripheralReady(SYSCTL_PERIPH_GPIOG))
+ {
+ }
+
+
+ while(1)
+ {
+ //
+ // Turn on the LED.
+ //
+ GPIOPinWrite(GPIO_PORTG_BASE, GPIO_PIN_2, GPIO_PIN_2);
+
+ //
+ // Delay for a bit.
+ //
+ for(ui32Loop = 0; ui32Loop < 200000; ui32Loop++)
+ {
+ }
+
+ //
+ // Turn off the LED.
+ //
+ GPIOPinWrite(GPIO_PORTG_BASE, GPIO_PIN_2, 0);
+
+ //
+ // Delay for a bit.
+ //
+ for(ui32Loop = 0; ui32Loop < 200000; ui32Loop++)
+ {
+ }
+ }
+}
+
int main(void)
{
uint32_t ui32SysClock, ui32PLLRate;
@@ -195,6 +285,8 @@ int main(void)
init_graphics(ui32SysClock);
clear();
+ user_leds();//AVI
+
RegisterReceiveCallback(&receive_callback);
StartUSB(ui32SysClock);