문서의 이전 판입니다!


Slave Control API

RS485 네트워크를 이용하여 마스터 장치와 슬레이브 장치를 연결하는 기능을 제공합니다.

주의
SDK가 초기화된 상태에서는 슬레이브 장치의 구성을 알 수가 없기 때문에 슬레이브 장치를 제어하기 전에 반드시 슬레이브 장치를 검색하거나 추가해야 합니다.

BS2Rs485SlaveDevice

typedef struct {
    uint32_t deviceID;
    uint16_t deviceType;
    uint8_t enableOSDP;
    uint8_t connected;
} BS2Rs485SlaveDevice;

1. deviceID
장치 식별자입니다.

2. deviceType
장치 유형입니다.

3. enableOSDP
슬레이브 장치를 사용하는지를 결정하는 flag 값입니다.

4. connected
슬레이브 장치가 마스터 장치에 연결되었는지를 나타내는 flag 값입니다.

BS2Rs485SlaveDeviceEX

typedef struct {
    uint32_t deviceID;
    uint16_t deviceType;
    uint8_t enableOSDP;
    uint8_t connected;
    uint8_t channelInfo;
    uint8_t reserved[3];
} BS2Rs485SlaveDeviceEX;

1. deviceID
장치 식별자입니다.

2. deviceType
장치 유형입니다.

3. enableOSDP
슬레이브 장치를 사용하는지를 결정하는 flag 값입니다.

4. connected
슬레이브 장치가 마스터 장치에 연결되었는지를 나타내는 flag 값입니다.

5. channelInfo
슬레이브 장치의 Channel 값입니다.

6. reserved
예약된 공간입니다.

BS2OsdpStandardDevice

typedef struct {
	BS2_DEVICE_ID	deviceID;		///< 4 bytes
	BS2_DEVICE_TYPE	deviceType;		///< 2 bytes
	BS2_BOOL		enableOSDP;		///< 1 byte
	BS2_BOOL		connected;		///< 1 byte
 
	uint8_t			channelInfo;	///< 1 byte
	uint8_t			osdpID;			///< 1 byte
	BS2_BOOL		supremaSearch;	///< 1 byte
	BS2_BOOL		activate;		///< 1 byte
 
	BS2_BOOL		useSecure;		///< 1 byte
	uint8_t			vendorCode[3];	///< 3 bytes
 
	BS2_VERSION		fwVersion;		///< 4 bytes
 
	uint8_t			modelNumber;	///< 1 byte
	uint8_t			modelVersion;	///< 1 byte
	BS2_BOOL		readInfo;		///< 1 byte
	uint8_t			reserved[25];	///< 25 byte (packing)
} BS2OsdpStandardDevice;			///< 48 bytes

1. deviceID
OSDP 장치 식별자입니다.

2. deviceType
장치 유형입니다. 일반적으로 BS2_DEVICE_TYPE_3RD_OSDP_DEVICE를 갖습니다.

3. enableOSDP
항상 true로 설정되어집니다.

4. connected
true이면 OSDP 장치가 현재 연결되어 있음을 나타냅니다.

5. channelInfo
연결된 채널정보입니다. CoreStation40이 0~4 까지 5개의 채널을 가지므로, 이 범위의 채널 값을 갖습니다.

6. osdpID
OSDP 식별자입니다.

7. supremaSearch
OSDP를 지원하지 않는 기존 RS485와 구별되는 정보로, 항상 false를 갖습니다.

8. activate
장치의 연결 상태와 무관하게, 연결되어있는 장치의 동작여부를 결정할 수 있는데, 동작의 활성화 상태를 나타냅니다.

9. useSecure
암호화 통신을 사용하는지 여부를 나타냅니다.
별도의 키를 설정하지 않았다면 기본키로 암호화 통신을 수행하며, BS2_SetOsdpStandardDeviceSecurityKey로 변경할 수 있습니다.

10. vendorCode
Vendor의 고유 값입니다.

11. fwVersion
OSDP 장치의 FW 버전 정보입니다.

12. modelNumber
OSDP 장치의 모델 번호입니다.

13. modelVersion
OSDP 장치의 모델 버전입니다.

14. readInfo
vendorCode나 fwVersion, model 등, OSDP 장치 정보를 갖고 있는지 나타냅니다. 장치 정보를 갖고 있다는 것은 해당 장치가 master에 연결된 적이 있음을 의미합니다.

15. reserved
예약된 공간입니다.

BS2OsdpStandardNotify

typedef struct {
	BS2_DEVICE_ID	deviceID;		///< 4 bytes
	BS2_DEVICE_TYPE	deviceType;		///< 2 bytes
	BS2_BOOL		enableOSDP;		///< 1 byte
	BS2_BOOL		connected;		///< 1 byte
 
	uint8_t			channelInfo;	///< 1 byte
	uint8_t			osdpID;			///< 1 byte
	BS2_BOOL		supremaSearch;	///< 1 byte
	BS2_BOOL		activate;		///< 1 byte
 
	BS2_BOOL		useSecure;		///< 1 byte
	uint8_t			vendorCode[3];	///< 3 bytes
 
	BS2_VERSION		fwVersion;		///< 4 bytes
 
	uint8_t			modelNumber;	///< 1 byte
	uint8_t			modelVersion;	///< 1 byte
	BS2_BOOL		readInfo;		///< 1 byte
	uint8_t			reserved[5];	///< 5 bytes (packing)
} BS2OsdpStandardNotify;			///< 48 bytes

1. deviceID
OSDP 장치 식별자입니다.

2. deviceType
장치 유형입니다. 일반적으로 BS2_DEVICE_TYPE_3RD_OSDP_DEVICE를 갖습니다.

3. enableOSDP
항상 true로 설정되어집니다.

4. connected
true이면 OSDP 장치가 현재 연결되어 있음을 나타냅니다.

5. channelInfo
연결된 채널정보입니다. CoreStation40이 0~4 까지 5개의 채널을 가지므로, 이 범위의 채널 값을 갖습니다.

6. osdpID
OSDP 식별자입니다.

7. supremaSearch
OSDP를 지원하지 않는 기존 RS485와 구별되는 정보로, 항상 false를 갖습니다.

8. activate
장치의 연결 상태와 무관하게, 연결되어있는 장치의 동작여부를 결정할 수 있는데, 동작의 활성화 상태를 나타냅니다.

9. useSecure
암호화 통신을 사용하는지 여부를 나타냅니다.
별도의 키를 설정하지 않았다면 기본키로 암호화 통신을 수행하며, BS2_SetOsdpStandardDeviceSecurityKey로 변경할 수 있습니다.

10. vendorCode
Vendor의 고유 값입니다.

11. fwVersion
OSDP 장치의 FW 버전 정보입니다.

12. modelNumber
OSDP 장치의 모델 번호입니다.

13. modelVersion
OSDP 장치의 모델 버전입니다.

14. readInfo
vendorCode나 fwVersion, model 등, OSDP 장치 정보를 갖고 있는지 나타냅니다. 장치 정보를 갖고 있다는 것은 해당 장치가 master에 연결된 적이 있음을 의미합니다.

15. reserved
예약된 공간입니다.

BS2OsdpStandardDeviceAdd

typedef struct {
	uint8_t 		osdpID;                         ///< 1 byte
	uint8_t			activate;                       ///< 1 byte
	uint8_t			useSecureSession;               ///< 1 byte
	uint8_t			deviceType;                     ///< 1 byte
	BS2_DEVICE_ID	deviceID;                       ///< 4 bytes
} BS2OsdpStandardDeviceAdd;    						///< 8 bytes

1. osdpID
OSDP 식별자입니다. 식별자는 사용자가 직접 0~126 사이의 임의의 값을 지정하여야 합니다.
이 값은 동일 채널 내에서는 중복을 허용하지 않으며, 중복되거나 범위 밖의 값이 지정된 경우 오류를 발생시킬 수 있습니다.
마스터 장치 내에서 채널이 다르다면 동일한 식별자를 부여하여 장치를 추가 할 수 있습니다.

2. activate
장치 활성화 상태를 지정합니다.
장치의 연결 상태와는 무관하며, false로 설정되면 성공적으로 연결이 되어있더라도 해당 장치의 동작은 무시됩니다.

3. useSecureSession
암호화 통신 여부를 지정합니다.
별도의 키를 설정하지 않았다면 기본키로 암호화 통신을 수행하며, BS2_SetOsdpStandardDeviceSecurityKey로 변경할 수 있습니다.

4. deviceType
장치 유형입니다. BS2_DEVICE_TYPE_3RD_OSDP_DEVICE로 설정되어져야 합니다.

5. deviceID
장치 식별자입니다. 0으로 설정 시 master 장치가 알아서 할당하여 줍니다.

BS2OsdpStandardDeviceUpdate

typedef struct {
	uint8_t 		osdpID;                         ///< 1 byte
	uint8_t			activate;                       ///< 1 byte
	uint8_t			useSecureSession;               ///< 1 byte
	uint8_t			deviceType;                     ///< 1 byte
	BS2_DEVICE_ID	deviceID;                       ///< 4 bytes
} BS2OsdpStandardDeviceUpdate;    					///< 8 bytes

1. osdpID
OSDP 식별자입니다. 식별자는 사용자가 직접 0~126 사이의 임의의 값을 지정하여야 합니다.
이 값은 동일 채널 내에서는 중복을 허용하지 않으며, 중복되거나 범위 밖의 값이 지정된 경우 오류를 발생시킬 수 있습니다.
마스터 장치 내에서 채널이 다르다면 동일한 식별자를 부여하여 장치를 추가 할 수 있습니다.

2. activate
장치 활성화 상태를 지정합니다.
장치의 연결 상태와는 무관하며, false로 설정되면 성공적으로 연결이 되어있더라도 해당 장치의 동작은 무시됩니다.

3. useSecureSession
암호화 통신 여부를 지정합니다.
별도의 키를 설정하지 않았다면 기본키로 암호화 통신을 수행하며, BS2_SetOsdpStandardDeviceSecurityKey로 변경할 수 있습니다.

4. deviceType
장치 유형입니다. BS2_DEVICE_TYPE_3RD_OSDP_DEVICE로 설정되어져야 합니다.

5. deviceID
장치 식별자입니다.

BS2OsdpStandardDeviceCapability

typedef struct {
	uint8_t					compliance;
	uint8_t					count;
} BS2OsdpStandardDeviceCapabilityItem;
 
typedef struct {
	BS2OsdpStandardDeviceCapabilityItem input;			///< 2 bytes
	BS2OsdpStandardDeviceCapabilityItem	output;			///< 2 bytes
	BS2OsdpStandardDeviceCapabilityItem	led;			///< 2 bytes
	BS2OsdpStandardDeviceCapabilityItem	audio;			///< 2 bytes
	BS2OsdpStandardDeviceCapabilityItem	textOutput;		///< 2 bytes
	BS2OsdpStandardDeviceCapabilityItem	reader;			///< 2 bytes
 
	uint16_t				recvBufferSize;				///< 2 bytes
	uint16_t				largeMsgSize;				///< 2 bytes
 
	uint8_t					osdpVersion;				///< 1 byte
	uint8_t					cardFormat;					///< 1 byte
	uint8_t					timeKeeping;				///< 1 byte
	uint8_t					canCommSecure;				///< 1 byte
 
	BS2_BOOL				crcSupport;					///< 1 byte
	BS2_BOOL				smartCardSupport;			///< 1 byte
	BS2_BOOL				biometricSupport;			///< 1 byte
	BS2_BOOL				securePinEntrySupport;		///< 1 byte
 
	uint8_t					reserved[4];				///< 4 bytes
} BS2OsdpStandardDeviceCapability;						///< 28 bytes

1. compliance
PD의 기능(function)에 따른 준수수준(compliance level)을 나타냅니다.
기능은 input, output, led, audio, textOutput 등이 있으며, 기능 별로 준수수준이 상이하므로 관련 OSDP 문서를 참고바랍니다.

2. count
PD의 기능(function)에 따른 갯수(number of objects)를 의미하는데, 기능 별로 갯수에 부여되는 의미가 다르므로 관련 OSDP 문서를 참고바랍니다.

3. input
입력(모니터링) 기능을 정의합니다.

4. output
출력 기능을 정의합니다.

5. led
LED 기능을 정의합니다.

6. audio
Buzzer 기능을 정의합니다.

7. textOutput
문자 출력 기능을 정의합니다.

8. reader
지원되는 장치 수를 나타내며, count 정보만 의미를 갖습니다.

9. recvBufferSize
PD가 수신할 수 있는 단문 메시지 크기를 나타냅니다.

10. largeMsgSize
PD가 처리할 수 있는 장문 메시지의 최대 크기입니다.

11. osdpVersion
OSDP 버전입니다.

12. cardFormat
카드 데이터 포멧 기능을 정의하며, 01, 02, 03 중 하나의 값을 갖습니다. OSDP 문서의 카드 데이터 포멧관련 compliance level을 참고바랍니다.

13. timeKeeping
PD의 날짜 및 시간 정보 유형과 이를 유지하는 것에 대해 나타냅니다. OSDP 2.2에서 이 기능은 사용되지 않습니다.

14. canCommSecure
보안통신 지원 여부를 나타냅니다.

15. crcSupport
체크섬 지원 여부를 나타냅니다.

16. smartCardSupport
스마트 카드 지원 여부를 나타냅니다.

17. biometricSupport
생체정보 처리가 가능한지를 나타냅니다.

18. securePinEntrySupport
SPE(Secure PIN Entry) 지원 여부를 나타냅니다.

19. reserved
예약된 공간입니다.

BS2OsdpStandardDeviceResult

typedef struct {
    BS2_DEVICE_ID    deviceID;
    BS2_OSDP_RESULT  result;
} BS2OsdpStandardDeviceResult;

1. deviceID
장치 식별자입니다.

2. result
OSDP 장치 명령 결과 값을 가집니다.

설명
0 Success
1 Fail
2 Not available

BS2OsdpStandardDeviceSecurityKey

typedef struct {
    uint8_t    key[BS2_OSDP_STANDARD_KEY_SIZE];
    uint8_t    reserved[32];
} BS2OsdpStandardDeviceSecurityKey;

1. key
OSDP 장치에서 사용할 16byte 크기의 보안키 입니다.

2. reserved
예약된 공간입니다.