硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1729|回复: 18
收起左侧

[RL-TCPnet] webServer中的cgi交互问题

  [复制链接]

23

主题

211

回帖

280

积分

高级会员

积分
280
发表于 2022-9-3 18:27:00 | 显示全部楼层 |阅读模式
硬汉你好,最近在调试web server+ajax,使用的是你这边RTX全家桶的例程改的。
现在控件的输入和输出都安装例程改好了,工作正常,但是现在想实现一个功能:

在网页加载完毕后,发送一条指令,比如发送自定义字符串:“get_List”,单片机收到指令后,返回一个存储在flash中的数组,
现在通过xml_http.js文件中的函数实现发送
    var formAStateUpdate = new periodicObj("a_state.cgx", 0);
    function periodicUpdateAState() {
      updateMultiple(formAStateUpdate);
    }



单片机也确实可以正确收到来自浏览器的字符串“get_List”,但是单片机的接收函数是HTTP_CGI.c文件中的void cgi_process_data (U8 code, U8 *dat, U16 len)函数,
这个函数没有返回值,我该怎样从单片机里把需要返回的字符串发送给网页呢?谢谢。



回复

使用道具 举报

12

主题

176

回帖

212

积分

高级会员

积分
212
发表于 2022-9-3 21:51:16 | 显示全部楼层
除了硬汉出的文档,建议也看看官方的资料  https://www.keil.com/pack/doc/MW ... e.html#autotoc_md16
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
发表于 2022-9-4 02:23:03 | 显示全部楼层
能进入这个函数吗cgi_process_data

能进入就好解决。
回复

使用道具 举报

23

主题

211

回帖

280

积分

高级会员

积分
280
 楼主| 发表于 2022-9-4 21:29:47 | 显示全部楼层
本帖最后由 blackfire531 于 2022-9-4 21:45 编辑
eric2013 发表于 2022-9-4 02:23
能进入这个函数吗cgi_process_data

能进入就好解决。

可以,但是我在里边回复了我要发送的数组内容,网页没法解析。我看网页需要解析类似这样的数据:<text></text>,我想把一堆自定义数据给网页,用于动态添加表格。
回复

使用道具 举报

23

主题

211

回帖

280

积分

高级会员

积分
280
 楼主| 发表于 2022-9-4 21:30:02 | 显示全部楼层
gallop020142 发表于 2022-9-3 21:51
除了硬汉出的文档,建议也看看官方的资料  https://www.keil.com/pack/doc/MW/Network/html/_compact__secu ...

ok
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
发表于 2022-9-5 01:04:50 | 显示全部楼层
blackfire531 发表于 2022-9-4 21:29
可以,但是我在里边回复了我要发送的数组内容,网页没法解析。我看网页需要解析类似这样的数据:,我想把 ...

那就是反馈的数据格式问题了,之前我的例子里面有个IP列表功能,你在那个基础上修改就行。
回复

使用道具 举报

12

主题

176

回帖

212

积分

高级会员

积分
212
发表于 2022-9-5 08:49:14 | 显示全部楼层

如果是新版本的,web.c的生成方式最好按照官网的说明来自动生成:

1. 添加htm, cgi, jpg等文件到工程,设置 file type 为 image file ,特别需要注意的是 pg_footer.inc, pg_header.inc这两个文件添加时,默认不是 image file,如果不手动设置成 image file,那么子页面会出错!

https://developer.arm.com/docume ... -FCARM-with-uVision

2. 设置自动生成 web.c 文件(编译后自动生成 Auto_FcArm_Cmd.inp文件,如果网页出错,建议查看该文件)
https://www.keil.com/pack/doc/mw6/Network/html/nw_sw_utils.html

3. 编译完成后,跟手册类似,手动添加 web.c 至工程
回复

使用道具 举报

5

主题

179

回帖

194

积分

初级会员

积分
194
发表于 2022-9-5 08:55:48 | 显示全部楼层
在cgi_data_process 里直接调用tcp发送函数,发送你需要返回的html字符串
回复

使用道具 举报

23

主题

211

回帖

280

积分

高级会员

积分
280
 楼主| 发表于 2022-9-5 17:00:06 来自手机 | 显示全部楼层
soga238 发表于 2022-9-5 08:55
在cgi_data_process 里直接调用tcp发送函数,发送你需要返回的html字符串

用哪个函数?这个的所有参数都是隐藏的,找不到描述符啊
回复

使用道具 举报

23

主题

211

回帖

280

积分

高级会员

积分
280
 楼主| 发表于 2022-9-5 17:00:57 来自手机 | 显示全部楼层
eric2013 发表于 2022-9-4 02:23
能进入这个函数吗cgi_process_data

能进入就好解决。

这个函数没有返回值,该怎么调用发送呢?
回复

使用道具 举报

23

主题

211

回帖

280

积分

高级会员

积分
280
 楼主| 发表于 2022-9-6 10:02:40 来自手机 | 显示全部楼层
eric2013 发表于 2022-9-5 01:04
那就是反馈的数据格式问题了,之前我的例子里面有个IP列表功能,你在那个基础上修改就行。

例子没找到,能否提供一下地址?谢谢硬汉
回复

使用道具 举报

12

主题

176

回帖

212

积分

高级会员

积分
212
发表于 2022-9-7 14:15:03 | 显示全部楼层
blackfire531 发表于 2022-9-6 10:02
例子没找到,能否提供一下地址?谢谢硬汉

你可以试试官方的例子,差不多的
pack installer --> devices STM32H743VIHx --> Examples HTTP Server

MDK.rar

121.92 KB, 下载次数: 15

回复

使用道具 举报

23

主题

211

回帖

280

积分

高级会员

积分
280
 楼主| 发表于 2022-9-7 23:40:30 | 显示全部楼层
gallop020142 发表于 2022-9-7 14:15
你可以试试官方的例子,差不多的
pack installer --> devices STM32H743VIHx --> Examples HTTP Server
...

这个我看来,也是用定义好的cgi或者cgx发送的,不知道大哥有没有自定义一段信息发送的例程?
回复

使用道具 举报

12

主题

176

回帖

212

积分

高级会员

积分
212
发表于 2022-9-8 09:07:40 | 显示全部楼层
blackfire531 发表于 2022-9-7 23:40
这个我看来,也是用定义好的cgi或者cgx发送的,不知道大哥有没有自定义一段信息发送的例程?

我记得这些例子是这样的,
lcd: 网页 向 下位机发送字符串
tcp net: 下位机 向 网页 发送信息
详细的需要自己摸索了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
发表于 2022-9-8 11:41:38 | 显示全部楼层
blackfire531 发表于 2022-9-6 10:02
例子没找到,能否提供一下地址?谢谢硬汉

我的这个例子就是
【安富莱】F429开发板RTOS+emWin+FS+TCP/IP+USB+CAN+Modbus综合Demo已发布(2017-03-21)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=17330


image.png

image.png
回复

使用道具 举报

23

主题

211

回帖

280

积分

高级会员

积分
280
 楼主| 发表于 2022-9-8 22:38:28 | 显示全部楼层
eric2013 发表于 2022-9-8 11:41
我的这个例子就是
【安富莱】F429开发板RTOS+emWin+FS+TCP/IP+USB+CAN+Modbus综合Demo已发布(2017-03-2 ...

好的,我看一下,感谢硬汉
回复

使用道具 举报

0

主题

19

回帖

19

积分

新手上路

积分
19
发表于 2023-5-24 15:32:51 | 显示全部楼层
请问一下,网页操作的动作(例如输入用户名)与线程进行通信,除了使用CGI的方式以外,还有其他什么方式吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
发表于 2023-5-24 16:10:39 | 显示全部楼层
hijkstra 发表于 2023-5-24 15:32
请问一下,网页操作的动作(例如输入用户名)与线程进行通信,除了使用CGI的方式以外,还有其他什么方式吗 ...

芯片服务器端的接口函数,主要还是CGI
回复

使用道具 举报

0

主题

19

回帖

19

积分

新手上路

积分
19
发表于 2023-5-24 17:05:52 | 显示全部楼层
eric2013 发表于 2023-5-24 16:10
芯片服务器端的接口函数,主要还是CGI

好的,多谢啦
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-26 05:56 , Processed in 0.237853 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表