Documentation
Command and Reply Codes
Reference for OSDP commands and replies — the full message set exchanged between a control panel (CP) and peripheral device (PD) on the OSDP bus.
The following commands and replies are reserved by the protocol for various actions. The tables below show their descriptions and support status in this implementation.
The secure-channel commands — CMD_KEYSET, CMD_CHLNG, and CMD_SCRYPT — are described in Secure Channel.
Commands
| Command | Value | Description | Support |
|---|---|---|---|
CMD_POLL | 0x60 | Poll | ✓ |
CMD_ID | 0x61 | ID Report Request | ✓ |
CMD_CAP | 0x62 | Peripheral Device Capabilities Request | ✓ |
CMD_DIAG | 0x63 | Diagnostic Function | – |
CMD_LSTAT | 0x64 | Local Status Report Request | ✓ |
CMD_ISTAT | 0x65 | Input Status Report Request | ✓ |
CMD_OSTAT | 0x66 | Output Status Report Request | ✓ |
CMD_RSTAT | 0x67 | Reader Status Tamper Report Request | ✓ |
CMD_OUT | 0x68 | Output Control Command | ✓ |
CMD_LED | 0x69 | Reader LED Control Command | ✓ |
CMD_BUZ | 0x6A | Reader Buzzer Control Command | ✓ |
CMD_TEXT | 0x6B | Reader Text Output Command | ✓ |
CMD_RMODE | 0x6C | Reader Mode Set | ✕ |
CMD_TDSET | 0x6D | Time and Date Set | ✕ |
CMD_COMSET | 0x6E | Communication Configuration Command | ✓ |
CMD_BIOREAD | 0x73 | Scan and send biometric data | ✓ |
CMD_BIOMATCH | 0x74 | Scan and match biometric data | ✓ |
CMD_KEYSET | 0x75 | Encryption Key Set | ✓ |
CMD_CHLNG | 0x76 | Challenge and Secure Session Initialization Request | ✓ |
CMD_SCRYPT | 0x77 | Server's Random Number and Server Cryptogram | ✓ |
CMD_ACURXSIZE | 0x7B | Maximum Acceptable Reply Size | ✓ |
CMD_FILETRANSFER | 0x7C | File transfer command | ✓ |
CMD_MFG | 0x80 | Manufacturer Specific Command | ✓ |
CMD_XWR | 0xA1 | Extended write data | ✕ |
CMD_ABORT | 0xA2 | Abort PD operation | ✓ |
CMD_PIVDATA | 0xA3 | Get PIV Data | ✕ |
CMD_GENAUTH | 0xA4 | Request Authenticate | ✕ |
CMD_CRAUTH | 0xA5 | Request Crypto Response | ✕ |
CMD_KEEPACTIVE | 0xA7 | Keep secure channel active | ✓ |
Responses
| Response | Value | Description | Support |
|---|---|---|---|
REPLY_ACK | 0x40 | General Acknowledge, Nothing to Report | ✓ |
REPLY_NAK | 0x41 | Negative Acknowledge – SIO Comm Handler Error Response | ✓ |
REPLY_PDID | 0x45 | Device Identification Report | ✓ |
REPLY_PDCAP | 0x46 | Device Capabilities Report | ✓ |
REPLY_LSTATR | 0x48 | Local Status Report | ✓ |
REPLY_ISTATR | 0x49 | Input Status Report | ✓ |
REPLY_OSTATR | 0x4A | Output Status Report | ✓ |
REPLY_RSTATR | 0x4B | Reader Status Tamper Report | ✓ |
REPLY_RAW | 0x50 | Card Data Report, Raw Bit Array | ✓ |
REPLY_FMT | 0x51 | Card Data Report, Character Array | ✓ |
REPLY_KEYPAD | 0x53 | Keypad Data Report | ✓ |
REPLY_COM | 0x54 | Communication Configuration Report | ✓ |
REPLY_BIOREADR | 0x57 | Biometric Data | ✓ |
REPLY_BIOMATCHR | 0x58 | Biometric Match Result | ✓ |
REPLY_CCRYPT | 0x76 | Client's ID and Client's Random Number | ✓ |
REPLY_RMAC_I | 0x78 | Client Cryptogram Packet and the Initial R-MAC | ✓ |
REPLY_BUSY | 0x79 | PD Is Busy Reply | ✓ |
REPLY_FTSTAT | 0x7A | File transfer status | ✓ |
REPLY_PIVDATAR | 0x80 | PIV data reply | ✕ |
REPLY_GENAUTHR | 0x81 | Authentication response | ✕ |
REPLY_CRAUTHR | 0x82 | Response to challenge | ✕ |
REPLY_MFGSTATR | 0x83 | Manufacturer specific status | ✕ |
REPLY_MFGERRR | 0x84 | Manufacturer specific error | ✕ |
REPLY_MFGREP | 0x90 | Manufacturer specific reply | ✓ |
REPLY_XRD | 0xB1 | Extended read response | ✕ |
LibOSDP Behavior Note
For CMD_MFG, immediate command response follows normal callback ACK/NAK rules: callback return < 0 yields REPLY_NAK, callback return >= 0 yields REPLY_ACK. If the application wants to send REPLY_MFGREP, it must do so asynchronously by submitting an OSDP_EVENT_MFGREP event, which is then delivered on a subsequent CMD_POLL cycle.