///////////////////////////////////////////////////////////////////////////////
//                                                                           //
// Copyright (c) 2000-2019 Ericsson Telecom AB                               //
//                                                                           //
// All rights reserved. This program and the accompanying materials          //
// are made available under the terms of the Eclipse Public License v2.0     //
// which accompanies this distribution, and is available at                  //
// https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html                                 //
///////////////////////////////////////////////////////////////////////////////


[MODULE_PARAMETERS]

tsp_EPTF_GUIViewer_DBFileName := "EPTF_CLL_GUIViewer.db"
tsp_EPTF_GUIViewer_guiXMLFileName := "EPTF_CLL_GUIViewer.xml"

tsp_EPTF_UIHandler_authMaxTimer := 60.0
tsp_EPTF_UIHandler_Authmsg := ""
tsp_EPTF_UIHandler_handshakeMaxTimer := 10.0

tsp_EPTF_CLL_CLI_ShowWelcome := true;

tsp_EPTF_Var_SyncInterval := 3.05;


EPTF_CLL_UIHandler_WidgetFunctions.tsp_xtdp_listen_addr := "127.0.0.1"; // RuntimeGUI is running on localhost
EPTF_CLL_UIHandler_WidgetFunctions.tsp_xtdp_listen_port := 11420;

tsp_EPTF_GUI_Main_Window_Height := 800.0;

[LOGGING]
FileMask :=  TTCN_ERROR | TTCN_ACTION | TTCN_TESTCASE | TTCN_STATISTICS | TTCN_WARNING | LOG_ALL | DEBUG
ConsoleMask := TTCN_ERROR | TTCN_ACTION | TTCN_TESTCASE | TTCN_STATISTICS | TTCN_WARNING
LogFile := "%e.%h-%r.log"
LogEventTypes := Yes
SourceInfoFormat := Stack
LogEntityName := Yes

[DEFINE]

[INCLUDE]

[EXTERNAL_COMMANDS]

[EXECUTE]
EPTF_GUIViewer_Test_Testcases.tc_EPTF_GUIViewer_Test

[COMPONENTS]

[MAIN_CONTROLLER]
TCPPort := 18136
KillTimer := 30.0

[TESTPORT_PARAMETERS]
*.EPTF_guiPortIf.socket_debugging := "no"
*.EPTF_guiPortIf.server_mode := "NO"
*.EPTF_guiPortIf.halt_on_connection_reset := "NO"
*.EPTF_guiPortIf.packet_hdr_length_offset := "0"
*.EPTF_guiPortIf.packet_hdr_nr_bytes_in_length := "4"
*.EPTF_guiPortIf.packet_hdr_byte_order := "MSB"
*.EPTF_guiPortIf.use_connection_ASPs := "yes"

*.EPTF_pinger.localPort := "18135"
*.EPTF_pinger.mode := "advanced"

# EPTF CLL CLI TELNET interface
*.v_UIHandler_CLI_TELNETaspIf.CTRL_PORTNUM := "18131"
*.v_UIHandler_CLI_TELNETaspIf.CTRL_LOGIN_SKIPPED := "yes"
*.v_UIHandler_CLI_TELNETaspIf.CTRL_USERNAME_CLIENT := "ttcn"
*.v_UIHandler_CLI_TELNETaspIf.CTRL_PASSWORD_CLIENT := "ttcn"
*.v_UIHandler_CLI_TELNETaspIf.CTRL_SERVER_PROMPT := "TTCN> "
*.v_UIHandler_CLI_TELNETaspIf.CTRL_MODE := "server"

*.v_UIHandler_CLI_displayTELNETaspIf.CTRL_PORTNUM := "18132"
*.v_UIHandler_CLI_displayTELNETaspIf.CTRL_LOGIN_SKIPPED := "yes"
*.v_UIHandler_CLI_displayTELNETaspIf.CTRL_USERNAME_CLIENT := "ttcn"
*.v_UIHandler_CLI_displayTELNETaspIf.CTRL_PASSWORD_CLIENT := "ttcn"
*.v_UIHandler_CLI_displayTELNETaspIf.CTRL_SERVER_PROMPT := "TTCN> "
*.v_UIHandler_CLI_displayTELNETaspIf.CTRL_MODE := "server"

# EPTF CLL CLI TELNET interface
*.EPTF_CLI_TELNET_PCO.CTRL_PORTNUM := "18133"
*.EPTF_CLI_TELNET_PCO.CTRL_LOGIN_SKIPPED := "yes"
*.EPTF_CLI_TELNET_PCO.CTRL_USERNAME_CLIENT := "ttcn"
*.EPTF_CLI_TELNET_PCO.CTRL_PASSWORD_CLIENT := "ttcn"
*.EPTF_CLI_TELNET_PCO.CTRL_SERVER_PROMPT := "TTCN> "
*.EPTF_CLI_TELNET_PCO.CTRL_MODE := "server"
*.EPTF_CLI_displayTELNET_PCO.CTRL_PORTNUM := "18134"
*.EPTF_CLI_displayTELNET_PCO.CTRL_LOGIN_SKIPPED := "yes"
*.EPTF_CLI_displayTELNET_PCO.CTRL_USERNAME_CLIENT := "ttcn"
*.EPTF_CLI_displayTELNET_PCO.CTRL_PASSWORD_CLIENT := "ttcn"
*.EPTF_CLI_displayTELNET_PCO.CTRL_SERVER_PROMPT := "TTCN> "
*.EPTF_CLI_displayTELNET_PCO.CTRL_MODE := "server"

*.IPL4_PCO.debug :="yes"
