====== 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// \\ 휴일 리스트입니다.\\