aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2018-10-24 09:58:14 +0300
committerShlomo Hecht <shlomo@twine-s.com>2018-10-24 09:58:14 +0300
commit63fec02910da55db999402121559e20d9bc2ab56 (patch)
treedecc3dacd47b42a6fdf3efaa9aceb544e388ed0e /Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c
parent8e9c53625339326ef5477c4a9222ffbbf01b5d50 (diff)
parent0f2a4cf2802adc0dc177656dc1f27967bb436a9f (diff)
downloadTango-63fec02910da55db999402121559e20d9bc2ab56.tar.gz
Tango-63fec02910da55db999402121559e20d9bc2ab56.zip
merge
Diffstat (limited to 'Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c')
-rw-r--r--Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c229
1 files changed, 229 insertions, 0 deletions
diff --git a/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c
new file mode 100644
index 000000000..f9806552d
--- /dev/null
+++ b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c
@@ -0,0 +1,229 @@
+/*
+ * FileSystem.c
+ *
+ * Created on: Oct 23, 2018
+ * Author: shlomo
+ */
+#include "include.h"
+#include "Communication/CommunicationTask.h"
+
+#include <Communication/PMR/IO/FileUploadRequest.pb-c.h>
+#include <Communication/PMR/IO/FileUploadResponse.pb-c.h>
+#include <Communication/PMR/IO/FileChunkUploadRequest.pb-c.h>
+#include <Communication/PMR/IO/FileChunkUploadResponse.pb-c.h>
+#include <Communication/PMR/IO/ExecuteProcessRequest.pb-c.h>
+#include <Communication/PMR/IO/ExecuteProcessResponse.pb-c.h>
+#include <Communication/PMR/IO/KillProcessRequest.pb-c.h>
+#include <Communication/PMR/IO/KillProcessResponse.pb-c.h>
+#include <Communication/PMR/IO/CreateRequest.pb-c.h>
+#include <Communication/PMR/IO/CreateResponse.pb-c.h>
+#include <Communication/PMR/IO/DeleteRequest.pb-c.h>
+#include <Communication/PMR/IO/DeleteResponse.pb-c.h>
+#include <Communication/PMR/IO/GetStorageInfoRequest.pb-c.h>
+#include <Communication/PMR/IO/GetStorageInfoResponse.pb-c.h>
+#include <Communication/PMR/IO/GetFilesRequest.pb-c.h>
+#include <Communication/PMR/IO/GetFilesResponse.pb-c.h>
+
+
+
+uint32_t FileUploadRequestFunc(MessageContainer* requestContainer)
+{
+ uint32_t status = OK;
+
+ MessageContainer responseContainer;
+
+ FileUploadRequest* request = file_upload_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
+
+ FileUploadResponse response = FILE_UPLOAD_RESPONSE__INIT;
+
+
+ responseContainer = createContainer(MESSAGE_TYPE__FileUploadResponse, requestContainer->token, false, &response, &file_upload_response__pack, &file_upload_response__get_packed_size);
+ if (status!= OK)
+ {
+ responseContainer.error = ERROR_CODE__INVALID_PROCESS_ID;
+ responseContainer.errormessage = "JOb Active or incorrect parameters";
+ }
+ responseContainer.continuous = false;
+ uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer));
+ size_t container_size = message_container__pack(&responseContainer, container_buffer);
+ free(responseContainer.data.data);
+ SendChars(container_buffer, container_size);
+
+ return OK;
+}
+
+uint32_t FileChunkUploadRequestFunc(MessageContainer* requestContainer)
+{
+ uint32_t status = OK;
+
+ MessageContainer responseContainer;
+
+ FileChunkUploadRequest* request = file_chunk_upload_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
+
+ FileChunkUploadResponse response = FILE_CHUNK_UPLOAD_RESPONSE__INIT;
+
+
+ responseContainer = createContainer(MESSAGE_TYPE__FileChunkUploadResponse, requestContainer->token, false, &response, &file_chunk_upload_response__pack, &file_chunk_upload_response__get_packed_size);
+ if (status!= OK)
+ {
+ responseContainer.error = ERROR_CODE__INVALID_PROCESS_ID;
+ responseContainer.errormessage = "JOb Active or incorrect parameters";
+ }
+ responseContainer.continuous = false;
+ uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer));
+ size_t container_size = message_container__pack(&responseContainer, container_buffer);
+ free(responseContainer.data.data);
+ SendChars(container_buffer, container_size);
+
+ return OK;
+}
+uint32_t ExecuteProcessRequestFunc(MessageContainer* requestContainer)
+{
+ uint32_t status = OK;
+
+ MessageContainer responseContainer;
+
+ ExecuteProcessRequest* request = execute_process_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
+
+ ExecuteProcessResponse response = EXECUTE_PROCESS_RESPONSE__INIT;
+
+
+ responseContainer = createContainer(MESSAGE_TYPE__ExecuteProcessResponse, requestContainer->token, false, &response, &execute_process_response__pack, &execute_process_response__get_packed_size);
+ if (status!= OK)
+ {
+ responseContainer.error = ERROR_CODE__INVALID_PROCESS_ID;
+ responseContainer.errormessage = "JOb Active or incorrect parameters";
+ }
+ responseContainer.continuous = false;
+ uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer));
+ size_t container_size = message_container__pack(&responseContainer, container_buffer);
+ free(responseContainer.data.data);
+ SendChars(container_buffer, container_size);
+
+ return OK;
+}
+uint32_t KillProcessRequestFunc(MessageContainer* requestContainer)
+{
+ uint32_t status = OK;
+
+ MessageContainer responseContainer;
+
+ KillProcessRequest* request = kill_process_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
+
+ KillProcessResponse response = KILL_PROCESS_RESPONSE__INIT;
+
+
+ responseContainer = createContainer(MESSAGE_TYPE__KillProcessResponse, requestContainer->token, false, &response, &kill_process_response__pack, &kill_process_response__get_packed_size);
+ if (status!= OK)
+ {
+ responseContainer.error = ERROR_CODE__INVALID_PROCESS_ID;
+ responseContainer.errormessage = "JOb Active or incorrect parameters";
+ }
+ responseContainer.continuous = false;
+ uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer));
+ size_t container_size = message_container__pack(&responseContainer, container_buffer);
+ free(responseContainer.data.data);
+ SendChars(container_buffer, container_size);
+
+ return OK;
+}
+uint32_t CreateRequestFunc(MessageContainer* requestContainer)
+{
+ uint32_t status = OK;
+
+ MessageContainer responseContainer;
+
+ CreateRequest* request = create_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
+
+ CreateResponse response = CREATE_RESPONSE__INIT;
+
+
+ responseContainer = createContainer(MESSAGE_TYPE__CreateResponse, requestContainer->token, false, &response, &create_response__pack, &create_response__get_packed_size);
+ if (status!= OK)
+ {
+ responseContainer.error = ERROR_CODE__INVALID_PROCESS_ID;
+ responseContainer.errormessage = "JOb Active or incorrect parameters";
+ }
+ responseContainer.continuous = false;
+ uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer));
+ size_t container_size = message_container__pack(&responseContainer, container_buffer);
+ free(responseContainer.data.data);
+ SendChars(container_buffer, container_size);
+
+ return OK;
+}
+uint32_t DeleteRequestFunc(MessageContainer* requestContainer)
+{
+ uint32_t status = OK;
+
+ MessageContainer responseContainer;
+
+ DeleteRequest* request = delete_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
+
+ DeleteResponse response = DELETE_RESPONSE__INIT;
+
+
+ responseContainer = createContainer(MESSAGE_TYPE__DeleteResponse, requestContainer->token, false, &response, &delete_response__pack, &delete_response__get_packed_size);
+ if (status!= OK)
+ {
+ responseContainer.error = ERROR_CODE__INVALID_PROCESS_ID;
+ responseContainer.errormessage = "JOb Active or incorrect parameters";
+ }
+ responseContainer.continuous = false;
+ uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer));
+ size_t container_size = message_container__pack(&responseContainer, container_buffer);
+ free(responseContainer.data.data);
+ SendChars(container_buffer, container_size);
+
+ return OK;
+}
+uint32_t GetStorageInfoRequestFunc(MessageContainer* requestContainer)
+{
+ uint32_t status = OK;
+
+ MessageContainer responseContainer;
+
+ GetStorageInfoRequest* request = get_storage_info_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
+
+ GetStorageInfoResponse response = GET_STORAGE_INFO_RESPONSE__INIT;
+
+
+ responseContainer = createContainer(MESSAGE_TYPE__GetStorageInfoResponse, requestContainer->token, false, &response, &get_storage_info_response__pack, &get_storage_info_response__get_packed_size);
+ if (status!= OK)
+ {
+ responseContainer.error = ERROR_CODE__INVALID_PROCESS_ID;
+ responseContainer.errormessage = "JOb Active or incorrect parameters";
+ }
+ responseContainer.continuous = false;
+ uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer));
+ size_t container_size = message_container__pack(&responseContainer, container_buffer);
+ free(responseContainer.data.data);
+ SendChars(container_buffer, container_size);
+
+ return OK;
+}
+uint32_t GetFilesRequestFunc(MessageContainer* requestContainer)
+{
+ uint32_t status = OK;
+
+ MessageContainer responseContainer;
+
+ GetFilesRequest* request = get_files_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
+
+ GetFilesResponse response = GET_FILES_RESPONSE__INIT;
+
+
+ responseContainer = createContainer(MESSAGE_TYPE__GetFilesResponse, requestContainer->token, false, &response, &get_files_response__pack, &get_files_response__get_packed_size);
+ if (status!= OK)
+ {
+ responseContainer.error = ERROR_CODE__INVALID_PROCESS_ID;
+ responseContainer.errormessage = "JOb Active or incorrect parameters";
+ }
+ responseContainer.continuous = false;
+ uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer));
+ size_t container_size = message_container__pack(&responseContainer, container_buffer);
+ free(responseContainer.data.data);
+ SendChars(container_buffer, container_size);
+
+ return OK;
+}