From 89235be35397d91ad5e8cadd59cd009b8d682960 Mon Sep 17 00:00:00 2001 From: Avi Levkovich Date: Sun, 8 Mar 2020 14:00:53 +0200 Subject: update the dispenser eeprom struct --- Software/Embedded_SW/Embedded/DataDef.h | 40 ++++++++++++++++++++++ .../Dispenser_Card/EEPROM/Dispenser_EEPROM.c | 7 ++-- .../Dispenser_Card/EEPROM/Dispenser_EEPROM.h | 2 +- .../Embedded/Drivers/I2C_Communication/I2C_FIFO.h | 17 +++++++++ .../Embedded/Modules/Stubs_Handler/Progress.c | 11 ++++++ 5 files changed, 73 insertions(+), 4 deletions(-) create mode 100644 Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_FIFO.h (limited to 'Software/Embedded_SW') diff --git a/Software/Embedded_SW/Embedded/DataDef.h b/Software/Embedded_SW/Embedded/DataDef.h index 0ada1e7ec..06cec2e1e 100644 --- a/Software/Embedded_SW/Embedded/DataDef.h +++ b/Software/Embedded_SW/Embedded/DataDef.h @@ -438,6 +438,8 @@ typedef union uint8_t Buf[16]; }DISP_EEPROM; */ + +/* //////////////////////////////////////////// typedef struct { @@ -482,6 +484,44 @@ typedef struct uint32_t Spare[5]; }DISP_EEPROM_BYTES; + +*/ + +typedef struct +{ + uint32_t Header; + uint32_t Table_Length; + uint32_t Table_version; + uint8_t Dispenser_Part_Number[20];//String + uint8_t PCB_SN[20];//String + uint8_t PCB_Part_Number[20];//String + uint8_t Dispenser_SN[20];//String + int32_t Minimal_Pressure; + int32_t Maximal_Pressure; + int32_t Minimal_MV; + int32_t Maximal_MV; + uint32_t Total_Cycles; + uint32_t Bubble_Size; + uint32_t AVG_Nl_Step_Value_1_4; + uint32_t AVG_Nl_Step_Value_2_4; + uint32_t AVG_Nl_Step_Value_3_4; + uint32_t AVG_Nl_Step_Value_4_4; + uint32_t SW_Reserve; + int32_t Spare1_pressure; + int32_t Spare2_pressure; + uint32_t Motor_PPC; + uint32_t color; + uint32_t Pressure_Slope; + uint8_t Production_Test_Date[8];//string + uint32_t ATS_Location; + uint32_t Spare1; + uint32_t Spare2; + uint8_t Unit_Empty; + uint8_t Dry_Run_Status; + uint8_t Flow_Status; + uint8_t CheckSum; +}DISP_EEPROM_BYTES; + typedef union { DISP_EEPROM_BYTES bytes; 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 3abe727dc..1c9935a52 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 @@ -97,7 +97,7 @@ uint32_t test_disp_eeprom(uint8_t Dispenser_ID , uint8_t EEprom_Add)//0..7 { uint32_t status= OK; uint32_t i; - +/* Dispenser_struct[Dispenser_ID].Write_Disp_EEPROM.bytes.Dispebser_Data.SN = 0x12345678; Dispenser_struct[Dispenser_ID].Write_Disp_EEPROM.bytes.Nl_Pulse_Value = 0xAB; Dispenser_struct[Dispenser_ID].Write_Disp_EEPROM.bytes.Flow_Pass_Fail = 0xCD; @@ -108,17 +108,18 @@ uint32_t test_disp_eeprom(uint8_t Dispenser_ID , uint8_t EEprom_Add)//0..7 status |= I2C_EEprom_Write_Ch(Dispenser_ID, EEprom_Add); SysCtlDelay(5000000);//Must delay for at least 5 milli. !!! (See data sheet ) + */ status |= I2C_EEprom_Set_for_Read_Ch(Dispenser_ID, EEprom_Add); status |= I2C_EEprom_Read_Ch(Dispenser_ID, EEprom_Add); - if(status == 0) +/* if(status == 0) { for(i=0;i +#include "Drivers/I2C_Communication/Dispenser_Card/EEPROM/Dispenser_EEPROM.h" + + + extern float NumberOfRotationPerPassage; // how many rotations per spool passage //#include "graphics_adapter.h" @@ -563,6 +567,13 @@ void Stub_ProgressRequest(MessageContainer* requestContainer) response.has_progress = true; } else + if((request->amount == 0x0D) && (request->delay == 0xEE)) //Dispenser EEprom + { + test_disp_eeprom(0x01,0xA0); + response.progress = OK; + response.has_progress = true; + } + else if((request->amount == 0xCF) && (request->delay == 0xCF)) //Create File System on the Drive { #ifdef WATCHDOG -- cgit v1.3.1