aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules/Stubs_Handler
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules/Stubs_Handler')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_IntADC.c100
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_IntADC.h15
2 files changed, 115 insertions, 0 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_IntADC.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_IntADC.c
new file mode 100644
index 000000000..85d7468bc
--- /dev/null
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_IntADC.c
@@ -0,0 +1,100 @@
+/*
+ * Stub_IntADC.c
+ *
+ * Created on: May 23, 2018
+ * Author: avi
+ */
+
+
+#include <Container.h>
+#include <DataDef.h>
+#include <PMR/Stubs/StubIntADCReadRequest.pb-c.h>
+#include <PMR/Stubs/StubIntADCReadResponse.pb-c.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <string.h>
+#include "inc/hw_memmap.h"
+#include "inc/hw_types.h"
+#include "inc/hw_uart.h"
+
+#include "Drivers/USB_Communication/USBCDCD.h"
+#include "drivers/twine_graphicslib/graphics_adapter.h"
+
+#include "MessageContainer.pb-c.h"
+
+#include "Stub_Status.h"
+#include "drivers/FPGA/FPGA.h"
+#include "drivers/adc_sampling/adc.h"
+
+void Stub_IntADCReadRequest(MessageContainer* requestContainer)
+{
+ uint32_t status = FAILED;
+
+ unsigned short data;
+
+ MessageContainer responseContainer;
+
+ StubIntADCReadRequest* request = stub_int_adcread_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
+
+ writeLine("ReadBack Request: ");
+
+ writeFloat(request->adc_device);
+
+ ADCAcquireInit();
+ SysCtlDelay(10000);
+ ADCAcquireStart(0,1);
+ SysCtlDelay(10000);
+ ADC_TriggerCollection();
+ SysCtlDelay(10000);
+
+ ADC0SS0Handler();
+ SysCtlDelay(100000);
+
+
+ data = ADC_GetReading(request->adc_device);
+ status = PASSED;
+
+ StubIntADCReadResponse response = STUB_INT_ADCREAD_RESPONSE__INIT;
+
+ status_response(status,&response.status, &response.statusword ,&response.has_statusword);
+
+ response.adc_device = request->adc_device;
+ response.has_adc_device = true;
+ response.sampling_in_bits = data;
+ response.has_sampling_in_bits = true;
+
+ float temp= 0;
+ temp = 4096 - data;
+ temp *= 3;
+ temp *= 1000; //move to mv
+ temp /= 4096;
+ response.voltage_sampling_mv = 3000 - temp;
+ response.has_voltage_sampling_mv = true;
+
+
+ responseContainer = createContainer(MESSAGE_TYPE__StubIntADCReadResponse, requestContainer->token, true, &response, &stub_int_adcread_response__pack, &stub_int_adcread_response__get_packed_size);
+
+ writeLine("Sending Response: ");
+
+ writeFloat(response.adc_device);
+ writeString(", ");
+ writeFloat(response.sampling_in_bits);
+ writeString(", ");
+ writeFloat(response.voltage_sampling_mv);
+ writeString(", ");
+
+ Write_status_response(status);
+
+ stub_int_adcread_request__free_unpacked(request,NULL);
+ //-------------------------------------------------------------------------------------------
+ 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);
+}
+
+
+
+
diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_IntADC.h b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_IntADC.h
new file mode 100644
index 000000000..5060233c4
--- /dev/null
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_IntADC.h
@@ -0,0 +1,15 @@
+/*
+ * Stub_IntADC.h
+ *
+ * Created on: May 23, 2018
+ * Author: avi
+ */
+
+#ifndef MODULES_STUBS_HANDLER_STUB_INTADC_H_
+#define MODULES_STUBS_HANDLER_STUB_INTADC_H_
+
+void Stub_IntADCReadRequest(MessageContainer* requestContainer);
+
+
+
+#endif /* MODULES_STUBS_HANDLER_STUB_INTADC_H_ */