请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:LAUNCHXL-CC3235SF Thread 中讨论的其他器件:CC3235SF
工具与软件:
大家好、过去我问过一个问题、是否可以使用 CC3235SF 实现 TCP、看到这是可能的、我开始编写代码。
我已经研究了关于 BSD 套接字的 IT 文档、并实现了如下所示的代码、但SimpleLinkNetAppEventHandler
函数字段中有一个错误、允许我验证它是否成功连接到网络。
在本例中、错误位于注释#3:SDK 版本7.10.0.13 */第24行的事件处理程序中。
其中编译器显示"没有Event
在中命名的成员SlNetAppEvent_t
"
#include <ti/drivers/net/wifi/simplelink.h> #include <ti/net/slnetutils.h> #include <ti/display/Display.h> #include <string.h> /* Network Configuration */ #define SERVER_IP "192.168.1.50" #define SERVER_PORT 5000 #define WIFI_SSID "HELLO" #define WIFI_PASSWORD "qwertyuiop" Display_Handle display; /* 2. WiFi Credentials */ SlWlanSecParams_t wifiCredentials = { .Type = SL_WLAN_SEC_TYPE_WPA_WPA2, .Key = (signed char*)WIFI_PASSWORD, .KeyLen = 10 }; /* 3. Event Handlers for SDK version: 7.10.0.13 */ void SimpleLinkNetAppEventHandler(SlNetAppEvent_t *pNetAppEvent) { if(pNetAppEvent->SlNetAppEventData_u == SL_NETAPP_EVENT_IPV4_ACQUIRED) { Display_printf(display, 0, 0, "IP assigned successfully\n"); } } void SimpleLinkWlanEventHandler(SlWlanEvent_t *pWlanEvent) { // Minimum Handler Required } /* 5. WiFi Connection */ int connectToWiFi() { int ret; if((ret = sl_Start(SimpleLinkWlanEventHandler, SimpleLinkNetAppEventHandler, NULL))) { Display_printf(display, 0, 0, "sl_Start error: %d\n", ret); return -1; } if((ret = sl_WlanSetMode(ROLE_STA))) { Display_printf(display, 0, 0, "Error sl_WlanSetMode: %d\n", ret); return -1; } if((ret = sl_WlanConnect((signed char*)WIFI_SSID, strlen(WIFI_SSID), NULL, &wifiCredentials, 0))) { Display_printf(display, 0, 0, "Error sl_WlanConnect: %d\n", ret); return -1; } Display_printf(display, 0, 0, "Connected to %s\n", WIFI_SSID); return 0; } /* 6. TCP Client */ void tcpClientTask() { int sock; SlSockAddrIn_t addr; uint32_t ipAddr; char msg[] = "Hola desde CC3235SF"; sl_NetCfgInetAddr(SERVER_IP, &ipAddr); addr.sin_family = SL_AF_INET; addr.sin_port = sl_Htons(SERVER_PORT); addr.sin_addr.s_addr = ipAddr; if((sock = sl_Socket(SL_AF_INET, SL_SOCK_STREAM, 0)) < 0) { Display_printf(display, 0, 0, "Error socket: %d\n", sock); return; } if(sl_Connect(sock, (SlSockAddr_t*)&addr, sizeof(addr)) < 0) { Display_printf(display, 0, 0, "Error connect\n"); sl_Close(sock); return; } sl_Send(sock, msg, strlen(msg), 0); sl_Close(sock); } /* 7. Main */ void main() { display = Display_open(Display_Type_UART, NULL); if(connectToWiFi() == 0) { tcpClientTask(); } while(1); }
我希望在我还是学生的时候您能帮助我、我希望能够更好地了解这项技术。
顺便说一句, 如果他们发现其他的东西是错误的,请告诉 我,我会非常感激。