We need a Visual Basic module to control a Sanyo (VCC-HD5400) IP pan tilt zoom (PTZ) camera over Ethernet. Must be Win7/XP compatible.
Control will be used with our existing VB code to provide basic control over a our camera. For example: Send camera to a specific position/zoom level, turn auto focus off/on; Have camera take a full resolution jpg image; save image to disk.
Sanyo SDK (in C#) is attached (also available here: [url removed, login to view]).
We don't need RS-232 control, only control over Ethernet.
All visual basic code must be clearly commented. Code must be provided to us in its entirety.
If needed, we will provide online access to a VCC-HD5400 Sanyo HD PTZ IP camera.
See specific programming requirements in "advanced options" section below
**Project Requirement Details**
**Connecting to the camera**
We are not familiar with the exact details of how one connects to the Sanyo camera over Ethernet and makes function calls, so the programmer can decide which of the following implementations works best. Note that the sanyo plugin seems a bit difficult to use so you should test it prior to bidding and plan accordingly. Please also download the SDK and sample programs (attached) and test those as well.
Camera demo page: <[url removed, login to view]> (works best in IE)
To interface with the camera, the VB module will either:
(1) Instantiate an instance either of the camera control module using the camera IP when it is first called. In this case we must be able to restart/reset the camera connection or create a new camera connection at run time (i.e. not just when the program initially loads)
(2) For any function call the user will pass the camera IP address to access the camera, then the module will open the connection to interface with the camera for that function call
All function must work quickly - i.e. any speed limitations for the required functions must be a result of camera limitation, not slow code functionality due to poor programming or insufficient programming skill at the interfacing with the camera.
Method 1, above is preferred.
*All function calls must provide an indication of when they are completed (i.e. camera is in position or zoom is complete, etc). If there is an error, the function must time out (global timeout time setting is fine) and return a human-readable error message
GetPosition Returns Camera X,Y
Set Position(X,Y) Sets camera XY position. Must provide indication when camera is in position.
GetZoom Returns current zoom of camera
SetZoom(zoom value) Sets current zoom of camera
GetFocusStatusOffOn Returns if camera is set to manual or auto focus
SetFocusStatusOffOn Sets camera focus off or on
GetFocusValue Returns current focus values
SetFocusValue(value) Sets camera focus value (This will be used for focal stacking)
GetAutoFocusSuccess Returns True/False if camera was able to focus when taking picture
CaptureJPG(bitmap object,resolution) Returns a bitmap with the current file at the requested resolution
GetJPGResoution(value) Get current resolution for captured images
SetJPGResoution(value) Sets resolution for captured images
GetAvailableJPGResolutions Returns available resolutions for captured images
GetAvailableStreamResolutions Returns available resolutions for video streams
**Error tracking **
* Return errors for all above function call and any other common errors and provide a lookup table for converting error codes into user-readable information on what the error is