📄 setplay.c
字号:
};//-------------------FALSH--------------------
}
void JCSetMenu(void)// 交流系数设置
{
unsigned int j, k, n,it;
int i;
long l,lx;
unsigned long ux;
if(pVar->action==NOUSE)
{
LcdClr();
DspMenu(89,0,89,3);
DspMenu(72,0,72,1);
Line( 0, 0, 127, 0, 1);
Line( 0, 0, 0, 60, 1);
Line( 0, 60, 127, 60, 1);
Line(127, 0, 127, 60, 1);
Line( 64, 0, 64, 36, 1);
Line( 48, 36, 48, 60, 1);
Line( 96, 36, 96, 60, 1);
Line( 82, 0, 82, 36, 1);
Line( 93, 0, 93, 20, 1);
Line( 0, 20, 127, 20, 1);
Line( 0, 36, 127, 36, 1);
pVar->action=OPEN;
pVar->ACWorkMode=pVar->ACWorkMode%2;
DspMenuCur(89,pVar->ACWorkMode*2,89,pVar->ACWorkMode*4,2,0x83);
if(pVar->MRCount>=MAXMRNUM) pVar->MRCount=0;
n=pVar->MRCount+1;
DatBuf[1]=n%10;n=n/10;
DatBuf[0]=n%10;
OutString(DatBuf,0,ACSetNumAdr,1);
};
if(pVar->action==OPEN)
{ //-----OPEN
HITESC(SDSET_MENU);
if(pVar->KeyID==LEFTKEY)// " < " 键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->ACWorkMode==0) pVar->ACWorkMode=1;
else pVar->ACWorkMode=0;
}
if(pVar->KeyID==RIGHTKEY)// " > " 键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->ACWorkMode==0) pVar->ACWorkMode=1;
else pVar->ACWorkMode=0;
}
if(pVar->KeyID==PLUSKEY)// "+"=PageDown
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
pVar->MRCount=pVar->MRCount+5;
if(pVar->MRCount>=MAXMRNUM) pVar->MRCount=0;
};
if(pVar->KeyID==MINUSKEY)// "-"=PageUPKEY
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->MRCount>4) pVar->MRCount=pVar->MRCount-5;
else pVar->MRCount=0;
}
if(pVar->KeyID==DOWNKEY)// " V " 向下键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
pVar->MRCount=pVar->MRCount+1;
if(pVar->MRCount>=MAXMRNUM) pVar->MRCount=0;
}
if(pVar->KeyID==UPKEY)// " ^ " 向上键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->MRCount>0) pVar->MRCount=pVar->MRCount-1;
};
if((pVar->KeyID==OKKEY)&&(pVar->ACWorkMode==0))// 手动修改状态
{
pVar->KeyID=NULLKEY;
pVar->action=FLASH;
pVar->NewCursorOffset=0;
pVar->OldCursorOffset=0;
CursorGotoXy(StrBuf,ACSetAdr,1);
return;
}
if((pVar->KeyID==F1)&&(pVar->ACWorkMode!=0))// 自动修改状态
{
pVar->KeyID=NULLKEY;
pVar->action=ADJUST;
pVar->adjust_count=0;
return;
}
l=(long)ADCLIB[pVar->MRCount].AVALUE;
if(ACType[pVar->MRCount]!=0)
{//CT
l=l*5;
l=l/4;
DatBuf[0]=177; //I=
DatBuf[6]=10; //A
}else
{//PT
l=l*5;
l=l/2;
DatBuf[0]=176; //U=
DatBuf[6]=31; //V
}
DatBuf[5]=l%10; l=l/10;
DatBuf[4]=l%10; l=l/10;
DatBuf[3]=l%10; l=l/10;
DatBuf[2]=l%10; l=l/10;
DatBuf[1]=l%10;
switch(ACValueDot[pVar->MRCount])
{
case 0x00:DatBuf[5]=DatBuf[5];
break;
case 0x01:DatBuf[4]=DatBuf[4]+150;
break;
case 0x02:DatBuf[3]=DatBuf[3]+150;
break;
case 0x03:DatBuf[2]=DatBuf[2]+150;
break;
case 0x04:DatBuf[1]=DatBuf[1]+150;
break;
default: break;
};
OutString(DatBuf,0,ACValueAdr,1);
j=ACCoef[pVar->MRCount];
StrBuf[4]=j%10; j=j/10;
StrBuf[3]=j%10; j=j/10;
StrBuf[2]=j%10; j=j/10;
StrBuf[1]=j%10; j=j/10;
StrBuf[0]=j%10;
j=ACType[pVar->MRCount];
if(j==0) StrBuf[5]=25;//P
else StrBuf[5]=12;//C
j=ACValueDot[pVar->MRCount];
if(j>4) j=4;
StrBuf[6]=j;
j=ACZeroFlow[pVar->MRCount];
StrBuf[8]=(j%10); j=j/10;
StrBuf[7]=(j%10)+150;
j=ACWndValue[pVar->MRCount];
StrBuf[13]=j%10; j=j/10;
StrBuf[12]=j%10; j=j/10;
StrBuf[11]=j%10; j=j/10;
StrBuf[10]=j%10; j=j/10;
StrBuf[9]= j%10;
OutString(StrBuf,0,ACSetAdr,1);
};//open
if(pVar->action==FLASH)
{//------------------FLASH-----------------------
FlashESC();
if(pVar->KeyID==MINUSKEY)// "-"=PageUPKEY
{
pVar->KeyID=NULLKEY;
if(pVar->NewCursorOffset==5)
{
if(StrBuf[pVar->NewCursorOffset]==25) StrBuf[pVar->NewCursorOffset]=12;
else StrBuf[pVar->NewCursorOffset]=25;
}else
{
if(StrBuf[pVar->NewCursorOffset]!=0) StrBuf[pVar->NewCursorOffset]=StrBuf[pVar->NewCursorOffset]-1;
else StrBuf[pVar->NewCursorOffset]=9;
}
CursorGotoXy(StrBuf,ACSetAdr,1);
};
if(pVar->KeyID==PLUSKEY)// "+"=PageDown
{
pVar->KeyID=NULLKEY;
if(pVar->NewCursorOffset==5)
{
if(StrBuf[pVar->NewCursorOffset]==25) StrBuf[pVar->NewCursorOffset]=12;
else StrBuf[pVar->NewCursorOffset]=25;
}else
{
StrBuf[pVar->NewCursorOffset]++;
if(StrBuf[pVar->NewCursorOffset]>9)StrBuf[pVar->NewCursorOffset]=0;
}
CursorGotoXy(StrBuf,ACSetAdr,1);
};
if(pVar->KeyID==LEFTKEY)// " < " 键
{
pVar->KeyID=NULLKEY;
if(pVar->NewCursorOffset>0) pVar->NewCursorOffset=pVar->NewCursorOffset-1;
CursorGotoXy(StrBuf,ACSetAdr,1);
};
if(pVar->KeyID==RIGHTKEY)// " > " 键
{
pVar->KeyID=NULLKEY;
pVar->NewCursorOffset=pVar->NewCursorOffset+1;
if(pVar->NewCursorOffset>14) pVar->NewCursorOffset=0;
CursorGotoXy(StrBuf,ACSetAdr,1);
};
if(pVar->KeyID==OKKEY)// " < " + " > " 修改完成
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
flashwrite_h(PSD_FLASH_BASE);
n=StrBuf[0]*10000;
n=n+StrBuf[1]*1000+StrBuf[2]*100+StrBuf[3]*10+StrBuf[4];
pVar->flash_dat[((unsigned int)(&ACCoef[pVar->MRCount])-PSD_FLASH_BASE)/2]=n;
if(StrBuf[5]==25)
{
pVar->flash_dat[((unsigned int)(&ACType[pVar->MRCount])-PSD_FLASH_BASE)/2]=0;
}else
{
pVar->flash_dat[((unsigned int)(&ACType[pVar->MRCount])-PSD_FLASH_BASE)/2]=1;
}
pVar->flash_dat[((unsigned int)(&ACValueDot[pVar->MRCount])-PSD_FLASH_BASE)/2]=StrBuf[6];
n=(StrBuf[7]-150)*10+StrBuf[8];
pVar->flash_dat[((unsigned int)(&ACZeroFlow[pVar->MRCount])-PSD_FLASH_BASE)/2]=n;
n=StrBuf[9]*10000;
n=n+StrBuf[10]*1000+StrBuf[11]*100+StrBuf[12]*10+StrBuf[13];
pVar->flash_dat[((unsigned int)(&ACWndValue[pVar->MRCount])-PSD_FLASH_BASE)/2]=n;
flashwrite_a(PSD_FLASH_BASE);
InitYC();
};
};//-------------------FALSH--------------------
if(pVar->action==ADJUST)
{//------------------adjust系数校正----------------------
if(pVar->KeyID==ESCKEY)//ESC
{
pVar->MenuMode=SDSET_MENU;
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
InitYC();
};
l=(long)ADCLIB[pVar->MRCount].AVALUE;
if(ACType[pVar->MRCount]!=0)
{//CT
l=l*5;
l=l/4;
DatBuf[0]=177; //I=
DatBuf[6]=10; //A
lx=l-5000;
if(lx<0) lx=-lx;
if(l<5000)
{
if(lx<60)
{
if(pVar->Aspeed>=5)
{
ADCLIB[pVar->MRCount].ACSK++;
pVar->Aspeed=0;
}
pVar->Aspeed++;
}else
{
ADCLIB[pVar->MRCount].ACSK+=10;
}
}else
{
if(lx<60)
{
if(pVar->Aspeed>=5)
{
ADCLIB[pVar->MRCount].ACSK--;
pVar->Aspeed=0;
}
pVar->Aspeed++;
}else
{
ADCLIB[pVar->MRCount].ACSK-=10;
}
}
if(lx<3)
{
pVar->adjust_coef[pVar->adjust_count]=ADCLIB[pVar->MRCount].ACSK;
pVar->adjust_count++;
}
if(pVar->adjust_count>=40)
{
ux=0;
for(i=0;i<40;i++)
{
ux=ux+pVar->adjust_coef[i];
}
ux=ux/40;
ADCLIB[pVar->MRCount].ACSK=ux;
pVar->KeyID=OKKEY;
}
}else
{//PT
l=l*5;
l=l/2;
DatBuf[0]=176; //U=
DatBuf[6]=31; //V
lx=l-10000;
if(lx<0) lx=-lx;
if(l<10000)
{
if(lx<60)
{
ADCLIB[pVar->MRCount].ACSK++;
}else
{
ADCLIB[pVar->MRCount].ACSK+=10;
}
}else
{
if(lx<60)
{
ADCLIB[pVar->MRCount].ACSK--;
}else
{
ADCLIB[pVar->MRCount].ACSK-=10;
}
if(lx<3)
{
pVar->adjust_coef[pVar->adjust_count]=ADCLIB[pVar->MRCount].ACSK;
pVar->adjust_count++;
}
if(pVar->adjust_count>=40)
{
ux=0;
for(i=0;i<40;i++)
{
ux=ux+pVar->adjust_coef[i];
}
ux=ux/40;
ADCLIB[pVar->MRCount].ACSK=ux;
pVar->KeyID=OKKEY;
}
}
}
DatBuf[5]=l%10; l=l/10;
DatBuf[4]=l%10; l=l/10;
DatBuf[3]=l%10; l=l/10;
DatBuf[2]=l%10; l=l/10;
DatBuf[1]=l%10;
switch(ACValueDot[pVar->MRCount])
{
case 0x00:DatBuf[5]=DatBuf[5];
break;
case 0x01:DatBuf[4]=DatBuf[4]+150;
break;
case 0x02:DatBuf[3]=DatBuf[3]+150;
break;
case 0x03:DatBuf[2]=DatBuf[2]+150;
break;
case 0x04:DatBuf[1]=DatBuf[1]+150;
break;
default: break;
};
OutString(DatBuf,0,ACValueAdr,1);
j=ADCLIB[pVar->MRCount].ACSK; // 斜率
if(j<10000)
{
j=10000;
ADCLIB[pVar->MRCount].ACSK=10000;
}
StrBuf[4]=j%10; j=j/10;
StrBuf[3]=j%10; j=j/10;
StrBuf[2]=j%10; j=j/10;
StrBuf[1]=j%10; j=j/10;
StrBuf[0]=j%10;
j=ACType[pVar->MRCount];
if(j==0) StrBuf[5]=25;//P
else StrBuf[5]=12;//C
j=ACValueDot[pVar->MRCount];
if(j>4) j=4;
StrBuf[6]=j;
j=ACZeroFlow[pVar->MRCount];
StrBuf[8]=(j%10); j=j/10;
StrBuf[7]=(j%10)+150;
j=ACWndValue[pVar->MRCount];
StrBuf[13]=j%10; j=j/10;
StrBuf[12]=j%10; j=j/10;
StrBuf[11]=j%10; j=j/10;
StrBuf[10]=j%10; j=j/10;
StrBuf[9]= j%10;
OutString(StrBuf,0,ACSetAdr,1);
if(pVar->KeyID==OKKEY) // 修改完成
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
flashwrite_h(PSD_FLASH_BASE);
n=StrBuf[0]*10000;
n=n+StrBuf[1]*1000+StrBuf[2]*100+StrBuf[3]*10+StrBuf[4];
pVar->flash_dat[((unsigned int)(&ACCoef[pVar->MRCount])-PSD_FLASH_BASE)/2]=n;
if(StrBuf[5]==25)
{
pVar->flash_dat[((unsigned int)(&ACType[pVar->MRCount])-PSD_FLASH_BASE)/2]=0;
}else
{
pVar->flash_dat[((unsigned int)(&ACType[pVar->MRCount])-PSD_FLASH_BASE)/2]=1;
}
pVar->flash_dat[((unsigned int)(&ACValueDot[pVar->MRCount])-PSD_FLASH_BASE)/2]=StrBuf[6];
n=(StrBuf[7]-150)*10+StrBuf[8];
pVar->flash_dat[((unsigned int)(&ACZeroFlow[pVar->MRCount])-PSD_FLASH_BASE)/2]=n;
n=StrBuf[9]*10000;
n=n+StrBuf[10]*1000+StrBuf[11]*100+StrBuf[12]*10+StrBuf[13];
pVar->flash_dat[((unsigned int)(&ACWndValue[pVar->MRCount])-PSD_FLASH_BASE)/2]=n;
flashwrite_a(PSD_FLASH_BASE);
InitYC();
}
}
}
void DCSetMenu(void)// 直流系数设置
{
unsigned int j, k, n,it;
int i;
if(pVar->action==NOUSE)
{
LcdClr();
DspMenu(73,0,73,3);
DspMenu(74,0,74,1);
Line(0, 0, 127, 0, 1);
Line(0, 0, 0, 60, 1);
Line(0, 60,127,60, 1);
Line(127,0, 127,60, 1);
Line(64,0,64,60,1);
Line(64,20,127,20,1);
Line(0,36,127,36,1);
pVar->action=OPEN;
pVar->DCWorkMode=pVar->DCWorkMode%2;
DspMenuCur(73,pVar->DCWorkMode*2,73,pVar->DCWorkMode*4,2,0x83);
if(pVar->MRCount>=MAXMRNUM) pVar->MRCount=0;
n=pVar->MRCount+1;
DatBuf[1]=n%10;n=n/10;
DatBuf[0]=n%10;
OutString(DatBuf,0,DCSetNumAdr,1);
};
if(pVar->action==OPEN)
{ //-----OPEN
HITESC(SDSET_MENU);
if(pVar->KeyID==LEFTKEY)// " < " 键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->DCWorkMode==0) pVar->DCWorkMode=1;
else pVar->DCWorkMode=0;
}
if(pVar->KeyID==RIGHTKEY)// " > " 键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->DCWorkMode==0) pVar->DCWorkMode=1;
else pVar->DCWorkMode=0;
}
if(pVar->KeyID==PLUSKEY)// "+"=PageDown
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
pVar->MRCount=pVar->MRCount+5;
if(pVar->MRCount>=MAXMRNUM) pVar->MRCount=0;
};
if(pVar->KeyID==MINUSKEY)// "-"=PageUPKEY
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->MRCount>4) pVar->MRCount=pVar->MRCount-5;
else pVar->MRCount=0;
}
if(pVar->KeyID==DOWNKEY)// " V " 向下键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
pVar->MRCount=pVar->MRCount+1;
if(pVar->MRCount>=MAXMRNUM) pVar->MRCount=0;
}
if(pVar->KeyID==UPKEY)// " ^ " 向上键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->MRCount>0) pVar->MRCount=pVar->MRCount-1;
};
if((pVar->KeyID==OKKEY)&&(pVar->DCWorkMode==0))// 手动修改状态
{
pVar->KeyID=NULLKEY;
pVar->action=FLASH;
pVar->NewCursorOffset=0;
pVar->OldCursorOffset=0;
CursorGotoXy(StrBuf,DCSetAdr,1);
return;
}
i=ADCLIB[pVar->MRCount].ZVALUE[0];
if(i>=0)
{
DatBuf[0]=68;//
}else
{
DatBuf[0]=66;// -
i=-i;
}
DatBuf[4]=i%10; i=i/10;
DatBuf[3]=i%10; i=i/10;
DatBuf[2]=i%10; i=i/10;
DatBuf[1]=(i%10)+150;
DatBuf[5]=31;//V
OutString(DatBuf,0,DCValueAdr,1);
i=DCCoef[pVar->MRCount];
if(i>=0)
{
StrBuf[0]=68;//
}else
{
StrBuf[0]=66;// -
i=-i;
}
StrBuf[5]=i%10; i=i/10;
StrBuf[4]=i%10; i=i/10;
StrBuf[3]=i%10; i=i/10;
StrBuf[2]=i%10; i=i/10;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -