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.

[参考译文] Starterware/CC3220:将多播套接字从 CC3100/CC3200移植到 CC3120/CC3220

Guru**** 2541540 points
Other Parts Discussed in Thread: CC3100, CC3200, CC3120

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/600238/starterware-cc3220-porting-multicasting-sockets-from-cc3100-cc3200-to-cc3120-cc3220

器件型号:CC3220

工具/软件:Starterware

尊敬的支持:

我正在将以前的 CC3100/CC3200应用移植到更新的 CC3120/CC3220、并运行到多路广播问题中。  我之前使用了以下内容:

SlSockIpMreq mreq;

(笑声)

memset(&mreq, 0, sizeof( SlSockIpsReq ));
mreq.IMR_interface.s_addr = sl_Htonl (INADDR_ANY);
mreq.IMR_multiaddr.s_addr = sl_Htonl (IPAddress);

//进行成员资格呼叫
if (setsockopt (MulticastInfoPtr -> RemoteSocket、IPPROTO_IP、IP_Add_Membership、&mreq、sizeof (SockIpMreq))=-1)

  返回空;

但现在使用最新的 SDK 进行构建、以下方面出现了故障:

"C:/Projects/ccsv7/demo/common/multicast_utils_cc3100.c、第104行:错误#20:标识符"SlSockIpReq"未定义

您能告诉我这只是为了改变为一个不同的名称结构、还是为了使用多播套接字创建和设置选项、我需要遵循一些不同的方法吗?  或者将我指向文档中的某个地方、以解决此问题。  我以前能够在以前的 SDK 中找到它、但在较新的 SDK 的文档部分中看不到它。  

BTW -您能告诉我、在这个全新的 SDK v1.30.01.03中、programrs_guide.html "CC32XX Simplelink 主机驱动程序"等效项在哪里?

谢谢、
Tim

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

    尝试将"SlSockIpsReq"替换为"SlSockIPMreq_t"。 在第1代和第2代之间对 simplelink 主机驱动程序进行了大量更改、许多 API 也发生了更改、许多结构和宏也进行了重新定义或重命名。 在 Gen2 SDK 的 docs/simplelink_mcu_sdk 文件夹中、应提供《SimpleLink Gen1至 Gen2 SDK 迁移指南》。 该文档介绍了对整个 SDK 所做的更改、而不仅仅是 simplelink 主机驱动程序。 您可能会发现附录一中的 simplelink 移植代码很有用 应将其用作必须重命名结构和定义的引用。 在您的代码示例中、在 setsockopt 调用中还有一些要重命名的内容。 具体而言、IPPROTO_IP 已重命名为 SL_IPPROTO_IP、IP_Add_Membership 已重命名为 SL_IP_Add_Membership。

    在 Gen2 SDK 中,可以在\docs\wifi host_driver_api\index.html 上访问主机驱动程序的文档。 希望这能帮助您完成移植工作。

    此致、

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

    嗨、Michael:

    感谢您的回答。  是的、我以前看过 这些文档、但发现它们对解决我的问题没有帮助。  我选择使用当前 SDK 中的 network_terminal 示例与路由器建立有效连接、然后将我的代码添加到工作项目中、而不是进行回移植并使用我的旧代码并使其与最新 SDK 配合使用。  不是我的首选路径、因为 network_terminal 示例过于复杂、但我能够使其全部正常工作。  现在、我尝试将我之前的例程零敲碎打地添加到一个正在工作的 CC3120和 CC3220项目中。  您的建议让我克服了这一障碍-谢谢。

    感谢您给我指出主机驱动程序文件-我没有意识到它、但我使用的浏览器阻止了内容。  现在、我正在访问正确的文件、并为浏览器授予访问权限 、这一点非常感谢您的帮助。

    Tim