📄 main.c
字号:
#include "config.h"
#define V10
#define USERFID
//#define TEST_RFID
//#pragma arm section rodata
/***************************************************************************************************/
const static uint8 DS2401_ID[3]={0X02,0X52,0X00};
/**********************************************************************************************/
volatile uint16 MenuState,MenuStateFlag,MessageWritePointer,InputLength,InputLengthMin,InputLengthMax;
volatile uint8 TimerEvent,KeyBoardState,Key,ReceiveMessageBox,ReceiveEvent,Receiving,SendBusy,MessageNum;
volatile uint8 ReceiveBuffer[MAX_RECEIVE_BUFFER],SendBuffer[MAX_SEND_BUFFER];
volatile uint16 SendPointer,ReceivePointer,DealPointer;
volatile uint8 ContainerNumberAck[150],ACK_Requirly[100],GpsDateTimePos[80];
volatile uint8 GsmSignal,DisplayCx,DisplayCy,DisplayPage,DisplayEntry;
volatile uint8 GSMReceiveBuffer[GSM_MAX_RECEIVE_BUFFER],GSMSendBuffer[GSM_MAX_SEND_BUFFER],GsmACK[8];
volatile uint16 GSMSendPointer,LDGSMSendPointer,GSMReceivePointer,GSMDealPointer;
volatile uint32 WaitingACKTimer;
volatile char ContainerNumber[8][20],ConsigNote[8][50],InPortCode[8][50],KonfaiNumber[8][50],CustomerName[8][30],Pickup[8][5],DeportCode[8][5],InPort[8][5],OperatorRoom[8][20],BookingRef[8][20];
volatile char DisApprovedText[96],ServerAckText[96];
volatile uint8 SendSaDaPointer,SaveDaPointer,SignalLowToHigh,KeyOnePress;
volatile char InstructionMsg[JOB_MAXLENGTH],DetInstruMsg[8][DJOB_MAXLENGTH],WaitingACK,ACK;
volatile char Odometer[8],NewAddress[10],StationCode[8],WorkSavePointe,WorkType,WorkTypeList;
volatile char Message[MaxMsg][MaxMsgsize],TempSaveMessage[100],ObjectNumber[8*20],InputBuffer[255],ACK_BreakDown[100];
volatile uint16 DealMessage,UARTReceieTimerLimit,UARTNoReceieTC,ReInstrPointer;
volatile char DriverID[DRIVERIDLENGTH],MDTID[MDTIDLENGTH];
volatile char ContainerNumber1[CNTR_MAXLENGTH],ContainerNumber2[CNTR_MAXLENGTH],TrailerNumber[TRAILER_MAXLENGTH];
volatile char SealNumber1[SN_MAXLENGTH],SealNumber2[SN_MAXLENGTH],GSMNumber[GSM_MAXLENGTH];
volatile char QtyContainer[3];
volatile uint8 week,month,day,hour,minute,second,NewMessage,ReceHead,FrameEnd,WorkFlag;
volatile uint16 year,RecTemp,AddressTemp;
volatile uint8 CurDisMsg,CurMsg,NewJobFlag,FlashNewJobFlag;
volatile uint8 rcv_new; // 接收新数据标志*/
volatile char RefueValue[6],RefuelApprovedCode[8],RefuelStationCode[20];
volatile uint8 MenuPressKeyFlag,LastKey,NowKey;
volatile uint16 MenuWaitEvent,SendingFlag;
//struct date today;
//struct time now;
volatile uint8 GobalTimer,LogInOutStatue,PowerOnCounter;
//#ifdef V10
volatile uint8 GpsSendPointer,GpsReceivePointer,GpsDealPointer;
volatile uint8 GpsRecvBuffer[GPS_RECV_BUFFER],GpsSendBuffer[GPS_SEND_BUFFER];
volatile uint8 RfidRecvBuffer[RFID_RECV_BUFFER],RfidSendBuffer[RFID_SEND_BUFFER];
volatile uint8 PritRecvBuffer[PRIT_RECV_BUFFER],PritSendBuffer[PRIT_SEND_BUFFER];
//#endif
const char checkch1[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
/*************************************************/
/*
uint8 const DISP_TAB[16] = { 0x5A, 0xA5, 0x5A, 0xA5, 0x5A, 0xA5, 0x5A, 0xA5,
0x5A, 0xA5, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA
};
uint8 rcv_data; */
/*****************************************************************************/
void Lcm19264BackLightOn()
{
IO0SET = LCM_BG;
}
void Lcm19264BackLightOff()
{
IO0CLR = LCM_BG;
}
void InitBeep(void)
{
#ifdef ZLG_MEDOBOARD
IO0DIR = BEEPCON; //a sound beep
#else
IO1DIR = BEEPCON; //a sound beep
#endif
}
void Beep(uint16 i)
{
#ifdef ZLG_MEDOBOARD
IO0CLR = BEEPCON; //a sound beep
DelayMS(i);
IO0SET = BEEPCON;
#else
IO1CLR = BEEPCON; //a sound beep
DelayMS(i);
IO1SET = BEEPCON;
#endif
}
void PowerON()
{
IO0SET = POWER_ONOFF;
}
void PowerOFF()
{
IO0CLR = POWER_ONOFF;
}
char PowerCheck(void)
{
if ((IO0PIN & POWER_CHECK) == 0)
return 0;
else return 1;
}
void PowerSwitchOnOffCheck(void)
{
if(PowerCheck()==0)
PowerOnCounter=1;
else if(PowerCheck()==1)
{
if(PowerOnCounter==1)
{
DelayMS(30);
if(PowerCheck()==1)
{
CLRLCD(0);
LCM_DispPageCh(CLOSEMENU);
while(1)
{
PowerOFF();
DispTime(0,24,"sy");
}
}
}
}
}
void EnableUart0INT(void)
{
VICIntEnable = 1<<6;//0x00000040; // 使能UART0中断
}
void DisableUart0INT(void)
{
VICIntEnClr =1<<6;// 0x00000040;
}
void __irq IRQ_Eint3(void)
{
uint32 i;
i = IO0SET; // 读取当前B1控制值
if( (i&BEEPCON)==0 ) // 控制B1输出取反
{ IO0SET = BEEPCON;
}
else
{ IO0CLR = BEEPCON;
}
//Key=MDTGetKeyboard();
//VICIntEnClr=0x00020000;
Key=1;
EXTINT = 0x08; // 清除EINT1中断标志
VICVectAddr = 0; // 向量中断结束
}
void InitEint3()
{
/* PINSEL1 = 0x20000000; // 设置管脚连接,P0.30设置为EINT3
EXTMODE |= 0x08; // 设置EINT3中断为边沿触发模式
EXTPOLAR &= 0xfe; // 设置EINT3中断为下降沿触发
*/
VICIntSelect = 0x00000000; // 设置所有中断分配为IRQ中断
VICVectCntl3 = 0X20|17; // 分配EINT3中断到向量中断3
VICVectAddr3 = (int32)IRQ_Eint3;//IRQ_Eint3; // 设置中断服务程序地址
EXTINT = 0x08; // 清除EINT3中断标志
VICIntEnable = 1<<17;//0x00020000; // 使能ext EINT中断
}
void Uart1MuxSel(uint8 GpsRfid)
{
if(GpsRfid==0)
{
IO0SET = SEL_GPS;
IO0SET = SEL_RFID;
}
else if(GpsRfid==UART1GPS)
{
IO0SET = SEL_RFID;
DelayMS(1);
IO0CLR = SEL_GPS;
}
else if(GpsRfid==UART1RFID)
{
IO0SET = SEL_GPS;
DelayMS(1);
IO0CLR = SEL_RFID;
}
}
/*********************************************************************************/
void InitMdtPram(void)
{
uint16 i;
for(i=0;i<MaxJobMsg;i++)
memset((char *)DetInstruMsg[i],0,sizeof(DetInstruMsg[i]));
for(i=0;i<8;i++)
memset((char *)DetInstruMsg[i],0,sizeof(DetInstruMsg[i]));
for(i=0;i<8;i++)
ReadEeprom(CAT24WC256, EEPROM_DetInstruMsg1+DJOB_MAXLENGTH*i,(uint8 *)DetInstruMsg[i], DJOB_MAXLENGTH);
ReadEeprom(CAT24WC256, EEPROM_WorkloadAddr,(uint8 *)&WorkSavePointe, 1);
if(WorkSavePointe>7)
WorkSavePointe=0;
for(i=0;i<MaxMsg;i++)
memset((char *)Message[i],0,sizeof(Message[i]));
for(i=0;i<MaxMsg;i++)
ReadEeprom(CAT24WC256, EEPROM_MsgAddr+255*i,(uint8 *)Message[i], 255);
ReadEeprom(CAT24WC256, EEPROM_CurrentMsgAddr,(uint8 *)&ReceiveMessageBox, 1);
if(ReceiveMessageBox>=8)
ReceiveMessageBox=0;
/*TEST*/
/*for (i=0; i<75; i++)
data_buf[i] = i+1 ;
WriteEeprom(CAT24WC256, 2,(uint8 *)data_buf,64);
//I2C_WriteNByte(CAT24WC02, TWO_BYTE_SUBA, 6, data_buf, 63);;
DelayMS(10);
for (i=0; i<75; i++)
data_buf[i] = 0;
ReadEeprom(CAT24WC256,2,(uint8 *)data_buf,sizeof(data_buf));
//I2C_ReadNByte(CAT24WC02, TWO_BYTE_SUBA, 6, data_buf, 63);
*/
/*EEPROM SET*/
/*
WriteEeprom(CAT24WC256, EEPROM_MDT,(uint8 *)"MDT001",6);
WriteEeprom(CAT24WC256, EEPROM_DriverID,(uint8 *)"Driver", 6);
WriteEeprom(CAT24WC256, EEPROM_CONTAINER1,(uint8 *)"CNT1", 4);
WriteEeprom(CAT24WC256, EEPROM_CONTAINER2,(uint8 *)"CNT2", 4);
WriteEeprom(CAT24WC256, EEPROM_SEALNUMBER1,(uint8 *)"SN1", 3);
WriteEeprom(CAT24WC256, EEPROM_SEALNUMBER2,(uint8 *)"SN2", 3);
WriteEeprom(CAT24WC256, EEPROM_TRAILER,(uint8 *)"TRAILER", 7);
*/
memset((char *)GpsDateTimePos,0,sizeof((char *)GpsDateTimePos));
memcpy((char *)GpsDateTimePos,"GPS",3);
memset((char *)Odometer,0,sizeof((char *)Odometer));
memcpy((char *)Odometer,"60",2);
memset((char *)DriverID,0,sizeof((char *)DriverID));
memcpy((char *)DriverID,"Driver",6);
memset((char *)MDTID,0,sizeof((char *)MDTID));
memcpy((char *)MDTID,"MDT001",6);
memset((char *)SealNumber1,0,sizeof((char *)SealNumber1));
memcpy((char *)SealNumber1,"SN1",3);
memset((char *)SealNumber2,0,sizeof((char *)SealNumber2));
memcpy((char *)SealNumber2,"SN2",3);
memset((char *)ContainerNumber1,0,sizeof((char *)ContainerNumber1));
memcpy((char *)ContainerNumber1,"CNo1",4);
memset((char *)ContainerNumber2,0,sizeof((char *)ContainerNumber2));
memcpy((char *)ContainerNumber2,"CNo2",4);
memset((char *)TrailerNumber,0,sizeof((char *)TrailerNumber));
memcpy((char *)TrailerNumber,"Trailer",7);
/*
memset((char *)MDTID,0,sizeof((char *)MDTID));
memset((char *)DriverID,0,sizeof((char *)DriverID));
memset((char *)ContainerNumber1,0,sizeof((char *)ContainerNumber1));
memset((char *)ContainerNumber2,0,sizeof((char *)ContainerNumber2));
memset((char *)SealNumber1,0,sizeof((char *)SealNumber1));
memset((char *)SealNumber2,0,sizeof((char *)SealNumber2));
memset((char *)TrailerNumber,0,sizeof((char *)TrailerNumber));
memset((char *)InstructionMsg,0,sizeof((char *)InstructionMsg));
memset((char *)DetInstruMsg1,0,sizeof((char *)DetInstruMsg1));
memset((char *)DetInstruMsg2,0,sizeof((char *)DetInstruMsg2));
memset((char *)DeviceID,0,sizeof(DeviceID));
memset((char *)Odometer,0,sizeof(Odometer));
memset((char *)RFIDNO,0,sizeof(RFIDNO));
*/
/*
ReadEeprom(CAT24WC02, EEPROM_InstructionMsg,(uint8 *)InstructionMsg, DJOB_MAXLENGTH);
if(isgraph(InstructionMsg[0]))
{i=0;
while(isgraph(InstructionMsg[i++]));//==1)&(i<MDTIDLENGTH))
if(i<JOB_MAXLENGTH)
InstructionMsg[i-1]=0;
else
InstructionMsg[JOB_MAXLENGTH-1]=0;
}
else
memset((char *)InstructionMsg,0,sizeof(InstructionMsg));
ReadEeprom(CAT24WC02, EEPROM_DetInstruMsg1,(uint8 *)DetInstruMsg1, DJOB_MAXLENGTH);
if(isgraph(DetInstruMsg1[0]))
{i=0;
while(isgraph(DetInstruMsg1[i++]));//==1)&(i<MDTIDLENGTH))
if(i<DJOB_MAXLENGTH)
DetInstruMsg1[i-1]=0;
else
DetInstruMsg1[DJOB_MAXLENGTH-1]=0;
}
else
memset((char *)DetInstruMsg1,0,sizeof(DetInstruMsg1));
ReadEeprom(CAT24WC02, EEPROM_DetInstruMsg2,(uint8 *)DetInstruMsg2, DJOB_MAXLENGTH);
if(isgraph(DetInstruMsg2[0]))
{i=0;
while(isgraph(DetInstruMsg2[i++]));//==1)&(i<MDTIDLENGTH))
if(i<DJOB_MAXLENGTH)
DetInstruMsg2[i-1]=0;
else
DetInstruMsg2[DJOB_MAXLENGTH-1]=0;
}
else
memset((char *)DetInstruMsg2,0,sizeof(DetInstruMsg2));
ReadEeprom(CAT24WC02,EEPROM_MDT,(uint8 *)TempBuf,sizeof(MDTID));
if(isgraph(TempBuf[0]))
{i=0;
while(isgraph(TempBuf[i++]));//==1)&(i<MDTIDLENGTH))
if(i<MDTIDLENGTH)
TempBuf[i-1]=0;
else
TempBuf[MDTIDLENGTH-1]=0;
//temp=strlen((char *)TempBuf);
if(strlen((char *)TempBuf)==0)
strncpy((char *)MDTID,"MDT01",5);
else //if(strlen((char *)TempBuf)>=sizeof(MDTID))
strncpy((char *)MDTID,(char *)TempBuf,sizeof(MDTID)-1);
// else (strlen((char *)TempBuf)>0)
//strncpy((char *)MDTID,(char *)TempBuf,sizeof(TempBuf));
}
else
strncpy((char *)MDTID,"MDT01",5);
ReadEeprom(CAT24WC02,EEPROM_DriverID,(uint8 *)TempBuf,sizeof(DriverID));
if(isgraph(TempBuf[0]))
{i=0;
while(isgraph(TempBuf[i++]));//==1)&(i<MDTIDLENGTH))
if(i<DRIVERIDLENGTH)
TempBuf[i-1]=0;
else
TempBuf[DRIVERIDLENGTH-1]=0;
//temp=strlen((char *)TempBuf);
if(strlen((char *)TempBuf)==0)
strncpy((char *)DriverID,"Driver01",8);
else //if(strlen((char *)TempBuf)>=sizeof(DriverID))
strncpy((char *)DriverID,(char *)TempBuf,sizeof(DriverID)-1);
// else
//strncpy((char *)DriverID,(char *)TempBuf,sizeof(TempBuf));
}
else
strncpy((char *)DriverID,"Driver01",8);
ReadEeprom(CAT24WC02,EEPROM_CONTAINER1,(uint8 *)TempBuf,sizeof(ContainerNumber1));
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 *)ContainerNumber1,"CNo1",4);
else //if(strlen((char *)TempBuf)>=sizeof(ContainerNumber1))
strncpy((char *)ContainerNumber1,(char *)TempBuf,sizeof(ContainerNumber1)-1);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -