... | @@ -6,53 +6,52 @@ LED INFO에는 iris code, alarm summary, pdu version, node id 등의 데이터 |
... | @@ -6,53 +6,52 @@ LED INFO에는 iris code, alarm summary, pdu version, node id 등의 데이터 |
|
데이터의 값을 얻으려면 수신된 LED INFO(바이너리 파일)를 데이터 크기만큼 읽어서 값을 얻는다. 프로젝트마다 읽어올 데이터 크기는 다를 수 있기 때문에 LED INFO를 읽어오는 부분은 따로 구현되어야 한다. 따라서, IRIS에서는 기본 콜벡함수를 정의하고 프로젝트에서 정의한 콜벡함수를 IRIS 기본 콜벡함수에 등록하여야 한다.
|
|
데이터의 값을 얻으려면 수신된 LED INFO(바이너리 파일)를 데이터 크기만큼 읽어서 값을 얻는다. 프로젝트마다 읽어올 데이터 크기는 다를 수 있기 때문에 LED INFO를 읽어오는 부분은 따로 구현되어야 한다. 따라서, IRIS에서는 기본 콜벡함수를 정의하고 프로젝트에서 정의한 콜벡함수를 IRIS 기본 콜벡함수에 등록하여야 한다.
|
|
struct sys_led_status는 ATOM 프로젝트의 led data structure이다. struct NODE_STATUS는 IRIS에서 프로젝트마다 다르게 정의된 led data structure를 가리키기 위한 구조체이다. struct LedInfofunSet는 IRIS에서 정의된 기본 콜벡함수 구조체이다.
|
|
struct sys_led_status는 ATOM 프로젝트의 led data structure이다. struct NODE_STATUS는 IRIS에서 프로젝트마다 다르게 정의된 led data structure를 가리키기 위한 구조체이다. struct LedInfofunSet는 IRIS에서 정의된 기본 콜벡함수 구조체이다.
|
|
|
|
|
|
#### ATOM/Led/AppLed.h struct sys_led_status : ATOM에서 노드의 LED 정보를 가지는 구조체
|
|
**ATOM/Led/AppLed.h struct sys_led_status : ATOM에서 노드의 LED 정보를 가지는 구조체**
|
|
|
|
**iris3/iris3_ledfun_api.h Struct NODE_STATUS : 프로젝트별로 서로 다른 Led Info를 동일한 타입의 포인터로 가리키기 위한 구조체**
|
|
#### iris3/iris3_ledfun_api.h Struct NODE_STATUS : 프로젝트별로 서로 다른 Led Info를 동일한 타입의 포인터로 가리키기 위한 구조체
|
|
<img src="Led_Image/2.png" width="200">
|
|
<img src="Led_Image/2.png" width="500">
|
|
|
|
|
|
**iris3/iris3_ledfun_api.h Struct LedInfoFunSet : EMS의 콜백함수를 가지고 있는 구조체**
|
|
#### iris3/iris3_ledfun_api.h Struct LedInfoFunSet : EMS의 콜백함수를 가지고 있는 구조체
|
|
<img src="Led_Image/3.png" width="300">
|
|
<img src="Led_Image/3.png" width="500">
|
|
**fn_uint_ns get_cr :** critical 경보 개수를 리턴하는 콜백함수
|
|
fn_uint_ns get_cr : critical 경보 개수를 리턴하는 콜백함수
|
|
**fn_uint_ns get_mj :** major 경보 개수를 리턴하는 콜백함수
|
|
fn_uint_ns get_mj : major 경보 개수를 리턴하는 콜백함수
|
|
**fn_uint_ns get_mn :** minor 경보 개수를 리턴하는 콜백함수
|
|
fn_uint_ns get_mn : minor 경보 개수를 리턴하는 콜백함수
|
|
**fn_uint_ns get_wn :** warning 경보 개수를 리턴하는 콜백함수
|
|
fn_uint_ns get_wn : warning 경보 개수를 리턴하는 콜백함수
|
|
**fn_uint_ns_int get_shelf_typeid :** 셸프 ID 정보를 리턴하는 콜백함수
|
|
fn_uint_ns_int get_shelf_typeid : 셸프 ID 정보를 리턴하는 콜백함수
|
|
**fn_uint_ns get_shelf_type2 :** 셸프 타입을 리턴하는 콜백함수
|
|
fn_uint_ns get_shelf_type2 : 셸프 타입을 리턴하는 콜백함수
|
|
**fn_get_shelf_str get_shelf_str :** 셸프 타입을 셸프 타입 문자열로 바꿔주는 콜백함수
|
|
fn_get_shelf_str get_shelf_str : 셸프 타입을 셸프 타입 문자열로 바꿔주는 콜백함수
|
|
**fn_get_shelf_id2 get_shelf_id2 :** 셸프 타입 문자열을 셸프 타입으로 바꿔주는 콜백함수
|
|
fn_get_shelf_id2 get_shelf_id2 : 셸프 타입 문자열을 셸프 타입으로 바꿔주는 콜백함수
|
|
**fn_print_debug print_debug :** LedInfo 구조체 내용을 print해주는 콜백함수
|
|
fn_print_debug print_debug : LedInfo 구조체 내용을 print해주는 콜백함수
|
|
**fn_uint_ns get_shelf_state :** 셸프 실장 상태를 리턴하는 콜백함수
|
|
fn_uint_ns get_shelf_state : 셸프 실장 상태를 리턴하는 콜백함수
|
|
**fn_uint_ns get_slot_state :** 슬롯 상태를 리턴하는 콜백함수
|
|
fn_uint_ns get_slot_state : 슬롯 상태를 리턴하는 콜백함수
|
|
**fn_uchar_ns_int get_unit_status :** 유닛 경보 상태를 리턴하는 콜백함수
|
|
fn_uchar_ns_int get_unit_status : 유닛 경보 상태를 리턴하는 콜백함수
|
|
**fn_uchar_ns_int get_unit_type :** 유닛 종류를 리턴하는 콜백함수
|
|
fn_uchar_ns_int get_unit_type : 유닛 종류를 리턴하는 콜백함수
|
|
**fn_uchar_ns_int_int get_led_onoff :** 유닛별 LED on/off 상태를 리턴하는 콜백함수
|
|
fn_uchar_ns_int_int get_led_onoff : 유닛별 LED on/off 상태를 리턴하는 콜백함수
|
|
**fn_uint_ns_int_int get_port_state :** 포트 활성화 상태를 리턴하는 콜백함수
|
|
fn_uint_ns_int_int get_port_state : 포트 활성화 상태를 리턴하는 콜백함수
|
|
**fn_uint_ns_int_int get_port_sigtype :** 슬롯/포트 signal 타입을 리턴하는 콜백함수
|
|
fn_uint_ns_int_int get_port_sigtype : 슬롯/포트 signal 타입을 리턴하는 콜백함수
|
|
**fn_uint_ns_int_int get_lpbk_state :** 슬롯별/포트별 루프백 수행 중 여부를 리턴하는 콜백함수
|
|
fn_uint_ns_int_int get_lpbk_state : 슬롯별/포트별 루프백 수행 중 여부를 리턴하는 콜백함수
|
|
**fn_uint_ns_int_int get_sw_type :** 슬롯별/포트별 절체 타입을 리턴하는 콜백함수
|
|
fn_uint_ns_int_int get_sw_type : 슬롯별/포트별 절체 타입을 리턴하는 콜백함수
|
|
**fn_uint_ns_int_int get_och_num :** 슬롯/포트에 할당된 OCH 번호를 리턴하는 콜백함수
|
|
fn_uint_ns_int_int get_och_num : 슬롯/포트에 할당된 OCH 번호를 리턴하는 콜백함수
|
|
**fn_uchar_ns_int get_tlm :** Telemetry 상태 정보를 리턴하는 콜백함수
|
|
fn_uchar_ns_int get_tlm : Telemetry 상태 정보를 리턴하는 콜백함수
|
|
**fn_uchar_ns_int get_link_status :** 링크 상태를 리턴하는 콜백함수
|
|
fn_uchar_ns_int get_link_status : 링크 상태를 리턴하는 콜백함수
|
|
**fn_uint_ns_int_int get_link_dir :** MainPath Direction 정보를 리턴하는 콜백함수
|
|
fn_uint_ns_int_int get_link_dir : MainPath Direction 정보를 리턴하는 콜백함수
|
|
**fn_uint_ns_int get_link_ringid :** 링크에 연결된 RING ID를 리턴하는 콜백함수
|
|
fn_uint_ns_int get_link_ringid : 링크에 연결된 RING ID를 리턴하는 콜백함수
|
|
**fn_bool_ns_str get_net_name :** 노드의 소속 그룹을 알려주는 콜백함수
|
|
fn_bool_ns_str get_net_name : 노드의 소속 그룹을 알려주는 콜백함수
|
|
|
|
|
|
|
|
## 추가 구현 콜벡함수
|
|
## 추가 구현 콜벡함수
|
|
Iris에서 콜벡함수는 return 타입과 파라미터 형식을 미리 정의해 놓는다. return 타입과 파라미터 형식이 변할 경우 콜벡함수 typedef int (*fn_ext_ledfun)(void* ns, void* out, const int param1, const int param2, const int param3)의 배열을 전역변수로 저장해두고 쓰는 방식으로 구현되어 있다. 아래 3개의 api를 사용한다.
|
|
Iris에서 콜벡함수는 return 타입과 파라미터 형식을 미리 정의해 놓는다. return 타입과 파라미터 형식이 변할 경우 콜벡함수 typedef int (*fn_ext_ledfun)(void* ns, void* out, const int param1, const int param2, const int param3)의 배열을 전역변수로 저장해두고 쓰는 방식으로 구현되어 있다. 아래 3개의 api를 사용한다.
|
|
|
|
|
|
|
|
|
|
IRIS3_LEDFUN_DECL int Iris3led_Ext_InitFun(int max_entry) : 등록할 수 있는 콜벡함수의 최대 개수
|
|
**IRIS3_LEDFUN_DECL int Iris3led_Ext_InitFun(int max_entry) :** 등록할 수 있는 콜벡함수의 최대 개수
|
|
IRIS3_LEDFUN_DECL int Iris3led_Ext_AddFun(int idx, fn_ext_ledfun func) : 콜벡함수 등록
|
|
**IRIS3_LEDFUN_DECL int Iris3led_Ext_AddFun(int idx, fn_ext_ledfun func) :** 콜벡함수 등록
|
|
IRIS3_LEDFUN_DECL fn_ext_ledfun Iris3led_Ext_GetFun(int idx) : 콜벡함수 찾기
|
|
**IRIS3_LEDFUN_DECL fn_ext_ledfun Iris3led_Ext_GetFun(int idx) :** 콜벡함수 찾기
|
|
|
|
|
|
## ATOM EMS에서 콜벡함수를 등록하는 Flow
|
|
## ATOM EMS에서 콜벡함수를 등록하는 Flow
|
|
<img src="Led_Image/4.png" width="500">
|
|
<img src="Led_Image/4.png" width="500">
|
|
int app_InitLedFunSet()
|
|
**int app_InitLedFunSet()**
|
|
EMS UI가 보이기 전 초기화 과정에서 호출되어야 한다.
|
|
EMS UI가 보이기 전 초기화 과정에서 호출되어야 한다.
|
|
int Iris3led_Init(LedInfoFunSet* pFunset /*OUT*/)
|
|
**int Iris3led_Init(LedInfoFunSet* pFunset /*OUT*/)**
|
|
LedInfoFunSet 구조체 정보를 기본 콜벡 구현체로 초기화 한다.
|
|
LedInfoFunSet 구조체 정보를 기본 콜벡 구현체로 초기화 한다.
|
|
int Iris3led_AddFunSet(int nodeTypeID, struct LedInfoFunSet *funset)
|
|
**int Iris3led_AddFunSet(int nodeTypeID, struct LedInfoFunSet *funset)**
|
|
노드 타입별로 LedInfoFunSet을 전역 변수에 저장한다.
|
|
노드 타입별로 LedInfoFunSet을 전역 변수에 저장한다.
|
|
BOOL Iris3ab_RegDebugLed(int nodeTypeID, void (*make_autoled)(ElementNode* pNode))
|
|
**BOOL Iris3ab_RegDebugLed(int nodeTypeID, void (*make_autoled)(ElementNode* pNode))**
|
|
EMS 토폴로지에서 노드 선택 후 위의 파란색 사각형 안에서 "Ctrl+마우스오른쪽버튼"을 클릭하면 make_autoled 함수 구현대로 셀프 정보가 채워져서 화면에 표시된다. |
|
EMS 토폴로지에서 노드 선택 후 위의 파란색 사각형 안에서 "Ctrl+마우스오른쪽버튼"을 클릭하면 make_autoled 함수 구현대로 셀프 정보가 채워져서 화면에 표시된다. |
|
|
|
\ No newline at end of file |