APM Commands are data packets that are sent from the ACP to the RSD then to the APM.
| Byte | Field | Data/Description |
|---|---|---|
| 1 | Start-of-Frame | 0AH |
| 2 | APM Address | Refer to APM Address Space section |
| 3 | Type | 44H |
| 4 | Length | 00H |
| 5 | Frame Check Sequence | CRC LSB |
| 6 | CRC MSB |
| Byte | Field | Data/Description |
|---|---|---|
| 1 | Start-of-Frame | 0AH |
| 2 | APM Address | Refer to APM Address Space section |
| 3 | Type | 3BH |
| 4 | Length | 00H |
| 5 | Frame Check Sequence | CHECKSUM |
| Byte | Field | Data/Description |
|---|---|---|
| 1 | Start-of-Frame | 0AH |
| 2 | APM Address | Refer to APM Address Space section |
| 3 | Type | 4DH |
| 4 | Length | 00H |
| 5/6 | Frame Check Sequence | CRC or CHECKSUM |
| Byte | Field | Data/Description |
|---|---|---|
| 1 | Start-of-Frame | 0AH |
| 2 | APM Address | Refer to APM Address Space section |
| 3 | Type | 6DH |
| 4 | Length | 00H |
| 5/6 | Frame Check Sequence | CRC or CHECKSUM |
NOTES:
The APM_LOCK_CONTROL command with the data byte = 1 only works with a battery-operated Wireless Access Point Module (APM: AD-400, WPR400, ENGAGE devices and WPR400) when it is sent in response to having received a card swipe data command.
This means that a “timed unlock” is ignored if sent unsolicited. There is no response from the APM.
ENGAGE products accept data byte = 1 messages at any time, regardless of card data inquiry.
If sending a lock state change command with blink pattern definitions for bytes 6/7, ENGAGE APMs will first flash the default UI associated with byte 5, then flash the RSI defined UI LED sequence.
| Byte | Field | Data/Description |
|---|---|---|
| 1 | Start-of-Frame | 0AH |
| 2 | APM Address | Refer Section 1.3.3.2.3 |
| 3 | Type | 4FH |
| 4 | Length | 01H to 03H |
| 5 | Data | 0 = no state change (blink pattern only) |
| 1 = timed unlock using the re-latch time | ||
| 2 = extended unlock (indefinite) | ||
| 3 = re-lock | ||
| 4 = turn on auxiliary relay (WRI-OUT/WRI400 only) | ||
| 5 = turn off auxiliary relay (WRI-OUT/WRI400 only) | ||
| 6 = reserved | ||
| 7 = red led on (only for AD-300/VIP & WRI400) | ||
| 8 = red led off (only for AD-300/VIP & WRI400) | ||
| 9 = green led on (only for AD-300/VIP & WRI400) | ||
| 10 = green led off (only for AD-300/VIP & WRI400) | ||
| 11 = beeper on (only for AD-300/VIP) | ||
| 12 = beeper off (only for AD-300/VIP) (+) | ||
| 13 = reserved (+) | ||
| 14 = PIN required | ||
| 6 | Optional: AD400/AD300/WPR400 | |
| ... Bit 0: IPB LED control enable | ||
| ............. 0 = disabled | ||
| ......... ***1 = enabled | ||
| ... Bit 1: AD-series Schlage LED control enable | ||
| ............. 0 = disabled | ||
| ......... ***1 = enabled | ||
| ... Bits 2-3: blink pattern | ||
| ............ 00 = green | ||
| ............ 01 = red | ||
| ............ 10 = green-red | ||
| ............ 11 = red-green | ||
| ... Bits 4-5: on interval (NOTE: on & off time for AD-series Schlage button) | ||
| ............ 00 = 100ms | ||
| ............ 01 = 500ms | ||
| ............ 10 = 1000ms | ||
| ...........*11 = always on (will reduce battery life drastically) | ||
| ... Bits 6-7: off interval (NOTE: not used for AD-series Schlage button) | ||
| ............ 00 = 100ms | ||
| ............ 01 = 500ms | ||
| ............ 10 = 1000ms | ||
| ...........*11 = always on (will reduce battery life drastically) | ||
| Optional: WRI400 | ||
| ... Bit 0: Beeper pulsing control enable | ||
| ............. 0 = disabled (No change in beeper pulsing) | ||
| ............. 1 = enabled (Update beeper pulsing pattern) | ||
| ... Bit 1-3 : Reserved | ||
| ... Bits 4-5: on interval (beeper on time) | ||
| ............ 00 = 250ms | ||
| ............ 01 = 500ms | ||
| ............ 10 = 1000ms | ||
| .......****11 = always on (will reduce battery life drastically) | ||
| ... Bits 6-7: off interval (beeper off time) | ||
| ............ 00 = 250ms | ||
| ............ 01 = 500ms | ||
| ............ 10 = 1000ms | ||
| .......****11 = always on (will reduce battery life drastically) | ||
| 7 | Optional: AD400/AD300/WPR400/ENGAGE device | |
| ... Bits 0-1: | ||
| ............ 00 = stop blinking/blink nothing | ||
| ............ 01 = do pattern once | ||
| .........**10 = repeat indefinitely, linearly increasing delay between interval | ||
| ............ 11 = repeat indefinitely, constant delay between interval | ||
| ... Bits 2-3: times to repeat pattern | ||
| ............ 00 = 1 time | ||
| ............ 01 = 2 times | ||
| ............ 10 = 3 times | ||
| ............ 11 = 4 times | ||
| ... Bits 4-5: interval time | ||
| ............ 00 = 0 seconds | ||
| ............ 01 = 20 seconds | ||
| ............ 10 = 40 seconds | ||
| ............ 11 = 60 seconds | ||
| ... Bits 6-7: reserved (Should be always sent as Zero) | ||
| Optional: WRI400 | ||
| ... Bits 0-1: Beeper repeat configuration | ||
| ............ 00 = stop beeping | ||
| ............ 01 = beep for the configured number of beeps | ||
| ............ 10 = beep indefinitely | ||
| ............ 11 = reserved | ||
| ... Bits 2-3: times to beep | ||
| ............ 00 = 1 time | ||
| ............ 01 = 2 times | ||
| ............ 10 = 3 times | ||
| ............ 11 = 4 times | ||
| ... Bits 4-7: reserved (Should be always sent as Zero) | ||
| 6/7 | Frame Check Sequence | CRC or CHECKSUM |
| 7/8 | ||
| 8/9 |
(*) If either the on or the off interval are defined as always on, then the corresponding LED remains on forever until told to do otherwise. If the LED color is specified as alternating (red-green or green-red), the color that is supposed to blink first is the one that turns on.
(**) Delay between intervals begins at the level that is specified and then increases by 10 seconds for every iteration. This time between delays maxes out at 120 seconds, at which point the delay between intervals remains at a constant 120 seconds.
(***) Bits 0 and 1 of Data byte 6 must be set to “1=enabled” to stop a currently executing LED pattern.
(****) If either the on or the off beep time is defined as always on, the beeper remains on forever until told to do otherwise.
NOTES:
The APM_TIMED_UNLOCK command will only work with a battery operated Wireless Access Point Module (APM: AD-400, & WPR400, ENGAGE device) when it is sent in response to having received a card swipe data command.
This means that a “timed unlock” is ignored if sent unsolicited. There is no response from the APM.
ENGAGE products will accept timed unlock message at any time, regardless of card data inquiry.
| Byte | Field | Data/Description | |
|---|---|---|---|
| 1 | Start-of-Frame | 0AH | |
| 2 | APM Address | Refer to APM Address Space section | |
| 3 | Type | 56H | |
| 4 | Length | 02H or 04H | |
| 5 | Data | Byte1 | number of seconds to unlock; valid range from 1-255 |
| 6 | Byte2 | Always 00 | |
| 7 | *Byte3 | Optional: WRI400 | |
| ... Bit 0: Beeper pulsing control enable | |||
| .............. 0 = disabled (No change in beeper pulsing) | |||
| .............. 1 = enabled (Update beeper pulsing pattern) | |||
| ... Bit 1-3: Reserved | |||
| ... Bits 4-5: on interval (beeper on time) | |||
| .............. 00 = 250ms | |||
| .............. 01 = 500ms | |||
| .............. 10 = 1000ms | |||
| .........****11 = always on | |||
| ... Bits 6-7: off interval (beeper off time) | |||
| .............. 00 = 250ms | |||
| .............. 01 = 500ms | |||
| .............. 10 = 1000ms | |||
| .........****11 = always on | |||
| 8 | *Byte4 | Optional: WRI400 | |
| ... Bits 0-1: Beeper repeat configuration | |||
| .............. 00 = stop beeping | |||
| .............. 01 = beep for the configured number of beeps | |||
| .............. 10 = beep indefinitely | |||
| .............. 11 = reserved | |||
| ... Bits 2-3: times to beep | |||
| .............. 00 = 1 time | |||
| .............. 01 = 2 times | |||
| .............. 10 = 3 times | |||
| .............. 11 = 4 times | |||
| ... Bits 4-7: reserved (Should be always sent as Zero) | |||
| 8/9 | Frame Check Sequence | CRC or CHECKSUM |
(****) If either the on or the off beep time is defined as always on, the beeper remains on forever until told to do otherwise.
NOTE: The extra *Byte 3 and *Byte 4 are applicable only for WRI400.
| Byte | Field | Data/Description |
|---|---|---|
| 1 | Start-of-Frame | 0AH |
| 2 | APM Address | Refer to APM Address Space section |
| 3 | Type | 38H |
| 4 | Length | 05H |
| 5 | Data | APM Address (0x00 to 0x0F) |
| 6 | 0 | |
| 7 | 0 | |
| 8 | 0 | |
| 9 | 0 | |
| 10/11 | Frame Check Sequence | CRC or CHECKSUM |
| Byte | Field | Data/Description |
|---|---|---|
| 1 | Start-of-Frame | 0AH |
| 2 | RSD Address | Refer to RSD Address Space section |
| 3 | Type | 47H |
| 4 | Length | 02H |
| 5 | Data | Sub Command: 05H |
| 6 | APM Address: Refer to APM Address Space section | |
| 7/8 | Frame Check Sequence | CRC or CHECKSUM |
NOTE: The SET_APM_CONFIGURATION command must only be sent when the Configuration Mode bit in the APM_STATUS, RSD_STATUS_CHANGE, or RSD_STATUS_CARDDATA for all APMs linked to the RSD are reset (0).
If another SET_APM_CONFIGURATION command is sent while the Configuration Mode bit is set (1), then a previously sent SET_APM_COMMAND is not sent to the desired APM. The Configuration Mode bit being reset (0) indicates that previous pending SET_APM_CONFIGURATION command has been implemented in the desired APM.
| Byte | Field | Data/Description | |
|---|---|---|---|
| 1 | Start-of-Frame | 0AH | |
| 2 | APM Address | Refer to APM Address Space section | |
| 3 | Type | 37H | |
| 4 | Length | 10H | |
| 5 | Data | byte1 | APM configuration data structure (see Table 1‑12 below) |
| 6 | byte2 | ||
| 7 | byte3 | ||
| 8 | byte4 | ||
| 9 | byte5 | ||
| 10 | byte6 | ||
| 11 | byte7 | ||
| 12 | byte8 | ||
| 13 | byte9 | ||
| 14 | byte10 | 0 | |
| 15 | byte11 | 0 | |
| 16 | byte12 | 0 | |
| 17 | byte13 | 0 | |
| 18 | byte14 | 0 | |
| 19 | byte15 | 0 | |
| 20 | byte16 | 0 | |
| 21/22 | Frame Check Sequence | CRC or CHECKSUM |
| Byte | Bit | Function | Comments |
|---|---|---|---|
| byte1 | Door unlock time | 1-255 seconds (default=3) | |
| byte2 | 0 | Card format * (depends on RSD type) (not applicable on AD series) | 0=none 1=reverse 2=Northern #1 3=Northern #2 4=Northern #5 5=Northern #6 |
| 1 | |||
| 2 | |||
| 3 | Trouble level * | not applicable on RS485 RSD | |
| 4 | Door open level * | not applicable on RS485 RSD | |
| 5 | Deny access (cache) | 1=enable deny access option, 0=disable deny access option | |
| 6 | Re-latch event | 1=relatch on door open, 0=relatch on door close | |
| 7 | Relock method | 1=relatch on door position change, 0=timer only | |
| byte3 | Heartbeat time (low byte) * | number of 15 second intervals (low byte) | |
| byte4 | Heartbeat time (high byte) * | number of 15 second intervals (high byte) | |
| byte5 | 0 | WA/WPR2 Reader type * | 1=iClass, 0=all others (default=0) |
| 1 | Pre-alarm enable * | 1=enable, 0=disable | |
| 2 | Motor type for IRL/MIRL/WA * | 0=normal 1=Best/WEXK 2=Saflok MIRL mortise 3=Schlage 4=Schlage WA5600/WA993 & Marks MIRL cyl 5=Schlage WA5200 | |
| 3 | |||
| 4 | |||
| 5 | Latch Type for WISI * | 1=strike, 0=relay | |
| 6 | Request to exit mode * | 1=normal, 0=inquiry | |
| 7 | Extended unlock * | 1=enabled, 0=disabled | |
| byte 6 | 0 | Retry times (1) | 1-15 (default=5) |
| 1 | |||
| 2 | |||
| 3 | |||
| 4 | Door held open time * | 1-15 (seconds = 15 +( value*5)) | |
| 5 | |||
| 6 | |||
| 7 | |||
| byte 7 | 0 | Subsequent Delay (1) | 0-15 (100 ms resolution) (default = 2 or 200 ms) |
| 1 | |||
| 2 | |||
| 3 | |||
| 4 | First Delay (1) | 0-15 (100 ms resolution) (default = 3 or 300 ms) | |
| 5 | |||
| 6 | |||
| 7 | |||
| byte 8 | Cache memory bits per card | 0-255, 0=cache disabled (default=0) | |
| byte 9 | 0 | Clear Cache Entries | SET: 1=clear cache entries; 0=maintain cache; GET: 1=cache entries cleared; 0=cache maintained |
| 1 | Mag Track Selection (1G only)* | Track 1 (1G only) | |
| 2 | Track 2 (1G only) | ||
| 3 | Track 3 (1G only) | ||
| 4 | Auto purge | 1=disabled, 0=enabled (default=1) | |
| 5 | Failsafe mode (comm loss) | 00=disabled, 01=fail locked, 10=fail unlocked (default=00) | |
| 6 | |||
| 7 | Cache memory mode | 0=full card number, 1=facility code (default =0) |
* Indicates a configuration that is not supported by ENGAGE products.
(1) For ENGAGE products, the credential inquiry timeout is defined by the formula: 100ms* [First_Delay + (Subsequent_Delay*Retry_Times)]. Different combinations resulting in the same final value results in the same credential inquiry; however, it does not change the communication interval between wireless APMs and the Gateway during the inquiry timeout.
NOTE: The SET_APM_CONFIGURATION command must only be sent when the Configuration Mode bit in the APM_STATUS, RSD_STATUS_CHANGE, or RSD_STATUS_CARDDATA for all APMs linked to the RSD are reset (0).
If another SET_NEXT_GEN_APM_CONFIGURATION command is sent while the Configuration Mode bit is set (1), then a previously sent SET_NEXT_GEN_APM_COMMAND will not be sent to the desired APM. The Configuration Mode bit being reset (0) indicates that previous pending SET_NEXT_GEN_APM_CONFIGURATION command has been implemented in the desired APM.
When communicating with an AD400 (or an ENGAGE) device, this command is actually sent from the ACP to the PIM400-485, and therefore the RSD address of the PIM400-485 (or GWE) should be used in byte 2.
When communicating with an AD300 device, bytes (2) and (6) have the same address.
| Byte | Field | Data/Description | |
|---|---|---|---|
| 1 | Start-of-Frame | 0AH | |
| 2 | RSD Address | Refer to RSD Address Space section | |
| 3 | Type | 47H | |
| 4 | Length | 22H | |
| 5 | Data | Sub Command: 04H | |
| 6 | APM Address: Refer to APM Address Space section | ||
| 7 | byte1 | Next Generation Lock APM/Reader Configuration Structure (see Table 1‑82) | |
| 8 | byte2 | ||
| 9 | byte3 | ||
| 10 | byte4 | ||
| 11 | byte5 | ||
| 12 | byte6 | ||
| 13 | byte7 | ||
| 14 | byte8 | ||
| 15 | byte9 | ||
| 16 | byte10 | ||
| 17 | byte11 | ||
| 18 | byte12 | ||
| 19 | byte13 | ||
| 20 | byte14 | ||
| 21 | byte15 | ||
| 22 | byte16 | ||
| 23 | byte17 | ||
| 24 | byte18 | ||
| 25 | byte19 | ||
| 26 | byte20 | ||
| 27 | byte21 | ||
| 28 | byte22 | ||
| 29 | byte23 | ||
| 30 | byte24 | ||
| 31 | byte25 | ||
| 32 | byte26 | ||
| 33 | byte27 | ||
| 34 | byte28 | ||
| 35 | byte29 | ||
| 36 | byte30 | ||
| 37 | byte31 | ||
| 38 | byte32 | ||
| 39/40 | Frame Check Sequence | CRC or CHECKSUM |
When communicating with an AD400 (or an ENGAGE) device, this command is actually sent from the ACP to the PIM400-485, and therefore the RSD address of the PIM400-485 (or GWE) should be used in byte 2.
When communicating with an AD300 device, bytes (2) and (6) have the same address.
| Byte | Field | Data/Description |
|---|---|---|
| 1 | Start-of-Frame | 0AH |
| 2 | RSD Address | Refer Refer to RSD Address Space section |
| 3 | Type | 47H |
| 4 | Length | 02H |
| 5 | Data | Sub Command: 06H |
| 6 | APM Address: Refer Refer to APM Address Space section | |
| 7/8 | Frame Check Sequence | CRC or CHECKSUM |
TBD
When communicating with an AD400 (or an ENGAGE) device, this command is actually sent from the ACP to the PIM400-485, and therefore the RSD address of the PIM400-485 (or GWE) should be used in byte 2.
When communicating with an AD300 device, bytes (2) and (6) have the same address.
| Byte | Field | Data/Description |
|---|---|---|
| 1 | Start-of-Frame | 0AH |
| 2 | RSD Address | Refer Refer to RSD Address Space section |
| 3 | Type | 47H |
| 4 | Length | 02H |
| 5 | Sub Command | 0BH |
| 6 | APM Address | Refer Refer to APM Address Space section |
| 7/8 | Frame Check Sequence | CRC or CHECKSUM |
When communicating with an AD400 (or an ENGAGE) device, this command is actually sent from the ACP to the PIM400-485, and therefore the RSD address of the PIM400-485 (or GWE) should be used in byte 2.
When communicating with an AD300 device, bytes (2) and (6) have the same address.
NOTE: PARTNER_ID is not supported by ENGAGE products.
| Byte | Field | Data/Description |
|---|---|---|
| 1 | Start-of-Frame | 0AH |
| 2 | RSD Address | Refer Refer to RSD Address Space section |
| 3 | Type | 47H |
| 4 | Length | 02H |
| 5 | Sub Command | 0DH |
| 6 | APM Address | Refer Refer to APM Address Space section |
| 7/8 | Frame Check Sequence | CRC or CHECKSUM |
| Byte | Field | Data/Description |
|---|---|---|
| 1 | Start-of-Frame | 0AH |
| 2 | APM Address | Refer to APM Address Space section |
| 3 | Type | 4AH |
| 4 | Length | 01H |
| 5 | Data | Sub Command: 03H |
| 6/7 | Frame Check Sequence | CRC or CHECKSUM |
| Byte | Field | Data/Description |
|---|---|---|
| 1 | Start-of-Frame | 0AH |
| 2 | APM Address | Refer to APM Address Space section |
| 3 | Type | 4AH |
| 4 | Length | 01H |
| 5 | Data | Sub Command: 01H |
| 6/7 | Frame Check Sequence | CRC or CHECKSUM |
| Byte | Field | Data/Description |
|---|---|---|
| 1 | Start-of-Frame | 0AH |
| 2 | APM Address | Refer to APM Address Space section |
| 3 | Type | 4AH |
| 4 | Length | 01H |
| 5 | Data | Sub Command: 02H |
| 6/7 | Frame Check Sequence | CRC or CHECKSUM |
When the length of the message data exceeds 255 bytes the Type field changes to F8H to indicate a 2-byte Length field. The optional 2nd Length byte is inserted at Byte 5. Byte 4 will be Length LSB, and Byte 5 will be Length MSB.
| Byte | Field | Data/Description |
|---|---|---|
| 1 | Start-of-Frame | 0AH |
| 2 | APM Address | Refer to APM Address Space section |
| 3 | Type | F8H (78H is the actual message type, but the MSB bit is set to represent that this message has a two-byte length field. Refer to Type Section for more details). |
| 4 | Length LSB | Variable (Min: 02H Max: 102H) |
| 5 | Length MSB | |
| 6 | Algorithm Reference | Reference ID sent to the PIV card to indicate which algorithm to use in the authentication procedure. |
| 7 | Key Reference | Reference ID sent to the PIV card to indicate which key to use in the authentication procedure. |
| 8 through N | Data[0]-Data[X] | Challenge data sent to the PIV card to perform the authentication procedure (LSB sent first with a maximum length of 256 bytes total in a single message). |
| N+1/N+2 | Frame Check Sequence | CRC or CHECKSUM |