利用国产库libhv动手写一个web_server界面(二)

时间:2024-04-16 12:04:32

目录

一、配置参数解析与响应

1.读取参数

2.设置参数

3.恢复默认参数

二、整体的界面实现以及交互效果

三、关于yaml文件乱码问题解决

四、参考文章


一、配置参数解析与响应

使用cJSON解析库,解析接收到的JSON数据字段,区别接收到的配置参数是请求设置配置参数信息或成功获取相关配置参数的信息。例如:发送JSON格式字符串:{"request_purpose":"set","param_name":"can_param","param_data":{"can_id":"0x102","baud_rate":"500k"}}。request_purpose:字段表示请求目的,set:字段表示请求设置配置参数;param_name: 字段表示设置的配置参数类型名称,can_param:表示设置的配置参数类型名称为CAN配置参数;param_data:{can_id:0x102,baud_rate:500k}字段表示设置的数据内容。则接收到如下JSON格式字符串:{"Message":"SUCCEED"}字段表示为设置配置CAN配置参数成功。具体的web server交互接口使用如下。

1.读取参数

   接口形式

localhost:5555

参数

cJSON *config_json[4] = {NULL, NULL, NULL, NULL};

说明

该接口用于访问HTTP的登录界面信息,只有正确输入登录用户名和密码才能正确进入界面,登录名为:admin,密码为:5166。

下发

           // 发送获取数据的命令

send_cjson_data("get", "internet_param", ask_config_json, 0);

send_cjson_data("get", "service_modules_param", ask_config_json, 1);

 send_cjson_data("get", "bus485_param", ask_config_json, 2);

 send_cjson_data("get", "can_param", ask_config_json, 3);

 send_4json(ask_config_json);

回复

对应参数的JSON格式字符串,通过接口函数解析并进行界面展示

2.设置参数

接口形式

localhost:7000

参数

cJSON *ask_config_json[4] = {NULL, NULL, NULL, NULL};

说明

该接口用于设置功能,发送用户在界面配置的相关信息,以便修改存储在paramter_config.yaml数据文件里网络的配置参数,后台程序会先检查设置的ip参数是否符合要求,确认设置的信息符合要求后在对数据进行封装通过ZMQ_REQ发送出去。

下发

// 检查ip是否符合设置的要求

check_config_ip(conn, &config);

//将用户修改的信息全部封装返回给后端

cjson_net_config_data(&config);

cjson_ser_config_data(&config);

cjson_485_config_data(&config);

cjson_can_config_data(&config);

send_42json(config_json, 4);

回复

JSON格式的字符串Message:(NOEN(信息不完整)、SUCCEED(成功)、FAILURE(失败))

3.恢复默认参数

接口形式

localhost:7000

参数

cJSON *default_config_json[1] = {NULL};

说明

该接口用于恢复存储在paramter_config.yaml数据文件里服务器模块的配置参数,并进行相应的界面展示。

下发

send_cjson_data("set", "default_param", default_config_json, 0);

回复

JSON格式的字符串Message:(NOEN(信息不完整)、SUCCEED(成功)、FAILURE(失败))

// http请求/响应不同阶段,起始状态,解析/生成http请求/响应的第一行,解析/生成http请求行的阶段,状态行阶段,请求/响应头部的阶段,请求/响应头部结束状态,主体的阶段,请求/处理响应完成

二、整体的界面实现以及交互效果

三、关于yaml文件乱码问题解决

解决办法:因为html变了,在设置恢复默认参数时,设置的错误信息导致yaml文件乱码,因此在访问会出错。

四、参考文章

Html使用style的四种方法goahead(嵌入式Web服务器)之asp、goform篇