aboutsummaryrefslogtreecommitdiffstats
path: root/Software
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2020-06-07 16:53:31 +0300
committerShlomo Hecht <shlomo@twine-s.com>2020-06-07 16:53:31 +0300
commit78709f8a869bd6a638a332062d83e51f3c132a2c (patch)
tree7c6a4d9135670d78a8c38b1370f6af5f140a0678 /Software
parent7ae59a2ae6cf8c4de8b420ea83c6282b8685fed5 (diff)
downloadTango-78709f8a869bd6a638a332062d83e51f3c132a2c.tar.gz
Tango-78709f8a869bd6a638a332062d83e51f3c132a2c.zip
TryThreadLoading
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/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/Modules/General/GeneralHardware.c4
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c25
11 files changed, 335 insertions, 9 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/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/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 61ceb0813..75c232a1c 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c
@@ -1392,6 +1392,31 @@ 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();
+ if (request->processparameters)
+ {
+ dryerbufferlength = request->processparameters->dryerbufferlength;
+ LoadArmRounds = (int)(request->processparameters->dryerbufferlength);
+
+ }
+ Report("TryThreadLoadingFunc",__FILE__,__LINE__,(int)(request->processparameters->dryerbufferlength),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);