"""Holds map values for prostarsolar.""" def charge_state(inp_state): """Map function for charge state.""" states = { 0: "Start", 1: "Night Check", 2: "Disconnect", 3: "Night", 4: "Fault", 5: "Bulk", 6: "Absorption", 7: "Float", 8: "Equalize" } if inp_state in range(0,9): return states[inp_state] else: return inp_state def array_faults(inp_array_faults): """Form a string for the array_faults.""" fault_string = "" faults = { 0: "Overcurrent Phase 1", 1: "FETs Shorted", 2: "Software Bug", 3: "Battery HVD (High Voltage Disconnect)", 4: "Array HVD (High Voltage Disconnect)", 5: "EEPROM Setting Edit (reset required)", 6: "RTS Shorted", 7: "RTS was valid now disconnected", 8: "Local temp. sensor failed", 9: "Battery LVD (Low Voltage Disconect)", 10: "DIP Switch Changed (excl. DIP 8)", 11: "Processor Supply Fault" } bit_string = ("0" * 16 + "{0:b}".format(inp_array_faults))[-16:] for i in range(0, 12): if int(bit_string[i]) == 1: fault_string += faults[i] + ", " if fault_string: return fault_string[:-2] else: return "None"