aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules/IFS
diff options
context:
space:
mode:
authorRonen Sberlo <ronen.s@twine-s.com>2020-10-27 14:38:11 +0200
committerRonen Sberlo <ronen.s@twine-s.com>2020-10-27 14:38:11 +0200
commitfba4984f4d08397f7f1b897953d5d8cb068ee2bc (patch)
treeb2f68c048de180b093ea4f694b47955df436f473 /Software/Embedded_SW/Embedded/Modules/IFS
parentc1dbc0def7c7401432195461df5eb4face4025ba (diff)
downloadTango-fba4984f4d08397f7f1b897953d5d8cb068ee2bc.tar.gz
Tango-fba4984f4d08397f7f1b897953d5d8cb068ee2bc.zip
cartridge state update
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules/IFS')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IFS/ifs.c26
1 files changed, 18 insertions, 8 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/IFS/ifs.c b/Software/Embedded_SW/Embedded/Modules/IFS/ifs.c
index d62ad3a43..b8b1915c4 100644
--- a/Software/Embedded_SW/Embedded/Modules/IFS/ifs.c
+++ b/Software/Embedded_SW/Embedded/Modules/IFS/ifs.c
@@ -28,6 +28,7 @@
#include "drivers/Valves/Valve.h"
#include "../control/control.h"
#include "Modules/General/buttons.h"
+#include "Modules/General/MachineStatus.h"
#define CARTRIDGE_EMPTY_QUANTITY_LIMIT 10
#define CARTRIDGE_EMPTY_CALCULATION_TIME 12
@@ -154,6 +155,14 @@ bool CartridgeInkFull()
}
#endif
+int GetCartridgeFillPercent()
+{
+ double MidTank_Pressure = 0;
+
+ MidTank_Pressure = Read_MidTank_Pressure_Sensor(midTankCartColor);
+ return (((MidTank_Pressure - midTankCapacity)* 100) / CARTRIDGE_CAPATICY);
+}
+
bool midTankCart_door()
{
bool door;
@@ -276,7 +285,7 @@ void midTankStateMachine(void)
break;
}
//check RFID? (TBD)
- //IFS_State = CARTRIDGE_STATE__Inserted;
+ CartridgeStateUpdate(CARTRIDGE_SLOT__Ink, CARTRIDGE_STATE__Inserted, 0);
// send request for validation to ppc
inkAuthenticationPass = 2; //not defined
@@ -298,13 +307,13 @@ void midTankStateMachine(void)
Report("MidTank Cartridge authentication wait...", __FILE__, __LINE__, authenticationTimeOutCounter, RpMessage, 0, 0);
if (authenticationTimeOutCounter > 60) {
midTankState = MidTankStateIdle;
- //IFS_State = CARTRIDGE_STATE__Error;
+ CartridgeStateUpdate(CARTRIDGE_SLOT__Ink, CARTRIDGE_STATE__Error, 0);
}
break;
}
if (inkAuthenticationPass == false) {
Report("MidTank Cartridge authentication fail", __FILE__, __LINE__, 0, RpMessage, 0, 0);
- //IFS_State = CARTRIDGE_STATE__Error;
+ CartridgeStateUpdate(CARTRIDGE_SLOT__Ink, CARTRIDGE_STATE__Error, 0);
midTankState = MidTankStateIdle;
break;
}
@@ -316,13 +325,13 @@ void midTankStateMachine(void)
cart1.color = fastBILNK;
Report("Mid-tank not empty", __FILE__, __LINE__, midTankCapacity, RpMessage, MidTankEmptyLimit, 0);
midTankState = MidTankStateIdle;
- //IFS_State = CARTRIDGE_STATE__Exists;
+ CartridgeStateUpdate(CARTRIDGE_SLOT__Ink, CARTRIDGE_STATE__Error, 0);
break;
}
Report("Mid-tank filling in process", __FILE__,__LINE__,(int)(MidTankEmptyLimit*1000), RpMessage, (int)(midTankCapacity*1000), 0);
Pannel_Leds(CART_1, MODE_ON);
cart1.color = BLINK;
- //IFS_State = CARTRIDGE_STATE__Filling;
+ CartridgeStateUpdate(CARTRIDGE_SLOT__Ink, CARTRIDGE_STATE__Filling, 0);
if (midTankCartColor == MIDTANK_8)
{
@@ -347,7 +356,7 @@ void midTankStateMachine(void)
Report("Cartridge extracted during filling!!!", __FILE__, __LINE__, midTankState, RpMessage, 0, 0);
Report("Mid-tank # filling fail", __FILE__, __LINE__, midTankState, RpMessage, 0, 0);
midTankState = MidTankStateIdle;
- //IFS_State = CARTRIDGE_STATE__Absent;
+ CartridgeStateUpdate(CARTRIDGE_SLOT__Ink, CARTRIDGE_STATE__Absent, GetCartridgeFillPercent());
}
// if time out or emptying done - idle
if (midTankTimeoutCounter++ > CartridgeInkTimeout) {
@@ -357,7 +366,7 @@ void midTankStateMachine(void)
MidTankValvesAction(Cartridge_MidTank_OFF);
Report("Mid-tank # filling fail", __FILE__, __LINE__, midTankState, RpMessage, 0, 0);
Report("Call customer support", __FILE__, __LINE__, midTankState, RpMessage, 0, 0);
- //IFS_State = CARTRIDGE_STATE__Error;
+ CartridgeStateUpdate(CARTRIDGE_SLOT__Ink, CARTRIDGE_STATE__Error, GetCartridgeFillPercent());
midTankState = MidTankStateIdle;
} else if (CartridgeInkFull()) {
midTankTimeoutCounter = 0;
@@ -366,8 +375,9 @@ void midTankStateMachine(void)
MidTankValvesAction(Cartridge_MidTank_OFF);
Report("Mid-tank # filling done", __FILE__, __LINE__, midTankState, RpMessage, 0, 0);
midTankState = MidTankStateIdle;
- //IFS_State = CARTRIDGE_STATE__FillingCompleted;
+ CartridgeStateUpdate(CARTRIDGE_SLOT__Ink, CARTRIDGE_STATE__FillingCompleted, GetCartridgeFillPercent());
}
+ CartridgeStateUpdate(CARTRIDGE_SLOT__Ink, CARTRIDGE_STATE__Filling, GetCartridgeFillPercent());
break;
default:
Report("wrong state", __FILE__, __LINE__, midTankState, RpMessage, 0, 0);