본 자료는 제품의 업데이트 및 설정 변경 등을 위해 개발 모드 환경으로 전환해야 할 때, SmartForm 컴포넌트의 OnSpecialFunctionClick 이벤트를 사용하여 관리자 모드에 진입 후 LCD 스크린 상에서 비밀번호를 입력해 SmartConfigs의 DevModeRun() 정적 메소드를 사용해 개발 모드 화면으로 전환될 수 있도록 작성되었습니다. 본 자료와 예제를 확인해 프로젝트에 적용해 보시기 바랍니다.
본 자료는
1. 관리자 모드의 필요성 및 진입 방법
1-1. 관리자 모드의 필요성
1-2. 관리자 모드 진입 방법
2. 프로그램 상에서 개발 모드 환경으로 진입하는 방법
3. 예제 프로그램 설명
순서로 진행합니다.
관리자 모드는 일반 사용자는 접근할 수 없으며, 관리자가 제품의 유지 및 관리(Maintenance)를 위해 필요한 모드입니다. IEC-Series의 경우, 관리자가 현장에 설치된 제품의 설정 등을 변경하기 위해 종종 IEC-Series의 개발 모드로 진입해야 하는 경우가 생길 수 있습니다. 이때 관리자 모드가 없다면 제품 후면의 Dip 스위치를 변경 후 재부팅해야 하는 불편함이 생기게 됩니다. 따라서 이러한 번거로움 없이 제품의 유지 보수를 하기 위해 관리자 모드가 필요하게 됩니다.
1-2. 관리자 모드 진입 방법
관리자 모드는 SmartForm 또는 SmartInnerForm의 OnSpecialFunctionClick 이벤트를 사용해 진입하는 방법과, 버튼 클릭 이벤트를 사용해 진입하는 방법이 있습니다.
단, 관리자 모드에 진입하기 전에 먼저 보안을 위해 일반 사용자가 접근할 수 없도록 프로그램 상에서 비밀번호를 입력하는 창을 구현하셔야 합니다. 비밀번호 입력 창은 직접 구현하시거나,
본 문서에 첨부된 예제에 구현된 입력 창을 사용하셔도 무방합니다. 관련 내용은 아래 CASE를 확인해 보시기 바랍니다.
※ 본 문서에 첨부된 예제는 OnSpecialFunctionClick 이벤트를 사용해 관리자 모드를 구현하였습니다.
- [CASE-1] OnSpecialFunctionClick 이벤트를 사용해 진입하기
OnSpecialFunctionClick 이벤트는 SmartX Framework의 SmartForm과 SmartInnerForm 컴포넌트에서 지원되는 기능으로 [ 1 → 2 → 3 → 4 → 1 ] 순서로 화면을 터치하면 이벤트가 발생되며, 이벤트 코드에서 관리자 모드 진입을 위한 비밀번호 창을 출력하도록 코드 작성 후, 비밀번호 창에서 비밀번호가 맞을 경우에 관리자 모드에 진입하도록 코드를 작성합니다.
- 컨트롤 배치가 잘된 예
- 컨트롤 배치가 잘못된 예
- [CASE-2] 버튼 클릭 이벤트를 사용해 진입하기
버튼을 사용자 인터페이스에 배치해 버튼 클릭 시 관리자 모드 진입을 위한 비밀번호 창을 출력하도록 코드를 작성 후, 비밀번호 창에서 비밀번호가 맞을 경우에 관리자 모드에 진입하도록 코드를 작성합니다.
2. 프로그램 상에서 개발 모드로 진입하는 방법
프로그램 상에서 개발 모드로 진입하기 위해서는 SmartConfigs의 DevModeRun() 정적 메소드를 사용하시면 됩니다.
관련 메소드 | DevModeRun() |
---|---|
사용 방법 | SmartX.SmartConfigs.DevModeRun(); |
관련 메소드 | DevModeRun() |
---|---|
사용 방법 | smartConfigs1.DevModeRun(); |
3. 예제 프로그램 설명
※ 실행화면(예제 4.3인치,480*272 기준)
- [STEP-1] Run 모드 실행 ( 아래와 같은 순서로 화면을 터치하면 이벤트가 발생됨 : [ 1 → 2 → 3 → 4 → 1 ] )
- [STEP-2] 터치 패턴 완료 시 패스워드 입력
- [STEP-3] 개발 모드 진입
* SmartX Framework 5.x 버전 이상부터 Run모드에서 화면을 클릭해도 더이상 종료창이 나오지 않으니 참고하시기 바랍니다.
이러한 경우 간혹 프로그램이 다운되었다고 생각하시는 분들이 있지만 이것은 런타임 모드에서 발생되는 자연스러운 현상입니다. 따라서 이러한 현상을 방지하기 위해서는 프로그램 종료 시 강제로 개발 모드로 전환 후 프로그램을 종료하시면 됩니다.
강제로 종료하는 기능 구현에 앞서 런타임 모드에서 장치 응용 프로그램의 종료 기능이 필요한지 고려하시기 바랍니다.
런타임 모드일 때 프로그램 상에서 SmartX Framework의 SmartConfigs 컴포넌트에 있는 SmartX.SmartConfigs.DevModeRun() 정적 메소드를 호출하면 런타임 모드에서 개발 모드로 강제 진입하게 됩니다