📄 sam_demokit.~cpp
字号:
return (0);
}
/****************************************************************************\
*
* cpu card Commands
*
\****************************************************************************/
int WINAPI OY_CPU_reset(unsigned int AddrX)
{
UPtr = NULL;
return (send_cmd(AddrX , 0x74, 0));
}
/**************************************************************************/
/**************************************************************************/
int WINAPI OY_CPU_command2(unsigned int AddrX ,unsigned char len, unsigned char *out , unsigned char *in)
{
memcpy (&SBuffer[3], &out[0], len);
UPtr = in;
return (send_cmd( AddrX ,0x76, len));
}
/**************************************************************************/
/**************************************************************************/
int WINAPI OY_CPU_command1(unsigned int AddrX ,unsigned char *out , unsigned char *in)
{
memcpy (&SBuffer[3], &out[0], 5);
UPtr = in;
return (send_cmd(AddrX ,0x77, 5));
}
/****************************************************************************\
*
* sam card Commands
*
\****************************************************************************/
int WINAPI OY_sam_reset(unsigned int AddrX)
{
UPtr = NULL;
return (send_cmd( AddrX ,0x60, 0));
}
/**************************************************************************/
/**************************************************************************/
int WINAPI OY_sam_command2(unsigned int AddrX ,unsigned char len, unsigned char *out , unsigned char *in)
{
memcpy (&SBuffer[3], &out[0], len);
UPtr = in;
return (send_cmd(AddrX ,0x62, len));
}
/**************************************************************************/
/**************************************************************************/
int WINAPI OY_sam_command1(unsigned int AddrX ,unsigned char *out , unsigned char *in)
{
memcpy (&SBuffer[3], &out[0], 5);
UPtr = in;
return (send_cmd(AddrX ,0x63, 5));
}
/**************************************************************************/
/**************************************************************************/
/**************************************************************************/
/**************************************************************************/
int WINAPI OY_select_file(unsigned int AddrX ,unsigned int SAM_USER , unsigned int file_ID , unsigned char *in)
{ unsigned char *p;
SBuffer[3] = 0x00;
SBuffer[4] = 0xa4;
SBuffer[5] = 0x00;
SBuffer[6] = 0x00;
SBuffer[7] = 0x02;
p = (unsigned char * )&file_ID ;
SBuffer[8] = *p;
p++;
SBuffer[9] = *p;
UPtr = in;
if (SAM_USER == 1)
return (send_cmd(AddrX ,0x62, 7));
else return (send_cmd(AddrX ,0x76, 7));
}
/**************************************************************************/
/**************************************************************************/
int WINAPI OY_get_challenge(unsigned int AddrX ,unsigned int SAM_USER , unsigned char Len , unsigned char *in)
{
SBuffer[3] = 0x00;
SBuffer[4] = 0x84;
SBuffer[5] = 0x00;
SBuffer[6] = 0x00;
SBuffer[7] = Len;
UPtr = in;
if (SAM_USER == 1) return (send_cmd(AddrX ,0x63, 5));
else return (send_cmd( AddrX ,0x77, 5));
}
/**************************************************************************/
/**************************************************************************/
int WINAPI OY_get_response(unsigned int AddrX ,unsigned int SAM_USER , unsigned char Len , unsigned char *in)
{
SBuffer[3] = 0x00;
SBuffer[4] = 0xc0;
SBuffer[5] = 0x00;
SBuffer[6] = 0x00;
SBuffer[7] = Len;
UPtr = in;
if (SAM_USER == 1) return (send_cmd(AddrX ,0x63, 5));
else return (send_cmd(AddrX ,0x77, 5));
}
/**************************************************************************/
/**************************************************************************/
int WINAPI OY_verify(unsigned int AddrX ,unsigned int SAM_USER , unsigned char scn,unsigned char *sc , unsigned char *in)
{
SBuffer[3] = 0x00;
SBuffer[4] = 0x20;
SBuffer[5] = 0x00;
SBuffer[6] = scn;
SBuffer[7] = 0x08;
memcpy (&SBuffer[8], &sc[0], 8);
UPtr = in;
if (SAM_USER == 1) return ( send_cmd(AddrX ,0x62 , 13) );
else return ( send_cmd(AddrX ,0x76 , 13) );
}
/**************************************************************************/
/**************************************************************************/
int WINAPI OY_unlock(unsigned int AddrX ,unsigned int SAM_USER , unsigned char scn , unsigned char *sc1 , unsigned char *sc2 , unsigned char *in)
{
SBuffer[3] = 0x00;
SBuffer[4] = 0x2c;
SBuffer[5] = 0x00;
SBuffer[6] = scn;
SBuffer[7] = 0x10;
memcpy (&SBuffer[8], &sc1[0], 8);
memcpy (&SBuffer[16], &sc2[0], 8);
UPtr = in;
if (SAM_USER == 1) return ( send_cmd(AddrX ,0x62 , 21) );
else return ( send_cmd(AddrX ,0x76 , 21) );
}
/**************************************************************************/
/**************************************************************************/
int WINAPI OY_change_pin(unsigned int AddrX ,unsigned int SAM_USER , unsigned char scn , unsigned char *sc1 , unsigned char *sc2 , unsigned char *in)
{
SBuffer[3] = 0x80;
SBuffer[4] = 0x5e;
SBuffer[5] = 0x00;
SBuffer[6] = scn;
SBuffer[7] = 0x10;
memcpy (&SBuffer[8], &sc1[0], 8);
memcpy (&SBuffer[16], &sc2[0], 8);
UPtr = in;
if (SAM_USER == 1) return ( send_cmd(AddrX ,0x62 , 21) );
else return ( send_cmd(AddrX ,0x76 , 21) );
}
/**************************************************************************/
/**************************************************************************/
int WINAPI OY_write_key(unsigned int AddrX ,unsigned int SAM_USER , unsigned char scn,unsigned char Len,unsigned char * data1 , unsigned char *in)
{
SBuffer[3] = 0x80;
SBuffer[4] = 0xd4;
SBuffer[5] = 0x01;
SBuffer[6] = scn;
SBuffer[7] = Len;
memcpy (&SBuffer[8], &data1[0], Len);
UPtr = in;
if (SAM_USER == 1) return ( send_cmd(AddrX ,0x62 , Len+5) );
else return ( send_cmd( AddrX ,0x76 , Len+5) );
}
/**************************************************************************/
/**************************************************************************/
int WINAPI OY_change_key(unsigned int AddrX ,unsigned int SAM_USER , unsigned char scn,unsigned char Len,unsigned char * data1 , unsigned char *in)
{
SBuffer[3] = 0x80;
SBuffer[4] = 0xd4;
SBuffer[5] = 0x00;
SBuffer[6] = scn;
SBuffer[7] = Len;
memcpy (&SBuffer[8], &data1[0], Len);
UPtr = in;
if (SAM_USER == 1) return ( send_cmd( AddrX ,0x62 , Len+5) );
else return ( send_cmd(AddrX ,0x76 , Len+5) );
}
/**************************************************************************/
/**************************************************************************/
int WINAPI OY_external_auth(unsigned int AddrX ,unsigned int SAM_USER , unsigned char scn,unsigned char *sn , unsigned char *in)
{
SBuffer[3] = 0x00;
SBuffer[4] = 0x82;
SBuffer[5] = 0x00;
SBuffer[6] = scn;
SBuffer[7] = 0x08;
memcpy (&SBuffer[8], &sn[0], 8);
UPtr = in;
if (SAM_USER == 1) return ( send_cmd(AddrX ,0x62 , 8) );
else return ( send_cmd(AddrX ,0x76 , 8) );
}
/**************************************************************************/
/**************************************************************************/
int WINAPI OY_internal_auth(unsigned int AddrX ,unsigned int SAM_USER , unsigned char DESn,unsigned char Len,unsigned char *sn , unsigned char *in)
{
SBuffer[3] = 0x00;
SBuffer[4] = 0x88;
SBuffer[5] = 0x00;
SBuffer[6] = DESn;
SBuffer[7] = Len;
memcpy (&SBuffer[8], &sn[0], Len);
UPtr = in;
if (SAM_USER == 1) return ( send_cmd( AddrX ,0x62 , Len+5) );
else return ( send_cmd(AddrX ,0x76 , Len+5) );
}
/**************************************************************************/
/**************************************************************************/
int WINAPI OY_erase_DF(unsigned int AddrX ,unsigned int SAM_USER)
{
SBuffer[3] = 0x80;
SBuffer[4] = 0x0e;
SBuffer[5] = 0x00;
SBuffer[6] = 0x00;
SBuffer[7] = 0x00;
if (SAM_USER == 1) return ( send_cmd(AddrX ,0x63 , 5) );
else return ( send_cmd(AddrX ,0x77 , 5) );
}
/**************************************************************************/
/**************************************************************************/
int WINAPI OY_read_bin(unsigned int AddrX ,unsigned int SAM_USER , unsigned char P1,unsigned char P2,unsigned char Len , unsigned char *in)
{
SBuffer[3] = 0x00;
SBuffer[4] = 0xb0;
SBuffer[5] = P1;
SBuffer[6] = P2;
SBuffer[7] = Len;
UPtr = in;
if (SAM_USER == 1) return ( send_cmd(AddrX ,0x63 , 5) );
else return ( send_cmd( AddrX ,0x77 , 5) );
}
/**************************************************************************/
/**************************************************************************/
int WINAPI OY_read_rec(unsigned int AddrX ,unsigned int SAM_USER , unsigned char P1,unsigned char P2,unsigned char Len , unsigned char *in)
{
SBuffer[3] = 0x00;
SBuffer[4] = 0xb2;
SBuffer[5] = P1;
SBuffer[6] = P2;
SBuffer[7] = Len;
UPtr = in;
if (SAM_USER == 1) return ( send_cmd(AddrX ,0x63 , 5) );
else return ( send_cmd( AddrX ,0x77 , 5) );
}
/**************************************************************************/
/**************************************************************************/
int WINAPI OY_write_bin(unsigned int AddrX ,unsigned int SAM_USER , unsigned char P1,unsigned char P2,unsigned char Len,unsigned char * data1,unsigned char *in)
{
SBuffer[3] = 0x00;
SBuffer[4] = 0xD0;
SBuffer[5] = P1;
SBuffer[6] = P2;
SBuffer[7] = Len;
memcpy (&SBuffer[8], &data1[0], Len);
UPtr = in;
if (SAM_USER == 1) return ( send_cmd(AddrX ,0x62 , Len+5) );
else return ( send_cmd(AddrX ,0x76 , Len+5) );
}
/**************************************************************************/
/**************************************************************************/
int WINAPI OY_write_rec(unsigned int AddrX ,unsigned int SAM_USER , unsigned char P1,unsigned char P2,unsigned char Len,unsigned char * data1,unsigned char *in)
{
SBuffer[3] = 0x00;
SBuffer[4] = 0xDC;
SBuffer[5] = P1;
SBuffer[6] = P2;
SBuffer[7] = Len;
memcpy (&SBuffer[8], &data1[0], Len);
UPtr = in;
if (SAM_USER == 1) return ( send_cmd(AddrX ,0x62 , Len+5) );
else return ( send_cmd( AddrX ,0x76 , Len+5) );
}
/**************************************************************************/
/**************************************************************************/
int WINAPI OY_append_rec(unsigned int AddrX ,unsigned int SAM_USER , unsigned char P2,unsigned char Len,unsigned char * data1 , unsigned char *in)
{
SBuffer[3] = 0x00;
SBuffer[4] = 0xe2;
SBuffer[5] = 0x00;
SBuffer[6] = P2;
SBuffer[7] = Len;
memcpy (&SBuffer[8], &data1[0], Len);
UPtr = in;
if (SAM_USER == 1) return ( send_cmd(AddrX ,0x62 , Len+5) );
else return ( send_cmd(AddrX ,0x76 , Len+5) );
}
/**************************************************************************/
/**************************************************************************/
/**************************************************************************/
/*
/* system command
/*
/**************************************************************************/
int __EXPORT_TYPE WINAPI WriteTime(unsigned int AddrX ,unsigned char year , unsigned char month , unsigned char day , unsigned char hour , unsigned char min , unsigned char sec , unsigned char week)
{
SBuffer[3] = year;
SBuffer[4] = month;
SBuffer[5] = day;
SBuffer[6] = week;
SBuffer[7] = hour;
SBuffer[8] = min;
SBuffer[9] = sec;
UPtr = NULL;
return ( send_cmd(AddrX,0x80 , 7) );
}
/**************************************************************************/
/**************************************************************************/
int __EXPORT_TYPE WINAPI LED_green(unsigned int AddrX ,unsigned char led )
{
SBuffer[3] = led;
UPtr = NULL;
return ( send_cmd(AddrX,0x81 , 1) );
}
/**************************************************************************/
/**************************************************************************/
int __EXPORT_TYPE WINAPI LED_red(unsigned int AddrX ,unsigned char led )
{
SBuffer[3] = led;
UPtr = NULL;
return ( send_cmd(AddrX,0x82 , 1) );
}
/**************************************************************************/
int __EXPORT_TYPE WINAPI PROG_CHIP(unsigned int AddrX )
{
SBuffer[3] =88;
UPtr = NULL;
return ( send_cmd(AddrX,0x99 , 1) );
}
/**************************************************************************/
/**************************************************************************/
int __EXPORT_TYPE WINAPI Get_Data(unsigned int AddrX ,unsigned char * data1)
{
UPtr = data1;
return ( send_cmd(AddrX,0x83 , 0) );
}
/**************************************************************************/
/**************************************************************************/
int __EXPORT_TYPE WINAPI Get_Data_mifare(unsigned int AddrX ,unsigned char i,unsigned int j,unsigned char * data1) //i sec ,j recorder num
{
SBuffer[3] = i;
SBuffer[4] = j;
SBuffer[5] = j>>8;
UPtr = data1;
return ( send_cmd(AddrX,0x83 , 3) );
}
/**************************************************************************/
/**************************************************************************/
int __EXPORT_TYPE WINAPI Get_Data_My_mifare(unsigned int AddrX , unsigned char i , unsigned char * data1)
{
SBuffer[3] = i;
UPtr = data1;
return ( send_cmd(AddrX , 0x83 , 1) );
}
/**************************************************************************/
/**************************************************************************/
int __EXPORT_TYPE WINAPI Get_Data_Stv_mifare(unsigned int AddrX , unsigned char Day ,unsigned char i , unsigned char * data1)
{
SBuffer[3] = Day;
SBuffer[4] = i;
UPtr = data1;
return ( send_cmd(AddrX , 0x83 , 2) );
}
/**************************************************************************/
/**************************************************************************/
int __EXPORT_TYPE WINAPI Set_Stv_Group1(unsigned int AddrX, unsigned int ICard_ID, unsigned int OCard_ID, unsigned int time,unsigned int fee)
{
SBuffer[3] = ICard_ID;
ICard_ID = ICard_ID >> 8 ;
SBuffer[4] = ICard_ID;
ICard_ID = ICard_ID >> 8 ;
SBuffer[5] = ICard_ID;
ICard_ID = ICard_ID >> 8 ;
SBuffer[6] = ICard_ID;
SBuffer[7] = OCard_ID;
OCard_ID = OCard_ID >> 8 ;
SBuffer[8] = OCard_ID;
OCard_ID = OCard_ID >> 8 ;
SBuffer[9] = OCard_ID;
OCard_ID = OCard_ID >> 8 ;
SBuffer[10] = OCard_ID;
SBuffer[11] = time;
time = time >> 8 ;
SBuffer[12] = time;
SBuffer[13] = fee;
fee = fee >> 8 ;
SBuffer[14] = fee;
// UPtr = data1;
return ( send_cmd(AddrX , 0x88 , 12) );
}
int __EXPORT_TYPE WINAPI Set_Stv2(unsigned int AddrX, unsigned int ICard_ID, unsigned int OCard_ID, unsigned int time,unsigned int fee)
{
SBuffer[3] = ICard_ID;
ICard_ID = ICard_ID >> 8 ;
SBuffer[4] = ICard_ID;
ICard_ID = ICard_ID >> 8 ;
SBuffer[5] = ICard_ID;
ICard_ID = ICard_ID >> 8 ;
SBuffer[6] = ICard_ID;
SBuffer[7] = OCard_ID;
OCard_ID = OCard_ID >> 8 ;
SBuffer[8] = OCard_ID;
OCard_ID = OCard_ID >> 8 ;
SBuffer[9] = OCard_ID;
OCard_ID = OCard_ID >> 8 ;
SBuffer[10] = OCard_ID;
SBuffer[11] = time;
time = time >> 8 ;
SBuffer[12] = time;
SBuffer[13] = fee;
fee = fee >> 8 ;
SBuffer[14] = fee;
// UPtr = data1;
return ( send_cmd(AddrX , 0x88 , 12) );
}
/**************************************************************************/
/**************************************************************************/
int __EXPORT_TYPE WINAPI Clear_Data_hand(unsigned int AddrX, unsigned int ICard_ID, unsigned int OCard_ID, unsigned int time,unsigned int fee, unsigned int ICard_ID1, unsigned int OCard_ID1, unsigned int OCard_ID2)
//int __EXPORT_TYPE WINAPI Clear_Data_hand(unsigned int AddrX, unsigned int ICard_ID, unsigned int OCard_ID, unsigned int time,unsigned int fee)
//int __EXPORT_TYPE WINAPI Clear_Data_hand(unsigned int AddrX )
{
SBuffer[3] = ICard_ID;
ICard_ID = ICard_ID >> 8 ;
SBuffer[4] = ICard_ID;
ICard_ID = ICard_ID >> 8 ;
SBuffer[5] = ICard_ID;
ICard_ID = ICard_ID >> 8 ;
SBuffer[6] = ICard_ID;
SBuffer[7] = OCard_ID;
OCard_ID = OCard_ID >> 8 ;
SBuffer[8] = OCard_ID;
OCard_ID = OCard_ID >> 8 ;
SBuffer[9] = OCard_ID;
OCard_ID = OCard_ID >> 8 ;
SBuffer[10] = OCard_ID;
SBuffer[11] = time;
time = time >> 8 ;
SBuffer[12] = time;
SBuffer[13] = fee;
fee = fee >> 8 ;
SBuffer[14] = fee;
SBuffer[15] = ICard_ID1;
ICard_ID1 = ICard_ID1 >> 8 ;
SBuffer[16] = ICard_ID1;
ICard_ID1 = ICard_ID1 >> 8 ;
SBuffer[17] = ICard_ID1;
ICard_ID1 = ICard_ID1 >> 8 ;
SBuffer[18] = ICard_ID1;
SBuffer[19] = OCard_ID1;
OCard_ID1 = OCard_ID1 >> 8 ;
SBuffer[20] = OCard_ID1;
OCard_ID1 = OCard_ID1 >> 8 ;
SBuffer[21] = OCard_ID1;
OCard_ID1 = OCard_ID1 >> 8 ;
SBuffer[22] = OCard_ID1;
SBuffer[23] = OCard_ID2;
OCard_ID2 = OCard_ID2 >> 8 ;
SBuffer[24] = OCard_ID2;
OCard_ID2 = OCard_ID2 >> 8 ;
SBuffer[25] = OCard_ID2;
OCard_ID2 = OCard_ID2 >> 8 ;
SBuffer[26] = OCard_ID2;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -