Index: dialin/common/__init__.py =================================================================== diff -u -r1dcdd74a0515845ccde2be8271d3576b9ca80033 -r3f12fb75e3d92e3ecbcb86a4b9b284dd0b05e26f --- dialin/common/__init__.py (.../__init__.py) (revision 1dcdd74a0515845ccde2be8271d3576b9ca80033) +++ dialin/common/__init__.py (.../__init__.py) (revision 3f12fb75e3d92e3ecbcb86a4b9b284dd0b05e26f) @@ -1,10 +1,5 @@ -from .alarm_defs import AlarmList, AlarmPriorities -from .msg_defs import MsgIds -from .prs_defs import Ranges -from .hd_defs import (PreTreatmentSubModes, - PreTreatmentSampleWaterStates, - PreTreatmentConsumableSelfTestStates, - PreTreatmentRecircStates, - PreTreatmentNoCartSelfTestStates, - PreTreatmentDrySelfTestStates, - PreTreatmentPrimeStates) +from .alarm_defs import * +from .alarm_priorities import * +from .msg_defs import * +from .prs_defs import * +from .hd_defs import * Index: dialin/common/alarm_defs.py =================================================================== diff -u -r46a620c6eec5d04cdbada3afd520f95d0c157c65 -r3f12fb75e3d92e3ecbcb86a4b9b284dd0b05e26f --- dialin/common/alarm_defs.py (.../alarm_defs.py) (revision 46a620c6eec5d04cdbada3afd520f95d0c157c65) +++ dialin/common/alarm_defs.py (.../alarm_defs.py) (revision 3f12fb75e3d92e3ecbcb86a4b9b284dd0b05e26f) @@ -1,34 +1,199 @@ + ########################################################################### # -# Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. +# Copyright (c) 2019-2021 Diality Inc. - All Rights Reserved. # # THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN # WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. # # @file alarm_defs.py # -# @author (last) Sean Nash -# @date (last) 03-Nov-2020 +# @author (last) Peter Lucia +# @date (last) 05-Apr-2021 # @author (original) Peter Lucia -# @date (original) 07-Aug-2020 +# @date (original) 05-Apr-2021 # ############################################################################ -import os from enum import unique -from ..utils.base import AlarmEnum, DialinEnum +from ..utils.base import AlarmEnum -enum_list = {} -with open(os.path.join(os.path.dirname(__file__), 'AlarmIds.txt'), 'r') as file_obj: - for line in file_obj: - split_str = line.split('=') - enum_list[split_str[0].strip()] = int(split_str[1].strip()) -AlarmList = AlarmEnum('AlarmList', enum_list) - +# Branch: Sprint37 @unique -class AlarmPriorities(DialinEnum): - ALARM_PRIORITY_NONE = 0 # Indicates not an alarm or no alarms active at this time - ALARM_PRIORITY_LOW = 1 # Low priority alarm - ALARM_PRIORITY_MEDIUM = 2 # Medium priority alarm - ALARM_PRIORITY_HIGH = 3 # High priority alarm - NUM_OF_ALARM_PRIORITIES = 4 # Total number of alarm priorities +class AlarmList(AlarmEnum): + ALARM_ID_NO_ALARM = 0 + ALARM_ID_HD_SOFTWARE_FAULT = 1 + ALARM_ID_STUCK_BUTTON_TEST_FAILED = 2 + ALARM_ID_FPGA_POST_TEST_FAILED = 3 + ALARM_ID_WATCHDOG_POST_TEST_FAILED = 4 + ALARM_ID_UI_COMM_POST_FAILED = 5 + ALARM_ID_BLOOD_PUMP_MC_CURRENT_CHECK = 6 + ALARM_ID_BLOOD_PUMP_OFF_CHECK = 7 + ALARM_ID_BLOOD_PUMP_MC_DIRECTION_CHECK = 8 + ALARM_ID_BLOOD_PUMP_ROTOR_SPEED_CHECK = 9 + ALARM_ID_DIAL_IN_PUMP_MC_CURRENT_CHECK = 10 + ALARM_ID_DIAL_IN_PUMP_OFF_CHECK = 11 + ALARM_ID_DIAL_IN_PUMP_MC_DIRECTION_CHECK = 12 + ALARM_ID_DIAL_IN_PUMP_ROTOR_SPEED_CHECK = 13 + ALARM_ID_DIAL_OUT_PUMP_MC_CURRENT_CHECK = 14 + ALARM_ID_DIAL_OUT_PUMP_OFF_CHECK = 15 + ALARM_ID_DIAL_OUT_PUMP_MC_DIRECTION_CHECK = 16 + ALARM_ID_DIAL_OUT_PUMP_ROTOR_SPEED_CHECK = 17 + ALARM_ID_WATCHDOG_EXPIRED = 18 + ALARM_ID_RTC_COMM_ERROR = 19 + ALARM_ID_RTC_CONFIG_ERROR = 20 + ALARM_ID_DG_COMM_TIMEOUT = 21 + ALARM_ID_UI_COMM_TIMEOUT = 22 + ALARM_ID_COMM_TOO_MANY_BAD_CRCS = 23 + ALARM_ID_TREATMENT_STOPPED_BY_USER = 24 + ALARM_ID_BLOOD_SITTING_WARNING = 25 + ALARM_ID_BLOOD_SITTING_TOO_LONG_NO_RESUME = 26 + ALARM_ID_BLOOD_SITTING_TOO_LONG_NO_RINSEBACK = 27 + ALARM_ID_CAN_MESSAGE_NOT_ACKED = 28 + ALARM_ID_OCCLUSION_BLOOD_PUMP = 29 + ALARM_ID_OCCLUSION_DIAL_IN_PUMP = 30 + ALARM_ID_OCCLUSION_DIAL_OUT_PUMP = 31 + ALARM_ID_ARTERIAL_PRESSURE_LOW = 32 + ALARM_ID_ARTERIAL_PRESSURE_HIGH = 33 + ALARM_ID_VENOUS_PRESSURE_LOW = 34 + ALARM_ID_VENOUS_PRESSURE_HIGH = 35 + ALARM_ID_UF_RATE_TOO_HIGH_ERROR = 36 + ALARM_ID_UF_VOLUME_ACCURACY_ERROR = 37 + ALARM_ID_RTC_BATTERY_LOW = 38 + ALARM_ID_RTC_OR_TIMER_ACCURACY_FAILURE = 39 + ALARM_ID_RTC_RAM_OPS_ERROR = 40 + ALARM_ID_NVDATA_EEPROM_OPS_FAILURE = 41 + ALARM_ID_NVDATA_MFG_RECORD_CRC_ERROR = 42 + ALARM_ID_NVDATA_SRVC_RECORD_CRC_ERROR = 43 + ALARM_ID_NVDATA_CAL_RECORD_CRC_ERROR = 44 + ALARM_ID_NVDATA_HW_USAGE_DATA_CRC_ERROR = 45 + ALARM_ID_RO_PUMP_OUT_PRESSURE_OUT_OF_RANGE = 47 + ALARM_ID_TEMPERATURE_SENSORS_FAULT = 48 + ALARM_ID_FPGA_COMM_TIMEOUT = 49 + ALARM_ID_HD_COMM_TIMEOUT = 50 + ALARM_ID_VALVE_CONTROL_FAILURE = 51 + ALARM_ID_BLOOD_PUMP_FLOW_VS_MOTOR_SPEED_CHECK = 52 + ALARM_ID_DIAL_IN_PUMP_FLOW_VS_MOTOR_SPEED_CHECK = 53 + ALARM_ID_HD_PRIME_PURGE_AIR_TIME_OUT = 54 + ALARM_ID_BLOOD_PUMP_MOTOR_SPEED_CHECK = 55 + ALARM_ID_DIAL_IN_PUMP_MOTOR_SPEED_CHECK = 56 + ALARM_ID_DIAL_OUT_PUMP_MOTOR_SPEED_CHECK = 57 + ALARM_ID_BLOOD_PUMP_ROTOR_SPEED_TOO_HIGH = 58 + ALARM_ID_INLET_WATER_LOW_CONDUCTIVITY = 59 + ALARM_ID_INLET_WATER_HIGH_CONDUCTIVITY = 60 + ALARM_ID_DG_SOFTWARE_FAULT = 61 + ALARM_ID_CONDUCTIVITY_SENSOR_FAULT = 62 + ALARM_ID_INLET_WATER_LOW_TEMPERATURE = 63 + ALARM_ID_INLET_WATER_HIGH_TEMPERATURE = 64 + ALARM_ID_PRESSURE_SENSOR_FAULT = 65 + ALARM_ID_INLET_WATER_LOW_PRESSURE = 66 + ALARM_ID_HD_CRITICAL_DATA_ERROR = 67 + ALARM_ID_HD_ACCELEROMETER_SELF_TEST_FAILURE = 68 + ALARM_ID_DG_ACCELEROMETER_SELF_TEST_FAILURE = 69 + ALARM_ID_HD_EXCESSIVE_TILT = 70 + ALARM_ID_DG_EXCESSIVE_TILT = 71 + ALARM_ID_HD_SHOCK = 72 + ALARM_ID_DG_SHOCK = 73 + ALARM_ID_HD_ACCELEROMETER_FAILURE = 74 + ALARM_ID_DG_ACCELEROMETER_FAILURE = 75 + ALARM_ID_DG_CRITICAL_DATA_ERROR = 76 + ALARM_ID_RO_REJECTION_RATIO_OUT_OF_RANGE = 77 + ALARM_ID_INLET_WATER_PRESSURE_FAULT = 78 + ALARM_ID_HD_VALVE_HOMING_FAILED = 79 + ALARM_ID_HD_VALVE_TRANSITION_TIMEOUT = 80 + ALARM_ID_HD_VALVE_NOT_FUNCTIONAL = 81 + ALARM_ID_HD_VALVE_CURRENT_OUT_OF_RANGE = 82 + ALARM_ID_HD_VALVE_POSITION_OUT_OF_RANGE = 83 + ALARM_ID_AIR_TRAP_ILLEGAL_LEVELS = 84 + ALARM_ID_AIR_TRAP_FILL_DURING_PRIME = 85 + ALARM_ID_AIR_TRAP_FILL_DURING_TREATMENT = 86 + ALARM_ID_BLOOD_FLOW_SIGNAL_STRENGTH_TOO_LOW = 87 + ALARM_ID_DIALYSATE_FLOW_SIGNAL_STRENGTH_TOO_LOW = 88 + ALARM_ID_EMPTY_SALINE_BAG = 89 + ALARM_ID_SALINE_BOLUS_VOLUME_CHECK_FAILURE = 90 + ALARM_ID_ARTERIAL_PRESSURE_SENSOR_FAULT = 91 + ALARM_ID_VENOUS_PRESSURE_SENSOR_FAULT = 92 + ALARM_ID_UV_REACTOR_NOT_HEALTHY = 93 + ALARM_ID_ACID_CONDUCTIVITY_OUT_OF_RANGE = 94 + ALARM_ID_BICARB_CONDUCTIVITY_OUT_OF_RANGE = 95 + ALARM_ID_RO_PUMP_FLOW_RATE_OUT_OF_RANGE = 96 + ALARM_ID_DG_THERMISTORS_TEMPERATURE_OUT_OF_RANGE = 97 + ALARM_ID_DG_FAN_RPM_OUT_OF_RANGE = 98 + ALARM_ID_DG_DIALYSATE_FILL_OUT_OF_TIME = 99 + ALARM_ID_CP1_SPEED_CONTROL_ERROR = 100 + ALARM_ID_CP2_SPEED_CONTROL_ERROR = 101 + ALARM_ID_FLOW_RATE_OUT_OF_UPPER_RANGE = 102 + ALARM_ID_RO_PUMP_PRESSURE_OUT_OF_RANGE = 103 + ALARM_ID_DRAIN_PUMP_RPM_OUT_OF_RANGE = 104 + ALARM_ID_DG_HEATERS_NEGATIVE_COLD_JUNCTION_TEMPERATURE = 105 + ALARM_ID_DG_HEATERS_FAULT = 106 + ALARM_ID_END_OF_TREATMENT_WARNING = 107 + ALARM_ID_END_OF_TREATMENT_ALARM = 108 + ALARM_ID_END_OF_TREATMENT_HIGH = 109 + ALARM_ID_DG_HEAT_DISINFECT_CYCLE_FAILED = 110 + ALARM_ID_RO_PUMP_RAMP_UP_TO_FLOW_TIMEOUT = 111 + ALARM_ID_FLOW_RATE_OUT_OF_LOWER_RANGE = 112 + ALARM_ID_DRAIN_PUMP_OFF_FAULT = 113 + ALARM_ID_RO_PUMP_OFF_FAULT = 114 + ALARM_ID_PRIME_DIALYSATE_DIALYZER_TIME_OUT = 115 + ALARM_ID_PRIME_DIALYSATE_BYPASS_TIME_OUT = 116 + ALARM_ID_PRIME_COMPLETED_LOW_PRIORITY = 117 + ALARM_ID_PRIME_COMPLETED_MEDIUM_PRIORITY = 118 + ALARM_ID_PRIME_COMPLETED_HIGH_PRIORITY = 119 + ALARM_ID_PRIME_OUT_OF_TIME = 120 + ALARM_ID_DG_COMMAND_INVALID_PARAMETER_FAULT = 121 + ALARM_ID_HD_LOAD_CELL_ACCELERATION_RES_1_ALARM = 122 + ALARM_ID_HD_LOAD_CELL_ACCELERATION_RES_2_ALARM = 123 + ALARM_ID_TREATMENT_STOPPED_AFTER_RINSEBACK = 124 + ALARM_ID_TREATMENT_RINSEBACK_TIMEOUT_ALARM = 125 + ALARM_ID_TREATMENT_RECIRC_TIMEOUT_ALARM = 126 + ALARM_ID_CARTRIDGE_DOOR_OPENED = 127 + ALARM_ID_PRE_TREATMENT_NO_CART_SELF_TEST_FAILURE = 128 + ALARM_ID_INSTALL_NEW_CARTRIDGE = 129 + ALARM_ID_CARTRIDGE_INSTALLED_IMPROPERLY = 130 + ALARM_ID_RINSEBACK_VOLUME_CHECK_FAILURE = 131 + ALARM_ID_NO_CARTRIDGE_LOADED = 132 + ALARM_ID_END_TREATMENT_TIMEOUT_ALARM = 133 + ALARM_ID_BLOOD_PRIME_VOLUME_CHECK_FAILURE = 134 + ALARM_ID_DIALYSATE_TEMPERATURE_TOO_HIGH = 135 + ALARM_ID_DIALYSATE_TEMPERATRUE_TOO_LOW = 136 + ALARM_ID_PRE_TREATMENT_DRY_SELF_TEST_FAILURE = 137 + ALARM_ID_PRE_TREATMENT_WET_SELF_TEST_FAILURE = 138 + ALARM_ID_DG_FLOW_METER_CHECK_FAILURE = 139 + ALARM_ID_DG_RO_PUMP_TOO_MANY_RAMP_UP_RETRY = 140 + ALARM_ID_NVDATAMGMT_GROUP_RECORD_CRC_INVALID = 141 + ALARM_ID_NVDATAMGMT_INDIVIDUAL_RECORD_CRC_INVALID = 142 + ALARM_ID_NVDATAMGMT_INDIVIDUAL_RECORD_TIME_INVALID = 143 + ALARM_ID_HD_AC_POWER_LOST = 144 + ALARM_ID_DG_RESTARTED_FAULT = 145 + ALARM_ID_DIALYSATE_CONDUCTIVITY_OUT_OF_RANGE = 146 + ALARM_ID_HD_FLUID_LEAK_DETECTED = 147 + ALARM_ID_DG_FLUID_LEAK_DETECTED = 148 + ALARM_ID_HD_SYRINGE_PUMP_ADC_ERROR = 149 + ALARM_ID_HD_SYRINGE_DETECTED = 150 + ALARM_ID_HD_SYRINGE_PUMP_VOLUME_ERROR = 151 + ALARM_ID_HD_SYRINGE_PUMP_SPEED_ERROR = 152 + ALARM_ID_HD_SYRINGE_PUMP_SYRINGE_EMPTY = 153 + ALARM_ID_HD_SYRINGE_PUMP_OCCLUSION = 154 + ALARM_ID_HD_SYRINGE_PUMP_SYRINGE_REMOVED = 155 + ALARM_ID_HD_SYRINGE_PUMP_NOT_STOPPED_ERROR = 156 + ALARM_ID_HD_BLOOD_LEAK_DETECTED = 157 + ALARM_ID_CARTRIDGE_REMOVAL_FAILURE = 158 + ALARM_ID_DG_RESERVOIR_DRAIN_TIMEOUT = 159 + ALARM_ID_DG_RESERVOIR_FILL_TIMEOUT = 160 + ALARM_ID_DG_RESERVOIR_LEAK_TIMEOUT = 161 + ALARM_ID_DG_HEAT_DISINFECT_TARGET_TEMP_TIMEOUT = 162 + ALARM_ID_DG_TEMP_SENSORS_DIFF_OUT_OF_RANGE = 163 + ALARM_ID_DG_HEAT_DISINFECT_INLET_PRES_AND_TEMP_SNSRS_OUT = 164 + ALARM_ID_DG_HEAT_DISINFECT_INLET_COND_AND_TEMP_OUT = 165 + ALARM_ID_DG_BAD_INLET_WATER_QUALITY = 166 + ALARM_ID_HD_BP_OCCLUSION_SELF_TEST_FAILURE = 167 + ALARM_ID_HD_DIP_OCCLUSION_SELF_TEST_FAILURE = 168 + ALARM_ID_HD_DOP_OCCLUSION_SELF_TEST_FAILURE = 169 + ALARM_ID_HD_ARTERIAL_PRESSURE_SELF_TEST_FAILURE = 170 + ALARM_ID_HD_VENOUS_PRESSURE_SELF_TEST_FAILURE = 171 + ALARM_ID_HD_BLOOD_FLOW_STATUS_SELF_TEST_FAILURE = 172 + ALARM_ID_HD_DIALYSATE_FLOW_STATUS_SELF_TEST_FAILURE = 173 + ALARM_ID_HD_BLOOD_LEAK_SELF_TEST_FAILURE = 174 + ALARM_ID_HD_BLOOD_LEAK_DETECTOR_FAULT = 175 + ALARM_ID_DG_LOAD_CELLS_INVALID_CALIBRATION = 176 Index: dialin/common/alarm_priorities.py =================================================================== diff -u --- dialin/common/alarm_priorities.py (revision 0) +++ dialin/common/alarm_priorities.py (revision 3f12fb75e3d92e3ecbcb86a4b9b284dd0b05e26f) @@ -0,0 +1,25 @@ +########################################################################### +# +# Copyright (c) 2019-2021 Diality Inc. - All Rights Reserved. +# +# THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN +# WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. +# +# @file alarm_priorities.py +# +# @author (last) Peter Lucia +# @date (last) 05-Apr-2021 +# @author (original) Peter Lucia +# @date (original) 05-Apr-2021 +# +############################################################################ +from enum import unique +from ..utils.base import DialinEnum + +@unique +class AlarmPriorities(DialinEnum): + ALARM_PRIORITY_NONE = 0 # Indicates not an alarm or no alarms active at this time + ALARM_PRIORITY_LOW = 1 # Low priority alarm + ALARM_PRIORITY_MEDIUM = 2 # Medium priority alarm + ALARM_PRIORITY_HIGH = 3 # High priority alarm + NUM_OF_ALARM_PRIORITIES = 4 # Total number of alarm priorities Index: tests/unit_tests/test_enums.py =================================================================== diff -u -r287af45040e35882e001fb3ea835f304007870c4 -r3f12fb75e3d92e3ecbcb86a4b9b284dd0b05e26f --- tests/unit_tests/test_enums.py (.../test_enums.py) (revision 287af45040e35882e001fb3ea835f304007870c4) +++ tests/unit_tests/test_enums.py (.../test_enums.py) (revision 3f12fb75e3d92e3ecbcb86a4b9b284dd0b05e26f) @@ -29,8 +29,8 @@ def test_alarms(self): try: - from dialin.common.alarm_defs import AlarmList - from dialin.common.alarm_defs import AlarmPriorities + from dialin.common import AlarmList + from dialin.common import AlarmPriorities except ValueError as e: self.fail("Could not import alarm_defs: {0}".format(e)) Index: tools/build_alarm_defs.py =================================================================== diff -u --- tools/build_alarm_defs.py (revision 0) +++ tools/build_alarm_defs.py (revision 3f12fb75e3d92e3ecbcb86a4b9b284dd0b05e26f) @@ -0,0 +1,131 @@ +########################################################################### +# +# Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. +# +# THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN +# WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. +# +# @file build_alarm_defs.py +# +# @author (last) Peter Lucia +# @date (last) 05-Apr-2021 +# @author (original) Peter Lucia +# @date (original) 05-Apr-2021 +# +############################################################################ +import heapq +import os +import subprocess +from datetime import datetime + + +def create_enum_file(in_path: str, out_path:str, common_branch: str, author: str): + """ + Generates an enum source code file + @param in_path: (str) input txt file + @param out_path: (str) output .py file + @param common_branch: (str) the common branch used to generate the alarms + @param author: (str) name of author for header + @return: True upon success, False upon failure + """ + + if os.path.exists(in_path): + enums = [] + try: + with open(in_path, 'r') as f: + for line in f: + split_str = line.split('=') + enums.append((int(split_str[1].strip()), split_str[0].strip())) + except FileNotFoundError as e: + print("Error reading in txt file: {0}".format(e)) + return False + + heapq.heapify(enums) + current_time = datetime.now() + + code_header = \ +""" +########################################################################### +# +# Copyright (c) 2019-{0} Diality Inc. - All Rights Reserved. +# +# THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN +# WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. +# +# @file alarm_defs.py +# +# @author (last) {3} +# @date (last) {2}-{1}-{0} +# @author (original) {3} +# @date (original) {2}-{1}-{0} +# +############################################################################""" \ + .format(current_time.strftime("%Y"), current_time.strftime("%b"), current_time.strftime("%d"), author) + + code_imports = \ +""" +from enum import unique +from ..utils.base import AlarmEnum""" + + code_class_def = \ +""" + + +# Branch: {0} +@unique +class AlarmList(AlarmEnum): +""".format(common_branch) + + # build the resultant source code + code_result = code_header + code_result += code_imports + code_result += code_class_def + + # pop the enums from the min heap until its empty + code = "" + while enums: + enum = heapq.heappop(enums) + code += " {0} = {1}\n".format(enum[1], enum[0]) + code_result += code + + try: + # write the generated file to disk + with open(out_path, 'w') as f: + f.write(code_result) + return True + except FileNotFoundError as e: + print("Error writing source code: {0}".format(e)) + return False + else: + print("Error: Input file {0} does not exist!".format(in_path)) + return False + + +def run(dst_alarms_txt: str, dst_common: str, common_branch: str, dst_python: str, author: str): + """ + Driver function to build alarm_defs.py + @param dst_alarms_txt: (str) the intermediary alarms txt file to create + @param dst_common: (str) where to temporarily clone common + @param common_branch: (str) the common branch to clone + @param dst_python: (str) the python source file to generate + @param author: (str) the author's name to put in the header of the source file + @return: None + """ + + if subprocess.call("bash gen_alarm_ids.sh {0} {1} {2}".format(dst_alarms_txt, dst_common, common_branch), shell=True) != 0: + print("Failure: Could not generate alarm ids.") + return + + if create_enum_file(dst_alarms_txt, dst_python, common_branch, author): + print("Created enum file: {0}".format(dst_python)) + print("Done.") + else: + print("Failure: Could not create enum file.") + + +if __name__ == '__main__': + run(dst_alarms_txt="/tmp/AlarmIds.txt", + dst_common="/tmp/common", + common_branch="Sprint37", + dst_python=os.path.join(os.path.abspath("../"), "dialin/common/alarm_defs.py"), + author="Peter Lucia") Index: tools/gen_alarm_ids.sh =================================================================== diff -u -r8a4783c11ec826a2b84480ffb6b033edcac12954 -r3f12fb75e3d92e3ecbcb86a4b9b284dd0b05e26f --- tools/gen_alarm_ids.sh (.../gen_alarm_ids.sh) (revision 8a4783c11ec826a2b84480ffb6b033edcac12954) +++ tools/gen_alarm_ids.sh (.../gen_alarm_ids.sh) (revision 3f12fb75e3d92e3ecbcb86a4b9b284dd0b05e26f) @@ -15,22 +15,22 @@ # ############################################################################ -OUTPUT_FILE="dialin/common/AlarmIds.txt" -COMMON_REPO="tmp/common" +if [[ "$1" == "-h" || "$1" == "--help" || $# -eq 0 ]]; then + currentFile=$(basename "$0") + echo "Usage: ./$currentFile , " + exit 1 +fi -rm -rf tmp -mkdir tmp +OUTPUT_FILE=$1 +COMMON_REPO=$2 +COMMON_BRANCH=$3 -branch_name=$(git rev-parse --abbrev-ref HEAD) +rm -rf "$COMMON_REPO" -if [ "$branch_name" = "master" ]; then - git clone -b master ssh://git@dvm-linux02:7999/comm/common.git $COMMON_REPO &> /dev/null -else - git clone -b develop ssh://git@dvm-linux02:7999/comm/common.git $COMMON_REPO &> /dev/null -fi +git clone -b "$COMMON_BRANCH" ssh://git@dvm-linux02:7999/comm/common.git "$COMMON_REPO" +if [ $? -ne 0 ]; then echo "Could not clone common"; exit 1; fi -grep -oh "ALARM_ID_.* = [0-9]*" -- tmp/common/AlarmDefs.h > $OUTPUT_FILE +grep -oh "ALARM_ID_.* = [0-9]*" -- "$COMMON_REPO/AlarmDefs.h" > "$OUTPUT_FILE" +if [ $? -ne 0 ]; then echo "Error during grep"; exit 1; fi -rm -rf tmp -echo "Generate alarm ids to file: $OUTPUT_FILE" - +rm -rf "$COMMON_REPO"