From 063724aa818cc243b10a5c202e28b3cb49e6503f Mon Sep 17 00:00:00 2001 From: Shai Frieder Date: Thu, 6 Feb 2020 09:52:24 +0200 Subject: update to ReportWithPackageFilter command --- Software/Embedded_SW/Embedded/Modules/IFS/ifs.c | 6 +-- .../Embedded/Modules/Waste/Waste_init.c | 58 ++++++++-------------- 2 files changed, 25 insertions(+), 39 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules') diff --git a/Software/Embedded_SW/Embedded/Modules/IFS/ifs.c b/Software/Embedded_SW/Embedded/Modules/IFS/ifs.c index 7f99a2a92..a98cc173e 100644 --- a/Software/Embedded_SW/Embedded/Modules/IFS/ifs.c +++ b/Software/Embedded_SW/Embedded/Modules/IFS/ifs.c @@ -317,19 +317,19 @@ bool CartridgeValidationResponseFunc(MessageContainer* requestContainer) // 2. the index is out of rang if (response == NULL) { - REPORT_MSG(WHS_filling," ------------ IFS_filling message from PPC is null!!! ----------------- "); // write to log error + ReportWithPackageFilter(WHS_filling,"------------ IFS_filling message from PPC is null!!! -----------------", __FILE__,__LINE__,0, RpMessage, 0, 0); return ret; } if (response->index < NUM_OF_MIDTANKS) { IFS_info.Ink.cart_color = response->index; // midtank 1-8 - ReportWithPackageFilter(WasteFilter,"------------ IFS get message response->index is -----------------", __FILE__, __LINE__, response->index, RpMessage, 0, 0); + ReportWithPackageFilter(WHS_filling,"------------ IFS get message response->index is -----------------", __FILE__, __LINE__, response->index, RpMessage, 0, 0); WHS_info.event = IFS_INK_authentication_pass; } else { - ReportWithPackageFilter(WasteFilter,"------------ IFS get message response->index is out of rang -----------------", __FILE__, __LINE__, response->index, RpMessage, 0, 0); + ReportWithPackageFilter(WHS_filling,"------------ IFS get message response->index is out of rang -----------------", __FILE__, __LINE__, response->index, RpMessage, 0, 0); WHS_info.event = IFS_INK_authentication_fail; } diff --git a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c index d845a128d..094df16cf 100644 --- a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c +++ b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c @@ -877,7 +877,6 @@ bool WasteTankCBFunction() break; case WHS_Timeout: - REPORT_MSG(WHS_emptying," ------------ WHS_Timeout ----------------- "); ReportWithPackageFilter(WasteFilter,"------------ WHS, WHS_Timeout -------------", __FILE__, __LINE__, WHS_info.sttMachine, RpMessage, 0, 0); AlarmHandlingSetAlarm( EVENT_TYPE__WASTE_CONTAINER_EMPTYING_TIMEOUT, true); CartridgeWasteFilling(OFF); @@ -1057,15 +1056,13 @@ WHS_sensor CartridgeWaste1CallBackFunction() WHS_sensor CartridgeWaste2CallBackFunction() { - uint32_t parameter = 6 ; - WHS_sensor ret = WHS_no_event; - //ret = RdCartridgeCoverSensor(); + if (WHS_info.WHS_sensors.waste_cartridge2_precense_sensor != RdWasteCartridge2Sensor()) { - REPORT_MSG(parameter," ------------ find : WHS_waste2_presence_sensor event ----------------- "); WHS_info.event = WHS_waste2_presence_sensor; WHS_info.WHS_sensors.waste_cartridge2_precense_sensor = !WHS_info.WHS_sensors.waste_cartridge2_precense_sensor; + ReportWithPackageFilter(WasteFilter,"------------ find : WHS_waste2_presence_sensor event -------------", __FILE__, __LINE__, WHS_info.WHS_sensors.waste_cartridge2_precense_sensor, RpMessage, 0, 0); ret = WHS_waste2_presence_sensor; } return ret; @@ -1074,42 +1071,40 @@ WHS_sensor CartridgeWaste2CallBackFunction() /*------------------------------- Waste Cartridge + IFS Cartridge -----------------------------------------*/ bool InitCartStatus() { - uint32_t parameter = 6 ; - WHS_info.WHS_sensors.cartridge_cover = RdCartridgeCoverSensor(); /* INK => CART_1 */ - REPORT_MSG(parameter," ------------------------------------------------------------------------------------------ "); - REPORT_MSG(parameter," ------------!!!!!!! at INIT what to do if IFS_INK is presence !!!!!!! ----------------- "); - REPORT_MSG(parameter," ------------------------------------------------------------------------------------------ "); + ReportWithPackageFilter(WasteFilter,"------------------------------------------------------------------------------------------", __FILE__,__LINE__,0, RpMessage, 0, 0); + ReportWithPackageFilter(WasteFilter,"------------ !!!!!!! at INIT what to do if IFS_INK is presence !!!!!!! -----------------", __FILE__,__LINE__,0, RpMessage, 0, 0); + ReportWithPackageFilter(WasteFilter,"------------------------------------------------------------------------------------------", __FILE__,__LINE__,0, RpMessage, 0, 0); if (RdInkCartridgeSensor()) { - REPORT_MSG(parameter," ------------ INIT : IFS_INK is presence ----------------- "); - IFS_info.IFS_Ink_precense_sensor = CarteidgePrecense; - Pannel_Leds( CART_1, MODE_ON); - cart1.color = colorON; + IFS_info.IFS_Ink_precense_sensor = CarteidgePrecense; + ReportWithPackageFilter(WasteFilter,"------------ INIT : IFS_INK is presence -----------------", __FILE__,__LINE__, IFS_info.IFS_Ink_precense_sensor, RpMessage, 0, 0); + Pannel_Leds( CART_1, MODE_ON); + cart1.color = colorON; } else { - REPORT_MSG(parameter," ------------ INIT : IFS_INK is NOT presence ----------------- "); - IFS_info.IFS_Ink_precense_sensor = CarteidgeNotPrecense; - Pannel_Leds( CART_1, MODE_OFF); - cart1.color = colorOFF; + IFS_info.IFS_Ink_precense_sensor = CarteidgeNotPrecense; + ReportWithPackageFilter(WasteFilter,"------------ INIT : IFS_INK is NOT presence -----------------", __FILE__,__LINE__, IFS_info.IFS_Ink_precense_sensor, RpMessage, 0, 0); + Pannel_Leds( CART_1, MODE_OFF); + cart1.color = colorOFF; } /* waste_cartridge1 => CART_2 */ if (RdWasteCartridge1Sensor()) { - REPORT_MSG(parameter," ------------ INIT : WHS_waste1 cart is presence ----------------- "); WHS_info.WHS_sensors.waste_cartridge1_precense_sensor = CarteidgePrecense; + ReportWithPackageFilter(WasteFilter,"------------ INIT : WHS_waste1 cart is presence -----------------", __FILE__,__LINE__, WHS_info.WHS_sensors.waste_cartridge1_precense_sensor, RpMessage, 0, 0); Pannel_Leds( CART_2, MODE_ON); cart2.color = colorON; } else { - REPORT_MSG(parameter," ------------ INIT : WHS_waste1 cart is NOT presence !!! ----------------- "); WHS_info.WHS_sensors.waste_cartridge1_precense_sensor = CarteidgeNotPrecense; + ReportWithPackageFilter(WasteFilter,"------------ INIT : WHS_waste1 cart is NOT presence !!! -----------------", __FILE__,__LINE__,WHS_info.WHS_sensors.waste_cartridge1_precense_sensor, RpMessage, 0, 0); Pannel_Leds( CART_2, MODE_OFF); cart2.color = colorOFF; } @@ -1117,21 +1112,19 @@ bool InitCartStatus() /* waste_cartridge2 => CART_3 */ if (RdWasteCartridge2Sensor()) { - REPORT_MSG(parameter," ------------ INIT : WHS_waste2 cart is presence ----------------- "); WHS_info.WHS_sensors.waste_cartridge2_precense_sensor = CarteidgePrecense; + ReportWithPackageFilter(WasteFilter,"------------ INIT : WHS_waste2 cart is presence -----------------", __FILE__,__LINE__, WHS_info.WHS_sensors.waste_cartridge2_precense_sensor, RpMessage, 0, 0); Pannel_Leds( CART_3, MODE_ON); cart3.color = colorON; } else { - REPORT_MSG(parameter," ------------ INIT : WHS_waste2 cart is NOT presence_sensor !!! ----------------- "); WHS_info.WHS_sensors.waste_cartridge2_precense_sensor = CarteidgeNotPrecense; + ReportWithPackageFilter(WasteFilter,"------------ INIT : WHS_waste2 cart is NOT presence_sensor !!! -----------------", __FILE__,__LINE__, WHS_info.WHS_sensors.waste_cartridge2_precense_sensor, RpMessage, 0, 0); Pannel_Leds( CART_3, MODE_OFF); cart3.color = colorOFF; } - - if (IFS_info.IFS_Ink_precense_sensor == CarteidgePrecense) CartridgeAuthentication(INK_cartridge); if (WHS_info.WHS_sensors.waste_cartridge1_precense_sensor == CarteidgePrecense) CartridgeAuthentication(waste_cartridge1); if (WHS_info.WHS_sensors.waste_cartridge2_precense_sensor == CarteidgePrecense) CartridgeAuthentication(waste_cartridge2); @@ -1139,7 +1132,7 @@ bool InitCartStatus() if (WHS_info.WHS_sensors.cartridge_cover == WHS_CartridgeCoverOPEN) { - REPORT_MSG(parameter," ------------ WHS_CartridgeCoverOPEN : add callback for cart1 and cart 2 ----------------- "); + ReportWithPackageFilter(WasteFilter,"------------ WHS_CartridgeCoverOPEN : add callback for cart1 and cart 2 -----------------", __FILE__,__LINE__, WHS_info.WHS_sensors.cartridge_cover, RpMessage, 0, 0); IFS_info.Cartridge_Ink_device_Id = AddControlCallback("Ink Cartridge CB" , WasteTankCBFunction, eOneSecond, CartridgeInkCallBackFunction , 0,0,0 ); WHS_info.Cartridge_Waste1_device_Id = AddControlCallback("Waste1 Cartridge CB", WasteTankCBFunction, eOneSecond, CartridgeWaste1CallBackFunction, 0,0,0 ); WHS_info.Cartridge_Waste2_device_Id = AddControlCallback("Waste2 Cartridge CB", WasteTankCBFunction, eOneSecond, CartridgeWaste2CallBackFunction, 0,0,0 ); @@ -1153,8 +1146,6 @@ bool RdInkCartridgeSensor() { bool ret = notOK; WHS_Read_GPI_Registers(); - //WHS_info.WHS_sensors.waste_cartridge1_precense_sensor = Is_Cartridge_Present(CART_2); - //ret = WHS_info.WHS_sensors.waste_cartridge1_precense_sensor; ret = Is_Cartridge_Present(CART_1); return ret; } @@ -1163,8 +1154,6 @@ bool RdWasteCartridge1Sensor() { bool ret = notOK; WHS_Read_GPI_Registers(); - //WHS_info.WHS_sensors.waste_cartridge1_precense_sensor = Is_Cartridge_Present(CART_2); - //ret = WHS_info.WHS_sensors.waste_cartridge1_precense_sensor; ret = Is_Cartridge_Present(CART_2); return ret; } @@ -1173,37 +1162,34 @@ bool RdWasteCartridge2Sensor() { bool ret = notOK; WHS_Read_GPI_Registers(); - //WHS_info.WHS_sensors.waste_cartridge2_precense_sensor = Is_Cartridge_Present(CART_3); - //ret = WHS_info.WHS_sensors.waste_cartridge2_precense_sensor; ret = Is_Cartridge_Present(CART_3); return ret; } bool SetActiveWastCartridge() { - uint8_t parameter = 5; - bool ret = notOK; + if (( WHS_info.WHS_sensors.waste_cartridge1_precense_sensor == PRECENSE ) && (WHS_info.cartridge_1.autheticate == PASSED) && (WHS_info.cartridge_1.status == WasteEmpty)) { - REPORT_MSG(parameter," ------------ WHS : active_cartridge = waste_cartridge 1 ----------------- "); WHS_info.active_cartridge = waste_cartridge1; + ReportWithPackageFilter(WasteFilter,"------------ WHS : active_cartridge = waste_cartridge 1 -----------------", __FILE__,__LINE__, WHS_info.active_cartridge, RpMessage, 0, 0); AlarmHandlingSetAlarm( EVENT_TYPE__NO_WASTE_CARTRIDGE_AVAILABLE, false); } else if (( WHS_info.WHS_sensors.waste_cartridge2_precense_sensor == PRECENSE) && (WHS_info.cartridge_2.autheticate == PASSED) && (WHS_info.cartridge_2.status == WasteEmpty)) { - REPORT_MSG(parameter," ------------ WHS : active_cartridge = waste_cartridge 2 ----------------- "); WHS_info.active_cartridge = waste_cartridge2; + ReportWithPackageFilter(WasteFilter,"------------ WHS : active_cartridge = waste_cartridge 2 -----------------", __FILE__,__LINE__, WHS_info.active_cartridge, RpMessage, 0, 0); AlarmHandlingSetAlarm( EVENT_TYPE__NO_WASTE_CARTRIDGE_AVAILABLE, false); } else { - REPORT_MSG(parameter," ------------ WHS : NO active_cartridge ----------------- "); WHS_info.active_cartridge = no_waste_cartridge; + ReportWithPackageFilter(WasteFilter,"------------ WHS : NO active_cartridge -----------------", __FILE__,__LINE__, WHS_info.active_cartridge, RpMessage, 0, 0); AlarmHandlingSetAlarm( EVENT_TYPE__NO_WASTE_CARTRIDGE_AVAILABLE, true); } return ret; -- cgit v1.3.1 From 917d08c0c4cfd95b6bf545a857361bcf0da5ea8a Mon Sep 17 00:00:00 2001 From: Avi Levkovich Date: Thu, 6 Feb 2020 13:32:45 +0200 Subject: progress.c - update the stub - Head Card I/O (amount = 0x0EAD) --- .../Embedded/Modules/Stubs_Handler/Progress.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules') diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c index c31e21e23..4d80215d2 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c @@ -213,17 +213,24 @@ void Stub_ProgressRequest(MessageContainer* requestContainer) { uint8_t Write_Buf[2] = {0,0}; uint8_t Script_Slave_Add = request -> delay >> 16; - Write_Buf[0] = request -> delay >> 8; + Write_Buf[0] = (request -> delay & 0x00FF00) >> 8; Write_Buf[1] = request -> delay & 0x0000FF; Select_Main_Head_Mux_Channel(); - I2C_Write(I2C_ID_HEAD_CARD, Script_Slave_Add, Write_Buf, 2); + if(Write_Buf[0] < 2) + { + I2C_Write(I2C_ID_HEAD_CARD, Script_Slave_Add, Write_Buf, 1); + } + else + { + I2C_Write(I2C_ID_HEAD_CARD, Script_Slave_Add, Write_Buf, 2); + } delayms(1); - uint8_t Read_Buf[2] = {0,0}; - I2C_Read(I2C_ID_HEAD_CARD, Script_Slave_Add + 1, Read_Buf, 2); - response.progress = Read_Buf[1] << 8 | Read_Buf[0]; + uint8_t Read_Buf[2] = {0};//,0}; + I2C_Read(I2C_ID_HEAD_CARD, Script_Slave_Add + 1, Read_Buf, 1);//2 ? + response.progress = /*Read_Buf[1] << 8 | */Read_Buf[0]; response.has_progress = true; } -- cgit v1.3.1 From 5bf44be1121abf9dd36c948c19ca0650f5571c3e Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Thu, 6 Feb 2020 13:51:20 +0200 Subject: fix job bug and I2C_Task for LP machines --- .../Embedded/Common/SWUpdate/FirmwareUpgrade.c | 33 ++++++++++------------ .../Embedded/Drivers/I2C_Communication/I2C_Task.c | 2 +- .../Embedded_SW/Embedded/Modules/Control/control.c | 4 +-- .../Modules/Diagnostics/DiagnosticsHoming.c | 2 +- .../Embedded/Modules/Thread/Thread_init.c | 4 +-- .../Embedded/StateMachines/Printing/JobSTM.c | 5 ++-- 6 files changed, 23 insertions(+), 27 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules') diff --git a/Software/Embedded_SW/Embedded/Common/SWUpdate/FirmwareUpgrade.c b/Software/Embedded_SW/Embedded/Common/SWUpdate/FirmwareUpgrade.c index 79bbb4df8..bf1151d6e 100644 --- a/Software/Embedded_SW/Embedded/Common/SWUpdate/FirmwareUpgrade.c +++ b/Software/Embedded_SW/Embedded/Common/SWUpdate/FirmwareUpgrade.c @@ -53,6 +53,7 @@ uint32_t ActivateVersionCallBackFunction(uint32_t IfIndex, uint32_t BusyFlag) { ActivateVersionResponse response = ACTIVATE_VERSION_RESPONSE__INIT; MessageContainer responseContainer; + bool last = true; usnprintf(activateString, 1000, "file %d of %d bytes %d of %d",CurrentRunningFile,NumberOfFiles,vme_index,CurrentFileSize); @@ -60,16 +61,9 @@ uint32_t ActivateVersionCallBackFunction(uint32_t IfIndex, uint32_t BusyFlag) if (CurrentRunningFiletoken, false, &response, &dispenser_homing_response__pack, &dispenser_homing_response__get_packed_size); responseContainer.has_continuous = true; -responseContainer.continuous = true; + responseContainer.continuous = true; uint8_t* container_buffer = my_malloc(message_container__get_packed_size(&responseContainer)); size_t container_size = message_container__pack(&responseContainer, container_buffer); my_free(responseContainer.data.data); diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_init.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_init.c index fb3b78752..e53adabb7 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_init.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_init.c @@ -73,14 +73,14 @@ uint32_t MotorsConfigMessage(HardwareConfiguration * HWrequest) MotorsCfg[Motor_i].pulseperround = request->pulseperround; MotorsCfg[Motor_i].pulleyradius = request->pulleyradius; MotorsCfg[Motor_i].configword = request->configword; - if(MotorDriverResponse[Motor_i].DriverType == CombinrdMotDriver) + /*if(MotorDriverResponse[Motor_i].DriverType == CombinrdMotDriver) { MotorsCfg[Motor_i].directionthreadwize = request->directionthreadwize ^ 1;//PowerSTEP01 } else { MotorsCfg[Motor_i].directionthreadwize = request->directionthreadwize;//L6470 + L6472 - } + }*/ MotorsCfg[Motor_i].kvalhold = request->kvalhold; MotorsCfg[Motor_i].kvalrun = request->kvalrun; MotorsCfg[Motor_i].kvalacc = request->kvalacc; diff --git a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c index d36de9bd7..a62d1b4b7 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c @@ -926,6 +926,8 @@ void SendJobProgress(double ProcessedLength, int SegmentId, bool done, char *Mes //responseContainer = createContainer(MESSAGE_TYPE__JobResponse, JobToken, done, &JobResponseMsg, &job_response__pack, &job_response__get_packed_size); responseContainer = createAllocatedContainer(MESSAGE_TYPE__JobResponse, JobToken, done, &JobResponseMsg, &job_response__pack, &job_response__get_packed_size,&JobStatusBuffer); } + responseContainer.has_continuous = true; + responseContainer.continuous = true; container_buffer = my_malloc(message_container__get_packed_size(&responseContainer)); if (done == true) @@ -942,9 +944,6 @@ void SendJobProgress(double ProcessedLength, int SegmentId, bool done, char *Mes responseContainer.error = ERROR_CODE__CONTINUOUS_RESPONSE_ABORTED; } } - responseContainer.has_continuous = true; - responseContainer.continuous = true; - if (container_buffer) { size_t container_size = message_container__pack(&responseContainer, container_buffer); -- cgit v1.3.1 From cbd8aeea982ba5541d19d13c441711d872dae316 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Thu, 6 Feb 2020 14:33:06 +0200 Subject: VERSION 1.4.6.9 --- Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c | 2 +- .../Embedded/Drivers/I2C_Communication/I2C_Task.c | 15 --------------- .../Embedded/Drivers/I2C_Communication/I2C_Task.h | 2 +- Software/Embedded_SW/Embedded/Modules/General/buttons.c | 3 +++ Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c | 1 + 5 files changed, 6 insertions(+), 17 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules') diff --git a/Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c b/Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c index 25f5927e7..20dc627e8 100644 --- a/Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c +++ b/Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c @@ -20,7 +20,7 @@ typedef struct } TangoVersion_t; -TangoVersion_t _gTangoVersion = {1,4,6,8}; +TangoVersion_t _gTangoVersion = {1,4,6,9}; #define BUILD_DATE __DATE__ char Dat[50] = BUILD_DATE; char _gTangoName [MAX_STRING_LEN] = "Tango01 ";//d diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.c index f896897f7..8670a56b4 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.c @@ -41,7 +41,6 @@ typedef enum Actuators_Control, /* enum for WHS :*/ - DetectNewWHS, WHS_start, WHS_init_I2C_IO, WHS_init_fan, @@ -169,16 +168,6 @@ void Trigger_InputsReading(void) } -void Trigger_Check_WHS_Type_Via_EEPROM() -{ - I2C_ReadingMessageStruc I2C_ReadingMessage; - - I2C_ReadingMessage.messageId = DetectNewWHS; - if (I2C_ReadingMsgQ != NULL) - Mailbox_post(I2C_ReadingMsgQ , &I2C_ReadingMessage, BIOS_NO_WAIT); - return; -} - void Trigger_WHS_init_IO(void) { I2C_ReadingMessageStruc I2C_ReadingMessage; @@ -455,10 +444,6 @@ void I2C_ReadingTask(UArg arg0, UArg arg1) } break; - case DetectNewWHS: - Check_WHS_Type_Via_EEPROM(); - break; - case WHS_init_I2C_IO: WHS_IO_Init(); break; diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.h b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.h index 6e0774d75..16db6132f 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.h +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.h @@ -10,7 +10,7 @@ #define DRIVERS_I2C_COMMUNICATION_I2C_TASK_H_ -void Trigger_Check_WHS_Type_Via_EEPROM(void); + void Trigger_WHS_init_IO(void); void Trigger_WHS_init_fan(void); void Trigger_WHS_init_PT100(void); diff --git a/Software/Embedded_SW/Embedded/Modules/General/buttons.c b/Software/Embedded_SW/Embedded/Modules/General/buttons.c index d8c68b345..701bde5e9 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/buttons.c +++ b/Software/Embedded_SW/Embedded/Modules/General/buttons.c @@ -211,6 +211,7 @@ uint32_t Buttons_Init(void) power.state = sttON; //sttOFF, sttON, sttDISABLE, sttENABLE, sttIDLE, sttJOGGING power.count = 0; + Task_sleep(15); AddControlCallback("ButtonPowerCB", ButtonPowerCBFunction, BUTTONS_SAMPLE_TIME, ButtonPowerCallBackFunction, 0,0,0 ); // eFiftyMillisecond strcpy(jog.bttn_name, "jog"); @@ -221,6 +222,7 @@ uint32_t Buttons_Init(void) jog.state = sttENABLE; // sttDISABLE, sttENABLE, sttJOGGING jog.count = 0; + Task_sleep(15); AddControlCallback("ButtonJogCB", ButtonJogCBFunction, BUTTONS_SAMPLE_TIME, ButtonJogCallBackFunction, 0,0,0 ); // strcpy(load.bttn_name, "load"); @@ -231,6 +233,7 @@ uint32_t Buttons_Init(void) load.state = sttRDY; // load.count = 0; + Task_sleep(15); AddControlCallback("ButtonLoadCB", ButtonLoadCBFunction, BUTTONS_SAMPLE_TIME, ButtonLoadCallBackFunction, 0,0,0 ); // return OK; } diff --git a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c index 094df16cf..c8101c031 100644 --- a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c +++ b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c @@ -508,6 +508,7 @@ bool initWHS_WasteTank() { WHS_info.WHS_sensors.waste_tank_empty_sensor = RdWasteTankEmptySensor(); WHS_info.WHS_sensors.waste_tank_full_sensor = SENSORnotFULL; + Task_sleep(15); UpdateStateMachine(); AddControlCallback("Waste tank",WasteTankCBFunction, WasteTankCallBackTime , WasteTankCallBackFunction, 0,0,0);//eOneMinute return OK; -- cgit v1.3.1 From 33c0ce2e46a6fca8b48396f8aab1150197af20f3 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Thu, 6 Feb 2020 15:22:42 +0200 Subject: read and handle version update (from MCU EEPROM) --- .../Embedded/Drivers/flash_ram/MCU_E2Prom.c | 24 ++++++++++++++++++++++ .../Embedded/Drivers/flash_ram/MCU_E2Prom.h | 4 ++++ Software/Embedded_SW/Embedded/Main.c | 14 +++++++++++++ .../Embedded/Modules/Control/MillisecTask.c | 2 +- 4 files changed, 43 insertions(+), 1 deletion(-) (limited to 'Software/Embedded_SW/Embedded/Modules') diff --git a/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c b/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c index c3a74efa9..7d9c5e02f 100644 --- a/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c +++ b/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c @@ -10,6 +10,7 @@ #include "MCU_E2Prom.h" #include "driverlib/eeprom.h" #include "drivers/I2C_Communication/ADC_MUX/ADC_MUX.h" +#include "Common/SW_Info/SW_Info.h" uint32_t E2Prom_Data[MAX_EEPROM_STORAGE] = {0,0,0,0,0,0}; uint32_t MCU_E2PromProgram(int Address,uint32_t Data) @@ -134,6 +135,29 @@ float MCU_E2PromDryerBacklashRead() return Data; } +uint32_t MCU_E2PromEmbeddedVersionProgram(void) +{ + uint16_t size; + uint32_t Data; + size= sizeof(TangoVersion_t); + if (size>4) + { + Report("MCU_E2PromEmbeddedVersionProgram length error",__FILE__,__LINE__,size,RpWarning,(int)0,0); + return ERROR; + } + memcpy((uint8_t*)&Data,&_gTangoVersion,size); + EEPROMProgram((uint32_t *)&Data, EMBEDDED_VERSION_ADDR*4, 4); + return OK; +} +uint32_t MCU_E2PromEmbeddedVersionRead() +{ + uint32_t Data; + EEPROMRead((uint32_t *)&Data,EMBEDDED_VERSION_ADDR*4, 4); + + Report("MCU_E2PromEmbeddedVersionRead length ",__FILE__,__LINE__,EMBEDDED_VERSION_ADDR*4,RpWarning,(int)(Data),0); + + return Data; +} //Each word may not be subject to more than a specific number of programming cycles before an //erase cycle is required. In other words, for any given word, FlashProgram can only be called diff --git a/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h b/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h index 5cab24587..39c892e0a 100644 --- a/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h +++ b/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h @@ -34,6 +34,7 @@ typedef enum { EEPROM_STORAGE_SERIAL_NUM, EEPROM_STORAGE_MAC_ADDR, EEPROM_STORAGE_DRYER_BACKLASH, + EEPROM_STORAGE_EMBEDDED_VERSION, MAX_EEPROM_STORAGE }EEPROM_STORAGE_USAGE_ENUM; #define MAX_SERIAL_NUM_LEN 20 @@ -41,6 +42,7 @@ typedef enum { #define SERIAL_NUM_ADDR EEPROM_STORAGE_SERIAL_NUM*4 #define MAC_ADDR_ADDR (SERIAL_NUM_ADDR + MAX_SERIAL_NUM_LEN) #define DRYER_BACKLASH_ADDR (MAC_ADDR_ADDR + MAX_MAC_ADDR_LEN) +#define EMBEDDED_VERSION_ADDR (DRYER_BACKLASH_ADDR+1) uint32_t MCU_E2PromProgram(int Address,uint32_t Data); uint32_t MCU_E2PromRead(int Address,uint32_t *Data); @@ -52,6 +54,8 @@ uint32_t MCU_E2PromSerialNumProgram(char *Data); uint32_t MCU_E2PromSerialNumRead(char* *Data); uint32_t MCU_E2PromDryerBacklashProgram(char *Data); float MCU_E2PromDryerBacklashRead(void); +uint32_t MCU_E2PromEmbeddedVersionProgram(void); +uint32_t MCU_E2PromEmbeddedVersionRead(); extern char Serial[21]; diff --git a/Software/Embedded_SW/Embedded/Main.c b/Software/Embedded_SW/Embedded/Main.c index 9469f9b97..d0ebb8274 100644 --- a/Software/Embedded_SW/Embedded/Main.c +++ b/Software/Embedded_SW/Embedded/Main.c @@ -47,6 +47,8 @@ #include "Drivers/USBStick_FileSys/USBstick.h" #include "Drivers/USBStick_FileSys/USBMSCHFatFs.h" */ +#include "Common/SW_Info/SW_Info.h" + #include "Modules/Control/control.h" #include "Modules/Control/MillisecTask.h" #include "Modules/Heaters/Heaters_ex.h" @@ -233,7 +235,19 @@ int main(void) //FlashInit(); #ifndef EVALUATION_BOARD + TangoVersion_t Version; + uint32_t Data; + MCU_E2PromInit(); + Data = MCU_E2PromEmbeddedVersionRead(); + memcpy (&Version,&Data,4); + if (memcmp(&Version,&_gTangoVersion,4)) + { + LOG_ERROR(Version.m_minor,"Version change, do stuff"); + FlashInit(); + MCU_E2PromEmbeddedVersionProgram(); + } + #endif #ifdef EVALUATION_BOARD Init_EVB(); diff --git a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c index a9b539690..6542af287 100644 --- a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c +++ b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c @@ -707,7 +707,7 @@ uint32_t MillisecLowLoop(uint32_t tick) char Lenstr[160]; static int Counter = 0; MachineUpdateResponseFunc(); - KeepAliveOneSecondCall(); + //KeepAliveOneSecondCall(); TemperatureListString(Lenstr); ReportWithPackageFilter(ThreadFilter,Lenstr,__FILE__,__LINE__,(int)Counter++,RpWarning,(int) msec_millisecondCounter,0); -- cgit v1.3.1 From 33472a7be595adc11f8a7b3c83f00888c9c66d5f Mon Sep 17 00:00:00 2001 From: Avi Levkovich Date: Thu, 6 Feb 2020 16:58:23 +0200 Subject: update head I/O stub --- .../Embedded/Modules/Stubs_Handler/Progress.c | 150 +++++++++++++++++---- 1 file changed, 127 insertions(+), 23 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules') diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c index 2e5afa59c..dbe46db97 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c @@ -39,6 +39,8 @@ #include #include +#include "Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.h" + extern float NumberOfRotationPerPassage; // how many rotations per spool passage //#include "graphics_adapter.h" @@ -216,32 +218,134 @@ void Stub_ProgressRequest(MessageContainer* requestContainer) } else - if(request->amount == 0x0EAD) //Head Card I/O - { - uint8_t Write_Buf[2] = {0,0}; - uint8_t Script_Slave_Add = request -> delay >> 16; - Write_Buf[0] = (request -> delay & 0x00FF00) >> 8; - Write_Buf[1] = request -> delay & 0x0000FF; - - Select_Main_Head_Mux_Channel(); - if(Write_Buf[0] < 2) + if(request->amount == 0x0EAD) //Head Card I/O { - I2C_Write(I2C_ID_HEAD_CARD, Script_Slave_Add, Write_Buf, 1); + uint8_t Read_Buf[1] = {0}; + uint8_t Write_Buf[2] = {0,0}; + uint8_t Script_Slave_Add = request -> delay >> 16;//Slave address 0x40 / 0x42 / 0x44 / 0x46 + Write_Buf[0] = (request -> delay & 0x00FF00) >> 8;//read/write low/high + /* + ------------------ + | Byte | WR | RD | + ------------------ + | Low | 02 | 00 | + | High | 03 | 01 | + ------------------ + */ + Write_Buf[1] = request -> delay & 0x0000FF;//data to write + + response.has_progress = false; + + Select_Main_Head_Mux_Channel(); + + if(Write_Buf[0] == 0)//Read + { + Head_Read_IO_Reg(Script_Slave_Add, LOW); + + delayms(1); + if(Script_Slave_Add == 0x40) + { + Read_Buf[0] = Head_I2C_EXP1_0x40.uchar[0]; + response.progress = Read_Buf[0]; + response.has_progress = true; + } + else + if(Script_Slave_Add == 0x42) + { + Read_Buf[0] = Head_I2C_EXP2_0x42.uchar[0]; + response.progress = Read_Buf[0]; + response.has_progress = true; + } + else + if(Script_Slave_Add == 0x44) + { + Read_Buf[0] = Head_I2C_EXP3_0x44.uchar[0]; + response.progress = Read_Buf[0]; + response.has_progress = true; + } + else + if(Script_Slave_Add == 0x46) + { + Read_Buf[0] = Head_I2C_EXP4_0x46.uchar[0]; + response.progress = Read_Buf[0]; + response.has_progress = true; + } + } + else + + if(Write_Buf[0] == 1)//Read + { + Head_Read_IO_Reg(Script_Slave_Add, HIGH); + + delayms(1); + if(Script_Slave_Add == 0x40) + { + Read_Buf[0] = Head_I2C_EXP1_0x40.uchar[1]; + response.progress = Read_Buf[0]; + response.has_progress = true; + } + else + if(Script_Slave_Add == 0x42) + { + Read_Buf[0] = Head_I2C_EXP2_0x42.uchar[1]; + response.progress = Read_Buf[0]; + response.has_progress = true; + } + else + if(Script_Slave_Add == 0x44) + { + Read_Buf[0] = Head_I2C_EXP3_0x44.uchar[1]; + response.progress = Read_Buf[0]; + response.has_progress = true; + } + else + if(Script_Slave_Add == 0x46) + { + Read_Buf[0] = Head_I2C_EXP4_0x46.uchar[1]; + response.progress = Read_Buf[0]; + response.has_progress = true; + } + } + else + if(Write_Buf[0] == 2)//write + { + if(Script_Slave_Add == 0x40) + { + Head_I2C_EXP1_0x40.uchar[0] = Write_Buf[1]; + } + else + if(Script_Slave_Add == 0x42) + { + Head_I2C_EXP2_0x42.uchar[0] = Write_Buf[1]; + } + else + if(Script_Slave_Add == 0x46) + { + Head_I2C_EXP4_0x46.uchar[0] = (Write_Buf[1] & 0x80); + } + + Head_Write_IO_Reg(Script_Slave_Add, LOW); + } + if(Write_Buf[0] == 3)//write + { + if(Script_Slave_Add == 0x40) + { + Head_I2C_EXP1_0x40.uchar[1] = Write_Buf[1]; + } + else + if(Script_Slave_Add == 0x42) + { + Head_I2C_EXP2_0x42.uchar[1] = Write_Buf[1]; + } + else + if(Script_Slave_Add == 0x46) + { + Head_I2C_EXP3_0x44.uchar[1] = (Write_Buf[1] & 0x0C); + } + Head_Write_IO_Reg(Script_Slave_Add, HIGH); + } } else - { - I2C_Write(I2C_ID_HEAD_CARD, Script_Slave_Add, Write_Buf, 2); - } - - delayms(1); - - uint8_t Read_Buf[2] = {0};//,0}; - I2C_Read(I2C_ID_HEAD_CARD, Script_Slave_Add + 1, Read_Buf, 1);//2 ? - response.progress = /*Read_Buf[1] << 8 | */Read_Buf[0]; - response.has_progress = true; - - } - else if(request->amount == 0xFEAD) //functions Head Card I/O { Select_Main_Head_Mux_Channel(); -- cgit v1.3.1