本文檔對應視頻教程多路溫度采集系統(tǒng)–配置文件
創(chuàng)新互聯(lián)建站公司2013年成立,先為平安等服務建站,平安等地企業(yè),進行企業(yè)商務咨詢服務。為平安企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。
菜單程序會讀取配置文件數(shù)據(jù)。
char cmd[16];//命令數(shù)據(jù)緩沖區(qū) load_dev(g_dev); while(1){
主控程序會讀取與保存數(shù)據(jù)。
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);
因為是演示項目,系統(tǒng)功能設計很少,結(jié)構(gòu)體就簡單便于實現(xiàn)。后期大家可以實現(xiàn)更多功能,擴展這個結(jié)構(gòu)體。
struct st_sys{ int temp_max[DEF_MAX_CHANNEL]; //設置每路溫度報警最大值 float temp_data[DEF_MAX_CHANNEL]; //每路溫度 char status[DEF_MAX_CHANNEL]; //每路狀態(tài) char update_time; //網(wǎng)頁刷新秒數(shù) };
配置文件頭文件
#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 //采集的路數(shù) //系統(tǒng)總體數(shù)據(jù)結(jié)構(gòu) struct st_sys{ int temp_max[DEF_MAX_CHANNEL]; //設置每路溫度報警最大值 float temp_data[DEF_MAX_CHANNEL]; //每路溫度 char status[DEF_MAX_CHANNEL]; //每路狀態(tài) char update_time; //網(wǎng)頁刷新秒數(shù) }; int make_default_config(struct st_sys * dev); int save_dev(struct st_sys * dev); int load_dev(struct st_sys * dev); #endif
配置文件實現(xiàn)
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); } /*============================================ 函數(shù)名稱:save_dev 功能:保存系統(tǒng)的配置文件 參數(shù):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; } /*============================================ 函數(shù)名稱:load_dev 功能:創(chuàng)建系統(tǒng)的配置文件 參數(shù):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的多路溫度采集控制系統(tǒng)(3)配置文件
當前URL:http://jinyejixie.com/article0/jooooo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、網(wǎng)站導航、用戶體驗、域名注冊、商城網(wǎng)站、電子商務
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)