123 lines
2.3 KiB
Plaintext
123 lines
2.3 KiB
Plaintext
|
###############################################################################
|
||
|
#
|
||
|
# Tcl module event handlers
|
||
|
#
|
||
|
###############################################################################
|
||
|
|
||
|
#
|
||
|
# This is the namespace in which all functions and variables below will exist.
|
||
|
# The name must match the configuration variable "NAME" in the
|
||
|
# [ModuleTcl] section in the configuration file. The name may be changed
|
||
|
# but it must be changed in both places.
|
||
|
#
|
||
|
namespace eval Tcl {
|
||
|
|
||
|
#
|
||
|
# Check if this module is loaded in the current logic core
|
||
|
#
|
||
|
if {![info exists CFG_ID]} {
|
||
|
return
|
||
|
}
|
||
|
|
||
|
|
||
|
#
|
||
|
# Extract the module name from the current namespace
|
||
|
#
|
||
|
set module_name [namespace tail [namespace current]]
|
||
|
|
||
|
|
||
|
#
|
||
|
# An "overloaded" playMsg that eliminates the need to write the module name
|
||
|
# as the first argument.
|
||
|
#
|
||
|
# msg - The message to play
|
||
|
#
|
||
|
proc playMsg {msg} {
|
||
|
variable module_name
|
||
|
::playMsg $module_name $msg
|
||
|
}
|
||
|
|
||
|
|
||
|
#
|
||
|
# A convenience function for printing out information prefixed by the
|
||
|
# module name.
|
||
|
#
|
||
|
# msg - The message to print
|
||
|
#
|
||
|
proc printInfo {msg} {
|
||
|
variable module_name
|
||
|
puts "$module_name: $msg"
|
||
|
}
|
||
|
|
||
|
|
||
|
#
|
||
|
# Executed when this module is being activated
|
||
|
#
|
||
|
proc activating_module {} {
|
||
|
Module::activating_module $module_name
|
||
|
}
|
||
|
|
||
|
|
||
|
#
|
||
|
# Executed when this module is being deactivated.
|
||
|
#
|
||
|
proc deactivating_module {} {
|
||
|
Module::deactivating_module $module_name
|
||
|
}
|
||
|
|
||
|
|
||
|
#
|
||
|
# Executed when the inactivity timeout for this module has expired.
|
||
|
#
|
||
|
proc timeout {} {
|
||
|
Module::timeout $module_name
|
||
|
}
|
||
|
|
||
|
|
||
|
#
|
||
|
# Executed when playing of the help message for this module has been requested.
|
||
|
#
|
||
|
proc play_help {} {
|
||
|
Module::play_help $module_name
|
||
|
}
|
||
|
|
||
|
|
||
|
#
|
||
|
# Executed when the state of this module should be reported on the radio
|
||
|
# channel. The rules for when this function is called are:
|
||
|
#
|
||
|
# When a module is active:
|
||
|
# * At manual identification the status_report function for the active module is
|
||
|
# called.
|
||
|
# * At periodic identification no status_report function is called.
|
||
|
#
|
||
|
# When no module is active:
|
||
|
# * At both manual and periodic (long variant) identification the status_report
|
||
|
# function is called for all modules.
|
||
|
#
|
||
|
proc status_report {} {
|
||
|
printInfo "status_report called..."
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
#
|
||
|
# Called when an illegal command has been entered
|
||
|
#
|
||
|
# cmd - The received command
|
||
|
#
|
||
|
proc unknown_command {cmd} {
|
||
|
playNumber $cmd
|
||
|
playMsg "unknown_command"
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
# end of namespace
|
||
|
}
|
||
|
|
||
|
|
||
|
#
|
||
|
# This file has not been truncated
|
||
|
#
|