📄 setplay.c
字号:
StrBuf[1]=i%10;
i=DCZerO[pVar->MRCount];
if(i>=0)
{
StrBuf[6]=68;//
}else
{
StrBuf[6]=66;// -
i=-i;
}
StrBuf[11]=i%10; i=i/10;
StrBuf[10]=i%10; i=i/10;
StrBuf[9] =i%10; i=i/10;
StrBuf[8] =i%10; i=i/10;
StrBuf[7] =i%10;
j=DCWndValue[pVar->MRCount];
StrBuf[16]=j%10; j=j/10;
StrBuf[15]=j%10; j=j/10;
StrBuf[14]=j%10; j=j/10;
StrBuf[13]=j%10; j=j/10;
StrBuf[12]=j%10;
OutString(StrBuf,0,DCSetAdr,1);
};//open
if(pVar->action==FLASH)
{//------------------FLASH-----------------------
FlashESC();
if(pVar->KeyID==MINUSKEY)// "-"=PageUPKEY
{
pVar->KeyID=NULLKEY;
switch(pVar->NewCursorOffset)
{
case 0x00 :
case 0x06 :if(StrBuf[pVar->NewCursorOffset]==68)
{
StrBuf[pVar->NewCursorOffset]=66;
}else
{
StrBuf[pVar->NewCursorOffset]=68;
}
break;
default :if(StrBuf[pVar->NewCursorOffset]!=0)
{
StrBuf[pVar->NewCursorOffset]=StrBuf[pVar->NewCursorOffset]-1;
}else
{
StrBuf[pVar->NewCursorOffset]=9;
}
break;
}
CursorGotoXy(StrBuf,DCSetAdr,1);
};
if(pVar->KeyID==PLUSKEY)// "+"=PageDown
{
pVar->KeyID=NULLKEY;
switch(pVar->NewCursorOffset)
{
case 0x00 :
case 0x06 :if(StrBuf[pVar->NewCursorOffset]==68)
{
StrBuf[pVar->NewCursorOffset]=66;
}else
{
StrBuf[pVar->NewCursorOffset]=68;
}
break;
default :if(StrBuf[pVar->NewCursorOffset]<9)
{
StrBuf[pVar->NewCursorOffset]=StrBuf[pVar->NewCursorOffset]+1;
}else
{
StrBuf[pVar->NewCursorOffset]=0;
}
break;
}
CursorGotoXy(StrBuf,DCSetAdr,1);
};
if(pVar->KeyID==LEFTKEY)// " < " 键
{
pVar->KeyID=NULLKEY;
if(pVar->NewCursorOffset>0) pVar->NewCursorOffset=pVar->NewCursorOffset-1;
CursorGotoXy(StrBuf,DCSetAdr,1);
};
if(pVar->KeyID==RIGHTKEY)// " > " 键
{
pVar->KeyID=NULLKEY;
pVar->NewCursorOffset=pVar->NewCursorOffset+1;
if(pVar->NewCursorOffset>17) pVar->NewCursorOffset=0;
CursorGotoXy(StrBuf,DCSetAdr,1);
};
if(pVar->KeyID==OKKEY)// " < " + " > " 修改完成
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
flashwrite_h(PSD_FLASH_BASE);
i=StrBuf[1]*10000;
i=i+StrBuf[2]*1000+StrBuf[3]*100+StrBuf[4]*10+StrBuf[5];
if(StrBuf[0]==66) i=-i;
pVar->flash_dat[((unsigned int)(&DCCoef[pVar->MRCount])-PSD_FLASH_BASE)/2]=i;
i=StrBuf[7]*10000;
i=i+StrBuf[8]*1000+StrBuf[9]*100+StrBuf[10]*10+StrBuf[11];
if(StrBuf[6]==66) i=-i;
pVar->flash_dat[((unsigned int)(&DCZerO[pVar->MRCount])-PSD_FLASH_BASE)/2]=i;
n=StrBuf[12]*10000;
n=n+StrBuf[13]*1000+StrBuf[14]*100+StrBuf[15]*10+StrBuf[16];
pVar->flash_dat[((unsigned int)(&DCWndValue[pVar->MRCount])-PSD_FLASH_BASE)/2]=n;
flashwrite_a(PSD_FLASH_BASE);
InitYC();
};
};//-------------------FALSH--------------------
}
void YCSetMenu(void)// 线路系数
{
unsigned int j, k, n,it;
int i, t;
long l;
if(pVar->action==NOUSE)
{
LcdClr();
DspMenu(75,0,75,1);
DspMenu(76,0,76,3);
DspMenu(77,0,77,4);
pVar->action=OPEN;
pVar->PQWorkMode=pVar->PQWorkMode%3;
DspMenuCur(77,pVar->PQWorkMode*2,77,pVar->PQWorkMode*4,2,0x84);
if(pVar->YCLNCount>=pVar->lnsum) pVar->YCLNCount=0;
n=pVar->YCLNCount+1;
DatBuf[1]=n%10;n=n/10;
DatBuf[0]=n%10;
OutString(DatBuf,0,YCLNNumAdr,4);
};
if(pVar->action==OPEN)
{ //-----OPEN
HITESC(SDSET_MENU);
if(pVar->KeyID==LEFTKEY)// " < " 键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->PQWorkMode==0) pVar->PQWorkMode=2;
else pVar->PQWorkMode--;
}
if(pVar->KeyID==RIGHTKEY)// " > " 键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->PQWorkMode==2) pVar->PQWorkMode=0;
else pVar->PQWorkMode++;
}
if(pVar->KeyID==PLUSKEY)// "+"=PageDown
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
pVar->YCLNCount=pVar->YCLNCount+5;
if(pVar->YCLNCount>=pVar->lnsum) pVar->YCLNCount=0;
};
if(pVar->KeyID==MINUSKEY)// "-"=PageUPKEY
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->YCLNCount>4) pVar->YCLNCount=pVar->YCLNCount-5;
else pVar->YCLNCount=0;
}
if(pVar->KeyID==DOWNKEY)// " V " 向下键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
pVar->YCLNCount=pVar->YCLNCount+1;
if(pVar->YCLNCount>=pVar->lnsum) pVar->YCLNCount=0;
}
if(pVar->KeyID==UPKEY)// " ^ " 向上键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->YCLNCount>0) pVar->YCLNCount=pVar->YCLNCount-1;
};
if(pVar->KeyID==OKKEY)// 手动修改状态
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
pVar->NewCursorOffset=0;
pVar->OldCursorOffset=0;
pVar->MenuMode=PQJUST_MENU; // 功率校对
return;
}
for(i=0;i<15;i++)
{
switch(i)
{
case 0x00://U1
case 0x01://U2
case 0x02://U3 电压放大40倍
l=(long)LNLIB[pVar->YCLNCount].Value[i];
l=l*5;
l=l/2;
StrBuf[4+i*10]=l%10; l=l/10;
StrBuf[3+i*10]=l%10; l=l/10;
StrBuf[2+i*10]=(l%10)+150; l=l/10;
StrBuf[1+i*10]=l%10; l=l/10;
StrBuf[0+i*10]=l%10;
break;
case 0x03://I1
case 0x04://I2
case 0x05://I3 电流放大80倍
l=(long)LNLIB[pVar->YCLNCount].Value[i];
l=l*5;
l=l/4;
t=i*10-25;
StrBuf[4+t]=l%10; l=l/10;
StrBuf[3+t]=l%10; l=l/10;
StrBuf[2+t]=l%10; l=l/10;
StrBuf[1+t]=(l%10)+150; l=l/10;
StrBuf[0+t]=l%10;
break;
case 0x09://P
case 13://Q 功率放大8倍
if(i==9) t=30;
else t=35;
l=(long)LNLIB[pVar->YCLNCount].Value[i];
if(l>=0)
{
StrBuf[0+t]=68;//
}else
{
StrBuf[0+t]=66;// -
l=-l;
}
l=l*5;
l=l/4;
StrBuf[4+t]=l%10; l=l/10;
StrBuf[3+t]=(l%10)+150; l=l/10;
StrBuf[2+t]=l%10; l=l/10;
StrBuf[1+t]=l%10;
break;
case 14://COS
l=(long)LNLIB[pVar->YCLNCount].Value[i];
if(l>=0)
{
StrBuf[0+40]=68;//
}else
{
StrBuf[0+40]=66;// -
l=-l;
}
StrBuf[4+40]=l%10; l=l/10;
StrBuf[3+40]=l%10; l=l/10;
StrBuf[2+40]=l%10; l=l/10;
StrBuf[1+40]=(l%10)+150;
break;
default: break;
}
}
l=(long)LNLIB[pVar->YCLNCount].PQARC;
if(l>=0)
{
StrBuf[0+45]=68;//
}else
{
StrBuf[0+45]=66;// -
l=-l;
}
StrBuf[5+45]=l%10; l=l/10;
StrBuf[4+45]=l%10; l=l/10;
StrBuf[3+45]=(l%10)+150; l=l/10;
StrBuf[2+45]=l%10; l=l/10;
StrBuf[1+45]=l%10;
l=(long)LNLIB[pVar->YCLNCount].Uabc;
l=l*5;
l=l/2;
StrBuf[55]=l%10; l=l/10;
StrBuf[54]=l%10; l=l/10;
StrBuf[53]=(l%10)+150; l=l/10;
StrBuf[52]=l%10; l=l/10;
StrBuf[51]=l%10;
l=(long)LNLIB[pVar->YCLNCount].U0;
l=l*5;
l=l/2;
StrBuf[60]=l%10; l=l/10;
StrBuf[59]=l%10; l=l/10;
StrBuf[58]=(l%10)+150; l=l/10;
StrBuf[57]=l%10; l=l/10;
StrBuf[56]=l%10;
OutString(StrBuf,0,YCLNValueAdr,1);
};//open
}
void KRDSetMenu(void)// 开入配置
{
int i;
if(pVar->action==NOUSE)
{
LcdClr();
if(pVar->KRMenuCount>=1) pVar->KRMenuCount=0;
if(pVar->KRCursorCount>3) pVar->KRCursorCount=0;
DspMenu(64, pVar->KRMenuCount*0x05,64,3);
DspMenuCur(64,(pVar->KRMenuCount+pVar->KRCursorCount)*0x05+1,64, (pVar->KRCursorCount*10)+2,4, 0x83);
DspMenu(65,0,65,3);//JM65+0,Adr65, Type=3 KR配置
pVar->action=OPEN;
}
if(pVar->action==OPEN)
{//-----OPEN
HITESC(SDSET_MENU);
if(pVar->KeyID==PLUSKEY)// PageDOWNKEY
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
pVar->KRMenuCount=2;
};
if(pVar->KeyID==MINUSKEY)// PageUPKEY
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
pVar->KRMenuCount=0;
}
if(pVar->KeyID==DOWNKEY)// " V " 向下键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->KRCursorCount>=2)
{
pVar->KRMenuCount=pVar->KRMenuCount+1;
pVar->KRCursorCount=2;
}else pVar->KRCursorCount++;
if(pVar->KRMenuCount>0x02) pVar->KRMenuCount=0x02;
}
if(pVar->KeyID==UPKEY)// " ^ " 向上键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->KRCursorCount==0)
{
if(pVar->KRMenuCount>0x00) pVar->KRMenuCount=pVar->KRMenuCount-1;
pVar->KRCursorCount=0;
}else pVar->KRCursorCount--;
};
if(pVar->KeyID==OKKEY) //确认键
{
pVar->KeyID=NULLKEY;
i=pVar->KRCursorCount+pVar->KRMenuCount;
switch(i)
{
// case 0x00: pVar->MenuMode=KRSET_MENU; // KR设置
// pVar->action=NOUSE;
// break;
case 0x00: pVar->MenuMode=HYXSET_MENU; // 硬YX设置
pVar->action=NOUSE;
break;
case 0x01: pVar->MenuMode=SYXSET_MENU; // 软YX设置
pVar->action=NOUSE;
break;
case 0x02: pVar->MenuMode=YMSET_MENU; // 遥脉设置
pVar->action=NOUSE;
break;
default: break;
};
};
};//-------OPEN
}
unsigned char SearchBit(unsigned int BitNum,unsigned int *pPM)//
{
unsigned int j,k,m;
unsigned char ch;
ch=0x01;
j=BitNum/16;
k=BitNum%16;
m=*(pPM+j);
switch(k)
{
case 0x00:m=m & 0x01;
if(m==0) ch=0;
break;
case 0x01:m=m & 0x02;
if(m==0) ch=0;
break;
case 0x02:m=m & 0x04;
if(m==0) ch=0;
break;
case 0x03:m=m & 0x08;
if(m==0) ch=0;
break;
case 0x04:m=m & 0x10;
if(m==0) ch=0;
break;
case 0x05:m=m & 0x20;
if(m==0) ch=0;
break;
case 0x06:m=m & 0x40;
if(m==0) ch=0;
break;
case 0x07:m=m & 0x80;
if(m==0) ch=0;
break;
case 0x08:m=m & 0x100;
if(m==0) ch=0;
break;
case 0x09:m=m & 0x200;
if(m==0) ch=0;
break;
case 0x0a:m=m & 0x400;
if(m==0) ch=0;
break;
case 0x0b:m=m & 0x800;
if(m==0) ch=0;
break;
case 0x0c:m=m & 0x1000;
if(m==0) ch=0;
break;
case 0x0d:m=m & 0x2000;
if(m==0) ch=0;
break;
case 0x0e:m=m & 0x4000;
if(m==0) ch=0;
break;
case 0x0f:m=m & 0x8000;
if(m==0) ch=0;
break;
default:ch=0x02;
break;
}
return ch;
}
void SetBit(unsigned int BitNum,unsigned int *pPM)//
{
unsigned int j,k,m;
unsigned char ch;
ch=0x01;
j=BitNum/16;
k=BitNum%16;
m=*(pPM+j);
switch(k)
{
case 0x00:m=m | 0x01;
break;
case 0x01:m=m | 0x02;
break;
case 0x02:m=m | 0x04;
break;
case 0x03:m=m | 0x08;
break;
case 0x04:m=m | 0x10;
break;
case 0x05:m=m | 0x20;
break;
case 0x06:m=m | 0x40;
break;
case 0x07:m=m | 0x80;
break;
case 0x08:m=m | 0x100;
break;
case 0x09:m=m | 0x200;
break;
case 0x0a:m=m | 0x400;
break;
case 0x0b:m=m | 0x800;
break;
case 0x0c:m=m | 0x1000;
break;
case 0x0d:m=m | 0x2000;
break;
case 0x0e:m=m | 0x4000;
break;
case 0x0f:m=m | 0x8000;
break;
default:break;
}
*(pPM+j)=m;
}
void ClrBit(unsigned int BitNum,unsigned int *pPM)//
{
unsigned int j,k,m;
unsigned char ch;
ch=0x01;
j=BitNum/16;
k=BitNum%16;
m=*(pPM+j);
switch(k)
{
case 0x00:m=m & 0xfe;
break;
case 0x01:m=m & 0xfd;
break;
case 0x02:m=m & 0xfb;
break;
case 0x03:m=m & 0xf7;
break;
case 0x04:m=m & 0xef;
break;
case 0x05:m=m & 0xdf;
break;
case 0x06:m=m & 0xbf;
break;
case 0x07:m=m & 0x7f;
break;
case 0x08:m=m & 0xeff;
break;
case 0x09:m=m & 0xdff;
break;
case 0x0a:m=m & 0xbff;
break;
case 0x0b:m=m & 0x7ff;
break;
case 0x0c:m=m & 0xefff;
break;
case 0x0d:m=m & 0xdfff;
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -