aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2020-02-04 18:51:57 +0200
committerShlomo Hecht <shlomo@twine-s.com>2020-02-04 18:51:57 +0200
commitbee3522e23c95021a9637669a8091069af98e0c4 (patch)
tree6b3f0148febe174de2b5e5a1baab359f7d1dd5e2 /Software/Embedded_SW/Embedded
parent3c241f9308d9a9f45278990ae19ef4b48c8240fe (diff)
downloadTango-bee3522e23c95021a9637669a8091069af98e0c4.tar.gz
Tango-bee3522e23c95021a9637669a8091069af98e0c4.zip
Version 1.4.6.8: remove most of head/whs ifdefs, checked to be working. fix control for missed milliseconds calls and more
Diffstat (limited to 'Software/Embedded_SW/Embedded')
-rw-r--r--Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c5
-rw-r--r--Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c2
-rw-r--r--Software/Embedded_SW/Embedded/Common/Utilities/idle_task.c7
-rw-r--r--Software/Embedded_SW/Embedded/Common/report/filter.c2
-rw-r--r--Software/Embedded_SW/Embedded/Common/report/reportInit.c110
-rw-r--r--Software/Embedded_SW/Embedded/DataDef.h8
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c5
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.h8
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/DAC/Blower.c44
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/I2C_Head_Mux.c3
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/PT100/Head_PT100_ADC.c34
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C.h3
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.c49
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_ADS122_PT100/ADS122X04_Driver.c6
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/EEPROM/WHS_EEPROM.c6
-rw-r--r--Software/Embedded_SW/Embedded/Embedded.cfg10
-rw-r--r--Software/Embedded_SW/Embedded/Main.c6
-rw-r--r--Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c6
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c56
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/control.c30
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticActions.c48
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c169
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c15
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/process.c16
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_init.c18
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c70
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c97
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/StubRealTimeUsage.c4
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c10
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c11
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c57
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Waste/newWHS_init.c2
32 files changed, 515 insertions, 402 deletions
diff --git a/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c
index 8aabafd2e..873c89b7e 100644
--- a/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c
+++ b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c
@@ -715,8 +715,10 @@ FRESULT FileWrite(void * buffer, uint16_t size,char *path, uint32_t timeout)
Fresult = f_write(FileHandle,buffer,size,&Bytes );
if(Fresult != FR_OK)
{
- LOG_ERROR (Fresult,"fread error");
+ LOG_ERROR (Fresult,"fwrite error");
}
+ //LOG_ERROR (Bytes,"f_write ok no of bytes");
+ Report("f_write ok no of bytes", __FILE__, __LINE__, Bytes, RpWarning, (int)size, 0);
f_close(FileHandle);
}
else
@@ -762,6 +764,7 @@ FRESULT FileRead(char *path, uint32_t *Size, void **Buffer)
{
*Buffer = buffer;
*Size = (uint32_t)fno->fsize;
+ Report("f_read ok no of bytes", __FILE__, __LINE__, Bytes, RpWarning, (int)fno->fsize, 0);
}
else
{
diff --git a/Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c b/Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c
index ec3bc602e..25f5927e7 100644
--- a/Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c
+++ b/Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c
@@ -20,7 +20,7 @@ typedef struct
} TangoVersion_t;
-TangoVersion_t _gTangoVersion = {1,4,6,7};
+TangoVersion_t _gTangoVersion = {1,4,6,8};
#define BUILD_DATE __DATE__
char Dat[50] = BUILD_DATE;
char _gTangoName [MAX_STRING_LEN] = "Tango01 ";//d
diff --git a/Software/Embedded_SW/Embedded/Common/Utilities/idle_task.c b/Software/Embedded_SW/Embedded/Common/Utilities/idle_task.c
index 437e06815..8d1040ea2 100644
--- a/Software/Embedded_SW/Embedded/Common/Utilities/idle_task.c
+++ b/Software/Embedded_SW/Embedded/Common/Utilities/idle_task.c
@@ -199,9 +199,12 @@ uint32_t unload_max_count=0;
#endif
}
}
- void IdleTaskGetLoadTable (uint32_t *Buffer)
+ void IdleTaskGetLoadTable (uint32_t *aBuffer)
{
- memcpy (Buffer,idle_load_table,sizeof(idle_load_table));
+ int i;
+ for (i=0;i<100;i++)
+ aBuffer[i] = idle_load_table[i];
+ //memcpy (aBuffer,idle_load_table,sizeof(idle_load_table));
}
uint32_t MillisecCounter = 0;
uint32_t ControlCounter = 0;
diff --git a/Software/Embedded_SW/Embedded/Common/report/filter.c b/Software/Embedded_SW/Embedded/Common/report/filter.c
index f0eb5a140..753123ee7 100644
--- a/Software/Embedded_SW/Embedded/Common/report/filter.c
+++ b/Software/Embedded_SW/Embedded/Common/report/filter.c
@@ -40,7 +40,7 @@ uint8_t filterTableSize;
uint8_t filterNumOfCurrentEntries;
/* The mask of currently enabled severity. */
-static ErrorSeverity SeverityLevel;
+ErrorSeverity SeverityLevel;
/* flag allows or dennies filter usage */
static bool filterDontUse;
diff --git a/Software/Embedded_SW/Embedded/Common/report/reportInit.c b/Software/Embedded_SW/Embedded/Common/report/reportInit.c
index a7d7c17ef..a9e940c8c 100644
--- a/Software/Embedded_SW/Embedded/Common/report/reportInit.c
+++ b/Software/Embedded_SW/Embedded/Common/report/reportInit.c
@@ -192,15 +192,54 @@ void SetupDebugDisributorsRequestFunc(MessageContainer* requestContainer)
responseContainer = createContainer(MESSAGE_TYPE__SetupDebugDisributorsResponse, requestContainer->token, true, &response, &setup_debug_disributors_response__pack, &setup_debug_disributors_response__get_packed_size);
container_buffer = my_malloc(message_container__get_packed_size(&responseContainer));
-
- if (request->has_debugdistributor == true )
- {
- status|=ReportSwitchPackageFilter(request->debugdistributor , request->distributoractive);
- }
- else
+ switch (request->debugdistributor )
{
- status = ERROR_CODE__INVALID_PARAMETER;
- ReportWithPackageFilter(GeneralFilter,"SetupDebugDisributorsRequest error",__FILE__,__LINE__,request->has_debugdistributor,RpWarning,0, 0);
+ case DEBUG_DISTRIBUTOR_TYPE__ControlFilter:
+ status|=ReportSwitchPackageFilter(ControlFilter , request->distributoractive);
+ break;
+ case DEBUG_DISTRIBUTOR_TYPE__HeatersFilter:
+ status|=ReportSwitchPackageFilter(HeatersFilter , request->distributoractive);
+ break;
+ case DEBUG_DISTRIBUTOR_TYPE__JobFilter:
+ status|=ReportSwitchPackageFilter(JobFilter , request->distributoractive);
+ break;
+ case DEBUG_DISTRIBUTOR_TYPE__WasteFilter:
+ status|=ReportSwitchPackageFilter(WasteFilter , request->distributoractive);
+ break;
+ case DEBUG_DISTRIBUTOR_TYPE__AlarmFilter:
+ status|=ReportSwitchPackageFilter(AlarmFilter , request->distributoractive);
+ break;
+ case DEBUG_DISTRIBUTOR_TYPE__DiagnosticsFilter:
+ status|=ReportSwitchPackageFilter(DiagnosticsFilter , request->distributoractive);
+ break;
+ case DEBUG_DISTRIBUTOR_TYPE__IDSFilter:
+ status|=ReportSwitchPackageFilter(IDSFilter , request->distributoractive);
+ break;
+ case DEBUG_DISTRIBUTOR_TYPE__ThreadFilter:
+ status|=ReportSwitchPackageFilter(ThreadFilter , request->distributoractive);
+ break;
+ case DEBUG_DISTRIBUTOR_TYPE__GeneralFilter:
+ status|=ReportSwitchPackageFilter(GeneralFilter , request->distributoractive);
+ break;
+ case DEBUG_DISTRIBUTOR_TYPE__CommFilter:
+ status|=ReportSwitchPackageFilter(CommFilter , request->distributoractive);
+ break;
+ case DEBUG_DISTRIBUTOR_TYPE__FPGAFilter:
+ status|=ReportSwitchPackageFilter(FPGAFilter , request->distributoractive);
+ break;
+ case DEBUG_DISTRIBUTOR_TYPE__LoadFilter:
+ status|=ReportSwitchPackageFilter(LoadFilter , request->distributoractive);
+ break;
+ case DEBUG_DISTRIBUTOR_TYPE__InitFilter:
+ status|=ReportSwitchPackageFilter(InitFilter , request->distributoractive);
+ break;
+ case DEBUG_DISTRIBUTOR_TYPE__MaintFilter:
+ status|=ReportSwitchPackageFilter(MaintFilter , request->distributoractive);
+ break;
+ default:
+ status = ERROR_CODE__INVALID_PARAMETER;
+ ReportWithPackageFilter(GeneralFilter,"SetupDebugDisributorsRequest error",__FILE__,__LINE__,request->has_debugdistributor,RpWarning,0, 0);
+ break;
}
if (status)
{
@@ -310,36 +349,33 @@ uint32_t SetDebugLogCategoryFunc(MessageContainer* requestContainer)
SetDebugLogCategoryResponse response = SET_DEBUG_LOG_CATEGORY_RESPONSE__INIT;
uint32_t status = ERROR;
- if (request->has_minimumcategory)
+ switch(request->minimumcategory)
{
- switch(request->minimumcategory)
- {
- case DEBUG_LOG_CATEGORY__Info:
- ReportSeveritySet(RpMessage);
- status = OK;
- break;
- case DEBUG_LOG_CATEGORY__Warning:
- ReportSeveritySet(RpWarning);
- status = OK;
- break;
- case DEBUG_LOG_CATEGORY__Error:
- ReportSeveritySet(RpError);
- status = OK;
- break;
- case DEBUG_LOG_CATEGORY__Critical:
- ReportSeveritySet(RpFatalError);
- status = OK;
- break;
- case DEBUG_LOG_CATEGORY__Debug:
- ReportSeveritySet(RpPrivate);
- status = OK;
- break;
- default:
- break;
- }
+ case DEBUG_LOG_CATEGORY__Info:
+ ReportSeveritySet(RpMessage);
+ status = OK;
+ break;
+ case DEBUG_LOG_CATEGORY__Warning:
+ ReportSeveritySet(RpWarning);
+ status = OK;
+ break;
+ case DEBUG_LOG_CATEGORY__Error:
+ ReportSeveritySet(RpError);
+ status = OK;
+ break;
+ case DEBUG_LOG_CATEGORY__Critical:
+ ReportSeveritySet(RpFatalError);
+ status = OK;
+ break;
+ case DEBUG_LOG_CATEGORY__Debug:
+ ReportSeveritySet(RpPrivate);
+ status = OK;
+ break;
+ default:
+ break;
}
- responseContainer = createContainer(MESSAGE_TYPE__SetDebugLogCategoryResponse, protobufToken, false, &response, &set_debug_log_category_response__pack, &set_debug_log_category_response__get_packed_size);
+ responseContainer = createContainer(MESSAGE_TYPE__SetDebugLogCategoryResponse, requestContainer->token, true, &response, &set_debug_log_category_response__pack, &set_debug_log_category_response__get_packed_size);
responseContainer.continuous = false;
if (status != OK)
{
@@ -429,7 +465,7 @@ STATUS ReportInit(ReportInitParams InitParams)
JobFilter = ReportAddFilterPackage("Job");
WasteFilter = ReportAddFilterPackage("Waste");
AlarmFilter = ReportAddFilterPackage("Alarm");
- DiagnosticsFilter = ReportAddFilterPackage("Diagnostics");
+ DiagnosticsFilter = ReportAddFilterPackage("Diagnost");
IDSFilter = ReportAddFilterPackage("IDS");
ThreadFilter = ReportAddFilterPackage("Thread");
GeneralFilter = ReportAddFilterPackage("General");
@@ -439,6 +475,6 @@ STATUS ReportInit(ReportInitParams InitParams)
InitFilter = ReportAddFilterPackage("Init");
MaintFilter = ReportAddFilterPackage("Maint");
// Filter = ReportAddFilterPackage("");
-
+ ReportSwitchPackageFilter(WasteFilter,REPORT_OFF);
return status;
}
diff --git a/Software/Embedded_SW/Embedded/DataDef.h b/Software/Embedded_SW/Embedded/DataDef.h
index 8e37577c9..a1d9fe52d 100644
--- a/Software/Embedded_SW/Embedded/DataDef.h
+++ b/Software/Embedded_SW/Embedded/DataDef.h
@@ -376,6 +376,14 @@ typedef enum
extern uint8_t Head_Type;
+//WHS types
+typedef enum
+{
+ WHS_TYPE_UNKNOWN,
+ WHS_TYPE_NEW,
+}WHS_TYPE;
+
+extern uint8_t WHS_Type;
typedef enum
{
diff --git a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c
index af326b4ed..c620cebdb 100644
--- a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c
+++ b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c
@@ -807,12 +807,17 @@ void Pumps_Control(PUMPS_ENUM Pump_Id, bool Direction) //1 - OPEN, 0 - CLOSE ??
{
// Waste Pump Control
case WASTECH_PUMP2:
+ if (WHS_Type == WHS_TYPE_UNKNOWN)
+ {
if (Direction == true)
ActivateCoolerPump();
else
DeActivateCoolerPump();
//F1_GPO_Reg.bits.F1_GPO_WASTECH_PUMP2 = Direction;
SecondaryPumpActive = Direction;
+ }
+ else
+ LOG_ERROR(WHS_Type,"Pump activated on new whs");
break;
case WHS_WTANKPUMP2:
F1_GPO_Reg.bits.F1_GPO_WHS_WTANKPUMP2 = Direction;
diff --git a/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.h b/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.h
index 0b2c60822..a24a6ee68 100644
--- a/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.h
+++ b/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.h
@@ -62,13 +62,7 @@ WHS_PT100_4_0X82_1,
#warning assuming that we won't use whs card without head card..
-//#if defined(Use_WHS_Card)
- #define MAX_TANGO_TEMPERATURE_SENSOR_ID MAX_WHS_CARD_TEMP_SENS_ID // WHS + Head cards
-/*#elif defined(Use_Head_Card)
- #define MAX_TANGO_TEMPERATURE_SENSOR_ID MAX_HEAD_CARD_TEMP_SENS_ID
-#else
- #define MAX_TANGO_TEMPERATURE_SENSOR_ID MAX_MAIN_CARD_TEMP_SENS_ID
-#endif*/
+#define MAX_TANGO_TEMPERATURE_SENSOR_ID MAX_WHS_CARD_TEMP_SENS_ID // WHS + Head cards
typedef enum
{
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/DAC/Blower.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/DAC/Blower.c
index 2dfae1ba4..a1ffa2475 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/DAC/Blower.c
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/DAC/Blower.c
@@ -152,14 +152,16 @@ uint32_t Turn_the_Blower_On()
blowerStatus = true;
voltage = Default_Voltage;
-
-#ifdef Use_WHS_Card
- Trigger_WHS_init_Blower();
- Trigger_SetWHSBlowerVoltage(Default_Voltage);
-#else
- status = Write_Control_Register();
- status |= Write_DAC_and_Input_Register(DAC_mV2Bits(Default_Voltage));
-#endif
+ if (WHS_Type == WHS_TYPE_UNKNOWN)
+ {
+ status = Write_Control_Register();
+ status |= Write_DAC_and_Input_Register(DAC_mV2Bits(Default_Voltage));
+ }
+ else //new WHS
+ {
+ Trigger_WHS_init_Blower();
+ Trigger_SetWHSBlowerVoltage(Default_Voltage);
+ }
return status;
}
@@ -167,11 +169,14 @@ uint32_t Turn_the_Blower_On()
uint32_t Control_Voltage_To_Blower(uint32_t mV)
{
uint32_t status = OK;
-#ifdef Use_WHS_Card
- Trigger_SetWHSBlowerVoltage(mV);
-#else
- status |= Write_DAC_and_Input_Register(DAC_mV2Bits(mV));
-#endif
+ if (WHS_Type == WHS_TYPE_UNKNOWN)
+ {
+ status |= Write_DAC_and_Input_Register(DAC_mV2Bits(mV));
+ }
+ else //new WHS
+ {
+ Trigger_SetWHSBlowerVoltage(mV);
+ }
voltage = mV;
return status;
@@ -181,11 +186,14 @@ uint32_t Turn_the_Blower_Off()
{
uint32_t status = OK;
-#ifdef Use_WHS_Card
- Trigger_SetWHSBlowerVoltage(0);
-#else
- status |= Write_DAC_and_Input_Register(0);
-#endif
+ if (WHS_Type == WHS_TYPE_UNKNOWN)
+ {
+ status |= Write_DAC_and_Input_Register(0);
+ }
+ else //new WHS
+ {
+ Trigger_SetWHSBlowerVoltage(0);
+ }
blowerStatus = false;
return status;
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/I2C_Head_Mux.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/I2C_Head_Mux.c
index 7efa8c65f..80411394b 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/I2C_Head_Mux.c
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/I2C_Head_Mux.c
@@ -18,6 +18,9 @@ uint32_t Select_Main_Head_Mux_Channel()
{
uint32_t status= OK;
+ if (Head_Type == HEAD_TYPE_SYLKO_WITHOUT_CARD)
+ return OK;
+
uint8_t Write_Buf[1];
if(Main_Mux_Flag != HEAD)
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/PT100/Head_PT100_ADC.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/PT100/Head_PT100_ADC.c
index 0733d5f5b..2b6510079 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/PT100/Head_PT100_ADC.c
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/PT100/Head_PT100_ADC.c
@@ -135,9 +135,7 @@ uint32_t HeadADCPT100_Reset(void)
{
//Reset the device
Write_Buf[0] = ADS122X_RESET_CMD;
- #ifdef Use_Head_Card
- Select_Main_Head_Mux_Channel();
- #endif
+ Select_Main_Head_Mux_Channel();
status |= I2C_Write_SensorId(I2C_ID_HEAD_CARD, i, Write_Buf, 1);
//status |= I2C_Write(I2C_ID_HEAD_CARD, I2C_ADC_ADS122C04_SLAVE_ADD, Write_Buf, 1);
//Wait at least (50 us + 32 · t(CLK)) after the RESET command is sent before sending any other command.
@@ -160,9 +158,7 @@ uint32_t HeadADCPT100_StartSync(TEMPERATURE_SENSOR_ID_ENUM SensorId)
Write_Buf[0] = ADS122X_START_CMD;
- #ifdef Use_Head_Card
- Select_Main_Head_Mux_Channel();
- #endif
+ Select_Main_Head_Mux_Channel();
Status |= I2C_Write_SensorId(I2C_ID_HEAD_CARD, SensorId, Write_Buf, 1);
//Status |= I2C_Write(I2C_ID_HEAD_CARD, I2C_ADC_ADS122C04_SLAVE_ADD, Write_Buf, 1);
@@ -180,9 +176,7 @@ uint32_t HeadADCPT100_PowerDown(TEMPERATURE_SENSOR_ID_ENUM SensorId)
Write_Buf[0] = ADS122X_POWERDOWN_CMD;
- #ifdef Use_Head_Card
- Select_Main_Head_Mux_Channel();
- #endif
+ Select_Main_Head_Mux_Channel();
Status |= I2C_Write_SensorId(I2C_ID_HEAD_CARD, SensorId, Write_Buf, 1);
//Status |= I2C_Write(I2C_ID_HEAD_CARD, I2C_ADC_ADS122C04_SLAVE_ADD, Write_Buf, 1);
@@ -193,7 +187,7 @@ uint32_t Data_ADC_Head = 0;
uint32_t HeadADCPT100_SendReadDataCommand(TEMPERATURE_SENSOR_ID_ENUM SensorId)
{
uint32_t Status = OK;
- uint8_t Write_Buf[1]= {0};
+ uint8_t Write_Buf[1]= 0;
uint8_t temp[3] = {0,0,0};
@@ -203,9 +197,7 @@ uint32_t HeadADCPT100_SendReadDataCommand(TEMPERATURE_SENSOR_ID_ENUM SensorId)
//Write_Buf[0] = ADS122X_RDATA_CMD;
Write_Buf[0] = ADS122X_RDATA_CMD;
- #ifdef Use_Head_Card
- Select_Main_Head_Mux_Channel();
- #endif
+ Select_Main_Head_Mux_Channel();
Status |= I2C_Write_SensorId(I2C_ID_HEAD_CARD, SensorId, Write_Buf, 1);
//Status |= I2C_Write(I2C_ID_HEAD_CARD, I2C_ADC_ADS122C04_SLAVE_ADD, Write_Buf, 1);
@@ -239,9 +231,7 @@ uint32_t HeadADCPT100_WriteReg(TEMPERATURE_SENSOR_ID_ENUM SensorId, uint8_t reg,
Write_Buf[0] = ADS122X_WRITE_CMD(reg);
Write_Buf[1] = writeValue;
- #ifdef Use_Head_Card
- Select_Main_Head_Mux_Channel();
- #endif
+ Select_Main_Head_Mux_Channel();
Status |= I2C_Write_SensorId(I2C_ID_HEAD_CARD, SensorId, Write_Buf, 2);
//Status |= I2C_Write(I2C_ID_HEAD_CARD, I2C_ADC_ADS122C04_SLAVE_ADD, Write_Buf, 2);
@@ -357,9 +347,7 @@ uint32_t HeadADCPT100_Config_callback(TEMPERATURE_SENSOR_ID_ENUM SensorId, uint3
if(HeadTempSensConfig[SensorId].Config == DONE)
return Status;
- #ifdef Use_Head_Card
- Select_Main_Head_Mux_Channel();
- #endif
+ Select_Main_Head_Mux_Channel();
switch(Stage)
{
@@ -511,9 +499,7 @@ uint32_t HeadCard_Toggle_PT100(TEMPERATURE_SENSOR_ID_ENUM SensorId)
if((SensorId < HEAD_PT100_ZONE_1_0X80_0) || (SensorId > MAX_HEAD_CARD_TEMP_SENS_ID))
return ERROR;
- #ifdef Use_Head_Card
- Select_Main_Head_Mux_Channel();
- #endif
+ Select_Main_Head_Mux_Channel();
if(Save_Sel_Status != HeadTempSensConfig[SensorId].SEL)
{
@@ -602,9 +588,7 @@ uint32_t HeadADCPT100_ReadReg(TEMPERATURE_SENSOR_ID_ENUM SensorId, uint8_t reg,
uint8_t Write_Buf[1];
- #ifdef Use_Head_Card
- Select_Main_Head_Mux_Channel();
- #endif
+ Select_Main_Head_Mux_Channel();
Write_Buf[0] = ADS122X_READ_CMD(reg);
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C.h b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C.h
index efb46c5be..a6599cbe8 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C.h
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C.h
@@ -30,6 +30,9 @@ void Trigger_Heater_Current_Read(void);
void Trigger_MidTank_Pressure_Read(void);
void Trigger_PT100_Read(void);
void Trigger_HeaterWriting(void);
+void Trigger_Head_Init_PT100(void);
+void Trigger_Head_Actuators_Control(uint32_t Act_ID, bool Active_Low_Pwr, bool Direction);
+void Trigger_InputsReading(void);
uint32_t Block_Main_MUX_TCA9548A_0xE4(); ////unused I2C MUX
extern uint8_t Main_Mux_Flag ;
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.c
index 450f3747f..a82c04a3a 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.c
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.c
@@ -38,6 +38,8 @@ typedef enum
HeaterWriting,
Inputs_Reading,// I/O
Outputs_Writing,
+ Head_Init_PT100,
+ Actuators_Control,
/* enum for WHS :*/
WHS_start,
@@ -118,6 +120,32 @@ void Trigger_PT100_Read(void)
return;
}
+void Trigger_Head_Init_PT100(void)
+{
+ I2C_ReadingMessageStruc I2C_ReadingMessage;
+ //uint8_t Midtank_i;
+
+ I2C_ReadingMessage.messageId = Head_Init_PT100;
+ if (I2C_ReadingMsgQ != NULL)
+ Mailbox_post(I2C_ReadingMsgQ , &I2C_ReadingMessage, BIOS_NO_WAIT);
+ return;
+}
+
+void Trigger_Head_Actuators_Control(uint32_t Act_ID, bool Active_Low_Pwr, bool Direction)
+{
+ I2C_ReadingMessageStruc I2C_ReadingMessage;
+ //uint8_t Midtank_i;
+
+ I2C_ReadingMessage.messageId = Actuators_Control;
+ I2C_ReadingMessage.parameter = Act_ID;
+ I2C_ReadingMessage.parameter2 = Active_Low_Pwr;
+ I2C_ReadingMessage.parameter3 = (uint8_t *)Direction;
+ if (I2C_ReadingMsgQ != NULL)
+ Mailbox_post(I2C_ReadingMsgQ , &I2C_ReadingMessage, BIOS_NO_WAIT);
+ return;
+}
+
+
void Trigger_HeaterWriting(void)
{
I2C_ReadingMessageStruc I2C_ReadingMessage;
@@ -129,6 +157,17 @@ void Trigger_HeaterWriting(void)
return;
}
+void Trigger_InputsReading(void)
+{
+ I2C_ReadingMessageStruc I2C_ReadingMessage;
+ //uint8_t Midtank_i;
+
+ I2C_ReadingMessage.messageId = Inputs_Reading;
+ if (I2C_ReadingMsgQ != NULL)
+ Mailbox_post(I2C_ReadingMsgQ , &I2C_ReadingMessage, BIOS_NO_WAIT);
+ return;
+
+}
void Trigger_WHS_init_IO(void)
{
@@ -351,10 +390,14 @@ void I2C_ReadingTask(UArg arg0, UArg arg1)
/* select the correct I2C bus */
if (I2C_ReadingMessage.messageId > WHS_start)
{
+ if (WHS_Type == WHS_TYPE_UNKNOWN)
+ continue;
Select_Main_WHS_Mux_Channel();
}
else
{
+ if (Head_Type == HEAD_TYPE_UNKNOWN)
+ continue;
Select_Main_Head_Mux_Channel();
}
@@ -377,6 +420,12 @@ void I2C_ReadingTask(UArg arg0, UArg arg1)
case HeaterWriting:
Write_Head_Card_Heaters_Commands();
break;
+ case Head_Init_PT100:
+ HeadADCPT100_SensorInitConfig();
+ break;
+ case Actuators_Control:
+ HeadCard_Actuators_Control(I2C_ReadingMessage.parameter, (bool)I2C_ReadingMessage.parameter2,(bool)I2C_ReadingMessage.parameter2);
+ break;
case Inputs_Reading:
Head_Read_IO_Reg(0x46, HIGH);//READ HEAD CARD LS
break;
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_ADS122_PT100/ADS122X04_Driver.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_ADS122_PT100/ADS122X04_Driver.c
index 4df4dc6c3..b6540df04 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_ADS122_PT100/ADS122X04_Driver.c
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_ADS122_PT100/ADS122X04_Driver.c
@@ -69,7 +69,7 @@ bool D_ADS122_ReadDataCommand(uint8_t i2cbus, uint8_t i2cadd, uint32_t* p_Data_A
Status |= I2C_Read(i2cbus, i2cadd, &temp, 3);
Data_ADS122X = (temp & 0xFF0000) >> 16 | (temp & 0xFF00) | (temp & 0x0000FF) << 16;//First send the MSB so we need to reorder the bytes
- *p_Data_ADS122X = CalculateTemperatures(Data_ADS122X);
+ //*p_Data_ADS122X = CalculateTemperatures(Data_ADS122X);
#warning what to do with the data ???????
return Status;
}
@@ -270,9 +270,7 @@ bool D_ADS122_InitConfigReg()
// if(HeadTempSensConfig[SensorId].Config == DONE)
// return Status;
//
-// #ifdef Use_Head_Card
// Select_Main_Head_Mux_Channel();
-// #endif
//
// switch(Stage)
// {
@@ -410,9 +408,7 @@ bool D_ADS122_InitConfigReg()
// if((SensorId < HEAD_PT100_ZONE_1_0X80_0) || (SensorId > MAX_HEAD_CARD_TEMP_SENS_ID))
// return ERROR;
//
-// #ifdef Use_Head_Card
// Select_Main_Head_Mux_Channel();
-// #endif
//
// if(Save_Sel_Status != HeadTempSensConfig[SensorId].SEL)
// {
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/EEPROM/WHS_EEPROM.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/EEPROM/WHS_EEPROM.c
index f36905ba1..1d7a788f6 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/EEPROM/WHS_EEPROM.c
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/EEPROM/WHS_EEPROM.c
@@ -15,6 +15,12 @@
//uint8_t WHS_Write_Buf[Max_WHS_buf_size +2];
+#ifdef Use_Whs_Card
+uint8_t WHS_Type = WHS_TYPE_NEW;
+#else
+ uint8_t WHS_Type = WHS_TYPE_UNKNOWN;
+#endif
+
#define MAX_ALLOWS_PAGE_WRITE 256
#define MIN_READ_BYTE 1
diff --git a/Software/Embedded_SW/Embedded/Embedded.cfg b/Software/Embedded_SW/Embedded/Embedded.cfg
index 195dd3e15..26fd2a980 100644
--- a/Software/Embedded_SW/Embedded/Embedded.cfg
+++ b/Software/Embedded_SW/Embedded/Embedded.cfg
@@ -152,25 +152,25 @@ Program.global.communication = Task.create("&communicationTask", CommRxTaskParam
var MillisecLowTaskParams = new Task.Params();
MillisecLowTaskParams.instance.name = "MilliSecondLow";
MillisecLowTaskParams.stackSize = 2048;
-MillisecLowTaskParams.priority = 4;
+MillisecLowTaskParams.priority = 5;
Program.global.millisecLow = Task.create("&MillisecLowTask", MillisecLowTaskParams);
var ControlLowTaskParams = new Task.Params();
ControlLowTaskParams.instance.name = "controlLow";
ControlLowTaskParams.stackSize = 4096;
-ControlLowTaskParams.priority = 5;
+ControlLowTaskParams.priority = 6;
Program.global.controlLow = Task.create("&controlLowTask", ControlLowTaskParams);
var DiagnosticsTaskParams = new Task.Params();
DiagnosticsTaskParams.instance.name = "Diagnostics";
-DiagnosticsTaskParams.priority = 6;
+DiagnosticsTaskParams.priority = 4;
DiagnosticsTaskParams.stackSize = 8192;
Program.global.Diagnostics = Task.create("&DiagnosticsTask", DiagnosticsTaskParams);
var ADCProcessTaskParams = new Task.Params();
ADCProcessTaskParams.instance.name = "adcProcess";
ADCProcessTaskParams.stackSize = 512;
-ADCProcessTaskParams.priority = 3;
+ADCProcessTaskParams.priority = 2;
Program.global.adcProcess = Task.create("&ADCProcessTask", ADCProcessTaskParams);
var ReportTaskParams = new Task.Params();
@@ -181,7 +181,7 @@ Program.global.report = Task.create("&reportService", ReportTaskParams);
var updateTaskParams = new Task.Params();
updateTaskParams.instance.name = "update";
-updateTaskParams.priority = 4;
+updateTaskParams.priority = 2;
Program.global.update = Task.create("&updateTask", updateTaskParams);
/* ================ Text configuration ================ */
diff --git a/Software/Embedded_SW/Embedded/Main.c b/Software/Embedded_SW/Embedded/Main.c
index 99e83a6aa..05c3d8c04 100644
--- a/Software/Embedded_SW/Embedded/Main.c
+++ b/Software/Embedded_SW/Embedded/Main.c
@@ -249,6 +249,7 @@ int main(void)
Init_All_I2C();
Block_Main_MUX_TCA9548A_0xE4();//unused, same i2c as head and whs cards
Check_Head_Type_Via_EEPROM();
+ //Check_WHS_Type_Via_EEPROM();
#ifndef EVALUATION_BOARD
STATUS_RED_LED_ON;
@@ -323,9 +324,8 @@ int main(void)
//Read_Speed_Sensor_TypeII();//must be delay between Set_Speed_Sensor_TypeII_Registers to Read_Speed_Sensor_TypeII
//Test_ADS120_Internal_Temperature_Sensor(0);
-#ifdef Use_Head_Card
- Head_IO_Init();
-#endif
+ if (Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD)
+ Head_IO_Init();
#ifndef EVALUATION_BOARD
Main_EEPROM_Read_Main_Card_SN();
diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
index a83d95fa8..c2e121348 100644
--- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
+++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
@@ -877,11 +877,7 @@ JobEndReasonEnum AlarmHandlingPrepareJob(void *CurrentJob)
if (HeaterCheckReady()==false)
{
#warning fit to new head with new alarms
-#ifdef Use_Head_Card
for (Heater_i=HEATER_TYPE__DryerAirHeater;Heater_i<HEATER_TYPE_MAX_HEATERS;Heater_i++)
-#else
- for (Heater_i=HEATER_TYPE__DryerAirHeater;Heater_i<MAX_HEATERS_NUM;Heater_i++)
-#endif
{
LoadHeaterState((HeaterType)Heater_i,&HeaterState);
if (HeaterState.setpoint)//temperature is set - heater active
@@ -1011,7 +1007,7 @@ uint32_t AlarmHandlingStart(void)
if ( AlarmHandlingActive == false)
{
AlarmHandlingActive = true;
- AlarmHandlingControlId = AddControlCallback("Alarm Handling",AlarmHandling_ControlTrigger,eTenMillisecond,TemplateDataReadCBFunction,0,0,0);
+ AlarmHandlingControlId = AddControlCallback("Alarm Handling",AlarmHandling_ControlTrigger,eHundredMillisecond,TemplateDataReadCBFunction,0,0,0);
}
return OK;
}
diff --git a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
index c8b4a306c..fdd5feef9 100644
--- a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
+++ b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
@@ -56,10 +56,8 @@
#include "Modules/General/buttons.h"
#include "Drivers/I2C_Communication/Head_Card/PT100/Head_PT100_ADC.h"
-#ifdef Use_WHS_Card
#include <Drivers/I2C_Communication/WHS_Card/D_ADS122_PT100/WHS_PT100_ADC.h>
#include <Drivers/I2C_Communication/I2C_Task.h>
-#endif
Task_Handle Millisecond_Task_Handle;
/******************** Definitions ********************************************/
@@ -606,9 +604,10 @@ uint32_t MillisecLowLoop(uint32_t tick)
OneHourTick = (tick%eOneHour == 0) ?true:false;
//gather Motor data from FPGA
//ROM_IntMasterDisable();
-
+ int StartPT100 = 0;
//Screw_ENC_Velocity_to_DAC(); - for testing the screw enc
-
+ if (Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD)
+ StartPT100 = TEMP_SENSE_ANALOG_DRYER_TEMP1;
if (Ten_msTick)
{
//Speed_Data = Calculate_Speed_Sensor_Velocity();
@@ -619,39 +618,14 @@ uint32_t MillisecLowLoop(uint32_t tick)
Trigger_HeaterWriting();
}
-#ifdef Use_Head_Card
if(Fifty_msTick)
{
Trigger_PT100_Read();//call every 50mSec (minimum delay 30mSec)
//Set_HeadCard_PT100();//call every 50mSec (minimum delay 30mSec)
}
-#endif
-/*#ifdef Use_Head_Card
- if (m20msecTick) //read odd PT1000
- {
- for (Sensor_i = HEAD_PT100_ZONE_1_0X80_0;Sensor_i < HEAD_PT100_ZONE_2_0X80_1;Sensor_i++)
- {
- //MillisecReadFromI2CTempSensor(Sensor_i, NULL);
- }
- //Set_HeadCard_PT100();
-#warning call chip select replace in I2C
- }
- if (m70msecTick) //read odd PT1000
- {
- for (Sensor_i = HEAD_PT100_ZONE_2_0X80_1;Sensor_i < HEAD_PT100_RESERVE_0X8E_1;Sensor_i++)
- {
- //MillisecReadFromI2CTempSensor(Sensor_i, NULL);
- }
- //Set_HeadCard_PT100();
- }
-#endif */
if (m90msecTick)
{
-#ifdef Use_Head_Card
- for (Sensor_i = TEMP_SENSE_ANALOG_DRYER_TEMP1;Sensor_i < MAX_HEAD_CARD_TEMP_SENS_ID;Sensor_i++)
-#else
- for (Sensor_i = 0;Sensor_i < MAX_MAIN_CARD_TEMP_SENS_ID;Sensor_i++)
-#endif
+ for (Sensor_i = StartPT100;Sensor_i < MAX_HEAD_CARD_TEMP_SENS_ID;Sensor_i++)
{
MillisecReadFromTempSensor(Sensor_i, NULL);
}
@@ -664,11 +638,7 @@ uint32_t MillisecLowLoop(uint32_t tick)
///////////////////////////////////////////////////////////////////
-#ifdef Use_Head_Card
- for (Sensor_i = TEMP_SENSE_ANALOG_DRYER_TEMP1;Sensor_i < MAX_HEAD_CARD_TEMP_SENS_ID;Sensor_i++)
-#else
- for (Sensor_i = 0;Sensor_i < MAX_MAIN_CARD_TEMP_SENS_ID;Sensor_i++)
-#endif
+ for (Sensor_i = StartPT100;Sensor_i < MAX_HEAD_CARD_TEMP_SENS_ID;Sensor_i++)
{
MillisecUpdateTemperatures (Sensor_i,TemperatureSensorRead(Sensor_i));
}
@@ -689,10 +659,7 @@ uint32_t MillisecLowLoop(uint32_t tick)
ADC_TriggerCollection();
}
-#ifdef Use_Head_Card
- //Head_Read_IO_Reg(0x46, HIGH);//READ HEAD CARD LS
-#endif
-
+ Trigger_InputsReading();
}
if (Gradient_Tick)
DispensersCollectionCall();
@@ -737,14 +704,10 @@ uint32_t MillisecLowLoop(uint32_t tick)
static int Counter = 0;
MachineUpdateResponseFunc();
KeepAliveOneSecondCall();
-#ifdef Use_Head_Card
+
TemperatureListString(Lenstr);
ReportWithPackageFilter(ThreadFilter,Lenstr,__FILE__,__LINE__,(int)Counter++,RpWarning,(int) msec_millisecondCounter,0);
-//#ifdef Use_Head_Card
- for (Sensor_i = TEMP_SENSE_ANALOG_DRYER_TEMP1;Sensor_i < MAX_HEAD_CARD_TEMP_SENS_ID;Sensor_i++)
-#else
- for (Sensor_i = 0;Sensor_i < MAX_MAIN_CARD_TEMP_SENS_ID;Sensor_i++)
-#endif
+ for (Sensor_i = StartPT100;Sensor_i < MAX_HEAD_CARD_TEMP_SENS_ID;Sensor_i++)
{
TemperatureCalc[Sensor_i] = MillisecCalculateTemperatures ( Sensor_i);
}
@@ -755,10 +718,8 @@ uint32_t MillisecLowLoop(uint32_t tick)
PressureCalc[Disp_i] = MillisecCalculatePressures(Disp_i);
}
}
-#ifdef Use_WHS_Card
Trigger_WHS_PT100_Read_All();
Trigger_WHS_MAX11614_Read_allADC();
-#endif
}
if (OneMinute_Tick)
@@ -779,6 +740,7 @@ uint32_t MillisecLowLoop(uint32_t tick)
midtankDisplay = 1-midtankDisplay;
Gas_PPM_Info = Calculate_Gas_Power_Consumption();
//Trigger_WHS_MAX11614_Read_allADC();
+ ResetControlTime();
}
if (OneHourTick)
diff --git a/Software/Embedded_SW/Embedded/Modules/Control/control.c b/Software/Embedded_SW/Embedded/Modules/Control/control.c
index e093815a9..e85a36057 100644
--- a/Software/Embedded_SW/Embedded/Modules/Control/control.c
+++ b/Software/Embedded_SW/Embedded/Modules/Control/control.c
@@ -108,6 +108,7 @@ ControlDeviceStruc ControlArray[MAX_TANGO_CONTROL_DEVICES];
uint32_t ControlDatalog[MAX_TANGO_CONTROL_DEVICES];
#define MAX_BACKLOG_SIZE 100
uint16_t ControlBacklog[MAX_BACKLOG_SIZE]={0};
+uint32_t ControlTime[MAX_TANGO_CONTROL_DEVICES]={0};
uint16_t backlogindex = 0;
uint32_t Control_timerBase = TIMER0_BASE; //Timer handle
uint32_t MaxHighDevices = 0xFF;
@@ -556,8 +557,22 @@ uint32_t ControlLoop(uint32_t tick)
return OK;
}
+uint32_t prevtick = 0;
+void ResetControlTime(void)
+{
+ memset(ControlTime,0,sizeof(ControlTime));
+}
uint32_t ControlLowLoop(uint32_t tick)
{
+ uint32_t tempp,tempq,delta;
+ uint32_t skipped_ticks = 0;
+ if (tick-prevtick>1)
+ {
+ skipped_ticks = tick-prevtick-1;
+ //Report("ControlLowLoop skipped",__FILE__,tick,(int)prevtick,RpWarning,(int)skipped_ticks,0);
+ }
+ prevtick = tick;
+
for (ControlLowDevice_i = 0; ControlLowDevice_i < MAX_TANGO_CONTROL_DEVICES;ControlLowDevice_i++)
{
if (ControlArray[ControlLowDevice_i].ControlActive)
@@ -566,12 +581,13 @@ uint32_t ControlLowLoop(uint32_t tick)
continue;
if (ControlArray[ControlLowDevice_i].ControlTiming == eOneMillisecond)
continue;
- if (((tick - ControlArray[ControlLowDevice_i].StartTick)%ControlArray[ControlLowDevice_i].ControlTiming)==0) // run the control on exact intervals
+ if (((tick - ControlArray[ControlLowDevice_i].StartTick)%ControlArray[ControlLowDevice_i].ControlTiming)<=skipped_ticks) // run the control on exact intervals
{
ControlBacklog[backlogindex]=ControlLowDevice_i;
if ( ++backlogindex >= MAX_BACKLOG_SIZE)
backlogindex = 0;
+ tempp = HibernateRTCSSGet();
if(ControlArray[ControlLowDevice_i].ControlDataReadPtr)
ControlDatalog[ControlLowDevice_i] = ControlArray[ControlLowDevice_i].ControlDataReadPtr( ControlArray[ControlLowDevice_i].Parameter1);
else
@@ -580,6 +596,18 @@ uint32_t ControlLowLoop(uint32_t tick)
ControlArray[ControlLowDevice_i].ControlCallbackPtr(ControlArray[ControlLowDevice_i].IfIndex, ControlDatalog[ControlLowDevice_i]);
else
LOG_ERROR (ControlLowDevice_i, "Invalid callback ptr");
+ tempq = HibernateRTCSSGet();
+ if (tempq < tempp)
+ {
+ delta = (32768 - tempp) + tempq + 1;
+ }
+ else
+ delta = tempq - tempp;
+
+ if (ControlTime[ControlLowDevice_i]<delta)
+ {
+ ControlTime[ControlLowDevice_i] = delta;
+ }
}
} //if control active
} //for
diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticActions.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticActions.c
index ef4feda09..598675f8c 100644
--- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticActions.c
+++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticActions.c
@@ -208,11 +208,10 @@ uint32_t SetDigitalOutRequestRequestFunc(MessageContainer* requestContainer)
Control_Dryer_Fan(STOP,0);//use START or STOP, 0 - 100%();
break;
case INTERFACE_IOS__GPO_WASTECH_PUMP2://valve
-#ifdef Use_WHS_Card
- Trigger_SetWHSValveWatseCartridge(request->value);
-#else
- Valve_Set(VALVE_WASTE_TANK, request->value);
-#endif // Valve_Set(VALVE_WASTE_TANK, request->value);
+ if (WHS_Type == WHS_TYPE_UNKNOWN)
+ Valve_Set(VALVE_WASTE_TANK, request->value);
+ else
+ Trigger_SetWHSValveWatseCartridge(request->value);
break;
case INTERFACE_IOS__GPO_WHS_WTANKPUMP2:
SetWastePump( request->value);
@@ -227,10 +226,10 @@ uint32_t SetDigitalOutRequestRequestFunc(MessageContainer* requestContainer)
Pumps_Control(WASTECH_PUMP2, request->value);
break;
case INTERFACE_IOS__GPO_LED3:
- HeadCard_Actuators_Control(ACTIN, LOW,request->value);
+ Trigger_Head_Actuators_Control(ACTIN, LOW,request->value);
break;
case INTERFACE_IOS__GPO_LED4:
- HeadCard_Actuators_Control(ACTOT, LOW,request->value);
+ Trigger_Head_Actuators_Control(ACTOT, LOW,request->value);
break;
case INTERFACE_IOS__GPO_BUZZER:
if (request->value == true)
@@ -370,24 +369,27 @@ uint32_t SetBlowerStateRequestFunc(MessageContainer* requestContainer)
Turn_the_Blower_Off();
break;
case HARDWARE_BLOWER_TYPE__HeadBlower1:
-#ifdef Use_Head_Card
- if ((request->has_voltage)&&(request->isactive == true))
- status = Head_Fan_PWM_Control(0,request->voltage);
- else if (request->isactive == false)
- status = Head_Fan_PWM_Control(0,0);
-#else
- status = NOT_SUPPORTED;
-#endif
+ if (Head_Type == HEAD_TYPE_STAPLE_SPUN)
+ {
+ if ((request->has_voltage)&&(request->isactive == true))
+ status = Head_Fan_PWM_Control(0,request->voltage);
+ else if (request->isactive == false)
+ status = Head_Fan_PWM_Control(0,0);
+ }
+ else
+ status = NOT_SUPPORTED;
+
break;
case HARDWARE_BLOWER_TYPE__HeadBlower2:
-#ifdef Use_Head_Card
- if ((request->has_voltage)&&(request->isactive == true))
- status = Head_Fan_PWM_Control(1,request->voltage);
- else if (request->isactive == false)
- status = Head_Fan_PWM_Control(1,0);
-#else
- status = NOT_SUPPORTED;
-#endif
+ if (Head_Type == HEAD_TYPE_STAPLE_SPUN)
+ {
+ if ((request->has_voltage)&&(request->isactive == true))
+ status = Head_Fan_PWM_Control(1,request->voltage);
+ else if (request->isactive == false)
+ status = Head_Fan_PWM_Control(1,0);
+ }
+ else
+ status = NOT_SUPPORTED;
break;
default:
status = NOT_SUPPORTED;
diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c
index 71ed7a97b..e63314bac 100644
--- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c
+++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c
@@ -524,31 +524,41 @@ void DiagnosticOneMinuteCollection(void)
void DiagnosticOneSecCollection(void)
{
int i;
-#ifdef Use_Head_Card
- DiagnosticLoadTemperature(HEATER_TYPE__MixerHeater, MillisecGetTemperatures( HEAD_PT100_MIXER_0X8E_0));
- DiagnosticLoadTemperature(HEATER_TYPE__HeaterZone1, MillisecGetTemperatures(HEAD_PT100_ZONE_1_0X80_0));
- DiagnosticLoadTemperature(HEATER_TYPE__HeaterZone2, MillisecGetTemperatures(HEAD_PT100_ZONE_2_0X80_1));
- DiagnosticLoadTemperature(HEATER_TYPE__HeaterZone3, MillisecGetTemperatures(HEAD_PT100_ZONE_3_0X82_0));
- DiagnosticLoadTemperature(HEATER_TYPE__HeaterZone4, MillisecGetTemperatures(HEAD_PT100_ZONE_4_0X82_1));
- DiagnosticLoadTemperature(HEATER_TYPE__HeaterZone5, MillisecGetTemperatures(HEAD_PT100_ZONE_5_0X84_0));
- DiagnosticLoadTemperature(HEATER_TYPE__HeaterZone6, MillisecGetTemperatures(HEAD_PT100_ZONE_6_0X84_1));
- DiagnosticLoadTemperature(HEATER_TYPE__HeaterZone7, MillisecGetTemperatures(HEAD_PT100_ZONE_7_0X86_0));
- DiagnosticLoadTemperature(HEATER_TYPE__HeaterZone8, MillisecGetTemperatures(HEAD_PT100_ZONE_8_0X86_1));
- DiagnosticLoadTemperature(HEATER_TYPE__HeaterZone9, MillisecGetTemperatures(HEAD_PT100_ZONE_9_0X88_0));
- DiagnosticLoadTemperature(HEATER_TYPE__HeaterZone10, MillisecGetTemperatures(HEAD_PT100_ZONE_10_0X88_1));
- DiagnosticLoadTemperature(HEATER_TYPE__HeaterZone11, MillisecGetTemperatures(HEAD_PT100_ZONE_11_0X8A_0));
- DiagnosticLoadTemperature(HEATER_TYPE__HeaterZone12, MillisecGetTemperatures(HEAD_PT100_ZONE_12_0X8A_1));
- DiagnosticLoadTemperature(HEATER_TYPE__HeadCoverHeater1, MillisecGetTemperatures(HEAD_PT100_AIR_HEATER_2_0X8C_1));
- DiagnosticLoadTemperature(HEATER_TYPE__HeadCoverHeater2, MillisecGetTemperatures(HEAD_PT100_AIR_HEATER_1_0X8C_0));
-#else
- DiagnosticLoadTemperature(HARDWARE_PID_CONTROL_TYPE__MixerHeater, MillisecGetTemperatures( MIXER_PT100));
- DiagnosticLoadTemperature(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ1, MillisecGetTemperatures(TEMP_SENSE_ANALOG_DYEINGH_TEMP1));
- DiagnosticLoadTemperature(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ2, MillisecGetTemperatures(TEMP_SENSE_ANALOG_DYEINGH_TEMP2));
- DiagnosticLoadTemperature(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ3, MillisecGetTemperatures(TEMP_SENSE_ANALOG_DYEINGH_TEMP3));
- DiagnosticLoadTemperature(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ4, MillisecGetTemperatures(TEMP_SENSE_ANALOG_DYEINGH_TEMP4));
- DiagnosticLoadTemperature(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ5, MillisecGetTemperatures(TEMP_SENSE_ANALOG_DYEINGH_TEMP5));
- DiagnosticLoadTemperature(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ6, MillisecGetTemperatures(HEAD6_PT100));
-#endif
+ if (Head_Type == HEAD_TYPE_SYLKO_WITHOUT_CARD)
+ {
+ DiagnosticLoadTemperature(HARDWARE_PID_CONTROL_TYPE__MixerHeater, MillisecGetTemperatures( MIXER_PT100));
+ DiagnosticLoadTemperature(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ1, MillisecGetTemperatures(TEMP_SENSE_ANALOG_DYEINGH_TEMP1));
+ DiagnosticLoadTemperature(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ2, MillisecGetTemperatures(TEMP_SENSE_ANALOG_DYEINGH_TEMP2));
+ DiagnosticLoadTemperature(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ3, MillisecGetTemperatures(TEMP_SENSE_ANALOG_DYEINGH_TEMP3));
+ DiagnosticLoadTemperature(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ4, MillisecGetTemperatures(TEMP_SENSE_ANALOG_DYEINGH_TEMP4));
+ DiagnosticLoadTemperature(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ5, MillisecGetTemperatures(TEMP_SENSE_ANALOG_DYEINGH_TEMP5));
+ DiagnosticLoadTemperature(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ6, MillisecGetTemperatures(HEAD6_PT100));
+ }
+ if (Head_Type == HEAD_TYPE_SYLKO)
+ {
+ DiagnosticLoadTemperature(HEATER_TYPE__MixerHeater, MillisecGetTemperatures( HEAD_PT100_MIXER_0X8E_0));
+ DiagnosticLoadTemperature(HEATER_TYPE__HeaterZone1, MillisecGetTemperatures(HEAD_PT100_ZONE_1_0X80_0));
+ DiagnosticLoadTemperature(HEATER_TYPE__HeaterZone2, MillisecGetTemperatures(HEAD_PT100_ZONE_2_0X80_1));
+ DiagnosticLoadTemperature(HEATER_TYPE__HeaterZone3, MillisecGetTemperatures(HEAD_PT100_ZONE_3_0X82_0));
+ DiagnosticLoadTemperature(HEATER_TYPE__HeaterZone4, MillisecGetTemperatures(HEAD_PT100_ZONE_4_0X82_1));
+ DiagnosticLoadTemperature(HEATER_TYPE__HeaterZone5, MillisecGetTemperatures(HEAD_PT100_ZONE_5_0X84_0));
+ DiagnosticLoadTemperature(HEATER_TYPE__HeaterZone6, MillisecGetTemperatures(HEAD_PT100_ZONE_6_0X84_1));
+ DiagnosticLoadTemperature(HEATER_TYPE__HeaterZone7, MillisecGetTemperatures(HEAD_PT100_ZONE_7_0X86_0));
+ DiagnosticLoadTemperature(HEATER_TYPE__HeaterZone8, MillisecGetTemperatures(HEAD_PT100_ZONE_8_0X86_1));
+ DiagnosticLoadTemperature(HEATER_TYPE__HeaterZone9, MillisecGetTemperatures(HEAD_PT100_ZONE_9_0X88_0));
+ DiagnosticLoadTemperature(HEATER_TYPE__HeaterZone10, MillisecGetTemperatures(HEAD_PT100_ZONE_10_0X88_1));
+ DiagnosticLoadTemperature(HEATER_TYPE__HeaterZone11, MillisecGetTemperatures(HEAD_PT100_ZONE_11_0X8A_0));
+ DiagnosticLoadTemperature(HEATER_TYPE__HeaterZone12, MillisecGetTemperatures(HEAD_PT100_ZONE_12_0X8A_1));
+ }
+ if (Head_Type == HEAD_TYPE_STAPLE_SPUN)
+ {
+ DiagnosticLoadTemperature(HEATER_TYPE__MixerHeater, MillisecGetTemperatures( HEAD_PT100_MIXER_0X8E_0));
+ DiagnosticLoadTemperature(HEATER_TYPE__HeaterZone1, MillisecGetTemperatures(HEAD_PT100_ZONE_1_0X80_0));
+ DiagnosticLoadTemperature(HEATER_TYPE__HeaterZone2, MillisecGetTemperatures(HEAD_PT100_ZONE_2_0X80_1));
+ DiagnosticLoadTemperature(HEATER_TYPE__HeaterZone3, MillisecGetTemperatures(HEAD_PT100_ZONE_3_0X82_0));
+ DiagnosticLoadTemperature(HEATER_TYPE__HeadCoverHeater1, MillisecGetTemperatures(HEAD_PT100_AIR_HEATER_2_0X8C_1));
+ DiagnosticLoadTemperature(HEATER_TYPE__HeadCoverHeater2, MillisecGetTemperatures(HEAD_PT100_AIR_HEATER_1_0X8C_0));
+ }
DiagnosticLoadTemperature(HARDWARE_PID_CONTROL_TYPE__DryerAirTemperature, MillisecGetTemperatures(TEMP_SENSE_ANALOG_DRYER_TEMP1));
DiagnosticLoadTemperature(HARDWARE_PID_CONTROL_TYPE__DryerHeaterMain, MillisecGetTemperatures(TEMP_SENSE_ANALOG_DRYER_TEMP2));
DiagnosticLoadTemperature(HARDWARE_PID_CONTROL_TYPE__DryerHeaterSecondary, MillisecGetTemperatures(TEMP_SENSE_ANALOG_DRYER_TEMP3));
@@ -711,41 +721,46 @@ void SendDiagnostics(void)
DiagnosticsMonitor.headzone1temperature = HeaterTemperature[HEATER_TYPE__HeaterZone1];
DiagnosticsMonitor.headzone2temperature = HeaterTemperature[HEATER_TYPE__HeaterZone2];
DiagnosticsMonitor.headzone3temperature = HeaterTemperature[HEATER_TYPE__HeaterZone3];
- DiagnosticsMonitor.headzone4temperature = HeaterTemperature[HEATER_TYPE__HeaterZone4];
- DiagnosticsMonitor.headzone5temperature = HeaterTemperature[HEATER_TYPE__HeaterZone5];
- DiagnosticsMonitor.headzone6temperature = HeaterTemperature[HEATER_TYPE__HeaterZone6];
-#ifdef Use_Head_Card
- DiagnosticsMonitor.headzone7temperature = HeaterTemperature[HEATER_TYPE__HeaterZone7];
- DiagnosticsMonitor.headzone8temperature = HeaterTemperature[HEATER_TYPE__HeaterZone8];
- DiagnosticsMonitor.headzone9temperature = HeaterTemperature[HEATER_TYPE__HeaterZone9];
- DiagnosticsMonitor.headzone10temperature = HeaterTemperature[HEATER_TYPE__HeaterZone10];
- DiagnosticsMonitor.headzone11temperature = HeaterTemperature[HEATER_TYPE__HeaterZone11];
- DiagnosticsMonitor.headzone12temperature = HeaterTemperature[HEATER_TYPE__HeaterZone12];
- DiagnosticsMonitor.headcoverheater1temperature = HeaterTemperature[HEATER_TYPE__HeadCoverHeater1];
- DiagnosticsMonitor.headcoverheater2temperature = HeaterTemperature[HEATER_TYPE__HeadCoverHeater2];
-
-#endif
- DiagnosticsMonitor.dryerzone1temperature = HeaterTemperature[HEATER_TYPE__DryerAirHeater];
- DiagnosticsMonitor.dryerzone2temperature = HeaterTemperature[HEATER_TYPE__DryerMainHeater];
- DiagnosticsMonitor.dryerzone3temperature = HeaterTemperature[HEATER_TYPE__DryerSecondaryHeater];
-
DiagnosticsMonitor.n_mixertemperature = HeaterCounterIndex[HEATER_TYPE__MixerHeater];
DiagnosticsMonitor.n_headzone1temperature = HeaterCounterIndex[HEATER_TYPE__HeaterZone1];
DiagnosticsMonitor.n_headzone2temperature = HeaterCounterIndex[HEATER_TYPE__HeaterZone2];
DiagnosticsMonitor.n_headzone3temperature = HeaterCounterIndex[HEATER_TYPE__HeaterZone3];
- DiagnosticsMonitor.n_headzone4temperature = HeaterCounterIndex[HEATER_TYPE__HeaterZone4];
- DiagnosticsMonitor.n_headzone5temperature = HeaterCounterIndex[HEATER_TYPE__HeaterZone5];
- DiagnosticsMonitor.n_headzone6temperature = HeaterCounterIndex[HEATER_TYPE__HeaterZone6];
-#ifdef Use_Head_Card
- DiagnosticsMonitor.n_headzone7temperature = HeaterCounterIndex[HEATER_TYPE__HeaterZone7];
- DiagnosticsMonitor.n_headzone8temperature = HeaterCounterIndex[HEATER_TYPE__HeaterZone8];
- DiagnosticsMonitor.n_headzone9temperature = HeaterCounterIndex[HEATER_TYPE__HeaterZone9];
- DiagnosticsMonitor.n_headzone10temperature = HeaterCounterIndex[HEATER_TYPE__HeaterZone10];
- DiagnosticsMonitor.n_headzone11temperature = HeaterCounterIndex[HEATER_TYPE__HeaterZone11];
- DiagnosticsMonitor.n_headzone12temperature = HeaterCounterIndex[HEATER_TYPE__HeaterZone12];
- DiagnosticsMonitor.n_headcoverheater1temperature = HeaterCounterIndex[HEATER_TYPE__HeadCoverHeater1];
- DiagnosticsMonitor.n_headcoverheater2temperature = HeaterCounterIndex[HEATER_TYPE__HeadCoverHeater2];
-#endif
+ if ((Head_Type == HEAD_TYPE_SYLKO)||(Head_Type == HEAD_TYPE_SYLKO_WITHOUT_CARD))
+ {
+ DiagnosticsMonitor.headzone4temperature = HeaterTemperature[HEATER_TYPE__HeaterZone4];
+ DiagnosticsMonitor.headzone5temperature = HeaterTemperature[HEATER_TYPE__HeaterZone5];
+ DiagnosticsMonitor.headzone6temperature = HeaterTemperature[HEATER_TYPE__HeaterZone6];
+ DiagnosticsMonitor.n_headzone4temperature = HeaterCounterIndex[HEATER_TYPE__HeaterZone4];
+ DiagnosticsMonitor.n_headzone5temperature = HeaterCounterIndex[HEATER_TYPE__HeaterZone5];
+ DiagnosticsMonitor.n_headzone6temperature = HeaterCounterIndex[HEATER_TYPE__HeaterZone6];
+ }
+ if (Head_Type == HEAD_TYPE_SYLKO)
+ {
+ DiagnosticsMonitor.headzone7temperature = HeaterTemperature[HEATER_TYPE__HeaterZone7];
+ DiagnosticsMonitor.headzone8temperature = HeaterTemperature[HEATER_TYPE__HeaterZone8];
+ DiagnosticsMonitor.headzone9temperature = HeaterTemperature[HEATER_TYPE__HeaterZone9];
+ DiagnosticsMonitor.headzone10temperature = HeaterTemperature[HEATER_TYPE__HeaterZone10];
+ DiagnosticsMonitor.headzone11temperature = HeaterTemperature[HEATER_TYPE__HeaterZone11];
+ DiagnosticsMonitor.headzone12temperature = HeaterTemperature[HEATER_TYPE__HeaterZone12];
+ DiagnosticsMonitor.n_headzone7temperature = HeaterCounterIndex[HEATER_TYPE__HeaterZone7];
+ DiagnosticsMonitor.n_headzone8temperature = HeaterCounterIndex[HEATER_TYPE__HeaterZone8];
+ DiagnosticsMonitor.n_headzone9temperature = HeaterCounterIndex[HEATER_TYPE__HeaterZone9];
+ DiagnosticsMonitor.n_headzone10temperature = HeaterCounterIndex[HEATER_TYPE__HeaterZone10];
+ DiagnosticsMonitor.n_headzone11temperature = HeaterCounterIndex[HEATER_TYPE__HeaterZone11];
+ DiagnosticsMonitor.n_headzone12temperature = HeaterCounterIndex[HEATER_TYPE__HeaterZone12];
+ }
+ if ((Head_Type == HEAD_TYPE_SYLKO)||(Head_Type == HEAD_TYPE_STAPLE_SPUN))
+// if (Head_Type == HEAD_TYPE_STAPLE_SPUN)
+ {
+ DiagnosticsMonitor.headcoverheater1temperature = HeaterTemperature[HEATER_TYPE__HeadCoverHeater1];
+ DiagnosticsMonitor.headcoverheater2temperature = HeaterTemperature[HEATER_TYPE__HeadCoverHeater2];
+ DiagnosticsMonitor.n_headcoverheater1temperature = HeaterCounterIndex[HEATER_TYPE__HeadCoverHeater1];
+ DiagnosticsMonitor.n_headcoverheater2temperature = HeaterCounterIndex[HEATER_TYPE__HeadCoverHeater2];
+ }
+ DiagnosticsMonitor.dryerzone1temperature = HeaterTemperature[HEATER_TYPE__DryerAirHeater];
+ DiagnosticsMonitor.dryerzone2temperature = HeaterTemperature[HEATER_TYPE__DryerMainHeater];
+ DiagnosticsMonitor.dryerzone3temperature = HeaterTemperature[HEATER_TYPE__DryerSecondaryHeater];
+
DiagnosticsMonitor.n_dryerzone1temperature = HeaterCounterIndex[HEATER_TYPE__DryerAirHeater];
DiagnosticsMonitor.n_dryerzone2temperature = HeaterCounterIndex[HEATER_TYPE__DryerMainHeater];
DiagnosticsMonitor.n_dryerzone3temperature = HeaterCounterIndex[HEATER_TYPE__DryerSecondaryHeater];
@@ -851,20 +866,38 @@ void SendDiagnostics(void)
response.n_digitalinterfacestates = DiagnosticsLoadDigitalValues();
response.digitalinterfacestates = digitalinterfacestates;
-#ifdef Use_Head_Card
- for (i=HEATER_TYPE__DryerAirHeater;i<HEATER_TYPE_MAX_HEATERS;i++)
-#else
- for (i=HEATER_TYPE__DryerAirHeater;i<MAX_HEATERS_NUM;i++)
-#endif
+ response.n_heatersstates = 0;
+ i = 0;
+ LoadHeaterState(HEATER_TYPE__DryerAirHeater,&HeaterInfo[i++]);
+ LoadHeaterState(HEATER_TYPE__DryerMainHeater,&HeaterInfo[i++]);
+ LoadHeaterState(HEATER_TYPE__DryerSecondaryHeater,&HeaterInfo[i++]);
+ LoadHeaterState(HEATER_TYPE__MixerHeater,&HeaterInfo[i++]);
+ LoadHeaterState(HEATER_TYPE__HeaterZone1,&HeaterInfo[i++]);
+ LoadHeaterState(HEATER_TYPE__HeaterZone2,&HeaterInfo[i++]);
+ LoadHeaterState(HEATER_TYPE__HeaterZone3,&HeaterInfo[i++]);
+
+ if ((Head_Type == HEAD_TYPE_SYLKO)||(Head_Type == HEAD_TYPE_SYLKO_WITHOUT_CARD))
+ {
+ LoadHeaterState(HEATER_TYPE__HeaterZone4,&HeaterInfo[i++]);
+ LoadHeaterState(HEATER_TYPE__HeaterZone5,&HeaterInfo[i++]);
+ LoadHeaterState(HEATER_TYPE__HeaterZone6,&HeaterInfo[i++]);
+ }
+ if (Head_Type == HEAD_TYPE_SYLKO)
+ {
+ LoadHeaterState(HEATER_TYPE__HeaterZone7,&HeaterInfo[i++]);
+ LoadHeaterState(HEATER_TYPE__HeaterZone8,&HeaterInfo[i++]);
+ LoadHeaterState(HEATER_TYPE__HeaterZone9,&HeaterInfo[i++]);
+ LoadHeaterState(HEATER_TYPE__HeaterZone10,&HeaterInfo[i++]);
+ LoadHeaterState(HEATER_TYPE__HeaterZone11,&HeaterInfo[i++]);
+ LoadHeaterState(HEATER_TYPE__HeaterZone12,&HeaterInfo[i++]);
+ }
+ if ((Head_Type == HEAD_TYPE_SYLKO)||(Head_Type == HEAD_TYPE_STAPLE_SPUN))
+ //if (Head_Type == HEAD_TYPE_STAPLE_SPUN)
{
- LoadHeaterState((HeaterType)i,&HeaterInfo[i]);
- //heatersstates[i] = &HeaterInfo[i];
+ LoadHeaterState(HEATER_TYPE__HeadCoverHeater1,&HeaterInfo[i++]);
+ LoadHeaterState(HEATER_TYPE__HeadCoverHeater2,&HeaterInfo[i++]);
}
-#ifdef Use_Head_Card
- response.n_heatersstates = HEATER_TYPE_MAX_HEATERS;
-#else
- response.n_heatersstates = MAX_HEATERS_NUM;
-#endif
+ response.n_heatersstates = i;
response.heatersstates = heatersstates;
response.has_elapsedmilli = true;
diff --git a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
index 82d2dc226..b05cb61e1 100644
--- a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
+++ b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
@@ -150,9 +150,8 @@ uint32_t HWConfigurationInit(void)
//ProcessParamsInit();
Buttons_Init();
WHS_init();
-#ifdef Use_WHS_Card
- newWHS_init();
-#endif
+ if (WHS_Type == WHS_TYPE_NEW)
+ newWHS_init();
ADC_MUX_Init();
GeneralHwReady = true;
@@ -383,6 +382,7 @@ uint32_t HWConfiguration(UploadHardwareConfigurationRequest* UploadRequest)
{
uint32_t status = 0;
int Dancer_i, Dispenser_i,PID_i,tempheaterId;
+ HardwareBlowerType blowerType = HARDWARE_BLOWER_TYPE__DefaultBlower;
if (UploadRequest == NULL)
{
@@ -493,11 +493,10 @@ uint32_t HWConfiguration(UploadHardwareConfigurationRequest* UploadRequest)
BlowerCfg.enabled = true;
BlowerCfg.voltage = 3000;
BlowerCfg.heatingvoltage = 3000;
-#ifdef Use_WHS_Card
- HardwareBlowerType blowerType = HARDWARE_BLOWER_TYPE__WHSBlower2;
-#else
- HardwareBlowerType blowerType = HARDWARE_BLOWER_TYPE__DefaultBlower;
-#endif
+ if (WHS_Type == WHS_TYPE_UNKNOWN)
+ blowerType = HARDWARE_BLOWER_TYPE__WHSBlower2;
+ else
+ blowerType = HARDWARE_BLOWER_TYPE__DefaultBlower;
if (request->n_blowers)
{
for (Dispenser_i = 0; Dispenser_i < request->n_blowers ; Dispenser_i++)
diff --git a/Software/Embedded_SW/Embedded/Modules/General/process.c b/Software/Embedded_SW/Embedded/Modules/General/process.c
index 1ef4a0931..5bfc46559 100644
--- a/Software/Embedded_SW/Embedded/Modules/General/process.c
+++ b/Software/Embedded_SW/Embedded/Modules/General/process.c
@@ -101,13 +101,9 @@ uint32_t HandleProcessParameters(ProcessParameters* ProcessParams,bool saveData)
}
}
if (ProcessParams->mixertemp>1)
- status |= HeaterCommandRequestMessage(
- HARDWARE_PID_CONTROL_TYPE__MixerHeater, true,
- ProcessParams->mixertemp);
+ status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__MixerHeater, true,ProcessParams->mixertemp);
else
- status |= HeaterCommandRequestMessage(
- HARDWARE_PID_CONTROL_TYPE__MixerHeater, false,
- ProcessParams->mixertemp);
+ status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__MixerHeater, false,ProcessParams->mixertemp);
if (ProcessParams->headzone1temp>1)
{
status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ1, true,ProcessParams->headzone1temp);
@@ -197,13 +193,9 @@ uint32_t HandleProcessParameters(ProcessParameters* ProcessParams,bool saveData)
#endif
}
if (ProcessParams->dryerzone1temp>1)
- status |= HeaterCommandRequestMessage(
- HARDWARE_PID_CONTROL_TYPE__DryerAirTemperature, true,
- ProcessParams->dryerzone1temp);
+ status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__DryerAirTemperature, true,ProcessParams->dryerzone1temp);
else
- status |= HeaterCommandRequestMessage(
- HARDWARE_PID_CONTROL_TYPE__DryerAirTemperature, false,
- ProcessParams->dryerzone1temp);
+ status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__DryerAirTemperature, false,ProcessParams->dryerzone1temp);
/* if (ProcessParams->dryerzone2temp)
status |= HeaterCommandRequestMessage(
HARDWARE_PID_CONTROL_TYPE__DryerHeaterMain, true,
diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_init.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_init.c
index d20f0511b..a91919bc4 100644
--- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_init.c
+++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_init.c
@@ -63,27 +63,21 @@ uint32_t Heaters_Init(void)
int i;
//ROM_TimerDisable(Heater_timerBase, TIMER_A);
-#ifdef Use_Head_Card
- HeadADCPT100_SensorInitConfig();//OK
-#endif
+ Trigger_Head_Init_PT100();//OK
+
FPGA_SensorInitConfig();
memset(HeaterControl,0,sizeof(HeaterControl));
-//#ifdef Use_Head_Card
for (i = 0;i<HEATER_TYPE_MAX_HEATERS; i++)
-/*#else
- for (i = 0;i<MAX_HEATERS_NUM; i++)
-#endif*/
DeActivateHeater(i);
BlowerCfg.enabled = true;
BlowerCfg.voltage = 3000;
BlowerCfg.heatingvoltage = 3000;
-#ifdef Use_WHS_Card
- BlowerCfg.hardwareblowertype = HARDWARE_BLOWER_TYPE__WHSBlower2;
-#else
- BlowerCfg.hardwareblowertype = HARDWARE_BLOWER_TYPE__DefaultBlower;
-#endif
+ if (WHS_Type == WHS_TYPE_UNKNOWN)
+ BlowerCfg.hardwareblowertype = HARDWARE_BLOWER_TYPE__DefaultBlower;
+ else
+ BlowerCfg.hardwareblowertype = HARDWARE_BLOWER_TYPE__WHSBlower2;
return OK;
}
diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
index 6b7a01103..96ce9331d 100644
--- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
@@ -125,6 +125,7 @@ Mailbox_Handle HeatersControlMsgQ = NULL;
bool HeaterReady[HEATER_TYPE_MAX_HEATERS] = {true};
bool HeaterAtTemp[HEATER_TYPE_MAX_HEATERS] = {true};
uint32_t HeaterPreviousRead[HEATER_TYPE_MAX_HEATERS] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; //A/C Heaters Cycle time in milliseconds - one for all heaters
+uint32_t HeaterSpikeRead[HEATER_TYPE_MAX_HEATERS] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; //A/C Heaters Cycle time in milliseconds - one for all heaters
EventType HeaterEventType[HEATER_TYPE_MAX_HEATERS] = {EVENT_TYPE__DRYER_ZONE_1_OVERTEMPERATURE,EVENT_TYPE__DRYER_ZONE_2_OVERTEMPERATURE,EVENT_TYPE__DRYER_ZONE_1_OVERTEMPERATURE,EVENT_TYPE__DYEING_HEAD_ZONE_1_OVERTEMPERATURE,EVENT_TYPE__DYEING_HEAD_ZONE_2_OVERTEMPERATURE,
EVENT_TYPE__DYEING_HEAD_ZONE_3_OVERTEMPERATURE,EVENT_TYPE__DYEING_HEAD_ZONE_4_OVERTEMPERATURE,EVENT_TYPE__DYEING_HEAD_ZONE_5_OVERTEMPERATURE,EVENT_TYPE__DYEING_HEAD_ZONE_6_OVERTEMPERATURE,
EVENT_TYPE__MIXER_OVERTEMPERATURE,EVENT_TYPE__DYEING_HEAD_ZONE_7_OVERTEMPERATURE,EVENT_TYPE__DYEING_HEAD_ZONE_8_OVERTEMPERATURE,EVENT_TYPE__DYEING_HEAD_ZONE_9_OVERTEMPERATURE,
@@ -641,7 +642,7 @@ int PrepareDCHeater(int HeaterId, uint32_t Frequency, uint32_t SetTemperatue)
HeaterPreviousRead[HeaterId] = MillisecGetTemperatures(HeaterId2PT100Id[HeaterId]);//MillisecGetTemperatures(HeaterId2PT100Id[HeaterId]);
if((HeaterPreviousRead[HeaterId]<=MINIMUM_HEATER_READ*100)||(MAXIMUM_HEATER_READ*100<=HeaterPreviousRead[HeaterId]))
{
- ReportWithPackageFilter(HeatersFilter,"PT100 not working properly",__FILE__,__LINE__,HeaterId,RpError, 0,0);
+ ReportWithPackageFilter(HeatersFilter,"PT100 not working properly",__FILE__,HeaterId,HeaterPreviousRead[HeaterId],RpError, 0,0);
if (ControlIdtoMaxHeaterId [HeaterId] != 0xFF)
{
RemoveControlCallback(ControlIdtoMaxHeaterId [HeaterId], DcHeaterMaxTempCBFunction);
@@ -785,17 +786,11 @@ bool HeaterGetOverTemperatureState(uint8_t HeaterId)
return HeaterMaxTempFlag[HeaterId];
}
uint32_t MainPT100Read = 0,SecondaryPT100Read = 0;
-int MinuteCallerMaxAc = 0,MinuteCallerMaxDc = 0,MinuteCallerAc = 0,MinuteCallerDc = 0;
uint32_t HeaterMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue)
{
int index=HEATER_TYPE_MAX_HEATERS;
int32_t MaxreadValue;
- if (MinuteCallerMaxAc++ >= 60)
- {
- MinuteCallerMaxAc = 0;
- ReportWithPackageFilter(HeatersFilter, "MinuteCallerMaxAc",__FILE__,__LINE__,IfIndex,RpError, readValue,0);
- }
if (IfIndex>>8 != IfTypeHeaters)
{
ReportWithPackageFilter(HeatersFilter, "Wrong Interface type",__FILE__,__LINE__,IfIndex,RpError, 0,0);
@@ -812,6 +807,15 @@ uint32_t HeaterMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue)
if (abs(readValue - HeaterPreviousRead[index])>2000)
{
ReportWithPackageFilter(HeatersFilter,"Temperature Spike",__FILE__,index,HeaterPreviousRead[index],RpWarning,readValue, index);
+ if (HeaterSpikeRead[index] = 0)
+ {
+ HeaterSpikeRead[index] = readValue;
+ }
+ else
+ {
+ HeaterPreviousRead[index] = HeaterSpikeRead[index];
+ HeaterSpikeRead[index] = 0;
+ }
HeaterMaxTempFlag[index] = true;
DeActivateHeater(HEATER_TYPE__DryerMainHeater);
HeaterRecalculateSharedHeatersParams(HEATER_TYPE__DryerMainHeater,0);
@@ -869,11 +873,6 @@ uint32_t HeaterMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue)
uint32_t DcHeaterMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue)
{
int index=HEATER_TYPE_MAX_HEATERS;
- if (MinuteCallerMaxDc++ >= 60*10)
- {
- MinuteCallerMaxDc = 0;
- ReportWithPackageFilter(HeatersFilter, "MinuteCallerMaxDc",__FILE__,__LINE__,IfIndex,RpError, readValue,0);
- }
if (IfIndex>>8 != IfTypeHeaters)
{
ReportWithPackageFilter(HeatersFilter, "Wrong Interface type",__FILE__,__LINE__,IfIndex,RpError, 0,0);
@@ -885,7 +884,7 @@ uint32_t DcHeaterMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue)
return OK;
if ((HeaterPreviousRead[index]) >= HeaterControl[index].sensormaxvalue)
{
- ReportWithPackageFilter(HeatersFilter,"Heater over the max temperature",__FILE__,OverHeatCounter[index],index,RpWarning,HeaterControl[index].sensormaxvalue, 0);
+ ReportWithPackageFilter(HeatersFilter,"Heater over the max temperature",__FILE__,index,OverHeatCounter[index],RpWarning,HeaterControl[index].sensormaxvalue, 0);
if(OverHeatCounter[index]++ >=Overheat_Count_Limit)
{
OverHeatCounter[index] = Overheat_Count_Limit;
@@ -913,8 +912,8 @@ uint32_t DcHeaterMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue)
{
if (HeaterReady[index]==true)
{
- ReportWithPackageFilter(HeatersFilter,"Heater under the min temperature",__FILE__,UnderHeatCounter[index],index,RpWarning,HeaterControl[index].sensorminvalue, 0);
- ReportWithPackageFilter(HeatersFilter,"Heater under the min temperature",__FILE__,HeaterReady[index],GetHeaterState(index),RpWarning,HeaterPreviousRead[index], 0);
+ ReportWithPackageFilter(HeatersFilter,"Heater under the min temperature",__FILE__,index,UnderHeatCounter[index],RpWarning,HeaterControl[index].sensorminvalue, 0);
+ ReportWithPackageFilter(HeatersFilter,"Heater under the min temperature more info",__FILE__,HeaterReady[index],GetHeaterState(index),RpWarning,HeaterPreviousRead[index], 0);
}
if(UnderHeatCounter[index]++ >=Underheat_Count_Limit)
{
@@ -968,11 +967,6 @@ uint32_t HeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue)
{
int index=HEATER_TYPE_MAX_HEATERS;
//uint8_t len = 0;
- if (MinuteCallerAc++ >= 60)
- {
- MinuteCallerAc = 0;
- ReportWithPackageFilter(HeatersFilter, "MinuteCallerAc",__FILE__,__LINE__,IfIndex,RpError, readValue,0);
- }
if (IfIndex>>8 != IfTypeHeaters)
{
ReportWithPackageFilter(HeatersFilter, "Wrong Interface type",__FILE__,__LINE__,IfIndex,RpError, 0,0);
@@ -999,6 +993,15 @@ uint32_t HeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue)
ReportWithPackageFilter(HeatersFilter,"AC Temperature Spike",__FILE__,index,HeaterPreviousRead[index],RpWarning,readValue, index);
if (readValue > HeaterCmd[index].targettemperatue)
{
+ if (HeaterSpikeRead[index] = 0)
+ {
+ HeaterSpikeRead[index] = readValue;
+ }
+ else
+ {
+ HeaterPreviousRead[index] = HeaterSpikeRead[index];
+ HeaterSpikeRead[index] = 0;
+ }
DeActivateHeater(HEATER_TYPE__DryerSecondaryHeater);
DeActivateHeater(HEATER_TYPE__DryerMainHeater);
HeaterRecalculateSharedHeatersParams(HEATER_TYPE__DryerMainHeater,0);
@@ -1073,7 +1076,7 @@ uint32_t HeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue)
&& (readValue < (HeaterCmd[index].targettemperatue * ((100+HeaterControl[index].outputproportionalband)/100))))
{
//InitialHeating = false;
- ReportWithPackageFilter(HeatersFilter,"AC PID Activating",__FILE__,__LINE__,readValue,RpWarning,(HeaterCmd[index].targettemperatue), 0);
+ ReportWithPackageFilter(HeatersFilter,"AC PID Activating",__FILE__,index,readValue,RpWarning,(HeaterCmd[index].targettemperatue), 0);
DeActivateHeater(HEATER_TYPE__DryerSecondaryHeater);
HeaterRecalculateSharedHeatersParams(HEATER_TYPE__DryerSecondaryHeater, 0);
HeatersControlStart();
@@ -1097,7 +1100,7 @@ uint32_t HeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue)
if ((readValue > (HeaterCmd[index].targettemperatue * AcHeatersLoweroperationLimit/1000))&&(readValue < (HeaterCmd[index].targettemperatue * AcHeatersUpperoperationLimit/1000)))//read value within 0.5 percent from target
{
//InitialHeating = false;
- ReportWithPackageFilter(HeatersFilter,"AC Ready",__FILE__,__LINE__,readValue,RpWarning,(HeaterCmd[index].targettemperatue), 0);
+ ReportWithPackageFilter(HeatersFilter,"AC Ready",__FILE__,index,readValue,RpWarning,(HeaterCmd[index].targettemperatue), 0);
HeaterAtTemp[index] = true;
HeaterPrepareReady();
}
@@ -1172,11 +1175,6 @@ uint32_t DCHeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue)
int index=HEATER_TYPE_MAX_HEATERS;
//int len;
//uint8_t len = 0;
- if (MinuteCallerDc++ >= 60*10)
- {
- MinuteCallerDc = 0;
- ReportWithPackageFilter(HeatersFilter, "MinuteCallerDc",__FILE__,__LINE__,IfIndex,RpError, readValue,0);
- }
if (IfIndex>>8 != IfTypeHeaters)
{
ReportWithPackageFilter(HeatersFilter, "Wrong Interface type",__FILE__,__LINE__,IfIndex,RpError, 0,0);
@@ -1202,6 +1200,15 @@ uint32_t DCHeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue)
{
DeActivateHeater(index);
HeaterRecalculateHeaterParams(index, 0);
+ if (HeaterSpikeRead[index] = 0)
+ {
+ HeaterSpikeRead[index] = readValue;
+ }
+ else
+ {
+ HeaterPreviousRead[index] = HeaterSpikeRead[index];
+ HeaterSpikeRead[index] = 0;
+ }
}
}
HeaterPreviousRead[index] = readValue;
@@ -1226,7 +1233,7 @@ uint32_t DCHeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue)
DeActivateHeater(index);
HeaterRecalculateHeaterParams(index, 0);
//Heaters OFF until coming into the proportional band
- ReportWithPackageFilter(HeatersFilter,"HEATER Over temperature ", __FILE__,__LINE__,index, RpMessage, readValue, 0);
+ ReportWithPackageFilter(HeatersFilter,"HEATER Over temperature ", __FILE__,index,HeaterCmd[index].targettemperatue, RpMessage, readValue, 0);
return OK;
}
if (readValue < ((HeaterCmd[index].targettemperatue * (100-HeaterControl[index].outputproportionalband))/100))
@@ -1257,6 +1264,11 @@ uint32_t DCHeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue)
{
ReportWithPackageFilter(HeatersFilter,"DC Ready",__FILE__,index,readValue,RpWarning,(HeaterCmd[index].targettemperatue), 0);
HeaterAtTemp[index] = true;
+ if (HeaterReady[index] == false)
+ {
+ HeaterReady[index] = true;
+ ReportWithPackageFilter(HeatersFilter,"DC FastReady",__FILE__,index,readValue,RpWarning,(HeaterCmd[index].targettemperatue), 0);
+ }
HeaterPrepareReady();
}
}
@@ -1365,7 +1377,7 @@ uint32_t HeatersDisasterControl(uint32_t x,uint32_t y)
temperature = MillisecGetTemperatures(HeaterId2PT100Id[HeaterId]);
if ((temperature>=HeaterDisasterTemp[HeaterId])&&(temperature<28300))
{
- ReportWithPackageFilter(HeatersFilter,"Disaster Temperature ",__FILE__,HeaterId,temperature,RpWarning,HeaterDisasterTemp[HeaterId], 0);
+ //ReportWithPackageFilter(HeatersFilter,"Disaster Temperature ",__FILE__,HeaterId,temperature,RpWarning,HeaterDisasterTemp[HeaterId], 0);
if (HeaterDisasterCounter[HeaterId]++ >= DISASTER_COUNTER_LIMIT)
HeaterDisasterCounter[HeaterId] = DISASTER_COUNTER_LIMIT;
}
diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
index c31e21e23..e6e5923c0 100644
--- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
@@ -66,52 +66,58 @@ void Stub_ProgressRequest(MessageContainer* requestContainer)
uint8_t pin = 0;
uint8_t value= 0;
-#ifdef Use_WHS_Card
if(request->amount == 0x3E9) // set TCA9555 u3 or u4
{
- if (request->delay & 0x8000) // bit15 select the chip address
+ if (WHS_Type == WHS_TYPE_NEW)
{
- addr = I2CExp2_ADDRESS;
- }
- else
- {
- addr = I2CExp1_ADDRESS;
- }
+ if (request->delay & 0x8000) // bit15 select the chip address
+ {
+ addr = I2CExp2_ADDRESS;
+ }
+ else
+ {
+ addr = I2CExp1_ADDRESS;
+ }
- if (request->delay & 0x4000) // bit 14 select port 0 or 1
- {
- port = D_TCA9555_PORT_1;
- }
- else
- {
- port = D_TCA9555_PORT_0;
- }
+ if (request->delay & 0x4000) // bit 14 select port 0 or 1
+ {
+ port = D_TCA9555_PORT_1;
+ }
+ else
+ {
+ port = D_TCA9555_PORT_0;
+ }
- pin = ((request->delay & 0x0F00) >> 8); // 8..11
+ pin = ((request->delay & 0x0F00) >> 8); // 8..11
- if (request->delay & 0x0001)
- {
- value = 1;
- }
- else
- {
- value = 0;
+ if (request->delay & 0x0001)
+ {
+ value = 1;
+ }
+ else
+ {
+ value = 0;
+ }
+ response.progress = Write_WHS_9555_io_value( addr, port, pin, value);
+ response.has_progress = true;
}
- response.progress = Write_WHS_9555_io_value( addr, port, pin, value);
- response.has_progress = true;
}
else
- if((request->amount == 0x3E8) && (request->delay <= 0x0fff))// set WHS Blower speed 0x00-0xfff
+ if((request->amount == 0x3E8) && (request->delay <= 0x0fff))// set WHS Blower speed 0x00-0xfff
+ {
+ if (WHS_Type == WHS_TYPE_NEW)
{
- //Trigger_WHS_Set_Volt_Blower_Control(request->delay);
Trigger_SetWHSBlowerVoltage (request->delay);
response.progress = 0;
response.has_progress = true;
- }
+ } //Trigger_WHS_Set_Volt_Blower_Control(request->delay);
+ }
else
- if(request->amount == 0x3EA)
+ if(request->amount == 0x3EA)
+ {
+ uint16_t tempu16 = 0;
+ if (WHS_Type == WHS_TYPE_NEW)
{
- uint16_t tempu16;
switch(request->delay )// set WHS Blower speed 0x00-0xfff
{
case 0:
@@ -144,16 +150,17 @@ void Stub_ProgressRequest(MessageContainer* requestContainer)
default :
tempu16 = 0x500; //get_cur_vlv2(&tempu16);
break;
-
-
}
- response.progress = (double)tempu16;
- response.has_progress = true;
}
+ response.progress = (double)tempu16;
+ response.has_progress = true;
+ }
else //
- if(request->amount == 0x3EB)
+ if(request->amount == 0x3EB)
+ {
+ uint16_t tempu16=0;
+ if (WHS_Type == WHS_TYPE_NEW)
{
- uint16_t tempu16;
if (request->delay <= 0x03FF)
{
Trigger_WHS_Set_RDAC(request->delay); // 0 -> 0x03FF
@@ -163,11 +170,11 @@ void Stub_ProgressRequest(MessageContainer* requestContainer)
Trigger_WHS_set_Rheostat_to_CLEAN_AIR();
}
get_gas_out(&tempu16);
- response.progress = (double)tempu16;
- response.has_progress = true;
}
+ response.progress = (double)tempu16;
+ response.has_progress = true;
+ }
else
-#endif
if((request->amount == 0xDE) && (request->delay < 8) && (request->delay >= 0)) // read dispenser type + LS status
{
response.progress = ((Dispenser_struct[request->delay].Type) << 8) + Dispenser_struct[request->delay].Status;
@@ -275,18 +282,18 @@ void Stub_ProgressRequest(MessageContainer* requestContainer)
response.has_progress = true;
}
else
-#ifdef Use_WHS_Card
if ((request->amount & 0x0000FFF0) == 0xFAC0) //WHS Fan control
{
uint16_t fan_tacho = 0;
-
- Trigger_SetWHSFanSpeed(((request->amount & 0x0000000F)-1) , request->delay & 0x000000FF);
-// getWHSFanTacho(((request->amount & 0x0000000F)-1), &fan_tacho);
+ if (WHS_Type == WHS_TYPE_NEW)
+ {
+ Trigger_SetWHSFanSpeed(((request->amount & 0x0000000F)-1) , request->delay & 0x000000FF);
+ //getWHSFanTacho(((request->amount & 0x0000000F)-1), &fan_tacho);
+ }
response.progress = fan_tacho;
response.has_progress = true;
}
else
-#endif
if((request->amount == 0x0A) && ((request->delay >= 0) && (request->delay < 8))) //read the midtank calibration
{
response.progress = Initial_Offset_A[request->delay];
diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/StubRealTimeUsage.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/StubRealTimeUsage.c
index 2342ef962..2091b3bc5 100644
--- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/StubRealTimeUsage.c
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/StubRealTimeUsage.c
@@ -47,7 +47,7 @@ void Stub_RealTimeUsageRequest(MessageContainer* requestContainer)
response.n_percentile = 100;
- response.percentile = malloc(sizeof(response.percentile)*response.n_percentile);
+ response.percentile = my_malloc(sizeof(response.percentile)*response.n_percentile);
if (response.percentile)
IdleTaskGetLoadTable(response.percentile);
else
@@ -55,7 +55,7 @@ void Stub_RealTimeUsageRequest(MessageContainer* requestContainer)
//free(request);
//-------------------------------------------------------------------------------------------
responseContainer = createContainer(MESSAGE_TYPE__StubRealTimeUsageResponse, requestContainer->token, true, &response, &stub_real_time_usage_response__pack, &stub_real_time_usage_response__get_packed_size);
- uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer));
+ uint8_t* container_buffer = my_malloc(message_container__get_packed_size(&responseContainer));
size_t container_size = message_container__pack(&responseContainer, container_buffer);
free(responseContainer.data.data);
SendChars((char*)container_buffer, container_size);
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c
index bac3ba1d0..a629afc50 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c
@@ -401,9 +401,7 @@
CallbackCounter++;
//MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID,1-MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID].directionthreadwize, 200, Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID], Thread_Load_HomingCallback,10000);
MotorGotoWithCallback(HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID, 0, Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID], Thread_Load_HomingCallback,10000);
-#ifdef Use_Head_Card
- HeadCard_Actuators_Control(ACTOT, LOW,true);
-#endif
+ Trigger_Head_Actuators_Control(ACTOT, LOW,true);
return OK;
}
uint32_t Thread_Load_Lift_Dancers(void)
@@ -511,9 +509,7 @@
CallbackCounter++;
// MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID,MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID].directionthreadwize, 200, Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID], Thread_Load_HomingCallback,10000);
MotorGotoWithCallback(HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID, 2, Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID], Thread_Load_HomingCallback,10000);
-#ifdef Use_Head_Card
- HeadCard_Actuators_Control(ACTOT, LOW,false);
-#endif
+ Trigger_Head_Actuators_Control(ACTOT, LOW,false);
return OK;
}
uint32_t Thread_Load_Resume_Heating(void)
@@ -538,7 +534,7 @@
{
REPORT_MSG(LoadStages, "Thread Load State Machine step");
CallbackCounter++;
- MotorMovetoDancerPosition (HARDWARE_MOTOR_TYPE__MOTO_RDRIVING,MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RDRIVING].directionthreadwize, 100, FEEDER_DANCER ,true, Thread_Load_Jog_Feeder_To_Middle_Point_Callback,4000);
+ MotorMovetoDancerPosition (HARDWARE_MOTOR_TYPE__MOTO_RDRIVING,MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RDRIVING].directionthreadwize, 400, FEEDER_DANCER ,true, Thread_Load_Jog_Feeder_To_Middle_Point_Callback,4000);
return OK;
}
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
index 2484b9444..59b5642fb 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
@@ -300,12 +300,7 @@ uint32_t PoolerThreadLengthCBFunction(uint32_t IfIndex, uint32_t ReadValue)
{
if (PrepareState == true)
{
-//#ifdef Use_Head_Card
-// strcpy(Lenstr,"Heating up");
-//#else
- //later - add temperatures
- TemperatureListString(Lenstr);
-//#endif
+ TemperatureListString(Lenstr);
SendJobProgress(0.0,0,false, Lenstr);
}
else
@@ -505,6 +500,10 @@ uint32_t ThreadControlCBFunction(uint32_t IfIndex, uint32_t ReadValue)
{
//pooler dancer is right sided: data is opposite
TranslatedReadValue = (-1*TranslatedReadValue);
+ }
+ if (index == POOLER_MOTOR)
+ {
+ //pooler dancer is right sided: data is opposite
JobCounter++;
}
//TranslatedReadValue = 0;//test
diff --git a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c
index 3c67dd8e1..5fcab9c13 100644
--- a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c
+++ b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c
@@ -327,11 +327,11 @@ bool SetWastePump( bool power)
// if (( power == OPEN ) && (WHS_info.WHS_sensors.cartridge_cover == CLOSE))
if ( power == OPEN )
{
-#ifdef Use_WHS_Card
- Trigger_SetWHSPump(OPEN);
-#else
- Pumps_Control(WHS_WTANKPUMP2, OPEN); //waste_pump_power_on();
-#endif
+ if (WHS_Type == WHS_TYPE_UNKNOWN)
+ Pumps_Control(WHS_WTANKPUMP2, OPEN); //waste_pump_power_on();
+ else //new WHS
+ Trigger_SetWHSPump(OPEN);
+
REPORT_MSG(WHS_empty," ------------ WHS WHS_empty start PUMP ----------------- ");
WHS_info.WHS_pump.status = OPEN;
WHS_info.WHS_pump.time = STARTCOUNT;
@@ -339,11 +339,10 @@ bool SetWastePump( bool power)
}
else
{
-#ifdef Use_WHS_Card
- Trigger_SetWHSPump(CLOSE);
-#else
- Pumps_Control(WHS_WTANKPUMP2, CLOSE); //waste_pump_power_on();
-#endif
+ if (WHS_Type == WHS_TYPE_UNKNOWN)
+ Pumps_Control(WHS_WTANKPUMP2, CLOSE); //waste_pump_power_on();
+ else //new WHS
+ Trigger_SetWHSPump(CLOSE);
REPORT_MSG(WHS_empty," ------------ WHS WHS_empty stop PUMP ----------------- ");
WHS_info.WHS_pump.status = CLOSE;
WHS_info.WHS_pump.time = STOPCOUNT;
@@ -374,12 +373,11 @@ bool SetValveDirection()
}
ReportWithPackageFilter(WasteFilter,"------------WHS_info.WHS_valve -----------------", __FILE__,__LINE__,WHS_info.WHS_valve, RpMessage, 0 ,0);
-
-#ifdef Use_WHS_Card
- Trigger_SetWHSValveWatseCartridge(WHS_info.WHS_valve);
-#else
+ if (WHS_Type == WHS_TYPE_UNKNOWN)
Valve_Set(VALVE_WASTE_TANK, WHS_info.WHS_valve);
-#endif
+ else //new WHS
+ Trigger_SetWHSValveWatseCartridge(WHS_info.WHS_valve);
+
//ret = OK;
return ret;
@@ -406,11 +404,11 @@ U8 CartridgeWasteFilling(bool status)
{
SetWastePump(CLOSE);
WHS_info.WHS_valve = VALVE_DIR_WASTE_CARTRIDGE1;
-#ifdef Use_WHS_Card
- Trigger_SetWHSValveWatseCartridge(WHS_info.WHS_valve);
-#else
- Valve_Set(VALVE_WASTE_TANK, WHS_info.WHS_valve);
-#endif
+ if (WHS_Type == WHS_TYPE_UNKNOWN)
+ Valve_Set(VALVE_WASTE_TANK, WHS_info.WHS_valve);
+ else //new WHS
+ Trigger_SetWHSValveWatseCartridge(WHS_info.WHS_valve);
+
AlarmHandlingSetAlarm( EVENT_TYPE__ALL_WASTE_CARTRIDGES_FULL, true);
switch (WHS_info.active_cartridge)
@@ -641,8 +639,8 @@ bool WasteTankCBFunction()
break;
if ((WHS_info.WHS_sensors.cartridge_cover == OPEN) && (WHS_info.WHS_sensors.waste_tank_full_sensor == SENSORFULL))
{
- REPORT_MSG(WHS_emptying," ------------ WHS_full , cartridge cover is open cant start the pump!!!! ----------------- ");
- REPORT_MSG(WHS_emptying," ------------ close the cartridge cover to start the pump!!!! ----------------- ");
+ ReportWithPackageFilter(WasteFilter,"------------ WHS_full , cartridge cover is open cant start the pump!!!! ----------------- ", __FILE__,__LINE__,(int)(WHS_emptying), RpMessage, (int)(WHS_info.WHS_sensors.cartridge_cover), 0);
+ ReportWithPackageFilter(WasteFilter,"------------ close the cartridge cover to start the pump!!!! ----------------- ", __FILE__,__LINE__,(int)(WHS_emptying), RpMessage, (int)(WHS_info.WHS_sensors.cartridge_cover), 0);
//pump_on_flag = OPEN;
AlarmHandlingSetAlarm( EVENT_TYPE__NO_WASTE_CARTRIDGE_AVAILABLE, true);
@@ -1268,11 +1266,10 @@ U8 WHS_init(void)
{
SetWastePump(CLOSE);
WHS_info.WHS_valve = VALVE_DIR_WASTE_CARTRIDGE1;
-#ifdef Use_WHS_Card
- Trigger_SetWHSValveWatseCartridge(WHS_info.WHS_valve);
-#else
+ if (WHS_Type == WHS_TYPE_UNKNOWN)
Valve_Set(VALVE_WASTE_TANK, WHS_info.WHS_valve);
-#endif
+ else //new WHS
+ Trigger_SetWHSValveWatseCartridge(WHS_info.WHS_valve);
//Valve_Set(VALVE_WASTE_TANK, VALVE_DIR_WASTE_CARTRIDGE1);
InitCartStatus();
initWHS_WasteTank();
@@ -1339,12 +1336,10 @@ U8 SetValve(bool value)
{
bool ret = OK;
WHS_info.WHS_valve = value;
-#ifdef Use_WHS_Card
- Trigger_SetWHSValveWatseCartridge(WHS_info.WHS_valve);
-#else
+ if (WHS_Type == WHS_TYPE_UNKNOWN)
Valve_Set(VALVE_WASTE_TANK, WHS_info.WHS_valve);
-#endif
-
+ else //new WHS
+ Trigger_SetWHSValveWatseCartridge(WHS_info.WHS_valve);
return ret;
}
diff --git a/Software/Embedded_SW/Embedded/Modules/Waste/newWHS_init.c b/Software/Embedded_SW/Embedded/Modules/Waste/newWHS_init.c
index c42546d1b..a255f55a0 100644
--- a/Software/Embedded_SW/Embedded/Modules/Waste/newWHS_init.c
+++ b/Software/Embedded_SW/Embedded/Modules/Waste/newWHS_init.c
@@ -53,7 +53,7 @@ bool newWHS_init(void)
// //test_9555();
// status |= WHS_I2C_EEprom_Write_Ch_shai_taest();
- Set_All_WHS_Fans(0xFF);
+ //Set_All_WHS_Fans(0xFF);
// delayms(4000);
//Trigger_SetWHSBlowerVoltage (0x0C00);