PDA

View Full Version : Runing DSlrRemote and PSRemote simultaneously



DavidK
January 28th, 2005, 10:04 PM
Can I run DSlrRemote and PSRemote at the same time? I am writing an application that will control 2 cameras. One is a Canon Pro-1 and the other is a digital EOS-10D. I need to take several shots using the Pro-1 and then switch to the EOS 10D for shots from a different angle. The cameras don’t both need to be triggered at the same time, but will alternate after taking a series of shots.

Are there any surprises that I might need to anticipate?

Thanks in advance,
David

Chris Breeze
January 29th, 2005, 11:26 AM
Yes, you can run PSRemote to control a Pro1 and DSLR Remote Pro to control a 10D at the same time. You can also take and download pictures with both cameras at the same time if you wish.
In fact you can run several copies of PSRemote at the same time provided they are connected to different camera models. I have run tests with an A80, S1 IS and Pro1 each connected to a separate copy of PSRemote and DSLR Remote Pro connected to a 10D. Everything worked fine provided you don't attempt to display the live viewfinder data from the three PowerShot cameras simultaneously (this can crash the USB drivers). I could have tried more but I ran out of USB ports.

DavidK
February 15th, 2005, 07:21 PM
Chris,

Thanks for the reply! I just finished writing an embedded custom application that calls your DSLR Remote Pro to control a Canon 10D. It works pretty well!

I am ready to add PSRemote to control a PowerShot Pro1. I'm looking at the header files and am seeing the function calls are identical, i.e. ::PingCamera() and ::ReleaseShutter() are identical. I want to ping one of the two cameras and then command one camera to take the picture.

How do I use these calls and specify which camera it is that I want to talk to?

The environment is Windows 2000. I don't have the luxury of a user, keyboard or display. The captured pictures are stored in a directory on the host PC. They are then sent to a remote PC for analysis.

Thanks for your time,
David

Chris Breeze
February 16th, 2005, 08:32 AM
You could call the command line test app to fire the PowerShot camera. Alternatively you could load the DLL and explictly call the function at run time.

DavidK
February 16th, 2005, 02:56 PM
Chris,

The idea of command line control of the PSRemote Pro hadn't occurred to me. Unfortunately, I need the return status feedback for each library call - is the camera ready, is PSRemote running, etc. I wouldn't be able to capture and relay those messages back to the user.

Just as anticipated, when I included the PSRemoteLib library and header files to my current project, it created "linkage contradicts earlier specification for 'PingCamera' " and similar link error messages for 'ReleaseShutter' and 'SetShutterAperture' etc. etc.

There is another way around this duplication of function names - but I would need some help from you. If the PSRemoteLib functions would start off with prefix of PS so they would become PSPing, PSReleaseShutter, PSSetISO then a call to the DLL would be unique. Would you consider rebuilding the DLL and corresponding Lib so that I could use both DLL's within the same user application?

Thanks for the speedy response!
David

DavidK
March 7th, 2005, 08:15 PM
Chris,

Still looking for a solution to duplicate names in the DSLR and Powershot libraries as I make calls to the cameras. Seems that even the compiler doesn't care for the duplicate file names. Please see previous post in this thread.

Thanks,
David

Chris Breeze
March 8th, 2005, 12:42 PM
If you're using C++ you should be able load the DLL at run time and explicitly bind to the appropriate function call e.g. using LoadLibrary() and GetProcAddress()