aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules/General
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2020-09-06 18:45:36 +0300
committerShlomo Hecht <shlomo@twine-s.com>2020-09-06 18:45:36 +0300
commit281bd2c6b8faf50f11d1aac3f5d61677f007ad3d (patch)
treef76f490cd1676d20ce57647ee94b625bd7381dbc /Software/Embedded_SW/Embedded/Modules/General
parent9c649a987773d50549c820a29fbb5b078c15a6aa (diff)
downloadTango-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.c37
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;