⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sam_demokit.cpp

📁 矿工定位系统单端
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	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 + -