extern "C"
{
  int WINAPI E680_Open_ComPort(int port);
  int WINAPI E680_Close_ComPort();
  int WINAPI E680_get_version(char* version);
  int WINAPI E680_Request_CardSN(char* serial);
  int WINAPI E680_loadkey(char keyid, char* keyvalue);
  int WINAPI E680_block_read(char block, char keytype, char keyid, char* data);
  int WINAPI E680_block_write(char block, char keytype, char keyid, char* data);
  int WINAPI E680_sector_read(char block, char keytype, char keyid, char* data);
  int WINAPI E680_initvalue(char block, char keytype, char keyid, long value);
  int WINAPI E680_readvalue(char block, char keytype, char keyid, long* value);
  int WINAPI E680_increment(char block, char keytype, char keyid, unsigned long value);
  int WINAPI E680_decrement(char block, char keytype, char keyid, unsigned long value);
  int WINAPI E680_ledset(char state);
  int WINAPI E680_buzzerset(char time);
  int WINAPI E680_eeprom_read(int startadd, char length, char* data);
  int WINAPI E680_eeprom_write(int startadd, char length, char* data);
  int WINAPI E680_UL_read(char page, char* data);
  int WINAPI E680_UL_write(char page, char* data);
  int WINAPI E680_reset_SAM(int* infolen, char* info);
  int WINAPI E680_send_APDU_to_SAM(int apdulen, char* apdu, int* outlen, char* response);
  int WINAPI E680_loadkey_by_string(char keyid, char* keyvalue);
  int WINAPI E680_block_read_by_string(char block, char keytype, char keyid, char* data);
  int WINAPI E680_block_write_by_string(char block, char keytype, char keyid, char* data);
  int WINAPI E680_sector_read_by_string(char block, char keytype, char keyid, char* data);
  int WINAPI E680_eeprom_read_by_string(int startadd, char length, char* data);
  int WINAPI E680_eeprom_write_by_string(int startadd, char length, char* data);
  int WINAPI E680_UL_read_by_string(char page, char* data);
  int WINAPI E680_UL_write_by_string(char page, char* data);
  int WINAPI E680_reset_SAM_by_string(int* infolen, char* info);
  int WINAPI E680_send_APDU_to_SAM_by_string(int apdulen, char* apdu, int* outlen, char* response);
  int WINAPI E680_Set_Working_Mode(char antenna, char autoq);
  int WINAPI E680_Set_Readcard_Mode(char cardtype);
  int WINAPI E680_15693_Inventory(char* serial);
  int WINAPI E680_15693_stay_quiet();
  int WINAPI E680_15693_get_tag_information(char* data);
  int WINAPI E680_15693_reset_quiet(char* uid);
  int WINAPI E680_15693_read_blocks(char start, char blocks, char* data);
  int WINAPI E680_15693_write_blocks(char start, char blocks, char* data);
  int WINAPI E680_15693_lock_block(char block);
  int WINAPI E680_15693_write_AFI(char afi);
  int WINAPI E680_15693_lock_AFI();
  int WINAPI E680_15693_write_DSFID(char dsfid);
  int WINAPI E680_15693_lock_DSFID();
  int WINAPI E680_15693_get_blocks_security(char start, char blocks, char* data);
  int WINAPI E680_15693_read_blocks_by_string(char start, char blocks, char* data);
  int WINAPI E680_15693_write_blocks_by_string(char start, char blocks, char* data);
  int WINAPI E680_14443B_card_reset(char* serial);
  int WINAPI E680_14443B_card_halt(char* pupi);
  int WINAPI E680_SR_initiate(char* chipid);
  int WINAPI E680_SR_pcall16(char* chipid);
  int WINAPI E680_SR_slot_marker(char slot, char* chipid);
  int WINAPI E680_SR_select(char chipid);
  int WINAPI E680_SR_completion();
  int WINAPI E680_SR_reset_to_inventory();
  int WINAPI E680_SR_authenticate(char* rnd, char* data);
  int WINAPI E680_SR_get_uid(char* uid);
  int WINAPI E680_SR_read_block(char addr, char* data);
  int WINAPI E680_SR_write_block(char addr, char* data);
}
