aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2018-04-22 13:58:32 +0300
committerShlomo Hecht <shlomo@twine-s.com>2018-04-22 13:58:32 +0300
commit540272c93c7d0b4a12ea797c996f2c9ddf2a5bbb (patch)
treec77ea96deed628c118bb235bc16150846c165d49 /Software/Embedded_SW/Embedded/Modules
parent4df1724226c0d0941b970dbe71b1476e3c3e9902 (diff)
downloadTango-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')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/DriverWithCallbackExample.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.h4
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/control.c15
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/control.h15
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.h2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c30
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Calculate.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Container.c180
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Container.h7
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Cartridge.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Dispenser.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_ExtFlash.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_FPGARWReg.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_FPGAReadBackReg.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_FPGAReadVersion.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_GPIO.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_HW_Version.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Heater.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_L6470.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Motor.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_MotorEncoder.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_OptLimitSwitch.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_SteperMotor.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Valve.c3
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c40
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();