#include #include "include.h" #include "driverlib/gpio.h" //#include "usb_serial_adapter.h" //#include "graphics_adapter.h" #include "Modules/Stubs_Handler/Calculate.h" #include "Modules/Stubs_Handler/Progress.h" #include "Modules/Stubs_Handler/Stub_Cartridge.h" #include "Modules/Stubs_Handler/Stub_Dispenser.h" #include "Modules/Stubs_Handler/Stub_GPIO.h" #include "Modules/Stubs_Handler/Stub_Heater.h" #include "Modules/Stubs_Handler/Stub_MotorEncoder.h" #include "Modules/Stubs_Handler/Stub_OptLimitSwitch.h" #include "Modules/Stubs_Handler/Stub_SteperMotor.h" #include "Modules/Stubs_Handler/Stub_Valve.h" #include "Modules/Stubs_Handler/Stub_ExtFlash.h" #include "Modules/Stubs_Handler/Stub_FPGAReadBackReg.h" #include "Modules/Stubs_Handler/Stub_FPGAReadVersion.h" #include "Modules/Stubs_Handler/Stub_L6470.h" #include "Modules/Stubs_Handler/Stub_Motor.h" #include "Modules/Stubs_Handler/Stub_HW_Version.h" #include "Modules/Stubs_Handler/Stub_FPGARWReg.h" #include "Modules/Stubs_Handler/Stub_ReadEmbeddedVersion.h" #include "Modules/Stubs_Handler/Stub_TivaReg.h" #include "Modules/Stubs_Handler/Stub_Dancer.h" #include "Modules/General/GeneralHardware.h" #include "Modules/heaters/heaters_ex.h" #include "Drivers/USB_Communication/USBCDCD.h" #include "StateMachines/Printing/PrintingSTM.h" #include "Modules/General/process.h" #include "Modules/Thread/Thread_ex.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__StubFPGAReadBackRegRequest: Stub_FPGAReadBackRegRequest(requestContainer); break; case MESSAGE_TYPE__StubFPGAReadVersionRequest: Stub_FPGAReadVersionRequest(requestContainer); break; /*************************************/ case MESSAGE_TYPE__StubFpgaReadRegRequest: Stub_FpgaReadRegRequest(requestContainer); break; case MESSAGE_TYPE__StubFpgaWriteRegRequest: Stub_FpgaWriteRegRequest(requestContainer); break; /*************************************/ case MESSAGE_TYPE__StubL6470DriverRequest: Stub_L6470DriverRequest(requestContainer); break; case MESSAGE_TYPE__StubMotorInitRequest: Stub_MotorInitRequest(requestContainer); break; case MESSAGE_TYPE__StubMotorRunRequest: Stub_MotorRunRequest(requestContainer); break; case MESSAGE_TYPE__StubMotorStopRequest: Stub_MotorStopRequest(requestContainer); break; case MESSAGE_TYPE__StubMotorStatusRequest: Stub_MotorStatusRequest(requestContainer); break; case MESSAGE_TYPE__StubMotorPositionRequest: Stub_MotorPositionRequest(requestContainer); break; case MESSAGE_TYPE__StubMotorSpeedRequest: Stub_MotorSpeedRequest(requestContainer); break; case MESSAGE_TYPE__StubMotorMovRequest: Stub_MotorMovRequest(requestContainer); break; case MESSAGE_TYPE__StubHWVersionRequest: Stub_HWVersionRequest(requestContainer); break; case MESSAGE_TYPE__StartDebugLogRequest: ReportInitMessage(requestContainer); break; case MESSAGE_TYPE__StopDebugLogRequest: StopReportInitMessage(requestContainer); break; case MESSAGE_TYPE__JobRequest: JobRequestFunc(requestContainer); break; case MESSAGE_TYPE__UploadHardwareConfigurationRequest: HWConfigurationFunc(requestContainer); break; case MESSAGE_TYPE__UploadProcessParametersRequest: ProcessRequestFunc(requestContainer); break; case MESSAGE_TYPE__StubHeatingTestRequest: HeatingTestRequest(requestContainer); break; case MESSAGE_TYPE__StubHeatingTestPollRequest: HeatingTestPollRequest(requestContainer); break; case MESSAGE_TYPE__StubReadEmbeddedVersionRequest: Stub_ReadEmbeddedVersionRequest(requestContainer); break; case MESSAGE_TYPE__SystemResetRequest: HWSystemResetRequest(requestContainer); break; case MESSAGE_TYPE__StubTivaReadRegRequest: Stub_TivaReadRegRequest(requestContainer); break; case MESSAGE_TYPE__StubTivaWriteRegRequest: Stub_TivaWriteRegRequest(requestContainer); break; case MESSAGE_TYPE__StubDancerPositionRequest: Stub_DancerPositionRequest(requestContainer); break; case MESSAGE_TYPE__StubSpeedSensorRequest: Stub_SpeedSensorRequest(requestContainer); break; default: //unsupported message type !! break; } message_container__free_unpacked(requestContainer, NULL); }