<formula> calculations, nonstandard?

In the genicam xml code for my camera (FLIR SC7600 infrared cam) there are several calculations for device registers but I do not understand the mathematical expression within the formula tags

<Formula>(SEL = 1) ? 0x0000A050 : ((SEL = 2) ? 0x0000A054 : ((SEL = 3) ? 0x0000BB54 : ((SEL = 4) ? 0x0000BB58 : ((SEL = 5) ? 0x0000BB5C : ((SEL = 6) ? 0x0000BB60 : ((SEL = 7) ? 0x0000A04C : ((SEL = 8) ? 0x0000A058 : (0xFFFFFFFF))))))))</Formula>

Any ideas?

Hi Tobias,

It is just an ugly array access.

output = array[SEL] if SEL in [1..8], 0xffffffff otherwise


array = {0x0000A050, 0x0000A054, 0x0000BB54, 0x0000BB58, 0x0000BB5C, 0x0000BB60, 0x0000A04C, 0x0000A058}


I am trying to figure out registers on our camera (FLIR/CEDIP, SC7600 ) not in the xml file.
It has a message channel, needed for additional functionality, but i am unable to get it started and need to figure out a few of the registers that according to wireshark is being written/read to.

Events are not supported yet by Aravis. It would be a nice addition.

It should be quite simple to add, we already have a thread for the heartbeat mechanism that could also handle incoming event packets.

But as usual this work can only be done by reverse engineering.