diff options
| author | Ronen Sberlo <ronen.s@twine-s.com> | 2020-10-27 14:38:11 +0200 |
|---|---|---|
| committer | Ronen Sberlo <ronen.s@twine-s.com> | 2020-10-27 14:38:11 +0200 |
| commit | fba4984f4d08397f7f1b897953d5d8cb068ee2bc (patch) | |
| tree | b2f68c048de180b093ea4f694b47955df436f473 /Software/Embedded_SW/Embedded/Modules/IFS | |
| parent | c1dbc0def7c7401432195461df5eb4face4025ba (diff) | |
| download | Tango-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.c | 26 |
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); |
