yick 发表于 2016-12-28 14:34:12

嵌入式 ARM 网络服务器怎么搭建?(或上位机怎样控制ARM板)

嵌入式 ARM 的网络服务器怎么搞,我是想把ARM板子搭建成网络服务器,并且客户端(Web)只需使用浏览器输入ARM的IP地址就可以动态浏览到电机的转速等什么的,现在有几个问题;
使用BOA

1.通过Web端将电机的调速参数以HTML的方式传到ARM的服务器上去,然后电机本身是一个线程在运行,这时候的怎样通过CGI来把这个数据传到电机运行的这个线程上去?
(或者,线程中电机运行的电机一些变量参数怎样通过CGI来放到ARM板上的网络服务器上去,才能使Web端调用BOA服务器并显示到浏览器上去)


2:BOA 服务器是干什么用的?

3:CGI 在这个服务器里是做什么的?

4:在浏览器的界面里,怎么给电机发送参数?

5:做这个服务器的流程是什么?一层一层的关系是什么?
这方面完全没有搞过,思路不是很清晰,求高手指点

albert.hu 发表于 2016-12-28 14:34:13

你电机所在的线程的进程应该是和CGI两个进程,需要做进程间通信,CGI将参数传递给电机的进程,然后读电机的转速。至于电机的线程如何获得数据,就是线程间的通信了。

如果想不停的读取电机转速,必须在页面上做刷新,不停的调用CGI去读,需要用jscript,ajax等等

也可以不用cgi的方式,自己做webserver

hyghyg1234 发表于 2016-12-28 14:58:08

为什么一定要让ARM去做服务器,电脑端做服务器不行吗?

ericdai 发表于 2016-12-28 15:15:59

不需要cgi 用appweb 或者goahead webserver和你的程序融为一体
或者使用openwrt luci模式

ericdai 发表于 2016-12-28 15:16:50

使用https://embedthis.com/appweb/
最简单

javenreal 发表于 2016-12-28 15:17:04

用裸机做过:
1,开一个TCP server监听80端口。
2,收到的数据分析,是什么页面,什么参数。然后生成要显示的页面,写入tcp返回给client
3,分析收到的参数,判断到要干什么动作,调用相应函数。

参数用get方式传递,只适合简单的页面,简单的事情。

youkebing 发表于 2016-12-28 15:21:48

我建议用golnag,但是需要是linux系统,在windows下就可以编译代码,而后放到合适位置就好,非常简单。

quzegang 发表于 2016-12-28 16:30:30

可以直接用php,配合linux系统

yick 发表于 2016-12-28 19:14:37

hyghyg1234 发表于 2016-12-28 14:58
为什么一定要让ARM去做服务器,电脑端做服务器不行吗?

因为工作需要吧,用电脑就体现不出ARM的作用了

hyghyg1234 发表于 2016-12-28 19:17:43

yick 发表于 2016-12-28 19:14
因为工作需要吧,用电脑就体现不出ARM的作用了

我之前也研究过arm做服务器,感觉太鸡肋了,不管是用linux或者WIN做服务器都很好搞,用STM32太麻烦了。

yick 发表于 2016-12-28 19:19:37

albert.hu 发表于 2016-12-28 15:04
你电机所在的线程的进程应该是和CGI两个进程,需要做进程间通信,CGI将参数传递给电机的进程,然后读电机的 ...

你说的对,关键就是CGI的进程和跑电机程序的进程的通信,我这样想的,先验证整体是不是可行,不用进程间通信,之家通国CGI的获取环境变量,通过环境变量来改变电机的转速,这个时候跑电机的程序会停一下么?(只是实验阶段)

albert.hu 发表于 2016-12-28 19:23:10

yick 发表于 2016-12-28 19:19
你说的对,关键就是CGI的进程和跑电机程序的进程的通信,我这样想的,先验证整体是不是可行,不用进程间 ...

你自己做个webserver就可以了,这方面网上应该有很多源码,就像路由器一样,简单的固定页面返回

yick 发表于 2016-12-28 19:59:38

ericdai 发表于 2016-12-28 15:16
使用https://embedthis.com/appweb/
最简单

网上有人用goahead,但是接触不多,就没关注

ericdai 发表于 2016-12-28 20:02:24

yick 发表于 2016-12-28 19:59
网上有人用goahead,但是接触不多,就没关注

比你自己做简单安全

ericdai 发表于 2016-12-28 20:27:40

你要用CGI其实也可以,但是实际上换不如goahead

zxq6 发表于 2016-12-28 20:49:20

根据个人经验,其实web开发起来不方便,只是使用方便。开发最方便的还是udp,就跟串口一样。

redroof 发表于 2016-12-28 21:00:39

youkebing 发表于 2016-12-28 15:21
我建议用golnag,但是需要是linux系统,在windows下就可以编译代码,而后放到合适位置就好,非常简单。 ...

go可以对arm的linux直接做交叉编译吗?

youkebing 发表于 2016-12-28 21:11:33

redroof 发表于 2016-12-28 21:00
go可以对arm的linux直接做交叉编译吗?

可以,在win上就可以交叉编译,网上有这样的介绍,我也实验过。

yick 发表于 2016-12-28 21:27:38

ericdai 发表于 2016-12-28 20:27
你要用CGI其实也可以,但是实际上换不如goahead

那我要好好看看了

justdomyself 发表于 2016-12-28 22:31:47

ericdai 发表于 2016-12-28 15:16
使用https://embedthis.com/appweb/
最简单

这东西怎么用的?

yick 发表于 2016-12-28 22:33:05

ericdai 发表于 2016-12-28 15:16
使用https://embedthis.com/appweb/
最简单

多谢,有时间研究一下

yick 发表于 2016-12-28 22:33:57

quzegang 发表于 2016-12-28 16:30
可以直接用php,配合linux系统

php不会,如果用的话,估计会走很多弯路i

ericdai 发表于 2016-12-29 07:59:00

justdomyself 发表于 2016-12-28 22:31
这东西怎么用的?

就是个c库 和你的程序一起编译

ericdai 发表于 2016-12-29 08:01:56

Embedding Appweb

When extending and embedding Appweb in your application or system, you have three options:

Use the existing Appweb main program and extend Appweb via a loadable module.
Use the existing Appweb main program and extend Appweb via the ESP web framework.
Link the Appweb HTTP library with your application main program.

s1j2h3 发表于 2016-12-29 09:33:29

要是有个详细的入门介绍就好了

dzmcs 发表于 2016-12-29 11:52:43

goahead很适合搞这个吧。

要是嫌移植和学习goahead麻烦,自己写个server也可以,监听某个端口,收到连接了处理http头部,实现基本的get post即可,post发过来的调速参数想怎么存储怎么存储,post和get就几个固定的url,都可以在程序里写死,get对应的几个url如果复杂就单独写成html文件,不复杂,改变不多也可以写到程序里。

yick 发表于 2016-12-29 21:37:01

javenreal 发表于 2016-12-28 15:17
用裸机做过:
1,开一个TCP server监听80端口。
2,收到的数据分析,是什么页面,什么参数。然后生成要显示 ...

对,暂时就先做些简单的事情

yick 发表于 2016-12-29 21:39:03

zxq6 发表于 2016-12-28 20:49
根据个人经验,其实web开发起来不方便,只是使用方便。开发最方便的还是udp,就跟串口一样。 ...

如果用UDP的话,就差太远了

span42 发表于 2016-12-29 22:06:31

libmicrohttp 实时数据json格式输出,前端页面ajax定时去请求

yick 发表于 2017-1-8 20:51:27

这个莫元怎么给别人

yick 发表于 2017-3-2 07:39:57

这个答案好多都是对的,但是悬赏只能给一位,不好分,不好意思啊。
页: [1]
查看完整版本: 嵌入式 ARM 网络服务器怎么搭建?(或上位机怎样控制ARM板)