diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2020-09-06 18:45:36 +0300 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2020-09-06 18:45:36 +0300 |
| commit | 281bd2c6b8faf50f11d1aac3f5d61677f007ad3d (patch) | |
| tree | f76f490cd1676d20ce57647ee94b625bd7381dbc /Software/Embedded_SW/Embedded/Modules/General | |
| parent | 9c649a987773d50549c820a29fbb5b078c15a6aa (diff) | |
| download | Tango-281bd2c6b8faf50f11d1aac3f5d61677f007ad3d.tar.gz Tango-281bd2c6b8faf50f11d1aac3f5d61677f007ad3d.zip | |
clean and improve diagnostics and machine status
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules/General')
| -rw-r--r-- | Software/Embedded_SW/Embedded/Modules/General/MachineStatus.c | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/General/MachineStatus.c b/Software/Embedded_SW/Embedded/Modules/General/MachineStatus.c index 14bcbb5ba..b83fa6610 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/MachineStatus.c +++ b/Software/Embedded_SW/Embedded/Modules/General/MachineStatus.c @@ -15,6 +15,7 @@ #include "PMR/MachineStatus/StopMachineStatusUpdateRequest.pb-c.h" #include "PMR/MachineStatus/StartMachineStatusUpdateResponse.pb-c.h" #include "PMR/MachineStatus/StopMachineStatusUpdateResponse.pb-c.h" +#include "PMR/Diagnostics/EventType.pb-c.h" #include "PMR/MachineStatus/MachineStatus.pb-c.h" #include "PMR/MachineStatus/MachineState.pb-c.h" #include "PMR/MachineStatus/IDSPackLevel.pb-c.h" @@ -39,10 +40,12 @@ char MachineUpdateToken[36+1] = {0}; IDSPackLevel IDS_Level[MAX_SYSTEM_DISPENSERS]; TimerMotors_t msDispenserIdToMotorId[MAX_SYSTEM_DISPENSERS] = {HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_1,HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_2,HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_3,HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_4,HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_5,HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_6,HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_7,HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_8}; +bool temp_measure_alarm = false; int MachineUpdateResponseFunc(void) { int i; - + int internaltemp1,internaltemp2,usetemp; + bool int1valid = true,int2valid = true; MessageContainer responseContainer; if (MachineUpdateToken[0] == 0) return OK; @@ -57,8 +60,38 @@ int MachineUpdateResponseFunc(void) MachineStatus.n_idspackslevels = 0; MachineStatus.idspackslevels = (IDSPackLevel**)my_malloc(sizeof(IDSPackLevel *)*8); MachineStatus.has_spoolstate = true; + + internaltemp1 = MillisecGetTemperatures(TEMP_SENSE_AN_ENCLOSURETEMP1); + internaltemp2 = MillisecGetTemperatures(TEMP_SENSE_AN_ENCLOSURETEMP2); + + if((internaltemp1<=MINIMUM_HEATER_READ*100)||(MAXIMUM_HEATER_READ*100<=internaltemp1)) + int1valid = false; + if((internaltemp2<=MINIMUM_HEATER_READ*100)||(MAXIMUM_HEATER_READ*100<=internaltemp2)) + int2valid = false; + if ((int2valid == true)&&(int1valid == true)) + { + usetemp = (max(internaltemp1,internaltemp2))/100; + if (temp_measure_alarm == true) + { + AlarmHandlingSetAlarm(EVENT_TYPE__TEMPERATURE_MEASUREMENT_ERROR, false); + temp_measure_alarm = false; + } + } + else + { + AlarmHandlingSetAlarm(EVENT_TYPE__TEMPERATURE_MEASUREMENT_ERROR, true); + temp_measure_alarm = true; + if ((int2valid == false)&&(int1valid == true)) + usetemp = internaltemp1/100; + else if ((int2valid == false)&&(int1valid == false)) + usetemp = 0; + else if ((int1valid == false)&&(int2valid == true)) + usetemp = internaltemp2/100; + } + MachineStatus.has_overalltemperature = true; - MachineStatus.overalltemperature = (max(MillisecGetTemperatures(TEMP_SENSE_AN_ENCLOSURETEMP1),MillisecGetTemperatures(TEMP_SENSE_AN_ENCLOSURETEMP2)))/100; + + if (FPGA_Read_limit_Switches(GPI_SW_SPOOL_EXISTS)==LIMIT) { MachineStatus.spoolstate = SPOOL_STATE__Absent; |
