sony camera
I have job that requires I set up a Sony EVI-D70 camera to auto pan. First, I don't think the little motors in that guy are really built for 24x7 auto panning, but that is another story. As a quick and easy setup, I created a timeline that repeats. At 0 seconds, the camera is told to pan right. At 4 seconds, it is told to pan left. Simple and effective. Without using any feedback from the camera, I can play with the times until I get the exact times in there to cover the entire area. The problem is, the user wants to have the option to control the speed of the auto panning. If I set it up to pan x seconds one way and then x seconds back the other way, obviously if the user speeds up or slows down the panning speed, the area covered is going to get screwed up. I was thinking of using the direct position command instead. That way, the camera would get a command to go to a direct position on the left, then go bakc to a direct position on the right. By changing the pan speed in the command to the camera, I can make it go back and forth faster or slower depending on how the user sets it up. Basically, I need to go to the left, stop, then go back to the right. Without using a repeating timeline, what would be a better way to hande this situation?
0
Comments
I forgot to say, the camera reponds with an ACK when it starts a command and an ACK when it finishes the command. I am thinking I can use this to my favor. I was thinking I could create string handler in the data event that reacts accordingly. Something like "pan the camera to a direct position on the right, wait until the command is completed and then pan the camera to a direct position on the left. Wait until that command is complete then go back to the right." This would repeat over and over.
See page 42 of attached manual, which I am told is iPhone friendly
Just because I don?t like timelines, I would use a variable to determine if the camera is going left or right. Then use STRING in data event to check data.text for the command finished ACK.
STRING: { SELECT { ACTIVE(FIND_STRING(DATA.TEXT,'ACK',1)): { if(value = right) { // send string to go left // value = left } else if(value = left) { // send string to go right // value = right } } }Then do something in startup to get things going and try to make something happen if i don?t get an ACK for some time ( if the connection is broken ). But I am sure the guys here can show you some better coding samples.
Good luck.