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.

[参考译文] RTOS/TDA2SX:使用 TCP/IP &放大器与外部摄像头进行通信;UDP

Guru**** 2551110 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/593815/rtos-tda2sx-communication-with-external-camera-using-tcp-ip-udp

器件型号:TDA2Sx

工具/软件:TI-RTOS

大家好、我正在使用 TDA2xx 和 VISION_SDK_02_12。


我尝试使用以太网连接外部摄像头。 摄像头发送速率为30fps 的 jpeg 图像、我已经能够使用 network_TX 工具将单个 jpeg 图像从我的 PC 发送到 EVM 并显示它们。

要启动摄像机的视频流、我需要通过 TCP/IP 向摄像机发送控制字符串。 凸轮具有静态 IP 和控制端口。

只有在发送流请求后、摄像机才会开始流式传输、并通过 UDP 将 jpeg 映像返回到发送请求的 IP 地址(来自 EVM 的静态 IP 和给定端口)。

现在、我要将流请求从 EVM 发送到摄像头、并使用 EVM 捕获图像以显示它们。 与 PC 无交互。

我应该如何在任何给定用例中实现这一点?  

-打开 TCO 和 UDP 套接字

-发送流请求

-接收数据、解码和显示。

我希望你能帮助我。

此致、Philipp

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Philipp、

    以太网专家已收到通知。 他们将在这里作出回应。

    此致、
    Mariya
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Philipp、

    有关以下各项的实施、您可以查看以下内容

    备选案文1.

    打开 TCP 和 UDP 套接字
    VISION_SDK\src\utils_common\src\network_api.c
    network_open 已植入套接字创建
    TI_componers\networking\NDK_2_25_01_11\docs 是 NDK 文档、您可以在其中找到更多详细信息


    发送流请求
    打开套接字后、您可以根据摄像头的流媒体需求、使用相关接头和数据写入相同的套接字。
    VISION_SDK\src\utils_common\src\network_api.c 中的 network_write

    接收数据
    从已打开的套接字接收
    network_read vision_sdk\src\utils_common\src\network_api.c

    接收到数据后、您可以将其传递到解码器链接和显示链接。

    您需要为 UDP/TCP 接收创建链接。 请参阅 LINK_common/avbrx 中的 AVBRx 链接

    我们有一个用于 AVB 摄像头捕获(IEEE1722)解码和显示的用例、您可以参考该用例的生成


    备选案文2.

    使用 NullSrc -> decode-> display 创建链。

    修改 nullSrcLink_networkRx.c 文件以根据相机的要求添加头文件。
    但当前为 nullSrcLink_networkRx.c 不支持 UDP 接收。 您可能必须增强相同功能才能获得 UDP 支持。

    下面的 nullSrcLink_networkRx.c 使用 vision_sdk\src\utils_common\src\network_api.c
    仅限网络 API。


    此致
    Chetan.M
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Chetan、

    首先、感谢您的快速回复。 我很感激!

    我尝试逐步实施您的解决方案。 因此、我采用了给定的 usecase chains_NetworkRxDecDisplay、该用例使用 nullSrcLink 作为捕获源。
    在 network_api.c 中、我添加了两个新函数、一个用于连接服务器、另一个用于向服务器发送数据(摄像头充当服务器)。 我在 nullSrcLink_networkRx.c -> NullSrcLink_networkRxCreate()中包含了 TCP 套接字创建。 这样、我就能够向摄像机发送必要的命令。

    但现在我不确定要采取哪些进一步的步骤。

    供参考:我是 TI 或任何其他类型的 EVM 的新手。 VISION_SDK 等也是如此 它用于研究项目。 所以,请注意我的问题:-)我试图支持所有这些。。。

    如果我想使用您解释的"选项1"、我在哪里实现所有内容?

    #1:例如,在 networkRx 用例中,链为:NullSource -> Decode -> Display。
    我是否需要用我自己的 comlete new Link 替换 NullSource、在这里打开套接字? 如果没有其他捕获源、这是否可能实现?

    #2:您还说我需要为 UDP 接收创建一个链路。 根据#1的理解、我应该创建一个新链接来替换 NullSourceLink。
    其中包括:
    -通过 TCP 创建套接字并发送流请求,例如 mySocketSourceLinkCreate()
    -在 mySocketSourceLink...()的其他部分内接收 UDP 信号?

    请更正我的理解。 我很高兴您能帮助我进一步解答有关此主题的问题!

    谢谢、致以诚挚的问候

    菲律宾
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Philipp、

    很高兴您能够获得使用摄像头的基本命令。 以下是我的意见、您对此有疑问。 请随时提出任何问题、我们随时为您提供帮助!

    #1:例如,在 networkRx 用例中,链为:NullSource -> Decode -> Display。
    我是否需要用我自己的 comlete new Link 替换 NullSource、在这里打开套接字? 如果没有其他捕获源、这是否可能实现?

    [PYJ]您无需替换 NullSource 链接、只需在链接中添加对 UDP 的支持即可。 如果您查找空源支持的所有数据类型、则可以支持文件读取、网络、内存读取等 只需添加 UDP 支持即可。 可以是 NULLSRC_LINK_DATA_RX_MODE_UDP、可以定义。 然后在此数据类型下添加所有 UDP 捕获代码。 您可以采用与 TCP 案例相同的方法。

    #2:您还说我需要为 UDP 接收创建一个链路。 根据#1的理解、我应该创建一个新链接来替换 NullSourceLink。  
    其中包括:
    -通过 TCP 创建套接字并发送流请求,例如 mySocketSourceLinkCreate()
    -在 mySocketSourceLink...()的其他部分内接收 UDP 信号?

    [PYJ]是的、无需创建新链接、如前所述、也无需删除 TCP。 只需添加新的数据类型、您就可以将其用于零源链接中的 UDP 相关开发

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Prasad、您好!

    感谢您的回复!

    我刚刚实现了自己的链接、它是 NullSrcLink 的相同副本。 并在 NetworkRxDecDisplay 用例中使用它。 我只能独立于 NullSrcLink 工作、因此更改不会影响工作用例。

    现在、我将实施您的建议。

    但 NetworkRxDecDisplay-Usecase 确实与 Host Network_TX 工具通信、并与幻数0x1234ABCDU 交换有关图片大小的信息以及一些 NetworkRxCmdHeader。

    我的摄像机不会发送任何此类数据、因此我认为我需要做一些更多的更改、而不仅仅是添加新的数据类型。

    我保持打开状态、并使用新结果进行回复。

    再次感谢您的支持!

    此致、Philipp
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!  

    我最终设法使所有的东西都运行起来。

    正如您所说、我实施了新的数据类型并进行了一些其他更改。 现在工作正常。

    现在、我需要弄清楚一些性能问题。

    感谢您的帮助! 我真的很感谢

    此致  

    菲律宾