Commands_for_Addressing_APM_Devices

Commands for Addressing APM devices

APM Commands are data packets that are sent from the ACP to the RSD then to the APM.

POLL_APM_CRC (44H)

Table 1-3: POLL_APM_CRC Command Packet Format

ByteFieldData/Description
1Start-of-Frame0AH
2APM AddressRefer to APM Address Space section
3Type44H
4Length00H
5Frame Check SequenceCRC LSB
6 CRC MSB

POLL_APM_CHECKSUM (3BH)

Table 1-4: POLL_APM_CHECKSUM Command Packet Format

ByteFieldData/Description
1Start-of-Frame0AH
2APM AddressRefer to APM Address Space section
3Type3BH
4Length00H
5Frame Check SequenceCHECKSUM

GET_APM_DATALOG (4DH)

Table 1-5: GET_APM_DATALOG Command Packet Format

ByteFieldData/Description
1Start-of-Frame0AH
2APM AddressRefer to APM Address Space section
3Type4DH
4Length00H
5/6Frame Check SequenceCRC or CHECKSUM

GET_PREVIOUS_APM_DATALOG (6DH)

Table 1-6: GET_PREVIOUS_APM_DATALOG Command Packet Format

ByteFieldData/Description
1Start-of-Frame0AH
2APM AddressRefer to APM Address Space section
3Type6DH
4Length00H
5/6Frame Check SequenceCRC or CHECKSUM

(+) APM_LOCK_CONTROL (4FH)

NOTES:

  1. 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.

  2. This means that a “timed unlock” is ignored if sent unsolicited. There is no response from the APM.

  3. ENGAGE products accept data byte = 1 messages at any time, regardless of card data inquiry.

  4. 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.

Table 1-7: APM_LOCK_CONTROL Command Packet Format

ByteFieldData/Description
1Start-of-Frame0AH
2APM AddressRefer Section 1.3.3.2.3
3Type4FH
4Length01H to 03H
5Data0 = 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/7Frame Check SequenceCRC 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.

APM_TIMED_UNLOCK (56H)

NOTES:

  1. 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.

  2. This means that a “timed unlock” is ignored if sent unsolicited. There is no response from the APM.

  3. ENGAGE products will accept timed unlock message at any time, regardless of card data inquiry.

Table 1-8: APM_TIMED_UNLOCK Command Packet Format

ByteFieldData/Description 
1Start-of-Frame0AH 
2APM AddressRefer to APM Address Space section 
3Type56H 
4Length02H or 04H 
5DataByte1number of seconds to unlock; valid range from 1-255
6 Byte2Always 00
7 *Byte3Optional: 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 *Byte4Optional: 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/9Frame Check SequenceCRC 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.

GET_APM_CONFIGURATION (38H)

Table 1-9: GET_APM_CONFIGURATION Command Packet Format

ByteFieldData/Description
1Start-of-Frame0AH
2APM AddressRefer to APM Address Space section
3Type38H
4Length05H
5DataAPM Address (0x00 to 0x0F)
6 0
7 0
8 0
9 0
10/11Frame Check SequenceCRC or CHECKSUM

(*) GET_NEXT_GEN_APM_CONFIGURATION (47H/05H)

Table 1-10: GET_NEXT_GEN_APM_CONFIGURATION Command Packet Format

ByteFieldData/Description
1Start-of-Frame0AH
2RSD AddressRefer to RSD Address Space section
3Type47H
4Length02H
5DataSub Command: 05H
6 APM Address: Refer to APM Address Space section
7/8Frame Check SequenceCRC or CHECKSUM

SET_APM_CONFIGURATION (37H)

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.

Table 1-11: SET_APM_CONFIGURATION Command Packet Format

ByteFieldData/Description 
1Start-of-Frame0AH 
2APM AddressRefer to APM Address Space section 
3Type37H 
4Length10H 
5Databyte1APM 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 byte100
15 byte110
16 byte120
17 byte130
18 byte140
19 byte150
20 byte160
21/22Frame Check SequenceCRC or CHECKSUM 

Table 1-12: APM Configuration Data Structure Format

ByteBitFunctionComments
byte1 Door unlock time1-255 seconds (default=3)
byte20Card 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  
 3Trouble level *not applicable on RS485 RSD
 4Door open level *not applicable on RS485 RSD
 5Deny access (cache)1=enable deny access option, 0=disable deny access option
 6Re-latch event1=relatch on door open, 0=relatch on door close
 7Relock method1=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)
byte50WA/WPR2 Reader type *1=iClass, 0=all others (default=0)
 1Pre-alarm enable *1=enable, 0=disable
 2Motor 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  
 5Latch Type for WISI *1=strike, 0=relay
 6Request to exit mode *1=normal, 0=inquiry
 7Extended unlock *1=enabled, 0=disabled
byte 60Retry times (1)1-15 (default=5)
 1  
 2  
 3  
 4Door held open time *1-15 (seconds = 15 +( value*5))
 5  
 6  
 7  
byte 70Subsequent Delay (1)0-15 (100 ms resolution) (default = 2 or 200 ms)
 1  
 2  
 3  
 4First Delay (1)0-15 (100 ms resolution) (default = 3 or 300 ms)
 5  
 6  
 7  
byte 8 Cache memory bits per card0-255, 0=cache disabled (default=0)
byte 90Clear Cache EntriesSET: 1=clear cache entries; 0=maintain cache; GET: 1=cache entries cleared; 0=cache maintained
 1Mag Track Selection (1G only)*Track 1 (1G only)
 2 Track 2 (1G only)
 3 Track 3 (1G only)
 4Auto purge1=disabled, 0=enabled (default=1)
 5Failsafe mode (comm loss)00=disabled, 01=fail locked, 10=fail unlocked (default=00)
 6  
 7Cache memory mode0=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.

(*) SET_NEXT_GEN_APM_CONFIGURATION (47H/04H)

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.

Table 1-13: SET_NEXT_GEN_APM_CONFIGURATION Command Packet Format

ByteFieldData/Description 
1Start-of-Frame0AH 
2RSD AddressRefer to RSD Address Space section 
3Type47H 
4Length22H 
5DataSub Command: 04H 
6 APM Address: Refer to APM Address Space section 
7 byte1Next 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/40Frame Check SequenceCRC or CHECKSUM 

(*) GET_APM_BATTERY_STATUS (47H/06H)

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.

Table 1-14: GET_APM_BATTERY_STATUS Command Packet Format

ByteFieldData/Description
1Start-of-Frame0AH
2RSD AddressRefer Refer to RSD Address Space section
3Type47H
4Length02H
5DataSub Command: 06H
6 APM Address: Refer Refer to APM Address Space section
7/8Frame Check SequenceCRC or CHECKSUM

(*) GET_APM_STATISTICS (TBD)

TBD

(*) GET_AD_APM_OEM_CODE (47H/0BH)

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.

Table 1-15: GET_AD_APM_OEM_CODE Command Packet Format

ByteFieldData/Description
1Start-of-Frame0AH
2RSD AddressRefer Refer to RSD Address Space section
3Type47H
4Length02H
5Sub Command0BH
6APM AddressRefer Refer to APM Address Space section
7/8Frame Check SequenceCRC or CHECKSUM

(*) GET_AD_APM_PARTNER_ID (47H/0DH)

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.

Table 1-16: GET_AD_APM_PARTNER_ID Command Packet Format

ByteFieldData/Description
1Start-of-Frame0AH
2RSD AddressRefer Refer to RSD Address Space section
3Type47H
4Length02H
5Sub Command0DH
6APM AddressRefer Refer to APM Address Space section
7/8Frame Check SequenceCRC or CHECKSUM

(*) GET_APM_HARDWARE_VERSIONS (4AH/03H)

Table 1-17: GET_APM_HARDWARE_VERSIONS Command Packet Format

ByteFieldData/Description
1Start-of-Frame0AH
2APM AddressRefer to APM Address Space section
3Type4AH
4Length01H
5DataSub Command: 03H
6/7Frame Check SequenceCRC or CHECKSUM

(*) GET_APM_SERIAL_NUMBERS (4AH/01H)

Table 1-18: GET_APM_SERIAL_NUMBERS Command Packet Format

ByteFieldData/Description
1Start-of-Frame0AH
2APM AddressRefer to APM Address Space section
3Type4AH
4Length01H
5DataSub Command: 01H
6/7Frame Check SequenceCRC or CHECKSUM

(*) GET_APM_MANUFACTURE_DATES (4AH/02H)

Table 1-19: GET_APM_MANUFACTURE_DATES Command Packet Format

ByteFieldData/Description
1Start-of-Frame0AH
2APM AddressRefer to APM Address Space section
3Type4AH
4Length01H
5DataSub Command: 02H
6/7Frame Check SequenceCRC or CHECKSUM

(*) APM_PIV_GEN_AUTH_CHALLENGE (78H | F8H)

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.

Table 1-20: APM_PIV_GEN_AUTH_CHALLENGE Command Packet Format

ByteFieldData/Description
1Start-of-Frame0AH
2APM AddressRefer to APM Address Space section
3TypeF8H (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).
4Length LSBVariable (Min: 02H Max: 102H)
5Length MSB 
6Algorithm ReferenceReference ID sent to the PIV card to indicate which algorithm to use in the authentication procedure.
7Key ReferenceReference ID sent to the PIV card to indicate which key to use in the authentication procedure.
8 through NData[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+2Frame Check SequenceCRC or CHECKSUM