... | ... | @@ -2,7 +2,7 @@ EMS에서 노드정보는 DB파일을 읽거나 장비에서 주기적으로 수 |
|
|
|
|
|
<img src="Led_Image/1.png" width="700">
|
|
|
|
|
|
* LedInfo Struct
|
|
|
#### **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에서 정의된 기본 콜벡함수 구조체이다.
|
|
|
<br>
|
|
|
|
... | ... | @@ -39,7 +39,7 @@ EMS에서 노드정보는 DB파일을 읽거나 장비에서 주기적으로 수 |
|
|
<img src="Led_Image/2.png" width="300">
|
|
|
<img src="Led_Image/3.png" width="300">
|
|
|
|
|
|
### 추가 구현 콜벡함수
|
|
|
#### **추가 구현 콜벡함수**
|
|
|
Iris에서 콜벡함수는 return 타입과 파라미터 형식을 미리 정의해 놓는다. return 타입과 파라미터 형식이 변할 경우 콜벡함수 typedef int (*fn_ext_ledfun)(void* ns, void* out, const int param1, const int param2, const int param3)의 배열을 전역변수로 저장해두고 쓰는 방식으로 구현되어 있다. 아래 3개의 api를 사용한다.
|
|
|
<br>
|
|
|
|
... | ... | @@ -49,7 +49,7 @@ Iris에서 콜벡함수는 return 타입과 파라미터 형식을 미리 정의 |
|
|
| IRIS3_LEDFUN_DECL int Iris3led_Ext_AddFun(int idx, fn_ext_ledfun func) | 콜벡함수 등록 |
|
|
|
| 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">
|
|
|
<br>
|
|
|
|
... | ... | |