aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Container.c
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Container.c')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Container.c125
1 files changed, 125 insertions, 0 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Container.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Container.c
new file mode 100644
index 000000000..b9c3ffbd0
--- /dev/null
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Container.c
@@ -0,0 +1,125 @@
+#include <PMR/Common/MessageContainer.pb-c.h>
+#include "include.h"
+#include "driverlib/gpio.h"
+
+//#include "usb_serial_adapter.h"
+//#include "graphics_adapter.h"
+#include "Calculate.h"
+#include "Progress.h"
+#include "Stub_Cartridge.h"
+#include "Stub_Dispenser.h"
+#include "Stub_GPIO.h"
+#include "Stub_Heater.h"
+#include "Stub_MotorEncoder.h"
+#include "Stub_OptLimitSwitch.h"
+#include "Stub_SteperMotor.h"
+#include "Stub_Valve.h"
+#include "Stub_ExtFlash.h"
+#include "General/GeneralHardware.h"
+#include "heaters/heaters_ex.h"
+#include "StateMachines/Printing/PrintingSTM.h"
+#include "Modules/General/process.h"
+#include "Common/report/report.h"
+
+
+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 = 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;
+}
+
+void receive_callback(char* buffer, size_t length)
+{
+ //SendChars(buffer,length);
+ //draw_string(buffer, length);
+ //draw_image((uint8_t *)buffer);
+
+ //writeLine("Received ");
+ //writeFloat(length);
+ //writeString(" bytes");
+ //writeLine("Parsing message...");
+
+ MessageContainer* requestContainer = message_container__unpack(NULL, length, (uint8_t*)buffer);
+
+ switch(requestContainer->type)
+ {
+ case MESSAGE_TYPE__CalculateRequest:
+ Stub_CalculateRequest(requestContainer);
+ break;
+ case MESSAGE_TYPE__ProgressRequest:
+ Stub_ProgressRequest(requestContainer);
+ break;
+ case MESSAGE_TYPE__StubCartridgeReadRequest:
+ Stub_CartridgeReadRequest(requestContainer);
+ break;
+ case MESSAGE_TYPE__StubCartridgeWriteRequest:
+ Stub_CartridgeWriteRequest(requestContainer);
+ break;
+ case MESSAGE_TYPE__StubDispenserRequest:
+ Stub_DispenserRequest(requestContainer);
+ break;
+ case MESSAGE_TYPE__StubGPIOInputSetupRequest:
+ Stub_GPIOInputSetupRequest(requestContainer);
+ break;
+ case MESSAGE_TYPE__StubGPIOReadBitRequest:
+ Stub_GPIOReadBitRequest(requestContainer);
+ break;
+ case MESSAGE_TYPE__StubGPIOReadByteRequest:
+ Stub_GPIOReadByteRequest(requestContainer);
+ break;
+ case MESSAGE_TYPE__StubGPIOWriteBitRequest:
+ Stub_GPIOWriteBitRequest(requestContainer);
+ break;
+ case MESSAGE_TYPE__StubGPIOWriteByteRequest:
+ Stub_GPIOWriteByteRequest(requestContainer);
+ break;
+ case MESSAGE_TYPE__StubHeaterRequest:
+ Stub_HeaterRequest(requestContainer);
+ break;
+ case MESSAGE_TYPE__StubMotorEncoderRequest:
+ Stub_MotorEncoderRequest(requestContainer);
+ break;
+ case MESSAGE_TYPE__StubOptLimitSwitchRequest:
+ Stub_OptLimitSwitchRequest(requestContainer);
+ break;
+ case MESSAGE_TYPE__StubSteperMotorRequest:
+ Stub_SteperMotorRequest(requestContainer);
+ break;
+ case MESSAGE_TYPE__StubValveRequest:
+ Stub_ValveRequest(requestContainer);
+ break;
+ case MESSAGE_TYPE__StubExtFlashReadRequest:
+ Stub_ExtFlashReadRequest(requestContainer);
+ break;
+ case MESSAGE_TYPE__StubExtFlashWriteRequest:
+ Stub_ExtFlashWriteRequest(requestContainer);
+ break;
+ case MESSAGE_TYPE__DebugLogRequest:
+ ReportInitMessage(requestContainer);
+ break;
+ case MESSAGE_TYPE__JobRequest:
+ JobRequestFunc(requestContainer);
+ break;
+ case MESSAGE_TYPE__UploadProcessParametersRequest:
+ ProcessRequestFunc(requestContainer);
+ break;
+ default:
+ //unsupported message type !!
+ break;
+ }
+}