Portál AbcLinuxu, 24. dubna 2024 08:32


Dotaz: Programování 4GL - generování funkčních kláves > F12

3.8.2021 18:56 Hana Pavlíčková
Programování 4GL - generování funkčních kláves > F12
Přečteno: 359×
Odpovědět | Admin

Dobrý den,

při převodu 4GL programů z UNIXu pod LINUX, řeším problém v následující sekvenci

  MENU 'Tituly'
     BEFORE MENU
         ..........................................
     COMMAND KEY('A',F1) volba_a
         ..........................................
     COMMAND KEY(F14) volba_f14
         ..........................................
     COMMAND KEY(F24) volba_214
         ..........................................
     COMMAND KEY('K') volba_k
       EXIT MENU
  END MENU

a to problém funkčních kláves F13-F24, v unix fungují ShF1-ShF12. Pod linuxem tyto volby nefungují. Po spuštění programu a volbě této nabídky, tj. F13-F24, resp. ShF1-ShF12 nenastane žádná odezva.

Děkuji za jakoukoli radu nebo tip na řešení.

HP

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

xkucf03 avatar 3.8.2021 19:36 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Programování 4GL - generování funkčních kláves > F12 ~ F13-F24
Odpovědět | | Sbalit | Link | Blokovat | Admin

Opravil jsem formátování a zamknul duplicity.

Co se týče dotazu: někde jsem našel, že The scan codes for F13-F24 are the same as for F1-F12 but sent in conjunction with shift. – podle toho bych čekal, že by to mělo fungovat. V čem to spouštíte/kompilujete?

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
3.8.2021 19:57 Hana Pavlíčková
Rozbalit Rozbalit vše Re: Programování 4GL - generování funkčních kláves > F12 ~ F13-F24
Dobrý večer, předně se omlouvám za duplicity. Byl to samozřejmě omyl. Doufám, že teď už to nezopakuji. Děkuji za odpověď. I já jsem někde zachytila, že scan kody by měly být totožné. Nicméně opakovaně ověřěno více uživateli, zatím to nefunguje. Musíme se více snažit. Prostředí: LINUX: UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

C4GL: IBM INFORMIX-4GL Version 7.51.FC3

Díky a přeji pěkný večer,

HP
3.8.2021 19:55 Ivan2 | skóre: 5
Rozbalit Rozbalit vše Re: Programování 4GL - generování funkčních kláves > F12
Odpovědět | | Sbalit | Link | Blokovat | Admin
Otazka je, jak 4GL chape escape sekvence klaves. Treba takovy Oracle Forms kasle na vsechny knihovny pouxiva vlastni "OraTerm". Tam ma "hardcodovane" escape sekvence vsech klaves.

Pokud si dobre pamatuju tak pro definice terminalu se pouzivaji nastroje tic, tac, toe a hlavne infocmp. Prikaz "infocmp xterm" ti vrati definici terminalu "xterm".

Ale pozor, "xterm" vlastne neni terminal ale pouze alias pro terminal xterm-r6, zatimco na starych Unixech xterm muze byt definovan jako xterm-r5 anebo xterm-r4.

Takze je mozne, ze to tvoje 4GL ma nekde harcodovane escape sekvence pro nejakou archaickou verzi xterm.

Dalsi uzitechny trik je "Ctrl+v" v bash-i anebo ve vi. To ti vypise escape sekvenci klavesy ktera byla zmacknuta. Napr definice klavesy f2 podle infocmp "kf2=\EOQ".

Zmacknu "Ctrl+v" a pak F2:
$ infocmp xterm | grep kf2=
        kf19=\E[18;2~, kf2=\EOQ, kf20=\E[19;2~, kf21=\E[20;2~,
$ ^[OQ
3.8.2021 20:14 Hana Pavlíčková
Rozbalit Rozbalit vše Re: Programování 4GL - generování funkčních kláves > F12
Dobry vecer, dekuji za dobre tipy. A hlavne za zjisteni escape sekvence klavesy, ktera byla zmacknuta pomoci ctrl-v.

V Unixu lze pro toto vyuzit prikaz "od", ale v Linuxu ne. Nasli jsme showkey, ale tam zase jenom s pravy roota.

Takze diky, zkoumame terminal a prostredi systemu a uvidime.

Hezky vecer, H.
5.8.2021 19:04 Hana Pavlíčková
Rozbalit Rozbalit vše Re: Programování 4GL - generování funkčních kláves > F12
Dobry vecer, tak funkcni klavesy, resp. namapovani terminalu vyreseno pomoci nastroje tic a infocmp. Diky za radu a preju prijemny vikend.

H.
5.8.2021 17:39 marek
Rozbalit Rozbalit vše Re: Programování 4GL - generování funkčních kláves > F12
Odpovědět | | Sbalit | Link | Blokovat | Admin

Dobry den.

V 4GL se vubec neorientuji.

Ale delal jsem linuxovou nahradu wyse terminalu pro aplikace v 4GL napsane.

Teda predpokladam - nemel jsem zadnou podporu tvurce aplikaci.

Klavesy jsem resil pomoci souboru ~/.Xdefaults

grep "Shift<Key" < .Xdefaults | od -c
0000000   S   h   i   f   t   <   K   e   y   >   F   1   :       s   t
0000020   r   i   n   g   (   " 033   [   Y   "   )       \   n   \  \n
0000040   S   h   i   f   t   <   K   e   y   >   F   2   :       s   t
0000060   r   i   n   g   (   " 033   [   Z   "   )       \   n   \  \n
0000100   S   h   i   f   t   <   K   e   y   >   F   3   :       s   t
0000120   r   i   n   g   (   " 033   [   a   "   )       \   n   \  \n
0000140   S   h   i   f   t   <   K   e   y   >   F   4   :       s   t
0000160   r   i   n   g   (   " 033   [   b   "   )       \   n   \  \n
0000200   S   h   i   f   t   <   K   e   y   >   F   5   :       s   t
0000220   r   i   n   g   (   " 033   [   c   "   )       \   n   \  \n
0000240   S   h   i   f   t   <   K   e   y   >   F   6   :       s   t
0000260   r   i   n   g   (   " 033   [   d   "   )       \   n   \  \n
0000300   S   h   i   f   t   <   K   e   y   >   F   7   :       s   t
0000320   r   i   n   g   (   " 033   [   e   "   )       \   n   \  \n
0000340   S   h   i   f   t   <   K   e   y   >   F   8   :       s   t
0000360   r   i   n   g   (   " 033   [   f   "   )       \   n   \  \n
0000400   S   h   i   f   t   <   K   e   y   >   F   9   :       s   t
0000420   r   i   n   g   (   " 033   [   g   "   )       \   n   \  \n
0000440   S   h   i   f   t   <   K   e   y   >   F   1   0   :       s
0000460   t   r   i   n   g   (   " 033   [   h   "   )       \   n   \
0000500  \n   S   h   i   f   t   <   K   e   y   >   F   1   1   :    
0000520   s   t   r   i   n   g   (   " 033   [   i   "   )       \   n
0000540   \  \n   S   h   i   f   t   <   K   e   y   >   F   1   2   :
0000560       s   t   r   i   n   g   (   " 033   [   j   "   )       \
0000600   n   \  \n
0000603

terminal jsem spoustel scriptem:

export LANG=cs_CZ.UTF-8
SIRKA="$(xprop -root | sed 's/^_WIN_WORKAREA(CARDINAL) = [^,]\+ \?, \?[^,]\+ \?, \?\([^,]\+\) \?, \?[^,]\+ \?/\1/p;d')"
xterm +sb -e "[ "$SIRKA" -eq 1280 ] && (xwit -move 0 0; xwit -rmove -2 -24);luit -encoding 'ISO 8859-2' /usr/local/sbin/prikaz"

kdy obsah souboru /usr/local/sbin/prikaz :

echo -ne "\033]0;Login\007"
TERM=ansi telnet  hrozne.tajny.server 23 |/usr/local/sbin/preklad

a soubor /usr/local/sbin/preklad je filtr escape sequenci napsany v c

filtr tam byl, protoze tvurce aplikaci pouzival v kazde aplikaci ruzne kody.

marek

5.8.2021 19:08 Hana Pavlíčková
Rozbalit Rozbalit vše Re: Programování 4GL - generování funkčních kláves > F12
Dobry vecer,

dekuji moc za odpoved. Nakonec jsme vyresili funkcni klavesy, resp. namapovani terminalu, tedy i tech klaves >F!2 pomoci nastroje tic a infocmp.

Preji hezky vikend, H.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.