Critical Link MityCam SoC Firmware  1.0
Critical Link MityCam SoC Firmware
Todo List
Member SocCamera::tcControlApplication::setCommandInterface (int32 value, std::string *data)
mpNextIOChannel should be replaced with some sort of lookup operation instead of relying on the last defined IO channel marrying to the given command interface
Member SocCamera::tcRegisterFile::initialize (tcSensorBoard *apSensor, tcPayloadSetter *apIface)

This entire method should really go away. The tcRegisterFile should not have any "knowledge" of how the registers should be configured. Most of these parameters should be set directly by the tcSensorBoard classes. Originally they were not because the CameraLink variants didn't have/use a tcRegisterFile. This is no longer true. There is always a tcRegisterFile present. We leave it mostly due to fears of regression, but it needs to be cleaned up.

Along with above comment, the whole payloadsetter thing should move to a separate Handler and not be integrated into the register file class. Again, fear of regression at this point makes us leave things alone...

Member SocCamera::tcRegisterFile::tcRegisterFile (tsRegDefinition *apRegs, bool abBigEndian)

Use the addRegister() scheme and push the transport specific stuff into appropriate interface handlers. Remove calling this in tcControlApp and have getInstance() use the GenICam base register set (common for all). This will also allow sensors to define custom registers on the fly without having to reserve space for them in the main array (which is wasteful for other sensors).

push the abBigEndian stuff into the regsiter definition. Register endianness is not necessary the same for all registers. This is really inefficient for the GigE interface.

Member tcDemosaicCore::teDemosaicMode
this coding parameter, determined empirically from Jeff does not match the FPGA IP specification. There appears to be some pixel shuffling going on in the FPGA, likely in the pipeline. See redmine (internal) 19887. According to the spec, eeGRBG = 0, eeGBRG = 1, eeRGGB = 2, eeBGGR = 3. This workaround only works because we are using Bilinear or Nearest Neighbor approach.
Member tcPollingInterruptThread::run ()
the /dev/uio0 path is currently hardcoded, it should be passed to the class constructor in order to support other paths in the event multiple uio modules are installed and the streamer is not on uio0.