aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2019-08-15 17:30:18 +0300
committerRoy Ben-Shabat <Roy@Twine-s.com>2019-08-15 17:30:18 +0300
commitbeca75b89f9c227ce987abdd01e01fa911dfa91d (patch)
tree1d9b894df0299c004b608daee34cbd5c5a854668 /Software/Embedded_SW/Embedded/Modules
parentca9a080e283819b40c424d17332a18423ff6dcb1 (diff)
parentf22625f8edf038ffa01d561969dc14b849b6a866 (diff)
downloadTango-beca75b89f9c227ce987abdd01e01fa911dfa91d.tar.gz
Tango-beca75b89f9c227ce987abdd01e01fa911dfa91d.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/_git/Tango
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c19
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/control.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/control.h1
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c21
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c8
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Dispenser.c18
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c19
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c1
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Waste/Waste.h8
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c55
13 files changed, 82 insertions, 76 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
index 6f80fdffb..a6075ac09 100644
--- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
+++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
@@ -260,13 +260,14 @@ AlarmHandlingItemStruc HardCodedAlarmItem[MAX_SYSTEM_ALARMS]={
{eOneSecond,ALARM_SOURCE_TYPE__TemperatureAlarm,TEMP_SENSE_AN_ENCLOSURETEMP1, 0,40,true,DEBUG_LOG_CATEGORY__Warning,0xFF,0,EVENT_TYPE__MACHINE_INTERNAL_OVERTEMPERATURE },
{eOneSecond,ALARM_SOURCE_TYPE__TemperatureAlarm,TEMP_SENSE_AN_ENCLOSURETEMP2, 1,40,true,DEBUG_LOG_CATEGORY__Warning,0xFF,0,EVENT_TYPE__MACHINE_INTERNAL_OVERTEMPERATURE },
-
- {eHundredMillisecond,ALARM_SOURCE_TYPE__CoversAlarm,FrontDoor1_EC ,1,false,true,DEBUG_LOG_CATEGORY__Error, 0xFF,5,EVENT_TYPE__FRONT_COVER_1_OPEN},
- {eHundredMillisecond,ALARM_SOURCE_TYPE__CoversAlarm,FrontDoor2_PPC ,1,false,true,DEBUG_LOG_CATEGORY__Error, 0xFF,5,EVENT_TYPE__FRONT_COVER_2_OPEN},
- {eHundredMillisecond,ALARM_SOURCE_TYPE__CoversAlarm,FrontDoor3_DH_DRYER ,1,false,true,DEBUG_LOG_CATEGORY__Error, 0xFF,5,EVENT_TYPE__FRONT_COVER_3_OPEN},
- {eHundredMillisecond,ALARM_SOURCE_TYPE__CoversAlarm,FrontDoor4_MIDTANKS ,1,false,true,DEBUG_LOG_CATEGORY__Error, 0xFF,5,EVENT_TYPE__FRONT_COVER_4_OPEN},
- {eHundredMillisecond,ALARM_SOURCE_TYPE__CoversAlarm,RearDoor ,1,false,true,DEBUG_LOG_CATEGORY__Error, 0xFF,5,EVENT_TYPE__REAR_COVER_OPEN },
- {eHundredMillisecond,ALARM_SOURCE_TYPE__CoversAlarm,CartridgesDoor,1,false,true,DEBUG_LOG_CATEGORY__Warning,0xFF,5,EVENT_TYPE__CARTRIDGES_COVER_OPEN},
+/*
+ {eHundredMillisecond,ALARM_SOURCE_TYPE__CoversAlarm,FrontDoor1_EC ,1,true,true,DEBUG_LOG_CATEGORY__Error, 0xFF,5,EVENT_TYPE__FRONT_COVER_1_OPEN},
+ {eHundredMillisecond,ALARM_SOURCE_TYPE__CoversAlarm,FrontDoor2_PPC ,1,true,true,DEBUG_LOG_CATEGORY__Error, 0xFF,5,EVENT_TYPE__FRONT_COVER_2_OPEN},
+ {eHundredMillisecond,ALARM_SOURCE_TYPE__CoversAlarm,FrontDoor3_DH_DRYER,1,true,true,DEBUG_LOG_CATEGORY__Error, 0xFF,5,EVENT_TYPE__FRONT_COVER_3_OPEN},
+ {eHundredMillisecond,ALARM_SOURCE_TYPE__CoversAlarm,FrontDoor4_MIDTANKS,1,true,true,DEBUG_LOG_CATEGORY__Error, 0xFF,5,EVENT_TYPE__FRONT_COVER_4_OPEN},
+ {eHundredMillisecond,ALARM_SOURCE_TYPE__CoversAlarm,RearDoor ,1,true,true,DEBUG_LOG_CATEGORY__Error, 0xFF,5,EVENT_TYPE__REAR_COVER_OPEN },
+*/
+ {eHundredMillisecond,ALARM_SOURCE_TYPE__CoversAlarm,CartridgesDoor ,1,true,true,DEBUG_LOG_CATEGORY__Warning,0xFF,5,EVENT_TYPE__CARTRIDGES_COVER_OPEN},
{eOneSecond,ALARM_SOURCE_TYPE__TemperatureAlarm,MIXER_PT100, HARDWARE_PID_CONTROL_TYPE__MixerHeater ,9,false,DEBUG_LOG_CATEGORY__Warning,0xFF,0,EVENT_TYPE__MIXER_UNDERTEMPERATURE_A},
@@ -926,11 +927,11 @@ uint32_t AlarmHandlingLoop(uint32_t tick)
{
if (AlarmItem[Alarm_i].AlarmDirection == true)
{
- value = Read_Notification_Disp_UP(AlarmItem[Alarm_i].DeviceId,NULL);
+ value = Get_Notification_Disp_UP(AlarmItem[Alarm_i].DeviceId/*,NULL*/);
}
else
{
- value = Read_Notification_Disp_Down(AlarmItem[Alarm_i].DeviceId,NULL);
+ value = Get_Notification_Disp_Down(AlarmItem[Alarm_i].DeviceId/*,NULL*/);
}
}
else
diff --git a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
index fa94614fd..cdb8950e4 100644
--- a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
+++ b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
@@ -536,7 +536,7 @@ uint32_t MillisecLowLoop(uint32_t tick)
{
Speed_Data = Calculate_Speed_Sensor_Velocity();
Read_Buttons_Reg();
- Ink_Cart_Led();
+ //Ink_Cart_Led();
for (Sensor_i = 0;Sensor_i < MAX_TEMPERATURE_SENSOR_ID;Sensor_i++)
{
MillisecUpdateTemperatures (Sensor_i,TemperatureSensorRead(Sensor_i));
diff --git a/Software/Embedded_SW/Embedded/Modules/Control/control.c b/Software/Embedded_SW/Embedded/Modules/Control/control.c
index a88f67d5e..07214d240 100644
--- a/Software/Embedded_SW/Embedded/Modules/Control/control.c
+++ b/Software/Embedded_SW/Embedded/Modules/Control/control.c
@@ -158,7 +158,7 @@ uint32_t ControlActivityLed( uint32_t Parameter1)
{
static bool flag = false;
static uint8_t counter;
- const uint8_t Blink_Freq = 3;//odd number
+ const uint8_t Blink_Freq = 7;//odd number
if (flag==true)
{
diff --git a/Software/Embedded_SW/Embedded/Modules/Control/control.h b/Software/Embedded_SW/Embedded/Modules/Control/control.h
index ca76ec8e1..450646a68 100644
--- a/Software/Embedded_SW/Embedded/Modules/Control/control.h
+++ b/Software/Embedded_SW/Embedded/Modules/Control/control.h
@@ -47,7 +47,6 @@ int SafeRemoveHighControlCallback(uint32_t deviceId , ControlCBFunction
uint32_t TemplateDataReadCBFunction (uint32_t deviceId, uint32_t Parameter1);
uint32_t GetControlDevice_i(void);
uint32_t GetControlLowDevice_i(void);
-ControlCBFunction GetControlCallbackFuncPtr(uint32_t ControlId);
ControlCBFunction GetControlCallbackFuncPtr(uint32_t ControlId);
diff --git a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
index 777225d56..f5e33ed14 100644
--- a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
+++ b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
@@ -406,7 +406,7 @@ uint32_t HWConfiguration(UploadHardwareConfigurationRequest* UploadRequest)
upload_hardware_configuration_request__free_unpacked(UploadRequest,NULL);
return ERROR;
}
- Init_Dispensers_IO_Registers(&Disp_IO_Reg);
+ Init_Dispensers_IO_Registers(/*&Disp_IO_Reg*/);
if (request->n_breaksensors == 1)
{
ThreadConfigBreakSensor(request->breaksensors[0]);
diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
index 8e185750f..4789db31f 100644
--- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
@@ -272,7 +272,7 @@ void HeatersControlStart(void)
ReportWithPackageFilter(HeatersFilter,"HeatersControlStart ", __FILE__,__LINE__,0, RpMessage, 0, 0);
HeatersRestart = true;
HeatersStartControlTimer();
- for (i = 0; i< MAX_INTERNAL_ALARMS;i++)
+ for (i = 0; i< (MAX_INTERNAL_ALARMS-1);i++)
{
if (ControlIdtoInternalId [i] == 0xFF)
{
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
index 7a719d39a..3e68bc0a4 100644
--- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
@@ -69,6 +69,7 @@ int JobBrushStopId = 0;
int lInterSegmentLength = 0;
int InterSegmentStepsLimit = 0,InterSegmentStepsCount = 0;
bool PreSegmentWCFStarted = false;
+ bool PreSegmentPrepareStarted = false;
uint32_t InterSegmentStartSprayCleaner = 0;
uint32_t InterSegmentStartRocking = 0;
@@ -955,6 +956,7 @@ uint32_t IDS_Cleaning_Stop_Cleaning_Solution (callback_fptr callback);
{
//IDS_Valve_PresegmentReady(1,0);
Report("End of Pre-segment Handling",__FILE__,__LINE__,InterSegmentStepsCount,RpWarning,(int)lInterSegmentLength,0);
+ //PreSegmentReady(Module_IDS,ModuleDone);
SafeRemoveControlCallback(DispenserPreSegmentControlId,IDSPreSegmentStateCallbackRunner);
setRapidPressureRead(false);
}
@@ -977,14 +979,21 @@ uint32_t IDS_Cleaning_Stop_Cleaning_Solution (callback_fptr callback);
//IDS_Cleaning_Center_And_Stop_Rockers (int timeout,callback_fptr callback);
}
}
- if (PreSegmentWCFStarted == false)
+ if ((InterSegmentStartWFCFDispensers > 0)&&(InterSegmentStartWFCFDispensers == (InterSegmentStepsCount+12000)))
+ {
+ //start prepare 4 seconds before wcf
+ IDSPresegmentPrepareStart();
+ PreSegmentPrepareStarted = true;
+ }
+ if ((PreSegmentWCFStarted == false)&&(PreSegmentPrepareStarted == true))
{
IDS_PreSegmentPrepare_Callback(0,0);
}
- if ((InterSegmentStartWFCFDispensers > 0)&&(InterSegmentStartWFCFDispensers == (lInterSegmentLength-InterSegmentStepsCount)))
+ if ((InterSegmentStartWFCFDispensers > 0)&&(InterSegmentStartWFCFDispensers == InterSegmentStepsCount))
{
Report("start dispensers at rate * WFCF",__FILE__,__LINE__,InterSegmentStepsCount,RpWarning,(int)lInterSegmentLength,0);
PreSegmentWCFStarted = true; // stop any presegment prepare stages, if still exist
+ PreSegmentPrepareStarted = false;
setRapidPressureRead(false);
if (FileBrushStop)
{
@@ -1044,6 +1053,11 @@ uint32_t IDS_Cleaning_Stop_Cleaning_Solution (callback_fptr callback);
}
//startDispensersAtSegmentSpeed*1=WFCFClenerSpray(speed);
}
+ if ((InterSegmentStartWFCFDispensers > 0)&&((lInterSegmentLength-1000) == InterSegmentStepsCount))
+ {
+ //close waste valve one second before segment - trial
+ Valve_Set(VALVE_MIXCHIP_WASTECH, Mixer_Head);
+ }
return OK;
}
uint32_t IDSCheckSegmentData(void *SegmentDetails, int SegmentId)
@@ -1235,9 +1249,10 @@ uint32_t IDSPreSegmentState(void *SegmentDetails, int SegmentId)
}
//Task_sleep(5);
PreSegmentWCFStarted = false;
+ PreSegmentPrepareStarted = false;
REPORT_MSG(PreSegmentWCFStarted,"START IDSPresegmentPrepareStart");
- IDSPresegmentPrepareStart();
+// IDSPresegmentPrepareStart();
return OK;
}
//********************************************************************************************************************
diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
index d18833ca6..153ab0e43 100644
--- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
@@ -106,6 +106,14 @@ void Stub_ProgressRequest(MessageContainer* requestContainer)
response.has_progress = true;
}
+ else
+ if(request->amount == 0x0CC) //Cùøàøïâò÷ Vùêïâùàïíî ø÷ãôíîã÷
+ {
+ ResponseDemo(request->delay);
+ response.progress = (double)OK;
+ response.has_progress = true;
+
+ }
else if((request->amount == 0xDF) && (request->delay == 0xDF)) //Power off
{
PowerOffInit();
diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Dispenser.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Dispenser.c
index f3efa3b67..a548ce6f6 100644
--- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Dispenser.c
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Dispenser.c
@@ -34,34 +34,34 @@ void Stub_DispenserRequest(MessageContainer* requestContainer)
SysCtlDelay(100000);
*/
- TCA9534Regs Regs;
+ //TCA9534Regs Regs;
//static bool first_time = true;
//if(first_time == true)
//if ((Regs.Config[request->dispenserid].bit.DISP_DOWN != TCA9534_INPUT) || (Regs.Config[request->dispenserid].bit.DISP_UP!= TCA9534_INPUT))
//{
- status |= TCA9534Init(request->dispenserid, &Regs);
+ status |= TCA9534Init(request->dispenserid/*, &Regs*/,true);
//first_time = false;
//}
if(request->setdirection == true)
{
- TCA9534TestRelay(request->dispenserid, &Regs,ENABLE);
+ TCA9534TestRelay(request->dispenserid/*, &Regs*/,ENABLE);
}
else
- TCA9534TestRelay(request->dispenserid, &Regs,DISABLE);
+ TCA9534TestRelay(request->dispenserid/*, &Regs*/,DISABLE);
delayms(5);
if(request->start == true)
{
- TCA9534ByPass(request->dispenserid, &Regs, ENABLE);
+ TCA9534ByPass(request->dispenserid/*, &Regs*/, ENABLE);
}
else
- TCA9534ByPass(request->dispenserid, &Regs, DISABLE);
+ TCA9534ByPass(request->dispenserid/*, &Regs*/, DISABLE);
delayms(5);
@@ -88,16 +88,16 @@ void Stub_DispenserRequest(MessageContainer* requestContainer)
status |= TCA9534SetReadInputReg(request->dispenserid);
- status |= TCA9534ReadInputReg(request->dispenserid, &Regs);
+ status |= TCA9534ReadInputReg(request->dispenserid/*, &Regs*/);
response.dispenserid = request->dispenserid;
response.has_dispenserid = true;
- response.dispenserposition = (Read_Notification_Disp_UP(request->dispenserid, &Regs) << 8) | (Read_Notification_Disp_Down(request->dispenserid, &Regs));
+ response.dispenserposition = (Get_Notification_Disp_UP(request->dispenserid/*, &Regs*/) << 8) | (Get_Notification_Disp_Down(request->dispenserid/*, &Regs*/));
response.has_dispenserposition = true;
- response.inkworninglevel = (Read_Notification_Realy_On(request->dispenserid, &Regs) << 8) | (Read_Notification_Over_Press(request->dispenserid, &Regs));
+ response.inkworninglevel = (Get_Notification_Realy_On(request->dispenserid/*, &Regs*/) << 8) | (Get_Notification_Over_Press(request->dispenserid/*, &Regs*/));
response.has_inkworninglevel = true;
status_response(status,&response.status, &response.statusword ,&response.has_statusword);
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c
index 0ac23baf5..c5e124ad3 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c
@@ -90,6 +90,8 @@ uint32_t InternalWinderConfigMessage(HardwareWinder* request)
return status;
}
+char ScrewStr[150];
+
uint32_t InternalWindingConfigMessage(JobSpool* request)
{
uint32_t status = PASSED;
@@ -100,6 +102,9 @@ uint32_t InternalWindingConfigMessage(JobSpool* request)
InternalWinderCfg.SpoolBottomBackingRate = request->bottombackingrate;
InternalWinderCfg.NumberOfRotationPerPassage = 3.1415926*2;//request->rotationsperpassage;
InternalWinderCfg.diameter = request->diameter;
+ usnprintf(ScrewStr, 150, "WindingConfig start,offset,head,tail {, %d, %d, %d, %d, %d}",InternalWinderCfg.startoffsetpulses,(int)InternalWinderCfg.segmentoffsetpulses,
+ (int)InternalWinderCfg.spoolbackingrate,(int)InternalWinderCfg.SpoolBottomBackingRate);
+ Report(ScrewStr,__FILE__,__LINE__,(int)InternalWinderCfg.diameter,RpWarning,(int)(InternalWinderCfg.NumberOfRotationPerPassage*1000), 0);
return status;
}
@@ -257,7 +262,7 @@ InternalWinderCfg.segmentoffsetpulses
numOfSteps = InternalWinderCfg.startoffsetpulses*MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_SCREW].microstep;
*/
-char ScrewStr[150];
+
//char TempScrewStr[100];
double WinderReferenceSpeed=0;
double TotalWinderSpeed=0;
@@ -267,6 +272,10 @@ int flipflop = 0;
uint32_t motspeed;
float speedf;
int WinderCalculation = 0;
+#ifdef READ_SCREW_ENCODER
+float WinderRunAverage = 0.0,WinderRunSum = 0.0;
+int WinderRunSamples = 0;
+#endif
uint32_t Screw100msecDirectionChange(uint32_t deviceID, uint32_t BusyFlag)
{
//uint32_t Steps;
@@ -311,15 +320,17 @@ uint32_t Screw100msecDirectionChange(uint32_t deviceID, uint32_t BusyFlag)
return OK;
//double calcsteps = (ScrewRunningTime/SYS_CLK_FREQ)*ScrewSpeed;
#ifdef READ_SCREW_ENCODER
+ int WinderRun;
WinderRun = abs(ScrewLocationRun[1] - ScrewLocationRun[0]);
- if (WinderRun < 50000)
+ if ((WinderRun < 50000)&&(Add100 == false))
{
WinderRunSum+=WinderRun;
WinderRunSamples++;
WinderRunAverage = WinderRunSum/WinderRunSamples;
- if ((fabs(WinderRun-WinderRunAverage)>=50)||(WinderRunSamples%50 == 0))
+ if ((fabs(WinderRun-WinderRunAverage)>=30)||(WinderRunSamples%100 == 0))
{
- usnprintf(ScrewStr, 150, "curr,sum,avg,samples {Winder Encoder:, %d, %d, %d, %d }",WinderRun,(int)WinderRunSum,(int)WinderRunAverage,(int)WinderRunSamples);
+ usnprintf(ScrewStr, 150, "curr,sum,avg,samples {Winder Encoder:, %d, %d, %d, %d, %d}",WinderRun,(int)WinderRunSum,(int)WinderRunAverage,(int)WinderRunSamples,
+ (int)(100*WinderRun/ScrewNumberOfSteps));
Report(ScrewStr,__FILE__,__LINE__,CalculationDirectionChangeCounter,RpWarning,ScrewLocationStart, 0);
}
}
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
index a88ce61a5..9e77f2de8 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
@@ -288,7 +288,6 @@ uint32_t PoolerThreadLengthCBFunction(uint32_t IfIndex, uint32_t ReadValue)
//}
- length = (double)(positionDiff)*PoolerLengthCalculationMultiplier;
PoolerTotalProcessedLength+= (length/100);
TempPoolerTotalProcessedLength = PoolerTotalProcessedLength;
#ifndef FEEDER_LENGTH_CALCULATION
diff --git a/Software/Embedded_SW/Embedded/Modules/Waste/Waste.h b/Software/Embedded_SW/Embedded/Modules/Waste/Waste.h
index 5242aa3b1..39894ce2d 100644
--- a/Software/Embedded_SW/Embedded/Modules/Waste/Waste.h
+++ b/Software/Embedded_SW/Embedded/Modules/Waste/Waste.h
@@ -27,10 +27,14 @@ typedef unsigned char U8;
typedef enum
{
- CYAN = 1,
+ BLACK,
+ CYAN,
MAGENTA,
YELLOW,
- BLACK
+ TRANSPARENT,
+ SP_1,
+ CLEANER,
+ LUBRICANT
} CMYK_color;
typedef enum
diff --git a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c
index c7054e3bb..5dedfda85 100644
--- a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c
+++ b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c
@@ -188,44 +188,10 @@ bool IFS_TimeOutAlarm()
bool MidTankValvesAction(bool action) //Cartridge_MidTank_ON of Cartridge_MidTank_OFF
{
bool ret = false;
- switch (WHS_info.Ink.cart_color) //todo enter the correct color from RFID
- {
- case CYAN :
- Valve_Set( VALVE_2W_CART_MID_1, action); //Cartridge_MidTank_ON Cartridge_MidTank_OFF
- Valve_Set( VALVE_2W_MID_AIR_1 , action);
- break;
- case MAGENTA :
- Valve_Set( VALVE_2W_CART_MID_5, action);
- Valve_Set( VALVE_2W_MID_AIR_5 , action);
- break;
- case YELLOW :
- Valve_Set( VALVE_2W_CART_MID_2, action);
- Valve_Set( VALVE_2W_MID_AIR_2 , action);
- break;
- case BLACK :
- Valve_Set( VALVE_2W_CART_MID_6, action);
- Valve_Set( VALVE_2W_MID_AIR_6 , action);
- break;
- case 5 :
- Valve_Set( VALVE_2W_CART_MID_3, action);
- Valve_Set( VALVE_2W_MID_AIR_3 , action);
- break;
- case 6 :
- Valve_Set( VALVE_2W_CART_MID_7, action);
- Valve_Set( VALVE_2W_MID_AIR_7 , action);
- break;
- case 7 :
- Valve_Set( VALVE_2W_CART_MID_4, action);
- Valve_Set( VALVE_2W_MID_AIR_4 , action);
- break;
- case 8 :
- Valve_Set( VALVE_2W_CART_MID_8, action);
- Valve_Set( VALVE_2W_MID_AIR_8 , action);
- break;
- default: //wrong color
- break;
- }
+ Valve_Set(IDS_Id_to_AirValve[WHS_info.Ink.cart_color], action ); //Atm_MidTank_OFF/ON
+ Valve_Set(IDS_Id_to_CartrideValve[WHS_info.Ink.cart_color], action ); //Atm_MidTank_OFF/ON
+
ret = true;
return ret;
}
@@ -279,7 +245,7 @@ uint32_t ReadCartridgeData(cartridge_name cart_name)
uint8_t* container_buffer = my_malloc(message_container__get_packed_size(&responseContainer));
size_t container_size = message_container__pack(&responseContainer, container_buffer);
my_free(responseContainer.data.data);
- SendChars((char*)container_buffer, container_size);
+ //SendChars((char*)container_buffer, container_size);
return OK;
}
@@ -870,8 +836,8 @@ bool WasteTankCBFunction()
// is power down in process?? //todo
if ( !PowerOffInProcessGetState() ) // not in power down proccess
{
- //Pannel_Leds(CART_1, MODE_ON);
- cart1.color = BLINK;
+ Pannel_Leds(CART_1, MODE_ON);
+ //cart1.color = BLINK;
//Pannel_Leds(CART_2, MODE_ON);
// cart2.color = fastBILNK;
RdCartridgeParam(INK_cartridge); //todo
@@ -1068,8 +1034,11 @@ bool WasteTankCBFunction()
Disable_MidTank_Pressure_Reading(WHS_info.Ink.cart_color);
WHS_info.Cartridge_Ink_TimeOut_device_Id = RemoveControlCallback(WHS_info.Cartridge_Ink_TimeOut_device_Id, WasteTankCBFunction );
REPORT_MSG(WHS_full," ------------ Change cartridge status to Fail ----------------- ");
- REPORT_MSG(WHS_full," ------------ Display Mid-tank # filling fail ----------------- ");
+
MidTankValvesAction(Cartridge_MidTank_OFF);
+ cart1.color = fastBILNK;
+ REPORT_MSG(WHS_full," ------------ Display Mid-tank # filling fail ----------------- ");
+ REPORT_MSG(WHS_full," ------------ call customer support ----------------- ");
IFS_TimeOutAlarm();
break;
@@ -1149,7 +1118,7 @@ WHS_sensor CartridgeInkTimeOutCallBackFunction()
if (WHS_info.Ink.time_out) WHS_info.Ink.time_out += 1;
Read_MidTank_Pressure_Sensor(WHS_info.Ink.cart_color);
- if (Get_MidTank_Pressure_Sensor(WHS_info.Ink.time_out) >= WHS_info.MidTank_capacity + CARTRIDGE_CAPATICY)
+ if (Get_MidTank_Pressure_Sensor(WHS_info.Ink.cart_color) >= WHS_info.MidTank_capacity + CARTRIDGE_CAPATICY)
{
WHS_info.Ink.time_out = 0;
WHS_info.event = IFS_MidTankFull;
@@ -1168,7 +1137,7 @@ WHS_sensor CartridgeInkTimeOutCallBackFunction()
MidTankValvesAction(Cartridge_MidTank_OFF);
}
- if (WHS_info.Ink.time_out == (CARTRIDGE_INK_TIMEOUT+1))
+ if (WHS_info.Ink.time_out == (CARTRIDGE_INK_TIMEOUT+1)) //need to open the valve for second chance
{
MidTankValvesAction(Cartridge_MidTank_ON);
}