# ======= Eurotherm 2000 commands dict ============
# for other models than 2400 series, only differences are required
#
# { model_number: {"cmd": (register, dtype), } ,  }
#
#  model_number = 4  => # 2400 series
#  model_number = 7  => # 2700 series

{   
4 : {
    "_1a_maximum_electrical_output": (12688, 'H'),
    "_1a_minimum_electrical_output": (12689, 'H'),
    "_1a_module_function": (12675, 'H'),
    "_1a_module_identity": (12672, 'H'),
    "_1a_pid_or_retran_value_giving_max__o_p": (12686, 'H'),
    "_1a_pid_or_retran_value_giving_min__o_p": (12687, 'H'),
    "_1a_program_summary_output_1a_config": (12695, 'H'),
    "_1a_sense_of_output": (12681, 'H'),
    "_1a_summary_output_1a_configuration": (12678, 'H'),
    "_1a_units": (12684, 'H'),
    "_1b_module_1b_function": (12676, 'H'),
    "_1b_module_1b_identity": (12673, 'H'),
    "_1b_sense_of_output__nor_inv_as1a": (12682, 'H'),
    "_1b_summary_of_1b_configuration": (12679, 'H'),
    "_1b_summary_program_o_p_1b_config": (12696, 'H'),
    "_1c_module_1c_function": (12677, 'H'),
    "_1c_module_1c_identity": (12674, 'H'),
    "_1c_module_1c_maximum_electrical": (12700, 'H'),
    "_1c_module_1c_minimum_electrical_output": (12701, 'H'),
    "_1c_module_1c_value_giving_max_output": (12698, 'H'),
    "_1c_module_1c_value_giving_min_output": (12699, 'H'),
    "_1c_sense_of_output__nor_inv_as_1a": (12683, 'H'),
    "_1c_summary_of_1c_configuration": (12680, 'H'),
    "_1c_summary_program_o_p_1c_config": (12697, 'H'),
    "_2a_maximum_electrical_output": (12752, 'H'),
    "_2a_minimum_electrical_output": (12753, 'H'),
    "_2a_module_function": (12739, 'H'),
    "_2a_module_identity": (12736, 'H'),
    "_2a_pid_or_retran_high_value": (12750, 'H'),
    "_2a_pid_or_retran_low_value": (12751, 'H'),
    "_2a_potentiometer_input_high_scalar": (12762, 'H'),
    "_2a_potentiometer_input_low_scalar": (12763, 'H'),
    "_2a_program_summary_output_2a_conf": (12759, 'H'),
    "_2a_sense_of_output": (12745, 'H'),
    "_2a_summary_output_2a_configuration": (12742, 'H'),
    "_2a_units": (12748, 'H'),
    "_2b_module_2b_function": (12740, 'H'),
    "_2b_module_2b_identity": (12737, 'H'),
    "_2b_sense_of_output__nor_inv_as_2a": (12746, 'H'),
    "_2b_summary_of_2b_configuration": (12743, 'H'),
    "_2b_summary_program_o_p_2b_config": (12760, 'H'),
    "_2c_module_2c_function": (12741, 'H'),
    "_2c_module_2c_identity": (12738, 'H'),
    "_2c_sense_of_output__nor_inv_as_2a": (12747, 'H'),
    "_2c_summary_of_2c_configuration": (12744, 'H'),
    "_2c_summary_program_o_p_2c_config": (12761, 'H'),
    "_3a_cold_junction_compensation__ip_2": (12831, 'H'),
    "_3a_input_module_3a_high_value": (12828, 'H'),
    "_3a_input_module_3a_low_value": (12829, 'H'),
    "_3a_input_type__input_2": (12830, 'H'),
    "_3a_input_value_high": (12818, 'H'),
    "_3a_input_value_low": (12819, 'H'),
    "_3a_maximum_electrical_output": (12816, 'H'),
    "_3a_minimum_electrical_output": (12817, 'H'),
    "_3a_module_3a_high_value": (12814, 'H'),
    "_3a_module_3a_low_value": (12815, 'H'),
    "_3a_module_function": (12803, 'H'),
    "_3a_module_identity": (12800, 'H'),
    "_3a_potentiometer_input_3a_high_scalar": (12826, 'H'),
    "_3a_potentiometer_input_3a_low_scalar": (12827, 'H'),
    "_3a_program_summary_output_3a_config": (12823, 'H'),
    "_3a_sense_of_output": (12809, 'H'),
    "_3a_sensor_break_impedance__input_2": (12813, 'H'),
    "_3a_summary_output_3a_configuration": (12806, 'H'),
    "_3a_units_3a": (12812, 'H'),
    "_3b_module_3b_function": (12804, 'H'),
    "_3b_module_3b_identity": (12801, 'H'),
    "_3b_sense_of_output__nor_inv_as_3a": (12810, 'H'),
    "_3b_summary_of_3b_configuration": (12807, 'H'),
    "_3b_summary_program_o_p_3b_config": (12824, 'H'),
    "_3c_module_3c_function": (12805, 'H'),
    "_3c_module_3c_identity": (12802, 'H'),
    "_3c_sense_of_output__nor_inv_as_3a": (12811, 'H'),
    "_3c_summary_of_3c_configuration": (12808, 'H'),
    "_3c_summary_program_o_p_3c_config": (12825, 'H'),
    "_4a_input_module_4a_high_value": (12878, 'H'),
    "_4a_input_module_4a_low_value": (12879, 'H'),
    "_4a_maximum_electrical_output": (12880, 'H'),
    "_4a_minimum_electrical_output": (12881, 'H'),
    "_4a_module_function": (12867, 'H'),
    "_4a_module_identity": (12864, 'H'),
    "_4a_program_summary_output_4a_config": (12887, 'H'),
    "_4a_sense_of_output__nor_inv_as_3a": (12873, 'H'),
    "_4a_summary_output_4a_configuration": (12870, 'H'),
    "_5d6_sensor_break_output": (553, 'H'),
    "_derived_input_function_factor_2": (293, 'H'),
    "a__segment_synchronisation": (488, 'H'),
    "aa_comms_resolution": (12550, 'H'),
    "aa_module_function": (12483, 'H'),
    "aa_module_identity": (12480, 'H'),
    "aa_module_identity": (12608, 'H'),
    "aa_program_summary_op_aa_configuration": (12503, 'H'),
    "aa_retransmitted_high_scalar": (12622, 'H'),
    "aa_retransmitted_low_scalar": (12623, 'H'),
    "aa_sense_of_output": (12489, 'H'),
    "aa_summary_of_aa_configuration": (12486, 'H'),
    "access_mode_password": (514, 'H'),
    "acknowledge_all_alarms": (274, 'H'),
    "adaptive_tune_enable": (271, 'H'),
    "adaptive_tune_trigger_level": (100, 'H'),
    "advance_segment_flag": (149, 'H'),
    "alarm_1_blocking": (544, 'H'),
    "alarm_1_hysteresis": (47, 'H'),
    "alarm_1_latching": (540, 'H'),
    "alarm_1_type": (536, 'H'),
    "alarm_2_blocking": (545, 'H'),
    "alarm_2_hysteresis": (68, 'H'),
    "alarm_2_latching": (541, 'H'),
    "alarm_2_type": (537, 'H'),
    "alarm_3_blocking": (546, 'H'),
    "alarm_3_hysteresis": (69, 'H'),
    "alarm_3_latching": (542, 'H'),
    "alarm_3_type": (538, 'H'),
    "alarm_4_blocking": (547, 'H'),
    "alarm_4_hysteresis": (71, 'H'),
    "alarm_4_latching": (543, 'H'),
    "alarm_4_type": (539, 'H'),
    "all_user_interface_keys_disable": (279, 'H'),
    "auto_man_select": (273, 'H'),
    "automatic_droop_compensation__manual_reset": (272, 'H'),
    "autotune_enable": (270, 'H'),
    "bbb_alarm_1setpoint_value": (13, 'H'),
    "bbb_alarm_2setpoint_value": (14, 'H'),
    "bbb_alarm_3setpoint_value": (81, 'H'),
    "bbb_alarm_4setpoint_value": (82, 'H'),
    "bcd_input_function": (522, 'H'),
    "bcd_input_value": (96, 'H'),
    "bounded_sensor_break_strategy": (128, 'H'),
    "cnomo_manufacturers_id": (121, 'H'),
    "cold_junction_compensation": (12291, 'H'),
    "configuration_level_password": (515, 'H'),
    "configuration_of_lower_readout_display": (106, 'H'),
    "control_action": (7, 'H'),
    "control_type": (512, 'H'),
    "cool_cycle_time": (20, 'H'),
    "cool_hysteresis__on_off_output": (88, 'H'),
    "cool_output_minimum_on_time": (89, 'H'),
    "current_pid_set": (72, 'H'),
    "current_program_running__active_prog_no": (22, 'H'),
    "current_segment_number": (56, 'H'),
    "current_segment_type": (29, 'H'),
    "currently_selected_setpoint": (291, 'H'),
    "custom_linearisation_input_1": (601, 'H'),
    "custom_linearisation_input_2": (602, 'H'),
    "custom_linearisation_input_3": (603, 'H'),
    "custom_linearisation_input_4": (604, 'H'),
    "custom_linearisation_input_5": (605, 'H'),
    "custom_linearisation_input_6": (606, 'H'),
    "custom_linearisation_input_7": (607, 'H'),
    "custom_linearisation_input_8": (608, 'H'),
    "customer_defined_identification_number": (629, 'H'),
    "cutback_high_pid1": (18, 'H'),
    "cutback_high_pid2": (118, 'H'),
    "cutback_low_pid1": (17, 'H'),
    "cutback_low_pid2": (117, 'H'),
    "dc_output_1a_telemetry": (12694, 'H'),
    "dc_output_2a_telemetry": (12758, 'H'),
    "dc_output_3a_telemetry": (12822, 'H'),
    "decimal_places_in_displayed_value": (525, 'H'),
    "derivative_action": (550, 'H'),
    "derivative_component_of_output": (116, 'H'),
    "derivative_time_pid1": (9, 'H'),
    "derivative_time_pid2": (51, 'H'),
    "derived_input_function_factor_1": (292, 'H'),
    "di1_input_functions": (12355, 'H'),
    "di1_logic": (12352, 'H'),
    "di2_high_scalar": (12430, 'H'),
    "di2_identity": (12416, 'H'),
    "di2_input_functions": (12419, 'H'),
    "di2_low_scalar": (12431, 'H'),
    "display_value_corresponding_to_input_1": (621, 'H'),
    "display_value_corresponding_to_input_2": (622, 'H'),
    "display_value_corresponding_to_input_3": (623, 'H'),
    "display_value_corresponding_to_input_4": (624, 'H'),
    "display_value_corresponding_to_input_5": (625, 'H'),
    "display_value_corresponding_to_input_6": (626, 'H'),
    "display_value_corresponding_to_input_7": (627, 'H'),
    "display_value_corresponding_to_input_8": (628, 'H'),
    "displayed_reading_high": (12302, 'H'),
    "displayed_reading_low": (12303, 'H'),
    #"dwell_segment": (62, 'H'),
    "emmisivity": (38, 'H'),
    "emmisivity_input_2": (104, 'H'),
    "enable_diagnostic_messages": (282, 'H'),
    "error__pv_sp": (39, 'H'),
    "error_logged_flag": (73, 'H'),
    #"fast_run": (57, 'H'),
    "feed_forward_type": (532, 'H'),
    "feedforward_component_of_output": (209, 'H'),
    "feedforward_proportional_band": (97, 'H'),
    "feedforward_trim": (98, 'H'),
    "feedforward_trim_limit": (99, 'H'),
    "flash_active_segment_in_lower_display": (284, 'H'),
    "forced_manual_output": (556, 'H'),
    "forced_output_level": (84, 'H'),
    "front_panel_auto_manual_button": (530, 'H'),
    "front_panel_run_hold_button": (564, 'H'),
    "gain_schedule_enable": (567, 'H'),
    "gain_scheduler_setpoint": (153, 'H'),
    #"goto": (517, 'H'),
    "heat_cool_deadband__on_off_op": (16, 'H'),
    "heat_cycle_time": (10, 'H'),
    "heat_hysteresis__on_off_output": (86, 'H'),
    "heat_output_minimum_on_time": (45, 'H'),
    "heater_current__with_pdsio_mode_2": (80, 'H'),
    "high_power_limit": (30, 'H'),
    "holdback": (559, 'H'),
    "holdback_disable": (278, 'H'),
    "holdback_type_for_sp_rate_limit": (70, 'H'),
    "holdback_value_for_srtpoint_rate_limit": (65, 'H'),
    "input_1_calibration_offset": (141, 'H'),
    "input_1_cold_junction_temp__reading": (215, 'H'),
    "input_1_filter_time_constant": (101, 'H'),
    "input_1_linearised_value": (289, 'H'),
    "input_1_measured_value": (202, 'H'),
    "input_2_calibration_offset": (142, 'H'),
    "input_2_cold_junction_temp__reading": (216, 'H'),
    "input_2_filter_time_constant": (103, 'H'),
    "input_2_linearised_value": (290, 'H'),
    "input_2_measured_value": (208, 'H'),
    "input_type": (12290, 'H'),
    "input_value_high": (12306, 'H'),
    "input_value_low": (12307, 'H'),
    "instrument_ident": (122, 'H'),
    "instrument_mode": (199, 'H'),
    "instrument_units": (516, 'H'),
    "instrument_version_number": (107, 'H'),
    "integral_and_derivative_time_units": (529, 'H'),
    "integral_component_of_output": (55, 'H'),
    "integral_time_pid1": (8, 'H'),
    "integral_time_pid2": (49, 'H'),
    "local_or_remote_setpoint_select": (276, 'H'),
    "local_setpoint_trim": (27, 'H'),
    "local_setpoint_trim_high_limit": (66, 'H'),
    "local_setpoint_trim_low_limit": (67, 'H'),
    "logging_reset": (140, 'H'),
    "logic_1_output__current_program": (464, 'H'),
    "logic_2_output__current_program": (465, 'H'),
    "logic_3_output__current_program": (466, 'H'),
    "logic_4_output__current_program": (467, 'H'),
    "logic_5_output__current_program": (468, 'H'),
    "logic_6_output__current_program": (469, 'H'),
    "logic_7_output__current_program": (470, 'H'),
    "logic_8_output__current_program": (471, 'H'),
    "loop_break_time": (83, 'H'),
    "low_power_limit": (31, 'H'),
    "manual_auto_transfer_pd_control": (555, 'H'),
    "manual_reset_pid1": (28, 'H'),
    "manual_reset_pid2": (50, 'H'),
    "manual_tracking": (527, 'H'),
    "maximum_control_task_time__processor_utilisation_factor": (201, 'H'),
    "maximum_input_value": (548, 'H'),
    "maximum_number_of_segments": (211, 'H'),
    "minimum_input_value": (549, 'H'),
    "minimum_pulse_time": (54, 'H'),
    "number_of_setpoints": (521, 'H'),
    "on_off_sensor_break_output": (40, 'H'),
    "output_rate_limit": (37, 'H'),
    "pc_output_power": (3, 'f'),
    "pdsio_ssr_status": (79, 'H'),
    "pot_position": (317, 'H'),
    "potentiometer_calibration_enable": (310, 'H'),
    "potentiometer_calibration_go": (312, 'H'),
    "potentiometer_input_calibration_node": (311, 'H'),
    "power_fail_recovery": (518, 'H'),
    "power_feedback_enable": (565, 'H'),
    "power_in_end_segment": (64, 'H'),
    "process_variable": (1, 'f'),
    "program_cycles_remaining": (59, 'H'),
    "program_logic_status": (162, 'H'),
    "program_status": (23, 'H'),
    "program_time_remaining": (58, 'H'),
    "programmable_event_outputs": (558, 'H'),
    "programmer_setpoint": (163, 'H'),
    #"programmer_state_read": (23, 'H'),
    #"programmer_state_write": (57, 'H'),
    "programmer_tracking": (528, 'H'),
    #"programmer_type": (517, 'H'),
    "proportional_band_pid1": (6, 'H'),
    "proportional_band_pid2": (48, 'H'),
    "proportional_component_of_output": (214, 'H'),
    "pv_maximum": (133, 'H'),
    "pv_mean_value": (135, 'H'),
    "pv_minimum": (134, 'H'),
    "pv_threshold_for_timer_log": (138, 'H'),
    "ramp_rate": (161, 'f'),
    "ramp_rate_disable": (78, 'H'),
    "ratio_setpoint": (61, 'H'),
    "relative_cool_gain_pid1": (19, 'H'),
    "relative_cool_gain_pid2": (52, 'H'),
    "remote_high_power_limit": (32, 'H'),
    "remote_input_value": (26, 'H'),
    "remote_low_power_limit": (33, 'H'),
    "remote_parameter": (151, 'H'),
    "remote_setpoint": (485, 'H'),
    "remote_setpoint_configuration": (535, 'H'),
    "remote_setpoint_trim": (486, 'H'),
    "remote_srl_hold": (95, 'H'),
    "remote_tracking": (526, 'H'),
    "segment_time_remaining_in_mins": (63, 'H'),
    "segment_time_remaining_in_secs": (36, 'H'),
    "select_input_1_or_input_2": (288, 'H'),
    "selected_calibration_point": (102, 'H'),
    "selectedsetpoint": (15, 'H'),
    "sensor_break_impedance": (12301, 'H'),
    "sensor_break_output_power": (34, 'H'),
    "servo": (520, 'H'),
    "setpoint1": (24, 'H'),
    "setpoint10": (171, 'H'),
    "setpoint11": (172, 'H'),
    "setpoint12": (173, 'H'),
    "setpoint13": (174, 'H'),
    "setpoint14": (175, 'H'),
    "setpoint15": (176, 'H'),
    "setpoint16": (177, 'H'),
    "setpoint2": (25, 'H'),
    "setpoint3": (164, 'H'),
    "setpoint4": (165, 'H'),
    "setpoint5": (166, 'H'),
    "setpoint6": (167, 'H'),
    "setpoint7": (168, 'H'),
    "setpoint8": (169, 'H'),
    "setpoint9": (170, 'H'),
    "setpoint_1_high_limit": (111, 'H'),
    "setpoint_1_low_limit": (112, 'H'),
    "setpoint_2_high_limit": (113, 'H'),
    "setpoint_2_low_limit": (114, 'H'),
    "setpoint_max___high_range_limit": (12, 'H'),
    "setpoint_min___low_range_limit": (11, 'H'),
    "setpoint_rate_limit": (35, 'H'),
    "setpoint_rate_limit_units": (531, 'H'),
    "setpoint_span": (552, 'H'),
    "skip_segment_flag": (154, 'H'),
    "slave_instrument_ramp_rate": (93, 'H'),
    "slave_instrument_sync": (94, 'H'),
    "slave_instrument_target_setpoint": (92, 'H'),
    "status_info": (75, 'H'),
    "switchover_transition_region_high": (286, 'H'),
    "switchover_transition_region_low": (287, 'H'),
    "synchronisation_of_programs": (557, 'H'),
    "target_setpoint": (2, 'f'),
    "target_setpoint__current_segment": (160, 'H'),
    "time_pv_above_threshold_level": (139, 'H'),
    "type_of_cooling": (524, 'H'),
    "user_calibration_adjust_input_1": (146, 'H'),
    "user_calibration_adjust_input_2": (148, 'H'),
    "user_calibration_enable": (110, 'H'),
    "valve travel_time": (21, 'H'),
    "valve_backlash_time": (124, 'H'),
    "valve_inertia_time": (123, 'H'),
    "valve_posn__computed_by_vp_algorithm": (53, 'H'),
    #"vp_bounded_sensor_break": (62, 'H'),
    "vp_manual_output__alterable_in_man_only": (60, 'H'),
    "vp_motor_calibration_state": (210, 'H'),
    "working_output": (4, 'f'),
    "working_set_point": (5, 'f'),
    },

7 : {
    "aa_comms_resolution": (12275, 'H'),
    "decimal_places_in_displayed_value": (5076, 'H'),
    },
}
