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/CC3220:持续的 mDNS 广播

Guru**** 2558250 points
Other Parts Discussed in Thread: CC3220SF

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/760306/rtos-cc3220-continuesly-mdns-advertising

器件型号:CC3220

工具/软件:TI-RTOS

大家好、

我看到 mDNS 广播在几秒钟后停止、电路板不响应查询。 是否有办法开始持续的 mDNS 广播?

我使用以下 API 开始广播:

SL_NetAppMDNSRegisterService (
(const signed char *)"me_test-xx._tcp.local"、
strlen ("me_test-xx._tcp.local")、
(const signed char *)"aaa=1;BBB=hello;"、
strlen ("aaa=1;BBB=hello;")、
2525、
10、
SL_NetApp_MDNS_IPV4_ONLY 服务
); 

对于另一个板、我使用以下 API 执行继续查询:

sl_NetAppSet(.
SL_NetApp_MDNS_ID、
SL_NetApp_MDNS_CONT_QUEST_OPT、
(unsigned char) strlen ((const char *)"_test-xx._tcp.local")、
(const unsigned char *)"_test-xx._tcp.local"
); 

我还尝试在开始广播之前使用以下代码设置计时:

SlNetAppServiceAdvertiseTimingParameters_t 时序;

Timing.t = 100; //初始广播周期(100个节拍= 1秒)
Timing.p=1; //重复次数
Timing.k = 1; //伸缩系数
正时。\n 伸缩间隔= 1; //宣布重传间隔<--这是什么?
时序最大间隔=(0xFFFFFFFF);//宣布最大周期间隔 <--这是什么?
time.max_time = 3; //宣布最长时间 <--这是什么?

RET = sl_NetAppSet (
SL_NetApp_MDNS_ID、
SL_NetApp_MDNS_Timing_Params_opt、
sizeof (时序)、
(const unsigned char *)(&Timing)
); 

但我不明白这些时序参数意味着什么、有人能更好地解释一下吗? 我可以看到编程人员指南(swru455e)第9章、但它不能解决我的问题。

此致、Lorenzo

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

    您能否共享显示设备停止广播的网络捕获? 您是否在应用中使用长睡眠间隔功能?

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

    您好 Benjamin、

    我正在使用 ti 演示"network_terminal_CC3220SF_LAUNCHXL_tirtos_ccs"。  在这里、我更改了用于注册新 mDNS 服务的 API 调用、并添加了用于设置时序参数的 API 调用。

    如果要检查网络上传输的所有数据包、可以对下面所附的完整 Wireshark 捕获进行初始化:

    e2e.ti.com/.../Wireshark_5F00_advertising_5F00_capture_5F00_pcapng.zip

    我没有收到关于 mdns 的任何其他信息。

    此致、Lorenzo

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

    请增加 max_time 参数以延长广播时间。

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

    您好 Benjamin、

    如果我增加 max_time 参数,广播只会在更多时间后停止,是否有一个特殊值设置无限持续时间(-1,or 0,...)?

    您能否解释以下参数:

    重传间隔,

    Maxinterval、

    MAX_TIME  

    在结构 SlNetAppServiceAdvertiseTimingParameters_t ?中 及其测量单位?

    此致

    Lorenzo

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

    尝试将 max_time 参数设置为0xFF 以允许广播永久继续。

    让我们使用网络处理器指南中的特定示例。 对于周期 T、重复 P 和增加间隔(伸缩)因子 K=2、变速器应为:

    1) 1)广播 P 次
    2)等待 T 节拍(100节拍= 1秒)
    3) 3)广播 P 次
    4) 4)等待4 * T 个节拍
    5) 5)广播 P 次
    6)等待16*T
    7)等等

    重新传输间隔(重新发送间隔)将是重复通知消息之间的节拍数(根据 P 值发送)。

    Maxinterval 是可伸缩计算期间 X*T 可以达到的最大值。 max_time 值是整个宣布周期的实际限制。 达到 max_time 后、通知应停止、直至发出查询或更改配置。

    t、RetransInterval 和 Maxinterval 均以节拍为单位。 max_time 以秒为单位。

    最棒的
    本·M