From c58e070614790cba63ccb6e39264b14ae5d30371 Mon Sep 17 00:00:00 2001 From: Mike Date: Sat, 1 Jan 2000 01:38:22 +0900 Subject: ignore jig alarm input on older keypads with 3 alarm inputs --- globals.h | 2 +- menus.c | 26 ++++++++++++++++---------- version.h | 2 +- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/globals.h b/globals.h index f673591..9b1f2ab 100644 --- a/globals.h +++ b/globals.h @@ -432,7 +432,7 @@ typedef struct { short telnet_session_timeout; /* 56 - timeout in seconds */ - char unusedx; /* 58 */ + char older_keypad_3_alarm_pins; /* 58 */ short spare2; /* 59 */ char ChanKey_route; /* 61 */ char on_off_used; /* 62 */ diff --git a/menus.c b/menus.c index 331a9be..fa433f7 100644 --- a/menus.c +++ b/menus.c @@ -2832,6 +2832,7 @@ static void Read_Keypad(int *button_port_val, int *upper_encoder_val, int *lower #define Jig_Input 0x08 /* jig open */ int new_button_state; + bool Overload_Alarm, Over_Temp_Alarm, Over_Volt_Alarm, Over_Other_Alarm, Jig_Alarm; /* read the button data */ new_button_state = I2C_Read(PCF8574A+Button_Press_Port); @@ -2867,13 +2868,18 @@ static void Read_Keypad(int *button_port_val, int *upper_encoder_val, int *lower /* reenable encoder */ I2C_Write(PCF8574A+Button_Press_Port,255); + // on all keypads + Overload_Alarm = !(*button_port_val & Overload_Input); + Over_Temp_Alarm = !(*upper_encoder_val & Over_Temp); + Over_Volt_Alarm = !(*upper_encoder_val & Over_Volt); + Over_Other_Alarm = !(*upper_encoder_val & Over_Other); + + // only on newer keypad boards + Jig_Alarm = !(*upper_encoder_val & Jig_Input) && !globals.Flash.older_keypad_3_alarm_pins; + /* alarm condition */ /* valid for both local and remote modes */ - if ( !(*upper_encoder_val & Over_Temp) - || !(*upper_encoder_val & Over_Volt) - || !(*upper_encoder_val & Jig_Input) - || !(*upper_encoder_val & Over_Other) - || !(*button_port_val & Overload_Input) ) { + if (Over_Temp_Alarm || Over_Volt_Alarm || Jig_Alarm || Over_Other_Alarm || Overload_Alarm) { /* disable all outputs immediately */ int outputs_turned_off = 0; @@ -2890,15 +2896,15 @@ static void Read_Keypad(int *button_port_val, int *upper_encoder_val, int *lower /* Report the problem if outputs had to be turned off. */ if ((outputs_turned_off > 0) || globals.Flash.warn_even_if_output_off) { /* flag the problem */ - if (!(*upper_encoder_val & Over_Temp)) { + if (Over_Temp_Alarm) { queue_and_broadcast_sensor_alarm(Overtemp_Detected); - } else if (!(*upper_encoder_val & Over_Volt)) { + } else if (Over_Volt_Alarm) { queue_and_broadcast_sensor_alarm(Overvolt_Detected); - } else if (!(*upper_encoder_val & Jig_Input)) { + } else if (Jig_Alarm) { queue_and_broadcast_sensor_alarm(Jig_Open_Detected); - } else if (!(*upper_encoder_val & Over_Other)) { + } else if (Over_Other_Alarm) { queue_and_broadcast_sensor_alarm(Device_Specific_Aux_Error_Detected); - } else if (!(*button_port_val & Overload_Input)) { + } else if (Overload_Alarm) { queue_and_broadcast_sensor_alarm(Overload_Detected); } } diff --git a/version.h b/version.h index 0f013bd..d7e05bf 100644 --- a/version.h +++ b/version.h @@ -1,2 +1,2 @@ -#define FW_VERSION "6.4.37" +#define FW_VERSION "6.4.38" #define SCPI_version "1996.0" -- cgit