?? 防錯料.c
字號:
#include <..\lib\8000lib.h>
#include <ucos.h>
#define BYTE unsigned char
#define BOOL unsigned char
#define ULONG unsigned long
#define TRUE 1
#define FALSE 0
#define CANCEL 2
#define MaxRow 7
#define MaxCol 19
#define NULL 0x00
static char *ACK = "ACK\r";
static char *NAK = "NAK\r";
int beep1[4] = {16, 5, 0, 0};
int beep2[8] = {30, 10, 0, 5, 30, 10, 0, 0};
int beep3[8] = {30, 50, 0, 5, 30, 50, 0, 0};
void DispString (int x, int y, char *str, int mode)
{
if (y < 0 || y > MaxRow)
return;
SetVideoMode (mode);
gotoxy (x, y);
printf ("%s", str);
SetVideoMode (0);
}
/*
display a english line
*/
void DispLine(int line, char *str, int mode)
{
int y;
if(line < 1 || line > 4)
return;
y = line * 2 - 1;
SetVideoMode (mode);
gotoxy (0, y);
printf ("%s", str);
SetVideoMode (0);
}
/*
display a simplify chinese string line
*/
void SCDispLine(int line, char *str, int mode)
{
int y;
if(line < 1 || line > 4)
return;
y = line * 2 - 1;
SetVideoMode (mode);
gotoxy (0, y);
scputs (str);
SetVideoMode (0);
}
static BOOL ConnectingPage (void)
{
clr_scr ();
DispString (0, 1, (char*)"連接中. ", 0);
DispString (0, 3, (char*)" ", 0);
DispString (0, 5, (char*)"按 ESC 退出", 0);
//DispString (0, 7, (char*)"cancel ", 0);
return TRUE;
}
BOOL DownloadLookup (void)
{ int i, j, k, m, sum, nPort;
int data_file;
BYTE c;
BYTE szData [256];
BYTE szBuf[256];
ConnectingPage ();
SetCommType (1, 2); // IR
nPort = 1; // must use COM1
c = 0x08; // 115200,N,8,1
open_com (nPort, c);
ReTry : //confirm connection(shake hands)
i = 0;
while (i < 10)
{
if (read_com (nPort, (char *)&c))
szData [i++] = c;
if (c == '\r')
break;
if ((c = getchar()) == KEY_ESC)
{
close_com (nPort);
return FALSE;
}
}
szData [i] = 0;
if (!strcmp (szData, "CIPHER\r"))
{
DispString (0, 1, (char*)"下載中", 0);
write_com (nPort, ACK);
while (!com_eot (nPort));
}
else
{
write_com (nPort, NAK);
while (!com_eot (nPort));
goto ReTry;
}
remove ("demoDBF");
data_file = create_DBF ((char *)"demoDBF", 220);
create_index (data_file,1, 0, 90);
// rebuild_index(slothandle,2,1,30,30);
m = 0;
while (1) // download lookup file
{
ReDo:
i = 0;
c = 0;
while (c != '\r')
{
if (read_com (nPort, (char *)&c))
*(szData+i++) = c;
if (getchar() == KEY_ESC)
{
close_com (nPort);
return FALSE;
}
}
i--;
*(szData+i) = 0;
if (!strcmp (szData, "OVER"))
{
write_com (nPort, ACK);
while (!com_eot (nPort));
break;
}
sum = 0; //Verify
for (j=0; j<i-2; j++)
sum += szData [j];
j = sum / 256;
if (j == 13)
j++;
k = sum % 256;
if (k == 13)
k++;
if (j != szData [i-2] || k != szData [i-1]) // checksum not correct
{
write_com (nPort, NAK);
while (!com_eot (nPort));
goto ReDo;
}
szData [i-2] = 0;
add_member (data_file, (char *)szData);
itoa (++m, szBuf, 10); //itoa(int to ascii)-> progress
DispString (1, 3, (char*)szBuf, 0); // show data transfered
write_com (nPort, ACK);
while (!com_eot (nPort));
}
close_com (nPort); // close COM
clr_scr ();
on_beeper (beep2);
close_DBF(data_file);
DispString (0, 1, (char*)"傳輸完成", 0);
//DispString (0, 5, (char*)"Please wait", 0);
OSTimeDly (200);
return TRUE;
}
BOOL UploadDBF (int fDbf, int nPort)
{
int i, j, k, n;
unsigned sum;
BYTE Header [2];
BYTE c;
BYTE szData [256];
BYTE szBuf[256];
ConnectingPage ();
SetCommType (1, 2); // IR
nPort = 1; // must use COM2
c = 0x08; // 115200,N,8,1
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 ();
return FALSE;
}
}
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, 1, 0, SEEK_SET); //SEEK_SET=1(from 8000lib.h)
k = 0;
while (k < n)
{
get_member (fDbf, 1, (char *)szData);
lseek_DBF (fDbf, 1, 1, SEEK_CUR);
j = strlen (szData);
if (j < 2)
{
k++;
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 (11, 3, (char*)szBuf, 0); // show data transfered
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);
clr_scr ();
return FALSE;
}
}
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));
on_beeper (beep2);
DispString (11, 3, (char*)"完成", 0);
DispString (0, 5, (char*)" ", 0);
DispString (0, 7, (char*)" ", 0);
close_com (nPort);
OSTimeDly (200);
return TRUE;
}
BOOL GetBarData(void)
{
BYTE tempkey;
while (1)
{
if (Decode ())
{
on_beeper (beep2);
HaltScanner1();
return TRUE;
}
else
{
tempkey=getchar();
if (tempkey==KEY_ESC)
{
HaltScanner1();
break;
}
}
}
return CANCEL;
}
void main()
{
BYTE c,h,jk;
BOOL flag;
char key;
int i,n,j,m,ijk,jj,searchflag,saveflag,filehandle,len,slothandle,parthandle,stop,partlen,f_hd,ref_hd;
char tank_number[31];
char zyd[60];
char BarCodeII[95];
char BarCodeI[32];
char zb[32];
char zb1[32];
char slot[60];
char part[95];
char cur_time[16];
char oper[16];
char oper1[16];
char all[200];
char dall[200];
char key_value[10] = ",F16 X";
start:
while(1)
{
clr_scr ();
DispString (5, 1, (char *)"1.采集", 0);
DispString (5, 3, (char *)"2.下載", 0);
DispString (5, 5, (char *)"3.上傳", 0);
while(1)
{
c = getchar();
if(c == '1')
{
clr_scr ();
DispString (5, 1, (char *)"1.巡檢", 0);
DispString (5, 3, (char *)"2.換料", 0);
while(1)
{
h=getchar();
if(h=='1')
{
if (!access("saveDBF"))
{
f_hd = create_DBF ((char *)"saveDBF", 200);
create_index (f_hd, 1, 0, 30);
close_DBF(f_hd);
}
if (!access("demoDBF"))
{
filehandle = create_DBF ((char *)"demoDBF", 95);
create_index (filehandle, 1, 0, 90);
close_DBF(filehandle);
}else
if (access("demoDBF"))
{
slothandle=open_DBF((char *)"demoDBF");
if(rebuild_index(slothandle,2,0,30,31)==1)
{
}else
{
clr_scr ();
DispString (0, 1, (char *)"未創建索引", 0);
DispString (0, 1, (char *)"ESC返回", 0);
while((stop=getchar())!=KEY_ESC);
goto start;
}
close_DBF(slothandle);
}
//************************PART NO******************************//
clr_scr ();
DispString (0, 1, (char *)"輸操作員號", 0);
saveflag=0;
InitScanner1();
m = 0;
while (1)
{
if (Decode ())
{
on_beeper (beep2);
HaltScanner1();
flag=1;
break;
}
else
{
if (kbhit())
{
key=getchar();
if (key==KEY_ESC)
{
goto start;
}
}
}
}
if (flag==0)
{
break;
}
else if (flag==1)
{
partlen=CodeLen;
for (i=0;i<CodeLen;i++)
{
oper[i]=CodeBuf[i];
}
while (i<30)
{
oper[i]=' ';
i++;
}
oper[i]=0x00;
}
part:
clr_scr ();
DispString (0, 1, (char *)"請掃PART No:", 0);
saveflag=0;
InitScanner1();
m = 0;
while (1)
{
if (Decode ())
{
on_beeper (beep2);
HaltScanner1();
flag=1;
break;
}
else
{
if (kbhit())
{
key=getchar();
if (key==KEY_ESC)
{
goto start;
}
}
}
}
if (flag==0)
{
break;
}
else if (flag==1)
{
partlen=CodeLen;
for (i=0;i<CodeLen;i++)
{
part[i]=CodeBuf[i];
}
while (i<30)
{
part[i]=' ';
i++;
}
part[i]=0x00;
}
slot:
clr_scr ();
DispString (0, 1, (char *)"請掃SLOT No:", 0);
InitScanner1();
m = 0;
while (1)
{
if (Decode ())
{
on_beeper (beep2);
HaltScanner1();
flag=1;
break;
}
else
{
if (kbhit())
{
key=getchar();
if (key==KEY_ESC)
{
goto part;
}
}
}
}
if (flag==0)
{
break;
}
else if (flag==1)
{
for (i=0;i<CodeLen;i++)
{
slot[i]=CodeBuf[i];
}
while (i<30)
{
slot[i]=' ';
i++;
}
slot[i]=0x00;
}
zyd: clr_scr ();
DispString (0, 1, (char *)"請掃料號:", 0);
saveflag=0;
InitScanner1();
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -