====== Lift Control API ======
Lift를 관리하기 위한 API로 floorLevel 관리를 통해 Lift 제한 및 관리할 수 있습니다. \\
* [[BS2_GetLift]]: 주어진 Lift를 가져옵니다.
* [[BS2_GetAllLift]]: 모든 Lift를 가져옵니다.
* [[BS2_GetLiftStatus]]: 주어진 Lift의 상태 정보를 가져옵니다
* [[BS2_GetAllLiftStatus]]: 모든 Lift의 상태 정보를 가져옵니다
* [[BS2_SetLift]]: Lift을 설정합니다.
* [[BS2_SetLiftAlarm]]: Lift의 경보 상태를 갱신합니다.
* [[BS2_RemoveLift]]: 주어진 Lift를 제거합니다.
* [[BS2_RemoveAllLift]]: 모든 Lift를 제거합니다.
* [[BS2_ReleaseFloor]]: Floor의 우선 순위를 제거합니다.
* [[BS2_ActivateFloor]]: Floor가 허용될 때의 우선 순위를 설정하며, 허용되지 않을 때의 우선 순위보다 높아야 Floor에 접근 가능합니다.
* [[BS2_DeActivateFloor]]: Floor가 허용되지 않을 때의 우선 순위를 설정하며, 허용될 때의 우선 순위보다 높아야 Floor에 접근을 막을 수 있습니다.
* [[BS2_GetFloorLevel]]: 주어진 Floor 레벨을 가져옵니다.
* [[BS2_GetAllFloorLevel]]: 모든 Floor 레벨을 가져옵니다.
* [[BS2_SetFloorLevel]]: Floor 레벨을 설정합니다.
* [[BS2_RemoveFloorLevel]]: 주어진 Floor 레벨을 제거합니다.
* [[BS2_RemoveAllFloorLevel]]: 모든 Floor 레벨을 제거합니다.
==== BS2Lift====
typedef struct {
BS2_LIFT_ID liftID;
char name[BS2_MAX_LIFT_NAME_LEN];
BS2_DEVICE_ID deviceID[BS2_MAX_DEVICES_ON_LIFT];
uint32_t activateTimeout;
uint32_t dualAuthTimeout;
uint8_t numFloors;
uint8_t numDualAuthApprovalGroups;
BS2_DUAL_AUTH_APPROVAL dualAuthApprovalType;
BS2_BOOL tamperOn;
BS2_BOOL dualAuthRequired[BS2_MAX_DEVICES_ON_LIFT];
BS2_SCHEDULE_ID dualAuthScheduleID;
BS2LiftFloor floor[BS2_MAX_FLOORS_ON_LIFT];
BS2_ACCESS_GROUP_ID dualAuthApprovalGroupID[BS2_MAX_DUAL_AUTH_APPROVAL_GROUP_ON_LIFT];
BS2LiftAlarm alarm[BS2_MAX_ALARMS_ON_LIFT];
BS2LiftAlarm tamper;
BS2_LIFT_ALARM_FLAG alarmFlags;
uint8_t reserved[3];
} BS2Lift;
1. //liftID// \\
lift 식별자입니다.\\ \\
2. //name// \\
BioStar 애플리케이션에서 보여줄 Lift 이름입니다. \\ \\
3. //deviceID// \\
lift 장치와 연결된 장치 식별자입니다.\\ \\
4. //activateTimeout// \\
lift가 열린 후 자동으로 닫힐때까지 걸리는 시간으로 초 단위입니다.\\ \\
5. //dualAuthTimeout// \\
1번째 사용자의 인증이 끝나고 2번째 사용자의 인증을 시도하기까지 대기하는 시간으로 초 단위입니다.\\ \\
6. //numFloors// \\
lift에 속한 Floor의 개수입니다. \\ \\
7. //numDualAuthApprovalGroups// \\
이중 출입 권한을 가지는 그룹의 총 개수입니다.\\ \\
8. //dualAuthApprovalType// \\
출입을 허용할 때 사용자의 출입 그룹이 이중 인증 출입 권한을 가지는 그룹에 속한지 검사하는 flag입니다.\\
^값 ^설명 ^
|0 |없음 |
|1 |마지막 사용자의 권한 확인 |
9. //tamperOn// \\
현재 tamper 상태 여부입니다.\\ \\
10. //dualAuthRequired// \\
장치의 이중 인증 필요 여부입니다.\\ \\
11. //dualAuthScheduleID// \\
이중 인증이 필요한 타임 스케줄로 이중 인증이 필요 없다면 0을, 항상 필요하면 1을, 아니면 적절한 타임 스케줄 식별자를 지정할 수 있습니다.\\ \\
12. //floor// \\
lift의 floor 정보입니다. 최대 255까지 설정할 수 있습니다.\\ \\
13. //dualAuthApprovalGroupID// \\
이중 출입 권한을 가지는 그룹을 나열한 리스트로 최대 16까지 설정할 수 있습니다.\\ \\
14. //alarm// \\
lift의 sensor가 감지되었을 때 동작할 경보로 최대2개까지 설정할 수 있습니다.\\ \\
15. //tamper// \\
lift의 tamper가 감지되었을 때 동작할 경보 정보입니다.\\ \\
16. //alarmFlags// \\
경보 flag입니다.\\ \\
17. //reserved// \\
예약된 공간입니다.\\ \\
==== BS2LiftFloor====
typedef struct {
BS2_DEVICE_ID deviceID;
uint8_t port;
BS2FloorStatus status;
} BS2LiftFloor;
1. //deviceID// \\
장치 식별자입니다.\\ \\
2. //port// \\
장치의 입력 포트입니다\\ \\
3. //status// \\
Floor 상태 정보입니다.\\ \\
==== BS2FloorStatus====
typedef struct {
BS2_BOOL activated;
BS2_FLOOR_FLAG activateFlags;
BS2_FLOOR_FLAG deactivateFlags;
} BS2FloorStatus;
1. //activated// \\
대기상태에서 열림과 닫힘의 상태 정보입니다.\\ \\
2. //activateFlags// \\
floor가 열릴 때의 우선 순위로 닫힐 때의 우선 순위보다 낮으면 수행되지 않습니다. 예를 들어, 관리자 권한으로 floor를 닫은 상태라면(OPERATOR), 모든 사용자의 출입이 허용되지 않습니다. 유의해야 할 사항으로 activateFlags와 deactivateFlags는 기본 우선 순위(NONE)를 제외하고는 동일 우선 순위를 가질 수 없습니다.\\ \\
^값 ^설명 ^우선순위 ^
|0 |기본 |보통 |
|1 |일정 |약간 높음 |
|4 |관리자 |높음 |
|2 |긴급 |매우 높음 |
3. //deactivateFlags// \\
floor가 닫힐 때의 우선 순위로 열릴 때의 우선 순위보다 낮으면 수행되지 않습니다\\ \\
^값 ^설명 ^우선순위 ^
|0 |기본 |보통 |
|1 |일정 |약간 높음 |
|4 |관리자 |높음 |
|2 |긴급 |매우 높음 |
==== BS2LiftSensor====
typedef struct {
BS2_DEVICE_ID deviceID;
uint8_t port;
BS2_SWITCH_TYPE switchType;
uint16_t duration;
BS2_SCHEDULE_ID scheduleID;
} BS2LiftSensor;
1. //deviceID// \\
장치 식별자입니다.\\ \\
2. //port// \\
장치의 입력 포트입니다.\\ \\
3. //switchType// \\
입력 신호 유형입니다. \\
^값 ^설명 ^
|0 |대기 상태에서 열림 상태로 유지 |
|1 |대기 상태에서 닫힘 상태로 유지 |
4. //duration// \\
입력 신호를 화재 경보 상태로 판단하기까지 걸리는 시간으로 millisecond 단위입니다.\\ \\
5. //scheduleID// \\
lift를 동작하기 위한 타임 스케줄입니다.\\ \\
==== BS2LiftAlarm====
typedef struct {
BS2LiftSensor sensor;
BS2Action action;
} BS2LiftAlarm;
1. //sensor// \\
lift의 열림/닫힘 상태를 감지하는 센서입니다\\ \\
2. //action// \\
lift가 수행하는 action입니다.\\ \\
==== BS2LiftStatus====
typedef struct {
BS2_LIFT_ID liftID;
uint16_t numFloors;
BS2_LIFT_ALARM_FLAG alarmFlags;
BS2_BOOL tamperOn;
BS2FloorStatus floors[BS2_MAX_FLOORS_ON_LIFT];
} BS2LiftStatus;
1. //liftID// \\
lift 식별자입니다.\\ \\
2. //numFloors// \\
lift에 속한 Floor 개수입니다. \\ \\
3. //alarmFlags// \\
현재 lift의 경보 상태 정보입니다.\\ \\
^값 ^설명 ^
|0 |경보 없음 |
|1 |첫번째 경보 |
|2 |두번째 경보 |
|4 |Tamper |
4. //tamperOn// \\
현재 tamper 상태 정보입니다.\\ \\
5. //floors// \\
floor를 나열한 리스트로 최대 255까지 설정할 수 있습니다.\\ \\
==== BS2FloorLevel====
typedef struct {
BS2_FLOOR_LEVEL_ID id; // id >= 32768 (BS2_ACCESS_LEVEL_ID < 32768)
char name[BS2_MAX_FLOOR_LEVEL_NAME_LEN];
uint8_t numFloorSchedules;
uint8_t reserved[3];
BS2FloorSchedule floorSchedules[BS2_MAX_FLOOR_LEVEL_ITEMS];
} BS2FloorLevel;
1. //id// \\
Floor 레벨 식별자입니다. id >= 32768 (BS2_ACCESS_LEVEL_ID < 32768)\\ \\
2. //name// \\
BioStar 애플리케이션에서 보여줄 Floor 레벨 이름입니다. \\ \\
3. //numFloorSchedules// \\
Floor 레벨에 속한 Floor 타임 스케줄 개수입니다. \\ \\
4. //reserved// \\
예약된 공간입니다.\\ \\
5. //floorSchedules// \\
Floor 레벨에 속한 Floor 타임 스케줄 리스트입니다\\ \\
==== BS2FloorSchedule====
typedef struct {
BS2_LIFT_ID liftID;
uint16_t floorIndex;
uint8_t reserved[2];
BS2_SCHEDULE_ID scheduleID;
} BS2FloorSchedule;
1. //liftID// \\
lift 식별자입니다. \\ \\
2. //floorIndex// \\
floor 식별자입니다.\\ \\
3. //reserved// \\
예약된 공간입니다. \\ \\
4. //scheduleID// \\
타임 스케줄 식별자입니다.\\ \\