aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules
diff options
context:
space:
mode:
authorAvi Levkovich <avi@twine-s.com>2020-02-17 16:07:38 +0200
committerAvi Levkovich <avi@twine-s.com>2020-02-17 16:07:38 +0200
commitef657b4a3ae76e99ab077d6b4fc19691c2a0da4a (patch)
treee60f97eee0076c674d27a1d2c0be8314c4e5de7e /Software/Embedded_SW/Embedded/Modules
parentdabfdff468c7065ceadaaf2fbe95e8eeaa3c2f9e (diff)
downloadTango-ef657b4a3ae76e99ab077d6b4fc19691c2a0da4a.tar.gz
Tango-ef657b4a3ae76e99ab077d6b4fc19691c2a0da4a.zip
merge
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c8
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/buttons.c66
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c3
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c7
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c29
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c12
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c1
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread_init.c5
8 files changed, 84 insertions, 47 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
index 2c6040bab..4f6a40c90 100644
--- a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
+++ b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
@@ -187,7 +187,7 @@ void LoadConfigurationParameters(ConfigurationParameters *Params)
EmbeddedParameters->has_initialdispenserpressure = true;
EmbeddedParameters->initialdispenserpressure = 0.25;
EmbeddedParameters->has_initialdispensertimeout = true;
- EmbeddedParameters->initialdispensertimeout = 60000;
+ EmbeddedParameters->initialdispensertimeout = 180000;
EmbeddedParameters->has_initialdispensertimelag = true;
EmbeddedParameters->initialdispensertimelag = 100;
EmbeddedParameters->has_dispenserbuildpressurespeed = true;
@@ -209,7 +209,7 @@ void LoadConfigurationParameters(ConfigurationParameters *Params)
EmbeddedParameters->has_midtankpressurecorrection = true;
EmbeddedParameters->midtankpressurecorrection = 0.0;
EmbeddedParameters->has_dispenserpresegmentwfcf = true;
- EmbeddedParameters->dispenserpresegmentwfcf = 80;
+ EmbeddedParameters->dispenserpresegmentwfcf = 40;
EmbeddedParameters->has_startheatingoninitsequence = true;
EmbeddedParameters->startheatingoninitsequence = true; //set to true shlomo 14/5/2019
EmbeddedParameters->n_generalparameters = 8;
@@ -252,7 +252,7 @@ void LoadConfigurationParameters(ConfigurationParameters *Params)
EmbeddedParameters->has_idlemixertemperature = true;
EmbeddedParameters->idlemixertemperature = 0;
EmbeddedParameters->has_powerofftemperaturelimit = true;
- EmbeddedParameters->powerofftemperaturelimit = 50;
+ EmbeddedParameters->powerofftemperaturelimit = 90;
EmbeddedParameters->has_ids_presegment_wfcf_timebeforesegment = true;
EmbeddedParameters->ids_presegment_wfcf_timebeforesegment = 20000;
uint8_t* response_buffer = my_malloc(configuration_parameters__get_packed_size(EmbeddedParameters));
@@ -494,7 +494,7 @@ uint32_t HWConfiguration(UploadHardwareConfigurationRequest* UploadRequest)
}
BlowerCfg.enabled = true;
- BlowerCfg.voltage = 3000;
+ BlowerCfg.voltage = 2650;
BlowerCfg.heatingvoltage = 3000;
if (WHS_Type == WHS_TYPE_UNKNOWN)
blowerType = HARDWARE_BLOWER_TYPE__WHSBlower2;
diff --git a/Software/Embedded_SW/Embedded/Modules/General/buttons.c b/Software/Embedded_SW/Embedded/Modules/General/buttons.c
index 50fd0ad16..7326dc039 100644
--- a/Software/Embedded_SW/Embedded/Modules/General/buttons.c
+++ b/Software/Embedded_SW/Embedded/Modules/General/buttons.c
@@ -280,36 +280,57 @@ uint32_t ButtonJogCBFunction(uint32_t IfIndex, uint32_t ReadValue)
case sttDISABLE:
if (JobIsActive() == false)
{
+ ReportWithPackageFilter(GeneralFilter,"------------ joggingMachine: jog.state=sttDISABLE , JobIsActive() == false-----------------", __FILE__,__LINE__,jog.state, RpMessage, jog.Action, 0);
jog.color = colorON;
Pannel_Leds(THREAD_JOGGING, MODE_ON);
jog.state = sttENABLE;
}
break;
case sttENABLE:
- if (jog.Action == COUNTPB)
+ if (JobIsActive() == true)
{
- ReportWithPackageFilter(GeneralFilter,"------------ joggingMachine: Jogging is sttENABLE and PRESS-----------------", __FILE__,__LINE__,0, RpMessage, 0, 0); jog.state = sttJOGGING;
- jog.color = colorON;
- jog.color = BLINK;
- ThreadJoggingFunc(40);
- jog.state = sttJOGGING;
+ ReportWithPackageFilter(GeneralFilter,"------------ joggingMachine: Jogging is Disable -----------------", __FILE__,__LINE__,jog.state, RpMessage, jog.Action, 0);
+ jog.Action = OFFPB;
+ jog.color = colorOFF;
+ Pannel_Leds(THREAD_JOGGING,MODE_OFF);
+ jog.state = sttDISABLE;
}
else
{
- if (JobIsActive() == true)
+ if (jog.Action == COUNTPB)
{
- ReportWithPackageFilter(GeneralFilter,"------------ joggingMachine: Jogging is Disable -----------------", __FILE__,__LINE__,0, RpMessage, 0, 0);
- jog.Action = OFFPB;
- jog.color = colorOFF;
- Pannel_Leds(THREAD_JOGGING,MODE_OFF);
- jog.state = sttDISABLE;
+ ReportWithPackageFilter(GeneralFilter,"------------ joggingMachine: Jogging is sttENABLE and PRESS-----------------", __FILE__,__LINE__,jog.state, RpMessage, jog.Action, 0);
+ jog.color = colorON;
+ jog.color = BLINK;
+ ThreadJoggingFunc(40);
+ jog.state = sttJOGGING;
}
}
+
+// if (jog.Action == COUNTPB)
+// {
+// ReportWithPackageFilter(GeneralFilter,"------------ joggingMachine: Jogging is sttENABLE and PRESS-----------------", __FILE__,__LINE__,0, RpMessage, 0, 0);
+// jog.color = colorON;
+// jog.color = BLINK;
+// ThreadJoggingFunc(40);
+// jog.state = sttJOGGING;
+// }
+// else
+// {
+// if (JobIsActive() == true)
+// {
+// ReportWithPackageFilter(GeneralFilter,"------------ joggingMachine: Jogging is Disable -----------------", __FILE__,__LINE__,0, RpMessage, 0, 0);
+// jog.Action = OFFPB;
+// jog.color = colorOFF;
+// Pannel_Leds(THREAD_JOGGING,MODE_OFF);
+// jog.state = sttDISABLE;
+// }
+// }
break;
case sttJOGGING:
if (jog.Action == SHORTPB) //PB is OFF
{
- ReportWithPackageFilter(GeneralFilter,"------------ joggingMachine: sttJOGGING action->SHORTPB-----------------", __FILE__,__LINE__,0, RpMessage, 0, 0); jog.state = sttJOGGING;
+ ReportWithPackageFilter(GeneralFilter,"------------ joggingMachine: sttJOGGING action SHORTPB, sttJOGGING -> sttENABLE, stop JOGGING----------------", __FILE__,__LINE__,jog.state, RpMessage, jog.Action, 0);
ThreadAbortJoggingFunc();
jog.color = colorON;
Pannel_Leds(THREAD_JOGGING, MODE_ON);
@@ -317,26 +338,25 @@ uint32_t ButtonJogCBFunction(uint32_t IfIndex, uint32_t ReadValue)
}
else if (jog.Action == LONGPB)
{
- ReportWithPackageFilter(GeneralFilter,"------------ joggingMachine: sttJOGGING action->LONGPB-----------------", __FILE__,__LINE__,0, RpMessage, 0, 0); jog.state = sttJOGGING;
+ ReportWithPackageFilter(GeneralFilter,"------------ joggingMachine: sttJOGGING action LONGPB, sttJOGGING -> sttLONG_JOGGING-----------------", __FILE__,__LINE__, jog.state, RpMessage, jog.Action, 0);
jog.state = sttLONG_JOGGING;
- if (JobIsActive() == false) // added because sometimes the jog stops because of another reason and the button s stucked blinking
- {
- jog.color = colorON;
- Pannel_Leds(THREAD_JOGGING, MODE_ON);
- jog.state = sttENABLE;
- }
-
}
break;
case sttLONG_JOGGING:
if (jog.Action == COUNTPB)
{
- ReportWithPackageFilter(GeneralFilter,"------------ joggingMachine: sttLONG_JOGGING action->COUNTPB-----------------", __FILE__,__LINE__,0, RpMessage, 0, 0); jog.state = sttJOGGING;ThreadAbortJoggingFunc(); // to do!!!!
+ ReportWithPackageFilter(GeneralFilter,"------------ joggingMachine: sttLONG_JOGGING action COUNTPB, sttLONG_JOGGING -> sttENABLE, stop JOGGING-----------------", __FILE__,__LINE__, jog.state, RpMessage, jog.Action, 0);
ThreadAbortJoggingFunc();
jog.color = colorON;
Pannel_Leds(THREAD_JOGGING, MODE_ON);
jog.state = sttENABLE;
}
+ if (JobIsActive() == false) // added because sometimes the jog stops because of another reason and the button s stucked blinking
+ {
+ jog.color = colorON;
+ Pannel_Leds(THREAD_JOGGING, MODE_ON);
+ jog.state = sttENABLE;
+ }
break;
default:
break;
@@ -556,7 +576,7 @@ return OK;
uint32_t LoadStatMachine( button *pBtn)
{
- ReportWithPackageFilter(GeneralFilter,"------------ start loading -----------------", __FILE__,__LINE__,pBtn->state, RpMessage, pBtn->color, 0);
+ ReportWithPackageFilter(GeneralFilter,"------------ (state) (color) -----------------", __FILE__,__LINE__,pBtn->state, RpMessage, pBtn->color, 0);
switch (pBtn->state)
{
case sttRDY :
diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
index 82f7e300f..290e65fa9 100644
--- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
@@ -1492,14 +1492,13 @@ uint32_t DrierHeaterVlotageSetup(double voltage)
if (Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD) //rapid/pp machines
{
DrierAcVoltage = ReadVAC();
- //if ()
}
else
{
UseSecondaryDrierHeater = true;
}
-
+return OK;
}
uint32_t HeatersControlLoop(uint32_t tick)
{
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c
index 9ad8d485b..68da1317b 100644
--- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c
+++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c
@@ -90,7 +90,11 @@ AutoHoming_Config_enum AutoHoming_Config = AutoHoming_off;
void IDS_Dispenser_SetAutoHoming_Config(AutoHoming_Config_enum Config)
{
Report("IDS_Dispenser_SetAutoHoming_Config ",__FILE__,__LINE__,Config,RpWarning,AutoHoming_Config,0);
+#ifdef SPECIAL_DISPENSERS
+ AutoHoming_Config = AutoHoming_off;
+#else
AutoHoming_Config = Config;
+#endif
}
void IDS_Dispenser_SetBackLashValues(double initialdispenserpressure, uint32_t initialdispensertimeout, uint32_t initialdispensertimelag, uint32_t initialdispenserspeed)
@@ -544,7 +548,8 @@ void IDS_Dispenser_Init(uint8_t DispenserId)
PrimingActive[DispenserId]= false;
Valve_Set(IDS_Id_to_AirValve[DispenserId], Atm_MidTank_OFF);
Control3WayValvesWithCallback ((Valves_t)DispenserId, MidTank_Dispenser, NULL); //direction: MidTank_Dispenser or Dispenser_Mixer
+#ifdef SPECIAL_DISPENSERS
if (ControlIdtoInactiveDispenserId[DispenserId] == 0xFF)
ControlIdtoInactiveDispenserId[DispenserId] = AddControlCallback("IDS_Check_Pressure", IDS_Check_Pressure_Callback, eOneMinute,TemplateDataReadCBFunction ,DispenserId, 0, 0 );
-
+#endif
}
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
index 04abb6870..14718ab0e 100644
--- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
@@ -1033,6 +1033,8 @@ uint32_t IDS_Cleaning_Stop_Cleaning_Solution (callback_fptr callback);
if (CurrentDispenserSpeed[CLEANER_DISPENSER]>0)
IDS_Cleaning_Stop_Cleaning_Solution (NULL);
setRapidPressureRead(false);
+ if (JobEndSequence == true)
+ DistanceToSpoolReady(Module_IDS,ModuleDone);
}
if (EnableCleaning == true)
{
@@ -1510,7 +1512,7 @@ uint32_t IDSSegmentState(void *SegmentDetails, int SegmentId)
#else
Valve_Set(VALVE_MIXCHIP_WASTECH, Mixer_Head);
#endif
- //IDS_Cleaning_Stop_Cleaning_Solution(NULL);
+ IDS_Cleaning_Stop_Cleaning_Solution(NULL);
SegmentNumOfBrushStops = Segment->n_brushstops;
BrushStopTime = Segment->length*1000/(double)SegmentNumOfBrushStops; //brushstop in meters //brushstop in millisecond
BrushStopTime = ((BrushStopTime*100)/dyeingspeed);//brushstop in seconds
@@ -1537,7 +1539,7 @@ uint32_t IDSSegmentState(void *SegmentDetails, int SegmentId)
if (DispenserPreSegmentControlId != 0xFF)
{
Report("IDS presegment not yet ended!!",__FILE__,__LINE__,(int)InterSegmentStepsCount,RpWarning,(int)lInterSegmentLength,0);
- IDS_Cleaning_Stop_Cleaning_Solution (NULL);
+ //IDS_Cleaning_Stop_Cleaning_Solution (NULL);
RemoveControlCallback(DispenserPreSegmentControlId, IDSPreSegmentStateCallbackRunner );
DispenserPreSegmentControlId = 0xFF;
}
@@ -1601,17 +1603,18 @@ uint32_t IDSSegmentState(void *SegmentDetails, int SegmentId)
for (Dispenser_i = 0;Dispenser_i < MAX_DYE_DISPENSERS;Dispenser_i++)
{
DispenserDistanceToSpoolReady[Dispenser_i] = true;
- if (DispenserUsedInJob[Dispenser_i]==false)//unconfigured dispenser
- continue;
- DispenserDistanceToSpoolReady[Dispenser_i] = false;
-#ifdef SPECIAL_DISPENSERS
- IDS_Dispenser_Close_Valve_And_Stop_Motor(Dispenser_i,NULL);
-#else
- MotorStop(DispenserIdToMotorId[Dispenser_i],Hard_Hiz);
-#endif
- Control3WayValvesWithCallback ((Valves_t)Dispenser_i, MidTank_Dispenser, IDS_Valve_DistanceToSpoolValveReady); //direction: MidTank_Dispenser or Dispenser_Mixer
- CurrentDispenserSpeed[Dispenser_i] = 0;
- //IDS_Dispenser_Close_Valve_And_Stop_Motor(Dispenser_i,IDS_Valve_DistanceToSpoolValveReady);
+ if (DispenserUsedInJob[Dispenser_i]==true)//unconfigured dispenser
+ {
+ DispenserDistanceToSpoolReady[Dispenser_i] = false;
+ #ifdef SPECIAL_DISPENSERS
+ IDS_Dispenser_Close_Valve_And_Stop_Motor(Dispenser_i,NULL);
+ #else
+ MotorStop(DispenserIdToMotorId[Dispenser_i],Hard_Hiz);
+ #endif
+ Control3WayValvesWithCallback ((Valves_t)Dispenser_i, MidTank_Dispenser, IDS_Valve_DistanceToSpoolValveReady); //direction: MidTank_Dispenser or Dispenser_Mixer
+ CurrentDispenserSpeed[Dispenser_i] = 0;
+ //IDS_Dispenser_Close_Valve_And_Stop_Motor(Dispenser_i,IDS_Valve_DistanceToSpoolValveReady);
+ }
}
//cleaning
diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
index 76c6579da..677d3fa5f 100644
--- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
@@ -10,6 +10,7 @@
#include "Drivers/USB_Communication/USBCDCD.h"
#include "StateMachines/Initialization/PowerOffSequence.h"
+#include "StateMachines/Initialization/PowerIdle.h"
#include "drivers/Flash_Memory/FATFS/ff.h"
#include "drivers/Flash_Memory/FATFS/Control_File_System.h"
@@ -116,7 +117,16 @@ void Stub_ProgressRequest(MessageContainer* requestContainer)
} //Trigger_WHS_Set_Volt_Blower_Control(request->delay);
}
else
- if(request->amount == 0x3EA)
+ if (request->amount == 0x3E7) // set WHS Blower speed by Q value
+ {
+ if (WHS_Type == WHS_TYPE_NEW)
+ {
+ Trigger_WHS_Set_Blower_Control_Closed_Loop (request->delay);
+ response.progress = 0;
+ response.has_progress = true;
+ } //Trigger_WHS_Set_Volt_Blower_Control(request->delay);
+ }
+ else if(request->amount == 0x3EA)
{
uint16_t tempu16 = 0;
if (WHS_Type == WHS_TYPE_NEW)
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c
index 4ab59ec19..128564586 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c
@@ -1422,6 +1422,7 @@ uint32_t StopThreadLoadingFunc(MessageContainer* requestContainer)
MessageContainer responseContainer;
MessageState = 2;
Thread_Load_End();
+ MCU_E2PromProgram(EEPROM_STORAGE_DRYER_CYCLES,numberOfCycles);
Report("StopThreadLoadingFunc",__FILE__,__LINE__,0xFF,RpWarning,(int)LoadStages,0);
responseContainer = createContainer(MESSAGE_TYPE__StopThreadLoadingResponse, requestContainer->token, true, &Cresponse, &stop_thread_loading_response__pack, &stop_thread_loading_response__get_packed_size);
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_init.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_init.c
index ec705c2d2..fb3b78752 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_init.c
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_init.c
@@ -73,15 +73,14 @@ uint32_t MotorsConfigMessage(HardwareConfiguration * HWrequest)
MotorsCfg[Motor_i].pulseperround = request->pulseperround;
MotorsCfg[Motor_i].pulleyradius = request->pulleyradius;
MotorsCfg[Motor_i].configword = request->configword;
- MotorsCfg[Motor_i].directionthreadwize = request->directionthreadwize;//L6470 + L6472
-/* if(MotorDriverResponse[Motor_i].DriverType != CombinrdMotDriver)
+ if(MotorDriverResponse[Motor_i].DriverType == CombinrdMotDriver)
{
MotorsCfg[Motor_i].directionthreadwize = request->directionthreadwize ^ 1;//PowerSTEP01
}
else
{
MotorsCfg[Motor_i].directionthreadwize = request->directionthreadwize;//L6470 + L6472
- }*/
+ }
MotorsCfg[Motor_i].kvalhold = request->kvalhold;
MotorsCfg[Motor_i].kvalrun = request->kvalrun;
MotorsCfg[Motor_i].kvalacc = request->kvalacc;