home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.windows.x
- Path: sparky!uunet!europa.asd.contel.com!darwin.sura.net!news.udel.edu!diu!lance
- From: lance@diu.cms.udel.edu (Dan Lentz)
- Subject: xview, UPS, etc
- Message-ID: <Brsq8D.5zu@news.udel.edu>
- Sender: usenet@news.udel.edu
- Nntp-Posting-Host: diu.cms.udel.edu
- Reply-To: lance@diu.cms.udel.edu
- Organization: U of Delaware, College of Marine Studies / Lewes
- Date: Wed, 22 Jul 1992 15:12:12 GMT
- Lines: 148
-
-
- The following is the README for a little desktop toy I made to interact with our
- UPS. If anyone is interested, please email me and I'll get you a copy. I used
- xview 3.0 and sun's devguide, but (they tell me) it can be compiled even if you
- don't have the devguide.
-
- ---------------------------------------------------------------------------
-
- X U P S
-
- Version 1.3
- (Don't get excited; the rest were internal)
-
- By Dan Lentz
-
- 7/22/92
-
- lance@diu.cms.udel.edu
- ---------------------------------------------------------------------------
-
- 0.9 WHO YOU SHOULD BE
-
- You need to be a person who has access to an X station
- complete with the XView libraries. You also need to have a BEST MD
- series UPS, or compatible hooked up to the serial port as described in
- the manual. This program can be modified, or course, to run with
- other UPS's. I'll talk about that later.
- And also you need your kernel configured for shared memory.
- This program is untested, except on a SPARC IPX running SunOS 4.1.1.
- I didn't do anything terribly bizarre, though, so any changes that
- need to be made should be minimal.
-
-
- 1.0 THE PURPOSE
-
- The xups package is basically something designed so that you can
- have yet another nifty window on your desktop. Other than that, it
- allows you to monitor the status of the UPS and create a shell script
- that will execute whenever the inverter clicks on.
-
- 1.1 THE NATURE OF THE BEAST
-
- This package works in two parts: UPSD and XUPS. UPSD runs in
- the background all the time. It allocates 81 bytes of shared memory
- to hold the 80 character hex status string that the UPS sends back.
- Then, once a second it polls the UPS and updates that status string.
- Once per minute it writes some stats to a logfile. XUPS is the front
- end. It sets ups a timer to parse that 81 character shared memory
- string once per second, and update the display. It also executes a
- shell script (specified in config.h) when the inverter goes on, and
- draws a new bitmap in the base window.
- Xups was created using ansi C (compiled with sun CC) and sun's
- devguide 3.0.
-
- 2.0 INSTALLATION
-
- First, edit config.h to reflect your local setup.
-
- Decide now if your UPS is set up for 4800 baud transmission.
- If not, you can either change the UPS's baud setting, or go into ups.c
- and alter the function open_port to set it up for some other data
- rate. For example, for 1200 baud, change B4800 to B1200. Pretty
- straightforward, really. My UPS's entry in the /etc/ttytab looks like
- this:
-
- ttyb "/usr/etc/getty std.9600" unknown off local secure
-
- A good test is that if you can edit your /etc/remote and add a line
- something like:
-
- ups:dv=/dev/ttyb:br#4800:
-
- and then tip ups
- and get connected and interact with it, then you're ok. If you can't,
- chances are that it isn't set up correctly. If everything works ok,
- then you may proceed:
-
- make -f Makefile.upsd
- Then make
- Then make clean
-
-
- If you happen to be that sort of person, everything will be
- working at this point. Start the upsd, let it run for a second and
- then you're free to start as many xups windows as you like. Just one
- is recommended, but more won't hurt. Just remember that each copy
- will execute the shell script if the inverter clicks on.
-
-
- On the other hand, you may not be compatible with me UPS-wise.
- If that happens, then first decide if you know how to program or not.
- If you have some experience with C, than it shouldn't be too hard to
- change the program to be compatible with your UPS. You need to edit
- the files ups.c and upsd.c and change the annotated parts which query
- the ups, and parse the return string. Other than that, once you get
- the values from your ups into my UpsData struct, everything should
- work ok.
-
- 2.1 FEATURES TO BE ADDED
-
- If I ever get around to it, I was thinking about a couple of
- things:
-
- o Make the daemon execute the shell script instead of
- the front end. This would ensure that it only gets
- executed once, and that it would get executed even if
- the person were not logged in.
-
- o Another set of bitmaps, for the discriminating user
-
- o Something so that you could actually change the
- settings of the UPS from this interface. That
- wouldn't be too hard, I don't think, but would make
- the program even more BEST MD specific.
-
- o The BEST MD gives you a nice waveform when you type P.
- So, I was thinking about opening up another canvas and
- painting that, but it seems to be a lot of trouble for
- nothing, really. I might do it anyway, though, for
- the play value...
-
- o Maybe support for other UPS's?
-
- 2.1 FEATURES NOT TO BE ADDED
-
- o A built-in WYSIWYG typesetter
-
- o A patch to make your sparc twelve times as fast when it is
- running this program.
-
- o Yet another xbiff
-
-
- 2.2 WHAT ARE YOU WAITING FOR? GO COMPILE THE DAMN THING
-
- Any questions need to be sent to me: lance@diu.cms.udel.edu.
- If you change anything, you need to contact me. Esp if you set it up
- for another UPS, get in touch with me and I'll add it in. There's a
- bunch of standard stuff that I'm sure you're aware of. The software
- is copywrite 1992 by the University of Delaware, it can't be used for
- commerical gain, or included in any commercial product without prior
- written consent from me. This software may be freely distributed in
- the original form. You may modify this for your own use, but may not
- distribute modified copies.
-
- This is BeerWare. If you like it, send me some Guinness Extra Stout.
-
-
-