📄 status.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"
#include "status.h"
const char*store1_1[]={"调用","调用 >>","","","","","",""};
const char*recall1_1[]={"调 用"," 调用1"," 调用2"," 调用3"," 调用4"," 调用5","更多调用>>","返 回"};
const char*recall2_1[]={"更多调用"," 调用6"," 调用7"," 调用8"," 调用9"," 调用10","","返 回"};
extern BOOL recall_end;
const char* store_file[]={"store1.dat","store2.dat","store3.dat","store4.dat","store5.dat","store6.dat","store7.dat","store8.dat","store9.dat","store10.dat"};
extern MDAMAP* mda_map;
extern char aflag;
extern void StoreStatus();
extern char chss;
void recall_hardkey()
{
rst_num_mem();
_keyid=RECALL;
// if(_lst_strkey[ch_sel]==0)
_softkeyid=-1;
// else
// _softkeyid=_lst_strkey[ch_sel];
disp_menu12((char **)store1_1,7);
draw_smal_border(_softkeyid);
digital_en=0;
curs_flag=0;
_softkeyid1=0;
_softkeyid2=0;
// refr_ln3();
refr_store();
vision();
}
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(&_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 recall_softkey(KEY key)
{
switch(key){
case F1:
if(_softkeyid1==16)
{
_softkeyid2=17;
_store.mem_sel=6;
recall_1();
}
else if(_softkeyid==1){
_softkeyid1=11;
_store.mem_sel=1;
recall_1();
}
else if(_softkeyid1==0){
_softkeyid=1;
disp_menu12((char **)recall1_1,7);
for(int 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;
}
break;
case F2:
if(_softkeyid1==16)
{
_softkeyid2=18;
_store.mem_sel=7;
recall_1();
}
else if(_softkeyid==1)
{
_softkeyid1=12;
_store.mem_sel=2;
recall_1();
}
break;
case F3:
if(_softkeyid1==16)
{
_softkeyid2=19;
_store.mem_sel=8;
recall_1();
draw_smal_border(3);
}
else if(_softkeyid==1)
{
_softkeyid1=13;
_store.mem_sel=3;
recall_1();
draw_smal_border(3);
}
break;
case F4:
if(_softkeyid1==16)
{ _softkeyid2=20;
_store.mem_sel=9;
recall_1();
draw_smal_border(4);
}
else if(_softkeyid==1)
{
_softkeyid1=14;
_store.mem_sel=4;
recall_1();
draw_smal_border(4);
}
break;
case F5:
if(_softkeyid1==16)
{
_softkeyid2=21;
_store.mem_sel=10;
recall_1();
draw_smal_border(5);
}
else if(_softkeyid==1)
{
_softkeyid1=15;
_store.mem_sel=5;
recall_1();
draw_smal_border(5);
}
break;
case F6:
if(_softkeyid==1&&_softkeyid2==0){
_softkeyid1=16;
_softkeyid2=15;
disp_menu12((char**)recall2_1,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)
{
_softkeyid2=0;
disp_menu12((char**)recall1_1,7);
for(int 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==16&&_softkeyid2==0)
{
_softkeyid1=0;
disp_menu12((char**)store1_1,7);
draw_smal_border(_softkeyid);
_softkeyid=-1;
}
break;
default:
break;
} recall_border();
}
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;
}
}
void recall_border()
{
for(int i=1;i<8;i++)
erase_smal_border(i);
if(_softkeyid2!=0)
draw_smal_border(_softkeyid2-_softkeyid1);
else if(_softkeyid1!=0)
draw_smal_border(_softkeyid1-_softkeyid*10);
else
draw_smal_border(_softkeyid);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -