[comp.sys.concurrent] Need help digitizing video signals

rick@synapse.neuro.bcm.tmc.edu (Rick Gray) (02/25/90)

There is a demo program called 'image.f' in the Masscomp Graphics
Application Prgramming Manual (Rev. H) that uses the DACP hardware to
digitize the signal from a video camera and display the image on the
screen.  The version in the manual is incomplete (or at least doesn't
include all the connections on the CK10 clock and AD12FA), but I
remember seeing (and trying out) a corrected/expanded version of this
program a few years ago.  At that time I had no need to digitize
images, but now I do and can't find the code.  I also can't remember
whether the corrected code came from the users' group, release notes
or from someone at Masscomp.  I haven't been able to find it in the
comp.sys.masscomp archives or any of our documentation.  Has anyone
archived a working version of this demo program or written something
similar?  
Here's the hardware:
	CK10 clock
	AD12FA 1MHz a/d board
	MC 5520 with DACP
	Dage-MTI SIT or Hamamatsu C2400 camera
We have both 6-plane GA800's and 4-plane GA1000's, some running
Masscomp graphics (SP-40) and others running X11R3 for display.

Thanks,
rick
- --
Rick Gray                            uucp: uunet!soma!rick
Division of Neuroscience         Internet: rick@soma.bcm.tmc.edu
Baylor College of Medicine 
Houston, Tx 77030

Articles to: concurrent@soma.bcm.tmc.edu or uunet!soma.bcm.tmc.edu!concurrent
Administrative stuff: concurrent-request@soma.bcm.tmc.edu
Stan Barber, Moderator

daly%playroom.westford.ccur.com@relay.cs.net (patrick daly) (03/19/90)

REALLY in response to: rick@synapse.neuro.bcm.tmc.edu
				     (Rick Gray)
				     |
				     V
In article <217@gazette.bcm.tmc.edu> you write:
>There is a demo program called 'image.f' in the Masscomp Graphics
>Application Prgramming Manual (Rev. H) that uses the DACP hardware to
>digitize the signal from a video camera and display the image on the
>screen.

I was instructed to remove this program from the GAPM as of Rev K 
and from SP-4005 as of Rev 5.2.   The reasons were given to me were:

(1) one should be able to compile and run the example programs
    without requiring additional software packages (in this case SP-50)

(2) one should be able to run the example programs without additional
    hardware (the video camera, DACP, etc)
    
(3) The program was buggy and incomplete and not considered a good example.

I offered to address (3) by doing some work on the program but since
that would not address (1) and (2) above, I was outvoted.


>         The version in the manual is incomplete (or at least doesn't
>include all the connections on the CK10 clock and AD12FA), but I
>remember seeing (and trying out) a corrected/expanded version of this
>program a few years ago.

Sorry, I don't know anything about a corrected or expanded version.

>                          At that time I had no need to digitize
>images, but now I do and can't find the code.  I also can't remember
>whether the corrected code came from the users' group, release notes
>or from someone at Masscomp.  				^^^^^^^^^^^^^

The version last appearing in the SP-4005 *kit* follows the end of this mail.
There was no corrected version offered in the release notes.  I do not know
how closely the version you described matches the enclosed version.

>                              I haven't been able to find it in the
>comp.sys.masscomp archives or any of our documentation.  Has anyone
>archived a working version of this demo program or written something
>similar?  
>Here's the hardware:
>	CK10 clock
>	AD12FA 1MHz a/d board
>	MC 5520 with DACP
>	Dage-MTI SIT or Hamamatsu C2400 camera
>We have both 6-plane GA800's and 4-plane GA1000's, some running
>Masscomp graphics (SP-40) and others running X11R3 for display.
>
>Thanks,
>rick
>- --
>Rick Gray                            uucp: uunet!soma!rick
>Division of Neuroscience         Internet: rick@soma.bcm.tmc.edu
>Baylor College of Medicine 
>Houston, Tx 77030
>
>Articles to: concurrent@soma.bcm.tmc.edu or uunet!soma.bcm.tmc.edu!concurrent
>Administrative stuff: concurrent-request@soma.bcm.tmc.edu
>Stan Barber, Moderator


=========== Last version of image.f before being removed from sp-4005 =======
* @(#)image.f	6.1	(MASSCOMP)	Modified 8/22/88

	program image

	integer*2 videodata(105000)
	character picray(318, 242)
	integer i
	integer itemp
	real rintense
	integer adpath, dummy, clkpath(8)
	integer statwds(2)


	adpath = -1
	dummy = -1
	do 10  i = 1, 8
	clkpath(i) = -1
10	continue

	call mropen( adpath, "/dev/dacp0/adf0", 0 )
	print *, "adpath\n", adpath
	call mrclkopn( clkpath(8), "/dev/dacp0/clk2", 0 )
	call mrclkopn( clkpath(1), "/dev/dacp0/clk1", 0 )
	call mrclkopn( clkpath(2), "/dev/dacp0/clk0", 0 )
	call mrclkopn( clkpath(3), "/dev/dacp0/clk3", 0 )
	call mrclkopn( clkpath(4), "/dev/dacp0/clk4", 0 )
	call mrclkopn( clkpath(5), "/dev/dacp0/clk5", 0 )
	call mrclkopn( clkpath(6), "/dev/dacp0/clk6", 0 )
	call mrclkopn( clkpath(7), "/dev/dacp0/clk7", 0 )

* Now the clocks have been openned... wire 

*	out 3 to src 2
*	out 2 to cntrl 1
*	out 1 to cntrl 3
*	out 2 to cntrl 5
*	out 5 to cntrl 6
100	print *, "First clocks armed\n", clkpath

	call mrclkcnts( clkpath(3), 27, 300, 84, 4, 1, 2 )
	call mrclkcnts( clkpath(8),  19, 242, 20, 0, 1, 2 )
	call mrclkcnts( clkpath(2), 19, 242, 20, 0, 1, 2 )
	call mrclksetter( clkpath(1), 27,7, 2, 7, 1, 2, 12 )
	call mrclksetter( clkpath(5), 27, 5, 5, 6, 0, 2, 0 )
	call mrclkcnts( clkpath(6), 27, 4, 2, 4, 0, 2 )

	call mrclkcnts( clkpath(4), 27, 5, 1, 0, 0, 2 )


	call mrclkarm( 1, clkpath(8) )
	print *, "clkset\n"
	call mrclkarm( 4, clkpath )

	call mradxin( adpath, clkpath(6), -1, 0, 1, 1, 0, 105000, videodata )

	print *, "adpath\n", adpath
	print *, "Type carriage return to start"
	read *
	call mrclkarm( 1, clkpath(6) )
	print *, "\"
	call mrclkarm( 1, clkpath(5) )
	print *, "awaiting read completion\n"
	call mrevwt( adpath, statwds, 1000000 )
	print *, "\"

	print *, "Picture taken\n"
	call mrclosall


	rintense = 2.5
	level = -130


250	i = 11
	

	do 260 if = 1, 6
	
	do 300 il = 1, 242

	do 400 is = 1, 53
	if ( videodata(i) .lt. level ) then
		print *, "Videodata lt level", videodata(i), i
		videodata(i) = level
	endif


	itemp = int( float(videodata(i)-level)/rintense )


	if ( itemp .ge. 128 ) itemp = 127

	picray( (7-if+(is-1)*6), il ) = char(itemp)

	i = i + 1

400	continue

	i = i + 11

300	continue

	i = i + 1280 
	print *, "after 300 - i=", i

260 	continue

	call mgiasngp( 0, 0 )
	print *, 'Assigned - go for image'

	call mgiimage( picray, 301, 201, 618, 442 )

	print *, 'End of image - deassign'

	call mgideagp

	print *, 'Display complete\'
	stop
	end

--------------------------------------------------------------------------------
		     ___________
		    /  ________/__	...!{decvax,uunet}!masscomp!daly
		   /__/_______/  /	daly@westford.ccur.com
	  Concurrent /__________/
	Computer Corporation
--------------------------------------------------------------------------------

Articles to: concurrent@soma.bcm.tmc.edu or uunet!soma.bcm.tmc.edu!concurrent
Administrative stuff: concurrent-request@soma.bcm.tmc.edu
Stan Barber, Moderator