unsigned char I2C_Send(const unsigned char *inbuf,unsigned char inbufsize,unsigned char *outbuf,unsigned char outbufsize) { SendBuf_I2C(inbuf,inbufsize); Start_Time(5); while(g_bOverTime==0); ReadBuf_I2C(outbuf,outbufsize); Start_Time(5); while((g_bOverTime==0)&&(g_cI2CStatus!=I2CSTATUS_RXSUCC)); if(g_cI2CStatus!=I2CSTATUS_RXSUCC) return 0; return 1; }
Activity_Data::Activity_Data (int traveler, int activity) : Class2_Index (traveler, activity), Static_Scale () { Purpose (0); Priority (0); Start_Time (0); End_Time (0); Duration (0); Mode (0); Vehicle (0); Location (0); Passengers (0); Constraint (0); }
void Test_SL030(void) { #define RCVCMD g_cRxBuf[1] #define RCVSTA g_cRxBuf[2] WAKEUP_H; Start_Time(5); while(g_bOverTime==0); WAKEUP_L; Start_Time(5); while(g_bOverTime==0); WAKEUP_H; g_cCardType=0xff; if(CARDIN!=0) return; Init_I2C(); if(I2C_SelectCard(g_cRxBuf,sizeof(g_cRxBuf))==0) return; if((RCVCMD!=0x01)||(RCVSTA!=0)) return; if(g_cRxBuf[g_cRxBuf[0]]==1) g_cCardType=CARDTYPE_S50; //Mifare 1k 4 byte UID else if(g_cRxBuf[g_cRxBuf[0]]==2) g_cCardType=CARDTYPE_S50; //Mifare 1k 7 byte UID else if(g_cRxBuf[g_cRxBuf[0]]==3) g_cCardType=CARDTYPE_UL; //Ultralight 7 byte UID else if(g_cRxBuf[g_cRxBuf[0]]==4) g_cCardType=CARDTYPE_S70; //Mifare 4k 4 byte UID else if(g_cRxBuf[g_cRxBuf[0]]==5) g_cCardType=CARDTYPE_S70; //Mifare 4k 7 byte UID else if(g_cRxBuf[g_cRxBuf[0]]==6) g_cCardType=CARDTYPE_DES; //DesFire 7 byte UID switch(g_cCardType) { case CARDTYPE_S50: case CARDTYPE_S70: if(I2C_LoginSector0(g_cRxBuf,sizeof(g_cRxBuf))==0) return; if((RCVCMD!=0x02)||(RCVSTA!=0x02)) return; if(I2C_WriteBlock1(g_cRxBuf,sizeof(g_cRxBuf))==0) return; if((RCVCMD!=0x04)||(RCVSTA!=0x00)) return; if(I2C_ReadBlock1(g_cRxBuf,sizeof(g_cRxBuf))==0) return; if((RCVCMD!=0x03)||(RCVSTA!=0x00)) return; if(memcmp(&IIC_ComWriteBlock1[3],&g_cRxBuf[3],16)!=0) return; if(I2C_ComIntiPurse1(g_cRxBuf,sizeof(g_cRxBuf))==0) return; if((RCVCMD!=0x06)||(RCVSTA!=0x00)) return; if(I2C_ComIncrPurse1(g_cRxBuf,sizeof(g_cRxBuf))==0) return; if((RCVCMD!=0x08)||(RCVSTA!=0x00)) return; if(I2C_ComDecrPurse1(g_cRxBuf,sizeof(g_cRxBuf))==0) return; if((RCVCMD!=0x09)||(RCVSTA!=0x00)) return; if(I2C_ComReadPurse1(g_cRxBuf,sizeof(g_cRxBuf))==0) return; if((RCVCMD!=0x05)||(RCVSTA!=0x00)) return; //Check value lPurseValue=g_cRxBuf[6]; lPurseValue=(lPurseValue<<8)+g_cRxBuf[5]; lPurseValue=(lPurseValue<<8)+g_cRxBuf[4]; lPurseValue=(lPurseValue<<8)+g_cRxBuf[3]; if(lPurseValue!=0x12345678+0x00000002-0x00000001) return; if(I2C_ComCopyValue(g_cRxBuf,sizeof(g_cRxBuf))==0) return; if((RCVCMD!=0x0a)||(RCVSTA!=0x00)) return; I2C_ComHalt(); BuzzerOn(); break; case CARDTYPE_UL: if(I2C_ComWriteUltralightPage5(g_cRxBuf,sizeof(g_cRxBuf))==0) return; if((RCVCMD!=0x11)||(RCVSTA!=0x00)) return; if(I2C_ComReadUltralightPage5(g_cRxBuf,sizeof(g_cRxBuf))==0) return; if((RCVCMD!=0x10)||(RCVSTA!=0x00)) return; if(memcmp(&IIC_ComWriteUltralightPage5[3],&g_cRxBuf[3],4)!=0) return; I2C_ComHalt(); BuzzerOn(); break; default: break; } }
void I2C_ComHalt(void) { SendBuf_I2C(IIC_ComHalt,sizeof(IIC_ComHalt)); Start_Time(5); while(g_bOverTime==0); }