From the .icd file, the following command looks correct (your second guess):
ret = imgSetCameraAttributeString(sessionID,"Frame Period","User Select");
ret = imgSetCameraAttributeNumeric(sessionID, "User Select", (double)3330);
I wonder why the numeric value is converted to a double, when it is an integer in the icd file, but that doesn't really matter.
You can't set the value to 5000, because the limit is 4000 (from icd file).
The number you specify is the number of 10 usec intervals. For example, 4000 is equal to 40000 usec.
It may be useful for debugging purposes to read and display the values before and after changing them, to make sure they are changed the way you expect. The before value should match the default value in the icd file, and the after value should be what you tried to set it to.
Bruce
Bruce Ammons
Ammons Engineering