diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2018-06-04 12:28:21 +0300 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2018-06-04 12:28:21 +0300 |
| commit | b32b49776b2a715645e49bb24076536530531f32 (patch) | |
| tree | 3a97b8dc62df48f33487a06a3bb87e14fcbfda68 /Software/Embedded_SW/Embedded/Communication/Connection.c | |
| parent | c3acf10f9c8b6ab44751332a885a7200966a499c (diff) | |
| download | Tango-b32b49776b2a715645e49bb24076536530531f32.tar.gz Tango-b32b49776b2a715645e49bb24076536530531f32.zip | |
Connect/disconnect messages and some heaters control
Diffstat (limited to 'Software/Embedded_SW/Embedded/Communication/Connection.c')
| -rw-r--r-- | Software/Embedded_SW/Embedded/Communication/Connection.c | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/Software/Embedded_SW/Embedded/Communication/Connection.c b/Software/Embedded_SW/Embedded/Communication/Connection.c new file mode 100644 index 000000000..d2ee0f1a5 --- /dev/null +++ b/Software/Embedded_SW/Embedded/Communication/Connection.c @@ -0,0 +1,70 @@ +/* + * Connection.c + + * + * Created on: 4 June 2018 + * Author: shlomo + */ + +#include <Container.h> +#include <DataDef.h> +#include <PMR/Common/MessageContainer.pb-c.h> +#include <PMR/Connection/ConnectRequest.pb-c.h> +#include <PMR/Connection/ConnectResponse.pb-c.h> +#include <PMR/Connection/DisConnectRequest.pb-c.h> +#include <PMR/Connection/DisConnectResponse.pb-c.h> +#include <PMR/Connection/DeviceInformation.pb-c.h> + +#include "Common/SW_Info/SW_Info.h" +#include <utils/ustdlib.h> + + +void ConnectionRequest(MessageContainer* requestContainer) +{ + MessageContainer responseContainer; + + ConnectRequest* request = connect_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data); + DeviceInformation DevInfo = DEVICE_INFORMATION__INIT; + ConnectResponse response = CONNECT_RESPONSE__INIT; + + char Version[20] = {0}; + response.deviceinformation = &DevInfo; + /* + extern TangoVersion_t _gTangoVersion; + extern char Dat[50]; + extern char _gTangoName [MAX_STRING_LEN];//d + */ + DevInfo.builddate = Dat; + DevInfo.name = _gTangoName; + usnprintf(Version, 20, "%d.%d.%d.%d",_gTangoVersion.m_major,_gTangoVersion.m_minor,_gTangoVersion.m_patch,_gTangoVersion.m_build); + DevInfo.version = Version; + + responseContainer = createContainer(MESSAGE_TYPE__ConnectResponse, requestContainer->token, true, &response, &connect_response__pack, &connect_response__get_packed_size); + + //------------------------------------------------------------------------------------------- + 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((char*)container_buffer, container_size); + //free(container_buffer); + //free(requestContainer); + connect_request__free_unpacked(request,NULL); +} +void DisconnectionRequest(MessageContainer* requestContainer) +{ + MessageContainer responseContainer; + + DisconnectRequest* request = disconnect_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data); + DisconnectResponse response = DISCONNECT_RESPONSE__INIT; + + responseContainer = createContainer(MESSAGE_TYPE__DisconnectResponse, requestContainer->token, true, &response, &disconnect_response__pack, &disconnect_response__get_packed_size); + + //------------------------------------------------------------------------------------------- + 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((char*)container_buffer, container_size); + //free(container_buffer); + //free(requestContainer); + disconnect_request__free_unpacked(request,NULL); +} |
