ISP基本原理和实现(题外话之mongoose)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

最近正好有一个需求,需要在arm linux板子上起一个web server。本着轻巧的原则,在github上面找了一下,发现了mongoose这个软件。软件本身很小,就一个h文件,一个c文件,完全可以拿过来处理一下。如果只是配置类的处理,或者是stm32 mcu之类的软件,那么也可以使用这类库。

1、代码的地址

复制代码
https://github.com/cesanta/mongoose

2、准备main.cpp

本来mongoose.c和mongoose.h是一个库,没有main函数。所以需要自己准备一个main.cpp文件,这样就可以编译起来了,

复制代码
#include "mongoose.h"   // To build, run: cc main.c mongoose.c

// HTTP server event handler function
void ev_handler(struct mg_connection *c, int ev, void *ev_data) {
  if (ev == MG_EV_HTTP_MSG) {
    struct mg_http_message *hm = (struct mg_http_message *) ev_data;
    struct mg_http_serve_opts opts = { .root_dir = "./" };
    mg_http_serve_dir(c, hm, &opts);
  }
}

int main(void) {
  struct mg_mgr mgr;  // Declare event manager
  mg_mgr_init(&mgr);  // Initialise event manager
  mg_http_listen(&mgr, "http://0.0.0.0:8000", ev_handler, NULL);  // Setup listener
  for (;;) {          // Run an infinite event loop
    mg_mgr_poll(&mgr, 1000);
  }
  return 0;
}

3、编译方法

只需要mongoose.cpp和main.cpp,这样就可以编译起来了,

复制代码
 g++ main.cpp mongoose.c -g -o main

4、可执行文件执行

看到了main程序被生成之后,下面就可以开始执行了,如果输入./main,就可以看到这样的log内容,

复制代码
feixiaoxing@raspberrypi:~/Desktop/mongoose/mongoose-master $ ./main
5a5a09 3 mongoose.c:4381:               MG_IO_SIZE: 16384, TLS: none
5a5a09 3 mongoose.c:4298:               1 4 http://0.0.0.0:8000

5、测试web server

看到web server之后,如果pc和板子是用网线直连的话,就可以直接打开浏览器测试。比如,这样输入http地址,http://192.168.0.97:8000/

6、复杂的测试用例

**如果想做一点复杂的功能,又不想自己开发,那么可以直接参考tutorials下面的demo案例。**除了mongoose.c之外,还会借用src/下面一部分代码,具体case也会自己写代码,这样构成一个完整的功能,比如tutorials/webui/webui-rest应用。

tutorials/http/file-upload-html-form下面的文件上传窗口,是这样的,

7、后续的内容

至此mongoose已经用起来了,后面不管是做web,还是添加api接口,都是比较方便的。

相关推荐
嵌入式-老费8 天前
ISP基本原理和实现(AI-ISP的引入)
接口隔离原则
嵌入式-老费8 天前
ISP基本原理和实现(ISP的输入和输出)
接口隔离原则
嵌入式-老费10 天前
ISP基本原理和实现(算法举例分析)
接口隔离原则
嵌入式-老费11 天前
ISP基本原理和实现(添加自己的算法及测试)
接口隔离原则
大熊背11 天前
ISP基本框架及软硬件算法实现介绍目录
网络·接口隔离原则
嵌入式-老费11 天前
ISP基本原理和实现(代码流程)
fpga开发·接口隔离原则
嵌入式-老费11 天前
ISP基本原理和实现(isp中的反馈机制)
接口隔离原则
blueSatchel20 天前
STM32F4系列使用ISP下载后,导致芯片被读写保护,无法烧录程序
stm32·嵌入式硬件·接口隔离原则
__万波__23 天前
七大设计原则(二)--接口隔离原则ISP
接口隔离原则