Thread 中讨论的其他器件:CC3235SF
工具与软件:
WIFI-HTTP 代码在 STA 模式下不起作用。 我将其置于 STA 模式。 设备获取 IP 地址。 例如、其地址为192.168.10.145。 我将已连接网络的 DNS 设置设置设置为192.168.10.1、但当我在浏览器中键入 mysimplelink.net 时、它无法连接到此地址。
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.
工具与软件:
WIFI-HTTP 代码在 STA 模式下不起作用。 我将其置于 STA 模式。 设备获取 IP 地址。 例如、其地址为192.168.10.145。 我将已连接网络的 DNS 设置设置设置为192.168.10.1、但当我在浏览器中键入 mysimplelink.net 时、它无法连接到此地址。
您好!
否 在 STA 模式下、它无法通过这种方式工作。 CC32xx 无法影响其他 DNS 服务器。 这不是 CC32xx 的问题、但它来自于 TCP/IP 网络和 DNS 的工作原理。 在 STA 模式下、您可以将 mDNS 与.local 地址一起使用、但客户端计算机需要支持 mDNS。 Windows、Linux、Android 和 iOS 采用不同的 mDNS 方法。 这意味着不存在普遍做法。
1月
大家好、我的问题实际上就是这个。 您知道现成的 WIFI-HTTP 代码、对吧? 在该代码中、mysimplelink.net 会连接到地址、并且可以执行许多操作。
问题是代码在 AP 模式下非常成功地运行。 但当我将代码置于 STA 模式时、我在浏览器中键入 mysimplelink.net 地址时将无法连接。 键入设备收到的 IP 地址时可以进行连接。 造成此问题的原因是什么以及我实际要寻找的解决方案是什么
代码:
void * httpserverThread (void * pvParameters)
{
mq_attr 属性;
int32_t msgqRetVal;
int32_t retc = 0;
pthread_t spawn_thread =(pthread_t) NULL;
pthread_attr_t pAttrs_spawn;
结构 sched_param priParam;
spi_init();
/* NWP günlüğü*/
MAP_PinTypeUART (PIN_62、PIN_MODE_1);
/*为 UART 输出配置显示模块*/
display_init();
Display = Display_open (Display_Type_、SNLULL);
if (display == NULL){
/*无法打开显示模块*/
while (1);
}
/*使用 CC3x20接口初始化 SlNetSock 层*/
/*我们正在使用优先级5 */
SlNetIF_init (0);
SlNetIF_ADD (SLNETIF_ID_1、"CC32xx"、(const If_Config_*表皮357)&SlNetIfConfigWifi、/* PRIORITY*/ 5);
SlNetSock_init (0);
SlNetUtil_init (0);
/*创建 sl_Task */
pthread_attr_init (&pAttrs_spawn);
priparam.sched_priority = spawn_task_priority;
retc = pthread_attr_setschedparam (&pAttrs_spawn、&priParam);
retc |= pthread_attr_setstacksize (&pAttrs_spawn、TASKSTACKSIZE);
retc |= pthread_attr_setdetachstate (&pAttrs_spawn、pthread_create_detached);
retc = pthread_create (&spawn_thread、&pAttrs_spawn、sl_Task、NULL);
如果(Retc < 0)
{
/*处理错误*/
Display_printf (display、0、0、"[HTTP 服务器任务]无法创建 SimpleLink 任务");
while (1);
}
Retc = sl_Start (0、0、0);
如果(Retc < 0)
{
/*处理错误*/
Display_printf (display、0、0、"[HTTP 服务器任务] sl_Start failed");
while (1);
}
setScanPolicy();
/*将设备信息输出到 UART 终端*/
DisplayBanner (application_name、application_version);
Retc = SL_Stop (SL_STOP_TIMEOUT);
如果(Retc < 0)
{
/*处理错误*/
Display_printf (display、0、0、"[HTTP 服务器任务] sl_Stop failed");
while (1);
}
/*关闭红色 LED */
GPIO_WRITE (CONFIG_GPIO_LED_0、CONFIG_GPIO_LED_OFF);
/*重置机器的状态*/
network_if_ResetMCUStateMachine();
/*启动驱动程序*/
// retc = Network_if_InitDriver (ROLE_AP);
Retc = Network_IF_InitDriver (ROLE_STA);
如果(Retc < 0){
Display_printf (display、0、0、"[HTTP 服务器任务]未能启动 SimpleLink 设备"、retc);
}
//将器件设置为在 STA 模式下使用 DHCP 模式
Int ret = SL_NetCfgSet (SL_Netcfg_IPV4_STA_ADDR_MODE、SL_Netcfg_ADDR_DHCP、0、0);
如果(ret < 0){
display_printf (display、0、0、"Failed to set DHCP mode");
while (1);
}
//连接至 Wi-Fi (STA 模式)
SlWlanSecParams_t secParams ={0};
secParams。 KEY =(signed char *) security_key;
secParams。 KeyLen = strlen (SECURITY_KEY);
secParams。 类型= SECURITY_TYPE;
Retc = Network_IF_ConnectAP (SSID_NAME、secParams);
如果(Retc < 0){
Display_printf (display、0、0、"[HTTP 服务器任务]未能连接到 AP");
while (1);
}
//等待 IP 获取、然后再启动 HTTP 服务器
如果(IS_IP_ACQUIRED (g_ulStatus)){
display_printf (display、0、0、"[HTTP 服务器任务] ip acquided、starting HTTP server");
//检索和打印 SSID (网络名称)
display_printf (display、0、0、"Connected to network:%s"、g_ucConnectionSSID);
//检索 IP 地址
unsigned long ipaddr、subMask、gateway、DNS;
int32_t retc = Network_if_IpConfigGet (&ipaddr、&subMask、&gateway、&DNS);
如果(Retc < 0){
Display_printf (display、0、0、"Failed to get IP configuration");
其他{
//打印 IP 地址
Display_printf (DISPLAY、0、0、"IP Address:%d.%d.%d.%d"、
SL_IPV4_BYTE (ipaddr、3)、SL_IPV4_BYTE (ipaddr、2)、SL_IPV4_BYTE (ipaddr、 1)、SL_IPV4_BYTE (ipaddr、0));
if (DNS != 0 && DNS != 0xFFFFFFFFF){//确保有效的 DNS
Display_printf (DISPLAY、0、0、"DNS 地址:%d.%d.%d.%d"、
SL_IPV4_BYTE (DNS、3)、SL_IPV4_BYTE (DNS、2)、SL_IPV4_BYTE (DNS、 1)、SL_IPV4_BYTE (DNS、0));
其他{
Display_printf (DISPLAY、0、0、"DNS 地址不可用或无效");
}
// IP 获取后启动 HTTP 服务器
ConfigureHttpServer();
其他{
Display_printf (display、0、0、"[HTTP 服务器任务]正在等待 IP 地址...");
while (! IS_IP_ACQUIRED (g_ulStatus){
usleep (1000);//等待获取 IP
}
//检索和打印 SSID (网络名称)
display_printf (display、0、0、"Connected to network:%s"、g_ucConnectionSSID);
//检索 IP 地址
unsigned long ipaddr、subMask、gateway、DNS;
int32_t retc = Network_if_IpConfigGet (&ipaddr、&subMask、&gateway、&DNS);
如果(Retc < 0){
Display_printf (display、0、0、"Failed to get IP configuration");
其他{
//打印 IP 地址
Display_printf (DISPLAY、0、0、"IP Address:%d.%d.%d.%d"、
SL_IPV4_BYTE (ipaddr、3)、SL_IPV4_BYTE (ipaddr、2)、SL_IPV4_BYTE (ipaddr、 1)、SL_IPV4_BYTE (ipaddr、0));
//打印 DNS 地址
if (DNS != 0 && DNS != 0xFFFFFFFFF){//确保有效的 DNS
Display_printf (DISPLAY、0、0、"DNS 地址:%d.%d.%d.%d"、
SL_IPV4_BYTE (DNS、3)、SL_IPV4_BYTE (DNS、2)、SL_IPV4_BYTE (DNS、 1)、SL_IPV4_BYTE (DNS、0));
其他{
Display_printf (DISPLAY、0、0、"DNS 地址不可用或无效");
}
// IP 获取后启动 HTTP 服务器
ConfigureHttpServer();
}
如果(Retc < 0)
{
Display_printf (display、0、0、"[HTTP 服务器任务]未能启动 SimpleLink 设备"、retc);
}
/*初始化 http 消息的邮箱*/
ATTR.MQ_maxmsg = 1;/*队列大小*/
attr.mq_msgsize = sizeof (SlNetAppRequest_t*);/*消息的大小*/
httpserverMPuet = mq_open ("httpserver msg q"、O_creat、0、&attr);
if (httpserverQueue == NULL)
{
display_printf (display、0、0、"[HTTP 服务器任务]无法创建 msg 队列");
while (1);
}
Retc = ConfigureHttpServer();
如果(Retc < 0)
{
/*处理错误*/
Display_printf (display、0、0、"[HTTP 服务器任务]配置 HTTP 服务器失败");
while (1);
}
//开始时间同步
initHttpserverDB();
您好!
这来自于计算机网络的基本工作原理。 CC32xx 器件或其他网络器件无法执行此操作。
网络中 DNS 服务器的工作方式和配置方式取决于网络基础结构。 有时 DHCP 服务器配置为使用 DHCP 主机名(选项12)作为 DNS 服务器的主机名。 例如、如果客户端主机名是"my_CC3235"、则基础设施可以创建类似"my_CC3235.xxxxx"的 DNS 记录。 但这取决于您的基础设施、而不是 CC32xx。
1月
在 AP 模式下键入 mysimplelink.net/example.html 时、html 页面随即打开并能正常工作。 我无法在 sta 模式下执行相同的操作。 当我 example.html 在 STA 模式下键入192.168.10.145/STA 时、将会打开 html 页面。 我不明白我在哪里出了问题。 实际上、代码显示它在 sta 模式下工作。 唯一的问题是我想用这种方式访问 html 页面 mysimplelink.net/example.html 而不输入 IP 地址
您好!
解决此问题的方法是根据网络基础设施的设置、而不是 CC32xx 端。 CC32xx 的任何代码行都无法完全解决此问题。 唯一可以尝试使用的方法是使用 mDNS 并解析地址 xxx.local。 但这在许多情况下不起作用。
SWRU455第10章介绍了 CC32xx 的 mDNS 功能。
1月
您好!
HTTP 只是 TCP/IP 之上的协议。 这意味着对于 HTTP、您使用的是 TCP/IP。
TI 关心客户的问题。 但是你在要求解决目前没有解决方案的事情。 不仅是 TI 的制造商、也是其他制造商的制造商。
请回答我的问题。 您购买 IP 摄像机并将其连接到网络。 IP 摄像机使用 DHCP。 您要打开此摄像机的网页。 如何才能做到这一点? 如何确定 IP 摄像机的 IP 地址?
1月
您好;
首先,没有任何规则,每个人都将有你的经验或知识。 因此、这里有一个刚开始与 TI 合作的人。 你给解决方案的建议,就像你面前的人已经掌握了一切。
我不希望有什么东西不存在。 我不认为这种情况没有解决办法。 因为当您在 Web 浏览器中键入设备接收到的 IP 地址时、系统将正常工作。 但是,当你尝试连接域名时,系统不工作,我认为没有解决这个问题的办法。
你给我提供了非常广泛的建议。 然而,我不是一个知道这里一切的人。 如果我是一个知道一切的人,我不会问任何问题。
因此、我希望您能更具体地回答问题、并通过代码或具体示例回答问题。 当然,你没有义务这样做。
您好!
我认为,如果你想开发网络(WiFi)设备是强制性的,至少有基本的知识如何计算机网络工作。
我说过。 你可以尝试 mDNS、也许它能在你的情况下正常工作。 或者、您可以创建本机应用程序(适用于 Windows、Android、iOS)、该应用程序可以在网络上找到您的设备、并在使用许多网络设备制造商时打开设备网页。 或者、如果您的设备有 LCD 显示屏、则在 LCD 上显示 IP 地址或使用 IP 地址显示二维码。 但是、正如我多次说过的、当器件基于 DNS 连接到网络时、没有标准和通用的解决方案。 如果你不相信我,只是找到一些不同的网络设备的手册,并做你自己的研究。
1月
您好!
在 AP 模式下、由 CC32xx 的 DNS 服务器提供服务。 但在 STA 模式下、您的网络中使用的是 DNS 服务器。 而且您的 DNS 服务器对您的 CC32xx 器件一无所知。 某些 DHCP 服务器可以通过使用 DHCP 时 CC32xx 报告的主机名(CC32xx 设置中的现场 URN)在您的网络上配置 DNS 服务器。 但这取决于您的网络基础设施。
1月