Manipulating the on-screen display

Ask software engineering and SDK questions for developers working on Mac OS X, Windows or Linux.
  • Author
  • Message
Offline

jfernsler

  • Posts: 4
  • Joined: Wed Apr 29, 2020 11:51 pm
  • Real Name: Jeremy Fernsler

Manipulating the on-screen display

PostSun May 03, 2020 6:52 am

I'd like to control the amount of information being displayed on the screen over bluetooth, but I'm having trouble understanding the docs in regards to this. In the SDK camera control docs, section 3.0 "Overlay enables" is listed as a uint16 bit field. I'm taking that to mean that there are sixteen possible on/offs for overlays on screen. The interpretation is:

bit flags:
[0] = display status,
[1] = display frame guides
Some cameras don't allow separate control of frame guides and status overlays.


I'm working with a blackmagic pocket cinema 6k. In the Monitor section of the onscreen menu in the camera, there are 8 on/off switches on the first page of the menu and one more switch on the second page. To my thinking, switching them all 'on' would be
11111111 10000000

resulting in a send packet like this:
{255, 8, 0, 0, 3, 0, 2, 0, 255, 200, 0, 0}

which does nothing on the camera... even trying to turn everything off with:
{255, 8, 0, 0, 3, 0, 2, 0, 0, 0, 0, 0}

has no effect... does anyone have any insight on how the implementation of this command is actually structured?

Any help would be huge - thank you!
Offline

Brendan Dower

Blackmagic Design

  • Posts: 60
  • Joined: Thu Oct 10, 2019 5:56 am
  • Real Name: Brendan Dower

Re: Manipulating the on-screen display

PostWed May 06, 2020 3:41 am

Hi Jeremy,

The Output->OverlayEnables command is listed as a uint16 bit field. However there isn't a uint-16 data type in the CCU, so use an signed 16-bit integer instead.

As a bit-field, these can be turned on or off independently of each other:
Code: Select all
 
0x00 = both overlays off
0x01 = display status
0x10 = display frame guides
0x11 = both overlays on

The length of the data is 16-bits or 2 bytes.
The length of the command is from the Category field to the end of the data which is 6 bytes total.

Example - set both displays on
  • Destination = 255 (all cameras)
  • Length = 6 ( 4 bytes header + 2 bytes data)
  • Command = 0
  • Reserved = 0
  • Category = 3 (Output)
  • Parameter = 0 (OverlayEnables)
  • Type = 2 (16-bit integer)
  • Operation = 0 (assign value)
  • Data Byte-1 = 3
  • Data Byte-2 = 0

Therefore the command would be:

Code: Select all
255, 6, 0, 0, 3, 0, 2, 0, 3, 0, 0, 0

Note: the padding at the end to align to 4 bytes.

Please let me know if this doesn't work for you.
Brendan Dower
Blackmagic Design Developer Support

Return to Software Developers

Who is online

Users browsing this forum: No registered users and 16 guests