aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Communication/Connection.c
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2018-06-04 12:28:21 +0300
committerShlomo Hecht <shlomo@twine-s.com>2018-06-04 12:28:21 +0300
commitb32b49776b2a715645e49bb24076536530531f32 (patch)
tree3a97b8dc62df48f33487a06a3bb87e14fcbfda68 /Software/Embedded_SW/Embedded/Communication/Connection.c
parentc3acf10f9c8b6ab44751332a885a7200966a499c (diff)
downloadTango-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.c70
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);
+}