diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2018-10-23 18:34:18 +0300 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2018-10-23 18:34:18 +0300 |
| commit | ddde99ac703d1e4ccfdea5030042fbf85dfcec38 (patch) | |
| tree | c73c95110f217aef15451668e8183f6f8fd59222 /Software/Embedded_SW/Embedded/Common | |
| parent | cf83283f25844b9b673b7adc9bb851bcf19a399d (diff) | |
| download | Tango-ddde99ac703d1e4ccfdea5030042fbf85dfcec38.tar.gz Tango-ddde99ac703d1e4ccfdea5030042fbf85dfcec38.zip | |
infrastructure for file system commands. rockers disabled
Diffstat (limited to 'Software/Embedded_SW/Embedded/Common')
| -rw-r--r-- | Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c | 229 | ||||
| -rw-r--r-- | Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.h | 23 |
2 files changed, 252 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; +} diff --git a/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.h b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.h new file mode 100644 index 000000000..4a76a0aad --- /dev/null +++ b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.h @@ -0,0 +1,23 @@ +/* + * FileSystem.h + * + * Created on: Oct 23, 2018 + * Author: shlomo + */ + +#ifndef COMMON_SWUPDATE_FILESYSTEM_H_ +#define COMMON_SWUPDATE_FILESYSTEM_H_ + +uint32_t FileUploadRequestFunc(MessageContainer* requestContainer); +uint32_t FileChunkUploadRequestFunc(MessageContainer* requestContainer); +uint32_t ExecuteProcessRequestFunc(MessageContainer* requestContainer); +uint32_t KillProcessRequestFunc(MessageContainer* requestContainer); +uint32_t CreateRequestFunc(MessageContainer* requestContainer); +uint32_t DeleteRequestFunc(MessageContainer* requestContainer); +uint32_t GetStorageInfoRequestFunc(MessageContainer* requestContainer); +uint32_t GetFilesRequestFunc(MessageContainer* requestContainer); + + + + +#endif /* COMMON_SWUPDATE_FILESYSTEM_H_ */ |
