前言
嵌入式软件需要配置很多寄存器,那么我们不通过串口怎么去获取寄存器值呢,现设计一种网络获取寄存器值的接口,通过linux下位机返回给qt开发的上位机,然后通过上位机显示给用户。
一、tcp协议
网络协议可分为网络接口驱动(物理层 数据链路层)网络互连层(路由层)传输层(tcp ip协议)应用层(ftp Linux应用软件) socket是将tcp封装好的接口,是应用层与传输层通讯的接口。网络协议其实是解包协议,每层都会给数据封装包头。发是从上往下封装,收是从下往上。在网络协议的支持下,我们通过上位机发指令下位机响应的办法将寄存器值传给上位机。
socket之间门铃握手
二、方法一:配置文件实现功能
#include <stdio.h>
#include <string.h>
int main()
{
FILE *file = fopen("1.txt", "r");
if(file == NULL)
{
printf("open error!\n");
return 0;
}
FILE *fp = fopen("./2.txt", "w");
char buf[1024] = {0};
fread(buf, 1024, 1, file);
fwrite(buf, strlen(buf), 1, fp);
fclose(file);
fclose(fp);
remove("1.txt");
return 0;
}
其实主要想法就是将寄存器值存在配置文件1.txt里,然后将1.txt文件返给上位机。当命令调用完毕将文件删除。
总结
方法一是作者觉得可靠的方式,还有通过网络进程去通讯返回寄存器值的方式,经过验证后发帖子。代码不会提供源码,只提供作者思路。方法一已在作者公司平台验证后发布。