📄 main.c
字号:
//else
//strncpy((char *)ContainerNumber1,(char *)TempBuf,sizeof(TempBuf));
}
else strncpy((char *)ContainerNumber1,"CNo1",4);
ReadEeprom(CAT24WC02,EEPROM_CONTAINER2,(uint8 *)TempBuf,sizeof(ContainerNumber2));
if(isgraph(TempBuf[0]))
{ i=0;
while(isgraph(TempBuf[i++]));//==1)&(i<MDTIDLENGTH))
if(i<CNTR_MAXLENGTH)
TempBuf[i-1]=0;
else
TempBuf[CNTR_MAXLENGTH-1]=0;
//temp=strlen((char *)TempBuf);
if(strlen((char *)TempBuf)==0)
strncpy((char *)ContainerNumber2,"CNo2",4);
else //if(strlen((char *)TempBuf)>=sizeof(ContainerNumber2))
strncpy((char *)ContainerNumber2,(char *)TempBuf,sizeof(ContainerNumber2)-1);
//else
//strncpy((char *)ContainerNumber2,(char *)TempBuf,sizeof(TempBuf));
}
else strncpy((char *)ContainerNumber2,"CNo2",4);
ReadEeprom(CAT24WC02,EEPROM_SEALNUMBER1,(uint8 *)TempBuf,sizeof(EEPROM_SEALNUMBER1));
if(isgraph(TempBuf[0]))
{i=0;
while(isgraph(TempBuf[i++]));//==1)&(i<MDTIDLENGTH))
if(i<SN_MAXLENGTH)
TempBuf[i-1]=0;
else
TempBuf[SN_MAXLENGTH-1]=0;
//temp=strlen((char *)TempBuf);
if(strlen((char *)TempBuf)==0)
strncpy((char *)SealNumber1,"SN1",3);
else //if(strlen((char *)TempBuf)>=sizeof(SealNumber1))
strncpy((char *)SealNumber1,(char *)TempBuf,sizeof(SealNumber1)-1);
//else
//strncpy((char *)SealNumber1,(char *)TempBuf,sizeof(TempBuf));
}
else strncpy((char *)SealNumber1,"SN1",3);
ReadEeprom(CAT24WC02,EEPROM_SEALNUMBER2,(uint8 *)TempBuf,sizeof(EEPROM_SEALNUMBER2));
if(isgraph(TempBuf[0]))
{i=0;
while(isgraph(TempBuf[i++]));//==1)&(i<MDTIDLENGTH))
if(i<SN_MAXLENGTH)
TempBuf[i-1]=0;
else
TempBuf[SN_MAXLENGTH-1]=0;
//temp=strlen((char *)TempBuf);
if(strlen((char *)TempBuf)==0)
strncpy((char *)SealNumber2,"SN2",3);
else //if(strlen((char *)TempBuf)>=sizeof(SealNumber2))
strncpy((char *)SealNumber2,(char *)TempBuf,sizeof(SealNumber2)-1);
//else
//strncpy((char *)SealNumber2,(char *)TempBuf,sizeof(TempBuf));
}
else strncpy((char *)SealNumber2,"SN2",3);
ReadEeprom(CAT24WC02,EEPROM_TRAILER,(uint8 *)TempBuf,sizeof(TrailerNumber));
if(isgraph(TempBuf[0]))
{i=0;
while(isgraph(TempBuf[i++]));//==1)&(i<MDTIDLENGTH))
if(i<TRAILER_MAXLENGTH)
TempBuf[i-1]=0;
else
TempBuf[TRAILER_MAXLENGTH-1]=0;
//temp=strlen((char *)TempBuf);
if(strlen((char *)TempBuf)==0)
strncpy((char *)TrailerNumber,"Trail",5);
else //if(strlen((char *)TempBuf)>=sizeof(TrailerNumber))
strncpy((char *)TrailerNumber,(char *)TempBuf,sizeof(TrailerNumber)-1);
//else
//strncpy((char *)TrailerNumber,(char *)TempBuf,sizeof(TempBuf));
}
else strncpy((char *)TrailerNumber,"Trail",5);
*/
/*ReadEeprom(CAT24WC02,EEPROM_MDT,(uint8 *)MDTID,sizeof(MDTID));
ReadEeprom(CAT24WC02,EEPROM_DriverID,(uint8 *)DriverID,sizeof(DriverID));
ReadEeprom(CAT24WC02,EEPROM_CONTAINER1,(uint8 *)ContainerNumber1,sizeof(ContainerNumber1));
ReadEeprom(CAT24WC02,EEPROM_CONTAINER2,(uint8 *)ContainerNumber2,sizeof(ContainerNumber2));
ReadEeprom(CAT24WC02,EEPROM_SEALNUMBER1,(uint8 *)SealNumber1,sizeof(SealNumber1));
ReadEeprom(CAT24WC02,EEPROM_SEALNUMBER2,(uint8 *)SealNumber2,sizeof(SealNumber2));
ReadEeprom(CAT24WC02,EEPROM_TRAILER,(uint8 *)TrailerNumber,sizeof(TrailerNumber));*/
}
/****************************************************************************
* 名称:DelayMS()
* 功能:长软件延时
* 入口参数:dly 延时参数,值越大,延时越久
* 出口参数:无
****************************************************************************/
void DelayUS(uint32 dly)
{
uint16 i;
uint8 j;
for(j=0;j<SYSTEMCLOCK;j++)
for(; dly>0; dly--)
for(i=0; i<11; i++);
}
void DelayMS(uint32 dly)
{ uint8 j;
uint16 i;
for(j=0;j<SYSTEMCLOCK;j++)
{
for(; dly>0; dly--)
for(i=0; i<11000; i++);
}
#ifdef USE_WATCHDOG
WdtFeed();
#endif
}
/***************************************************************/
uint8 CheckNewMessageNum()
{ uint8 i,j;
j=0;
for(i=0;i<8;i++)
{
if(Message[i][0]=='<')
j++;
}
return j;
}
/******************************************************************************/
void ReceiveEventDeal()
{
uint16 i;
// char *p;
switch(ReceiveBuffer[DealPointer+0])
{
case 'M':
i=0;
if(ReceiveBuffer[DealPointer+0]=='M')
{
//NewMessage++;
NewMessage|=~checkch1[MessageNum];
while((ReceiveBuffer[DealPointer]!='\0')&&(ReceiveBuffer[DealPointer]!='!')&&(i<255))
{
Message[ReceiveMessageBox][i++]=ReceiveBuffer[DealPointer]; //COPY A FRAME DATA
if(++DealPointer>MAX_RECEIVE_BUFFER)
DealPointer=0;
}
Message[ReceiveMessageBox][i]='\0';//end
MessageNum++;
if(++ReceiveMessageBox>8)
ReceiveMessageBox=0;
}
else
{
DealPointer=0;
ReceivePointer=0;
}
if(DealPointer>=ReceivePointer)
{
DealPointer=0;
ReceivePointer=0;
}
break;
case 's':
GsmSignal=ReceiveBuffer[DealPointer+2];
break;
case 'W':
break;
case 'G':
break;
default: break;
}
}
/******************************************************************************/
#define COMMANDPOSITION 1
#define MDTPOSITION 2
#define DRIVERIDPOSITION 3
#define DATAPOSITION 4
void DealReceiveGSM(void)
{
uint16 i;
char t;
uint8 RcvData[16];
char *str;
char ReNum[20];//,data_buf[80];
char *PT;
// char *p;
// comm=GSMReceiveBuffer[GSMDealPointer+MDTIDLENGTH+DRIVERIDLENGTH+5];
//i=GoToNChStrl(GSMReceiveBuffer,';',3);
// comm=GSMReceiveBuffer[i];
while(ReceiveEvent!=0)
{
while((GSMReceiveBuffer[GSMDealPointer]!='<')&(GSMDealPointer<=GSMReceivePointer)) GSMDealPointer++; //find '<'
i=GoToNChStrl((char *)GSMReceiveBuffer,';',MDTPOSITION);
if(i>=255)
goto NEXT_EVENT_DEAL;
str=(char *)&GSMReceiveBuffer[GSMDealPointer+i];
memset((char *)RcvData,0,sizeof(RcvData));
strncpy((char *)RcvData,str,6);
if(strncmp((char *)MDTID,(char *)RcvData,6)!=0)
goto NEXT_EVENT_DEAL;
i=GoToNChStrl((char *)GSMReceiveBuffer,';',DRIVERIDPOSITION);
if(i>=255)
goto NEXT_EVENT_DEAL;
str=(char *)&GSMReceiveBuffer[GSMDealPointer+i];
memset((char *)RcvData,0,sizeof(RcvData));
strncpy((char *)RcvData,str,6);
if(strncmp((char *)DriverID,(char *)RcvData,6)!=0)
goto NEXT_EVENT_DEAL;
if((GSMReceiveBuffer[GSMDealPointer]!='<')|(GSMDealPointer>=GSMReceivePointer))
{
ReceiveEvent=0;
VICIntEnClr |= 0x00000040;
GSMDealPointer=0;
GSMReceivePointer=0;
Receiving=0;
FrameEnd=0;
ReceHead=0;
VICIntEnable = 1<<6;//0x00000040; // 使能UART0中断
}
else
{
i=GoToNChStrl((char *)GSMReceiveBuffer,';',1); //found command
if(i>=255)
GSMDealPointer=GSMDealPointer+i;
else
switch(GSMReceiveBuffer[i]) //comm=GSMReceiveBuffer[i-2];//GSMDealPointer+16
{
case 'L':
switch(GSMReceiveBuffer[i+1])
{
case '0': //login
break;
case '1':
if(MenuWaitEvent==LOGIN_MENU)
{
/*i=GoToNChStrl((char *)GSMReceiveBuffer,';',DATAPOSITION);
if(i==255)
goto EXIT_L;
str=(char *)&GSMReceiveBuffer[GSMDealPointer+i];
i=GoToNChStrl(str,'>',1);
if(i==255)
goto EXIT_L;
memset((char *)ACK_Requirly,0,sizeof((char *)ACK_Requirly));
strncpy((char *)ACK_Requirly,str,strlen((char *)ACK_Requirly));*/
MenuWaitEvent=0;
ACK=Approved;
MenuStateFlag=Login(WAITEVENTKEY,MenuStateFlag);
}
break;
case '2':
if(MenuWaitEvent==LOGIN_MENU)
{
/*i=GoToNChStrl((char *)GSMReceiveBuffer,';',DATAPOSITION);
if(i==255)
goto EXIT_L;
str=(char *)&GSMReceiveBuffer[GSMDealPointer+i];
i=GoToNChStrl(str,'>',1);
if(i==255)
goto EXIT_L;
memset((char *)ACK_Requirly,0,sizeof((char *)ACK_Requirly));
strncpy((char *)ACK_Requirly,str,sizeof(ACK_Requirly));*/
MenuWaitEvent=0;
ACK=Disapproved;
MenuStateFlag=Login(WAITEVENTKEY,MenuStateFlag);
}
break;
case '3'://logout
break;
case '4'://attach
break;
case '5'://detach
break;
case '6':
if(MenuWaitEvent==LOGOUT_MENU)
{
/*i=GoToNChStrl((char *)GSMReceiveBuffer,';',DATAPOSITION);
if(i==255)
goto EXIT_L;
str=(char *)&GSMReceiveBuffer[GSMDealPointer+i];
i=GoToNChStrl(str,'>',1);
if(i==255)
goto EXIT_L;
memset((char *)ACK_Requirly,0,sizeof((char *)ACK_Requirly));
strncpy((char *)ACK_Requirly,str,sizeof(ACK_Requirly));*/
MenuWaitEvent=0;
ACK=Approved;
MenuStateFlag=Logout1(WAITEVENTKEY,MenuStateFlag);
}
break;
case '7':
if(MenuWaitEvent==LOGOUT_MENU)
{
/*i=GoToNChStrl((char *)GSMReceiveBuffer,';',DATAPOSITION);
if(i==255)
goto EXIT_L;
str=(char *)&GSMReceiveBuffer[GSMDealPointer+i];
i=GoToNChStrl(str,'>',1);
if(i==255)
goto EXIT_L;
memset((char *)ACK_Requirly,0,sizeof((char *)ACK_Requirly));
memcpy((char *)ACK_Requirly,str,sizeof(ACK_Requirly));*/
MenuWaitEvent=0;
ACK=Disapproved;
MenuStateFlag=Logout1(WAITEVENTKEY,MenuStateFlag);
}
break;
default:
break;
}
// EXIT_L:
Beep(100);
str=(char *)&GSMReceiveBuffer[GSMDealPointer];
GSMDealPointer+=strlen(str)+1;
if(GSMDealPointer>=GSMReceivePointer)
{
VICIntEnClr =1<<6;// 0x00000040;
GSMDealPointer=0;
GSMReceivePointer=0;
VICIntEnable= 1<<6;//0x00000040; // 使能UART0中断
}
break;
case InBoxMsg:
if(GSMReceiveBuffer[i+1]=='0')
{
i=GoToNChStrl((char *)GSMReceiveBuffer,';',DATAPOSITION);
if((i==255)&(i==0))
goto EXIT_InBoxMsg;
str=(char *)&GSMReceiveBuffer[GSMDealPointer+i];
str--;
memset((char *)Message[ReceiveMessageBox],0,sizeof(Message[ReceiveMessageBox]));
memcpy((char *)Message[ReceiveMessageBox],str,255);//,strlen(str));
Message[ReceiveMessageBox][0]='<';
//str=(char *)&GSMReceiveBuffer[GSMDealPointer];
//GSMDealPointer+=strlen(str)+1;
WriteEeprom(CAT24WC02, EEPROM_MsgAddr+255*MessageNum,(uint8 *)Message[ReceiveMessageBox], 255);
NewMessage++;
MessageNum++;
if(++ReceiveMessageBox>8)
ReceiveMessageBox=0;
WriteEeprom(CAT24WC02, EEPROM_CurrentMsgAddr,(uint8 *)&ReceiveMessageBox, 1);
}
EXIT_InBoxMsg:
Beep(100);
str=(char *)&GSMReceiveBuffer[GSMDealPointer];
GSMDealPointer+=strlen(str)+1;
if(GSMDealPointer>=GSMReceivePointer)
{
VICIntEnClr =1<<6;// 0x00000040;
GSMDealPointer=0;
GSMReceivePointer=0;
VICIntEnable= 1<<6;//0x00000040; // 使能UART0中
}
break;
case '1': //work order
if(GSMReceiveBuffer[i+1]=='0') //work summary
{;}
else if((GSMReceiveBuffer[i+1]=='1')||(GSMReceiveBuffer[i+1]=='2')) //job detail 1
{
if(WorkSavePointe>7)
WorkSavePointe=0;
t=GSMReceiveBuffer[i+1];
i=GoToNChStrl((char *)GSMReceiveBuffer,';',DATAPOSITION);
if(i==255)
goto EXIT_1;
str=(char *)&GSMReceiveBuffer[GSMDealPointer+i];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -