f.Scanner

f.Scanner

개요

f.Scenner 는 바코드 입력 처리를 위한 스캐너 함수입니다.

PDA 를 통한 스캔을 지원하며, 디버거에서는 카메라를 통한 스캔으로 동작합니다.

기능요소

요소
설명

스캐너 설정 초기화 함수

스캔 시작 함수

스캔 종료 함수

현재 스캐너 상태 조회 함수

마지막으로 스캔된 값 반환 함수

마지막 스캔 시각 반환 (timestamp) 함수

전체 스캔 이력 배열 반환 함수

마지막 오류 객체 반환 함수

스캐너 상태값

SCAN_STATUS

유형
설명

DISABLED

초기 상태, 비활성화됨

IDLE

초기화 완료, 스캔 대기 중 아님

SCANNING

스캔 대기 중

SUCCESS

스캔 성공

AFTER_EVENT

스캔 후 이벤트 처리 중

STOPPED

조건 또는 타임아웃으로 스캔 중단됨

ERROR

스캔 중 오류 발생

상태 전이 흐름 (State Transition Flow)

  1. 초기화 및 대기

    • DISABLEDIDLE (init() 호출 시 스캐너가 준비됨)

  2. 스캔 대기 진입

    • IDLESCANNING (startScan() 호출 시 스캔 대기 상태 진입)

  3. 스캔 처리

    • 사용자가 바코드 입력(스캔)

    • 입력값이 유효하고 eventName이 있을 때: SCANNINGSUCCESSAFTER_EVENT (이벤트 실행 후 다시 스캔 대기 또는 종료 조건 확인)

    • 입력값이 유효하지만 eventName이 없을 때: SCANNINGSUCCESS (이벤트 실행 없이 성공 처리)

    • 입력값이 유효성 검사(scanValidator) 실패 시: SCANNINGERROR (오류 콜백 실행 후 스캔 대기 복귀)

  4. 스캔 종료 조건 확인

    • 종료 조건(예: 최대 스캔 횟수, scanStopCondition 등) 만족 시: SCANNING 또는 AFTER_EVENTSTOPPED

    • 종료 조건 미만족 시: 다시 SCANNING 상태로 반복 (다음 스캔 대기)

  5. 오류 발생 시 처리

    • 스캔 도중 입력값 오류(scanValidator 실패) SCANNINGERRORSCANNING (오류 콜백 실행 후 다시 스캔 대기)

[DISABLED]
    |
    | (init)
    v
[IDLE]
    |
    | (startScan)
    v
[SCANNING]
    |
    |-- [입력값 정상 + eventName 있음] ------> [SUCCESS]
    |                                            |
    |                                            v
    |                                      [AFTER_EVENT]
    |                                            |
    |                             (종료조건) Yes / No
    |                                 |          |
    |                            [STOPPED]   [SCANNING]
    |
    |-- [입력값 정상 + eventName 없음] ------> [SUCCESS]
    |                                            |
    |                             (종료조건) Yes / No
    |                                 |          |
    |                            [STOPPED]   [SCANNING]
    |
    |-- [입력값 오류(scanValidator 실패)] ---> [ERROR]
                                              |
                              (오류 콜백 후) <---|
                                              |
                                          [SCANNING]

사용 주의사항

  • init 호출 필수 스캐너를 사용하기 전에 반드시 init()으로 초기화를 진행해야 합니다.

  • 스캔 중 입력 제한 스캔이 활성화된 동안에는 별도의 input 컨트롤 등에서 직접 입력이 불가능합니다.

  • 스캔 종료 처리 권장 화면 이동, 탭 전환 등 페이지를 떠날 때(OnLeave 이벤트 등)에는 반드시 stopScan()으로 스캔을 종료하도록 처리하는 것을 권장합니다.

  • 기기 호환성 PDA 기기 설정에 따라 스캐너 동작이 달라질 수 있습니다. 공식적으로 지원하는 DS60S, PM95 기기 이외의 PDA를 사용할 경우 정상적인 지원이 어려울 수 있습니다.

Last updated

Was this helpful?