aboutsummaryrefslogtreecommitdiffstats
path: root/Software
diff options
context:
space:
mode:
authorAvi Levkovich <avi@twine-s.com>2020-06-07 17:02:29 +0300
committerAvi Levkovich <avi@twine-s.com>2020-06-07 17:02:29 +0300
commitaa2a2f4b7e157525bbb8ffb2dd180ef1dc8e6f62 (patch)
tree94ae906e218abfbf5e27b43b97465ee231bce7d8 /Software
parent98771e68fb9218baff79b8eb7f238bab89b31267 (diff)
parentc9e928b3fc2407b4b3008bfe2df1c15624373e5f (diff)
downloadTango-aa2a2f4b7e157525bbb8ffb2dd180ef1dc8e6f62.tar.gz
Tango-aa2a2f4b7e157525bbb8ffb2dd180ef1dc8e6f62.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/_git/Tango
Diffstat (limited to 'Software')
-rw-r--r--Software/Embedded_SW/Embedded/Communication/Container.c3
-rw-r--r--Software/Embedded_SW/Embedded/Communication/PMR/Common/MessageType.pb-c.c14
-rw-r--r--Software/Embedded_SW/Embedded/Communication/PMR/Common/MessageType.pb-c.h4
-rw-r--r--Software/Embedded_SW/Embedded/Communication/PMR/Stubs/StubDispenserEEpromData.pb-c.c26
-rw-r--r--Software/Embedded_SW/Embedded/Communication/PMR/Stubs/StubDispenserEEpromData.pb-c.h26
-rw-r--r--Software/Embedded_SW/Embedded/Communication/PMR/Stubs/StubMainCardEEpromWriteResponse.pb-c.c43
-rw-r--r--Software/Embedded_SW/Embedded/Communication/PMR/Stubs/StubMainCardEEpromWriteResponse.pb-c.h6
-rw-r--r--Software/Embedded_SW/Embedded/Communication/PMR/ThreadLoading/TryThreadLoadingRequest.pb-c.c72
-rw-r--r--Software/Embedded_SW/Embedded/Communication/PMR/ThreadLoading/TryThreadLoadingRequest.pb-c.h70
-rw-r--r--Software/Embedded_SW/Embedded/Communication/PMR/ThreadLoading/TryThreadLoadingResponse.pb-c.c72
-rw-r--r--Software/Embedded_SW/Embedded/Communication/PMR/ThreadLoading/TryThreadLoadingResponse.pb-c.h70
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/EEPROM/Dispenser_EEPROM.c8
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/EEPROM/Dispenser_EEPROM.h2
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/Motors/Motor.h31
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c4
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c62
-rw-r--r--Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.h2
-rw-r--r--Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerIdle.c70
-rw-r--r--Software/PMR/Messages/Common/MessageType.proto2
-rw-r--r--Software/PMR/Messages/ThreadLoading/TryThreadLoadingRequest.proto9
-rw-r--r--Software/PMR/Messages/ThreadLoading/TryThreadLoadingResponse.proto9
-rw-r--r--Software/Visual_Studio/Tango.PMR/Common/MessageType.cs211
-rw-r--r--Software/Visual_Studio/Tango.PMR/Stubs/StubMainCardEEpromReadRequest.cs188
-rw-r--r--Software/Visual_Studio/Tango.PMR/Stubs/StubMainCardEEpromReadResponse.cs188
-rw-r--r--Software/Visual_Studio/Tango.PMR/Stubs/StubMainCardEEpromWriteRequest.cs188
-rw-r--r--Software/Visual_Studio/Tango.PMR/Stubs/StubMainCardEEpromWriteResponse.cs132
-rw-r--r--Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj8
-rw-r--r--Software/Visual_Studio/Tango.PMR/ThreadLoading/TryThreadLoadingRequest.cs131
-rw-r--r--Software/Visual_Studio/Tango.PMR/ThreadLoading/TryThreadLoadingResponse.cs131
29 files changed, 1620 insertions, 162 deletions
diff --git a/Software/Embedded_SW/Embedded/Communication/Container.c b/Software/Embedded_SW/Embedded/Communication/Container.c
index 1bdc0b535..b5264cda0 100644
--- a/Software/Embedded_SW/Embedded/Communication/Container.c
+++ b/Software/Embedded_SW/Embedded/Communication/Container.c
@@ -506,6 +506,9 @@ void receive_callback(char* buffer, size_t length)
case MESSAGE_TYPE__StubMainCardEEpromWriteRequest:
MainCardEEpromWriteRequestFunc(requestContainer);
break;
+ case MESSAGE_TYPE__TryThreadLoadingRequest:
+ TryThreadLoadingFunc(requestContainer);
+ break;
default:
//unsupported message type !!
LOG_ERROR (requestContainer->type,"unsupported message type");
diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/Common/MessageType.pb-c.c b/Software/Embedded_SW/Embedded/Communication/PMR/Common/MessageType.pb-c.c
index 2c7d12003..75c0591b1 100644
--- a/Software/Embedded_SW/Embedded/Communication/PMR/Common/MessageType.pb-c.c
+++ b/Software/Embedded_SW/Embedded/Communication/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[257] =
+static const ProtobufCEnumValue message_type__enum_values_by_number[259] =
{
{ "", "", 0 },
{ "", "", 1 },
@@ -266,11 +266,13 @@ static const ProtobufCEnumValue message_type__enum_values_by_number[257] =
{ "", "", 11003 },
{ "", "", 11004 },
{ "", "", 11005 },
+ { "", "", 11006 },
+ { "", "", 11007 },
};
static const ProtobufCIntRange message_type__value_ranges[] = {
-{0, 0},{3, 2},{1000, 112},{2000, 131},{3000, 177},{4000, 191},{5000, 199},{6000, 203},{7000, 209},{8000, 233},{9000, 239},{10000, 243},{11000, 251},{0, 257}
+{0, 0},{3, 2},{1000, 112},{2000, 131},{3000, 177},{4000, 191},{5000, 199},{6000, 203},{7000, 209},{8000, 233},{9000, 239},{10000, 243},{11000, 251},{0, 259}
};
-static const ProtobufCEnumValueIndex message_type__enum_values_by_name[257] =
+static const ProtobufCEnumValueIndex message_type__enum_values_by_name[259] =
{
{ "", 189 },
{ "", 190 },
@@ -521,6 +523,8 @@ static const ProtobufCEnumValueIndex message_type__enum_values_by_name[257] =
{ "", 154 },
{ "", 151 },
{ "", 152 },
+ { "", 257 },
+ { "", 258 },
{ "", 127 },
{ "", 128 },
{ "", 199 },
@@ -537,9 +541,9 @@ const ProtobufCEnumDescriptor message_type__descriptor =
"",
"",
"",
- 257,
+ 259,
message_type__enum_values_by_number,
- 257,
+ 259,
message_type__enum_values_by_name,
13,
message_type__value_ranges,
diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/Common/MessageType.pb-c.h b/Software/Embedded_SW/Embedded/Communication/PMR/Common/MessageType.pb-c.h
index 3cfe8f4fb..231bc8411 100644
--- a/Software/Embedded_SW/Embedded/Communication/PMR/Common/MessageType.pb-c.h
+++ b/Software/Embedded_SW/Embedded/Communication/PMR/Common/MessageType.pb-c.h
@@ -276,7 +276,9 @@ typedef enum _MessageType {
MESSAGE_TYPE__ContinueThreadLoadingRequest = 11002,
MESSAGE_TYPE__ContinueThreadLoadingResponse = 11003,
MESSAGE_TYPE__StopThreadLoadingRequest = 11004,
- MESSAGE_TYPE__StopThreadLoadingResponse = 11005
+ MESSAGE_TYPE__StopThreadLoadingResponse = 11005,
+ MESSAGE_TYPE__TryThreadLoadingRequest = 11006,
+ MESSAGE_TYPE__TryThreadLoadingResponse = 11007
PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(MESSAGE_TYPE)
} MessageType;
diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/Stubs/StubDispenserEEpromData.pb-c.c b/Software/Embedded_SW/Embedded/Communication/PMR/Stubs/StubDispenserEEpromData.pb-c.c
index 26e3d8b31..fe523f009 100644
--- a/Software/Embedded_SW/Embedded/Communication/PMR/Stubs/StubDispenserEEpromData.pb-c.c
+++ b/Software/Embedded_SW/Embedded/Communication/PMR/Stubs/StubDispenserEEpromData.pb-c.c
@@ -142,7 +142,7 @@ static const ProtobufCFieldDescriptor stub_dispenser_eeprom_data__field_descript
"",
8,
PROTOBUF_C_LABEL_OPTIONAL,
- PROTOBUF_C_TYPE_UINT32,
+ PROTOBUF_C_TYPE_INT32,
offsetof(StubDispenserEEpromData, has_minimalpressure),
offsetof(StubDispenserEEpromData, minimalpressure),
NULL,
@@ -154,7 +154,7 @@ static const ProtobufCFieldDescriptor stub_dispenser_eeprom_data__field_descript
"",
9,
PROTOBUF_C_LABEL_OPTIONAL,
- PROTOBUF_C_TYPE_UINT32,
+ PROTOBUF_C_TYPE_INT32,
offsetof(StubDispenserEEpromData, has_maximalpressure),
offsetof(StubDispenserEEpromData, maximalpressure),
NULL,
@@ -166,7 +166,7 @@ static const ProtobufCFieldDescriptor stub_dispenser_eeprom_data__field_descript
"",
10,
PROTOBUF_C_LABEL_OPTIONAL,
- PROTOBUF_C_TYPE_UINT32,
+ PROTOBUF_C_TYPE_INT32,
offsetof(StubDispenserEEpromData, has_minimalmv),
offsetof(StubDispenserEEpromData, minimalmv),
NULL,
@@ -178,7 +178,7 @@ static const ProtobufCFieldDescriptor stub_dispenser_eeprom_data__field_descript
"",
11,
PROTOBUF_C_LABEL_OPTIONAL,
- PROTOBUF_C_TYPE_UINT32,
+ PROTOBUF_C_TYPE_INT32,
offsetof(StubDispenserEEpromData, has_maximalmv),
offsetof(StubDispenserEEpromData, maximalmv),
NULL,
@@ -202,7 +202,7 @@ static const ProtobufCFieldDescriptor stub_dispenser_eeprom_data__field_descript
"",
13,
PROTOBUF_C_LABEL_OPTIONAL,
- PROTOBUF_C_TYPE_UINT32,
+ PROTOBUF_C_TYPE_INT32,
offsetof(StubDispenserEEpromData, has_bubblesize),
offsetof(StubDispenserEEpromData, bubblesize),
NULL,
@@ -214,7 +214,7 @@ static const ProtobufCFieldDescriptor stub_dispenser_eeprom_data__field_descript
"",
14,
PROTOBUF_C_LABEL_OPTIONAL,
- PROTOBUF_C_TYPE_UINT32,
+ PROTOBUF_C_TYPE_INT32,
offsetof(StubDispenserEEpromData, has_avg_nl_stepvalue_1_4),
offsetof(StubDispenserEEpromData, avg_nl_stepvalue_1_4),
NULL,
@@ -226,7 +226,7 @@ static const ProtobufCFieldDescriptor stub_dispenser_eeprom_data__field_descript
"",
15,
PROTOBUF_C_LABEL_OPTIONAL,
- PROTOBUF_C_TYPE_UINT32,
+ PROTOBUF_C_TYPE_INT32,
offsetof(StubDispenserEEpromData, has_avg_nl_stepvalue_2_4),
offsetof(StubDispenserEEpromData, avg_nl_stepvalue_2_4),
NULL,
@@ -238,7 +238,7 @@ static const ProtobufCFieldDescriptor stub_dispenser_eeprom_data__field_descript
"",
16,
PROTOBUF_C_LABEL_OPTIONAL,
- PROTOBUF_C_TYPE_UINT32,
+ PROTOBUF_C_TYPE_INT32,
offsetof(StubDispenserEEpromData, has_avg_nl_stepvalue_3_4),
offsetof(StubDispenserEEpromData, avg_nl_stepvalue_3_4),
NULL,
@@ -250,7 +250,7 @@ static const ProtobufCFieldDescriptor stub_dispenser_eeprom_data__field_descript
"",
17,
PROTOBUF_C_LABEL_OPTIONAL,
- PROTOBUF_C_TYPE_UINT32,
+ PROTOBUF_C_TYPE_INT32,
offsetof(StubDispenserEEpromData, has_avg_nl_stepvalue_4_4),
offsetof(StubDispenserEEpromData, avg_nl_stepvalue_4_4),
NULL,
@@ -262,7 +262,7 @@ static const ProtobufCFieldDescriptor stub_dispenser_eeprom_data__field_descript
"",
18,
PROTOBUF_C_LABEL_OPTIONAL,
- PROTOBUF_C_TYPE_UINT32,
+ PROTOBUF_C_TYPE_INT32,
offsetof(StubDispenserEEpromData, has_sw_reserve),
offsetof(StubDispenserEEpromData, sw_reserve),
NULL,
@@ -322,7 +322,7 @@ static const ProtobufCFieldDescriptor stub_dispenser_eeprom_data__field_descript
"",
23,
PROTOBUF_C_LABEL_OPTIONAL,
- PROTOBUF_C_TYPE_UINT32,
+ PROTOBUF_C_TYPE_INT32,
offsetof(StubDispenserEEpromData, has_pressureslope),
offsetof(StubDispenserEEpromData, pressureslope),
NULL,
@@ -358,7 +358,7 @@ static const ProtobufCFieldDescriptor stub_dispenser_eeprom_data__field_descript
"",
26,
PROTOBUF_C_LABEL_OPTIONAL,
- PROTOBUF_C_TYPE_UINT32,
+ PROTOBUF_C_TYPE_INT32,
offsetof(StubDispenserEEpromData, has_spare1),
offsetof(StubDispenserEEpromData, spare1),
NULL,
@@ -370,7 +370,7 @@ static const ProtobufCFieldDescriptor stub_dispenser_eeprom_data__field_descript
"",
27,
PROTOBUF_C_LABEL_OPTIONAL,
- PROTOBUF_C_TYPE_UINT32,
+ PROTOBUF_C_TYPE_INT32,
offsetof(StubDispenserEEpromData, has_spare2),
offsetof(StubDispenserEEpromData, spare2),
NULL,
diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/Stubs/StubDispenserEEpromData.pb-c.h b/Software/Embedded_SW/Embedded/Communication/PMR/Stubs/StubDispenserEEpromData.pb-c.h
index 8b1a70fd5..170c4028c 100644
--- a/Software/Embedded_SW/Embedded/Communication/PMR/Stubs/StubDispenserEEpromData.pb-c.h
+++ b/Software/Embedded_SW/Embedded/Communication/PMR/Stubs/StubDispenserEEpromData.pb-c.h
@@ -37,27 +37,27 @@ struct _StubDispenserEEpromData
char *pcbpartnumber;
char *dispensers_n;
protobuf_c_boolean has_minimalpressure;
- uint32_t minimalpressure;
+ int32_t minimalpressure;
protobuf_c_boolean has_maximalpressure;
- uint32_t maximalpressure;
+ int32_t maximalpressure;
protobuf_c_boolean has_minimalmv;
- uint32_t minimalmv;
+ int32_t minimalmv;
protobuf_c_boolean has_maximalmv;
- uint32_t maximalmv;
+ int32_t maximalmv;
protobuf_c_boolean has_totalcycles;
uint32_t totalcycles;
protobuf_c_boolean has_bubblesize;
- uint32_t bubblesize;
+ int32_t bubblesize;
protobuf_c_boolean has_avg_nl_stepvalue_1_4;
- uint32_t avg_nl_stepvalue_1_4;
+ int32_t avg_nl_stepvalue_1_4;
protobuf_c_boolean has_avg_nl_stepvalue_2_4;
- uint32_t avg_nl_stepvalue_2_4;
+ int32_t avg_nl_stepvalue_2_4;
protobuf_c_boolean has_avg_nl_stepvalue_3_4;
- uint32_t avg_nl_stepvalue_3_4;
+ int32_t avg_nl_stepvalue_3_4;
protobuf_c_boolean has_avg_nl_stepvalue_4_4;
- uint32_t avg_nl_stepvalue_4_4;
+ int32_t avg_nl_stepvalue_4_4;
protobuf_c_boolean has_sw_reserve;
- uint32_t sw_reserve;
+ int32_t sw_reserve;
protobuf_c_boolean has_spare1_pressure;
int32_t spare1_pressure;
protobuf_c_boolean has_spare2_pressure;
@@ -67,14 +67,14 @@ struct _StubDispenserEEpromData
protobuf_c_boolean has_color;
uint32_t color;
protobuf_c_boolean has_pressureslope;
- uint32_t pressureslope;
+ int32_t pressureslope;
char *productiondate;
protobuf_c_boolean has_atslocation;
uint32_t atslocation;
protobuf_c_boolean has_spare1;
- uint32_t spare1;
+ int32_t spare1;
protobuf_c_boolean has_spare2;
- uint32_t spare2;
+ int32_t spare2;
protobuf_c_boolean has_atschannel;
uint32_t atschannel;
protobuf_c_boolean has_unitempty;
diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/Stubs/StubMainCardEEpromWriteResponse.pb-c.c b/Software/Embedded_SW/Embedded/Communication/PMR/Stubs/StubMainCardEEpromWriteResponse.pb-c.c
index 4d2e53d4c..818da358a 100644
--- a/Software/Embedded_SW/Embedded/Communication/PMR/Stubs/StubMainCardEEpromWriteResponse.pb-c.c
+++ b/Software/Embedded_SW/Embedded/Communication/PMR/Stubs/StubMainCardEEpromWriteResponse.pb-c.c
@@ -52,9 +52,42 @@ void stub_main_card_eeprom_write_response__free_unpacked
assert(message->base.descriptor == &stub_main_card_eeprom_write_response__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
-#define stub_main_card_eeprom_write_response__field_descriptors NULL
-#define stub_main_card_eeprom_write_response__field_indices_by_name NULL
-#define stub_main_card_eeprom_write_response__number_ranges NULL
+static const ProtobufCFieldDescriptor stub_main_card_eeprom_write_response__field_descriptors[2] =
+{
+ {
+ "",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_INT32,
+ offsetof(StubMainCardEEpromWriteResponse, has_address),
+ offsetof(StubMainCardEEpromWriteResponse, address),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_INT32,
+ offsetof(StubMainCardEEpromWriteResponse, has_data),
+ offsetof(StubMainCardEEpromWriteResponse, data),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub_main_card_eeprom_write_response__field_indices_by_name[] = {
+ 0, /* field[0] = Address */
+ 1, /* field[1] = Data */
+};
+static const ProtobufCIntRange stub_main_card_eeprom_write_response__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 2 }
+};
const ProtobufCMessageDescriptor stub_main_card_eeprom_write_response__descriptor =
{
PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
@@ -63,10 +96,10 @@ const ProtobufCMessageDescriptor stub_main_card_eeprom_write_response__descripto
"",
"",
sizeof(StubMainCardEEpromWriteResponse),
- 0,
+ 2,
stub_main_card_eeprom_write_response__field_descriptors,
stub_main_card_eeprom_write_response__field_indices_by_name,
- 0, stub_main_card_eeprom_write_response__number_ranges,
+ 1, stub_main_card_eeprom_write_response__number_ranges,
(ProtobufCMessageInit) stub_main_card_eeprom_write_response__init,
NULL,NULL,NULL /* reserved[123] */
};
diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/Stubs/StubMainCardEEpromWriteResponse.pb-c.h b/Software/Embedded_SW/Embedded/Communication/PMR/Stubs/StubMainCardEEpromWriteResponse.pb-c.h
index 21c64bf05..90390c99f 100644
--- a/Software/Embedded_SW/Embedded/Communication/PMR/Stubs/StubMainCardEEpromWriteResponse.pb-c.h
+++ b/Software/Embedded_SW/Embedded/Communication/PMR/Stubs/StubMainCardEEpromWriteResponse.pb-c.h
@@ -26,10 +26,14 @@ typedef struct _StubMainCardEEpromWriteResponse StubMainCardEEpromWriteResponse;
struct _StubMainCardEEpromWriteResponse
{
ProtobufCMessage base;
+ protobuf_c_boolean has_address;
+ int32_t address;
+ protobuf_c_boolean has_data;
+ int32_t data;
};
#define STUB_MAIN_CARD_EEPROM_WRITE_RESPONSE__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&stub_main_card_eeprom_write_response__descriptor) \
- }
+ , 0, 0, 0, 0 }
/* StubMainCardEEpromWriteResponse methods */
diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/ThreadLoading/TryThreadLoadingRequest.pb-c.c b/Software/Embedded_SW/Embedded/Communication/PMR/ThreadLoading/TryThreadLoadingRequest.pb-c.c
new file mode 100644
index 000000000..cd1eff033
--- /dev/null
+++ b/Software/Embedded_SW/Embedded/Communication/PMR/ThreadLoading/TryThreadLoadingRequest.pb-c.c
@@ -0,0 +1,72 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: TryThreadLoadingRequest.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "TryThreadLoadingRequest.pb-c.h"
+void try_thread_loading_request__init
+ (TryThreadLoadingRequest *message)
+{
+ static const TryThreadLoadingRequest init_value = TRY_THREAD_LOADING_REQUEST__INIT;
+ *message = init_value;
+}
+size_t try_thread_loading_request__get_packed_size
+ (const TryThreadLoadingRequest *message)
+{
+ assert(message->base.descriptor == &try_thread_loading_request__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t try_thread_loading_request__pack
+ (const TryThreadLoadingRequest *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &try_thread_loading_request__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t try_thread_loading_request__pack_to_buffer
+ (const TryThreadLoadingRequest *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &try_thread_loading_request__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+TryThreadLoadingRequest *
+ try_thread_loading_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (TryThreadLoadingRequest *)
+ protobuf_c_message_unpack (&try_thread_loading_request__descriptor,
+ allocator, len, data);
+}
+void try_thread_loading_request__free_unpacked
+ (TryThreadLoadingRequest *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &try_thread_loading_request__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+#define try_thread_loading_request__field_descriptors NULL
+#define try_thread_loading_request__field_indices_by_name NULL
+#define try_thread_loading_request__number_ranges NULL
+const ProtobufCMessageDescriptor try_thread_loading_request__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "",
+ "",
+ "",
+ "",
+ sizeof(TryThreadLoadingRequest),
+ 0,
+ try_thread_loading_request__field_descriptors,
+ try_thread_loading_request__field_indices_by_name,
+ 0, try_thread_loading_request__number_ranges,
+ (ProtobufCMessageInit) try_thread_loading_request__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/ThreadLoading/TryThreadLoadingRequest.pb-c.h b/Software/Embedded_SW/Embedded/Communication/PMR/ThreadLoading/TryThreadLoadingRequest.pb-c.h
new file mode 100644
index 000000000..5de127af4
--- /dev/null
+++ b/Software/Embedded_SW/Embedded/Communication/PMR/ThreadLoading/TryThreadLoadingRequest.pb-c.h
@@ -0,0 +1,70 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: TryThreadLoadingRequest.proto */
+
+#ifndef PROTOBUF_C_TryThreadLoadingRequest_2eproto__INCLUDED
+#define PROTOBUF_C_TryThreadLoadingRequest_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 _TryThreadLoadingRequest TryThreadLoadingRequest;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _TryThreadLoadingRequest
+{
+ ProtobufCMessage base;
+};
+#define TRY_THREAD_LOADING_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&try_thread_loading_request__descriptor) \
+ }
+
+
+/* TryThreadLoadingRequest methods */
+void try_thread_loading_request__init
+ (TryThreadLoadingRequest *message);
+size_t try_thread_loading_request__get_packed_size
+ (const TryThreadLoadingRequest *message);
+size_t try_thread_loading_request__pack
+ (const TryThreadLoadingRequest *message,
+ uint8_t *out);
+size_t try_thread_loading_request__pack_to_buffer
+ (const TryThreadLoadingRequest *message,
+ ProtobufCBuffer *buffer);
+TryThreadLoadingRequest *
+ try_thread_loading_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void try_thread_loading_request__free_unpacked
+ (TryThreadLoadingRequest *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*TryThreadLoadingRequest_Closure)
+ (const TryThreadLoadingRequest *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor try_thread_loading_request__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_TryThreadLoadingRequest_2eproto__INCLUDED */
diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/ThreadLoading/TryThreadLoadingResponse.pb-c.c b/Software/Embedded_SW/Embedded/Communication/PMR/ThreadLoading/TryThreadLoadingResponse.pb-c.c
new file mode 100644
index 000000000..b12bf1438
--- /dev/null
+++ b/Software/Embedded_SW/Embedded/Communication/PMR/ThreadLoading/TryThreadLoadingResponse.pb-c.c
@@ -0,0 +1,72 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: TryThreadLoadingResponse.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "TryThreadLoadingResponse.pb-c.h"
+void try_thread_loading_response__init
+ (TryThreadLoadingResponse *message)
+{
+ static const TryThreadLoadingResponse init_value = TRY_THREAD_LOADING_RESPONSE__INIT;
+ *message = init_value;
+}
+size_t try_thread_loading_response__get_packed_size
+ (const TryThreadLoadingResponse *message)
+{
+ assert(message->base.descriptor == &try_thread_loading_response__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t try_thread_loading_response__pack
+ (const TryThreadLoadingResponse *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &try_thread_loading_response__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t try_thread_loading_response__pack_to_buffer
+ (const TryThreadLoadingResponse *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &try_thread_loading_response__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+TryThreadLoadingResponse *
+ try_thread_loading_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (TryThreadLoadingResponse *)
+ protobuf_c_message_unpack (&try_thread_loading_response__descriptor,
+ allocator, len, data);
+}
+void try_thread_loading_response__free_unpacked
+ (TryThreadLoadingResponse *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &try_thread_loading_response__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+#define try_thread_loading_response__field_descriptors NULL
+#define try_thread_loading_response__field_indices_by_name NULL
+#define try_thread_loading_response__number_ranges NULL
+const ProtobufCMessageDescriptor try_thread_loading_response__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "",
+ "",
+ "",
+ "",
+ sizeof(TryThreadLoadingResponse),
+ 0,
+ try_thread_loading_response__field_descriptors,
+ try_thread_loading_response__field_indices_by_name,
+ 0, try_thread_loading_response__number_ranges,
+ (ProtobufCMessageInit) try_thread_loading_response__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Embedded_SW/Embedded/Communication/PMR/ThreadLoading/TryThreadLoadingResponse.pb-c.h b/Software/Embedded_SW/Embedded/Communication/PMR/ThreadLoading/TryThreadLoadingResponse.pb-c.h
new file mode 100644
index 000000000..7340ada7c
--- /dev/null
+++ b/Software/Embedded_SW/Embedded/Communication/PMR/ThreadLoading/TryThreadLoadingResponse.pb-c.h
@@ -0,0 +1,70 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: TryThreadLoadingResponse.proto */
+
+#ifndef PROTOBUF_C_TryThreadLoadingResponse_2eproto__INCLUDED
+#define PROTOBUF_C_TryThreadLoadingResponse_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 _TryThreadLoadingResponse TryThreadLoadingResponse;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _TryThreadLoadingResponse
+{
+ ProtobufCMessage base;
+};
+#define TRY_THREAD_LOADING_RESPONSE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&try_thread_loading_response__descriptor) \
+ }
+
+
+/* TryThreadLoadingResponse methods */
+void try_thread_loading_response__init
+ (TryThreadLoadingResponse *message);
+size_t try_thread_loading_response__get_packed_size
+ (const TryThreadLoadingResponse *message);
+size_t try_thread_loading_response__pack
+ (const TryThreadLoadingResponse *message,
+ uint8_t *out);
+size_t try_thread_loading_response__pack_to_buffer
+ (const TryThreadLoadingResponse *message,
+ ProtobufCBuffer *buffer);
+TryThreadLoadingResponse *
+ try_thread_loading_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void try_thread_loading_response__free_unpacked
+ (TryThreadLoadingResponse *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*TryThreadLoadingResponse_Closure)
+ (const TryThreadLoadingResponse *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor try_thread_loading_response__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_TryThreadLoadingResponse_2eproto__INCLUDED */
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/EEPROM/Dispenser_EEPROM.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/EEPROM/Dispenser_EEPROM.c
index 5fd916667..ffbbf6608 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/EEPROM/Dispenser_EEPROM.c
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/EEPROM/Dispenser_EEPROM.c
@@ -94,7 +94,15 @@ uint32_t I2C_EEprom_Read_Ch(uint8_t Dispenser_ID, uint8_t EEprom_Add)
return status;
}
+uint32_t Dispenser_EEPROM_Read_Data(uint8_t Dispenser_ID)//0..7
+{
+ uint32_t status= OK;
+ assert(Dispenser_ID < MAX_SYSTEM_DISPENSERS);
+ status |= I2C_EEprom_Set_for_Read_Ch(Dispenser_ID, 0xA0);
+ status |= I2C_EEprom_Read_Ch(Dispenser_ID, 0xA0);
+ return status;
+}
uint32_t test_disp_eeprom(uint8_t Dispenser_ID , uint8_t EEprom_Add)//0..7
{
uint32_t status= OK;
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/EEPROM/Dispenser_EEPROM.h b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/EEPROM/Dispenser_EEPROM.h
index 1a1af1851..bdf1b3693 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/EEPROM/Dispenser_EEPROM.h
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/EEPROM/Dispenser_EEPROM.h
@@ -17,6 +17,8 @@ uint32_t I2C_EEprom_Read_Ch(uint8_t Dispenser_ID, uint8_t EEprom_Add);
uint32_t test_disp_eeprom(uint8_t Dispenser_ID , uint8_t EEprom_Add);
uint8_t Check_Dispenser_Type();
+uint32_t Dispenser_EEPROM_Read_Data(uint8_t Dispenser_ID);//0..7
+
uint32_t DispenserEEpromRequestFunc(MessageContainer* requestContainer);
uint32_t StubDispenserEEpromRequestFunc(MessageContainer* requestContainer);
diff --git a/Software/Embedded_SW/Embedded/Drivers/Motors/Motor.h b/Software/Embedded_SW/Embedded/Drivers/Motors/Motor.h
index 79a56d785..355af95b4 100644
--- a/Software/Embedded_SW/Embedded/Drivers/Motors/Motor.h
+++ b/Software/Embedded_SW/Embedded/Drivers/Motors/Motor.h
@@ -18,6 +18,37 @@
#include "drivers/FPGA/FPGA_GPIO/FPGA_GPIO.h"
#define TimerMotors_t HardwareMotorType
+ static char* MotorStr[30] = {
+ "Dh Clean Head",
+ "Dh Clean Mech",
+ "Dh Lid ",
+ "Dryer Driving",
+ "Dryer Lid ",
+ "Dryer Loadarm",
+ "Dispenser 1",
+ "Dispenser 2",
+ "Dispenser 3",
+ "Dispenser 4",
+ "Dispenser 5",
+ "Dispenser 6",
+ "Dispenser 7",
+ "Dispenser 8",
+ "Screw ",
+ "Winder ",
+ "Left Dancer ",
+ "Middle Dancer",
+ "Left Driving ",
+ "Left Loading ",
+ "Left pivot ",
+ "Right Dancer ",
+ "Right Driving",
+ "Right Loadarm",
+ "Right Loading",
+ "Spare1 1",
+ "Spare1 2",
+ "Spare2 1",
+ "Spare2 2",
+ "Spare3 1"};
//#define NUM_OF_MOTORS (HARDWARE_MOTOR_TYPE__MOTO_RLOADING + 1) // TODO After the integration with mulbery change to:
diff --git a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
index 2cf368ebd..39d10bfc2 100644
--- a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
+++ b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
@@ -483,9 +483,7 @@ uint32_t HWConfiguration(UploadHardwareConfigurationRequest* UploadRequest)
LOG_ERROR (Dispenser_i, "Dispenser identification failed");
//return ERROR;
}
-
- status |= I2C_EEprom_Set_for_Read_Ch(Dispenser_i, 0xA0);
- status |= I2C_EEprom_Read_Ch(Dispenser_i, 0xA0);
+ status |= Dispenser_EEPROM_Read_Data(Dispenser_i);
}
Calculateinit();
}
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c
index a91781ce4..abfdd2237 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c
@@ -44,26 +44,28 @@
#include "PMR/ThreadLoading/StartThreadLoadingResponse.pb-c.h"
#include "PMR/ThreadLoading/ContinueThreadLoadingRequest.pb-c.h"
#include "PMR/ThreadLoading/ContinueThreadLoadingResponse.pb-c.h"
+#include "PMR/ThreadLoading/TryThreadLoadingRequest.pb-c.h"
+#include "PMR/ThreadLoading/TryThreadLoadingResponse.pb-c.h"
#include "PMR/ThreadLoading/StopThreadLoadingRequest.pb-c.h"
#include "PMR/ThreadLoading/StopThreadLoadingResponse.pb-c.h"
//#include <stdint.h>
//#include <stdbool.h>
static char* LoadStagesStr[15] = {
- /*00*/ "INIT",
- /*01*/ "REDUCE_HEAT",
- /*02*/ "LIFT_ROCKERS",
- /*03*/ "SET_LOAD_ARM",
- /*04*/ "OPEN_COVERS",
- /*05*/ "LIFT_DANCERS",
- /*06*/ "INITIAL_TENSION",
- /*07*/ "CLOSE_ROCKERS",
- /*08*/ "CLOSE_DANCERS",
- /*09*/ "CLOSE_LIDS",
- /*10*/ "JOG_FEEDER",
- /*11*/ "DRYER_LOADING",
- /*12*/ "RESUME_HEATING",
- /*13*/ "JOG_THREAD" ,
+ /*00*/ "Initialization",
+ /*01*/ "heating stop",
+ /*02*/ "Rockers opening",
+ /*03*/ "Drier unloading",
+ /*04*/ "Lids opening",
+ /*05*/ "Dancers opening",
+ /*06*/ "Initial tension building",
+ /*07*/ "Rockers closing",
+ /*08*/ "Dancers closing",
+ /*09*/ "Lids closing",
+ /*10*/ "Feeder jogging",
+ /*11*/ "Drier loading",
+ /*12*/ "Heating resuming",
+ /*13*/ "Thread jogging" ,
/*14*/ "END"};
/* typedef enum
@@ -284,7 +286,7 @@
{
TimeoutsCounter = 0;
load.color = fastBILNK;
- usnprintf(LoadErrorMsg, 100, "Load sequence timeout %s motor %d",LoadStagesStr[LoadStages], MotorId);
+ usnprintf(LoadErrorMsg, 100, "Stage %s - motor %s timeout",LoadStagesStr[LoadStages], MotorStr[MotorId]);
Report(LoadErrorMsg,__FILE__,__LINE__,LoadStages,RpWarning,TimeoutsCounter,0);
LoadStatus = ERROR;
@@ -493,7 +495,7 @@
if (HandleProcessParameters(&ProcessParametersRecover,false)!= OK)
{
- usnprintf(LoadErrorMsg, 100, "Load sequence error %d",LoadStagesStr[LoadStages]);
+ usnprintf(LoadErrorMsg, 100, "Stage %s error",LoadStagesStr[LoadStages]);
Report(LoadErrorMsg,__FILE__,__LINE__,LoadStages,RpWarning,TimeoutsCounter,0);
}
else
@@ -617,8 +619,9 @@
Report("Store Number of cycles in drier - halted",__FILE__,__LINE__,numberOfCycles,RpMessage,LoadArmRounds,0);
MCU_E2PromProgram(EEPROM_STORAGE_DRYER_CYCLES,numberOfCycles);
TimeoutsCounter = 0;
+ CallbackCounter = 0;
load.color = fastBILNK;
- usnprintf(LoadErrorMsg, 100, "Load sequence timeout %s motor %d",LoadStagesStr[LoadStages], HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM);
+ usnprintf(LoadErrorMsg, 100, "Stage %s - Drier load arm timeout",LoadStagesStr[LoadStages]);
Report(LoadErrorMsg,__FILE__,__LINE__,LoadStages,RpWarning,TimeoutsCounter,0);
LoadStatus = ERROR;
MotorSetMaxSpeed (HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM, 200);
@@ -834,7 +837,7 @@
MotorStop(HARDWARE_MOTOR_TYPE__MOTO_DRYER_DRIVING,Hard_Hiz);
MotorStop(HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM,Hard_Stop);
load.color = fastBILNK;
- usnprintf(LoadErrorMsg, 100, "Load sequence timeout %s motor %d",LoadStagesStr[LoadStages], HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM);
+ usnprintf(LoadErrorMsg, 100, "Stage %s - Drier load arm timeout",LoadStagesStr[LoadStages]);
Report(LoadErrorMsg,__FILE__,__LINE__,LoadStages,RpWarning,TimeoutsCounter,0);
Report("Drier unloading timeout(1) or no movement",__FILE__,temp,DrierPrevLocation,RpWarning,ReadValue,0);
LoadStatus = ERROR;
@@ -950,6 +953,8 @@
{
REPORT_MSG(ReadValue,"ThreadLoadStateMachine");
ThreadLoaded();
+ ThreadLoadingReport();
+
if (LoadStages!=ReadValue)
LoadStages = ReadValue;
switch (ReadValue)
@@ -1038,6 +1043,7 @@
LOG_ERROR(LoadStages,"ERROR IN LOAD STATE MACHINE");
break;
}
+
return OK;
}
uint32_t ThreadLoadButton(THREAD_LOAD_STAGES_ENUM ReadValue)
@@ -1054,6 +1060,7 @@ uint32_t ThreadLoadButton(THREAD_LOAD_STAGES_ENUM ReadValue)
}
Report("ThreadLoadButton",__FILE__,__LINE__,LoadStages,RpMessage,ReadValue,0);
Report("ThreadLoadButton params",__FILE__,LoadStatus,TryAgain,RpMessage,SecondTry,0);
+ ThreadLoadingReport();
if (LoadStatus == ERROR)
{
if ((SecondTry == false)&&(TryAgain == true))
@@ -1387,6 +1394,25 @@ uint32_t ThreadLoadingReport(void)
}
+uint32_t TryThreadLoadingFunc(MessageContainer* requestContainer)
+{
+ TryThreadLoadingRequest *request = continue_thread_loading_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
+ TryThreadLoadingResponse Cresponse = TRY_THREAD_LOADING_RESPONSE__INIT;
+ MessageContainer responseContainer;
+ MessageState = 2;
+ ThreadLoadingReport();
+ Report("TryThreadLoadingFunc",__FILE__,__LINE__,MESSAGE_TYPE__TryThreadLoadingResponse,RpWarning,(int)LoadStages,0);
+
+ responseContainer = createContainer(MESSAGE_TYPE__TryThreadLoadingResponse, requestContainer->token, true, &Cresponse, &try_thread_loading_response__pack, &try_thread_loading_response__get_packed_size);
+ responseContainer.continuous = false;
+ uint8_t* container_buffer = my_malloc(message_container__get_packed_size(&responseContainer));
+ size_t container_size = message_container__pack(&responseContainer, container_buffer);
+ my_free(responseContainer.data.data);
+ SendChars((char*)container_buffer, container_size);
+
+ ThreadLoadButton(LoadStages);
+ return OK;
+}
uint32_t StartThreadLoadingFunc(MessageContainer* requestContainer)
{
StartThreadLoadingRequest *request = start_thread_loading_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
diff --git a/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.h b/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.h
index b8fb8efd7..8ce835a06 100644
--- a/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.h
+++ b/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.h
@@ -29,6 +29,8 @@
MACHINE_STATE_MAX,
}MACHINE_STATE_STAGES_ENUM;
+extern char PowerUpToken[36+1];
+
uint32_t Start_InitSequence(void);
void StopInitSequence(void);
MACHINE_STATE_STAGES_ENUM GetMachineState(void);
diff --git a/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerIdle.c b/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerIdle.c
index 69df1c183..27ad14ea6 100644
--- a/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerIdle.c
+++ b/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerIdle.c
@@ -13,8 +13,15 @@
#include "modules/heaters/heaters_ex.h"
#include "modules/Diagnostics/Diagnostics.h"
#include "Modules/General/process.h"
-#include "PMR/MachineStatus/MachineStatus.pb-c.h"
#include "Modules/General/MachineStatus.h"
+#include "Modules/General/buttons.h"
+
+#include "PMR/Power/StartPowerUpRequest.pb-c.h"
+#include "PMR/Power/AbortPowerUpRequest.pb-c.h"
+#include "PMR/Power/StartPowerUpResponse.pb-c.h"
+#include "PMR/Power/AbortPowerUpResponse.pb-c.h"
+#include "PMR/Power/PowerUpState.pb-c.h"
+#include "PMR/MachineStatus/MachineStatus.pb-c.h"
#include "StateMachines/Printing/PrintingSTM.h"
#include "StateMachines/Initialization/PowerOffSequence.h"
@@ -24,7 +31,7 @@
#include "drivers/I2C_Communication/ADC_MUX/ADC_MUX.h"
#include "drivers/Valves/Valve.h"
#include <Drivers/I2C_Communication/WHS_Card/D_Max5805_ADC_Blower/WHS_Blower.h>
-#include "Modules/General/buttons.h"
+#include "drivers/Heater/TemperatureSensor.h"
#include "heaters/heaters_ex.h"
@@ -166,9 +173,67 @@ void setIdleLimit (int Limit) {powerIdleSecondsLimit = Limit;}
void setmachineActive(bool Active){machineActive = Active;}
void resetIdleCounter (void) {powerIdleSecondsCounter = 0;}
bool getIdleState (void) {return powerIdleState;}
+uint32_t OutOfIdleUpdate(bool last)
+{
+ uint32_t status = NOT_SUPPORTED;
+
+ double calculate;
+ int result = 0;
+ MessageContainer responseContainer;
+ ErrorCode Error = ERROR_CODE__NONE;
+
+ StartPowerUpResponse response = START_POWER_UP_RESPONSE__INIT;
+
+ if (PowerUpToken[0] == 0)
+ return OK;
+/* response.has_state = true;
+ response.has_progresspercentage = true;
+
+ if (last == false)
+ {
+ response.state = POWER_UP_STATE__HeatingStarted;
+ if (dryerzone1temp < 1)
+ response.progresspercentage = 30.0;
+ else
+ {
+ calculate = (double)((MillisecGetTemperatures(TEMP_SENSE_ANALOG_DRYER_TEMP1)/100)/(dryerzone1temp))*70.0;
+ if (calculate > 0)
+ result = (int)calculate;
+ response.progresspercentage = 30.0 + result;
+ }
+ //Report("Heating calculation",__FILE__,(int)dryerzone1temp,(int)response.progresspercentage,RpWarning,(int)result,0);
+ response.message = "Heating up";
+ }
+ else
+ {
+ response.state = POWER_UP_STATE__MachineReadyToDye;
+ response.progresspercentage = 100.0;
+ response.message = "Ready to dye";
+ }
+ //Report("PowerUpUpdate",__FILE__,last,(int)response.progresspercentage,RpWarning,(int)stage,0);
+ Report("OutOfIdleUpdate",__FILE__,last,response.state,RpWarning,(int)response.progresspercentage,0);
+ responseContainer = createContainer(MESSAGE_TYPE__StartPowerUpResponse, PowerUpToken, last, &response, &start_power_up_response__pack, &start_power_up_response__get_packed_size);
+ responseContainer.has_continuous = true;
+ responseContainer.continuous = true;
+ if (Error != ERROR_CODE__NONE)
+ {
+ responseContainer.has_error = true;
+ responseContainer.error = Error;
+ responseContainer.errormessage = response.message;
+ }
+ uint8_t* container_buffer = my_malloc(message_container__get_packed_size(&responseContainer));
+ size_t container_size = message_container__pack(&responseContainer, container_buffer);
+ my_free(responseContainer.data.data);
+
+ SendChars((char*)container_buffer, container_size);
+ //MessageContainer responseContainer;
+*/
+ return status;
+}
uint32_t PowerIdleStartHeatingCallBackFunction(uint32_t IfIndex, uint32_t BusyFlag)
{
+ OutOfIdleUpdate(false);
if (HeaterCheckReady()==true)
{
//MachineStateDetail = MACHINE_STATE_MACHINE_READY_TO_DYE;
@@ -178,6 +243,7 @@ uint32_t PowerIdleStartHeatingCallBackFunction(uint32_t IfIndex, uint32_t BusyFl
Report("Remove control callback failed",__FILE__,__LINE__,(int)IdleHeatingControlId,RpWarning,(int)PowerIdleStartHeatingCallBackFunction,0);
//InitSequenceStateMachine(InitStages);
SetMachineStatus(MACHINE_STATE__Ready);
+ OutOfIdleUpdate(true);
}
return OK;
diff --git a/Software/PMR/Messages/Common/MessageType.proto b/Software/PMR/Messages/Common/MessageType.proto
index 4ce14ff6b..6cfa15462 100644
--- a/Software/PMR/Messages/Common/MessageType.proto
+++ b/Software/PMR/Messages/Common/MessageType.proto
@@ -298,4 +298,6 @@ enum MessageType
ContinueThreadLoadingResponse = 11003;
StopThreadLoadingRequest = 11004;
StopThreadLoadingResponse = 11005;
+ TryThreadLoadingRequest = 11006;
+ TryThreadLoadingResponse = 11007;
}
diff --git a/Software/PMR/Messages/ThreadLoading/TryThreadLoadingRequest.proto b/Software/PMR/Messages/ThreadLoading/TryThreadLoadingRequest.proto
new file mode 100644
index 000000000..4235cb2d0
--- /dev/null
+++ b/Software/PMR/Messages/ThreadLoading/TryThreadLoadingRequest.proto
@@ -0,0 +1,9 @@
+syntax = "proto3";
+
+package Tango.PMR.ThreadLoading;
+option java_package = "com.twine.tango.pmr.threadloading";
+
+message TryThreadLoadingRequest
+{
+
+} \ No newline at end of file
diff --git a/Software/PMR/Messages/ThreadLoading/TryThreadLoadingResponse.proto b/Software/PMR/Messages/ThreadLoading/TryThreadLoadingResponse.proto
new file mode 100644
index 000000000..a92ee70c4
--- /dev/null
+++ b/Software/PMR/Messages/ThreadLoading/TryThreadLoadingResponse.proto
@@ -0,0 +1,9 @@
+syntax = "proto3";
+
+package Tango.PMR.ThreadLoading;
+option java_package = "com.twine.tango.pmr.threadloading";
+
+message TryThreadLoadingResponse
+{
+
+} \ No newline at end of file
diff --git a/Software/Visual_Studio/Tango.PMR/Common/MessageType.cs b/Software/Visual_Studio/Tango.PMR/Common/MessageType.cs
index a8d2f3d19..e3ebc0260 100644
--- a/Software/Visual_Studio/Tango.PMR/Common/MessageType.cs
+++ b/Software/Visual_Studio/Tango.PMR/Common/MessageType.cs
@@ -22,7 +22,7 @@ namespace Tango.PMR.Common {
static MessageTypeReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
- "ChFNZXNzYWdlVHlwZS5wcm90bxIQVGFuZ28uUE1SLkNvbW1vbir4OQoLTWVz",
+ "ChFNZXNzYWdlVHlwZS5wcm90bxIQVGFuZ28uUE1SLkNvbW1vbirFOwoLTWVz",
"c2FnZVR5cGUSCAoETm9uZRAAEhEKDUVycm9yUmVzcG9uc2UQARIUChBDYWxj",
"dWxhdGVSZXF1ZXN0EAMSFQoRQ2FsY3VsYXRlUmVzcG9uc2UQBBITCg9Qcm9n",
"cmVzc1JlcXVlc3QQBRIUChBQcm9ncmVzc1Jlc3BvbnNlEAYSHAoYU3R1YkNh",
@@ -91,104 +91,109 @@ namespace Tango.PMR.Common {
"clJlcXVlc3QQZxIlCiFTdHViTWlkVGFua1ByZXNzdXJlU2Vuc29yUmVzcG9u",
"c2UQaBIeChpTdHViRGlzcGVuc2VyRUVwcm9tUmVxdWVzdBBpEh8KG1N0dWJE",
"aXNwZW5zZXJFRXByb21SZXNwb25zZRBqEhgKFFN0dWJXaHNFRXByb21SZXF1",
- "ZXN0EGsSGQoVU3R1Yldoc0VFcHJvbVJlc3BvbnNlEGwSJQogRXh0ZXJuYWxC",
- "cmlkZ2VVZHBEaXNjb3ZlcnlQYWNrZXQQ6AcSHwoaRXh0ZXJuYWxCcmlkZ2VM",
- "b2dpblJlcXVlc3QQ6QcSIAobRXh0ZXJuYWxCcmlkZ2VMb2dpblJlc3BvbnNl",
- "EOoHEiAKG0V4dGVybmFsQnJpZGdlTG9nb3V0UmVxdWVzdBDrBxIhChxFeHRl",
- "cm5hbEJyaWRnZUxvZ291dFJlc3BvbnNlEOwHEiEKHERpcmVjdFN5bmNocm9u",
- "aXphdGlvblJlcXVlc3QQ7QcSIgodRGlyZWN0U3luY2hyb25pemF0aW9uUmVz",
- "cG9uc2UQ7gcSHAoXT3ZlcnJpZGVEYXRhQmFzZVJlcXVlc3QQ7wcSHQoYT3Zl",
- "cnJpZGVEYXRhQmFzZVJlc3BvbnNlEPAHEiAKG1N0YXJ0QXBwbGljYXRpb25M",
- "b2dzUmVxdWVzdBDxBxIhChxTdGFydEFwcGxpY2F0aW9uTG9nc1Jlc3BvbnNl",
- "EPIHEh8KGlN0b3BBcHBsaWNhdGlvbkxvZ3NSZXF1ZXN0EPMHEiAKG1N0b3BB",
- "cHBsaWNhdGlvbkxvZ3NSZXNwb25zZRD0BxIYChNDb2xvclByb2ZpbGVSZXF1",
- "ZXN0EPUHEhkKFENvbG9yUHJvZmlsZVJlc3BvbnNlEPYHEhgKE1VwZGF0ZVN0",
- "YXR1c1JlcXVlc3QQ9wcSGQoUVXBkYXRlU3RhdHVzUmVzcG9uc2UQ+AcSEwoO",
- "R2VuZXJpY1JlcXVlc3QQ+QcSFAoPR2VuZXJpY1Jlc3BvbnNlEPoHEhwKF1N0",
- "YXJ0RGlhZ25vc3RpY3NSZXF1ZXN0ENAPEh0KGFN0YXJ0RGlhZ25vc3RpY3NS",
- "ZXNwb25zZRDRDxIcChdNb3RvckFib3J0SG9taW5nUmVxdWVzdBDSDxIdChhN",
- "b3RvckFib3J0SG9taW5nUmVzcG9uc2UQ0w8SFwoSTW90b3JIb21pbmdSZXF1",
- "ZXN0ENQPEhgKE01vdG9ySG9taW5nUmVzcG9uc2UQ1Q8SGAoTTW90b3JKb2dn",
- "aW5nUmVxdWVzdBDWDxIZChRNb3RvckpvZ2dpbmdSZXNwb25zZRDXDxIdChhN",
- "b3RvckFib3J0Sm9nZ2luZ1JlcXVlc3QQ2A8SHgoZTW90b3JBYm9ydEpvZ2dp",
- "bmdSZXNwb25zZRDZDxIgChtEaXNwZW5zZXJBYm9ydEhvbWluZ1JlcXVlc3QQ",
- "2g8SIQocRGlzcGVuc2VyQWJvcnRIb21pbmdSZXNwb25zZRDbDxIbChZEaXNw",
- "ZW5zZXJIb21pbmdSZXF1ZXN0ENwPEhwKF0Rpc3BlbnNlckhvbWluZ1Jlc3Bv",
- "bnNlEN0PEhwKF0Rpc3BlbnNlckpvZ2dpbmdSZXF1ZXN0EN4PEh0KGERpc3Bl",
- "bnNlckpvZ2dpbmdSZXNwb25zZRDfDxIhChxEaXNwZW5zZXJBYm9ydEpvZ2dp",
- "bmdSZXF1ZXN0EOAPEiIKHURpc3BlbnNlckFib3J0Sm9nZ2luZ1Jlc3BvbnNl",
- "EOEPEhkKFFNldERpZ2l0YWxPdXRSZXF1ZXN0EOIPEhoKFVNldERpZ2l0YWxP",
- "dXRSZXNwb25zZRDjDxIZChRUaHJlYWRKb2dnaW5nUmVxdWVzdBDkDxIaChVU",
- "aHJlYWRKb2dnaW5nUmVzcG9uc2UQ5Q8SHgoZVGhyZWFkQWJvcnRKb2dnaW5n",
- "UmVxdWVzdBDmDxIfChpUaHJlYWRBYm9ydEpvZ2dpbmdSZXNwb25zZRDnDxId",
- "ChhTZXRDb21wb25lbnRWYWx1ZVJlcXVlc3QQ6A8SHgoZU2V0Q29tcG9uZW50",
- "VmFsdWVSZXNwb25zZRDpDxIYChNSZXNvbHZlRXZlbnRSZXF1ZXN0EOoPEhkK",
- "FFJlc29sdmVFdmVudFJlc3BvbnNlEOsPEhsKFlN0b3BEaWFnbm9zdGljc1Jl",
- "cXVlc3QQ7A8SHAoXU3RvcERpYWdub3N0aWNzUmVzcG9uc2UQ7Q8SIwoeU3Rh",
- "cnRFdmVudHNOb3RpZmljYXRpb25SZXF1ZXN0EO4PEiQKH1N0YXJ0RXZlbnRz",
- "Tm90aWZpY2F0aW9uUmVzcG9uc2UQ7w8SIgodU3RvcEV2ZW50c05vdGlmaWNh",
- "dGlvblJlcXVlc3QQ8A8SIwoeU3RvcEV2ZW50c05vdGlmaWNhdGlvblJlc3Bv",
- "bnNlEPEPEhoKFVNldEhlYXRlclN0YXRlUmVxdWVzdBDyDxIbChZTZXRIZWF0",
- "ZXJTdGF0ZVJlc3BvbnNlEPMPEhoKFVNldEJsb3dlclN0YXRlUmVxdWVzdBD0",
- "DxIbChZTZXRCbG93ZXJTdGF0ZVJlc3BvbnNlEPUPEhkKFFNldFZhbHZlU3Rh",
- "dGVSZXF1ZXN0EPYPEhoKFVNldFZhbHZlU3RhdGVSZXNwb25zZRD3DxIhChxT",
- "dGFydENhcnRyaWRnZXNVcGRhdGVSZXF1ZXN0EPgPEiIKHVN0YXJ0Q2FydHJp",
- "ZGdlc1VwZGF0ZVJlc3BvbnNlEPkPEiAKG1N0b3BDYXJ0cmlkZ2VzVXBkYXRl",
- "UmVxdWVzdBD6DxIhChxTdG9wQ2FydHJpZGdlc1VwZGF0ZVJlc3BvbnNlEPsP",
- "Eh8KGkNhcnRyaWRnZVZhbGlkYXRpb25SZXF1ZXN0EPwPEiAKG0NhcnRyaWRn",
- "ZVZhbGlkYXRpb25SZXNwb25zZRD9DxIPCgpKb2JSZXF1ZXN0ELgXEhAKC0pv",
- "YlJlc3BvbnNlELkXEhQKD0Fib3J0Sm9iUmVxdWVzdBC6FxIVChBBYm9ydEpv",
- "YlJlc3BvbnNlELsXEiMKHlVwbG9hZFByb2Nlc3NQYXJhbWV0ZXJzUmVxdWVz",
- "dBC8FxIkCh9VcGxvYWRQcm9jZXNzUGFyYW1ldGVyc1Jlc3BvbnNlEL0XEhYK",
- "EUN1cnJlbnRKb2JSZXF1ZXN0EL4XEhcKEkN1cnJlbnRKb2JSZXNwb25zZRC/",
- "FxIcChdSZXN1bWVDdXJyZW50Sm9iUmVxdWVzdBDAFxIdChhSZXN1bWVDdXJy",
- "ZW50Sm9iUmVzcG9uc2UQwRcSHQoYU3RhcnRIZWFkQ2xlYW5pbmdSZXF1ZXN0",
- "EMIXEh4KGVN0YXJ0SGVhZENsZWFuaW5nUmVzcG9uc2UQwxcSHQoYQWJvcnRI",
- "ZWFkQ2xlYW5pbmdSZXF1ZXN0EMQXEh4KGUFib3J0SGVhZENsZWFuaW5nUmVz",
- "cG9uc2UQxRcSGQoUU3RhcnREZWJ1Z0xvZ1JlcXVlc3QQoB8SGgoVU3RhcnRE",
- "ZWJ1Z0xvZ1Jlc3BvbnNlEKEfEhgKE1N0b3BEZWJ1Z0xvZ1JlcXVlc3QQoh8S",
- "GQoUU3RvcERlYnVnTG9nUmVzcG9uc2UQox8SHwoaU2V0RGVidWdMb2dDYXRl",
- "Z29yeVJlcXVlc3QQpB8SIAobU2V0RGVidWdMb2dDYXRlZ29yeVJlc3BvbnNl",
- "EKUfEiEKHFNldHVwRGVidWdEaXNyaWJ1dG9yc1JlcXVlc3QQph8SIgodU2V0",
- "dXBEZWJ1Z0Rpc3JpYnV0b3JzUmVzcG9uc2UQpx8SJwoiVXBsb2FkSGFyZHdh",
- "cmVDb25maWd1cmF0aW9uUmVxdWVzdBCIJxIoCiNVcGxvYWRIYXJkd2FyZUNv",
- "bmZpZ3VyYXRpb25SZXNwb25zZRCJJxIXChJTeXN0ZW1SZXNldFJlcXVlc3QQ",
- "iicSGAoTU3lzdGVtUmVzZXRSZXNwb25zZRCLJxIVChBLZWVwQWxpdmVSZXF1",
- "ZXN0EPAuEhYKEUtlZXBBbGl2ZVJlc3BvbnNlEPEuEhMKDkNvbm5lY3RSZXF1",
- "ZXN0EPIuEhQKD0Nvbm5lY3RSZXNwb25zZRDzLhIWChFEaXNjb25uZWN0UmVx",
- "dWVzdBD0LhIXChJEaXNjb25uZWN0UmVzcG9uc2UQ9S4SFgoRRmlsZVVwbG9h",
- "ZFJlcXVlc3QQ2DYSFwoSRmlsZVVwbG9hZFJlc3BvbnNlENk2EhsKFkZpbGVD",
- "aHVua1VwbG9hZFJlcXVlc3QQ2jYSHAoXRmlsZUNodW5rVXBsb2FkUmVzcG9u",
- "c2UQ2zYSGgoVRXhlY3V0ZVByb2Nlc3NSZXF1ZXN0ENw2EhsKFkV4ZWN1dGVQ",
- "cm9jZXNzUmVzcG9uc2UQ3TYSFwoSS2lsbFByb2Nlc3NSZXF1ZXN0EN42EhgK",
- "E0tpbGxQcm9jZXNzUmVzcG9uc2UQ3zYSEgoNQ3JlYXRlUmVxdWVzdBDgNhIT",
- "Cg5DcmVhdGVSZXNwb25zZRDhNhISCg1EZWxldGVSZXF1ZXN0EOI2EhMKDkRl",
- "bGV0ZVJlc3BvbnNlEOM2EhoKFUdldFN0b3JhZ2VJbmZvUmVxdWVzdBDkNhIb",
- "ChZHZXRTdG9yYWdlSW5mb1Jlc3BvbnNlEOU2EhQKD0dldEZpbGVzUmVxdWVz",
- "dBDmNhIVChBHZXRGaWxlc1Jlc3BvbnNlEOc2EhgKE0ZpbGVEb3dubG9hZFJl",
- "cXVlc3QQ6DYSGQoURmlsZURvd25sb2FkUmVzcG9uc2UQ6TYSHQoYRmlsZUNo",
- "dW5rRG93bmxvYWRSZXF1ZXN0EOo2Eh4KGUZpbGVDaHVua0Rvd25sb2FkUmVz",
- "cG9uc2UQ6zYSGwoWVmFsaWRhdGVWZXJzaW9uUmVxdWVzdBDsNhIcChdWYWxp",
- "ZGF0ZVZlcnNpb25SZXNwb25zZRDtNhIbChZBY3RpdmF0ZVZlcnNpb25SZXF1",
- "ZXN0EO42EhwKF0FjdGl2YXRlVmVyc2lvblJlc3BvbnNlEO82EhkKFERpc3Bl",
- "bnNlckRhdGFSZXF1ZXN0EMA+EhoKFURpc3BlbnNlckRhdGFSZXNwb25zZRDB",
- "PhIcChdNaWRUYW5rRGF0YVNldHVwUmVxdWVzdBDCPhIdChhNaWRUYW5rRGF0",
- "YVNldHVwUmVzcG9uc2UQwz4SIgodTWFjaGluZUNhbGlicmF0aW9uRGF0YVJl",
- "cXVlc3QQxD4SIwoeTWFjaGluZUNhbGlicmF0aW9uRGF0YVJlc3BvbnNlEMU+",
- "EiQKH1N0YXJ0TWFjaGluZVN0YXR1c1VwZGF0ZVJlcXVlc3QQqEYSJQogU3Rh",
- "cnRNYWNoaW5lU3RhdHVzVXBkYXRlUmVzcG9uc2UQqUYSIwoeU3RvcE1hY2hp",
- "bmVTdGF0dXNVcGRhdGVSZXF1ZXN0EKpGEiQKH1N0b3BNYWNoaW5lU3RhdHVz",
- "VXBkYXRlUmVzcG9uc2UQq0YSGgoVU3RhcnRQb3dlckRvd25SZXF1ZXN0EJBO",
- "EhsKFlN0YXJ0UG93ZXJEb3duUmVzcG9uc2UQkU4SGgoVQWJvcnRQb3dlckRv",
- "d25SZXF1ZXN0EJJOEhsKFkFib3J0UG93ZXJEb3duUmVzcG9uc2UQk04SGAoT",
- "U3RhcnRQb3dlclVwUmVxdWVzdBCUThIZChRTdGFydFBvd2VyVXBSZXNwb25z",
- "ZRCVThIYChNBYm9ydFBvd2VyVXBSZXF1ZXN0EJZOEhkKFEFib3J0UG93ZXJV",
- "cFJlc3BvbnNlEJdOEh4KGVN0YXJ0VGhyZWFkTG9hZGluZ1JlcXVlc3QQ+FUS",
- "HwoaU3RhcnRUaHJlYWRMb2FkaW5nUmVzcG9uc2UQ+VUSIQocQ29udGludWVU",
- "aHJlYWRMb2FkaW5nUmVxdWVzdBD6VRIiCh1Db250aW51ZVRocmVhZExvYWRp",
- "bmdSZXNwb25zZRD7VRIdChhTdG9wVGhyZWFkTG9hZGluZ1JlcXVlc3QQ/FUS",
- "HgoZU3RvcFRocmVhZExvYWRpbmdSZXNwb25zZRD9VUIcChpjb20udHdpbmUu",
- "dGFuZ28ucG1yLmNvbW1vbmIGcHJvdG8z"));
+ "ZXN0EGsSGQoVU3R1Yldoc0VFcHJvbVJlc3BvbnNlEGwSIQodU3R1Yk1haW5D",
+ "YXJkRUVwcm9tUmVhZFJlcXVlc3QQbRIiCh5TdHViTWFpbkNhcmRFRXByb21S",
+ "ZWFkUmVzcG9uc2UQbhIiCh5TdHViTWFpbkNhcmRFRXByb21Xcml0ZVJlcXVl",
+ "c3QQbxIjCh9TdHViTWFpbkNhcmRFRXByb21Xcml0ZVJlc3BvbnNlEHASJQog",
+ "RXh0ZXJuYWxCcmlkZ2VVZHBEaXNjb3ZlcnlQYWNrZXQQ6AcSHwoaRXh0ZXJu",
+ "YWxCcmlkZ2VMb2dpblJlcXVlc3QQ6QcSIAobRXh0ZXJuYWxCcmlkZ2VMb2dp",
+ "blJlc3BvbnNlEOoHEiAKG0V4dGVybmFsQnJpZGdlTG9nb3V0UmVxdWVzdBDr",
+ "BxIhChxFeHRlcm5hbEJyaWRnZUxvZ291dFJlc3BvbnNlEOwHEiEKHERpcmVj",
+ "dFN5bmNocm9uaXphdGlvblJlcXVlc3QQ7QcSIgodRGlyZWN0U3luY2hyb25p",
+ "emF0aW9uUmVzcG9uc2UQ7gcSHAoXT3ZlcnJpZGVEYXRhQmFzZVJlcXVlc3QQ",
+ "7wcSHQoYT3ZlcnJpZGVEYXRhQmFzZVJlc3BvbnNlEPAHEiAKG1N0YXJ0QXBw",
+ "bGljYXRpb25Mb2dzUmVxdWVzdBDxBxIhChxTdGFydEFwcGxpY2F0aW9uTG9n",
+ "c1Jlc3BvbnNlEPIHEh8KGlN0b3BBcHBsaWNhdGlvbkxvZ3NSZXF1ZXN0EPMH",
+ "EiAKG1N0b3BBcHBsaWNhdGlvbkxvZ3NSZXNwb25zZRD0BxIYChNDb2xvclBy",
+ "b2ZpbGVSZXF1ZXN0EPUHEhkKFENvbG9yUHJvZmlsZVJlc3BvbnNlEPYHEhgK",
+ "E1VwZGF0ZVN0YXR1c1JlcXVlc3QQ9wcSGQoUVXBkYXRlU3RhdHVzUmVzcG9u",
+ "c2UQ+AcSEwoOR2VuZXJpY1JlcXVlc3QQ+QcSFAoPR2VuZXJpY1Jlc3BvbnNl",
+ "EPoHEhwKF1N0YXJ0RGlhZ25vc3RpY3NSZXF1ZXN0ENAPEh0KGFN0YXJ0RGlh",
+ "Z25vc3RpY3NSZXNwb25zZRDRDxIcChdNb3RvckFib3J0SG9taW5nUmVxdWVz",
+ "dBDSDxIdChhNb3RvckFib3J0SG9taW5nUmVzcG9uc2UQ0w8SFwoSTW90b3JI",
+ "b21pbmdSZXF1ZXN0ENQPEhgKE01vdG9ySG9taW5nUmVzcG9uc2UQ1Q8SGAoT",
+ "TW90b3JKb2dnaW5nUmVxdWVzdBDWDxIZChRNb3RvckpvZ2dpbmdSZXNwb25z",
+ "ZRDXDxIdChhNb3RvckFib3J0Sm9nZ2luZ1JlcXVlc3QQ2A8SHgoZTW90b3JB",
+ "Ym9ydEpvZ2dpbmdSZXNwb25zZRDZDxIgChtEaXNwZW5zZXJBYm9ydEhvbWlu",
+ "Z1JlcXVlc3QQ2g8SIQocRGlzcGVuc2VyQWJvcnRIb21pbmdSZXNwb25zZRDb",
+ "DxIbChZEaXNwZW5zZXJIb21pbmdSZXF1ZXN0ENwPEhwKF0Rpc3BlbnNlckhv",
+ "bWluZ1Jlc3BvbnNlEN0PEhwKF0Rpc3BlbnNlckpvZ2dpbmdSZXF1ZXN0EN4P",
+ "Eh0KGERpc3BlbnNlckpvZ2dpbmdSZXNwb25zZRDfDxIhChxEaXNwZW5zZXJB",
+ "Ym9ydEpvZ2dpbmdSZXF1ZXN0EOAPEiIKHURpc3BlbnNlckFib3J0Sm9nZ2lu",
+ "Z1Jlc3BvbnNlEOEPEhkKFFNldERpZ2l0YWxPdXRSZXF1ZXN0EOIPEhoKFVNl",
+ "dERpZ2l0YWxPdXRSZXNwb25zZRDjDxIZChRUaHJlYWRKb2dnaW5nUmVxdWVz",
+ "dBDkDxIaChVUaHJlYWRKb2dnaW5nUmVzcG9uc2UQ5Q8SHgoZVGhyZWFkQWJv",
+ "cnRKb2dnaW5nUmVxdWVzdBDmDxIfChpUaHJlYWRBYm9ydEpvZ2dpbmdSZXNw",
+ "b25zZRDnDxIdChhTZXRDb21wb25lbnRWYWx1ZVJlcXVlc3QQ6A8SHgoZU2V0",
+ "Q29tcG9uZW50VmFsdWVSZXNwb25zZRDpDxIYChNSZXNvbHZlRXZlbnRSZXF1",
+ "ZXN0EOoPEhkKFFJlc29sdmVFdmVudFJlc3BvbnNlEOsPEhsKFlN0b3BEaWFn",
+ "bm9zdGljc1JlcXVlc3QQ7A8SHAoXU3RvcERpYWdub3N0aWNzUmVzcG9uc2UQ",
+ "7Q8SIwoeU3RhcnRFdmVudHNOb3RpZmljYXRpb25SZXF1ZXN0EO4PEiQKH1N0",
+ "YXJ0RXZlbnRzTm90aWZpY2F0aW9uUmVzcG9uc2UQ7w8SIgodU3RvcEV2ZW50",
+ "c05vdGlmaWNhdGlvblJlcXVlc3QQ8A8SIwoeU3RvcEV2ZW50c05vdGlmaWNh",
+ "dGlvblJlc3BvbnNlEPEPEhoKFVNldEhlYXRlclN0YXRlUmVxdWVzdBDyDxIb",
+ "ChZTZXRIZWF0ZXJTdGF0ZVJlc3BvbnNlEPMPEhoKFVNldEJsb3dlclN0YXRl",
+ "UmVxdWVzdBD0DxIbChZTZXRCbG93ZXJTdGF0ZVJlc3BvbnNlEPUPEhkKFFNl",
+ "dFZhbHZlU3RhdGVSZXF1ZXN0EPYPEhoKFVNldFZhbHZlU3RhdGVSZXNwb25z",
+ "ZRD3DxIhChxTdGFydENhcnRyaWRnZXNVcGRhdGVSZXF1ZXN0EPgPEiIKHVN0",
+ "YXJ0Q2FydHJpZGdlc1VwZGF0ZVJlc3BvbnNlEPkPEiAKG1N0b3BDYXJ0cmlk",
+ "Z2VzVXBkYXRlUmVxdWVzdBD6DxIhChxTdG9wQ2FydHJpZGdlc1VwZGF0ZVJl",
+ "c3BvbnNlEPsPEh8KGkNhcnRyaWRnZVZhbGlkYXRpb25SZXF1ZXN0EPwPEiAK",
+ "G0NhcnRyaWRnZVZhbGlkYXRpb25SZXNwb25zZRD9DxIPCgpKb2JSZXF1ZXN0",
+ "ELgXEhAKC0pvYlJlc3BvbnNlELkXEhQKD0Fib3J0Sm9iUmVxdWVzdBC6FxIV",
+ "ChBBYm9ydEpvYlJlc3BvbnNlELsXEiMKHlVwbG9hZFByb2Nlc3NQYXJhbWV0",
+ "ZXJzUmVxdWVzdBC8FxIkCh9VcGxvYWRQcm9jZXNzUGFyYW1ldGVyc1Jlc3Bv",
+ "bnNlEL0XEhYKEUN1cnJlbnRKb2JSZXF1ZXN0EL4XEhcKEkN1cnJlbnRKb2JS",
+ "ZXNwb25zZRC/FxIcChdSZXN1bWVDdXJyZW50Sm9iUmVxdWVzdBDAFxIdChhS",
+ "ZXN1bWVDdXJyZW50Sm9iUmVzcG9uc2UQwRcSHQoYU3RhcnRIZWFkQ2xlYW5p",
+ "bmdSZXF1ZXN0EMIXEh4KGVN0YXJ0SGVhZENsZWFuaW5nUmVzcG9uc2UQwxcS",
+ "HQoYQWJvcnRIZWFkQ2xlYW5pbmdSZXF1ZXN0EMQXEh4KGUFib3J0SGVhZENs",
+ "ZWFuaW5nUmVzcG9uc2UQxRcSGQoUU3RhcnREZWJ1Z0xvZ1JlcXVlc3QQoB8S",
+ "GgoVU3RhcnREZWJ1Z0xvZ1Jlc3BvbnNlEKEfEhgKE1N0b3BEZWJ1Z0xvZ1Jl",
+ "cXVlc3QQoh8SGQoUU3RvcERlYnVnTG9nUmVzcG9uc2UQox8SHwoaU2V0RGVi",
+ "dWdMb2dDYXRlZ29yeVJlcXVlc3QQpB8SIAobU2V0RGVidWdMb2dDYXRlZ29y",
+ "eVJlc3BvbnNlEKUfEiEKHFNldHVwRGVidWdEaXNyaWJ1dG9yc1JlcXVlc3QQ",
+ "ph8SIgodU2V0dXBEZWJ1Z0Rpc3JpYnV0b3JzUmVzcG9uc2UQpx8SJwoiVXBs",
+ "b2FkSGFyZHdhcmVDb25maWd1cmF0aW9uUmVxdWVzdBCIJxIoCiNVcGxvYWRI",
+ "YXJkd2FyZUNvbmZpZ3VyYXRpb25SZXNwb25zZRCJJxIXChJTeXN0ZW1SZXNl",
+ "dFJlcXVlc3QQiicSGAoTU3lzdGVtUmVzZXRSZXNwb25zZRCLJxIVChBLZWVw",
+ "QWxpdmVSZXF1ZXN0EPAuEhYKEUtlZXBBbGl2ZVJlc3BvbnNlEPEuEhMKDkNv",
+ "bm5lY3RSZXF1ZXN0EPIuEhQKD0Nvbm5lY3RSZXNwb25zZRDzLhIWChFEaXNj",
+ "b25uZWN0UmVxdWVzdBD0LhIXChJEaXNjb25uZWN0UmVzcG9uc2UQ9S4SFgoR",
+ "RmlsZVVwbG9hZFJlcXVlc3QQ2DYSFwoSRmlsZVVwbG9hZFJlc3BvbnNlENk2",
+ "EhsKFkZpbGVDaHVua1VwbG9hZFJlcXVlc3QQ2jYSHAoXRmlsZUNodW5rVXBs",
+ "b2FkUmVzcG9uc2UQ2zYSGgoVRXhlY3V0ZVByb2Nlc3NSZXF1ZXN0ENw2EhsK",
+ "FkV4ZWN1dGVQcm9jZXNzUmVzcG9uc2UQ3TYSFwoSS2lsbFByb2Nlc3NSZXF1",
+ "ZXN0EN42EhgKE0tpbGxQcm9jZXNzUmVzcG9uc2UQ3zYSEgoNQ3JlYXRlUmVx",
+ "dWVzdBDgNhITCg5DcmVhdGVSZXNwb25zZRDhNhISCg1EZWxldGVSZXF1ZXN0",
+ "EOI2EhMKDkRlbGV0ZVJlc3BvbnNlEOM2EhoKFUdldFN0b3JhZ2VJbmZvUmVx",
+ "dWVzdBDkNhIbChZHZXRTdG9yYWdlSW5mb1Jlc3BvbnNlEOU2EhQKD0dldEZp",
+ "bGVzUmVxdWVzdBDmNhIVChBHZXRGaWxlc1Jlc3BvbnNlEOc2EhgKE0ZpbGVE",
+ "b3dubG9hZFJlcXVlc3QQ6DYSGQoURmlsZURvd25sb2FkUmVzcG9uc2UQ6TYS",
+ "HQoYRmlsZUNodW5rRG93bmxvYWRSZXF1ZXN0EOo2Eh4KGUZpbGVDaHVua0Rv",
+ "d25sb2FkUmVzcG9uc2UQ6zYSGwoWVmFsaWRhdGVWZXJzaW9uUmVxdWVzdBDs",
+ "NhIcChdWYWxpZGF0ZVZlcnNpb25SZXNwb25zZRDtNhIbChZBY3RpdmF0ZVZl",
+ "cnNpb25SZXF1ZXN0EO42EhwKF0FjdGl2YXRlVmVyc2lvblJlc3BvbnNlEO82",
+ "EhkKFERpc3BlbnNlckRhdGFSZXF1ZXN0EMA+EhoKFURpc3BlbnNlckRhdGFS",
+ "ZXNwb25zZRDBPhIcChdNaWRUYW5rRGF0YVNldHVwUmVxdWVzdBDCPhIdChhN",
+ "aWRUYW5rRGF0YVNldHVwUmVzcG9uc2UQwz4SIgodTWFjaGluZUNhbGlicmF0",
+ "aW9uRGF0YVJlcXVlc3QQxD4SIwoeTWFjaGluZUNhbGlicmF0aW9uRGF0YVJl",
+ "c3BvbnNlEMU+EiQKH1N0YXJ0TWFjaGluZVN0YXR1c1VwZGF0ZVJlcXVlc3QQ",
+ "qEYSJQogU3RhcnRNYWNoaW5lU3RhdHVzVXBkYXRlUmVzcG9uc2UQqUYSIwoe",
+ "U3RvcE1hY2hpbmVTdGF0dXNVcGRhdGVSZXF1ZXN0EKpGEiQKH1N0b3BNYWNo",
+ "aW5lU3RhdHVzVXBkYXRlUmVzcG9uc2UQq0YSGgoVU3RhcnRQb3dlckRvd25S",
+ "ZXF1ZXN0EJBOEhsKFlN0YXJ0UG93ZXJEb3duUmVzcG9uc2UQkU4SGgoVQWJv",
+ "cnRQb3dlckRvd25SZXF1ZXN0EJJOEhsKFkFib3J0UG93ZXJEb3duUmVzcG9u",
+ "c2UQk04SGAoTU3RhcnRQb3dlclVwUmVxdWVzdBCUThIZChRTdGFydFBvd2Vy",
+ "VXBSZXNwb25zZRCVThIYChNBYm9ydFBvd2VyVXBSZXF1ZXN0EJZOEhkKFEFi",
+ "b3J0UG93ZXJVcFJlc3BvbnNlEJdOEh4KGVN0YXJ0VGhyZWFkTG9hZGluZ1Jl",
+ "cXVlc3QQ+FUSHwoaU3RhcnRUaHJlYWRMb2FkaW5nUmVzcG9uc2UQ+VUSIQoc",
+ "Q29udGludWVUaHJlYWRMb2FkaW5nUmVxdWVzdBD6VRIiCh1Db250aW51ZVRo",
+ "cmVhZExvYWRpbmdSZXNwb25zZRD7VRIdChhTdG9wVGhyZWFkTG9hZGluZ1Jl",
+ "cXVlc3QQ/FUSHgoZU3RvcFRocmVhZExvYWRpbmdSZXNwb25zZRD9VRIcChdU",
+ "cnlUaHJlYWRMb2FkaW5nUmVxdWVzdBD+VRIdChhUcnlUaHJlYWRMb2FkaW5n",
+ "UmVzcG9uc2UQ/1VCHAoaY29tLnR3aW5lLnRhbmdvLnBtci5jb21tb25iBnBy",
+ "b3RvMw=="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tango.PMR.Common.MessageType), }, null));
@@ -314,10 +319,14 @@ namespace Tango.PMR.Common {
[pbr::OriginalName("StubDispenserEEpromRequest")] StubDispenserEepromRequest = 105,
[pbr::OriginalName("StubDispenserEEpromResponse")] StubDispenserEepromResponse = 106,
[pbr::OriginalName("StubWhsEEpromRequest")] StubWhsEepromRequest = 107,
+ [pbr::OriginalName("StubWhsEEpromResponse")] StubWhsEepromResponse = 108,
+ [pbr::OriginalName("StubMainCardEEpromReadRequest")] StubMainCardEepromReadRequest = 109,
+ [pbr::OriginalName("StubMainCardEEpromReadResponse")] StubMainCardEepromReadResponse = 110,
+ [pbr::OriginalName("StubMainCardEEpromWriteRequest")] StubMainCardEepromWriteRequest = 111,
/// <summary>
///------------------------------------
/// </summary>
- [pbr::OriginalName("StubWhsEEpromResponse")] StubWhsEepromResponse = 108,
+ [pbr::OriginalName("StubMainCardEEpromWriteResponse")] StubMainCardEepromWriteResponse = 112,
/// <summary>
///Integration
/// </summary>
@@ -496,6 +505,8 @@ namespace Tango.PMR.Common {
[pbr::OriginalName("ContinueThreadLoadingResponse")] ContinueThreadLoadingResponse = 11003,
[pbr::OriginalName("StopThreadLoadingRequest")] StopThreadLoadingRequest = 11004,
[pbr::OriginalName("StopThreadLoadingResponse")] StopThreadLoadingResponse = 11005,
+ [pbr::OriginalName("TryThreadLoadingRequest")] TryThreadLoadingRequest = 11006,
+ [pbr::OriginalName("TryThreadLoadingResponse")] TryThreadLoadingResponse = 11007,
}
#endregion
diff --git a/Software/Visual_Studio/Tango.PMR/Stubs/StubMainCardEEpromReadRequest.cs b/Software/Visual_Studio/Tango.PMR/Stubs/StubMainCardEEpromReadRequest.cs
new file mode 100644
index 000000000..bf162db90
--- /dev/null
+++ b/Software/Visual_Studio/Tango.PMR/Stubs/StubMainCardEEpromReadRequest.cs
@@ -0,0 +1,188 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubMainCardEEpromReadRequest.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.Protobuf;
+using pbc = global::Google.Protobuf.Collections;
+using pbr = global::Google.Protobuf.Reflection;
+using scg = global::System.Collections.Generic;
+namespace Tango.PMR.Stubs {
+
+ /// <summary>Holder for reflection information generated from StubMainCardEEpromReadRequest.proto</summary>
+ public static partial class StubMainCardEEpromReadRequestReflection {
+
+ #region Descriptor
+ /// <summary>File descriptor for StubMainCardEEpromReadRequest.proto</summary>
+ public static pbr::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbr::FileDescriptor descriptor;
+
+ static StubMainCardEEpromReadRequestReflection() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "CiNTdHViTWFpbkNhcmRFRXByb21SZWFkUmVxdWVzdC5wcm90bxIPVGFuZ28u",
+ "UE1SLlN0dWJzIj4KHVN0dWJNYWluQ2FyZEVFcHJvbVJlYWRSZXF1ZXN0Eg8K",
+ "B0FkZHJlc3MYASABKAUSDAoERGF0YRgCIAEoBUIbChljb20udHdpbmUudGFu",
+ "Z28ucG1yLnN0dWJzYgZwcm90bzM="));
+ descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
+ new pbr::FileDescriptor[] { },
+ new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Stubs.StubMainCardEEpromReadRequest), global::Tango.PMR.Stubs.StubMainCardEEpromReadRequest.Parser, new[]{ "Address", "Data" }, null, null, null)
+ }));
+ }
+ #endregion
+
+ }
+ #region Messages
+ public sealed partial class StubMainCardEEpromReadRequest : pb::IMessage<StubMainCardEEpromReadRequest> {
+ private static readonly pb::MessageParser<StubMainCardEEpromReadRequest> _parser = new pb::MessageParser<StubMainCardEEpromReadRequest>(() => new StubMainCardEEpromReadRequest());
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser<StubMainCardEEpromReadRequest> Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Tango.PMR.Stubs.StubMainCardEEpromReadRequestReflection.Descriptor.MessageTypes[0]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public StubMainCardEEpromReadRequest() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public StubMainCardEEpromReadRequest(StubMainCardEEpromReadRequest other) : this() {
+ address_ = other.address_;
+ data_ = other.data_;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public StubMainCardEEpromReadRequest Clone() {
+ return new StubMainCardEEpromReadRequest(this);
+ }
+
+ /// <summary>Field number for the "Address" field.</summary>
+ public const int AddressFieldNumber = 1;
+ private int address_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int Address {
+ get { return address_; }
+ set {
+ address_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "Data" field.</summary>
+ public const int DataFieldNumber = 2;
+ private int data_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int Data {
+ get { return data_; }
+ set {
+ data_ = value;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other) {
+ return Equals(other as StubMainCardEEpromReadRequest);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(StubMainCardEEpromReadRequest other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (Address != other.Address) return false;
+ if (Data != other.Data) return false;
+ return true;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (Address != 0) hash ^= Address.GetHashCode();
+ if (Data != 0) hash ^= Data.GetHashCode();
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void WriteTo(pb::CodedOutputStream output) {
+ if (Address != 0) {
+ output.WriteRawTag(8);
+ output.WriteInt32(Address);
+ }
+ if (Data != 0) {
+ output.WriteRawTag(16);
+ output.WriteInt32(Data);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize() {
+ int size = 0;
+ if (Address != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32Size(Address);
+ }
+ if (Data != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32Size(Data);
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(StubMainCardEEpromReadRequest other) {
+ if (other == null) {
+ return;
+ }
+ if (other.Address != 0) {
+ Address = other.Address;
+ }
+ if (other.Data != 0) {
+ Data = other.Data;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ input.SkipLastField();
+ break;
+ case 8: {
+ Address = input.ReadInt32();
+ break;
+ }
+ case 16: {
+ Data = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/Software/Visual_Studio/Tango.PMR/Stubs/StubMainCardEEpromReadResponse.cs b/Software/Visual_Studio/Tango.PMR/Stubs/StubMainCardEEpromReadResponse.cs
new file mode 100644
index 000000000..382204a86
--- /dev/null
+++ b/Software/Visual_Studio/Tango.PMR/Stubs/StubMainCardEEpromReadResponse.cs
@@ -0,0 +1,188 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubMainCardEEpromReadResponse.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.Protobuf;
+using pbc = global::Google.Protobuf.Collections;
+using pbr = global::Google.Protobuf.Reflection;
+using scg = global::System.Collections.Generic;
+namespace Tango.PMR.Stubs {
+
+ /// <summary>Holder for reflection information generated from StubMainCardEEpromReadResponse.proto</summary>
+ public static partial class StubMainCardEEpromReadResponseReflection {
+
+ #region Descriptor
+ /// <summary>File descriptor for StubMainCardEEpromReadResponse.proto</summary>
+ public static pbr::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbr::FileDescriptor descriptor;
+
+ static StubMainCardEEpromReadResponseReflection() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "CiRTdHViTWFpbkNhcmRFRXByb21SZWFkUmVzcG9uc2UucHJvdG8SD1Rhbmdv",
+ "LlBNUi5TdHVicyI/Ch5TdHViTWFpbkNhcmRFRXByb21SZWFkUmVzcG9uc2US",
+ "DwoHQWRkcmVzcxgBIAEoBRIMCgREYXRhGAIgASgFQhsKGWNvbS50d2luZS50",
+ "YW5nby5wbXIuc3R1YnNiBnByb3RvMw=="));
+ descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
+ new pbr::FileDescriptor[] { },
+ new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Stubs.StubMainCardEEpromReadResponse), global::Tango.PMR.Stubs.StubMainCardEEpromReadResponse.Parser, new[]{ "Address", "Data" }, null, null, null)
+ }));
+ }
+ #endregion
+
+ }
+ #region Messages
+ public sealed partial class StubMainCardEEpromReadResponse : pb::IMessage<StubMainCardEEpromReadResponse> {
+ private static readonly pb::MessageParser<StubMainCardEEpromReadResponse> _parser = new pb::MessageParser<StubMainCardEEpromReadResponse>(() => new StubMainCardEEpromReadResponse());
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser<StubMainCardEEpromReadResponse> Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Tango.PMR.Stubs.StubMainCardEEpromReadResponseReflection.Descriptor.MessageTypes[0]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public StubMainCardEEpromReadResponse() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public StubMainCardEEpromReadResponse(StubMainCardEEpromReadResponse other) : this() {
+ address_ = other.address_;
+ data_ = other.data_;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public StubMainCardEEpromReadResponse Clone() {
+ return new StubMainCardEEpromReadResponse(this);
+ }
+
+ /// <summary>Field number for the "Address" field.</summary>
+ public const int AddressFieldNumber = 1;
+ private int address_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int Address {
+ get { return address_; }
+ set {
+ address_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "Data" field.</summary>
+ public const int DataFieldNumber = 2;
+ private int data_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int Data {
+ get { return data_; }
+ set {
+ data_ = value;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other) {
+ return Equals(other as StubMainCardEEpromReadResponse);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(StubMainCardEEpromReadResponse other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (Address != other.Address) return false;
+ if (Data != other.Data) return false;
+ return true;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (Address != 0) hash ^= Address.GetHashCode();
+ if (Data != 0) hash ^= Data.GetHashCode();
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void WriteTo(pb::CodedOutputStream output) {
+ if (Address != 0) {
+ output.WriteRawTag(8);
+ output.WriteInt32(Address);
+ }
+ if (Data != 0) {
+ output.WriteRawTag(16);
+ output.WriteInt32(Data);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize() {
+ int size = 0;
+ if (Address != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32Size(Address);
+ }
+ if (Data != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32Size(Data);
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(StubMainCardEEpromReadResponse other) {
+ if (other == null) {
+ return;
+ }
+ if (other.Address != 0) {
+ Address = other.Address;
+ }
+ if (other.Data != 0) {
+ Data = other.Data;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ input.SkipLastField();
+ break;
+ case 8: {
+ Address = input.ReadInt32();
+ break;
+ }
+ case 16: {
+ Data = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/Software/Visual_Studio/Tango.PMR/Stubs/StubMainCardEEpromWriteRequest.cs b/Software/Visual_Studio/Tango.PMR/Stubs/StubMainCardEEpromWriteRequest.cs
new file mode 100644
index 000000000..122694212
--- /dev/null
+++ b/Software/Visual_Studio/Tango.PMR/Stubs/StubMainCardEEpromWriteRequest.cs
@@ -0,0 +1,188 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubMainCardEEpromWriteRequest.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.Protobuf;
+using pbc = global::Google.Protobuf.Collections;
+using pbr = global::Google.Protobuf.Reflection;
+using scg = global::System.Collections.Generic;
+namespace Tango.PMR.Stubs {
+
+ /// <summary>Holder for reflection information generated from StubMainCardEEpromWriteRequest.proto</summary>
+ public static partial class StubMainCardEEpromWriteRequestReflection {
+
+ #region Descriptor
+ /// <summary>File descriptor for StubMainCardEEpromWriteRequest.proto</summary>
+ public static pbr::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbr::FileDescriptor descriptor;
+
+ static StubMainCardEEpromWriteRequestReflection() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "CiRTdHViTWFpbkNhcmRFRXByb21Xcml0ZVJlcXVlc3QucHJvdG8SD1Rhbmdv",
+ "LlBNUi5TdHVicyI/Ch5TdHViTWFpbkNhcmRFRXByb21Xcml0ZVJlcXVlc3QS",
+ "DwoHQWRkcmVzcxgBIAEoBRIMCgREYXRhGAIgASgFQhsKGWNvbS50d2luZS50",
+ "YW5nby5wbXIuc3R1YnNiBnByb3RvMw=="));
+ descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
+ new pbr::FileDescriptor[] { },
+ new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Stubs.StubMainCardEEpromWriteRequest), global::Tango.PMR.Stubs.StubMainCardEEpromWriteRequest.Parser, new[]{ "Address", "Data" }, null, null, null)
+ }));
+ }
+ #endregion
+
+ }
+ #region Messages
+ public sealed partial class StubMainCardEEpromWriteRequest : pb::IMessage<StubMainCardEEpromWriteRequest> {
+ private static readonly pb::MessageParser<StubMainCardEEpromWriteRequest> _parser = new pb::MessageParser<StubMainCardEEpromWriteRequest>(() => new StubMainCardEEpromWriteRequest());
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser<StubMainCardEEpromWriteRequest> Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Tango.PMR.Stubs.StubMainCardEEpromWriteRequestReflection.Descriptor.MessageTypes[0]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public StubMainCardEEpromWriteRequest() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public StubMainCardEEpromWriteRequest(StubMainCardEEpromWriteRequest other) : this() {
+ address_ = other.address_;
+ data_ = other.data_;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public StubMainCardEEpromWriteRequest Clone() {
+ return new StubMainCardEEpromWriteRequest(this);
+ }
+
+ /// <summary>Field number for the "Address" field.</summary>
+ public const int AddressFieldNumber = 1;
+ private int address_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int Address {
+ get { return address_; }
+ set {
+ address_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "Data" field.</summary>
+ public const int DataFieldNumber = 2;
+ private int data_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int Data {
+ get { return data_; }
+ set {
+ data_ = value;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other) {
+ return Equals(other as StubMainCardEEpromWriteRequest);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(StubMainCardEEpromWriteRequest other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (Address != other.Address) return false;
+ if (Data != other.Data) return false;
+ return true;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (Address != 0) hash ^= Address.GetHashCode();
+ if (Data != 0) hash ^= Data.GetHashCode();
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void WriteTo(pb::CodedOutputStream output) {
+ if (Address != 0) {
+ output.WriteRawTag(8);
+ output.WriteInt32(Address);
+ }
+ if (Data != 0) {
+ output.WriteRawTag(16);
+ output.WriteInt32(Data);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize() {
+ int size = 0;
+ if (Address != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32Size(Address);
+ }
+ if (Data != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32Size(Data);
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(StubMainCardEEpromWriteRequest other) {
+ if (other == null) {
+ return;
+ }
+ if (other.Address != 0) {
+ Address = other.Address;
+ }
+ if (other.Data != 0) {
+ Data = other.Data;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ input.SkipLastField();
+ break;
+ case 8: {
+ Address = input.ReadInt32();
+ break;
+ }
+ case 16: {
+ Data = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/Software/Visual_Studio/Tango.PMR/Stubs/StubMainCardEEpromWriteResponse.cs b/Software/Visual_Studio/Tango.PMR/Stubs/StubMainCardEEpromWriteResponse.cs
new file mode 100644
index 000000000..ff074d202
--- /dev/null
+++ b/Software/Visual_Studio/Tango.PMR/Stubs/StubMainCardEEpromWriteResponse.cs
@@ -0,0 +1,132 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubMainCardEEpromWriteResponse.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.Protobuf;
+using pbc = global::Google.Protobuf.Collections;
+using pbr = global::Google.Protobuf.Reflection;
+using scg = global::System.Collections.Generic;
+namespace Tango.PMR.EmbeddedParameters {
+
+ /// <summary>Holder for reflection information generated from StubMainCardEEpromWriteResponse.proto</summary>
+ public static partial class StubMainCardEEpromWriteResponseReflection {
+
+ #region Descriptor
+ /// <summary>File descriptor for StubMainCardEEpromWriteResponse.proto</summary>
+ public static pbr::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbr::FileDescriptor descriptor;
+
+ static StubMainCardEEpromWriteResponseReflection() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "CiVTdHViTWFpbkNhcmRFRXByb21Xcml0ZVJlc3BvbnNlLnByb3RvEhxUYW5n",
+ "by5QTVIuRW1iZWRkZWRQYXJhbWV0ZXJzIiEKH1N0dWJNYWluQ2FyZEVFcHJv",
+ "bVdyaXRlUmVzcG9uc2VCKAomY29tLnR3aW5lLnRhbmdvLnBtci5lbWJlZGRl",
+ "ZHBhcmFtZXRlcnNiBnByb3RvMw=="));
+ descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
+ new pbr::FileDescriptor[] { },
+ new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.EmbeddedParameters.StubMainCardEEpromWriteResponse), global::Tango.PMR.EmbeddedParameters.StubMainCardEEpromWriteResponse.Parser, null, null, null, null)
+ }));
+ }
+ #endregion
+
+ }
+ #region Messages
+ public sealed partial class StubMainCardEEpromWriteResponse : pb::IMessage<StubMainCardEEpromWriteResponse> {
+ private static readonly pb::MessageParser<StubMainCardEEpromWriteResponse> _parser = new pb::MessageParser<StubMainCardEEpromWriteResponse>(() => new StubMainCardEEpromWriteResponse());
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser<StubMainCardEEpromWriteResponse> Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Tango.PMR.EmbeddedParameters.StubMainCardEEpromWriteResponseReflection.Descriptor.MessageTypes[0]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public StubMainCardEEpromWriteResponse() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public StubMainCardEEpromWriteResponse(StubMainCardEEpromWriteResponse other) : this() {
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public StubMainCardEEpromWriteResponse Clone() {
+ return new StubMainCardEEpromWriteResponse(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other) {
+ return Equals(other as StubMainCardEEpromWriteResponse);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(StubMainCardEEpromWriteResponse other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ return true;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode() {
+ int hash = 1;
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void WriteTo(pb::CodedOutputStream output) {
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize() {
+ int size = 0;
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(StubMainCardEEpromWriteResponse other) {
+ if (other == null) {
+ return;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ input.SkipLastField();
+ break;
+ }
+ }
+ }
+
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj b/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj
index 8ee68347a..0a5c8d58c 100644
--- a/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj
+++ b/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj
@@ -305,6 +305,10 @@
<Compile Include="Stubs\StubDispenserEEpromData.cs" />
<Compile Include="Stubs\StubDispenserEEpromRequest.cs" />
<Compile Include="Stubs\StubDispenserEEpromResponse.cs" />
+ <Compile Include="Stubs\StubMainCardEEpromReadRequest.cs" />
+ <Compile Include="Stubs\StubMainCardEEpromReadResponse.cs" />
+ <Compile Include="Stubs\StubMainCardEEpromWriteRequest.cs" />
+ <Compile Include="Stubs\StubMainCardEEpromWriteResponse.cs" />
<Compile Include="Stubs\StubWhsEEpromData.cs" />
<Compile Include="Stubs\StubWhsEEpromRequest.cs" />
<Compile Include="Stubs\StubWhsEEpromResponse.cs" />
@@ -429,6 +433,8 @@
<Compile Include="ThreadLoading\StopThreadLoadingRequest.cs" />
<Compile Include="ThreadLoading\StopThreadLoadingResponse.cs" />
<Compile Include="ThreadLoading\ThreadLoadingState.cs" />
+ <Compile Include="ThreadLoading\TryThreadLoadingRequest.cs" />
+ <Compile Include="ThreadLoading\TryThreadLoadingResponse.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Utilities\Tango.Protobuf.CLI\Tango.Protobuf.CLI.csproj">
@@ -446,7 +452,7 @@
</PropertyGroup>
<ProjectExtensions>
<VisualStudio>
- <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" />
+ <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" />
</VisualStudio>
</ProjectExtensions>
</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/Tango.PMR/ThreadLoading/TryThreadLoadingRequest.cs b/Software/Visual_Studio/Tango.PMR/ThreadLoading/TryThreadLoadingRequest.cs
new file mode 100644
index 000000000..2358bcdda
--- /dev/null
+++ b/Software/Visual_Studio/Tango.PMR/ThreadLoading/TryThreadLoadingRequest.cs
@@ -0,0 +1,131 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: TryThreadLoadingRequest.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.Protobuf;
+using pbc = global::Google.Protobuf.Collections;
+using pbr = global::Google.Protobuf.Reflection;
+using scg = global::System.Collections.Generic;
+namespace Tango.PMR.ThreadLoading {
+
+ /// <summary>Holder for reflection information generated from TryThreadLoadingRequest.proto</summary>
+ public static partial class TryThreadLoadingRequestReflection {
+
+ #region Descriptor
+ /// <summary>File descriptor for TryThreadLoadingRequest.proto</summary>
+ public static pbr::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbr::FileDescriptor descriptor;
+
+ static TryThreadLoadingRequestReflection() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "Ch1UcnlUaHJlYWRMb2FkaW5nUmVxdWVzdC5wcm90bxIXVGFuZ28uUE1SLlRo",
+ "cmVhZExvYWRpbmciGQoXVHJ5VGhyZWFkTG9hZGluZ1JlcXVlc3RCIwohY29t",
+ "LnR3aW5lLnRhbmdvLnBtci50aHJlYWRsb2FkaW5nYgZwcm90bzM="));
+ descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
+ new pbr::FileDescriptor[] { },
+ new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.ThreadLoading.TryThreadLoadingRequest), global::Tango.PMR.ThreadLoading.TryThreadLoadingRequest.Parser, null, null, null, null)
+ }));
+ }
+ #endregion
+
+ }
+ #region Messages
+ public sealed partial class TryThreadLoadingRequest : pb::IMessage<TryThreadLoadingRequest> {
+ private static readonly pb::MessageParser<TryThreadLoadingRequest> _parser = new pb::MessageParser<TryThreadLoadingRequest>(() => new TryThreadLoadingRequest());
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser<TryThreadLoadingRequest> Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Tango.PMR.ThreadLoading.TryThreadLoadingRequestReflection.Descriptor.MessageTypes[0]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public TryThreadLoadingRequest() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public TryThreadLoadingRequest(TryThreadLoadingRequest other) : this() {
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public TryThreadLoadingRequest Clone() {
+ return new TryThreadLoadingRequest(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other) {
+ return Equals(other as TryThreadLoadingRequest);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(TryThreadLoadingRequest other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ return true;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode() {
+ int hash = 1;
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void WriteTo(pb::CodedOutputStream output) {
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize() {
+ int size = 0;
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(TryThreadLoadingRequest other) {
+ if (other == null) {
+ return;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ input.SkipLastField();
+ break;
+ }
+ }
+ }
+
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/Software/Visual_Studio/Tango.PMR/ThreadLoading/TryThreadLoadingResponse.cs b/Software/Visual_Studio/Tango.PMR/ThreadLoading/TryThreadLoadingResponse.cs
new file mode 100644
index 000000000..5e6e9631b
--- /dev/null
+++ b/Software/Visual_Studio/Tango.PMR/ThreadLoading/TryThreadLoadingResponse.cs
@@ -0,0 +1,131 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: TryThreadLoadingResponse.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.Protobuf;
+using pbc = global::Google.Protobuf.Collections;
+using pbr = global::Google.Protobuf.Reflection;
+using scg = global::System.Collections.Generic;
+namespace Tango.PMR.ThreadLoading {
+
+ /// <summary>Holder for reflection information generated from TryThreadLoadingResponse.proto</summary>
+ public static partial class TryThreadLoadingResponseReflection {
+
+ #region Descriptor
+ /// <summary>File descriptor for TryThreadLoadingResponse.proto</summary>
+ public static pbr::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbr::FileDescriptor descriptor;
+
+ static TryThreadLoadingResponseReflection() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "Ch5UcnlUaHJlYWRMb2FkaW5nUmVzcG9uc2UucHJvdG8SF1RhbmdvLlBNUi5U",
+ "aHJlYWRMb2FkaW5nIhoKGFRyeVRocmVhZExvYWRpbmdSZXNwb25zZUIjCiFj",
+ "b20udHdpbmUudGFuZ28ucG1yLnRocmVhZGxvYWRpbmdiBnByb3RvMw=="));
+ descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
+ new pbr::FileDescriptor[] { },
+ new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.ThreadLoading.TryThreadLoadingResponse), global::Tango.PMR.ThreadLoading.TryThreadLoadingResponse.Parser, null, null, null, null)
+ }));
+ }
+ #endregion
+
+ }
+ #region Messages
+ public sealed partial class TryThreadLoadingResponse : pb::IMessage<TryThreadLoadingResponse> {
+ private static readonly pb::MessageParser<TryThreadLoadingResponse> _parser = new pb::MessageParser<TryThreadLoadingResponse>(() => new TryThreadLoadingResponse());
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser<TryThreadLoadingResponse> Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Tango.PMR.ThreadLoading.TryThreadLoadingResponseReflection.Descriptor.MessageTypes[0]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public TryThreadLoadingResponse() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public TryThreadLoadingResponse(TryThreadLoadingResponse other) : this() {
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public TryThreadLoadingResponse Clone() {
+ return new TryThreadLoadingResponse(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other) {
+ return Equals(other as TryThreadLoadingResponse);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(TryThreadLoadingResponse other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ return true;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode() {
+ int hash = 1;
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void WriteTo(pb::CodedOutputStream output) {
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize() {
+ int size = 0;
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(TryThreadLoadingResponse other) {
+ if (other == null) {
+ return;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ input.SkipLastField();
+ break;
+ }
+ }
+ }
+
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code