⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 store.cpp

📁 串口可交换程序
💻 CPP
字号:
#include <graphics.h>
#include <stdio.h>
#include <stdlib.h>
#include "keydef.h"
#include "global.h"
#include "g_func.h"
#include "cursor.h"
#include "marker.h"
#include "display.h"
#include "scale.h"
#include "ch.h"
#include "xms.h"
#include "map.h"
#include "store.h"

const char*store[]={"存储调用","存储 >>","","","","","",""};
const char*store1[]={"存  储"," 存储1"," 存储2"," 存储3"," 存储4"," 存储5","更多存储>>","返  回"};
const char*store2[]={"更多存储"," 存储6"," 存储7"," 存储8"," 存储9"," 存储10","","返  回"};
//const char*recall1[]={"调  用"," 调用1"," 调用2"," 调用3"," 调用4"," 调用5","更多调用>>","返  回"};
//const char*recall2[]={"更多调用"," 调用6"," 调用7"," 调用8"," 调用9"," 调用10","","返  回"};

extern const char* store_file[];
extern MDAMAP* mda_map;
extern char aflag;
extern void StoreStatus();
extern char chss;
//extern BOOL recall_end;

void store_hardkey()
{
	rst_num_mem();
	_keyid=STORE;
//	if(_lst_strkey[ch_sel]==0)
		_softkeyid=-1;
//	else
//		_softkeyid=_lst_strkey[ch_sel];
	disp_menu12((char **)store,7);
	draw_smal_border(_softkeyid);
	digital_en=0;
	curs_flag=0;
	_softkeyid1=0;
	_softkeyid2=0;
//	refr_ln3();
	refr_store();
	vision();
	///add store last status to file
}
void StoreInfo()
{
	FILE* fp;
	if((fp=fopen("Store.inf","wb"))==NULL){
		return;
	}
	fwrite(&_store,sizeof(_STORE),1,fp);
	fclose(fp);
}
void Store(char mem_sel)
{
	CLR_LN4;
	FILE *fp_store;
	if((fp_store=fopen(store_file[mem_sel-1],"wb+"))==NULL)
	{
		Outchar12(35,462,"打不开此文件!",TEXTDIGITAL);
		return;
	}
	fwrite(&alternative,sizeof(int),1,fp_store);
	fwrite(&aflag,sizeof(char),1,fp_store);
	fwrite(&ch_sel,sizeof(int),1,fp_store);
	fwrite(&_freq,sizeof(_FREQ),2,fp_store);
	fwrite(&_power,sizeof(_POWER),2,fp_store);
	fwrite(&_sweep,sizeof(_SWEEP),2,fp_store);
	fwrite(&_chab,sizeof(_CHAB),2,fp_store);
	fwrite(&_scale,sizeof(_SCALE),2,fp_store);
	fwrite(&_disp,sizeof(_DISP),1,fp_store);
	fwrite(&_format,sizeof(_FORMAT),2,fp_store);
	fwrite(&_avg,sizeof(_AVG),2,fp_store);
	fwrite(&_marker,sizeof(_MARKER),2,fp_store);
	fwrite(&_status,sizeof(_STATUS),2,fp_store);
	fwrite(&_sweep,sizeof(_SWEEP),2,fp_store);
	fwrite(&_system,sizeof(_SYSTEM),1,fp_store);
	fwrite(&amp_on_off,sizeof(ON_OFF),1,fp_store);
	if(alternative==ON){
		fwrite(y_a,sizeof(int),_status[0].sweep_points,fp_store);
		fwrite(y_b,sizeof(int),_status[1].sweep_points,fp_store);
	}
	else if(chs==0)
		fwrite(y_a,sizeof(int),_status[0].sweep_points+1,fp_store);
	else if(chs==1)
		fwrite(y_b,sizeof(int),_status[1].sweep_points+1,fp_store);
	fclose(fp_store);
	_store.mem_info[mem_sel-1] = 1;
	StoreInfo();
	Outchar12(35,462,"存储调用:",TEXTFURLN);
	Outchar12(105,462,"存储结束!",TEXTDIGITAL);

}
/*int Recall(char mem_sel)
{
	if(_store.mem_info[mem_sel-1] == 0){
		CLR_LN4;
		Outchar12(35,462,"存储调用:",TEXTFURLN);
		Outchar12(105,462,"此存储器没有数据!",TEXTDIGITAL);
		return 0;
	}
	FILE *fp_store;
	if((fp_store=fopen(store_file[mem_sel-1],"rb+"))==NULL)
	{
		return -1;
	}
	fread(&alternative,sizeof(int),1,fp_store);
	fread(&aflag,sizeof(char),1,fp_store);
	fread(&ch_sel,sizeof(int),1,fp_store);
	fread(&_freq,sizeof(_FREQ),2,fp_store);
	fread(&_power,sizeof(_POWER),2,fp_store);
	fread(&_sweep,sizeof(_SWEEP),2,fp_store);
	fread(&_chab,sizeof(_CHAB),2,fp_store);
	fread(&_scale,sizeof(_SCALE),2,fp_store);
	fread(&_disp,sizeof(_DISP),1,fp_store);
	fread(&_format,sizeof(_FORMAT),2,fp_store);
	fread(&_avg,sizeof(_AVG),2,fp_store);
	fread(&_marker,sizeof(_MARKER),2,fp_store);
	fread(&_status,sizeof(_STATUS),2,fp_store);
	fread(&_sweep,sizeof(_SWEEP),2,fp_store);
	fread(&_system,sizeof(_SYSTEM),1,fp_store);
	fread(&amp_on_off,sizeof(ON_OFF),1,fp_store);

	if(amp_on_off==OFF)
		outport(0x370,cmd_word&=0xefff);
	else if(amp_on_off==ON)
		outport(0x370,cmd_word|=0x1000);
	if(alternative==ON){
		fread(y_a,sizeof(int),_status[0].sweep_points,fp_store);
		fread(y_b,sizeof(int),_status[1].sweep_points,fp_store);
	}
	else if(ch_sel==0)
		fread(y_a,sizeof(int),_status[0].sweep_points+1,fp_store);
	else if(ch_sel==1)
		fread(y_b,sizeof(int),_status[1].sweep_points+1,fp_store);
//	fread(ymap_array,sizeof(int),500,fp_store);
	fclose(fp_store);
	_chab[0].on_off=OFF;
	_chab[1].on_off=OFF;

	StoreStatus();
	StoreMarker();
	StoreDisp();
	StoreScale();
	StoreInfo();
	StoreData(0);
	StoreData(1);
	recall_end = TRUE;
	refresh_up();
	CLR_LN4;
	Outchar12(35,462,"存储调用:",TEXTFURLN);
	Outchar12(105,462,"调用结束!",TEXTDIGITAL);
	return 1;
}
*/
void store_softkey(KEY key)
{
	int i;
	erase_smal_border(1);
	for(i=1;i<=7;i++){
		erase_smal_border(i);
	}
	CLR_LN4;
	switch(key){
	case F1:
		if(_softkeyid1==16)
		{
			_softkeyid2=17;
			_store.mem_sel=6;
			Store(_store.mem_sel);
			setcolor(TEXTMENU);
			outtextxy(B_LX+2,(0+1)*59+8+4,"*");
			draw_smal_border(1);
		}
/*		else if(_softkeyid1==26)
		{
			_softkeyid2=27;
			_store.mem_sel=6;
			recall_1();
		}
*/
		else if(_softkeyid==1)
		{
			_softkeyid1=11;
			_store.mem_sel=1;
			Store(_store.mem_sel);
			setcolor(TEXTMENU);
			outtextxy(B_LX+2,(0+1)*59+8+4,"*");
			draw_smal_border(1);
		}
/*		else if(_softkeyid==2)
		{
			_softkeyid1=21;
			_store.mem_sel=1;
			recall_1();
		}
*/
		else if(_softkeyid1==0){
			_softkeyid=1;
			disp_menu12((char **)store1,7);
			for(i=0;i<5;i++){
				if(_store.mem_info[i] == 1)
				{
					setcolor(TEXTMENU);
					outtextxy(B_LX+2,(i+1)*59+8+4,"*");
				}
			}
			_lst_strkey[ch_sel]=1;
		}
		draw_smal_border(1);
		break;

	case F2:
		if(_softkeyid1==16)
		{
			_softkeyid2=18;
			_store.mem_sel=7;
			Store(_store.mem_sel);
			setcolor(TEXTMENU);
			outtextxy(B_LX+2,(1+1)*59+8+4,"*");
			draw_smal_border(2);
		}
/*		else if(_softkeyid1==26)
		{
			_softkeyid2=28;
			_store.mem_sel=7;
			recall_1();
		}
*/
		else if(_softkeyid==1)
		{
			_softkeyid1=12;
			_store.mem_sel=2;
			Store(_store.mem_sel);
			setcolor(TEXTMENU);
			outtextxy(B_LX+2,(1+1)*59+8+4,"*");
			draw_smal_border(2);
		}
/*		else if(_softkeyid==2)
		{
			_softkeyid1=22;
			_store.mem_sel=2;
			recall_1();
		}
*/
/*		else if(_softkeyid1==0){
			_softkeyid=2;
			disp_menu12((char **)recall1,7);
			for(i=0;i<5;i++){
				if(_store.mem_info[i] == 1)
				{
					setcolor(TEXTMENU);
					outtextxy(B_LX+2,(i+1)*59+8+4,"*");
				}
			}
			_lst_strkey[ch_sel]=2;
		}
*/
		draw_smal_border(2);
		break;
	case F3:
		 if(_softkeyid1==16)
		{
			_softkeyid2=163;
			_store.mem_sel=8;
			Store(_store.mem_sel);
			setcolor(TEXTMENU);
			outtextxy(B_LX+2,(2+1)*59+8+4,"*");
			draw_smal_border(3);
		}
/*		else if(_softkeyid1==26)
		{
			_softkeyid2=29;
			_store.mem_sel=8;
			recall_1();
			draw_smal_border(3);
		}
*/
		else if(_softkeyid==1)
		{
			_softkeyid1=13;
			_store.mem_sel=3;
			Store(_store.mem_sel);
			setcolor(TEXTMENU);
			outtextxy(B_LX+2,(2+1)*59+8+4,"*");
			draw_smal_border(3);
		}
/*		else if(_softkeyid==2)
		{
			_softkeyid1=23;
			_store.mem_sel=3;
			recall_1();
			draw_smal_border(3);
		}
*/
		break;
	case F4:
		if(_softkeyid1==16)
		{
			_softkeyid2=164;
			_store.mem_sel=9;
			Store(_store.mem_sel);
			setcolor(TEXTMENU);
			outtextxy(B_LX+2,(3+1)*59+8+4,"*");
			draw_smal_border(4);
		}
/*		else if(_softkeyid1==26)
		{	_softkeyid2=30;
			_store.mem_sel=9;
			recall_1();
			draw_smal_border(4);
		}
*/
		else if(_softkeyid==1)
		{
			_softkeyid1=14;
			_store.mem_sel=4;
			Store(_store.mem_sel);
			setcolor(TEXTMENU);
			outtextxy(B_LX+2,(3+1)*59+8+4,"*");
			draw_smal_border(4);
		}
/*		else if(_softkeyid==2)
		{
			_softkeyid1=24;
			_store.mem_sel=4;
			recall_1();
			draw_smal_border(4);
		}
*/
		break;
	case F5:
		if(_softkeyid1==16)
		{
			_softkeyid2=165;
			_store.mem_sel=10;
			Store(_store.mem_sel);
			setcolor(TEXTMENU);
			outtextxy(B_LX+2,(4+1)*59+8+4,"*");
			draw_smal_border(5);
		}
/*		else if(_softkeyid1==26)
		{
			_softkeyid2=30;
			_store.mem_sel=10;
			recall_1();
			draw_smal_border(5);
		}
*/
		else if(_softkeyid==1)
		{
			_softkeyid1=15;
			_store.mem_sel=5;
			Store(_store.mem_sel);
			setcolor(TEXTMENU);
			outtextxy(B_LX+2,(4+1)*59+8+4,"*");
			draw_smal_border(5);
		}
/*		else if(_softkeyid==2)
		{
			_softkeyid1=25;
			_store.mem_sel=5;
			recall_1();
			draw_smal_border(5);
		}
*/
		break;
	case F6:
		if(_softkeyid==1)
		{
			_softkeyid1=16 ;
			disp_menu12((char**)store2,7);
			for(i=5;i<10;i++)
				if(_store.mem_info[i] == 1)
				{
					setcolor(TEXTMENU);
					outtextxy(B_LX+2,(i-4)*59+8+4,"*");
				}
		}
/*		else if(_softkeyid==2)
		{
			_softkeyid1=26;
			disp_menu12((char**)recall2,7);
			for(int i=5;i<10;i++)
				if(_store.mem_info[i] == 1)
				{
					setcolor(TEXTMENU);
					outtextxy(B_LX+2,(i-4)*59+8+4,"*");
				}
		}
*/
		break;
	case F7:
		if(_softkeyid1==16)
		{
			_softkeyid2=0;
			disp_menu12((char**)store1,7);
			for(i=0;i<5;i++)
				if(_store.mem_info[i] == 1)
				{
					setcolor(TEXTMENU);
					outtextxy(B_LX+2,(i+1)*59+8+4,"*");
				}
			draw_smal_border(6);
			_softkeyid1=0;
		}
/*		else if(_softkeyid1==26)
		{
			_softkeyid2=0;
			disp_menu12((char**)recall1,7);
			for(i=0;i<5;i++)
				if(_store.mem_info[i] == 1)
				{
					setcolor(TEXTMENU);
					outtextxy(B_LX+2,(i+1)*59+8+4,"*");
				}

			draw_smal_border(6);
			_softkeyid1=0;
		}
*/
		else
		{
			_softkeyid1=0;
			disp_menu12((char**)store,7);
			draw_smal_border(_softkeyid);
			_softkeyid=-1;
		}
		break;
	default:
		break;
	}
}

void refr_store()
{
	CLR_LN4;
	switch(_softkeyid){
	case 1:
		Outchar12(35,462,"存储状态:",TEXTFURLN);
		break;
	case 2:
		Outchar12(35,462,"存储曲线:",TEXTFURLN);
		break;
	case 3:
		Outchar12(35,462,"调用状态:",TEXTFURLN);
		break;
	case 4:
		Outchar12(35,462,"调用曲线:",TEXTFURLN);
		break;
	}
//	refr_str_ln4();
}
/*
void refr_str_ln4()
{
	char msg[3];
	CLR_DIGITAL;
	switch(_softkeyid){
	case 1:
		sprintf(msg,"%d",_store.str_stt_mem);
		Outchar12(105,462,msg,TEXTDIGITAL);
		break;
	case 2:
		sprintf(msg,"%d",_store.str_arc_mem);
		Outchar12(105,462,msg,TEXTDIGITAL);
		break;
	case 3:
		sprintf(msg,"%d",_store.ld_stt_mem);
		Outchar12(105,462,msg,TEXTDIGITAL);
		break;
	case 4:
		sprintf(msg,"%d",_store.ld_arc_mem);
		Outchar12(105,462,msg,TEXTDIGITAL);
		break;
	}
//	init_cur_str();
//printf("%d %d",bit_cnt,cnt);
} */
/*
void recall_1()
{
	if(Recall(_store.mem_sel)==2){
			int save_chs=chs;
			mda_map->ScreenClear();
			mda_map->Line(0,0,0,0,(chs==0?_system.colora:_system.colorb));
			mda_map->ScreenMove();
			chs=1-chs;
			mda_map->ScreenClear();
			mda_map->Line(0,0,0,0,(chs==0?_system.colora:_system.colorb));
			mda_map->ScreenMove();
			chs=1-chs;
//			Recall(_store.mem_sel);
			chs=ch_sel;
			if(chs!=save_chs)
				chss=1-chss;
			aflag=0;
			vision();
			refr_ln3();
			refresh_up();
			StoreStatus();
			mkr_xch = TRUE;
			scl_xch = TRUE;
			dsp_xch = TRUE;
	}
}
*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -