Move get_keymap

This commit is contained in:
Andrew Kay
2019-12-01 15:27:24 -06:00
parent d5dadbc38c
commit c4f45b6ea9
3 changed files with 18 additions and 16 deletions

View File

@@ -7,9 +7,19 @@ from coax import Interface1
from .controller import Controller
from .tn3270 import TN3270Session
from .vt100 import VT100Session
from .keymap_3278_2 import KEYMAP as KEYMAP_3278_2
from .keymap_3483 import KEYMAP as KEYMAP_3483
logging.basicConfig(level=logging.INFO)
def _get_keymap(terminal_id, extended_id):
keymap = KEYMAP_3278_2
if extended_id == 'c1348300':
keymap = KEYMAP_3483
return keymap
def _create_session(args, terminal):
if args.emulator == 'tn3270':
return TN3270Session(terminal, args.host, args.port)
@@ -62,7 +72,7 @@ def main():
# Initialize and start the controller.
create_session = lambda terminal: _create_session(args, terminal)
controller = Controller(interface, create_session)
controller = Controller(interface, _get_keymap, create_session)
print('Starting controller...')

View File

@@ -14,12 +14,13 @@ from .session import SessionDisconnectedError
class Controller:
"""The controller."""
def __init__(self, interface, create_session):
def __init__(self, interface, get_keymap, create_session):
self.logger = logging.getLogger(__name__)
self.running = False
self.interface = interface
self.get_keymap = get_keymap
self.create_session = create_session
self.terminal = None
@@ -76,8 +77,11 @@ class Controller:
self.logger.info(f'Terminal ID = {terminal_id}, Extended ID = {extended_id}')
# Get the keymap.
keymap = self.get_keymap(terminal_id, extended_id)
# Initialize the terminal.
self.terminal = Terminal(self.interface, terminal_id, extended_id)
self.terminal = Terminal(self.interface, terminal_id, extended_id, keymap)
(rows, columns) = self.terminal.display.dimensions
keymap_name = self.terminal.keyboard.keymap.name

View File

@@ -9,8 +9,6 @@ from coax import read_terminal_id, read_extended_id, ReceiveError, ProtocolError
from .display import Dimensions, Display
from .keyboard import Keyboard
from .keymap_3278_2 import KEYMAP as KEYMAP_3278_2
from .keymap_3483 import KEYMAP as KEYMAP_3483
logger = logging.getLogger(__name__)
@@ -28,15 +26,6 @@ def get_dimensions(terminal_id, extended_id):
return MODEL_DIMENSIONS[terminal_id.model]
def get_keymap(terminal_id, extended_id):
"""Get terminal keymap."""
keymap = KEYMAP_3278_2
if extended_id == 'c1348300':
keymap = KEYMAP_3483
return keymap
def read_terminal_ids(interface, extended_id_retry_attempts=3):
terminal_id = None
extended_id = None
@@ -69,13 +58,12 @@ def read_terminal_ids(interface, extended_id_retry_attempts=3):
class Terminal:
"""Terminal information and devices."""
def __init__(self, interface, terminal_id, extended_id):
def __init__(self, interface, terminal_id, extended_id, keymap):
self.interface = interface
self.terminal_id = terminal_id
self.extended_id = extended_id
dimensions = get_dimensions(self.terminal_id, self.extended_id)
keymap = get_keymap(self.terminal_id, self.extended_id)
self.display = Display(interface, dimensions)
self.keyboard = Keyboard(keymap)