Is it possible to interface to a dll with vvvv if you know what functions and procedures it takes in?
Basically make a patch that handles what it should take in. Any runtime stuff etc.
My idea it to control two canon VC-C4 cameras.
They have a SDK that specifies everything.
But I’m not good with C nor VB.
I am writing a program in Delphi but it goes kinda slow. vvvv would be a lot nicer. At least to test with as I have not gotten it to work yet.
What I want is X, Y, Zoom, Focus, Focus mode, Color, And some less essential stuff.
It interfaces through COM port abd they include the source for the dll as well but it might be a little too much to add it as a device.
Well, I was looking at the website, and so far I have not yet found the protocol they use, not even in the manual, most devices I controlled with RS232 had a protcol written out somewhere :( (all I read, it works 8BIT, no Parity, woopy…)
Havent tried their software yet, wich claims to contain a manual, in an .exe file…
You could try and send them an email, and ask for it, than I am almost sure we can help you out.
It seems tht the vc-c4 is controllable via Sony’s-Visca-Protocol:(at least some of them)?
"The Canon VC-C4 Camera is a fully controllable Pan, Tilt and 16 x Zoom Camera unit providing both S-Video and Composite video outputs. Units can be controlled by the supplied IR remote or via RS-232 (VISCA) from any PC/MAC. "
Then it should be quite easy going, you can read the visca-specifications, getting the visca commands (hexa) and integrating it in your vvvv-application.
I did sth. similiar with maxmsp before, controlling sony evi d31’s via rs232 and visca protocol.
exactly, it might be that there is another string to send first to initialize the connection before you can send “any” control strings, but if that is the case it should be written prominently in the manual.
About 2 cameras at one bus:
After any contol command (TXD) sent to any device, you will get an answer (RXD) from the device. After you recieved that answer (i think approx. sth. between 5 and 30ms delay) you can sent the next control command safe (if you want, you can also recieve the answers into your vvvv-patch) . So it is not possible to send many commands at exactly the same time with just one bus.
I am getting somewhere. Sort of.
I should be able to put up a patch that does what I want in terms of converting usable commands to sendable commands. In other words a HEX string.
Also detecting if there has been a change in the input and then send it.
However I can’s shout a million things at once in the bus. I also want to wait for the camera to respond a small OK when it is done.
And as you know there is two cameras running on one bus. I don’t want them to collide.
How can I cue the data in a buffer so it gets sent when it can?
And how do I limit data in an intelligent way so that Pan and Tilt always get the latest value available and sent out as soon as there is a free spot but still making sure other commands don’t get dropped but cued instead. And still gets sent out in a certain amounts of time. Like Focus and Color.
And how can i compare the sent command to the received answer so I know the right camera answered?
I would also want to detect if it’s an error or not and possibly log it or something. For debugging. (the error that is)
I know I have to limit the use to one active camera to get some sort of fluid motion but I should still be able to call in a point now and then on the other camera to get it to the right position.