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接口,都是比较方便的。

相关推荐
kyle~15 天前
ISP---RAW数据解析:从PixelFormat、Packed_Buffer到Bayer解码
数码相机·接口隔离原则
FLJwu15 天前
镜头模组与画质量产实战 03:运动相机 ISP 图像调校、杂光鬼影抑制与来料验收标准|20 年源头工厂量产经验
经验分享·数码相机·产品运营·接口隔离原则·相机
kyle~16 天前
ISP---RAW 成像的物理基础
计算机视觉·接口隔离原则·相机
kyle~16 天前
ISP--- RAW 图像 从传感器噪声模型到快门时序与频闪效应
人工智能·计算机视觉·接口隔离原则
PHP实战开发录17 天前
PHP接口参数没变为什么总是验签失败
php·开发·接口隔离原则
啊阿狸不会拉杆18 天前
《计算机网络-自顶向下方法》5.4 ISP之间的路由选择:BGP 读书笔记
网络·计算机网络·接口隔离原则
运维行者_20 天前
ISP 企业级带宽计费怎么做?网络流量计费的 6 大核心能力
运维·服务器·网络·数据库·支持向量机·接口隔离原则
AomanHao1 个月前
【ISP】sensor高亮灰度溢出及anti-bloomimg功能
接口隔离原则·isp·sensor
磐时信息技术1 个月前
磐时助力中科创达 ISP Tuning 项目通过 ASPICE L2 评估
接口隔离原则
PHP实战开发录1 个月前
微信小程序多环境配置混用排查记录
微信小程序·php·开发·接口隔离原则