Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

(bbfu) (not unix) Re(2): Function keys via Net::Telnet

by bbfu (Curate)
on Apr 04, 2001 at 09:57 UTC ( [id://69563]=note: print w/replies, xml ) Need Help??


in reply to Re: Function keys via Net::Telnet
in thread Function keys via Net::Telnet

Ah, I guess I might've mentioned this... But it's VMS, not Unix. Actually, the reason I'm writing this script in the first place is that we are planning on moving over to an AIX box.

Oh well, I get the feeling this is going to be a major pain to get working. I suppose it's not all that big a deal (the current scripts can't do function keys either), I just wanted to show the ALMIGHTY POWER OF PERL!!! *ahem* Er, sorry 'bout that. ;-)

Anyway, thanks for trying to help out. Sorry I didn't give all the info to start...

bbfu
Seasons don't fear The Reaper.
Nor do the wind, the sun, and the rain.
We can be like they are.

  • Comment on (bbfu) (not unix) Re(2): Function keys via Net::Telnet

Replies are listed 'Best First'.
Re: (bbfu) (not unix) Re(2): Function keys via Net::Telnet
by kschwab (Vicar) on Apr 04, 2001 at 19:34 UTC
    Net::Telnet won't negotiatiate terminal types, which is perhaps the problem. I suspect that VMS has mapped your terminal type to "dumb", which has no function key mappings.

    Try sending the VMS incantation "SET TERMINAL /DEVICE=VT200" right after you login, then the escape sequences should work. (From what I remember, the vt100 doesn't have F10..F12)

    The Net::Telnet docs mention an option_set method which isn't supported yet. Perhaps in a later rev, you can just let Net::Telnet send the terminal type.

      I had Net::Telnet execute a SHOW TERMINAL command and it came up with VT320 without my having done a SET TERMINAL but I decided to try it out anyway. It seems to be working now but I tried commenting out the SET TERMINAL command and it still works. =(

      Right now I'm sending "\e[18~" for F7. I swear I tried that last night and it didn't work. *sigh* Guess I should've used the dead chicken last night. =)

      The way I found what code to use (\e[18~ isn't documented anywhere on the 'net that I could find) deserves some mention... What I did was, using a telnet client that I knew worked in those menus, I logged into the VMS server and, from there, telneted into our development box running linux. The login prompt echo's back any control keys (including ^H, which is a pain) using ^[ to represent ESC. So I just started hitting function keys and recording what it echoed back. =)

      This is what I got back for all the function keys:

      F-Key String to Send ------------------------- F1 ^[OP F2 ^[OQ F3 ^[OR F4 ^[OS F5 ^[[16~ F6 ^[[17~ F7 ^[[18~ F8 ^[[19~ F9 ^[[20~ F10 ^[[21~ F11 ^[[23~ F12 ^[[24~

      Anyway, it now seems to be working. Thanks much for all your help! I never even thought to try the SET TERMINAL command. :-)

      bbfu
      Seasons don't fear The Reaper.
      Nor do the wind, the sun, and the rain.
      We can be like they are.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://69563]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having an uproarious good time at the Monastery: (3)
As of 2024-04-19 19:54 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found