|
|
준비중 |
|
|
\ No newline at end of file |
|
|
EMS에서 노드정보는 DB파일을 읽거나 장비에서 주기적으로 수신되는 정보(Binary File)로 구성된다. 장비에서 수신되는 노드 정보를 LED INFO라고 한다.
|
|
|
LED INFO에는 iris code, alarm summary, pdu version, node id 등의 데이터가 struct 형태로 들어 있다. 이 부분은 문서(Z:\ATOM\doc\시스템 설계서\AtOM 3200 SW 설계서 1.0 draft 7.doc)의 7.2.2 Status ( view information )에서 확인 할 수 있다. 아래 그림은 LED status data struct을 일부분만 발췌한 것이다.
|
|
|
|
|
|
<img src="Led_Image/1.png" width="500">
|
|
|
1. LedInfo Struct
|
|
|
데이터의 값을 얻으려면 수신된 LED INFO(바이너리 파일)를 데이터 크기만큼 읽어서 값을 얻는다. 프로젝트마다 읽어올 데이터 크기는 다를 수 있기 때문에 LED INFO를 읽어오는 부분은 따로 구현되어야 한다. 따라서, IRIS에서는 기본 콜벡함수를 정의하고 프로젝트에서 정의한 콜벡함수를 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 정보를 가지는 구조체
|
|
|
|
|
|
# iris3/iris3_ledfun_api.h Struct NODE_STATUS : 프로젝트별로 서로 다른 Led Info를 동일한 타입의 포인터로 가리키기 위한 구조체
|
|
|
<img src="Led_Image/2.png" width="500">
|
|
|
|
|
|
# iris3/iris3_ledfun_api.h Struct LedInfoFunSet : EMS의 콜백함수를 가지고 있는 구조체
|
|
|
<img src="Led_Image/3.png" width="500">
|
|
|
fn_uint_ns get_cr : critical 경보 개수를 리턴하는 콜백함수
|
|
|
fn_uint_ns get_mj : major 경보 개수를 리턴하는 콜백함수
|
|
|
fn_uint_ns get_mn : minor 경보 개수를 리턴하는 콜백함수
|
|
|
fn_uint_ns get_wn : warning 경보 개수를 리턴하는 콜백함수
|
|
|
fn_uint_ns_int get_shelf_typeid : 셸프 ID 정보를 리턴하는 콜백함수
|
|
|
fn_uint_ns get_shelf_type2 : 셸프 타입을 리턴하는 콜백함수
|
|
|
fn_get_shelf_str get_shelf_str : 셸프 타입을 셸프 타입 문자열로 바꿔주는 콜백함수
|
|
|
fn_get_shelf_id2 get_shelf_id2 : 셸프 타입 문자열을 셸프 타입으로 바꿔주는 콜백함수
|
|
|
fn_print_debug print_debug : LedInfo 구조체 내용을 print해주는 콜백함수
|
|
|
fn_uint_ns get_shelf_state : 셸프 실장 상태를 리턴하는 콜백함수
|
|
|
fn_uint_ns get_slot_state : 슬롯 상태를 리턴하는 콜백함수
|
|
|
fn_uchar_ns_int get_unit_status : 유닛 경보 상태를 리턴하는 콜백함수
|
|
|
fn_uchar_ns_int get_unit_type : 유닛 종류를 리턴하는 콜백함수
|
|
|
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_sigtype : 슬롯/포트 signal 타입을 리턴하는 콜백함수
|
|
|
fn_uint_ns_int_int get_lpbk_state : 슬롯별/포트별 루프백 수행 중 여부를 리턴하는 콜백함수
|
|
|
fn_uint_ns_int_int get_sw_type : 슬롯별/포트별 절체 타입을 리턴하는 콜백함수
|
|
|
fn_uint_ns_int_int get_och_num : 슬롯/포트에 할당된 OCH 번호를 리턴하는 콜백함수
|
|
|
fn_uchar_ns_int get_tlm : Telemetry 상태 정보를 리턴하는 콜백함수
|
|
|
fn_uchar_ns_int get_link_status : 링크 상태를 리턴하는 콜백함수
|
|
|
fn_uint_ns_int_int get_link_dir : MainPath Direction 정보를 리턴하는 콜백함수
|
|
|
fn_uint_ns_int get_link_ringid : 링크에 연결된 RING ID를 리턴하는 콜백함수
|
|
|
fn_bool_ns_str get_net_name : 노드의 소속 그룹을 알려주는 콜백함수
|
|
|
|
|
|
2. 추가 구현 콜벡함수 : Iris에서 콜벡함수는 return 타입과 파라미터 형식을 미리 정의해 놓는다. return 타입과 파라미터 형식이 변할 경우 콜벡함수 typedef int (*fn_ext_ledfun)(void* ns, void* out, const int param1, const int param2, const int param3)의 배열을 전역변수로 저장해두고 쓰는 방식으로 구현되어 있다. 아래 3개의 api를 사용한다. |