diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-05-22 14:24:19 +0300 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-05-22 14:24:19 +0300 |
| commit | e29de860906682fb744aa703c47dc91883700e49 (patch) | |
| tree | 1646b79e17bdbe50d94221a5443e740d83c57db0 /Software/Visual_Studio/Native/Tango.Emulations.Native/EmbeddedEmulator.cpp | |
| parent | 9be3bbce0bc582e44ac2518ee471d825b81143d1 (diff) | |
| download | Tango-e29de860906682fb744aa703c47dc91883700e49.tar.gz Tango-e29de860906682fb744aa703c47dc91883700e49.zip | |
Implemented Numeric touch keyboard.
Implemented Native RoundTrip for Machine Emulator.
Diffstat (limited to 'Software/Visual_Studio/Native/Tango.Emulations.Native/EmbeddedEmulator.cpp')
| -rw-r--r-- | Software/Visual_Studio/Native/Tango.Emulations.Native/EmbeddedEmulator.cpp | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/Software/Visual_Studio/Native/Tango.Emulations.Native/EmbeddedEmulator.cpp b/Software/Visual_Studio/Native/Tango.Emulations.Native/EmbeddedEmulator.cpp new file mode 100644 index 000000000..431b641cd --- /dev/null +++ b/Software/Visual_Studio/Native/Tango.Emulations.Native/EmbeddedEmulator.cpp @@ -0,0 +1,65 @@ +#include "EmbeddedEmulator.h" +#include "MessageContainer.pb-c.h" +#include "MessageType.pb-c.h" +#include "UploadHardwareConfigurationRequest.pb-c.h"; + +using namespace std; + +namespace Tango +{ + namespace Emulations + { + namespace Native + { + EmbeddedEmulator::EmbeddedEmulator() + { + } + + + EmbeddedEmulator::~EmbeddedEmulator() + { + + } + + MessageContainer createContainer(MessageType type, char* token, protobuf_c_boolean completed, void* response, size_t(*packPtr)(void*, uint8_t*), size_t(*sizePtr)(void*)) + { + MessageContainer container = MESSAGE_CONTAINER__INIT; + container.completed = completed; + container.token = token; + container.has_completed = true; + container.has_data = true; + container.has_type = true; + container.type = type; + + + + uint8_t* response_buffer = (uint8_t*)malloc((*sizePtr)(response)); + size_t response_size = (*packPtr)(response, response_buffer); + container.data.data = response_buffer; + container.data.len = response_size; + + //free(response); + return container; + } + + size_t EmbeddedEmulator::ProcessMessage(uint8_t * input_buffer, size_t input_buffer_size, uint8_t *& output_buffer) + { + MessageContainer * container = message_container__unpack(NULL, input_buffer_size, input_buffer); + + switch (container->type) + { + case MESSAGE_TYPE__UploadHardwareConfigurationRequest: + + UploadHardwareConfigurationRequest* hardwareRequest = upload_hardware_configuration_request__unpack(NULL, container->data.len, container->data.data); + MessageContainer responseContainer = createContainer(MESSAGE_TYPE__UploadHardwareConfigurationRequest, container->token, true, hardwareRequest, (size_t(*)(void*, uint8_t*))&upload_hardware_configuration_request__pack, (size_t(*)(void*))&upload_hardware_configuration_request__get_packed_size); + + output_buffer = (uint8_t*)malloc(message_container__get_packed_size(&responseContainer)); + size_t container_size = message_container__pack(&responseContainer, output_buffer); + return container_size; + } + + return 0; + } + } + } +} |
