Welcome to our community

Be a part of something great, join today!

  • Hey all, just changed over the backend after 15 years I figured time to give it a bit of an update, its probably gonna be a bit weird for most of you and i am sure there is a few bugs to work out but it should kinda work the same as before... hopefully :)

REDLINK SDK v6.42.4 Released

Joined
Aug 22, 2011
Messages
1,172
Reaction score
0
Points
0
REDLINK SDK v6.42.x is a minor update to REDLINK SDK v6.41.x, adding support for the listed parameters introduced in camera firmware 6.3.27.


REDLINK SDK V6.42.4 CHANGES


Added parameters:
RCP_PARAM_AUDIO_CH3_MODE_STATUS
RCP_PARAM_AUDIO_CH4_MODE_STATUS
RCP_PARAM_RECORD_PRE_FRAME_COUNT_AVAILABLE
RCP_PARAM_RECORD_POST_FRAME_COUNT_AVAILABLE
RCP_PARAM_RECORD_PRE_FRAME_COUNT_ACTUAL
RCP_PARAM_RECORD_POST_FRAME_COUNT_ACTUAL


Always check https://www.red.com/developers for the most up to date version of the SDK.
 
In the Cases where an (APP side) Parameter is updated from a LIST message (with its list of displayable string), and then an INT message update is received in which the embedded string is not valid, but the 'cur_val' Number exists .. is the expectation that the old LIST messages display string is still valid, or the App should attempt to create a displayable string of its own from the 'cur_val' INT.

Is there a reason why a String version would not be sent in the INT update?

In the example below ... the Shutter was changed from to 1/125 a second ... and after waiting some time, there was (still) not update with displayable string.
As the INT message2 advised 'no string in list' ... I am uncertain if that means (don't bother sending a get LIST, you wont get a string in it), or if it means that from the LIST message you can no longer use the "1/125" string.


MESSAGE 1 : DUMP_rcp_cur_list_cb_data_t()
-> id : RCP_PARAM_EXPOSURE_INTEGRATION_TIME
-> list_string: 0|21|1000|1&redsec;|2000|&red1over;2|3000|&red1over;3|4000|&red1over;4|8000|&red1over;8|12000|&red1over;12|16000|&red1over;16|20000|&red1over;20|24000|&red1over;24|25000|&red1over;25|30000|&red1over;30|32000|&red1over;32|36000|&red1over;36|40000|&red1over;40|48000|&red1over;48|50000|&red1over;50|60000|&red1over;60|72000|&red1over;72|96000|&red1over;96|100000|&red1over;100|120000|&red1over;120|125000|&red1over;125|144000|&red1over;144|192000|&red1over;192|200000|&red1over;200|240000|&red1over;240|250000|&red1over;250|288000|&red1over;288|384000|&red1over;384|400000|&red1over;400|500000|&red1over;500|696000|&red1over;696|800000|&red1over;800|1000000|&red1over;1000|1200000|&red1over;1200|2000000|&red1over;2000|2400000|&red1over;2400|2500000|&red1over;2500|2880000|&red1over;2880|3840000|&red1over;3840|4000000|&red1over;4000|5000000|&red1over;5000|6960000|&red1over;6960|8000000|&red1over;8000|
-> list_string_valid: VALID
-> display_str_in_list: FALSE = display string from current message. NOT this list
-> min_val: 8000
-> min_val_valid: TRUE : min_val contains VALID data.
-> max_val: 131578945
-> max_val_valid: TRUE : max_val contains VALID data.
-> send_int: TRUE : send back integer value in set command
-> send_uint: FALSE : DONT send back unsigned integer value in set command
-> send_str: FALSE : DONT send back string value in set command
-> update_list_only_on_close: FALSE




MESSAGE 2 : DUMP_rcp_cur_int_cb_data_t()
-> id : RCP_PARAM_EXPOSURE_INTEGRATION_TIME
-> cur_val : VALID(125000)
-> target_val : VALID(125000)
-> display_str_valid = FALSE (ie ignore all 'display_str' vars)
-> display_str : INVALID
-> display_str_decoded : INVALID
-> display_str_status : INVALID
-> display_str_abbr : INVALID
-> display_str_abbr_decoded : INVALID
-> display_str_in_list : FALSE
-> edit_info : EDIT_USING
--> parameter_set_version_major : 0
--> parameter_set_version_minor : 0
--> min : 1000 = Minimum allowed value
--> max : 999999999 = Maximum allowed value
--> divider : 1000
--> digits : 0
--> step : 1000 = Minimum step size (for non-divided value)
--> prefix : &red1over;
--> prefix_decoded : 1/
--> suffix :
--> suffix_decoded :

AJ
 
Last edited:
In the Cases where an (APP side) Parameter is updated from a LIST message (with its list of displayable string), and then an INT message update is received in which the embedded string is not valid, but the 'cur_val' Number exists .. is the expectation that the old LIST messages display string is still valid, or the App should attempt to create a displayable string of its own from the 'cur_val' INT.
AJ

You should always honor the display_str_in_list parameter in both the cur_list and cur_int callbacks. That is, only use the list string if display_str_in_list parameter is set to true. In the case of the integration time, the display strings in the list do not always match the string that should be displayed to the user.

There is never a case where you (the application) are expected to generate the display string yourself. If you find a case where this is true, it is likely a bug and you should ask here. Which leads to:

Is there a reason why a String version would not be sent in the INT update?AJ

What camera firmware are use testing against? Are there any unusual settings enabled on the camera? AE, Motion Mount, and Frame Processing can all affect the integration time display string, do you have any of those enabled?

You are supposed to get a display_str with dirsplay_str_valid set to true in the cur_int callback for RCP_PARAM_EXPOSURE_INTEGRATION_TIME. I verified that I do when testing here.

I know you are comfortable looking at the RCP API source; the function in the API that should be called to generate this display string for you is: _rcp_create_integration_time_string. It would be interesting to know if you are getting into this function, and it so, why the display string isn't being generated. The only thing I can think of is that for some reason your camera isn't providing one of the dependencies and the call to _rcp_check_parameter_dependencies is always returning false.

Also, in most cases I would recommend using RCP_PARAM_EXPOSURE_DISPLAY instead of RCP_PARAM_EXPOSURE_INTEGRATION_TIME. RCP_PARAM_EXPOSURE_DISPLAY will display either exposure time or angle based on the user's display settings. Of course, if you want to force your UI to show the integration time then go ahead and continue using RCP_PARAM_EXPOSURE_INTEGRATION_TIME.

Trent
 
Trent,

has support been added yet for being able to turn off and on a display?

Thanks!

In general, we don't have a way of turning on/off the displays. However, we do have control for turning on/off the HDSDI outputs: RCP_PARAM_MONITOR_ENABLE_HDSDI, RCP_PARAM_MONITOR_ENABLE_REAR_HDSDI1, and RCP_PARAM_MONITOR_ENABLE_REAR_HDSDI2.

Is your goal to be able to turn on/off something like one of the touch LCDs or HDMI monitors?
 
I can't find in my notes who I talked to at Red about it but the goal was to be able to turn off and on the touch monitor for time-lapse usage to save on battery power, that way mikael at fool control could program it into the app and make it easy to do without having to touch the screen. I can't seem to find the email of who I talked with in at support.
 
Quick question,
why is Linux excluded as platform in SDK?
 
Quick question,
why is Linux excluded as platform in SDK?


The SDK is released as C source code. Linux is most certainly not excluded. The SDK can practically be compiled on any platform including embedded platforms. Why do you say this?
 
Don't get me wrong, I am also using it on linux,
but I have seen in qt examples, there are platform switches which have windows and ios only.
 
Don't get me wrong, I am also using it on linux,
but I have seen in qt examples, there are platform switches which have windows and ios only.

Fair enough, the QT examples might not work out of the box in linux, but the API most certainly will, and I'm sure it wouldn't be hard to get the example working. Are you running into problems getting the example QT app to build?
 
On that link I can download the sdk. I need to download the redlink app
 
On that link I can download the sdk. I need to download the redlink app

It is currently not on the app store. Don't have any more info than that, but maybe a reason to email support and perhaps they will send you an apk.
 
Back
Top