diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2020-05-20 11:52:10 +0300 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2020-05-20 11:52:10 +0300 |
| commit | 4f5f566c04f9ae11fe871e20eaeb4adf43504bb7 (patch) | |
| tree | c84b43b8c3d46a335bbeb7c8bcf3fca5cf1c091c /Software/Embedded_SW/Embedded/Modules | |
| parent | 231591bb23fc74ffd038c2d58af1c8669e6cf61b (diff) | |
| download | Tango-4f5f566c04f9ae11fe871e20eaeb4adf43504bb7.tar.gz Tango-4f5f566c04f9ae11fe871e20eaeb4adf43504bb7.zip | |
fix current alarms (PP only). RFID stubs,
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules')
8 files changed, 72 insertions, 61 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c index 392be6177..9c924eaec 100644 --- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c +++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c @@ -26,6 +26,7 @@ #include "drivers/FPGA/FPGA.h" #include "drivers/I2C_Communication/ADC_MUX/ADC_MUX.h" #include "drivers/I2C_Communication/Dispenser_Card/IO_Ports/Dispenser_IO.h" +#include <Drivers/I2C_Communication/WHS_Card/D_EMC2302_Fan/WHS_Fan.h> #include "drivers/I2C_Communication/Head_Card/ADC/Head_ADC.h" #include "Common/SWUpdate/FileSystem.h" #include "drivers/Flash_ram/MCU_E2Prom.h" @@ -1213,7 +1214,7 @@ uint32_t AlarmHandlingLoop(uint32_t tick) if (AlarmState[Alarm_i].Status == false) ReportWithPackageFilter(AlarmFilter,"OverCurrent Alarm ON ", __FILE__,AlarmItem[Alarm_i].DeviceId,(int)(AlarmItem[Alarm_i].AlarmValue*100), RpMessage, (int)(doubleValue*100), 0); } - if ((doubleValue <= (float)(AlarmItem[Alarm_i].AlarmValue*CurrentAlarmLowLimit))&&(isHeaterReady(AlarmItem[Alarm_i].DeviceId)==false)) + if ((doubleValue <= (float)(AlarmItem[Alarm_i].AlarmValue*CurrentAlarmLowLimit))&&(isHeaterReady(AlarmItem[Alarm_i].DeviceId)==false)&&(doubleValue>100)) { Status = true; if (AlarmState[Alarm_i].Status == false) @@ -1234,28 +1235,43 @@ uint32_t AlarmHandlingLoop(uint32_t tick) } else { - if (Get_Head_Current(AlarmItem[Alarm_i].DeviceId, &doubleValue) == OK) - { - if (AlarmItem[Alarm_i].AlarmDirection == true) + if (Head_Type < HEAD_TYPE_UNKNOWN_WITH_CARD) //no current alarms for old head + { + Status = false; + } + else + { + if (Get_Head_Current(AlarmItem[Alarm_i].DeviceId, &doubleValue) == OK) { - if ((doubleValue >= (float)(AlarmItem[Alarm_i].AlarmValue*CurrentAlarmHighLimit)) || (doubleValue <= (float)(AlarmItem[Alarm_i].AlarmValue*CurrentAlarmLowLimit))) + if (AlarmItem[Alarm_i].AlarmDirection == true) { - Status = true; - if (AlarmState[Alarm_i].Status == false) - ReportWithPackageFilter(AlarmFilter,"OverCurrent Alarm ON ", __FILE__,AlarmItem[Alarm_i].DeviceId,(int)(AlarmItem[Alarm_i].AlarmValue*100), RpMessage, (int)(doubleValue*100), 0); + if ((doubleValue >= (float)(AlarmItem[Alarm_i].AlarmValue*CurrentAlarmHighLimit)) || (doubleValue <= (float)(AlarmItem[Alarm_i].AlarmValue*CurrentAlarmLowLimit))&&(doubleValue>100)) + { + Status = true; + if (AlarmState[Alarm_i].Status == false) + { + //usnprintf(AlarmReasonStr, 100, "OverCurrent Alarm %d ON dev %d debounce %d/%d value %d",AlarmItem[Alarm_i].EventType,AlarmItem[Alarm_i].DeviceId,AlarmState[Alarm_i].DebounceCounter,AlarmItem[Alarm_i].DebounceValue,(int)(doubleValue*100)); + //ReportWithPackageFilter(AlarmFilter,AlarmReasonStr, __FILE__,AlarmItem[Alarm_i].DeviceId,(int)(AlarmItem[Alarm_i].AlarmValue*100), RpMessage, (int)(doubleValue*100), 0); + ReportWithPackageFilter(AlarmFilter,"OverCurrent Alarm ON ", __FILE__,AlarmItem[Alarm_i].DeviceId,(int)(AlarmItem[Alarm_i].AlarmValue*100), RpMessage, (int)(doubleValue*100), 0); + } + } } - } - else - { - if (doubleValue <= 0.1) + else { - Status = true; - if (AlarmState[Alarm_i].Status == false) - ReportWithPackageFilter(AlarmFilter,"loop break Alarm ON ", __FILE__,AlarmItem[Alarm_i].DeviceId,(int)(AlarmItem[Alarm_i].AlarmValue*100), RpMessage, (int)(doubleValue*100), 0); + if (doubleValue <= 0.1) + { + Status = true; + if (AlarmState[Alarm_i].Status == false) + { + //usnprintf(AlarmReasonStr, 100, "LOOP BREAK Alarm %d ON dev %d debounce %d/%d value %d",AlarmItem[Alarm_i].EventType,AlarmItem[Alarm_i].DeviceId,AlarmState[Alarm_i].DebounceCounter,AlarmItem[Alarm_i].DebounceValue,(int)(doubleValue*100)); + //ReportWithPackageFilter(AlarmFilter,AlarmReasonStr, __FILE__,AlarmItem[Alarm_i].DeviceId,(int)(AlarmItem[Alarm_i].AlarmValue*100), RpMessage, (int)(doubleValue*100), 0); + ReportWithPackageFilter(AlarmFilter,"loop break Alarm ON ", __FILE__,AlarmItem[Alarm_i].DeviceId,(int)(AlarmItem[Alarm_i].AlarmValue*100), RpMessage, (int)(doubleValue*100), 0); + } + } } - } - } + } + } } } else diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c index 7758ebd8b..71475ca41 100644 --- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c +++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c @@ -559,21 +559,21 @@ void DiagnosticOneMinuteCollection(void) DiagnosticsMonitor.headzone3heatercurrent = HeadCurrent[i]; i++; } - if (Get_Head_Heater_Current_Reading_State(HEAD_CURRENT_HTIN_1) == true) + if (Get_Head_Heater_Current_Reading_State(HEAD_CURRENT_ZONE_4) == true) { Get_Head_Current(HEAD_CURRENT_HTIN_1,&HeadCurrent[i][0]); - DiagnosticsMonitor.n_headzone4heatercurrent = 1; - DiagnosticsMonitor.headzone4heatercurrent = HeadCurrent[i]; + DiagnosticsMonitor.n_headcoverheater1current= 1; + DiagnosticsMonitor.headcoverheater1current = HeadCurrent[i]; i++; } - if (Get_Head_Heater_Current_Reading_State(HEAD_CURRENT_HTOT_1) == true) + if (Get_Head_Heater_Current_Reading_State(HEAD_CURRENT_ZONE_5) == true) { Get_Head_Current(HEAD_CURRENT_HTOT_1,&HeadCurrent[i][0]); - DiagnosticsMonitor.n_headzone5_6heatercurrent = 1; - DiagnosticsMonitor.headzone5_6heatercurrent = HeadCurrent[i]; + DiagnosticsMonitor.n_headcoverheater2current = 1; + DiagnosticsMonitor.headcoverheater2current = HeadCurrent[i]; i++; } - if (Get_Head_Heater_Current_Reading_State(HEAD_CURRENT_HTIN_1) == true) + /*if (Get_Head_Heater_Current_Reading_State(HEAD_CURRENT_HTIN_1) == true) { Get_Head_Current(HEAD_CURRENT_HTIN_2,&HeadCurrent[i][0]); DiagnosticsMonitor.n_headzone7heatercurrent = 1; @@ -614,7 +614,7 @@ void DiagnosticOneMinuteCollection(void) DiagnosticsMonitor.n_headzone12heatercurrent = 1; DiagnosticsMonitor.headzone12heatercurrent = HeadCurrent[i]; i++; - } + }*/ } } @@ -1347,6 +1347,8 @@ void DiagnosticsTask(UArg arg0, UArg arg1) break; case DiagnosticsOneSecTrigger: DiagnosticOneSecCollection(); + if (DiagnosticMode >= Diagnostic_Extreme_Mode) + DiagnosticOneMinuteCollection(); break; case DiagnosticsOneMinuteTrigger: DiagnosticOneMinuteCollection(); diff --git a/Software/Embedded_SW/Embedded/Modules/General/process.c b/Software/Embedded_SW/Embedded/Modules/General/process.c index 8c0bc3e73..885fc4472 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/process.c +++ b/Software/Embedded_SW/Embedded/Modules/General/process.c @@ -327,7 +327,7 @@ void ProcessRequestFunc(MessageContainer* requestContainer) if (status == 0) status = HandleProcessParameters(ProcessParams,true); - if ((status)&&(status !=ERROR_CODE__GENERAL_ERROR)) + if ((status)&&(status != ERROR_CODE__GENERAL_ERROR)) //ignore init not ready result { responseContainer.has_error = true; responseContainer.error = (ErrorCode)status; diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c index 45a0e374b..44230a4f9 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c @@ -1002,17 +1002,17 @@ uint32_t DcHeaterMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue) ReportWithPackageFilter(HeatersFilter, "Temperature Error",__FILE__,__LINE__,index,RpError, 0,0); return OK; } + if (getIdleState() == false) + { + ReportWithPackageFilter(HeatersFilter,"DC Heater Over the max temperature, turned off",__FILE__,index,HeaterPreviousRead[index],RpWarning, HeaterReady[index],0); + ReportWithPackageFilter(HeatersFilter,"Heater over the max temperature",__FILE__,index,OverHeatCounter[index],RpWarning,HeaterControl[index].sensormaxvalue, 0); + AlarmHandlingSetAlarm(HeaterEventType[index], true); + } } DeActivateHeater(index); HeaterRecalculateHeaterParams(index, 0); HeaterMaxTempFlag[index] = true; //ReportWithPackageFilter(HeatersFilter,(MinreadValue/100), "Heater Over the max temperature, turned off"); - if (getIdleState() == false) - { - ReportWithPackageFilter(HeatersFilter,"DC Heater Over the max temperature, turned off",__FILE__,index,HeaterPreviousRead[index],RpWarning, HeaterReady[index],0); - ReportWithPackageFilter(HeatersFilter,"Heater over the max temperature",__FILE__,index,OverHeatCounter[index],RpWarning,HeaterControl[index].sensormaxvalue, 0); - AlarmHandlingSetAlarm(HeaterEventType[index], true); - } return OK; } else if ((HeaterPreviousRead[index]) < (HeaterControl[index].sensorminvalue)) diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c index 32895f307..d504ceebd 100644 --- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c +++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c @@ -282,7 +282,7 @@ JobDescriptionFileBrushStop *FirstBrushStop = NULL; SendJobProgress(0.0,0,false, "Processing file"); Control_WD(ENABLE,55); //activate heaters/dispenser watchdog, 0.5 seconds } - if ((brushCounter % 1000)==0) + if ((brushCounter % 1000)==900) { Task_sleep(200); Report("Sleep in file parsing",__FILE__, BrushStop->index, brushCounter, RpWarning, Segment->brushstopscount, 0); diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Cartridge.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Cartridge.c index 132d46fb7..7e75f31f9 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Cartridge.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Cartridge.c @@ -10,9 +10,10 @@ #include "inc/hw_uart.h" #include "driverlib/gpio.h" -#include "Drivers/USB_Communication/USBCDCD.h" #include "Drivers/I2C_Communication/RFID_NFC/logi-tag/LT_RFID.h" #include "Drivers/I2C_Communication/RFID_NFC/NFC.h" +#include <Utilities/RfidTagHandling.h> +#include <Drivers/I2C_Communication/RFID_NFC/RFIDTagInfo.h> #include "Stub_Status.h" @@ -23,36 +24,26 @@ void Stub_CartridgeReadRequest(MessageContainer* requestContainer) StubCartridgeReadRequest* request = stub_cartridge_read_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data); + Cartridge CartridgeRead = CARTRIDGE__INIT; + CartridgeTagContent TagRead = CARTRIDGE_TAG_CONTENT__INIT; + NFC_Tag NFC_TagRead; Init_RFID_Reader(); uint8_t readerID = request->cartridgeid; Connect_to_RFID_Reder(readerID);//2 StubCartridgeReadResponse response = STUB_CARTRIDGE_READ_RESPONSE__INIT; - response.cartridgeid = request->cartridgeid; - response.has_cartridgeid = true; + response.cartridge = &CartridgeRead; + CartridgeRead.has_index = false; + CartridgeRead.has_slot = true; + CartridgeRead.slot = request->cartridgeid; + CartridgeRead.tag = &TagRead; - response.cartridgecolor = (uid[6] << 24) | (uid[5] << 16) | (uid[4] << 8) | uid[3]; - //response.cartridgecolor - response.has_cartridgecolor = true; - - response.cartridgeversion = (uid[2] << 16) | (uid[1] << 8) | uid[0]; - //response.cartridgeversion - response.has_cartridgeversion = true; - - response.cartridgedata = RFID_Status; - //response.cartridgedata - response.has_cartridgedata = false; - - //response.cartridgeused - response.has_cartridgeused = false; - - status_response(status,&response.status, &response.statusword ,&response.has_statusword); - - - Write_status_response(status); responseContainer = createContainer(MESSAGE_TYPE__StubCartridgeReadResponse, requestContainer->token, true, &response, &stub_cartridge_read_response__pack, &stub_cartridge_read_response__get_packed_size); + responseContainer.has_error = false; + responseContainer.error = ERROR_CODE__NONE; + responseContainer.errormessage = "PASSED"; //------------------------------------------------------------------------------------------- uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer)); @@ -80,19 +71,19 @@ void Stub_CartridgeWriteRequest(MessageContainer* requestContainer) StubCartridgeWriteResponse response = STUB_CARTRIDGE_WRITE_RESPONSE__INIT; - response.cartridgeid = request->cartridgeid; + response.cartridgeid = request->cartridge->slot; response.has_cartridgeid = true; // char temp[7] = "PASSED"; // response.status = temp; // response.statusword = OK; // response.has_statusword = true; - status_response(status,&response.status, &response.statusword ,&response.has_statusword); - Write_status_response(status); responseContainer = createContainer(MESSAGE_TYPE__StubCartridgeWriteResponse, requestContainer->token, true, &response, &stub_cartridge_write_response__pack, &stub_cartridge_write_response__get_packed_size); - + responseContainer.has_error = false; + responseContainer.error = ERROR_CODE__NONE; + responseContainer.errormessage = "PASSED"; //------------------------------------------------------------------------------------------- uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer)); size_t container_size = message_container__pack(&responseContainer, container_buffer); diff --git a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c index 76aacb23e..f011e8a1f 100644 --- a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c +++ b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c @@ -7,7 +7,7 @@ #include "drivers/Valves/Valve.h" #include "Common/report/report.h" #include "Modules/Waste/Waste.h" -#include "common/utilities/RfidTagContent.h" +#include <Drivers/I2C_Communication/RFID_NFC/RFIDTagInfo.h> #include <PMR/Diagnostics/EventType.pb-c.h> #include "Modules/AlarmHandling/AlarmHandling.h" @@ -19,6 +19,7 @@ #include "Modules/IFS/ifs.h" #include <Drivers/I2C_Communication/I2C_Task.h> #include <Drivers/I2C_Communication/WHS_Card/D_MAX11614_ADC/WHS_MAX11614_A2D.h> +#include <Drivers/I2C_Communication/WHS_Card/D_Max5805_ADC_Blower/WHS_Blower.h> // //#define CARTRIDGE_INK_TIMEOUT 60 //#define CARTRIDGE_INK_TIMEOUTx2 120 @@ -73,7 +74,7 @@ void SetWasteLevelEmptyingLimit(double value); -RfidTagContent cartridge_info; +NFCTag_t cartridge_info; // function for RFID: bool WrRFIDStatus(cartridge_name active_cartridge, cartridge_status status); diff --git a/Software/Embedded_SW/Embedded/Modules/Waste/newWHS_init.c b/Software/Embedded_SW/Embedded/Modules/Waste/newWHS_init.c index 485b28ccc..c8169ebef 100644 --- a/Software/Embedded_SW/Embedded/Modules/Waste/newWHS_init.c +++ b/Software/Embedded_SW/Embedded/Modules/Waste/newWHS_init.c @@ -64,6 +64,7 @@ bool newWHS_init(void) Trigger_WHS_Rheostat_init(); status |= WHS_I2C_EEprom_Read_Buf(); + Trigger_WHS_I2C_EEprom_Read ( 0, sizeof(WHS_Eeprom.bytes), WHS_Eeprom.Buf); //status |= WHS_IO_Init(); //status |= init_WHS_fan(); // |
