多路温度采集控制系统(3)配置文件
2016-08-29 15:46
253 查看
嵌入式项目实践–多路温度采集控制系统(3)配置文件
本文档对应视频教程多路温度采集系统–配置文件配置文件使用
菜单程序会读取配置文件数据。char cmd[16];//命令数据缓冲区 load_dev(g_dev); while(1){
主控程序会读取与保存数据。
int init_sys(void) { printf("init system struct,LED flash.\n"); load_dev(g_dev); }
g_dev->update_time=cmd.dat; printf("update_time=%d\n",g_dev->update_time); save_dev(g_dev);
系统总体数据结构
因为是演示项目,系统功能设计很少,结构体就简单便于实现。后期大家可以实现更多功能,扩展这个结构体。struct st_sys{ int temp_max[DEF_MAX_CHANNEL]; //设置每路温度报警最大值 float temp_data[DEF_MAX_CHANNEL]; //每路温度 char status[DEF_MAX_CHANNEL]; //每路状态 char update_time; //网页刷新秒数 };
配置文件代码
配置文件头文件#ifndef __TC9000_H_
#define __TC9000_H_
#define CONFIG_FILE "tc9000.cfg" //配置文件名
#define ON 1
#define OFF 0
#define DEF_T_UP 70 //默认温度上限(C)
#define DEF_T_LOW 5 //默认温度下限(C)
#define DEF_U_TIME 5 //默认检测间隔时间(s)
#define DEF_MAX_CHANNEL 4 //采集的路数
//系统总体数据结构
struct st_sys{ int temp_max[DEF_MAX_CHANNEL]; //设置每路温度报警最大值 float temp_data[DEF_MAX_CHANNEL]; //每路温度 char status[DEF_MAX_CHANNEL]; //每路状态 char update_time; //网页刷新秒数 };
int make_default_config(struct st_sys * dev);
int save_dev(struct st_sys * dev);
int load_dev(struct st_sys * dev);
#endif
配置文件实现
#include <string.h> #include <stdio.h> #include "config.h" /*============================================ 函数名称:make_default_config 功能:创建系统的配置文件,第一次运行或配置文件不存在 参数:struct st_sys * dev 返回值:0 成功 -1失败 ============================================*/ int make_default_config(struct st_sys * dev) { int i; printf("Make default configuration.\n"); memset(dev,0,sizeof(struct st_sys)); for(i=0;i<DEF_MAX_CHANNEL;i++){ dev->temp_max[i] = DEF_T_UP; dev->temp_data[i] = 0; dev->status[i] = 0; } dev->update_time = DEF_U_TIME; return save_dev(dev); } /*============================================ 函数名称:save_dev 功能:保存系统的配置文件 参数:struct st_sys * dev 返回值:0 成功 -1失败 ============================================*/ int save_dev(struct st_sys * dev) { FILE * fp; if (NULL == (fp=fopen(CONFIG_FILE, "wb"))){ printf("Config file open null...\n"); return -1; } printf("\nSave system data!"); fwrite(dev, sizeof(*dev),1,fp); //write file fclose(fp); return 0; } /*============================================ 函数名称:load_dev 功能:创建系统的配置文件 参数:struct st_sys * dev 返回值:0 成功 -1失败 ============================================*/ int load_dev(struct st_sys * dev) { FILE * fp; memset(dev, 0, sizeof(*dev)); if (NULL == (fp=fopen(CONFIG_FILE, "rb"))){ printf("[load_dev]fopen null....\n"); return make_default_config(dev); } if ( sizeof(*dev) != fread(dev,1,sizeof(*dev),fp) ){ printf("[load_dev+]sizeof error...\n"); fclose(fp); return -1; } fclose(fp); return 0; }
相关文章推荐
- 基于arm的多路温度采集控制系统(3)配置文件
- 多路温度采集控制系统(1)项目介绍
- 基于arm的多路温度采集控制系统(1)项目介绍
- 多路温度采集控制系统(2)需求分析
- 多路温度采集控制系统(7)网络采集
- 多路温度采集控制系统(4)菜单界面
- 多路温度采集控制系统(5)进程通信
- 多路温度采集控制系统(8)网页界面
- 基于arm的多路温度采集控制系统(4)菜单界面
- 多路温度采集控制系统(6)串口采集
- 基于arm的多路温度采集控制系统(2)需求分析
- 利用CVS控制系统配置文件
- 基于QT4的智能温度采集控制系统
- Flume安装部署,采集方案配置文件编写案例,启动agent采集数据
- 基于DS18B20和LabVIEW的多路温度采集系统
- flume数据采集测试+编码问题+运行指令+文件配置
- Flume安装部署_采集方案配置文件编写案例_启动agent采集数据
- 基于QT4的智能温度采集控制系统
- 多路温度采集的实现(原理图+程序源代码)
- [Web-Harvest数据采集之一]WebHarvest基础-配置文件分析