This post describes how to create a remote terminal to unix like server, problems and solutions.
- an office on a 1st floor
- a database server in the office
- a storehouse of cars spare parts on a ground floor
Automate sorting process of incoming and outgoing spare parts, eliminate or greatly reduce hand work.
- the program interface must be as simple as possible and designed to be used by person that has never used a computer
- remote terminal must operate stable in a very hot (about +40C) and a very dusty environment
- very old Pentium 1 computer
- barcode scanner, connected between keyboard and computer
- stickers printer
From first restriction I found that any GUI interface is not appropriate because
- our workers are not familiar with mouse driving
- operating of 3 items - keybord, mouse, barcode scanner takes more time then operating of only keybord and barcode scanner
From second restriction I found that the older computer is the better for stability in such hard environment.
So FREESCO should be a perfect software for my needs.
First I reduced clock frequency of that old Pentium computer as much as I could using jumpers on its motherboard, and installed small IDE flash disk. Thus I increased reliability of this computer.
I installed FREESCO on that computer, set it up in a printer mode. Then I added a ssh package and tested connection to server, printer etc. Everything was ok.
On the server I wrote a perl program that connects to database and provide to our storehouse workers an interface for sorting spare parts and printing stickers on a remote printer connected to FREESCO.
I created a user on the server and as a shell for that user I set my perl program.
I checked that I can use program sshelling from FREESCO.
The main goal was achieved.
On FREESCO I created the same user as on the server, set empty password for this user and `ssh -l user server' as his shell. So now worker types his FREESCO user name, servers password and gets into the perl program.
Originally my program was written for a standard terminal with 80 columns and 25 lines.
Later I rewrote my program for 100x30 terminal and found that my perl program doesn't work anymore if I login from storehouse computer but still works perfectly if I connect using putty ssh client. After some investigations I found that the problem was ile program on my FREESCO computer. ile resets "rows" and "columns" parameters for a console and ssh client sets 0 rows and 0 columns for remote terminal and as result any program uses ncurses (or Curses in perl) will work as if it is running in 80x24 terminal or even will not work.
So better disable ile - set Memory/Extra option to `n' in FREESCO config.
As a client for FREESCO printing service I used standard rlpr program.
2 such terminal work flawless in our storehouse for more then a year.