차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 마지막 판 양쪽 다음 판 | ||
ko:zone_control_api [2018/11/14 08:45] kkshin |
ko:zone_control_api [2021/01/06 14:45] kkshin [Ethernet 구역] |
||
---|---|---|---|
줄 1: | 줄 1: | ||
====== Zone Control API ====== | ====== Zone Control API ====== | ||
- | 하나의 관리 지역을 특정 목적에 맞게 여러 구역으로 나눠 출입을 통제할 수 있습니다. 구역을 설정하면 출입 인증 장치, 출입문의 동작을 제어할 수 있으며, BioStart 시스템에서는 4 종류의 구역을 설정할 수 있습니다.\\ | + | 하나의 관리 지역을 특정 목적에 맞게 여러 구역으로 나눠 출입을 통제할 수 있습니다. 구역을 설정하면 출입 인증 장치, 출입문의 동작을 제어할 수 있습니다. \\ |
---- | ---- | ||
줄 18: | 줄 18: | ||
* [[BS2_SetCheckGlobalAPBViolationHandler]]: 안티패스백 경보가 발생했을 때 글로벌 판정을 위해 콜백 함수를 등록합니다. | * [[BS2_SetCheckGlobalAPBViolationHandler]]: 안티패스백 경보가 발생했을 때 글로벌 판정을 위해 콜백 함수를 등록합니다. | ||
* [[BS2_CheckGlobalAPBViolation]]: 글로벌 안티패스백 판정 결과를 장치로 전송합니다. | * [[BS2_CheckGlobalAPBViolation]]: 글로벌 안티패스백 판정 결과를 장치로 전송합니다. | ||
+ | * [[BS2_SetGlobalAPBViolationByDoorOpenHandler]]: [+ 2.7.0] 출입문 센서 기반의 안티패스백 경보가 발생했을 때 글로벌 판정을 위해 콜백 함수를 등록합니다. | ||
+ | * [[BS2_CheckGlobalAPBViolationByDoorOpen]]: [+ 2.7.0] 출입문 센서 기반의 글로벌 안티패스백 판정 결과를 장치로 전송합니다. | ||
---- | ---- | ||
줄 83: | 줄 85: | ||
---- | ---- | ||
==== Ethernet 구역 ==== | ==== Ethernet 구역 ==== | ||
- | Zone Master 역할을 BioStar V2.x 서버가 아닌 특정 장치가 하며 장치 사이(Master <-> Member)의 통신 방식으로 Ethernet TCP 통신 방식을 사용하는 Zone이다. | + | Zone Master 역할을 BioStar V2.x 서버가 아닌 특정 장치가 하며 장치 사이(Master <-> Member)의 통신 방식으로 Ethernet TCP 통신 방식을 사용하는 Zone입니다. |
- | 기존 1.x Entrance Limit, Fire Alarm Zone에 상응하는 기능만을 현재는 지원한다. | + | 현재는 기존 1.x Entrance Limit, Fire Alarm Zone에 기능만을 지원합니다. A2(FW 1.4.0 이상), BS2(FW 1.5.0 이상) and P2(FW 1.0.0이상)에서 지원합니다. |
* [[BS2_GetDeviceZone]]: 주어진 Ethernet 구역을 가져옵니다. | * [[BS2_GetDeviceZone]]: 주어진 Ethernet 구역을 가져옵니다. | ||
* [[BS2_GetAllDeviceZone]]: 모든 Ethernet을 가져옵니다. | * [[BS2_GetAllDeviceZone]]: 모든 Ethernet을 가져옵니다. | ||
줄 98: | 줄 100: | ||
* [[BS2_RemoveDeviceZoneAGEntranceLimit]]: 주어진 Ethernet Access Group 인증 제한 구역을 제거합니다. | * [[BS2_RemoveDeviceZoneAGEntranceLimit]]: 주어진 Ethernet Access Group 인증 제한 구역을 제거합니다. | ||
* [[BS2_RemoveAllDeviceZoneAGEntranceLimit]]: 모든 Ethernet Access Group 인증 제한 구역을 제거합니다. | * [[BS2_RemoveAllDeviceZoneAGEntranceLimit]]: 모든 Ethernet Access Group 인증 제한 구역을 제거합니다. | ||
+ | * [[BS2_GetDeviceZoneMasterConfig]]: Ethernet 구역의 master 장치 설정을 가져옵니다. | ||
+ | * [[BS2_SetDeviceZoneMasterConfig]]: Ethernet 구역의 master 장치 설정을 저장합니다. | ||
+ | * [[BS2_RemoveDeviceZoneMasterConfig]]: Ethernet 구역의 master 장치 설정을 제거합니다. | ||
+ | \\ | ||
+ | ---- | ||
+ | ==== Lift스케줄 잠금/개방 구역 ==== | ||
+ | [+ 2.7.0] Elevator 제어관련, 인증권한과 무관하게 시간대를 기반으로 특정 층에 접근할 수 있도록 하는 새로운 함수들을 제공합니다. | ||
+ | * [[BS2_GetLiftLockUnlockZone]]: 주어진 Lift스케줄 잠금/개방 구역을 가져옵니다. | ||
+ | * [[BS2_GetAllLiftLockUnlockZone]]: 모든 Lift스케줄 잠금/개방 구역을 가져옵니다. | ||
+ | * [[BS2_GetLiftLockUnlockZoneStatus]]: 주어진 Lift스케줄 잠금/개방 구역의 상태 정보를 가져옵니다. | ||
+ | * [[BS2_GetAllLiftLockUnlockZoneStatus]]: 모든 Lift스케줄 잠금/개방 구역의 상태 정보를 가져옵니다. | ||
+ | * [[BS2_SetLiftLockUnlockZone]]: Lift스케줄 잠금/개방 구역을 설정합니다. | ||
+ | * [[BS2_SetLiftLockUnlockZoneAlarm]]: Lift스케줄 잠금/개방 구역의 경보 상태를 갱신합니다. | ||
+ | * [[BS2_RemoveLiftLockUnlockZone]]: 주어진 Lift스케줄 잠금/개방 구역을 제거합니다. | ||
+ | * [[BS2_RemoveAllLiftLockUnlockZone]]: 모든 Lift스케줄 잠금/개방 구역을 제거합니다. | ||
\\ | \\ | ||
---- | ---- | ||
줄 105: | 줄 122: | ||
<code cpp> | <code cpp> | ||
typedef void (*OnCheckGlobalAPBViolation)(uint32_t deviceId, uint16_t seq, const char* userID_1, const char* userID_2, bool isDualAuth); | typedef void (*OnCheckGlobalAPBViolation)(uint32_t deviceId, uint16_t seq, const char* userID_1, const char* userID_2, bool isDualAuth); | ||
+ | </code> | ||
+ | \\ | ||
+ | |||
+ | 1. //deviceId// \\ | ||
+ | 장치 식별자입니다. \\ \\ | ||
+ | 2. //seq// \\ | ||
+ | 패킷 일련번호입니다. \\ \\ | ||
+ | 3. //userID_1// \\ | ||
+ | 첫 번째 사용자 ID 입니다. \\ \\ | ||
+ | 4. //userID_2// \\ | ||
+ | 두 번째 사용자 ID 입니다. \\ \\ | ||
+ | 5. //isDualAuth// \\ | ||
+ | 이중인증 여부를 의미합니다. \\ \\ | ||
+ | |||
+ | ==== OnCheckGlobalAPBViolationByDoorOpen ==== | ||
+ | 출입문 센서 기반의 안티패스백 경보가 발생했을 때, 인증정보를 바탕으로 글로벌 판정을 요청하는 1차 콜백 함수입니다. | ||
+ | <code cpp> | ||
+ | typedef void (*OnCheckGlobalAPBViolationByDoorOpen)(uint32_t deviceId, uint16_t seq, const char* userID_1, const char* userID_2, bool isDualAuth); | ||
+ | </code> | ||
+ | \\ | ||
+ | |||
+ | 1. //deviceId// \\ | ||
+ | 장치 식별자입니다. \\ \\ | ||
+ | 2. //seq// \\ | ||
+ | 패킷 일련번호입니다. \\ \\ | ||
+ | 3. //userID_1// \\ | ||
+ | 첫 번째 사용자 ID 입니다. \\ \\ | ||
+ | 4. //userID_2// \\ | ||
+ | 두 번째 사용자 ID 입니다. \\ \\ | ||
+ | 5. //isDualAuth// \\ | ||
+ | 이중인증 여부를 의미합니다. \\ \\ | ||
+ | |||
+ | ==== OnUpdateGlobalAPBViolationByDoorOpen ==== | ||
+ | 출입문 센서 기반의 안티패스백 경보가 발생했을 때, 최종 사용자 출입 상태의 업데이트를 요청하는 2차 콜백 함수입니다. | ||
+ | <code cpp> | ||
+ | typedef void (*OnUpdateGlobalAPBViolationByDoorOpen)(uint32_t deviceId, uint16_t seq, const char* userID_1, const char* userID_2, bool isDualAuth); | ||
</code> | </code> | ||
\\ | \\ | ||
줄 749: | 줄 802: | ||
8. //accessGroupID// \\ | 8. //accessGroupID// \\ | ||
출입 그룹 식별자 리스트로 최대 16개까지 지정할 수 있습니다 \\ \\ | 출입 그룹 식별자 리스트로 최대 16개까지 지정할 수 있습니다 \\ \\ | ||
+ | |||
+ | ==== BS2DeviceZoneMasterConfig ==== | ||
+ | <code cpp> | ||
+ | typedef struct | ||
+ | { | ||
+ | bool enable; | ||
+ | uint8_t reserved1[1]; | ||
+ | uint16_t listenPort; | ||
+ | uint8_t reserved[4]; | ||
+ | } BS2DeviceZoneMasterConfig; | ||
+ | </code> | ||
+ | 1. //enable// \\ | ||
+ | 활성화 여부 flag값입니다. \\ \\ | ||
+ | 2. //reserved1// \\ | ||
+ | 예약된 공간입니다. \\ \\ | ||
+ | 3. //listenPort// \\ | ||
+ | Slave 장치들로부터 연결되어질 TCP/IP port 정보입니다. \\ \\ | ||
+ | 4. //reserved// \\ | ||
+ | 예약된 공간입니다. \\ \\ | ||
+ | |||
+ | ==== BS2LiftFloors ==== | ||
+ | <code cpp> | ||
+ | typedef struct { | ||
+ | uint32_t liftID; | ||
+ | uint16_t numFloors; | ||
+ | uint16_t reserved; | ||
+ | uint8_t floorIndices[256]; | ||
+ | } BS2LiftFloors; | ||
+ | </code> | ||
+ | 1. //liftID// \\ | ||
+ | lift 식별자로 항상 1이상의 값을 가져야 합니다.\\ \\ | ||
+ | 2. //numFloors// \\ | ||
+ | floorIndices의 개수입니다. \\ \\ | ||
+ | 3. //reserved// \\ | ||
+ | 예약된 공간입니다. \\ \\ | ||
+ | 4. //floorIndices// \\ | ||
+ | BS2Lift의 BS2LiftFloor 255개 배열에서 원하는 floor 정보의 인덱스 값을 이곳에서 순서대로 나열합니다. \\ | ||
+ | 예를들어, 1, 3, 5, 9번째 BS2LiftFloor 정보로 scheduled lock/unlock 구역의 멤버 floor를 구성하고 싶다면, \\ | ||
+ | floorIndices[0]부터 순서대로 1, 3, 5, 9로 지정되어야 합니다. \\ \\ | ||
+ | |||
+ | ==== BS2LiftLockUnlockZone ==== | ||
+ | <code cpp> | ||
+ | typedef struct { | ||
+ | uint32_t zoneID; | ||
+ | char name[BS2_MAX_ZONE_NAME_LEN]; | ||
+ | uint32_t unlockScheduleID; | ||
+ | uint32_t lockScheduleID; | ||
+ | |||
+ | uint8_t numLifts; | ||
+ | uint8_t numBypassGroups; | ||
+ | uint8_t numUnlockGroups; | ||
+ | uint8_t unused; | ||
+ | |||
+ | uint8_t disabled; | ||
+ | uint8_t alarmed; | ||
+ | uint8_t reserved[6]; | ||
+ | |||
+ | BS2Action alarm[BS2_MAX_LIFT_LOCK_UNLOCK_ALARM_ACTION]; | ||
+ | |||
+ | uint8_t reserved2[32]; | ||
+ | |||
+ | BS2LiftFloors lifts[BS2_MAX_LIFTS_IN_LIFT_LOCK_UNLOCK_ZONE]; | ||
+ | uint32_t bypassGroupIDs[BS2_MAX_BYPASS_GROUPS_IN_LIFT_LOCK_UNLOCK_ZONE]; | ||
+ | uint32_t unlockGroupIDs[BS2_MAX_UNLOCK_GROUPS_IN_LIFT_LOCK_UNLOCK_ZONE]; | ||
+ | } BS2LiftLockUnlockZone; | ||
+ | </code> | ||
+ | 1. //zoneID// \\ | ||
+ | 구역 식별자로 항상 1이상의 값을 가져야 합니다.\\ \\ | ||
+ | 2. //name// \\ | ||
+ | BioStar 애플리케이션에서 보여줄 구역 이름입니다. \\ \\ | ||
+ | 3. //unlockScheduleID// \\ | ||
+ | 구역으로 지정한 lift floor들이 스케줄 개방 상태로 동작해야 할 스케줄정보 식별자입니다. \\ \\ | ||
+ | 4. //lockScheduleID// \\ | ||
+ | 구역으로 지정한 lift floor들이 스케줄 잠금 상태로 동작해야 할 스케줄정보 식별자입니다. \\ \\ | ||
+ | 5. //numLifts// \\ | ||
+ | lifts로 지정한 정보의 개수입니다. \\ \\ | ||
+ | 6. //numBypassGroups// \\ | ||
+ | lift스케줄 잠금 상태에서도 출입을 허용하는 출입 그룹의 총 개수입니다. \\ \\ | ||
+ | 7. //numUnlockGroups// \\ | ||
+ | lift스케줄 개방 일정에서 모든 출입문을 열 수 있는 권한을 가진 출입 그룹의 총 개수입니다. \\ \\ | ||
+ | 8. //unused// \\ | ||
+ | 사용하지 않는 필드입니다. \\ \\ | ||
+ | 9. //disabled// \\ | ||
+ | 활성화 여부 flag값입니다 . \\ \\ | ||
+ | 10. //alarmed// \\ | ||
+ | 현재 구역의 경보 상태입니다. \\ \\ | ||
+ | 11. //reserved// \\ | ||
+ | 예약된 공간입니다. \\ \\ | ||
+ | 12. //alarm// \\ | ||
+ | 구역 규칙을 위반하였을 때 동작할 경보로 최대 5개까지 설정할 수 있습니다. \\ \\ | ||
+ | 13. //reserved2// \\ | ||
+ | 예약된 공간입니다. \\ \\ | ||
+ | 14. //lifts// \\ | ||
+ | lift의 floor 정보입니다. \\ \\ | ||
+ | 15. //bypassGroupIDs// \\ | ||
+ | lift스케줄 잠금 상태에서도 출입을 허용하는 출입 그룹 식별자를 나열한 리스트로 최대 16개까지 설정할 수 있습니다. \\ \\ | ||
+ | 16. //unlockGroupIDs// \\ | ||
+ | lift스케줄 개방 일정에서 모든 출입문을 열 수 있는 권한을 가진 출입 그룹 식별자를 나열한 리스트로 최대 16개까지 설정할 수 있습니다. \\ \\ | ||