dlleigh@mit-amt.MEDIA.MIT.EDU (Darren L. Leigh) (03/15/88)
As part of a lab course here at MIT I am building a heart monitor, and I would like to use my A1000 as a super intelligent display. The idea is for the Amiga to receive ECG data via the parallel port at about 200 samples/sec. I then want to display this data in real time, scrolling horizontally, as seen in any good hospital sitcom. There should be at least five seconds of data on the screen all the time so I will probably use high-res mode with overscan and cut down the sampling rate some. The sampled data can probably be left in one plane (though more would be nice for anti-aliasing) and I would like to use another plane or two to display heart statistics. Is it possible to horizontally scroll only one plane out of a multi-plane bitmap? How quick is horizontal scrolling? I mean actually moving all that data, not just moving a pointer. What would be the best way to do this? Any and all ideas are appreciated. The actual ECG hardware is not that expensive (build it yourself for $25, even less if you you can scrounge parts). If people are interested I could post plans and software when I finish. ============================================================================= Darren Leigh dlleigh@media-lab.mit.edu 362 Memorial Dr. mit-amt!dlleigh Cambridge, MA 02139 Condorito Lives!
dillon@CORY.BERKELEY.EDU (Matt Dillon) (03/15/88)
:As part of a lab course here at MIT I am building a heart monitor, and :I would like to use my A1000 as a super intelligent display. : :The idea is for the Amiga to receive ECG data via the parallel port at :about 200 samples/sec. I then want to display this data in real time, I suggest you write an interrupt server to do this. 200 samples a second are *EASY*... just use a 555 IC or something to generate 200 pulses a second into the FLAG input to the 8520 handling the parallel port. That way you get data 200 times a second no matter how loaded the Amiga is. :scrolling horizontally, as seen in any good hospital sitcom. There :should be at least five seconds of data on the screen all the time so :I will probably use high-res mode with overscan and cut down the :sampling rate some. The sampled data can probably be left in one :plane (though more would be nice for anti-aliasing) and I would like :to use another plane or two to display heart statistics. Probably the easiest thing to do would be to have a high priority task hanging around waiting for a signal from the interrupt server and then updating the display (i.e. if the Amiga is loaded down and two interrupts go off before the screen can be updated, this task would then jump-scroll two pixels instead of one and update the display). It should use BltBitMap() on the SCREEN'S bitmap to shift the data. That is, use graphics calls to the screen's bitmap and rastport to handle stuff (much faster than graphics calls to a window's rastport). Since this usually doesn't bode well with any visible windows, what I would do is do EVERYTHING in the screen's rastport. Open an invisible window in the screen so you can get keyboard and mouse events. > >Is it possible to horizontally scroll only one plane out of a >multi-plane bitmap? How quick is horizontal scrolling? I mean >actually moving all that data, not just moving a pointer. What would >be the best way to do this? Any and all ideas are appreciated. MASKING OUT PLANES is accomplished by modifying the Mask field in the screen's rastport before doing rendering operations. Note that the BltBitMap() call uses a different Mask .. the one you specify in the call. You can then render into the screen's rastport on the remaining planes without effecting the scrolling graphics below. If you make the invisible window stationary, you could also render into that with the window's rastport's Mask field setup properly (somewhat safer). With BltBitMap() you can scroll any plane or planes in any way you want. Up, Down, Left, Right, By twos, By threes, By N pixels, even InsideOut (but not in one call). Look into the Screen structure. Needless to say, you want to use a custom screen... >The actual ECG hardware is not that expensive (build it yourself for >$25, even less if you you can scrounge parts). If people are >interested I could post plans and software when I finish. I think people would be interested, I certainly am! When you are through with the lab course, post it! -Matt
dale@boing.UUCP (Dale Luck) (03/16/88)
In article <2143@mit-amt.MEDIA.MIT.EDU> dlleigh@media-lab.UUCP (Darren L. Leigh) writes: >Is it possible to horizontally scroll only one plane out of a >multi-plane bitmap? How quick is horizontal scrolling? I mean >actually moving all that data, not just moving a pointer. What would >be the best way to do this? Any and all ideas are appreciated. Set up a screen in dual play field mode. Make one of the bitmaps about twice as wide as the screen. When you want to shift that playfield to the left increment RxOffset in the RasInfo. Call MakeScreen, Rethink DIsplay, or try using ScrollVPort. When you get to the middle though you will have to copy the righthand side over to the left hand side and start back with RxOffset = 0. Otherwise you will spiral down through your bitmap. Hope this helps. There are trickes necessary to create a dualplayfield screen, you have to create it as a standard screen and then convert it yourself into dual playfield. Dale Luck
cjp@antique.UUCP (Charles Poirier) (03/21/88)
In article <8803150721.AA23510@cory.Berkeley.EDU> dillon@CORY.BERKELEY.EDU.UUCP writes: >.... Since this usually doesn't bode well with any visible windows, >what I would do is do EVERYTHING in the screen's rastport. Open an >invisible window in the screen so you can get keyboard and mouse events. > -Matt Pardon my ignorance, but I would like to know how to create an invisible window. Thank you, -- Charles Poirier (decvax,ihnp4,attmail)!vax135!cjp "Docking complete... Docking complete... Docking complete..."
dillon@CORY.BERKELEY.EDU (Matt Dillon) (03/22/88)
:>.... Since this usually doesn't bode well with any visible windows, :>what I would do is do EVERYTHING in the screen's rastport. Open an :>invisible window in the screen so you can get keyboard and mouse events. :> -Matt :Pardon my ignorance, but I would like to know how to create an invisible :window. : Thank you, Oh. Try specifying a NULL title, no system gadgets, and the BORDERLESS flag. The idea is that the window would be used only to get mouse and keyboard events, not something you can play around with. Usually one makes the window the same size as the screen except with MaxRows - 1 rows and dropped one pixel from the top of the screen so the user can still use the screen gadgets. -Matt