====== Access Control API ======
출입 통제를 관리하기 위한 API로 개인별, 그룹별, 타임스케줄 관리를 통해 출입시간 제한 및 관리할 수 있습니다. \\
* [[BS2_GetAccessGroup]]: 주어진 출입 그룹을 가져옵니다.
* [[BS2_GetAllAccessGroup]]: 모든 출입 그룹을 가져옵니다.
* [[BS2_SetAccessGroup]]: 출입 그룹을 설정합니다.
* [[BS2_RemoveAccessGroup]]: 주어진 출입 그룹을 제거합니다.
* [[BS2_RemoveAllAccessGroup]]: 모든 출입 그룹을 제거합니다.
* [[BS2_GetAccessLevel]]: 주어진 출입 레벨을 가져옵니다.
* [[BS2_GetAllAccessLevel]]: 모든 출입 레벨을 가져옵니다.
* [[BS2_SetAccessLevel]]: 출입 레벨을 설정합니다.
* [[BS2_RemoveAccessLevel]]: 주어진 출입 레벨을 제거합니다.
* [[BS2_RemoveAllAccessLevel]]: 모든 출입 레벨을 제거합니다.
* [[BS2_GetAccessSchedule]]: 주어진 타임 스케줄을 가져옵니다.
* [[BS2_GetAllAccessSchedule]]: 모든 타임 스케줄을 가져옵니다.
* [[BS2_SetAccessSchedule]]: 타임 스케줄을 설정합니다.
* [[BS2_RemoveAccessSchedule]]: 주어진 타임 스케줄을 제거합니다.
* [[BS2_RemoveAllAccessSchedule]]: 모든 타임 스케줄을 제거합니다.
* [[BS2_GetHolidayGroup]]: 주어진 휴일 그룹을 가져옵니다.
* [[BS2_GetAllHolidayGroup]]: 모든 휴일 그룹을 가져옵니다.
* [[BS2_SetHolidayGroup]]: 휴일 그룹을 설정합니다.
* [[BS2_RemoveHolidayGroup]]: 주어진 휴일 그룹을 제거합니다.
* [[BS2_RemoveAllHolidayGroup]]: 모든 휴일 그룹을 제거합니다.
===== 구조체 ======
==== BS2AccessGroup ====
typedef struct {
uint32_t id;
char name[BS2_MAX_ACCESS_GROUP_NAME_LEN];
uint8_t numAccessLevels;
uint8_t reserved[3];
uint32_t accessLevels[BS2_MAX_ACCESS_LEVEL_PER_ACCESS_GROUP];
} BS2AccessGroup;
1. //id// \\
출입 그룹 식별자입니다. \\ \\
2. //name// \\
BioStar 애플리케이션에서 보여줄 출입 그룹 이름입니다. \\ \\
3. //numAccessLevels// \\
출입 그룹에 속한 출입 레벨의 개수입니다. \\ \\
4. //reserved// \\
예약된 공간입니다. \\ \\
5. //accessLevels// \\
출입 그룹에 속한 출입 레벨 리스트입니다. \\
==== BS2DoorSchedule ====
typedef struct {
uint32_t doorID;
uint32_t scheduleID;
} BS2DoorSchedule ;
1. //doorID// \\
출입문 식별자입니다. \\ \\
2. //scheduleID// \\
타임 스케줄 식별자입니다. \\
==== BS2AccessLevel ====
typedef struct {
uint32_t id;
char name[BS2_MAX_ACCESS_GROUP_NAME_LEN];
uint8_t numDoorSchedules;
uint8_t reserved[3];
BS2DoorSchedule doorSchedules[BS2_MAX_ACCESS_LEVEL_PER_ACCESS_GROUP];
} BS2AccessLevel;
1. //id// \\
출입 레벨 식별자입니다. \\ \\
2. //name// \\
BioStar 애플리케이션에서 보여줄 출입 레벨 이름입니다. \\ \\
3. //numDoorSchedules// \\
출입 레벨에 속한 출입문 타임 스케줄 개수입니다. \\ \\
4. //reserved// \\
예약된 공간입니다. \\ \\
5. //doorSchedules// \\
출입 레벨에 속한 출입문 타임 스케줄 리스트입니다. \\
==== BS2TimePeriod ====
typedef struct {
int16_t startTime;
int16_t endTime;
} BS2TimePeriod;
1. //startTime// \\
시분할 스케줄의 시작할 시간이며, 분 단위의 값을 가집니다.\\ \\
2. //endTime// \\
시분할 스케줄의 끝나는 시간이며, 분 단위의 값을 가집니다.\\
==== BS2DaySchedule ====
typedef struct {
uint8_t numPeriods;
uint8_t reserved[3];
BS2TimePeriod periods[BS2_MAX_TIME_PERIODS_PER_DAY];
} BS2DaySchedule;
1. //numPeriods// \\
시분할 스케줄의 개수입니다. \\ \\
2. //reserved// \\
예약된 공간입니다. \\ \\
3. //periods// \\
시분할 스케줄 리스트로 최대 5개까지 지정할 수 있습니다.\\
==== BS2WeeklySchedule ====
typedef struct {
BS2DaySchedule schedule[BS2_NUM_WEEKDAYS];
} BS2WeeklySchedule;
1. //schedule// \\
주간 스케줄로 총 7일의 일간 스케줄을 가집니다.\\
==== BS2DailySchedule ====
typedef struct {
uint32_t startDate;
uint8_t numDays;
uint8_t reserved[3];
BS2DaySchedule schedule[BS2_MAX_DAYS_PER_DAILY_SCHEDULE];
} BS2DailySchedule;
1. //startDate// \\
스케줄이 시작할 시간입니다.\\ \\
2. //numDays// \\
총 일간 스케줄의 개수입니다.\\ \\
3. //reserved// \\
예약된 공간입니다.\\ \\
4. //schedule// \\
startDate부터 시작되는 일간 스케줄 리스트입니다.\\
==== BS2HolidaySchedule ====
typedef struct {
uint32_t id;
BS2DaySchedule schedule;
} BS2HolidaySchedule;
1. //startDate// \\
휴일 그룹 스케줄 식별자입니다.\\ \\
2. //schedule// \\
휴일 일간 스케줄입니다.\\
==== BS2Schedule ====
typedef struct
{
uint32_t id;
char name[BS2_MAX_SCHEDULE_NAME_LEN];
uint8_t isDaily;
uint8_t numHolidaySchedules;
uint8_t reserved[2];
union
{
BS2WeeklySchedule weekly;
BS2DailySchedule daily;
}schedule;
BS2HolidaySchedule holidaySchedules[BS2_MAX_HOLIDAY_GROUPS_PER_SCHEDULE];
}BS2Schedule;
1. //id// \\
타임 스케줄 식별자입니다. \\ \\
**주의 사항**\\
스케줄 식별자 중 0과 1은 사전 정의된 값으로, \\
0은 시간할당 안함, 1은 항시의 의미를 가지는 식별자이며, 사용자가 임의로 변경할 수 없습니다.
2. //name// \\
BioStar 애플리케이션에 보여줄 타임 스케줄 이름입니다.\\ \\
3. //isDaily// \\
일간 스케줄인지 주간 스케줄인지 구분하는 flag입니다.\\ \\
4. //numHolidaySchedules// \\
휴일 스케줄 개수입니다.\\ \\
5. //reserved// \\
예약된 공간입니다.\\ \\
6. //weekly// \\
주간 스케줄로 isDaily가 0의 값을 가질 때 의미가 있습니다.\\ \\
7. //daily// \\
일간 스케줄로 isDaily가 0이 아닌 값을 가질 때 의미가 있습니다.\\ \\
8. //holidaySchedules// \\
휴일 스케줄 리스트입니다.\\
==== BS2Holiday ====
typedef struct {
uint32_t date;
uint8_t recurrence;
} BS2Holiday;
1. //date// \\
휴일 날짜입니다. \\ \\
2. //recurrence// \\
주기적으로 반복되는 값입니다. \\
^값 ^설명 ^
|0 |반복 없음 |
|1 |매년 반복 |
|2 |매월 반복 |
|3 |매주 반복 |
==== BS2HolidayGroup ====
typedef struct
{
uint32_t id;
char name[BS2_MAX_SCHEDULE_NAME_LEN];
uint8_t numHolidays;
uint8_t reserved[3];
BS2Holiday holidays[BS2_MAX_HOLIDAYS_PER_GROUP];
}BS2HolidayGroup;
1. //id// \\
휴일 그룹 식별자입니다. \\ \\
2. //name// \\
BioStar 애플리케이션에 보여줄 휴일 그룹 이름입니다.\\ \\
3. //numHolidays// \\
휴일 개수입니다.\\ \\
4. //reserved// \\
예약된 공간입니다.\\ \\
5. //holidays// \\
휴일 리스트입니다.\\