From 9e4e1d03cd01f5ad90c9da2340cfd735c1755b5e Mon Sep 17 00:00:00 2001 From: Ronen Sberlo Date: Mon, 11 Jan 2021 11:21:14 +0200 Subject: add calls to RFID funcs --- Software/Embedded_SW/Embedded/Modules/IFS/ifs.c | 13 +++++++++++++ Software/Embedded_SW/Embedded/Modules/Waste/Waste_maint.c | 11 ++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) (limited to 'Software/Embedded_SW') diff --git a/Software/Embedded_SW/Embedded/Modules/IFS/ifs.c b/Software/Embedded_SW/Embedded/Modules/IFS/ifs.c index 5b0cf9cb7..2de335432 100644 --- a/Software/Embedded_SW/Embedded/Modules/IFS/ifs.c +++ b/Software/Embedded_SW/Embedded/Modules/IFS/ifs.c @@ -14,6 +14,7 @@ #include #include "PMR/IFS/CartridgeState.pb-c.h" #include +#include #include "drivers/FPGA/FPGA_GPIO/FPGA_GPIO.h"//#include "FPGA_GPIO.h" // use for FPGA IO #include "drivers/I2C_Communication/ADC_MUX/ADC_MUX.h" #include "StateMachines/Initialization/PowerOffSequence.h" @@ -263,6 +264,7 @@ void midTankStateMachine(void) { static int init = 1; static int authenticationTimeOutCounter = 0; + uint32_t rc; if (init) { doorState = midTankCart_door(); @@ -297,6 +299,10 @@ void midTankStateMachine(void) break; } //check RFID - check cartridge OK + if ((rc = RFID_Get_Identification_Status(READER_1)) != OK) { + Report("RFID_Get_Identification_Status failed", __FILE__, __LINE__, rc, RpMessage, 0, 0); + break; + } // send request for validation to ppc inkAuthenticationPass = 2; //not defined @@ -356,6 +362,11 @@ void midTankStateMachine(void) Report("midTankStateWait set valve", __FILE__, __LINE__, 0, RpMessage, 0, 0); // RFID change status - inkUsed, inkFill + rc = RFID_Update_Ink_Fill(); + Report("RFID_Update_Ink_Fill", __FILE__, __LINE__, rc, RpMessage, 0, 0); + + rc = RFID_Update_Ink_Used(); + Report("RFID_Update_Ink_Used", __FILE__, __LINE__, rc, RpMessage, 0, 0); // set count down midTankTimeoutCounter = 1; @@ -389,6 +400,8 @@ void midTankStateMachine(void) Report("Mid-tank # filling done", __FILE__, __LINE__, midTankState, RpMessage, 0, 0); midTankState = MidTankStateIdle; // RFID change status - inkEmpty + rc = RFID_Update_Ink_Empty(); + Report("RFID_Update_Ink_Empty", __FILE__, __LINE__, rc, RpMessage, 0, 0); CartridgeStateUpdate(CARTRIDGE_SLOT__Ink, midTankCartColor, CARTRIDGE_STATE__FillingCompleted, 100.0); } if (midTankState == MidTankStateFilling) diff --git a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_maint.c b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_maint.c index 374977065..9ece0efe6 100644 --- a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_maint.c +++ b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_maint.c @@ -10,6 +10,7 @@ #include #include #include "Drivers/I2C_Communication/RFID_NFC/logi-tag/LT_RFID.h" +#include #include "Drivers/I2C_Communication/RFID_NFC/NFC.h" #include @@ -425,6 +426,8 @@ void Waste_StateMachine(void) { uint32_t activeCart; char str[100]; + uint32_t rc; + switch (WasteTankState) { case WasteTankStateIdle: @@ -461,6 +464,8 @@ void Waste_StateMachine(void) } // check RFID - check cartridge OK (inkEmpty) // RFID change status - set WasteEmpty + rc = RFID_Update_Waste_Empty(SelectedCard); + Report("RFID_Update_Waste_Empty", __FILE__, __LINE__, SelectedCard, RpMessage, rc, 0); //move to next state WasteTankState = WasteTankStateFull; @@ -493,7 +498,9 @@ void Waste_StateMachine(void) Report("WasteTankStateEmptying set Pump Open", __FILE__, activeCart, wasteLevel, RpMessage, wasteLevelEmpty, 0); //start emptying - // RFID change status - set wasteFilling + // RFID change status - set wasteFill + rc = RFID_Update_Waste_Fill(activeCart); + Report("RFID_Update_Waste_Fill", __FILE__, __LINE__, activeCart, RpMessage, rc, 0); WasteTankState = WasteTankStateEmptying; CartridgeStateUpdate(activeCart, activeCart-1, CARTRIDGE_STATE__Emptying, 0); break; @@ -515,6 +522,8 @@ void Waste_StateMachine(void) cartFILLING_END(); waste_seq_cont_stop(); // RFID change status - set wasteFull + rc = RFID_Update_Waste_Full(activeCart); + Report("RFID_Update_Waste_Full", __FILE__, __LINE__, activeCart, RpMessage, rc, 0); WasteTankState = WasteTankStateIdle; RemoveControlCallback(Cartridge_Cover_Control, Waste_DoorOpenDuringEmptying); //if (cartNotAllFull() == false) -- cgit v1.3.1 From 1e3551c5fddf4b4fd7b52b762a88033149400012 Mon Sep 17 00:00:00 2001 From: Avi Levkovich Date: Mon, 11 Jan 2021 14:58:52 +0200 Subject: remove the hard codded Active_RFID_Reader = CART_2; + minor --- Software/Embedded_SW/Embedded/DataDef.h | 10 +++++++++- .../Embedded/Drivers/ADC_Sampling/ADC_DispPressSens.c | 9 ++++++++- .../Dispenser_Card/EEPROM/Dispenser_EEPROM.c | 11 +++++++++++ .../Embedded/Drivers/I2C_Communication/RFID_NFC/I2C_IFS_Mux.c | 2 +- Software/Embedded_SW/Embedded/Main.c | 2 +- 5 files changed, 30 insertions(+), 4 deletions(-) (limited to 'Software/Embedded_SW') diff --git a/Software/Embedded_SW/Embedded/DataDef.h b/Software/Embedded_SW/Embedded/DataDef.h index b5edc9554..669e2cbe5 100644 --- a/Software/Embedded_SW/Embedded/DataDef.h +++ b/Software/Embedded_SW/Embedded/DataDef.h @@ -44,7 +44,7 @@ #endif //#define USE_UART4_FOR_BTSR // need change in FRPGA FPGA_1 yy > 0x20 + jumpers in main board need to read HW Version - no need when working only with stubs -//#define FORCE_BTSR_CARD_0023 // only for testing, include changes for BTSR without ASSY ID. use it with USE_UART4_FOR_BTSR +//#define FORCE_BTSR_CARD_0023 //0014 only for testing, include changes for BTSR without ASSY ID. use it with USE_UART4_FOR_BTSR //#define USE_RFID_STUB //stub only. to use it undef USE_RFID_LOGIC //#define RFID_READ_ONLY // @@ -489,6 +489,13 @@ typedef enum }DISP_TYPE; +typedef enum +{ + I2C_COMM_UNKNOWN, + I2C_COMM_PASSED, + I2C_COMM_FAILED, +}I2C_COMM_STAT; + typedef enum { DEFAULT_POLARITY = 0,//OPTIC_LS , MAGNETIC_LS CARD 2 @@ -636,6 +643,7 @@ typedef struct DISP_EEPROM Write_Disp_EEPROM; DISP_EEPROM Read_Disp_EEPROM; LS_STATUS Status; + I2C_COMM_STAT I2C_Status;// TBD added to calculate the pressure as new when there is i2c no communication (unable to read the eeprom) }DISP; DISP Dispenser_struct[8]; diff --git a/Software/Embedded_SW/Embedded/Drivers/ADC_Sampling/ADC_DispPressSens.c b/Software/Embedded_SW/Embedded/Drivers/ADC_Sampling/ADC_DispPressSens.c index 52225cb30..7c42ff823 100644 --- a/Software/Embedded_SW/Embedded/Drivers/ADC_Sampling/ADC_DispPressSens.c +++ b/Software/Embedded_SW/Embedded/Drivers/ADC_Sampling/ADC_DispPressSens.c @@ -46,9 +46,16 @@ void Calculateinit (void) Max = (float)(Dispenser_struct[DispenserId].Read_Disp_EEPROM.bytes.Maximal_Pressure) / 10000.0; } } + else if(Dispenser_struct[DispenserId].I2C_Status = I2C_COMM_FAILED)//#warning need to implement !!!! + { +#warning need to implement i2c status !!!! + Min = - 0.1;//-1000 / 10000.0;//default for NEW pressure sensor + Max = 1;//10000 / 10000.0;//default for NEW pressure sensor + Report("unable to read the dispenser EEPROM, use default NEW pressure values",__FILE__,__LINE__,DispenserId,RpWarning,(int)Dispenser_struct[DispenserId].Type,0); + } else { - Report("Dispenser's EEPROM - Wrong header! use default pressure values",__FILE__,__LINE__,DispenserId,RpWarning,(int)Dispenser_struct[DispenserId ].Read_Disp_EEPROM.bytes.Header,0); + Report("Dispenser's EEPROM - Wrong header! use default OLD pressure values",__FILE__,__LINE__,DispenserId,RpWarning,(int)Dispenser_struct[DispenserId ].Read_Disp_EEPROM.bytes.Header,0); } a[DispenserId] = (Max - Min) / (Bits_Max - Bits_Min);// Mpascal/Bits = 0.000352125 with default values diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/EEPROM/Dispenser_EEPROM.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/EEPROM/Dispenser_EEPROM.c index 9023f8250..635626467 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/EEPROM/Dispenser_EEPROM.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Dispenser_Card/EEPROM/Dispenser_EEPROM.c @@ -101,6 +101,17 @@ uint32_t Dispenser_EEPROM_Read_Data(uint8_t Dispenser_ID)//0..7 status |= I2C_EEprom_Set_for_Read_Ch(Dispenser_ID, 0xA0); status |= I2C_EEprom_Read_Ch(Dispenser_ID, 0xA0); +#warning need to implement i2c status !!!! + /* + if(status != OK) + { + Dispenser_struct[Dispenser_ID].I2C_Status = I2C_COMM_PASSED; + } + else + { + Dispenser_struct[Dispenser_ID].I2C_Status = I2C_COMM_FAILED; + LOG_ERROR (Dispenser_ID, "Dispenser I2C Comm. failed"); + }*/ return status; } uint32_t test_disp_eeprom(uint8_t Dispenser_ID , uint8_t EEprom_Add)//0..7 diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/RFID_NFC/I2C_IFS_Mux.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/RFID_NFC/I2C_IFS_Mux.c index 0593342b1..7309be156 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/RFID_NFC/I2C_IFS_Mux.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/RFID_NFC/I2C_IFS_Mux.c @@ -156,7 +156,7 @@ uint32_t Check_IFS_Availability() delayms(1); } - Active_RFID_Reader = CART_2; // temporary !!!!! + //Active_RFID_Reader = CART_2; // temporary !!!!! return status; } diff --git a/Software/Embedded_SW/Embedded/Main.c b/Software/Embedded_SW/Embedded/Main.c index f8c119713..131638d34 100644 --- a/Software/Embedded_SW/Embedded/Main.c +++ b/Software/Embedded_SW/Embedded/Main.c @@ -411,7 +411,7 @@ int main(void) } else { - #ifdef FORCE_BTSR_CARD_0023 + #ifdef FORCE_BTSR_CARD_0023//0014 // Configure the GPIO Pin PR0 for BTSR RS485 UART - Set as output to change to uart4 RS485 Direction: ROM_GPIOPinTypeGPIOOutput(GPIO_PORTR_BASE, GPIO_PIN_0); -- cgit v1.3.1