mirror of
https://github.com/lowobservable/oec.git
synced 2026-02-08 09:12:22 +00:00
Move get_keymap
This commit is contained in:
@@ -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...')
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user