📄 menu.c
字号:
DispString(0,1,(char *)"1.115200 bps",sel==1?1:0);
DispString(0,3,(char *)"2.57600 bps",sel==2?1:0);
DispString(0,5,(char *)"3.38400 bps",sel==3?1:0);
DispString(0,7,(char *)"4.19200 bps",sel==4?1:0);
while((c=getchar())==0x00);
switch(c)
{
case KEY_DOWN:
if(sel<4) sel++;
else
sel=1;
break;
case KEY_UP:
if(sel>1) sel--;
else sel=4;
break;
case '1':
get_member(fp,1,a);
a[2]='1';
delete_member(fp,1);
add_member(fp,a);
close_DBF(fp);
sysid=20;
goto end;
case '2':
get_member(fp,1,a);
a[2]='2';
delete_member(fp,1);
add_member(fp,a);
close_DBF(fp);
sysid=20;
goto end;
case '3':
get_member(fp,1,a);
a[2]='3';
delete_member(fp,1);
add_member(fp,a);
close_DBF(fp);
sysid=20;
goto end;
case '4':
get_member(fp,1,a);
a[2]='4';
delete_member(fp,1);
add_member(fp,a);
close_DBF(fp);
sysid=20;
goto end;
case KEY_CR:
if(sel==1)
{
get_member(fp,1,a);
a[2]='1';
delete_member(fp,1);
add_member(fp,a);
close_DBF(fp);
sysid=20;}
else if(sel==2)
{
get_member(fp,1,a);
a[2]='2';
delete_member(fp,1);
add_member(fp,a);
close_DBF(fp);
sysid=20; }
else if(sel==3)
{
get_member(fp,1,a);
a[2]='3';
delete_member(fp,1);
add_member(fp,a);
close_DBF(fp);
sysid=20; }
else if(sel==4)
{
get_member(fp,1,a);
a[2]='4';
delete_member(fp,1);
add_member(fp,a);
close_DBF(fp);
sysid=20; }
goto end;
case KEY_ESC:
close_DBF(fp);
sysid=20;
goto end;
default:
break;
}
goto lp6;
end:;
}
void form25()
{
char a[20],b[20];
int i,j,fp,n,sel=1;
char c;
SetFont(2);
clr_scr();
for(i=0;i<10;i++)
close_DBF(i);
fp=open_DBF((char *)"data2");
lp6:
DispString(2,1,(char *)"上传后",0);
DispString(1,3,(char *)"删除数据",0);
DispString(0,5,(char *)"1.人工删除",sel==1?1:0);
DispString(0,7,(char *)"2.自动删除",sel==2?1:0);
while((c=getchar())==0x00);
switch(c)
{
case KEY_DOWN:
if(sel<2) sel++;
else
sel=1;
break;
case KEY_UP:
if(sel>1) sel--;
else sel=2;
break;
case '1':
get_member(fp,1,a);
a[3]='1';
delete_member(fp,1);
add_member(fp,a);
close_DBF(fp);
sysid=20;
goto end;
case '2':
get_member(fp,1,a);
a[3]='2';
delete_member(fp,1);
add_member(fp,a);
close_DBF(fp);
sysid=20;
goto end;
case KEY_CR:
if(sel==1)
{
get_member(fp,1,a);
a[3]='1';
delete_member(fp,1);
add_member(fp,a);
close_DBF(fp);
sysid=20;
}
else if(sel==2)
{
get_member(fp,1,a);
a[3]='2';
delete_member(fp,1);
add_member(fp,a);
close_DBF(fp);
sysid=20;
}
goto end;
case KEY_ESC:
close_DBF(fp);
sysid=20;
goto end;
default:
break;
}
goto lp6;
end:;
}
void form26()
{
char a[20],b[20];
int i,j,fp,n;
char c;
SetFont(2);
clr_scr();
for(i=0;i<10;i++)
close_DBF(i);
fp=open_DBF((char *)"data2");
DispString(0,1,(char *)"上传口",0);
DispString(0,3,(char *)"下传口",0);
DispString(0,5,(char *)"速率",0);
DispString(0,7,(char *)"删除",0);
get_member(fp,1,a);
if(a[0]=='1')
DispString(6,1,(char *)"座台",0);
else if(a[0]=='2')
DispString(6,1,(char *)"IrDA",0);
else
DispString(6,1,(char *)"Modem",0);
if(a[1]=='1')
DispString(6,3,(char *)"座台",0);
else if(a[1]=='2')
DispString(6,3,(char *)"IrDA",0);
else
DispString(6,3,(char *)"Modem",0);
if(a[2]=='1')
DispString(5,5,(char *)"115200",0);
else if(a[2]=='2')
DispString(5,5,(char *)"57600",0);
else if(a[2]=='3')
DispString(5,5,(char *)"38400",0);
else
DispString(5,5,(char *)"19200",0);
if(a[3]=='1')
DispString(6,7,(char *)"manual",0);
else if(a[3]=='2')
DispString(6,7,(char *)"auto",0);
while(getchar()!=KEY_ESC);
clr_kb();
close_DBF(fp);
sysid=20;
}
void form12()
{
int i,n,sel,fp;
char c,d;
char data[40],data1[40],data3[40];
for(i=0;i<32;i++)
close_DBF(i);
fp=open_DBF((char *)"data1");
for(i=0;i<4;i++)
DispString(0,i*2+1,(char *)" ",0);
n=member_in_DBF(fp);
if(n<1)
{
clr_scr();
DispString(0,1,(char *)"无记录",0);
DispString(0,4,(char *)"任意键继续..",0);
while((d=getchar())==0x00);
clr_kb();
close_DBF(fp);
sysid=10;
goto end;
}
sel=n;
lseek_DBF(fp,2,0,-1);
me:
get_member(fp,2,data);
clr_scr();
gotoxy(1,1);
clr_eol();
gotoxy(1,1);
printf("[%d/%d]",sel,n);
DispString(0,3,data,0);
while((c=getchar())==0x00);
switch(c)
{
case KEY_ESC:
close_DBF(fp);
sysid=10;
goto end;
case KEY_DOWN:
if(sel<n)
{
lseek_DBF(fp,2,1,0);
sel++;
}
else
{
lseek_DBF(fp,2,0,1);
sel=1;
}
break;
case KEY_UP:
if(sel>1)
{
lseek_DBF(fp,2,-1,0);
sel--;
}
else
{
lseek_DBF(fp,2,0,-1);
sel=n;
}
break;
default:
break;
}
goto me;
end:;
}
void form24()
{
int a,i,sel=1;
char data[5],c;
a=BKLIT_TIMEOUT;
itoa(a,data,10);
SetFont(2);
clr_scr();
me: SetCursor(0);
DispString(0,1,(char *)"打开背光",(sel==1)?1:0);
DispString(0,3,(char *)"关闭背光",(sel==2)?1:0);
DispString(0,5,(char *)"时间",0);
DispString(4,7,data,0);
DispString(6,7,(char *)"秒",0);
gotoxy(4,7);
SetCursor(1);
while((c=getchar())==0x00);
if(c==KEY_ESC)
{
SetCursor(0);
for(i=0;i<4;i++)
DispString(0,i*2+1,(char *)" ",0);
sysid=20;
goto end;
}
else if(isdigit(c))
{
gotoxy(4,7);
putchar(c);
gotoxy(4,7);
data[0]=c;
}
else if(c==KEY_DOWN)
{
if(sel<2)
sel++;
else
sel=1;
}
else if(c==KEY_UP)
{
if(sel>1)
sel--;
else
sel=2;
}
else if(c==KEY_CR)
{
SetCursor(0);
if(sel==1)
lcd_backlit(1);
else
lcd_backlit(0);
a=atoi(data);
BKLIT_TIMEOUT=a;
for(i=0;i<4;i++)
DispString(0,i*2+1,(char *)" ",0);
sysid=20;
goto end;
}
goto me;
end:;
}
void form16()
{
int v_main,v_bak;
int i,j,k;
int flag=1;
char save[10],vmain[10],psave[10],vbak[10],aa[20];
for(i=0;i<4;i++)
DispString(0,i*2+1,(char *)" ",0);
clr_scr();
k=free_memory()/1024;
itoa(k,aa,10);
dis_alpha ();
gotoxy(0,1);
DispString(0,1,(char *)"可用内存",0);
gotoxy(8,1);
puts(aa);
DispString(0,3,(char *)"电池电压",0);
DispString(0,5,(char *)"主电池",0);
DispString(0,7,(char *)"备电池",0);
start:
v_main=get_vmain();
v_bak=get_vbackup();
itoa(v_main,save,10);
itoa(v_bak,psave,10);
vmain[0]=save[0];
vmain[1]='.';
j=strlen(save);
for(i=1;i<j;i++)
vmain[i+1]=save[i];
vmain[j+1]='\0';
vbak[0]=psave[0];
vbak[1]='.';
j=strlen(psave);
for(i=1;i<j;i++)
vbak[i+1]=psave[i];
vbak[j+1]='\0';
gotoxy(6,5);
puts(vmain);
gotoxy(6,7);
puts(vbak);
for(i=0;i<1000;i++)
for(j=0;j<100;j++);
while(getchar()!=KEY_ESC)
{
goto start;
}
sysid=10;
}
void up (int fDbf,int nPort,int BaudRate,int index)
{ int i, j, k, n,x,y;
unsigned sum;
char Header [2];
char c;
char szData [400],data[400];
char szBuf [128];
int flag=0;
n = member_in_DBF (fDbf);
clr_scr ();
ConnectingPage ();
if (nPort == 1)
SetCommType (1, 0); // direct 232
else if (nPort == 2)
SetCommType (1, 2); // IR
else if (nPort == 3)
SetCommType (1, 3); // IrDA
nPort = 1; // must use COM2
switch (BaudRate)
{
case 1: c = 0x08; break; // 115200,N,8,1
case 2: c = 0x0a; break; // 57600
case 3: c = 0x0b; break; // 38400
case 4: c = 0x0c; break; // 19200
case 5: c = 0x0d; break; // 9600
}
open_com (nPort, c);
ReTry:
i = 0;
while (i < 10)
{
if (read_com (nPort, (char *)&c)) // if successful reading
szData [i++] = c;
if (c == '\r')
break;
if ((c = getchar()) == KEY_ESC)
{
close_com (nPort);
clr_scr ();
tag=1;
flag=1;
goto end;
}
}
szData [i] = 0;
if (!strcmp (szData, "READ\r"))
{
write_com (nPort, ACK);
while (!com_eot (nPort));
DispString (0, 1, (char*)"数据传输中...",0); // Sending data...
DispString (0, 3, (char*)"....",0); // Transfered:
}
else
{
write_com (nPort, NAK);
while (!com_eot (nPort));
goto ReTry;
}
n = member_in_DBF (fDbf);
lseek_DBF (fDbf, index, 0, 1);
k = 0;
while (k < n)
{
get_member (fDbf, index, (char *)szData);
x=strlen(szData);
y=0;
for(i=0;i<4;i++)
if(szData[i]!=0x20)
y++;
memmove(szData+y,szData+4,x-4);
lseek_DBF (fDbf, index, 1, 0);
j = strlen (szData);
if (j < 2) // invalid data
continue;
sum = Header [0] = k++ % 10; // rotate from 0 to 9
for (i=0; i<j; i++)
sum += szData [i];
szData [j] = sum & 0xFF;
if (szData [j] == '\r') // make sure the checksum isn't '\r'
szData [j]++;
j++;
szData [j] = sum >> 8;
if (szData [j] == '\r') // make sure the checksum isn't '\r'
szData [j]++;
szData [++j] = '\r';
szData [++j] = 0;
itoa (k, szBuf, 10);
DispString (5, 3,szBuf,0); // 2001.02.16
ReSend:
nwrite_com (nPort, (char *)Header, 1);
while (com_eot(nPort) == 0x00);
nwrite_com (nPort, (char *)szData, j);
while (!com_eot (nPort));
ReDo:
i = 0;
while (i < 10)
{
if (read_com (nPort, (char *)&c))
szBuf [i++] = c;
if (c == '\r')
break;
if ((c = getchar()) == KEY_ESC)
{
close_com (nPort);
tag=1;
flag=1;
goto end;
}
}
szBuf [i] = 0;
if (!strcmp (szBuf, NAK))
goto ReSend;
else if (strcmp (szBuf, ACK))
goto ReDo;
}
write_com (nPort, "OVER\r");
while (!com_eot (nPort));
write_com (nPort, "OVER\r");
while (!com_eot (nPort));
DispString (0, 5, (char*)"上载完成",0); // Done
close_com (nPort);
close_DBF(fDbf);
on_beeper( ok_beep);
OSTimeDly(100);
flag=1;
end:
if(flag)
{clr_scr ();
close_DBF(fDbf);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -