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.

[参考译文] CCS/TIDA-010024:TIDA-010024数据发送

Guru**** 2589280 points
Other Parts Discussed in Thread: TIDA-010021

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

https://e2e.ti.com/support/tools/simulation-hardware-system-design-tools-group/sim-hw-system-design/f/simulation-hardware-system-design-tools-forum/774725/ccs-tida-010024-tida-010024-data-send

器件型号:TIDA-010024
主题中讨论的其他器件:TIDA-010021

工具/软件:Code Composer Studio

您好!  

我想问有关 TIDA-010021中的数据传输和接收部件的问题。 我尝试将消息传输到6LoWPAN 网络中的特定节点。 我在这里尝试了 readmeter()部分,但我不能弄清楚它。 例如、我的6LoWPAN 网络中有100个节点。 我希望发送消息节点57或从中接收消息。 我该怎么做?  我可以使用哪个部分来访问节点、 ID 或 IP 地址?  

此外,轮询和推送示例之间有何区别? 我需要创建网状6LoWPAN 网络。 哪一个更有效的轮询或推送?

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

    您可以将数据发送到网络中的特定节点。 您可以在 app_task 中的 app_tx_data 事件的处理例程中找到发送数据的示例。 您需要知道目标节点的目标 IP 地址。

    设计指南介绍了轮询和推送示例之间的区别、如下所示。

    "对于 UDP 轮询示例、终端节点仅在从根节点接收轮询消息时发送 UDP 数据。 此示例在密集网络中很受欢迎、因为无论网络规模大小如何、它都可以有效地控制网络流量、而且还会产生轮询开销。 对于 UDP 推送示例、
    终端节点只要有要发送的数据就会发送 UDP 数据。 与基于 UDP 轮询的方法相比、此技术不需要轮询开销、而是增加密集网络中终端节点传输之间的冲突概率。"

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

    感谢您的回复。 我尝试过它、但我无法确定它、我应该在哪里写入代码?   APP_TASK_DATA 如何 发送数据? 此参考设计的代码对我来说太复杂了。您能给我举个例子吗?

    此致

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

    Yon 可以在 app_task_node.c 中找到一些示例代码行

    以下 API 用于将数据从应用程序发送到 UDP。
    uip_udp_packet_send_post (&udp_context.udp_socket、pmsg、pmsg->size、&dst->addr、UIP_NTOHS (dst->port));

    填写 UDP 上下文信息(包括 IPv6地址和端口号...)的示例 可以在以下代码中找到 msg 和 msg。

    无效
    udp_event_handler (udp_context_t * ctx)

    char * appdata;
    #if (POLL_APP)
    udp_address_t 远程;
    #endif

    //复制接收到的数据、大小和 seqNo
    AppData=&(appRxFifo[appRxFifo_ReadIdx]。c[UIP_IPUDPH_LEN + UIP_LH_LEN]);
    //解析 seqno 和大小(基于 simple-udp-meter.h 中的应用程序数据格式)
    memcpy (&rcvd_seqno、appdata、sizeof (rcvd_seqno));
    memcpy (&rcvd_size、appdata + sizeof (rcvd_seqno)、sizeof (rcvd_size));

    #if (POLL_APP)
    //解析 src 地址
    uip_ipaddr_copy (&remote.addr、&app_uip_ip_buF->srcipaddr);
    remote.port = APP_UIP_UDP_BUF->SrcPort;

    sample_udp_echoback (ctx、&remote、putp_msg);
    #endif


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

    非常感谢您的回复。 这对我很有帮助。 我想问几个问题。

    我将一个数据发送到另一个 LaunchPad、就像这样

    ##############
    …………
    案例 APP_TX_DATA:

    #if (POLL_APP)
    #if 0
    //使用给定数量的测试节点完全形成网络后开始发送 UDP 数据
    if (!network_formed)

    if (uip_ds6_route_num_routes ()=NUM_TEST_Nodes)
    network_form=true;

    其他

    SAMPLE_UDP_POLL (putp_msg);

    其他

    if (cnt>5)

    SamplePollMsg_t testMsg;
    testMsg.seqno = 11;
    testMsg.txTimestamp[0]= 51;
    testMsg.txTimestamp[1]= 28;
    testMsg.size = 6;
    memcpy (testMsg.pollReq、"test"、4);
    sample_udp_poll (&testMsg);

    ##############

    我使用 launchpad (app_task_root.c)的根部分尝试发送"test"。 发送消息到节点部分时、它会被发送到节点部分。 我想得到响应。 app_task_node.c 中的哪个部分接收该消息,以及如何查找接收到的消息哪个变量? 是应用数据吗?

    我使用 memmem()来搜索文件中的数据,如:

    ####################
    三、会议的报告
    char *s = memmem (appdata、30、"test"、4);

    如果(s!= 0)


    sprintf (msg4、"test");

    UART_WRITE (handle、msg3、strlen (msg3));
    UART_WRITE (handle、msg4、strlen (msg4));




    ####################

    找到它的正确方法吗? 此外、我认为数据存储在 AppRxFifo 中。 如何访问数据?

    我非常需要你的帮助。 万分感谢。

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

    您好!  

    根节点和节点的轮询示例实现了您在此处提到的回波情况。 请查看终端节点如何接收数据的代码、将源 IP 交换到目标 IP、并将接收到的数据复制回显。 SAMPLE_UDP_echoback 函数实现回波过程。  

    为了调试您的特定实现、我建议您在 CCS 提供的调试模式下运行代码、并放置一些断点来验证您的代码是否正确执行。  

    此致、

    Wonsoo

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

    您好!

    我尝试使用 pmsg->pollReq 发送 char *数据、但它不起作用。 此应用程序能否发送 char *数据?

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

    发送任何类型的数据都没有限制。 您可能需要跟踪在 CCS 调试器中接收到的内容与发送的内容。

    此致、
    Wonsoo