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.

[参考译文] LAUNCHXL-CC3235SF:NWP HTTP 服务器-当 HTTP 服务器接收到不是 ROM 或用户页面的资源的 HTTP GET 请求时

Guru**** 2540720 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/973349/launchxl-cc3235sf-nwp-http-server---when-the-http-server-receives-an-http-get-request-for-a-resource-which-is-not-a-rom-or-user-page

器件型号:LAUNCHXL-CC3235SF

我之前提到过这个主题(https://e2e.ti.com/support/wireless-connectivity/wifi/f/968/t/969662)、但现在我对 NWP 无法提供完全自定义页面的说法不是很满意。  NWP 程序员指南指出:

9.7.2获取处理
当 HTTP 服务器收到 HTTP GET HTTP 处理程序(如请求类型的前面部分所示)时。 处理程序函数必须是感兴趣的字段、并生成响应。

图9-11甚至显示了一个示例(请参阅下面的蓝色文本)。

那么、我想知道是否有人在没有 NWP 报告错误404的情况下使其正常工作?

#define RESPONSE_TEXT "要在浏览器中显示的示例文本"
void NetAppRequestHandler( slNetAppRequest_t *pNetAppRequest,

slNetAppResponse_t * pNetAppResponse)

   char * contentType ="text/html";
   unsigned char *pMetadata;
   unsigned char * pResponseText;
   
   pMetadata =(unsigned char*) malloc (128);
   pResponseText =(unsigned char*) malloc (sizeof (Response_text));
   if ((NULL =pMetadata)||(NULL =pResponseText))
   {
       /*分配错误*/
   }
   memcpy (pResponseText、RESPONSE_text、sizeof (RESPONSE_text));
   switch (pNetAppRequest->Type)
   {
       案例 SL_NetApp_Request_HTTP_Get:
       {
           pNetAppResponse->Status = SL_NetApp_HTTP_RESPONSE_200_OK;
           /*将内容类型 TLV 写入缓冲区*/
           pNetAppResponse->ResponseData.pMetadata = pMetadata;
           *pMetadata =
               (_u8) sl_netapp_request_metadata_type_http_content_type;
           pMetadata++;
           *(_U16 *) pMetadata =(_U16) strlen (contentType);
           pMetadata+=2;
           memcpy (pMetadata、contentType、strlen (contentType));
           pMetadata+=strlen (contentType);
           /*将内容长度 TLV 写入缓冲区*/
           pMetadata = sl_NetApp_Request_metadata_type_http_content_LEN;
           pMetadata++;
           *(_U16 *) pMetadata = 2;
           pMetadata+=2;
           *(_U16 *) pMetadata =(_U16) sizeof (RESPONSE_TEXT);
           pMetadata+=2;
           /*计算并写入元数据的总长度*/
           pNetAppResponse->ResponseData.MetadataLen =
               pMetadata - pNetAppResponse->ResponseData.pMetadata;
           /*写下响应的文本*/
           pNetAppResponse->ResponseData.PayloadLen = sizeof (RESPONSE_TEXT);
           pNetAppResponse->ResponseData.pPayload = pResponseText;
           pNetAppResponse->ResponseData.Flags = 0;
       }
       中断;
       默认值:
           /*将在此处收到开机自检/置入/删除请求。 */中断;
   }

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

    您好!

    当然、它可以正常工作。 我使用这种方法来生成自己的 json 和 xml 文件。

    1月

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

    感谢您的鼓励。  我只能工作了!  我的设计以本地 OTA 参考设计为基础。  由于整个 OTA 状态机是如此循环、因此我禁用了任务 localOtaTask。  在执行此操作时、我发现我需要在函数 linkLocalTask 中注释掉以下内容:

    SEM_WAIT (&LocalOtaTask_ControlBlock.localOtaConnDoneSignal);

    完成此操作后、我在浏览器上看到了我的简单 HTML 行。

    继续!