Skip to content

Commit

Permalink
refactor for schematic editor
Browse files Browse the repository at this point in the history
  • Loading branch information
johnrm174 committed Feb 26, 2022
1 parent 43dba32 commit c7231fb
Show file tree
Hide file tree
Showing 23 changed files with 93 additions and 71 deletions.
138 changes: 69 additions & 69 deletions model_railway_signals/__init__.py
Original file line number Diff line number Diff line change
@@ -1,82 +1,82 @@
from .points import point_type
from .points import point_callback_type
from .points import create_point
from .points import lock_point
from .points import unlock_point
from .points import point_switched
from .points import fpl_active
from .points import toggle_point
from .points import toggle_fpl
from .library.points import point_type
from .library.points import point_callback_type
from .library.points import create_point
from .library.points import lock_point
from .library.points import unlock_point
from .library.points import point_switched
from .library.points import fpl_active
from .library.points import toggle_point
from .library.points import toggle_fpl

from .signals_common import route_type
from .signals_common import sig_callback_type
from .signals_common import signal_state_type
from .library.signals_common import route_type
from .library.signals_common import sig_callback_type
from .library.signals_common import signal_state_type

from .signals_colour_lights import signal_sub_type
from .signals_colour_lights import create_colour_light_signal
from .signals_semaphores import semaphore_sub_type
from .signals_semaphores import create_semaphore_signal
from .signals_ground_position import ground_pos_sub_type
from .signals_ground_position import create_ground_position_signal
from .signals_ground_disc import ground_disc_sub_type
from .signals_ground_disc import create_ground_disc_signal
from .library.signals_colour_lights import signal_sub_type
from .library.signals_colour_lights import create_colour_light_signal
from .library.signals_semaphores import semaphore_sub_type
from .library.signals_semaphores import create_semaphore_signal
from .library.signals_ground_position import ground_pos_sub_type
from .library.signals_ground_position import create_ground_position_signal
from .library.signals_ground_disc import ground_disc_sub_type
from .library.signals_ground_disc import create_ground_disc_signal

from .signals import set_route
from .signals import update_signal
from .signals import lock_signal
from .signals import unlock_signal
from .signals import toggle_signal
from .signals import lock_subsidary
from .signals import unlock_subsidary
from .signals import toggle_subsidary
from .signals import signal_clear
from .signals import subsidary_clear
from .signals import signal_state
from .signals import signal_overridden
from .signals import approach_control_set
from .signals import set_signal_override
from .signals import clear_signal_override
from .signals import set_approach_control
from .signals import clear_approach_control
from .signals import trigger_timed_signal
from .signals import subscribe_to_signal_updates
from .signals import subscribe_to_signal_passed_events
from .signals import set_signals_to_publish_state
from .signals import set_signals_to_publish_passed_events
from .library.signals import set_route
from .library.signals import update_signal
from .library.signals import lock_signal
from .library.signals import unlock_signal
from .library.signals import toggle_signal
from .library.signals import lock_subsidary
from .library.signals import unlock_subsidary
from .library.signals import toggle_subsidary
from .library.signals import signal_clear
from .library.signals import subsidary_clear
from .library.signals import signal_state
from .library.signals import signal_overridden
from .library.signals import approach_control_set
from .library.signals import set_signal_override
from .library.signals import clear_signal_override
from .library.signals import set_approach_control
from .library.signals import clear_approach_control
from .library.signals import trigger_timed_signal
from .library.signals import subscribe_to_signal_updates
from .library.signals import subscribe_to_signal_passed_events
from .library.signals import set_signals_to_publish_state
from .library.signals import set_signals_to_publish_passed_events

from .track_sections import section_callback_type
from .track_sections import create_section
from .track_sections import section_occupied
from .track_sections import section_label
from .track_sections import set_section_occupied
from .track_sections import clear_section_occupied
from .track_sections import subscribe_to_section_updates
from .track_sections import set_sections_to_publish_state
from .library.track_sections import section_callback_type
from .library.track_sections import create_section
from .library.track_sections import section_occupied
from .library.track_sections import section_label
from .library.track_sections import set_section_occupied
from .library.track_sections import clear_section_occupied
from .library.track_sections import subscribe_to_section_updates
from .library.track_sections import set_sections_to_publish_state

from .track_sensors import track_sensor_callback_type
from .track_sensors import create_track_sensor
from .track_sensors import track_sensor_active
from .library.track_sensors import track_sensor_callback_type
from .library.track_sensors import create_track_sensor
from .library.track_sensors import track_sensor_active

from .pi_sprog_interface import initialise_pi_sprog
from .pi_sprog_interface import service_mode_write_cv
from .pi_sprog_interface import request_dcc_power_on
from .pi_sprog_interface import request_dcc_power_off
from .library.pi_sprog_interface import initialise_pi_sprog
from .library.pi_sprog_interface import service_mode_write_cv
from .library.pi_sprog_interface import request_dcc_power_on
from .library.pi_sprog_interface import request_dcc_power_off

from .dcc_control import map_dcc_signal
from .dcc_control import map_semaphore_signal
from .dcc_control import map_traintech_signal
from .dcc_control import map_semaphore_signal
from .dcc_control import map_dcc_point
from .dcc_control import subscribe_to_dcc_command_feed
from .dcc_control import set_node_to_publish_dcc_commands
from .library.dcc_control import map_dcc_signal
from .library.dcc_control import map_semaphore_signal
from .library.dcc_control import map_traintech_signal
from .library.dcc_control import map_semaphore_signal
from .library.dcc_control import map_dcc_point
from .library.dcc_control import subscribe_to_dcc_command_feed
from .library.dcc_control import set_node_to_publish_dcc_commands

from .mqtt_interface import configure_networking
from .library.mqtt_interface import configure_networking

from .file_interface import load_layout_state
from .library.file_interface import load_layout_state

from .block_instruments import block_callback_type
from .block_instruments import create_block_instrument
from .block_instruments import block_section_ahead_clear
from .library.block_instruments import block_callback_type
from .library.block_instruments import create_block_instrument
from .library.block_instruments import block_section_ahead_clear

__all__ = [
# Public point types
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -517,13 +517,13 @@ def create_block_instrument (canvas,
# if these fail to load for any reason then no sounds will be produced on these events
if audio_enabled:
try:
with importlib.resources.path ('model_railway_signals.resource_files',bell_sound_file) as sound_file:
with importlib.resources.path ('model_railway_signals.library.resources',bell_sound_file) as sound_file:
bell_audio = simpleaudio.WaveObject.from_wave_file(str(sound_file))
except:
logging.error ("Block Instruments - Error loading bell audio file '"+str(bell_sound_file)+"'")
bell_audio = None
try:
with importlib.resources.path ('model_railway_signals.resource_files',telegraph_sound_file) as sound_file:
with importlib.resources.path ('model_railway_signals.library.resources',telegraph_sound_file) as sound_file:
telegraph_audio = simpleaudio.WaveObject.from_wave_file(str(sound_file))
except:
logging.error ("Block Instruments - Error loading telegraph audio file '"+str(telegraph_sound_file)+"'")
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Empty file.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -589,4 +589,26 @@ def publish_signal_passed_event(sig_id:int):
mqtt_interface.send_mqtt_message("signal_passed_event",sig_id,data=data,log_message=log_message,retain=False)
return()

# ------------------------------------------------------------------------------------------
# Common internal functions for deleting a signal object (including all the drawing objects)
# This is used by the schematic editor for moving signals and changing signal types where we
# delete the existing signal with all its data and then recreate it in its new configuration
# ------------------------------------------------------------------------------------------

def delete_signal(sig_id:int):
global signals
if sig_exists(sig_id):
# Delete all the tkinter canvas drawing objects created for the signal
signals[str(sig_id)]["canvas"].delete("signal"+str(sig_id))
# Delete all the tkinter button objects created for the signal
signals[str(sig_id)]["sigbutton"].destroy()
signals[str(sig_id)]["subbutton"].destroy()
signals[str(sig_id)]["passedbutton"].destroy()
# This buttons is only common to colour light and semaphore types
if signals[str(sig_id)]["sigtype"] in (sig_type.colour_light,sig_type.semaphore):
signals[str(sig_id)]["releasebutton"].destroy()
# Finally, delete the signal entry from the dictionary of signals
del signals[str(sig_id)]
return()

#################################################################################################
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 comments on commit c7231fb

Please sign in to comment.