DATUS-PAD Konfigurations HOWTO

Heimo Schön <heimo.schoen@gmx.at> Version 0.2 , 09. December 2001

Wie konfiguriere ich ein DATUS-PAD für zweikanalige ÖBB-X.25 Verbindungen, (Linux Version)

1 Allgemeines

1.1 Zu diesem HOWTO

Dieses Dokument soll einen kleinen Leitfaden bieten, wenn Sie von Ihrem Linux Rechner aus, ein DATUS-PAD konfigurieren wollen Wenn Sie Ideen oder Anregungen zu diesem HOWTO haben, dann fühlen Sie sich frei sich bei mir zu melden.

• Heimo Schön <heimo.schoen@gmx.at>

• http://fly.to/heimo.schoen Ich bin dankbar für alle Korrekturen und Anregungen.

1.2 Einige Links zu verwandten Themen

• Datus

• DaimlerChrysler Rail Systems (Austria) GmbH

• Alcatel Austria AG

1.3 Download

Hier finden Sie das gezippte tar File in dem alle Sourcen, .cmd-Files, Makefiles, scripts, etc. enthalten sind. Auch die sgml Source dieses Dokuments ist dort vorhanden. datus-howto.tgz Speichern Sie das Archiv File mit SSave Link Aslokal ab und packen Sie das Archiv mit

     tar xzvf datus-howto.tgz

aus.

1.4 Version History

• 0.1 01 July 2000 first trial

• 0.2 09 December 2001 including Makefile ...

2 Einleitung

In diesem Kapitel soll erklärt werden wozu dieses HOWTO dient, was damit konfiguriert wird, und warum für die DATUS-Konfiguration eine Software notwendig ist.

2.1 Das Datus-PAD

Dieses Dokument beschäftigt sich ausschliesslich mit dem DATUS-PAD 5810/20E. Beschrieben wird die Parametrierung des 5810/20E für die Übertragung von ESTW-Daten entsprechend dem ÖBB X25 Pflichtenheft.

Das PAD der Firma Datus besitzt als Grundausstattung zwei asynchrone Schnittstellen. Die Schnittstelle Äsynchron-1"wird zum parametrieren verwendet. An der zweiten Schnittstelle kann ein Drucker angeschlossen werden.

Weiters können Einschübe in das PAD eingebaut werden. In diesem Dokument werden nur jene PADs betrachtet die mit maximal 4 Schnittstellen bestückt sind. Es werden nur die ersten drei Schnittstellen für die Datenübertragung entsprechend ÖBB-X25-Pflichtenheft benötigt. Egal ob Sie 3, 4, 5 oder mehr Schnittstellen bestückt haben, werden immer nur die ersten 4 Schnittstellen durch die Konfigurationsfiles dieses Dokuments konfiguriert und davon benötigen Sie nur die ersten drei Schnittstellen (die vierte Schnittstelle wird aus historischen Gründen mitkonfiguriert). Auch wenn die 4. Schnittstelle nicht bestückt ist, oder auch mehr als 4 Schnittstellen bestückt sind, kann dieses HOWTO angewendet werden.

2.2 PAD Schnittstellen

Um nun Daten übertragen zu können entsprechend ÖBB X25, wird eine X.25 Schnittstelle mit 2 PVCs benötigt. (Zum Nachlesen der CCITT X.25 finden Sie hier einige Informationen CCITT X.25). Weiters benötigt man für die Übertragung der Dateninhalte der beiden PVCs noch zwei asynchrone Schnittstellen.

Dieses Dokument setzt voraus, daß die ersten drei Schnittstellen wie folgt bestückt sind. Entweder:

         Link 1:    X25  X.21
         Link 2:    Pad  V.24
         Link 3:    Pad  V.24

oder

         Link 1:    Pad  V.24
         Link 2:    Pad  V.24
         Link 3:    X25  X.21

Im ersten Fall ist im ersten Slot (Link 1) die X.25 Verbindung mit den 2 PVCs konfiguriert. und in Link 2 liegt der 1. PVC (Kanal A) und in Link 3 liegt der 2. PVC (Kanal B).

Im zweiten Fall ist in Link 1 der 1. PVC (Kanal A) und in Link 2 der 2. PVC (Kanal B) konfiguriert. Die beiden PVCs werden auf Link 3 via X.25 übertragen.

2.3 Parametrierung von DATUS-PADs

Die Parametrierung erfolgt, indem zuerst mit 3 (minicom) (oder einer anderen Terminalemulation) das DATUS-PAD in den Konfigurationsmodus gebracht wird. Dann wird mit dem Script 6 (makepad) die Konfiguration geladen. Der Ladevorgang wird durch das 4 (Programm) datus.c durchgeführt. Die 5 (Konfigurationen) selbst liegen in .cmd Dateien.

In den nachfolgenden Kapiteln werden alle diese Programme, Scripts und .cmd Files beschrieben.

3 minicom

Das Terminal Emulationsprogramm minicom ist in allen großen Linux Distributionen enthalten

3.1 minicom setup

Kabel zwischen einem Device (z. B. /dev/ttyW7) und dem DATUS Äsynchron-1SStecker (SUB-D 25 polig female) mit Pin-Belegung 2(TX),3(RX) und 7(GND) anfertigen.

Dann starten Sie minicom und gehen mit ALT-O in das configuration Menu. Dort wählen Sie den Menüpunkt SSerial port setup". Speichern Sie die Einstellung mit ßave setup as dflünd geben dort datus ein. minicom legt dann in /etc/ eine Datei /etc/minirc.datus.dfl an. Die Datei /etc/minirc.datus.fdl sollte wie folgt aussehen, oder sie können die folgenden Zeilen in /etc/minicrc.datus.fdl kopieren:

     heimo@VGS80:/home/heimo > cat /etc/minirc.datus.dfl
     # Machine-generated file - use "minicom -s" to change parameters.
     pr port             /dev/ttyW7
     pu baudrate         9600
     pu bits             8
     pu parity           N
     pu minit
     pu mreset
     pu mdialpre
     pu mdialsuf
     pu rtscts           No

Damit werden die dial-prefix und dial-suffix Einstellungen abgedreht (das PAD ist ja kein Modem ;-) und Hardware Handshake (rts/cts) wird abgeschalten (kann DATUS an der Konsole schon - aber das oben beschriebene Kabel nicht).

Damit kann minicom von jedem User mit dem Kommando

     minicom datus.fdl

gestartet werden.

Zuvor sollte in /var/log das Schreibrecht für User geoeffnet werden, damit auch User das benutzte Device sperren können. Bisher gelang es mir nicht minicom das anlegen eines lock-files abzugewoehnen:

     cd /var/lock
     chmod a+w .

3.2 Anmelden im DATUS-PAD

Wenn nun minicom eine Verbindung zum DATUS-PAD hat, erhält man üblicherweise sehr viel "junkünd kann das DATUS-PAD über die Konsole kaum bedienen. Daher empfiehlt es sich das DATUS-PAD aus- und wieder einzuschalten. Waehrend des Hochlaufs erhält man dann folgende Meldung:

     +++  S Y S T E M  5810/20  BOOT-INFORMATION  +++
      BOOT-Software: DPV_5810 Oct_96 IPLCD2M 8.4.1
      Set Modul 1 into RUN
      Reset-Info received from Modul 1: "W"
      Execute HW-TEST ... o.k.
      Install NPRO in RAM
     Start system ...
     :
     jede Menge Leerzeilen
     :
                         D A T U S   C D P V  5810/20
                     Manual start?   Please press any key!

An dieser Stelle erhält man die Möglichkeit dem DATUS-PAD den Konfigurations-Mode zu schalten, indem man eine beliebige Taste drückt und dann für einige Zeit folgende Zeile sieht (nicht verwirren lassen - sondern ca. 1 Minute warten ;-)

     IPL SIOM:  1

Danach geht es weiter mit:

      NPRCDPV 8.A.5
     COLDSTART WARMSTART ? (C/W) :w

Hier antwortet man mit W für Warmstart und kommt zur nächsten, alles entscheidenden Frage:

      * * WARM - START  * *
     START LINES ?  (Y/N) :n

Genau hier antwortet man mit n(o) und hat somit das PAD im Ruhezustand (keine Leitungen laufen) und erhält nun einen Prompt ohne Diagnose Informationen:

4. Software 5

COMMAND:

Genau an diesen Punkt sollten Sie kommen. Nun können Sie die weitere Parametereingabe mein Programm machen lassen.

4 Software

Dieses Kapitel beschreibt die Programme mit denen die Parameterdateien geladen werden.

4.1 datus.c

Das Programm datus.c sieht wie folgt aus:

/*
**   $Id: tr.c,v 1.0
**
**   File:     datus.c
**   Author:   H. Schön
**
**   Abstract: Konfiguration von PADs der Firma Datus
**
**
#
# Copyright (C) 2000 Heimo Schön <heimo.schoen@gmx.at>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
*/
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <assert.h>
#include <signal.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>

#include <sys/ioctl.h>

// -----------------------------------------------------------------------
int inputpid=0;
static int source_fh = 0;       // Filehandle
static int input_fh  = 0;       // Filehandle
static int out_fh    = 0;       // Filehandle
static int log_fh    = 0;       // Filehandle
unsigned char stty_buffer[10000];
unsigned char out_buffer[10000];
unsigned char source_buffer[10000];

// -----------------------------------------------------------------------
void p_usage()
{
fprintf(stderr, "\ndatus v0.1 - (C) 2000 by Heimo Schön <heimo.schoen@gmx.at>\n");
fprintf(stderr, "This program is distributed under the terms of GPL.\n\n");
fprintf(stderr, "  datus <command-file> <device>\n");
fprintf(stderr, "  \n");
fprintf(stderr, "       <command-file> filename of a file with\n");
fprintf(stderr, "                      datus-commads; one command\n");
fprintf(stderr, "                      in each line\n");
fprintf(stderr, "  \n");
fprintf(stderr, "       <device>       the serial device where datus can\n");
fprintf(stderr, "                      find the DATUS\n");
fprintf(stderr, "  \n");
fprintf(stderr, "  example:  datus test /dev/ttyW7\n");
fprintf(stderr, "  \n");
}

// -----------------------------------------------------------------------
void startinput()
{
unsigned char in_buffer[10000];
int rece = 0;
in_buffer[0] = 0;
if ( ( inputpid = fork() ) == 0 ) {
  while (1) {
    if ((rece = read(input_fh, in_buffer, 1024)) > 0) {
      in_buffer[rece] = 0;
      if (log_fh > 0)
        write(log_fh, in_buffer, strlen(in_buffer));
      fprintf(stdout, "%s", in_buffer);
      in_buffer[0] = 0;
    }
  }
}
fprintf(stdout, "reader forked with pid %d\n", inputpid);
}

// -----------------------------------------------------------------------
void p_io()
{
int rece = 0;
char command[10000];
int com_p = 0;
while ( (rece = read(source_fh, source_buffer, 1)) == 1) {
if (source_buffer[0] == '\n') {
  command[com_p] = 0;
  if (command[0] != '#') {
    sprintf(out_buffer, "%s\r",command);
    write(out_fh, out_buffer, strlen(out_buffer));
    com_p = 0;
    sleep(2);
  } else {
    command[com_p] = '\n';
    command[com_p+1] = 0;
    if (log_fh > 0)
      write(log_fh, command, strlen(command));
    fprintf(stdout, "%s", command);
    com_p = 0;
  }
} else {
  command[com_p] = source_buffer[0];
  com_p++;
}
}
}

// -----------------------------------------------------------------------
int main (int argc, char *argv[])
{
if (argc >= 3) {
if (argc == 4)
  log_fh  = open (argv[3], O_WRONLY);
source_fh = open (argv[1], O_RDONLY);
out_fh    = open (argv[2], O_WRONLY);
input_fh  = open (argv[2], O_RDONLY);
sprintf(stty_buffer,
        "stty 9600 -echo raw < %s  ",
        argv[2]);
fprintf(stdout,"%s\n",stty_buffer);
system(stty_buffer);
} else
out_fh = 0;
if (out_fh > 0) {
startinput();                // fork the reader process
p_io();                      // the command process

    kill(inputpid, SIGKILL);
  } else {
    p_usage();
  }
}

4.2 Makefile

Das dazugehörige Makefile finden Sie hier:

#
# Makefile for the datus configuration pakage
#
# Copyright (C) 2000 Heimo Schön <heimo.schoen@gmx.at>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
################# Options and programs for C-Program
               CCOPTIONS = -pedantic -Wall -g
                      RM = rm -f
                      CP = cp
                   STRIP = strip
                      CC = gcc
                  DEPEND = makedepend
################## Sourcen and Objects für C-Program
                    OBJS = datus.o
                    SRCS = datus.c
################## Optionen für sgml-tools
                     OPT = --charset=latin --language=de --papersize=a4
##################
all:    datus datus.stripped datus-howto.html datus-howto.ps datus-howto.txt datus-howto.tgz
        sudo chown root.root datus
        sudo chmod a+srw datus
        sudo chown root.root datus.stripped
        sudo chmod a+srw datus.stripped
        cp datus-howto.* ~/public_html

5. Konfigurations Datenfiles 9

datus:  $(OBJS)
$(RM) $@
$(CC) -o $@ $(OBJS) $(CCOPTIONS)
datus.stripped: datus
$(CP) $< $@
$(STRIP) $@
strip:: datus.stripped
##################
clean::
$(RM) datus *.o *.html datus-howto.ps datus-howto.tgz datus-howto.txt
depend::
@if [ -n "$(SRCS)" ] ; then set -x;\
$(DEPEND) $(SRCS) ;\
fi
tags:
etags *.c
##################
datus-howto.html: datus-howto.sgml
sgml2html --language=deutsch -s 1  ${OPT} --imagebuttons datus-howto.sgml
datus-howto.ps: datus-howto.sgml
sgml2latex  --language=deutsch --output=ps  ${OPT} datus-howto.sgml
sgml2latex  --language=deutsch --output=dvi ${OPT} datus-howto.sgml
sgml2latex  --language=deutsch --output=tex ${OPT} datus-howto.sgml
rm -f texput.log
datus-howto.txt: datus-howto.sgml
sgml2txt --language=deutsch datus-howto.sgml
datus-howto.tgz: datus-howto.sgml
tar cvzf datus-howto.tgz *

5 Konfigurations Datenfiles

Dieses Kapitel zeigt die Konfigurationen die in das Datus PAD geladen werden müssen.

5.1 system_ppxx.cmd

Dieses Konfigurationsfile beschreibt die Systemparameter für PADs mit Belegung der Links 1 bis 4 mit:

Link 1:    Pad  V.24
Link 2:    Pad  V.24
Link 3:    X25  X.21

    Link 4:    X25  X.21

File system_xppx.cmd:

# Input Script zur Parametrierung eines DATUS-PAD
# ===============================================
#
#
#
# kill the routing table
rstro
y
#
tro
#
#
# ================================================
# set the system parameter
csy 0:4
csy 1:20
csy 2:5
csy 3:2
csy 4:14
csy 5:14
csy 6:0
csy 7:0
csy 8:4
csy 9:0
csy 10:0
csy 11:0
csy 12:65
csy 13:2
csy 14:1
csy 15:2
csy 16:0
csy 17:0
csy 18:0
csy 19:0
csy 20:0
csy 21:0
csy 22:0
csy 23:30
csy 24:0
csy 25:0
#
stsy
tsy
#
#
# ================================================
# set the trunk parameter
rstru
y
tru

#
#
# ================================================
# PVC Verdrahtung
rstvc
y
tvc
cvc 1:1,1,3,1
cvc 2:2,1,3,2
#
#cvc 1:1,1,4,1
#cvc 2:2,1,4,2
tvc
#

5.2 system_xppx.cmd

Dieses Konfigurationsfile beschreibt die Systemparameter für PADs mit Belegung der Links 1 bis 4 mit:

    Link 1:    X25  X.21
    Link 2:    Pad  V.24
    Link 3:    Pad  V.24
    Link 4:    X25  X.21

File system_xppx.cmd:

# Input Script zur Parametrierung eines DATUS-PAD
# ===============================================
#
#
#
# kill the routing table
rstro
y
#
tro
#
#
# ================================================
# set the system parameter
csy 0:4
csy 1:20
csy 2:5
csy 3:2
csy 4:14
csy 5:14
csy 6:0
csy 7:0
csy 8:4
csy 9:0
csy 10:0
csy 11:0

csy 12:65
csy 13:2
csy 14:1
csy 15:2
csy 16:0
csy 17:0
csy 18:0
csy 19:0
csy 20:0
csy 21:0
csy 22:0
csy 23:30
csy 24:0
csy 25:0
#
stsy
tsy
#
#
# ================================================
# set the trunk parameter
rstru
y
tru
#
#
# ================================================
# PVC Verdrahtung
rstvc
y
tvc
cvc 1:2,1,1,1
cvc 2:3,1,1,2
tvc
#

5.3 profile.cmd

Das PAD-Profile Konfigurationsfile wird hier beschrieben.

File profile.cmd:

# PAD Profile 1 setzen
tpr 1
#
cpr 1:0
cpr 2:0
cpr 3:0
cpr 4:2
cpr 5:0
# Service-Signal 0=keine Belästigung der DTE   9=Default (Schlecht)
cpr 6:0

cpr 7:0
cpr 8:0
cpr 9:0
cpr 10:0
cpr 11:15
cpr 12:0
cpr 13:0
cpr 14:0
cpr 15:0
cpr 16:13
cpr 17:13
cpr 18:13
cpr 19:0
cpr 20:32
cpr 21:0
cpr 22:0
cpr 121:0
cpr 122:0
cpr 100:0
cpr 101:0
cpr 102:0
cpr 103:0
cpr 104:0
cpr 105:0
cpr 106:1
cpr 107:0
cpr 108:0
cpr 109:128
cpr 110:0
cpr 111:0
cpr 112:0
cpr 113:71
cpr 114:0
cpr 115:1
cpr 116:0
cpr 117:0
cpr 118:0
cpr 119:0
cpr 125:0
#
stpr 1
#
#

5.4 pad_12.cmd

Dieses Konfigurationsfile beschreibt die PAD-Parameter für PADs mit Belegung der Links 1 bis 4 mit:

    Link 1:    Pad  V.24
    Link 2:    Pad  V.24
    Link 3:    X25  X.21
    Link 4:    X25  X.21

File pad_12.cmd:

#
#
# line 1 = PAD-1
#
tli 1
#
#cli 0:1
#cli 1:1
#cli 2:1
#cli 3:4
cli 4:0
cli 5:0
cli 6:7
cli 7:1
cli 8:0
cli 9:7
cli 10:1
cli 11:0
cli 12:1
cli 13:0
cli 14:8
cli 15:32
cli 16:2
cli 17:0
cli 18:0
cli 19:7
cli 20:2
cli 21:7
cli 22:15
cli 23:0
cli 24:0
cli 25:0
cli 26:0
cli 27:0
cli 28:0
cli 29:0
cli 30:1
cli 31:0
cli 32:0
cli 33:0
cli 34:0
cli 35:0
cli 36:0
cli 37:0
cli 38:0
cli 39:1
#cli 40:1
cli 41:0
cli 42:1
cli 43:0
#cli 44:8
#cli 45:216
#

stli 1
#
#
#
#
# line 2 = PAD-2
#
tli 2
#
#cli 0:1
#cli 1:1
#cli 2:1
#cli 3:4
cli 4:0
cli 5:0
cli 6:7
cli 7:1
cli 8:0
cli 9:7
cli 10:1
cli 11:0
cli 12:1
cli 13:0
cli 14:8
cli 15:32
cli 16:2
cli 17:0
cli 18:0
cli 19:7
cli 20:2
cli 21:7
cli 22:15
cli 23:0
cli 24:0
cli 25:0
cli 26:0
cli 27:0
cli 28:0
cli 29:0
cli 30:1
cli 31:0
cli 32:0
cli 33:0
cli 34:0
cli 35:0
cli 36:0
cli 37:0
cli 38:0
cli 39:1
#cli 40:1
cli 41:0
cli 42:1
cli 43:0
#cli 44:8
#cli 45:216

#
stli 2
#
#

5.5 pad_23.cmd

Dieses Konfigurationsfile beschreibt die PAD-Parameter für PADs mit Belegung der Links 1 bis 4 mit:

    Link 1:    X25  X.21
    Link 2:    Pad  V.24
    Link 3:    Pad  V.24
    Link 4:    X25  X.21

File pad_12.cmd:

#
#
# line 2 = PAD-2
#
tli 2
#
#cli 0:1
#cli 1:1
#cli 2:1
#cli 3:4
cli 4:0
cli 5:0
cli 6:7
cli 7:1
cli 8:0
cli 9:7
cli 10:1
cli 11:0
cli 12:1
cli 13:0
cli 14:8
cli 15:32
cli 16:2
cli 17:0
cli 18:0
cli 19:7
cli 20:2
cli 21:7
cli 22:15
cli 23:0
cli 24:0
cli 25:0
cli 26:0
cli 27:0
cli 28:0
cli 29:0

cli 30:1
cli 31:0
cli 32:0
cli 33:0
cli 34:0
cli 35:0
cli 36:0
cli 37:0
cli 38:0
cli 39:1
#cli 40:1
cli 41:0
cli 42:1
cli 43:0
#cli 44:8
#cli 45:216
#
stli 2
#
#
#
#
# line 3 = PAD-3
#
tli 3
#
#cli 0:1
#cli 1:1
#cli 2:1
#cli 3:4
cli 4:0
cli 5:0
cli 6:7
cli 7:1
cli 8:0
cli 9:7
cli 10:1
cli 11:0
cli 12:1
cli 13:0
cli 14:8
cli 15:32
cli 16:2
cli 17:0
cli 18:0
cli 19:7
cli 20:2
cli 21:7
cli 22:15
cli 23:0
cli 24:0
cli 25:0
cli 26:0
cli 27:0
cli 28:0

cli 29:0
cli 30:1
cli 31:0
cli 32:0
cli 33:0
cli 34:0
cli 35:0
cli 36:0
cli 37:0
cli 38:0
cli 39:1
#cli 40:1
cli 41:0
cli 42:1
cli 43:0
#cli 44:8
#cli 45:216
#
stli 3
#
#

5.6 x25_34.cmd

Dieses Konfigurationsfile beschreibt die X.25 Parameter für PADs mit Belegung der Links 1 bis 4 mit:

    Link 1:    Pad  V.24
    Link 2:    Pad  V.24
    Link 3:    X25  X.21
    Link 4:    X25  X.21

File x25_34.cmd:

#
#
# line 3 = X25-3
#
tli 3
#
#cli 0:3
#cli 1:1
#cli 2:3
#cli 3:4
cli 4:0
cli 5:0
cli 6:0
cli 7:1
cli 8:0
cli 9:7
cli 10:3
cli 11:1
cli 12:0

cli 13:0
cli 14:5
cli 15:2
# 16 auf einer Seite auf 2 ändern
cli 16:0
cli 17:16
cli 18:0
cli 19:7
cli 20:2
cli 21:7
cli 22:18
cli 23:0
cli 24:0
cli 25:0
cli 26:0
cli 27:0
cli 28:0
cli 29:0
cli 30:0
cli 31:0
cli 32:0
cli 33:0
cli 34:0
cli 35:0
cli 36:0
cli 37:0
cli 38:0
cli 39:2
#cli 40:3
cli 41:0
cli 42:2
cli 43:0
#cli 44:8
#cli 45:216
#
stli 3
#
#
#
#
# line 4 = X25-4
#
tli 4
#
#cli 0:3
#cli 1:1
#cli 2:3
#cli 3:4
cli 4:0
cli 5:0
cli 6:0
cli 7:1
cli 8:0
cli 9:7
cli 10:3

cli 11:1
cli 12:0
cli 13:0
cli 14:5
cli 15:2
# 16 auf einer Seite auf 2 ändern
cli 16:0
cli 17:16
cli 18:0
cli 19:7
cli 20:2
cli 21:7
cli 22:18
cli 23:0
cli 24:0
cli 25:0
cli 26:0
cli 27:0
cli 28:0
cli 29:0
cli 30:0
cli 31:0
cli 32:0
cli 33:0
cli 34:0
cli 35:0
cli 36:0
cli 37:0
cli 38:0
cli 39:2
#cli 40:3
cli 41:0
cli 42:2
cli 43:0
#cli 44:8
#cli 45:216
#
stli 4
#
#
#
#
#
#
#
# 16 auf einer Seite auf 2 ändern
#

5.7 x25_14.cmd

Dieses Konfigurationsfile beschreibt die X.25 Parameter für PADs mit Belegung der Links 1 bis 4 mit:

    Link 1:    X25  X.21

    Link 2:    Pad  V.24
    Link 3:    Pad  V.24
    Link 4:    X25  X.21

File x25_14.cmd:

#
#
# line 1 = X25-1
#
tli 1
#
#cli 0:3
#cli 1:1
#cli 2:3
#cli 3:4
cli 4:0
cli 5:0
cli 6:0
cli 7:1
cli 8:0
cli 9:7
cli 10:3
cli 11:1
cli 12:0
cli 13:0
cli 14:5
cli 15:2
# 16 auf einer Seite auf 2 ändern
cli 16:0
cli 17:16
cli 18:0
cli 19:7
cli 20:2
cli 21:7
cli 22:18
cli 23:0
cli 24:0
cli 25:0
cli 26:0
cli 27:0
cli 28:0
cli 29:0
cli 30:0
cli 31:0
cli 32:0
cli 33:0
cli 34:0
cli 35:0
cli 36:0
cli 37:0
cli 38:0
cli 39:2
#cli 40:3

cli 41:0
cli 42:2
cli 43:0
#cli 44:8
#cli 45:216
#
stli 1
#
#
#
#
# line 4 = X25-4
#
tli 4
#
#cli 0:3
#cli 1:1
#cli 2:3
#cli 3:4
cli 4:0
cli 5:0
cli 6:0
cli 7:1
cli 8:0
cli 9:7
cli 10:3
cli 11:1
cli 12:0
cli 13:0
cli 14:5
cli 15:2
# 16 auf einer Seite auf 2 ändern
cli 16:0
cli 17:16
cli 18:0
cli 19:7
cli 20:2
cli 21:7
cli 22:18
cli 23:0
cli 24:0
cli 25:0
cli 26:0
cli 27:0
cli 28:0
cli 29:0
cli 30:0
cli 31:0
cli 32:0
cli 33:0
cli 34:0
cli 35:0
cli 36:0
cli 37:0
cli 38:0

6. Konfigurations script makepad 23

cli 39:2
#cli 40:3
cli 41:0
cli 42:2
cli 43:0
#cli 44:8
#cli 45:216
#
stli 4
#
#
#
#
#
#
#
# 16 auf einer Seite auf 2 ändern
#

6 Konfigurations script makepad

Der Batch (shell-script) makepad startet das Programm datus.c mehrmals hintereinander. Bei jedem Start wird ein .cmd File an das PAD geschickt. Das Script makepad finden Sie hier:

#! /bin/bash
#
# Copyright (C) 2000 Heimo Schön <heimo.schoen@gmx.at>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
export makepaderror=0
if [ $1 ] ; then
  if [ -e /dev/$1 ] ; then
    echo Send DATUS config to device /dev/$1
    export DATDEV=/dev/$1
    if [ $2 ] ; then
      if [ $2 = "ppxx" ] ; then
        datus profile.cmd       $DATDEV  $1_profile.log

6. Konfigurations script makepad 24

datus system_ppxx.cmd   $DATDEV  $1_system_ppxx.log
datus pad_12.cmd        $DATDEV  $1_pad_12.log
datus x25_34.cmd        $DATDEV  $1_x25_34.log
else
if [ $2 = "xppx" ] ; then
datus profile.cmd       $DATDEV  $1_profile.log
datus system_xppx.cmd   $DATDEV  $1_system_xppx.log
datus pad_23.cmd        $DATDEV  $1_pad_23.log
datus x25_14.cmd        $DATDEV  $1_x25_14.log
else
echo wrong parameter 2
echo Please give in parameter 2 the Datus lines
echo "    ppxx ... for pad pad x25 x25 devices"
echo "    xppx ... for x25 pad pad x25 devices"
echo "    example : $0 tty0 ppxx"
export makepaderror=1
fi;
fi;
else
echo missing parameter 2
echo Please give in parameter 2 the Datus lines
echo "    ppxx ... for pad pad x25 x25 devices"
echo "    xppx ... for x25 pad pad x25 devices"
echo "    example : $0 tty0 ppxx"
export makepaderror=1
fi;
else
echo Could not find device /dev/$1
export makepaderror=1
fi;
else
echo Please give in parameter 1 the device
echo "       example: $0 tty0 ppxx"
export makepaderror=1
fi;
if [ $makepaderror = "0" ] ; then
echo config done.
echo
echo ">>> Read File NACHARBEITEN for commands you have"
echo ">>> todo with minicom-shell !!!!!!!!!!!!!!!!!!!!"
echo
fi;

Das Script makepad verlangt zwei Parameter. Der erste Parameter gibt das Device an, an dem das Datus-PAD angeschlossen ist. Dabei muß nur noch der Devicename hinter /dev/ angegeben werden. Wenn Sie das PAD an der Schnittstelle /dev/ttyW7 angeschlossen haben, dann geben Sie als Parameter ttyW7 an.

Der zweite Parameter des Scripts kann ppxx oder xppx sein. Je nachdem wie die Schnittstellen (Links) des PADs belegt sind:

Geben Sie xppx als Parameter an, wenn Ihre Datus-Schnittstellen wie folgt belegt sind:

Link 1:    X25  X.21
Link 2:    Pad  V.24

         Link 3:    Pad  V.24
         Link 4:    X25  X.21

Geben Sie ppxx als Parameter an, wenn Ihre Datus-Schnittstellen wie folgt belegt sind:

         Link 1:    Pad  V.24
         Link 2:    Pad  V.24
         Link 3:    X25  X.21
         Link 4:    X25  X.21

Ein makepad Start könnte wie folgt aussehen:

     makepad ttyW7 xppx

7 Ergebnis

Nach erfolgreicher Konfiguration mit makepad sollten Sie dann folgende Tabellen erhalten, die Sie mit den angegebenen Kommandos (z.B. tsy für die Systemtabelle) ausgeben können.

Beachten Sie,daß bei manchen Kommandos ein _(underline) Zeichen am Ende angegeben ist. Dieses _ bedeutet, daß Sie an dieser Stelle ein Leerzeichen anfügen müssen. Wird das Leerzeichen vergessen, wird das Kommando vom PAD nicht asugeführt.

7.1 Systemtabelle

     COMMAND: tsy
                      * * * MAIN SYSTEM TABLE * * *

       0. NUMBER OF LINES            8    1. NR. ROUTING                8
       2. LOGGING PARAMETER I        5    3. LOGGING PARAMETER II      15
       4. MAIN BAUDRATE             14    5. PRINTER BAUDRATE          14
       6. ----------------------     0    7. ROUT. <>0= LEFT            0
       8. NUMBERS                    4    9. REMOTE PRINT               0
      10. TIMER STATISTICS L2        0   11. PC ? (ON = 1)              0
      12. NODE ID                   65   13. MAX. ID # * 120 (0=1)      2
      14. MESS. ID 0 NO MESSAG.      1   15. TERMINAL                   0
      16. SYSTEM FEATURES 1          0   17. LOADROUTING                0
      18. TIMER STATISTICS L3        0   19. SYSTEM FEATURES 2          0
      20. COUNTER REPEAT CALL        0   21. LOAD PRIORITY              0
      22. SVC PRIORITY               0   23. RMO TIMER (0...5=25 SEC)   0
      24. NODE ID ( LOW BYTE )       0   25. NODE ID ( HIGH BYTE )      0
                     * * *  NO VIDEO ATTRIBUTES  * * *

7.2 Routingtabelle

7. Ergebnis 26

Die Routingtabelle wird für SVC Verbindungen bnötigt und daher in unserem Fall nicht benötigt. Die Inhalte dieser Tabelle können anders aussehen und müssen von Ihnen nicht geändert werden, da sie ohne Funktion sind.

COMMAND: tro_
* * *   ROUTING TABLE  * * *   ROUTING ENTRIES CHECKED :  8
NR.     NUMBER        LINE      LCN    MODE ACC.MODE  ACC.CLASS   NUMB. TRA.
1. XXXXXXXXXXXXXXX    0     0     0   1      4        1            0
2.                    0     0     0   0      0        0            0
3. XXXXXX650000000    0     0     0   1      4        1            0
4. XXXXXX800310001    2     1     1   0      4        1            0
5. XXXXXX800310001    4     1     1   0      4        1            0
6.                    0     0     0   0      0        0            0
7.                    0     0     0   0      0        0            0
8.                    0     0     0   0      0        0            0
9.                    0     0     0   0      0        0            0
10. XXXXXXXXXXXXXXX    0     0     0   1      4        1            0
11.                    0     0     0   0      0        0            0
12.                    0     0     0   0      0        0            0
13.                    0     0     0   0      0        0            0
14.                    0     0     0   0      0        0            0
15.                    0     0     0   0      0        0            0
16.                    0     0     0   0      0        0            0

7.3 Nummern Tabelle

Sollte ebenfalls egal sein.

COMMAND: tru_
* * *   NUMBER  TABLE  1 * * *
NR.     NUMBER       MODE MOD.CONS PRIO LC BCD_UDF  (mode=li/cla1-7)CI
1.                    0     0     0   0      0        0            0
2.                    0     0     0   0      0        0            0
3.                    0     0     0   0      0        0            0
4.                    0     0     0   0      0        0            0
5.                    0     0     0   0      0        0            0
6.                    0     0     0   0      0        0            0
7.                    0     0     0   0      0        0            0
8.                    0     0     0   0      0        0            0
9.                    0     0     0   0      0        0            0
10.                    0     0     0   0      0        0            0
11.                    0     0     0   0      0        0            0
12.                    0     0     0   0      0        0            0
13.                    0     0     0   0      0        0            0
14.                    0     0     0   0      0        0            0
15.                    0     0     0   0      0        0            0
16.                    0     0     0   0      0        0            0

7.4 PVC-Tabelle

So und nun wird es fuer uns spannend. In dieser Tabelle wird festgelegt wer mit wem verbunden ist. Das sieht bei mir zur Zeit wie folgt aus:

Ein PAD, das zwei V.24 Leitungen auf eine X.25 Leitung mit 2 PVCs mappen kann sollte daher folgendermaszen aussehen:

 1.    LINE   1    CHANNEL   1 <---> LINE   3    CHANNEL   1
 2.    LINE   2    CHANNEL   1 <---> LINE   3    CHANNEL   2
 3.    LINE   0    CHANNEL   0 <---> LINE   0    CHANNEL   0
 usw.

Unter der Annahme das Line 1 und 2 die beiden V24 PAD Leitungen sind, gibt es dort jeweils nur einen Channel 1 (PAD hat nur einen PVC). Jede dieser Lines wird auf Line 3 in einen anderen Channel gemappt. Damit sollte Line 1 den nicht-invertierten A-Kanal erhalten und Line 2 den invertierten B-Kanal.

Das war alles - eventuell noch die Line-numbers an die entsprechenden Lines der verwendeten Hardware (DATUS) anpassen. Dazu das Datus-PAD von der Rückseite anschauen. Dort stehen jeweils Nummern über den Steckern.

7.5 X.25 Leitung

Hier ist es wichtig bei jeder Leitung darauf zu achten was in der zweiten Zeile steht. In diesem Fall ist die 3. Leitung ein X.25 Einschub.

COMMAND: tli 3
                 * * * LINE STATUS  * * *
               * * * * USER MODULE - X25  * * * *

 0.  LINE - NR:      3    1.  MODULE - NR:    3
 2.  PORT INDIC.     1    3.  CHAN. INDIC.    4
 4. CHANGE SOURCE    0    5. CHANGE DESTI.    0    6. INSERT SOURCE    0
 7. STATUS L3        1    8. LOGGING          0    9. STATUS LINE      7
10. NR. OF LCN s     2   11. CHARGING TIME    0   12. STATUS DEVICE    0
13. MODE L1          0   14. TYP LINE         5   15. MODE LINE        2
16. MODE L2          0   17. MODE L3 L4      16   18. PORTMODE         0
19. WINDOW L2        7   20. WINDOW L3        2   21. WINDOW L4        7
22. BAUDRATE        18   23. SAMM/SWIM ADD    0   24. TDM              0
25. -------------    0   26. -------------    0   27. -------------    0
28. PAKSZ DEF/MAX    0   29. MLP - GROUP      0   30. WINDOW MLP       0
31. SECOND BACKUP    0   32. MAINLINE         0   33. -------------    0
34. -------------    0   35. -------------    0   36. -------------    0
37. -------------    0   38. OVERLOAD         0   39. PVC              2
40. BASIS            1   41. TIMER ACTIVE     0   42. CONNECTIONS      2
43. CUG              0   44. ADDRESS LOW     24   45. ADDRESS HIGH   216

7.6 PAD-Leitung

Hier wird angenommen, dasz Leitung 1 eine der asynchronen Leitungen ist.

COMMAND: tli 1
                 * * * LINE STATUS  * * *
               * * * * USER MODULE ASYNCHRON X3 PAD * * * *

 0.  LINE - NR:      1    1.  MODULE - NR:    1
 2.  PORT INDIC.     1    3.  CHAN. INDIC.    4
 4. CHANGE SOURCE    0    5. CHANGE DESTI.    0    6. INSERT SOURCE    7
 7. STATUS L3        1    8. LOGGING          0    9. STATUS LINE      7
10. NR. OF LCN s     1   11. CHARGING TIME    0   12. STATUS DEVICE    0
13. MODE L1          0   14. TYP LINE         8   15. MODE LINE       32
16. -------------    2   17. MODE L3 L4      16   18. PORTMODE         0
19. -------------    7   20. -------------    2   21. WINDOW L4        7
22. BAUDRATE        15   23. BAUDRATE         0   24. BAUDRATE         0
25. BAUDRATE         0   26. BAUDRATE         0   27. BAUDRATE         0
28. BAUDRATE         0   29. BAUDRATE         0   30. PROFIL NR.       1
31. PROFIL NR.       0   32. PROFIL NR.       0   33. PROFIL NR.       0
34. PROFIL NR.       0   35. PROFIL NR.       0   36. PROFIL NR.       0
37. PROFIL NR.       0   38. OVERLOAD         0   39. PVC              1
40. BASIS            1   41. TIMER ACTIVE     0   42. CONNECTIONS      0
43. FOREIGN CALLS    0   44. ADDRESS LOW      8   45. ADDRESS HIGH   216

7.7 PAD-Profile

Hierzu gibt es nichts zu sagen. Hr. Schwarzmann von ÖBB wird schon wissen was er tut. Bei meiner PAD-Leitung war das PAD-Profil 1 eingestellt und mit tpr 1 hat das PAD-Profile so ausgesehen wie das nachstehende Beispiel mit tpr 17 aus dem Mail von Hrn. Berger.

COMMAND: tpr 17
                 P A D - P R O F I L   NR: 17
 1. PAD RECALL         0   2. ECHO               0   3. DATA FWD CHAR.     0
 4. DATA FWD TIMER     2   5. PAD TO DEV FLOW    0   6. SERVICE SIGNAL     1
 7. BREAK              0   8. DISCARD OUTPUT     0   9. <CR> PADDING       0
10. LINE FOLDING       0  11. BINARY SPEED      15  12. DEV TO PAD FLOW    0
13. <LF> INSERTION     0  14. <LF> PADDING       0  15. EDITING            0
16. CHAR. DELETE      13  17. LINE DELETE       13  18. LINE DISPLAY      13
19. ED. SERV.SIGNAL    0  20. ECHO MASK         32  21. PARITY             0
22. PAGE WAIT          0 121. ADD. FWD CHAR.     0 122. ADD. FWD CHAR.     0
100. STATISTICS         0 101. DIVERSE (1)        0 102. DIVERSE (2)        0
103. STATUS SIGNALS     0 104. DIRECT CALL        0 105. SIGNAL DROP        0
106. RDY PORT/PARITY    1 107. CONNECT TIMER      0 108. SHORTCUT CLASS     0
109. CALL MODE        128 110. MESSAGES (1)       0 111. ASYNC. MODE (1)    0
112. CUG MODE           0 113. LANGUAGE          71 114. MESSAGES (2)       0
115. ADDRESS KBAM       1 116. PARAMETER KBAM     0 117. TERMINAL           0
118. ASYNC. MODE (2)    0 119. CALL REPEAT        0 125. OUTPUT DELAY       0

7.8 TODO

Die obigen Tabellen dieses Kapitels sind keine Letztstand Bildschirmabzüge. Daher werden noch einige Parameter falsch abgebildet sein, aber die .cmd Files die alles generieren sind o.k. Daher sollte bei Gelegenheit diese "Bildersammlungäktualisiert werden

8 Disclaimer

8.1 Comments

I would appreciate (but do NOT REQUIRE) that any changes (bugs, new features or spelling errors) be sent to me for inspection, discussion and possible inclusion into the next version.

8.2 Copyright

Dieses Dokument ist urheberrechtlich geschützt. Das Copyright liegt bei Heimo Schön.

Das Dokument darf gemäß der GNU General Public License verbreitet werden. Insbesondere bedeutet dieses, daß der Text sowohl über elektronische wie auch physikalische Medien ohne die Zahlung von Lizenzgebühren verbreitet werden darf, solange dieser Copyright Hinweis nicht entfernt wird. Eine kommerzielle Verbreitung ist erlaubt und ausdrücklich erwünscht. Bei einer Publikation in Papierform ist der Autor zu informieren.

This howto is free documentation; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this document; if not, write to the: Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.