diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2018-04-22 13:58:32 +0300 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2018-04-22 13:58:32 +0300 |
| commit | 540272c93c7d0b4a12ea797c996f2c9ddf2a5bbb (patch) | |
| tree | c77ea96deed628c118bb235bc16150846c165d49 /Software/Embedded_SW/Embedded/Modules | |
| parent | 4df1724226c0d0941b970dbe71b1476e3c3e9902 (diff) | |
| download | Tango-540272c93c7d0b4a12ea797c996f2c9ddf2a5bbb.tar.gz Tango-540272c93c7d0b4a12ea797c996f2c9ddf2a5bbb.zip | |
1. IfIndex in control interface 2. container.c moved to communication
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules')
27 files changed, 95 insertions, 237 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/Control/DriverWithCallbackExample.c b/Software/Embedded_SW/Embedded/Modules/Control/DriverWithCallbackExample.c index 1de8ac0de..881034e40 100644 --- a/Software/Embedded_SW/Embedded/Modules/Control/DriverWithCallbackExample.c +++ b/Software/Embedded_SW/Embedded/Modules/Control/DriverWithCallbackExample.c @@ -26,7 +26,7 @@ uint32_t DriverActionWithCallback (uint32_t deviceId, uint32_t parameter, callba ModuleCallback = callback; //start control: - uint32_t ControlId = AddControlCallback( callback, eOneMillisecond, NULL, deviceId, parameter ); + uint32_t ControlId = AddControlCallback( callback, eOneMillisecond, NULL, (IfTypeNone*0x100+deviceId),deviceId, parameter ); return ControlId; } diff --git a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.h b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.h index fde3a36b3..286ed7ca0 100644 --- a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.h +++ b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.h @@ -22,4 +22,8 @@ uint32_t getMotorSpeedData(int MotorId); uint32_t getTemperatureSensorData(int SensorId); uint32_t getADCData(int DeviceId); +void MillisecInit(void); +void MillisecStop(void); +void MillisecStart(void); + #endif /* MODULES_CONTROL_MILLISECTASK_H_ */ diff --git a/Software/Embedded_SW/Embedded/Modules/Control/control.c b/Software/Embedded_SW/Embedded/Modules/Control/control.c index 28b4afb8d..0a4a8b791 100644 --- a/Software/Embedded_SW/Embedded/Modules/Control/control.c +++ b/Software/Embedded_SW/Embedded/Modules/Control/control.c @@ -65,6 +65,7 @@ typedef struct bool ControlActive; uint32_t Parameter1; uint32_t Parameter2; + uint32_t IfIndex; DataReadCBFunction ControlDataReadPtr; ControlCBFunction ControlCallbackPtr; CTRL_TIMING_ENUM ControlTiming; @@ -169,7 +170,7 @@ void ControlStart(void) * both these callbacks can be removed. if a new call is arriving, it invalidates the previous one (no dual control or data) * ***************************************************************************************************************************************************/ -uint32_t AddControlCallback( ControlCBFunction Callback, CTRL_TIMING_ENUM CtrlFrequency, DataReadCBFunction DriverfPtr, uint32_t Parameter1, uint32_t Parameter2 ) +uint32_t AddControlCallback( ControlCBFunction Callback, CTRL_TIMING_ENUM CtrlFrequency, DataReadCBFunction DriverfPtr, uint32_t IfIndex, uint32_t Parameter1, uint32_t Parameter2 ) { assert(Callback); assert(DriverfPtr); @@ -194,6 +195,7 @@ uint32_t AddControlCallback( ControlCBFunction Callback, CTRL_TIMING_ENUM CtrlF ControlArray[deviceId].ControlDataReadPtr = DriverfPtr; ControlArray[deviceId].Parameter1 = Parameter1; ControlArray[deviceId].Parameter2 = Parameter2; + ControlArray[deviceId].IfIndex = IfIndex; GateMutex_leave(gateControlDB, key); return deviceId; @@ -223,7 +225,6 @@ int RemoveControlCallback(uint32_t deviceId , ControlCBFunction Callback) void OneMilliSecondControlInterrupt(UArg arg0) { ControlMessageStruc Message; - bool retcode = false; ROM_IntMasterDisable(); if (ControlRestart == true) { @@ -237,7 +238,7 @@ void OneMilliSecondControlInterrupt(UArg arg0) Message.tick = UsersysTickGet(); Message.msglen = sizeof(ControlMessageStruc); if (ControlMsgQ != NULL) - retcode = Mailbox_post(ControlMsgQ , &Message, BIOS_NO_WAIT); + Mailbox_post(ControlMsgQ , &Message, BIOS_NO_WAIT); ROM_TimerIntClear(Control_timerBase, TIMER_TIMA_TIMEOUT); // Clear the timer interrupt // @@ -266,27 +267,27 @@ uint32_t ControlLoop(uint32_t tick) { case eOneMillisecond: ControlDatalog[Device_i] = ControlArray[Device_i].ControlDataReadPtr( ControlArray[Device_i].Parameter1,ControlArray[Device_i].Parameter2); - ControlArray[Device_i].ControlCallbackPtr(Device_i, ControlDatalog[Device_i]); + ControlArray[Device_i].ControlCallbackPtr(ControlArray[Device_i].IfIndex, ControlDatalog[Device_i]); break; case eTenMilliSecond: if (Ten_msTick) { ControlDatalog[Device_i] = ControlArray[Device_i].ControlDataReadPtr( ControlArray[Device_i].Parameter1,ControlArray[Device_i].Parameter2); - ControlArray[Device_i].ControlCallbackPtr(Device_i, ControlDatalog[Device_i]); + ControlArray[Device_i].ControlCallbackPtr(ControlArray[Device_i].IfIndex, ControlDatalog[Device_i]); } break; case eHunderdMillisecond: if (Hundred_msTick) { ControlDatalog[Device_i] = ControlArray[Device_i].ControlDataReadPtr( ControlArray[Device_i].Parameter1,ControlArray[Device_i].Parameter2); - ControlArray[Device_i].ControlCallbackPtr(Device_i, ControlDatalog[Device_i]); + ControlArray[Device_i].ControlCallbackPtr(ControlArray[Device_i].IfIndex, ControlDatalog[Device_i]); } break; case eOneSecond: if (Onesecond_Tick) { ControlDatalog[Device_i] = ControlArray[Device_i].ControlDataReadPtr( ControlArray[Device_i].Parameter1,ControlArray[Device_i].Parameter2); - ControlArray[Device_i].ControlCallbackPtr(Device_i, ControlDatalog[Device_i]); + ControlArray[Device_i].ControlCallbackPtr(ControlArray[Device_i].IfIndex, ControlDatalog[Device_i]); } break; default: diff --git a/Software/Embedded_SW/Embedded/Modules/Control/control.h b/Software/Embedded_SW/Embedded/Modules/Control/control.h index 23bd13231..9322f562e 100644 --- a/Software/Embedded_SW/Embedded/Modules/Control/control.h +++ b/Software/Embedded_SW/Embedded/Modules/Control/control.h @@ -11,7 +11,7 @@ #include "include.h" //typedef uint32_t (* DeviceDataFunction)(uint32_t deviceID, uint32_t *Value); -typedef uint32_t (* ControlCBFunction)(uint32_t deviceID, uint32_t ReadValue); +typedef uint32_t (* ControlCBFunction)(uint32_t IfIndex, uint32_t ReadValue); typedef uint32_t (* DataReadCBFunction)( uint32_t Parameter1, uint32_t Parameter2); typedef enum { eNoControl = 0, @@ -20,12 +20,23 @@ typedef enum { eHunderdMillisecond = 100, eOneSecond = 1000 }CTRL_TIMING_ENUM; +typedef enum +{ + IfTypeNone, + IfTypeThread, + IfTypeWinder, + IfTypeIDS, + IfTypeHeaters, + IfTypeWaste, + IfTypeMotors, + MAX_INTERFACE_TYPES +}SYSTEM_INTERFACE_TYPES_ID_ENUM; void ControlInit(void); void ControlStop(void); void ControlStart(void); -uint32_t AddControlCallback( ControlCBFunction Callback, CTRL_TIMING_ENUM CtrlFrequency, DataReadCBFunction DriverfPtr, uint32_t Parameter1, uint32_t Parameter2 ); +uint32_t AddControlCallback( ControlCBFunction Callback, CTRL_TIMING_ENUM CtrlFrequency, DataReadCBFunction DriverfPtr, uint32_t IfIndex, uint32_t Parameter1, uint32_t Parameter2 ); int RemoveControlCallback(uint32_t deviceId, ControlCBFunction Callback ); uint32_t TemplateDataReadCBFunction (uint32_t deviceId, uint32_t Parameter1, uint32_t Parameter2); diff --git a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c index 1ccfd3df8..ba0390144 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c +++ b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c @@ -3,6 +3,7 @@ * Control module * ************************************************************************************************************************/ +#include <Container.h> #include <DataDef.h> #include "include.h" #include "GeneralHardware.h" @@ -11,7 +12,6 @@ #include "control/control.h" #include "heaters/heaters_ex.h" #include "PMR/common/MessageContainer.pb-c.h" -#include "Modules/Stubs_Handler/Container.h" #include "PMR/Hardware/UploadHardWareConfigurationRequest.pb-c.h" #include "PMR/Hardware/UploadHardWareConfigurationResponse.pb-c.h" #include "PMR/Hardware/SystemResetRequest.pb-c.h" diff --git a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.h b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.h index 8deaf7586..0453cc2c8 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.h +++ b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.h @@ -1,10 +1,10 @@ #ifndef GENERALHARDWARE_H #define GENERALHARDWARE_H +#include "../../Communication/Container.h" #include "../../DataDef.h" #include "include.h" #include "PMR/common/MessageContainer.pb-c.h" -#include "Modules/Stubs_Handler/Container.h" typedef enum { diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c index 5dee1301d..2ea54dc90 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c @@ -42,6 +42,7 @@ typedef struct HeatersControlMessage{ /******************** GLOBAL PARAMETERS ********************************************/ HeaterCommand HeaterCmd[MAX_HEATERS_NUM] = {}; +uint32_t ControlIdtoHeaterId [MAX_HEATERS_NUM] = {0xFF}; int NumberOFSlicesInUse = 0; bool HeatersRestart = false; @@ -185,7 +186,7 @@ uint32_t PrepareHeater(int HeaterId, uint32_t SetTemperatue) HeaterPIDConfig[HeaterId].m_mesuredParam = 0; HeaterPIDConfig[HeaterId].m_preError = 0; HeaterPIDConfig[HeaterId].m_SetParam = SetTemperatue;//need to update SetParams on presegment stage - AddControlCallback( HeaterControlCBFunction, eHunderdMillisecond,TemperatureSensorRead,HeaterId,0); + ControlIdtoHeaterId [HeaterId] = AddControlCallback( HeaterControlCBFunction, eHunderdMillisecond,TemperatureSensorRead,(IfTypeHeaters*0x100+HeaterId),HeaterId,0); return OK; } @@ -196,22 +197,37 @@ uint32_t PrepareHeater(int HeaterId, uint32_t SetTemperatue) * initialized all global data */ -uint32_t HeaterControlCBFunction(uint32_t deviceID, uint32_t ReadValue) +uint32_t HeaterControlCBFunction(uint32_t IfIndex, uint32_t ReadValue) { - int index=MAX_HEATERS_NUM; + int i,index=MAX_HEATERS_NUM; static bool InitialHeating = true; char str[100]; uint8_t len = 0; - - index = deviceID; + if (IfIndex>>8 != IfTypeHeaters) + { + LOG_ERROR (IfIndex, "Wrong Interface type"); + return 0xFFFFFFFF; + } + index = IfIndex&0xFF; + /*for (i=0;i<MAX_HEATERS_NUM;i++) + if (ControlIdtoHeaterId[i] == deviceID) + { + index = i; + break; + } + if (index==MAX_HEATERS_NUM) + { + LOG_ERROR (deviceID, "No Heater for device"); + return 0xFFFFFFFF; + }*/ if (HeaterCmd[index].targettemperatue == 0) { LOG_ERROR (0, "unconfigured"); return ERROR; } static uint32_t Temperature[2] = {0}; - if (deviceID<2) - Temperature[deviceID] = ReadValue; + if (index<2) + Temperature[index] = ReadValue; HeatingTestSendResonse(0, false,GetHeaterState(HARDWARE_PID_CONTROL_TYPE__DryerHeater1000w),GetHeaterState(HARDWARE_PID_CONTROL_TYPE__DryerHeater200w1), Temperature[0],Temperature[1], HeaterPIDConfig[HARDWARE_PID_CONTROL_TYPE__DryerHeater1000w].m_calculatedError, HeaterPIDConfig[HARDWARE_PID_CONTROL_TYPE__DryerHeater200w1].m_calculatedError,"Standard"); diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Calculate.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Calculate.c index e1e0c84dc..3da0ddee3 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Calculate.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Calculate.c @@ -1,4 +1,5 @@ +#include <Container.h> #include <PMR/Common/MessageContainer.pb-c.h> #include <PMR/Stubs/CalculateRequest.pb-c.h> #include <PMR/Stubs/CalculateResponse.pb-c.h> @@ -7,7 +8,6 @@ #include "Drivers/USB_Communication/USBCDCD.h" #include "drivers/twine_graphicslib/graphics_adapter.h" -#include "Container.h" void Stub_CalculateRequest(MessageContainer* requestContainer) { diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Container.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Container.c deleted file mode 100644 index 1b1db8189..000000000 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Container.c +++ /dev/null @@ -1,180 +0,0 @@ -#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 "Stub_FPGAReadBackReg.h" -#include "Stub_FPGAReadVersion.h" -#include "Stub_L6470.h" -#include "Stub_Motor.h" -#include "Stub_HW_Version.h" - -#include "General/GeneralHardware.h" -#include "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__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__DebugLogRequest: - ReportInitMessage(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__SystemResetRequest: - HWSystemResetRequest(requestContainer); - break; - - default: - //unsupported message type !! - break; - } -} diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Container.h b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Container.h deleted file mode 100644 index 2c5d9fa60..000000000 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Container.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef CONTAINER_H -#define CONTAINER_H - -MessageContainer createContainer(MessageType type, char* token, protobuf_c_boolean completed, void* response, size_t (*packPtr)(void*, uint8_t*), size_t (*sizePtr)(void*)); -void receive_callback(char* buffer, size_t length); - -#endif //CONTAINER_H diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c index df59f416a..e38abdab3 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c @@ -1,4 +1,5 @@ +#include <Container.h> #include <PMR/Common/MessageContainer.pb-c.h> #include <PMR/Stubs/ProgressRequest.pb-c.h> #include <PMR/Stubs/ProgressResponse.pb-c.h> @@ -8,7 +9,6 @@ #include "Drivers/USB_Communication/USBCDCD.h" //#include "graphics_adapter.h" -#include "Container.h" void Stub_ProgressRequest(MessageContainer* requestContainer) { diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Cartridge.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Cartridge.c index f0dc2436a..c79434635 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Cartridge.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Cartridge.c @@ -1,5 +1,6 @@ +#include <Container.h> #include <PMR/Common/MessageContainer.pb-c.h> #include <PMR/Stubs/StubCartridgeReadRequest.pb-c.h> #include <PMR/Stubs/StubCartridgeReadResponse.pb-c.h> @@ -13,7 +14,6 @@ #include "drivers/twine_graphicslib/graphics_adapter.h" -#include "Container.h" #include "Stub_Status.h" void Stub_CartridgeReadRequest(MessageContainer* requestContainer) diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Dispenser.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Dispenser.c index 9c37ec330..fc9393e23 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Dispenser.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Dispenser.c @@ -1,5 +1,6 @@ +#include <Container.h> #include <PMR/Common/MessageContainer.pb-c.h> #include <PMR/Stubs/StubDispenserRequest.pb-c.h> #include <PMR/Stubs/StubDispenserResponse.pb-c.h> @@ -10,7 +11,6 @@ #include "drivers/twine_graphicslib/graphics_adapter.h" -#include "Container.h" #include "Stub_Status.h" void Stub_DispenserRequest(MessageContainer* requestContainer) diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_ExtFlash.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_ExtFlash.c index 96a8e9322..cf50b70ab 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_ExtFlash.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_ExtFlash.c @@ -1,4 +1,5 @@ +#include <Container.h> #include <PMR/Common/MessageContainer.pb-c.h> #include <PMR/Stubs/StubExtFlashReadRequest.pb-c.h> #include <PMR/Stubs/StubExtFlashReadResponse.pb-c.h> @@ -20,7 +21,6 @@ #include "drivers/twine_graphicslib/graphics_adapter.h" -#include "Container.h" #include "Stub_Status.h" diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_FPGARWReg.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_FPGARWReg.c index d71fa764a..65cd3e52e 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_FPGARWReg.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_FPGARWReg.c @@ -1,4 +1,5 @@ +#include <Container.h> #include <DataDef.h> #include <PMR/Stubs/StubFpgaReadRegRequest.pb-c.h> #include <PMR/Stubs/StubFpgaReadRegResponse.pb-c.h> @@ -19,7 +20,6 @@ #include "MessageContainer.pb-c.h" -#include "Container.h" #include "Stub_Status.h" #include "drivers/FPGA/FPGA.h" #include "drivers/FPGA/FPGA_Comm.h" diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_FPGAReadBackReg.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_FPGAReadBackReg.c index 90140afbf..1c5769b62 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_FPGAReadBackReg.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_FPGAReadBackReg.c @@ -1,4 +1,5 @@ +#include <Container.h> #include <DataDef.h> #include <PMR/Stubs/StubFPGAReadBackRegRequest.pb-c.h> #include <PMR/Stubs/StubFPGAReadBackRegResponse.pb-c.h> @@ -16,7 +17,6 @@ #include "MessageContainer.pb-c.h" -#include "Container.h" #include "Stub_Status.h" #include "drivers/FPGA/FPGA.h" diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_FPGAReadVersion.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_FPGAReadVersion.c index 3c719bc59..cfbce40f1 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_FPGAReadVersion.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_FPGAReadVersion.c @@ -1,4 +1,5 @@ +#include <Container.h> #include <DataDef.h> #include <PMR/Stubs/StubFPGAReadVersionResponse.pb-c.h> #include <PMR/Stubs/StubFPGAReadVersionRequest.pb-c.h> @@ -16,7 +17,6 @@ #include "MessageContainer.pb-c.h" -#include "Container.h" #include "Stub_Status.h" #include "drivers/FPGA/FPGA.h" diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_GPIO.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_GPIO.c index 362be2ba8..9e052aa78 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_GPIO.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_GPIO.c @@ -1,3 +1,4 @@ +#include <Container.h> #include <DataDef.h> #include "include.h" @@ -26,7 +27,6 @@ #include "drivers/twine_graphicslib/graphics_adapter.h" -#include "Container.h" #include <Modules/Stubs_Handler/User_Leds.h> #include "Stub_Status.h" diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_HW_Version.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_HW_Version.c index 7bc1aa857..bd59ee2a0 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_HW_Version.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_HW_Version.c @@ -1,4 +1,5 @@ +#include <Container.h> #include <DataDef.h> #include <PMR/Stubs/StubHWVersionResponse.pb-c.h> #include <PMR/Stubs/StubHWVersionRequest.pb-c.h> @@ -16,7 +17,6 @@ #include "MessageContainer.pb-c.h" -#include "Container.h" #include "Stub_Status.h" #include "drivers/FPGA/FPGA.h" #include "driverlib/rom_map.h" diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Heater.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Heater.c index 80f9cc7c6..d72a749b1 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Heater.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Heater.c @@ -1,5 +1,6 @@ +#include <Container.h> #include <DataDef.h> #include <PMR/Common/MessageContainer.pb-c.h> #include <PMR/Stubs/StubHeaterRequest.pb-c.h> @@ -18,7 +19,6 @@ #include "drivers/twine_graphicslib/graphics_adapter.h" -#include "Container.h" #include "Stub_Status.h" #include "Drivers/Heater/Heater.h" diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_L6470.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_L6470.c index 1508d2d58..dcec8cade 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_L6470.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_L6470.c @@ -1,4 +1,5 @@ +#include <Container.h> #include <DataDef.h> #include <PMR/Stubs/StubL6470DriverResponse.pb-c.h> #include <PMR/Stubs/StubL6470DriverRequest.pb-c.h> @@ -16,7 +17,6 @@ #include "MessageContainer.pb-c.h" -#include "Container.h" #include "Stub_Status.h" //#include "drivers/FPGA/FPGA.h" #include "drivers/SPI/SPI_Comm.h" diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Motor.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Motor.c index a56ae348b..506eb4a70 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Motor.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Motor.c @@ -1,4 +1,5 @@ +#include <Container.h> #include <DataDef.h> #include <PMR/Stubs/StubMotorInitRequest.pb-c.h> #include <PMR/Stubs/StubMotorInitResponse.pb-c.h> @@ -33,7 +34,6 @@ #include "MessageContainer.pb-c.h" -#include "Container.h" #include "Stub_Status.h" #include "drivers/FPGA/FPGA.h" #include "drivers/SPI/SPI_Comm.h" diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_MotorEncoder.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_MotorEncoder.c index ebc48bf4d..bcc5e16fb 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_MotorEncoder.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_MotorEncoder.c @@ -1,4 +1,5 @@ +#include <Container.h> #include <DataDef.h> #include <PMR/Common/MessageContainer.pb-c.h> #include <PMR/Stubs/StubMotorEncoderRequest.pb-c.h> @@ -17,7 +18,6 @@ #include "drivers/twine_graphicslib/graphics_adapter.h" -#include "Container.h" #include "Stub_Status.h" void Stub_MotorEncoderRequest(MessageContainer* requestContainer) diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_OptLimitSwitch.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_OptLimitSwitch.c index 84878c660..a1fdeb390 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_OptLimitSwitch.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_OptLimitSwitch.c @@ -1,5 +1,6 @@ +#include <Container.h> #include <DataDef.h> #include <PMR/Common/MessageContainer.pb-c.h> #include <PMR/Stubs/StubOptLimitSwitchRequest.pb-c.h> @@ -18,7 +19,6 @@ #include "drivers/twine_graphicslib/graphics_adapter.h" -#include "Container.h" #include "Stub_Status.h" void Stub_OptLimitSwitchRequest(MessageContainer* requestContainer) diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_SteperMotor.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_SteperMotor.c index 8fd6e0484..78fd2ef3b 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_SteperMotor.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_SteperMotor.c @@ -1,5 +1,6 @@ +#include <Container.h> #include <DataDef.h> #include <PMR/Common/MessageContainer.pb-c.h> #include <PMR/Stubs/StubSteperMotorRequest.pb-c.h> @@ -18,7 +19,6 @@ #include "drivers/twine_graphicslib/graphics_adapter.h" -#include "Container.h" #include "Stub_Status.h" void Stub_SteperMotorRequest(MessageContainer* requestContainer) diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Valve.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Valve.c index b1cba49e5..86460f119 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Valve.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Valve.c @@ -1,4 +1,5 @@ +#include <Container.h> #include <DataDef.h> #include <PMR/Common/MessageContainer.pb-c.h> #include <PMR/Stubs/StubValveRequest.pb-c.h> @@ -17,8 +18,6 @@ #include "drivers/twine_graphicslib/graphics_adapter.h" -#include "Container.h" - #include "Stub_Status.h" void Stub_ValveRequest(MessageContainer* requestContainer) diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c index fb9740dec..92037d0b5 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c @@ -49,11 +49,17 @@ uint32_t ThreadPreSegmentState(void *JobDetails); //////////////////////////////////////////////////////////////////////////// -uint32_t ThreadSpeedControlCBFunction(uint32_t deviceID, uint32_t ReadValue) +uint32_t ThreadSpeedControlCBFunction(uint32_t IfIndex, uint32_t ReadValue) { //read value is the dancer angle - int i,index=MAX_THREAD_MOTORS_NUM; - for (i=0;i<MAX_THREAD_MOTORS_NUM;i++) + int index=MAX_THREAD_MOTORS_NUM; + if (IfIndex>>8 != IfTypeThread) + { + LOG_ERROR (IfIndex, "Wrong Interface type"); + return 0xFFFFFFFF; + } + index = IfIndex&0xFF; +/* for (i=0;i<MAX_THREAD_MOTORS_NUM;i++) if (ControlIdtoMotorId[i] == deviceID) { index = i; @@ -64,6 +70,7 @@ uint32_t ThreadSpeedControlCBFunction(uint32_t deviceID, uint32_t ReadValue) LOG_ERROR (deviceID, "No motor for device"); return 0xFFFFFFFF; } + */ if(MotorControlConfig[index].m_isEnabled && (MotorControlConfig[index].m_SetParam != 0)) { MotorControlConfig[index].m_mesuredParam = ReadValue; @@ -80,10 +87,9 @@ uint32_t ThreadSpeedControlCBFunction(uint32_t deviceID, uint32_t ReadValue) //SetMotorFreq (index, MotorControlConfig[index].m_calculatedError); } - return OK; } -uint32_t ThreadControlCBFunction(uint32_t MotorId, uint32_t ReadValue) +uint32_t ThreadControlCBFunction(uint32_t IfIndex, uint32_t ReadValue) { //#define MAX_CONTROL_SAMPLES 6 //extern uint32_t MotorSamples[MAX_THREAD_MOTORS_NUM][MAX_CONTROL_SAMPLES]; @@ -94,7 +100,14 @@ uint32_t ThreadControlCBFunction(uint32_t MotorId, uint32_t ReadValue) int Pid_Id,DancerId; int32_t TranslatedReadValue, avreageSampleValue = 0; double NormalizedError; - for (i=0;i<MAX_THREAD_MOTORS_NUM;i++) + if (IfIndex>>8 != IfTypeThread) + { + LOG_ERROR (IfIndex, "Wrong Interface type"); + return 0xFFFFFFFF; + } + index = IfIndex&0xFF; + + /*for (i=0;i<MAX_THREAD_MOTORS_NUM;i++) if (ControlIdtoMotorId[i] == MotorId) { index = i; @@ -104,7 +117,7 @@ uint32_t ThreadControlCBFunction(uint32_t MotorId, uint32_t ReadValue) { LOG_ERROR (MotorId, "No motor for device"); return 0xFFFFFFFF; - } + }*/ if(MotorControlConfig[index].m_isEnabled ) { @@ -181,22 +194,23 @@ uint32_t ThreadInitialTestStub(HardwareMotor * request) MotorControlConfig[Motor_i].m_preError = 0; MotorControlConfig[Motor_i].m_SetParam = 0;//need to update SetParams on presegment stage - MotorSetDirection(HW_Motor_Id,MotorsCfg[HW_Motor_Id].directionthreadwize); + MotorSetDirection((TimerMotors_t)HW_Motor_Id,MotorsCfg[HW_Motor_Id].directionthreadwize); #ifdef DEBUG_TEST_FUNCTIONS + if (Motor_i == FEEDER_MOTOR) // dryer motor is speed controlled. later a speed sensor will be utilized, but for now it will not be controlled - ControlIdtoMotorId[Motor_i] = AddControlCallback(ThreadControlCBFunction, eOneMillisecond,Control_Read_Dancer_Position,ThreadMotorIdToDancerId[Motor_i],Motor_i); + ControlIdtoMotorId[Motor_i] = AddControlCallback(ThreadControlCBFunction, eOneMillisecond,Control_Read_Dancer_Position,(IfTypeThread*0x100+Motor_i),ThreadMotorIdToDancerId[Motor_i],Motor_i); /*if (HW_Motor_Id == HARDWARE_MOTOR_TYPE__MOTO_DRYER_DRIVING) // dryer motor is speed controlled. later a speed sensor will be utilized, but for now it will not be controlled - //AddControlCallback(ThreadSpeedControlCBFunction, eOneMillisecond,MotorGetSpeed,ThreadMotorIdToMotorId[Motor_i],0); + //AddControlCallback(ThreadSpeedControlCBFunction, eOneMillisecond,MotorGetSpeed,(IfTypeThread*0x100+Motor_i),ThreadMotorIdToMotorId[Motor_i],0); // continue; AddControlCallback(ThreadControlCBFunction, eOneMillisecond,Control_Read_Dancer_Position,ThreadMotorIdToDancerId[Motor_i],Motor_i); else if ((HW_Motor_Id == HARDWARE_MOTOR_TYPE__MOTO_WINDER)||(HW_Motor_Id == HARDWARE_MOTOR_TYPE__MOTO_LDRIVING)||(HW_Motor_Id == HARDWARE_MOTOR_TYPE__MOTO_RDRIVING)) - AddControlCallback(ThreadControlCBFunction, eOneMillisecond,Control_Read_Dancer_Position,ThreadMotorIdToDancerId[Motor_i],Motor_i);*/ + AddControlCallback(ThreadControlCBFunction, eOneMillisecond,Control_Read_Dancer_Position,(IfTypeThread*0x100+Motor_i),ThreadMotorIdToDancerId[Motor_i],Motor_i);*/ #else if (Motor_i == HARDWARE_MOTOR_TYPE__MOTO_DRYER_DRIVING) // dryer motor is speed controlled. later a speed sensor will be utilized, but for now it will not be controlled continue; - //AddControlCallback(ThreadSpeedControlCBFunction, eOneMillisecond,MotorGetSpeed,ThreadMotorIdToMotorId[Motor_i],Motor_i); + //AddControlCallback(ThreadSpeedControlCBFunction, eOneMillisecond,MotorGetSpeed,(IfTypeThread*0x100+Motor_i),ThreadMotorIdToMotorId[Motor_i],Motor_i); else if ((Motor_i == HARDWARE_MOTOR_TYPE__MOTO_WINDER)||(Motor_i == HARDWARE_MOTOR_TYPE__MOTO_LDRIVING)||(Motor_i == HARDWARE_MOTOR_TYPE__MOTO_RDRIVING)) - AddControlCallback(ThreadControlCBFunction, eOneMillisecond,Control_Read_Dancer_Position,ThreadMotorIdToDancerId[Motor_i],Motor_i); + AddControlCallback(ThreadControlCBFunction, eOneMillisecond,Control_Read_Dancer_Position,(IfTypeThread*0x100+Motor_i),ThreadMotorIdToDancerId[Motor_i],Motor_i); #endif } Winder_Prepare(); |
