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

本文详细描述了IT项目中配置参数的解析与响应过程,涉及cJSON库、HTTP请求/响应机制,以及yaml文件乱码问题的解决。还包括了整体界面的实现和交互效果,以及HTML相关技术如ASP和GoForm的应用.
摘要由CSDN通过智能技术生成

目录

一、配置参数解析与响应

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篇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值