This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA4VM: J7EVM- Openvx- Network Node

Part Number: TDA4VM

Hello all,

Do we have a network node to capture ethernet Data in the TI-Openvx framework ?

Can I get support for collecting network data in TIOVX framework?

Regards,

Gokul

  • Hello Gokul,

    There is not an existing OpenVX node that captures ethernet data.  If you have the drivers in place to capture ethernet data, you have a couple options for how to integrate this with the OpenVX framework:

    1. You can wrap these drivers in an OpenVX node so that this node can exist within an OpenVX graph.  If you use this option, we recommend using the PyTIOVX tool to define the node interface and generate the wrapper code.

    2. Alternatively, you can simply integrate the driver calls within the application itself and send the captured buffers to the input of an OpenVX graph via the input data object of the graph.

    Please let me know which option is preferable and I can provide further support.

    Regards,

    Lucas

  • Hi Lucas,

    We have ported QNX  on A72 core. We want to do this activity in QNX environment. 

    Please let me know how to proceed in the QNX environment?

    Regards,

    Gokul

     

  • Hello Gokul,

    OpenVX sits on top of QNX, so it is OS-agnostic.  Is the data that you are trying to capture of a particular type?  For instance, are you trying to capture images or other common data types?  Please reference the below user guide link of OpenVX data objects to determine if any of these fit your requirements.

    https://www.khronos.org/registry/OpenVX/specs/1.1/html/d0/da0/group__group__basic__objects.html

    If the data is not of the format of any of the standard OpenVX data types, the user data object extension allows you to create a custom OpenVX object by specifying a custom data structure.  We have many examples of how to use this within the SDK if you need to use this extension.

    https://www.khronos.org/registry/OpenVX/extensions/vx_khr_user_data_object/1.0/vx_khr_user_data_object_1_0.html

    Once you have determined the data type, you can simply create an OpenVX object of that type.  Next, OpenVX provides a "map" function to access the data object pointer.  This pointer can be written to by the ethernet driver then the associated OpenVX data object can be passed along as an input to an OpenVX graph.

    Please let me know if you have further questions.

    Regards,

    Lucas

  • Hi Lucas,

    I am  a beginner in openvx framework 

    Can you  share me  some more examples of  creating a custom OpenVX  data object ?

    First I will try to understand how to use the userdata  object. 

    Regards,

    Gokul

  • Hello Gokul,

    The method by which you create a custom OpenVX data object is to use the user data object.  There are numerous examples in the conformance tests at the location tiovx/conformance_tests/test_conformance/test_user_data_object.c.

    Regards,

    Lucas

  • Hi Lucas,

    You have mentioned two methods to integrate with openvx network.

    1. You can wrap these drivers in an OpenVX node so that this node can exist within an OpenVX graph.  If you use this option, we recommend using the PyTIOVX tool to define the node interface and generate the wrapper code.

    2. Alternatively, you can simply integrate the driver calls within the application itself and send the captured buffers to the input of an OpenVX graph via the input data object of the graph

    Can you please explain me with some examples? 

    Which method is better to choose?

    Regards,

    Gokul

    .

  • Hi Gokul,

    For #1, there are a number of PyTIOVX scripts to use to get started in tiovx/tools/sample_kernel_wrappers/.  You will simply need to define the interface to your new node using the PyTIOVX API, then add in the calls to your driver inside the generated code.  There is an API guide in the TIOVX user guide (tiovx/docs/user_guide/index.html).

    For #2, there are a number of examples in the PTK demos (vision_apps/apps/ptk_demos/app_valet_parking).  This integrates many different types of sensor driver calls into the application and enqueues the data retrieved from the driver into an OpenVX graph.

    There is not necessarily a better method to choose.  Option #1 will take longer to get implemented initially due to the creation of an entirely new node, but once it is implemented, the application will be cleaner and easier to manage.  Option #2 can get you up and running faster, but will be more application code due to the buffer management required in the application.

    Regards,

    Lucas