#include #include #include #include #include #include #include "inc/hw_memmap.h" #include "inc/hw_types.h" #include "inc/hw_uart.h" #include "driverlib/gpio.h" #include "usb_serial_adapter.h" #include "graphics_adapter.h" #include "MessageContainer.pb-c.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 "Stub_FPGAReadBackReg.h" #include "Stub_FPGAReadVersion.h" #include "Stub_L6470.h" #include "Stub_Motor.h" #include "Stub_HW_Version.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__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__StubMotorRequest: Stub_MotorRequest(requestContainer); break; case MESSAGE_TYPE__StubMotorHomeMarkRequest: Stub_MotorHomeMarkRequest(requestContainer); break; case MESSAGE_TYPE__StubMotorRunStepTickRequest: Stub_MotorRunStepTickRequest(requestContainer); break; default: //unsupported message type !! break; } }