diff options
| author | Ronen Sberlo <ronen.s@twine-s.com> | 2020-11-17 10:31:13 +0200 |
|---|---|---|
| committer | Ronen Sberlo <ronen.s@twine-s.com> | 2020-11-17 10:31:13 +0200 |
| commit | 618d8e5006d19aad8cf57c4a3ffb7c8293292b90 (patch) | |
| tree | 0dffcf6e40ab50680f1cb3bd74de38df3bf03f45 /Software/Embedded_SW | |
| parent | e29b3fcf2531b0c50cf1707e552ba72baa060800 (diff) | |
| download | Tango-618d8e5006d19aad8cf57c4a3ffb7c8293292b90.tar.gz Tango-618d8e5006d19aad8cf57c4a3ffb7c8293292b90.zip | |
waste/ifs ppc status update
Diffstat (limited to 'Software/Embedded_SW')
5 files changed, 55 insertions, 34 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/General/MachineStatus.c b/Software/Embedded_SW/Embedded/Modules/General/MachineStatus.c index 4c248e94b..bf68b64f0 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/MachineStatus.c +++ b/Software/Embedded_SW/Embedded/Modules/General/MachineStatus.c @@ -245,7 +245,7 @@ return OK; * */ char WasteEmptyingToken[36+1] = {0}; -uint32_t CartridgeStateUpdate(CartridgeSlot Slot,CartridgeState State, double percentage) +uint32_t CartridgeStateUpdate(CartridgeSlot Slot, int32_t index, CartridgeState State, double percentage) { if (WasteEmptyingToken[0] == 0) return ERROR; @@ -271,6 +271,9 @@ uint32_t CartridgeStateUpdate(CartridgeSlot Slot,CartridgeState State, double pe CartData.has_slot = true; CartData.slot = Slot; + CartData.has_index = true; + CartData.index = index; + /* struct _CartridgeStatus { @@ -327,9 +330,9 @@ uint32_t StartInkFillingStatusRequestFunc(MessageContainer* requestContainer) StartInkFillingStatusRequest* request = start_ink_filling_status_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data); ustrncpy (WasteEmptyingToken, requestContainer->token,36); - CartridgeStateUpdate(CARTRIDGE_SLOT__Ink,CARTRIDGE_STATE__None,0); - CartridgeStateUpdate(CARTRIDGE_SLOT__WasteMiddle,CARTRIDGE_STATE__None,0); - CartridgeStateUpdate(CARTRIDGE_SLOT__WasteLower,CARTRIDGE_STATE__None,0); + CartridgeStateUpdate(CARTRIDGE_SLOT__Ink,0, CARTRIDGE_STATE__None,0); + CartridgeStateUpdate(CARTRIDGE_SLOT__WasteMiddle, 0, CARTRIDGE_STATE__None,0); + CartridgeStateUpdate(CARTRIDGE_SLOT__WasteLower, 1, CARTRIDGE_STATE__None,0); start_ink_filling_status_request__free_unpacked(request,NULL); return status; // case MESSAGE_TYPE__StartWasteEmptyingRequest: diff --git a/Software/Embedded_SW/Embedded/Modules/General/MachineStatus.h b/Software/Embedded_SW/Embedded/Modules/General/MachineStatus.h index ed3ec205d..a9539e0fa 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/MachineStatus.h +++ b/Software/Embedded_SW/Embedded/Modules/General/MachineStatus.h @@ -19,7 +19,7 @@ void SetMachineStatus (MachineState State); int MachineUpdateResponseFunc(void); uint32_t StartInkFillingStatusRequestFunc(MessageContainer* requestContainer); -uint32_t CartridgeStateUpdate(CartridgeSlot Slot,CartridgeState State, double percentage); +uint32_t CartridgeStateUpdate(CartridgeSlot Slot, int32_t index, CartridgeState State, double percentage); diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_Blowers.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_Blowers.c index 5be5f1232..aa2520057 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_Blowers.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_Blowers.c @@ -53,7 +53,7 @@ #define PRESSURE_SENSOR_CP 0.269 #define PRESSURE_SENSOR_B 0.45 #define V0_DEFAULT_VALUE 1050 -#define FAN_MIN_RPM_THRESHOLD 3200 +#define FAN_MIN_RPM_THRESHOLD 4000 extern uint16_t Head_Fan_Tach[2]; extern uint8_t Head_Fan_PWM_Command[2]; @@ -354,13 +354,12 @@ void HeadBlowersCfg() uint32_t PressureSensorInit(int blowerId) { - uint32_t V0; + uint32_t rpm, V0 = 0; - if (HeadBlowersGetRPM(blowerId) < FAN_MIN_RPM_THRESHOLD) { + rpm = HeadBlowersGetRPM(blowerId); + if (rpm < FAN_MIN_RPM_THRESHOLD) { V0 = MillisecGetTemperatures(BlowerIdToSensorId[blowerId]); V0 /= 10; - } else { - V0 = V0_DEFAULT_VALUE; } return V0; } diff --git a/Software/Embedded_SW/Embedded/Modules/IFS/ifs.c b/Software/Embedded_SW/Embedded/Modules/IFS/ifs.c index 329357ed4..9f7a342ba 100644 --- a/Software/Embedded_SW/Embedded/Modules/IFS/ifs.c +++ b/Software/Embedded_SW/Embedded/Modules/IFS/ifs.c @@ -284,7 +284,6 @@ void midTankStateMachine(void) break; } //check RFID - check cartridge OK - CartridgeStateUpdate(CARTRIDGE_SLOT__Ink, CARTRIDGE_STATE__Inserted, 0); // send request for validation to ppc inkAuthenticationPass = 2; //not defined @@ -306,17 +305,18 @@ void midTankStateMachine(void) Report("MidTank Cartridge authentication wait...", __FILE__, __LINE__, authenticationTimeOutCounter, RpMessage, 0, 0); if (authenticationTimeOutCounter > 60) { midTankState = MidTankStateIdle; - CartridgeStateUpdate(CARTRIDGE_SLOT__Ink, CARTRIDGE_STATE__Error, 0); + CartridgeStateUpdate(CARTRIDGE_SLOT__Ink, midTankCartColor, CARTRIDGE_STATE__Error, 0); } break; } if (inkAuthenticationPass == false) { Report("MidTank Cartridge authentication fail", __FILE__, __LINE__, 0, RpMessage, 0, 0); - CartridgeStateUpdate(CARTRIDGE_SLOT__Ink, CARTRIDGE_STATE__Error, 0); + CartridgeStateUpdate(CARTRIDGE_SLOT__Ink, midTankCartColor, CARTRIDGE_STATE__Error, 0); midTankState = MidTankStateIdle; break; } // Cartridge status received from user - assume cartridge is full + CartridgeStateUpdate(CARTRIDGE_SLOT__Ink, midTankCartColor, CARTRIDGE_STATE__Inserted, 0); midTankCapacity = Get_MidTank_Pressure_Sensor(midTankCartColor); if ((midTankCapacity > MidTankEmptyLimit)&&(midTankCartColor!=MIDTANK_8))//enable lubricant filling in two stages @@ -325,13 +325,13 @@ void midTankStateMachine(void) cart1.color = fastBILNK; Report("Mid-tank not empty", __FILE__, __LINE__, midTankCapacity, RpMessage, MidTankEmptyLimit, 0); midTankState = MidTankStateIdle; - CartridgeStateUpdate(CARTRIDGE_SLOT__Ink, CARTRIDGE_STATE__Error, 0); + CartridgeStateUpdate(CARTRIDGE_SLOT__Ink, midTankCartColor, 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; - CartridgeStateUpdate(CARTRIDGE_SLOT__Ink, CARTRIDGE_STATE__Filling, 0); + CartridgeStateUpdate(CARTRIDGE_SLOT__Ink, midTankCartColor, CARTRIDGE_STATE__Filling, 0); if (midTankCartColor == MIDTANK_8) { @@ -356,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; - CartridgeStateUpdate(CARTRIDGE_SLOT__Ink, CARTRIDGE_STATE__Absent, GetCartridgeFillPercent()); + CartridgeStateUpdate(CARTRIDGE_SLOT__Ink, midTankCartColor, CARTRIDGE_STATE__Absent, GetCartridgeFillPercent()); } // if time out or emptying done - idle if (midTankTimeoutCounter++ > CartridgeInkTimeout) { @@ -366,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); - CartridgeStateUpdate(CARTRIDGE_SLOT__Ink, CARTRIDGE_STATE__Error, GetCartridgeFillPercent()); + CartridgeStateUpdate(CARTRIDGE_SLOT__Ink, midTankCartColor, CARTRIDGE_STATE__Error, GetCartridgeFillPercent()); midTankState = MidTankStateIdle; } else if (CartridgeInkFull()) { midTankTimeoutCounter = 0; @@ -376,9 +376,9 @@ void midTankStateMachine(void) Report("Mid-tank # filling done", __FILE__, __LINE__, midTankState, RpMessage, 0, 0); midTankState = MidTankStateIdle; // RFID change status - inkEmpty - CartridgeStateUpdate(CARTRIDGE_SLOT__Ink, CARTRIDGE_STATE__FillingCompleted, 100.0); + CartridgeStateUpdate(CARTRIDGE_SLOT__Ink, midTankCartColor, CARTRIDGE_STATE__FillingCompleted, 100.0); } - CartridgeStateUpdate(CARTRIDGE_SLOT__Ink, CARTRIDGE_STATE__Filling, GetCartridgeFillPercent()); + CartridgeStateUpdate(CARTRIDGE_SLOT__Ink, midTankCartColor, CARTRIDGE_STATE__Filling, GetCartridgeFillPercent()); break; default: Report("wrong state", __FILE__, __LINE__, midTankState, RpMessage, 0, 0); diff --git a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_maint.c b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_maint.c index 9c5fe9822..f0b148b83 100644 --- a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_maint.c +++ b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_maint.c @@ -42,6 +42,7 @@ uint32_t Cartridge_Cover_Control; button *CartLed[MaxWasteCartridges] = {0, &cart2, &cart3}; WasteTankStateEnum WasteTankState = WasteTankStateIdle; +extern char WasteEmptyingToken[36+1]; int init = 1; bool setWasteValve (WasteCartridgeEnum WasteCartridge); @@ -165,7 +166,7 @@ WasteCartridgeEnum cartGetActiveCart() { uint32_t CartId; - for (CartId = 0; CartId < MaxWasteCartridges; CartId++) { + for (CartId = WasteCartridge_middle; CartId < MaxWasteCartridges; CartId++) { if (CartState[CartId] == CartridgeStateACTIVE) return CartId; } @@ -223,10 +224,13 @@ bool setWasteValve (WasteCartridgeEnum WasteCartridge) bool RdWasteTankEmptySensor() { //double WasteLevel = 0.0; - +#ifndef WHS_DEBUG if (WHS_Type == WHS_TYPE_UNKNOWN) { return WHS_GPI_WCONTAINER_WARN(); - } else { //new WHS + } + else +#endif + { //new WHS //WasteLevel = GetWHSWasteTankLevelMiliLiter(); if (wasteLevel < wasteLevelEmpty) return 1; //Empty @@ -237,10 +241,13 @@ bool RdWasteTankEmptySensor() bool RdWasteTankFullSensor() { //double WasteLevel = 0.0; - +#ifndef WHS_DEBUG if (WHS_Type == WHS_TYPE_UNKNOWN) { return WHS_GPI_WCONTAINER_FULL(); - } else { //new WHS + } + else +#endif + { //new WHS //WasteLevel = GetWHSWasteTankLevelMiliLiter(); if (wasteLevel >= wasteLevelFull) return 1; //full @@ -251,10 +258,13 @@ bool RdWasteTankFullSensor() bool RdWasteTankOverFlowSensor() { //double WasteLevel = 0.0; - +#ifndef WHS_DEBUG if (WHS_Type == WHS_TYPE_UNKNOWN) { return WHS_GPI_WASTE_OVERFULL(); - } else {//new WHS + } + else +#endif + {//new WHS //WasteLevel = GetWHSWasteTankLevelMiliLiter(); if (wasteLevel > wasteLevelOverflow) return 1; //overflow @@ -348,13 +358,14 @@ uint32_t Waste_DoorOpenDuringEmptying(uint32_t IfIndex, uint32_t ReadValue) void Waste_StateMachine_OneSecond_Call(void) { static WasteTankStateEnum prev_state = 0; - static int prev_wasteLevel = 0; + static int cart, prev_wasteLevel = 0; + static int insertUpdate[3] = {0, 0, 0}; //call cartridge state if ((Is_Cartridge_Present(CART_2) != cartGetPresence(WasteCartridge_middle)) || (init)) { if (Is_Cartridge_Present(CART_2)) { cartCART_INSERTED(WasteCartridge_middle); - CartridgeStateUpdate(CARTRIDGE_SLOT__WasteMiddle, CARTRIDGE_STATE__Inserted, 0); + insertUpdate[CARTRIDGE_SLOT__WasteMiddle-1] = 1; } else { cartCART_EXTRACTED(WasteCartridge_middle); } @@ -362,12 +373,20 @@ void Waste_StateMachine_OneSecond_Call(void) if ((Is_Cartridge_Present(CART_3) != cartGetPresence(WasteCartridge_lower)) || (init)) { if (Is_Cartridge_Present(CART_3)) { cartCART_INSERTED(WasteCartridge_lower); - CartridgeStateUpdate(CARTRIDGE_SLOT__WasteLower, CARTRIDGE_STATE__Inserted, 0); + insertUpdate[CARTRIDGE_SLOT__WasteLower-1] = 1; } else { cartCART_EXTRACTED(WasteCartridge_lower); } } + //update ppc + for (cart = WasteCartridge_middle; cart <= WasteCartridge_lower; cart++) { + if ((insertUpdate[cart]) && (WasteEmptyingToken[0])) { + CartridgeStateUpdate(cart, cart-1, CARTRIDGE_STATE__Inserted, 0); + insertUpdate[cart] = 0; + } + } + //call door state cartCart_door(); @@ -467,7 +486,7 @@ void Waste_StateMachine(void) //start emptying // RFID change status - set wasteFilling WasteTankState = WasteTankStateEmptying; - CartridgeStateUpdate(activeCart, CARTRIDGE_STATE__Emptying, 0); + CartridgeStateUpdate(activeCart, activeCart-1, CARTRIDGE_STATE__Emptying, 0); break; case WasteTankStateEmptying: // if time out or emptying done - idle @@ -478,7 +497,7 @@ void Waste_StateMachine(void) WasteTankState = WasteTankStateIdle; usnprintf(str, 100, "WasteTankStateEmptying Timeout. time:%d:%d volume:%d", timeout_counter/60, timeout_counter%60, WHS_GetCartridgeFill()); Report(str, __FILE__, __LINE__, 0, RpMessage, 0, 0); - CartridgeStateUpdate(activeCart, CARTRIDGE_STATE__Error, WHS_GetCartridgeFillPercent()); + CartridgeStateUpdate(activeCart, activeCart-1, CARTRIDGE_STATE__Error, WHS_GetCartridgeFillPercent()); AlarmHandlingSetAlarm( EVENT_TYPE__WASTE_CONTAINER_EMPTYING_TIMEOUT, true); RemoveControlCallback(Cartridge_Cover_Control, Waste_DoorOpenDuringEmptying); timeout_counter = 0; @@ -493,10 +512,10 @@ void Waste_StateMachine(void) AlarmHandlingSetAlarm( EVENT_TYPE__ALL_WASTE_CARTRIDGES_FULL, true); usnprintf(str, 100, "WasteTankStateEmptying done. time:%d:%d volume:%d", timeout_counter/60, timeout_counter%60, WHS_GetCartridgeFill()); Report(str, __FILE__, __LINE__, 0, RpMessage, 0, 0); - CartridgeStateUpdate(activeCart, CARTRIDGE_STATE__EmptyingCompleted, WHS_GetCartridgeFillPercent()); + CartridgeStateUpdate(activeCart, activeCart-1, CARTRIDGE_STATE__EmptyingCompleted, WHS_GetCartridgeFillPercent()); timeout_counter = 0; } - CartridgeStateUpdate(activeCart, CARTRIDGE_STATE__Emptying, WHS_GetCartridgeFillPercent()); + CartridgeStateUpdate(activeCart, activeCart-1, CARTRIDGE_STATE__Emptying, WHS_GetCartridgeFillPercent()); #ifdef WHS_DEBUG wasteLevel -= 100; timeout_counter += 10; @@ -517,7 +536,7 @@ void Waste_StateMachine(void) AlarmHandlingSetAlarm( EVENT_TYPE__ALL_WASTE_CARTRIDGES_FULL, true); Report("WasteTankStatePaused done", __FILE__, __LINE__, 0, RpMessage, 0, 0); timeout_counter = 0; - CartridgeStateUpdate(activeCart, CARTRIDGE_STATE__Error, WHS_GetCartridgeFillPercent()); + CartridgeStateUpdate(activeCart, activeCart-1, CARTRIDGE_STATE__Error, WHS_GetCartridgeFillPercent()); } break; default: |
