Hey all,
I'm working on an abstraction to control a Canon VC-C50i serial-control camera from PD. Things are going pretty well and I have the basic trigger commands done. The problem I'm running into is the continuous controls.
Lets take the pan as an example.
The documentation states that the minimum angle is 0x7c87, while the maximum is 0x8379. To set the angle of the camera I need to issue a command made of up individual bytes (converted into decimal for comport) in this case something like:
255,48,48,0,98,p,p,p,p,t,t,t,t,239 (in decimal)
Where the four P bytes are the panning angle and the four t bytes are the tilt angle.
So what I want to do is to take a range (say floats 0-1) to map to the min and max panning angle. How do I convert the miniumum angle (31879 in decimal) to four seperate decimal messages for use in the above command? Obviously I would like the granularity of the steps to be continuous so I could do some interpolation without sending invalid values.
I could sit here for a couple hours to figure it out, but I thought someone on the list would have a short cut for me.
Oh and according to the documentation (and testing) the following is correct:
Hex value | decimal message ----------+------------------ 0x7c87 = 55,67,56,55 (min) 0x8379 = 56,51,55,57 (max)
Thank you!
B.