차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
ko:zone_control_api [2020/07/21 21:02]
kkshin
ko:zone_control_api [2023/08/31 09:39] (현재)
kkshin [BS2ZoneStatus]
줄 1: 줄 1:
 ====== Zone Control API ====== ====== Zone Control API ======
  
-하나의 관리 지역을 특정 목적에 맞게 여러 구역으로 나눠 출입을 통제할 수 있습니다. 구역을 설정하면 출입 인증 장치, 출입문의 동작을 제어할 수 있으며, BioStart 시스템에서는 4 종류의 구역을 설정할 수 있습니다.\\+하나의 관리 지역을 특정 목적에 맞게 여러 구역으로 나눠 출입을 통제할 수 있습니다. 구역을 설정하면 출입 인증 장치, 출입문의 동작을 제어할 수 있습니다. \\
  
 ---- ----
줄 85: 줄 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에 ​상응하는 ​기능만을 ​현재는 ​지원다. A2(FW 1.4.0 이상), BS2(FW 1.5.0 이상) and P2(FW 1.0.0이상)에서 지원합니다. ​+현재는 ​기존 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을 가져옵니다.  ​
줄 100: 줄 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 장치 설정을 제거합니다.
 \\ \\
 ---- ----
줄 185: 줄 188:
 <WRAP group 50%> <WRAP group 50%>
 ^값  ^설명 ​ ^ ^값  ^설명 ​ ^
-|0 |정상 ​ |+|0 |정상, 경비해제 ​ |
 |1 |알람 발생 ​ | |1 |알람 발생 ​ |
-|2 |scheduled lock  | +|2 |Scheduled locked, Lift locked ​ | 
-|4 |scheduled unlock ​ |+|4 |Scheduled unlocked, Lift unlocked ​ | 
 +|8 |경비 ​ |
 </​WRAP> ​ </​WRAP> ​
  
줄 799: 줄 803:
 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개까지 설정할 수 있습니다. \\ \\