From 5b54553bd36c92090aee4c1a178e4062d3869470 Mon Sep 17 00:00:00 2001
From: victor <taehoon@falinux.com>
Date: Wed, 17 May 2017 17:38:40 +0900
Subject: [PATCH] =?UTF-8?q?=EA=B0=80=EC=8A=A4=20=EC=98=A4=EB=B8=90=20?=
 =?UTF-8?q?=ED=94=84=EB=A1=9C=ED=86=A0=EC=BD=9C=20=EB=B0=98=EC=98=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../app/app-prime-modbus/rs485_serial.c            | 284 +++++++++++----------
 app/app-prime-modbus/include/all_share.h           |  53 ++--
 2 files changed, 176 insertions(+), 161 deletions(-)

diff --git a/app/app-prime-modbus/app/app-prime-modbus/rs485_serial.c b/app/app-prime-modbus/app/app-prime-modbus/rs485_serial.c
index d178f3f..33a87f0 100644
--- a/app/app-prime-modbus/app/app-prime-modbus/rs485_serial.c
+++ b/app/app-prime-modbus/app/app-prime-modbus/rs485_serial.c
@@ -8,8 +8,8 @@
 /**
     @file     main_control.c
     @date     2017/01/12
-    @author   ��漮 jks@falinux.com  FALinux.Co.,Ltd.
-    @brief    �µ������� ���� ���α׷�
+    @author   ��漮 jks@falinux.com  FALinux.Co.,Ltd.
+    @brief    �µ������� ���� ���α׷�
 
     @todo
     @bug
@@ -17,8 +17,8 @@
     @warning
 */
 //
-//  ���۱�    �������̸�����(��)
-//            �ܺΰ��� ����
+//  ���۱�    �������̸�����(��)
+//            �ܺΰ��� ����
 //
 //----------------------------------------------------------------------------
 
@@ -31,7 +31,7 @@
 #include <rs485_serial.h>
 #include <udp_gui.h>
 
-#define MAX_RETRY               3                                   // ���� ���� �� �� ���� Ƚ��
+#define MAX_RETRY               3                                   // ���� ���� �� �� ���� Ƚ��
 #define MAX_BUFF_SIZE           1024
 
 enum step_t {
@@ -63,25 +63,25 @@ static char     	    buff[MAX_BUFF_SIZE];
 static poll_obj_t      *obj_uart;
 static enum step_t      step_work = STEP_CONTROL;
 static enum switch_t    sw_uart = SW_WAIT_ADDRESS;
-static char             tx_data[MAX_BUFF_SIZE];                     // ���� ������ ����
-static int              tx_szdata;                                  // ���� ������ ����
+static char             tx_data[MAX_BUFF_SIZE];                     // ���� ������ ����
+static int              tx_szdata;                                  // ���� ������ ����
 static U8               rx_data[MAX_BUFF_SIZE];
 static int              rx_index;
 static int              rx_szdata;
-static msec_t           tm_recv;                                    // ��� ���� Ȯ���� ���� �ð� ����
-static int              cnt_retry;                                  // ���� ���п� ���� �� ���� Ƚ��
-static int              bit_onoff19 = 0;                            // bit sw 0x19 ���� ��
-static int              bit_onoff21 = 0;                            // bit sw 0x21 ���� ��
-static int              bit_onoff22 = 0;                            // bit sw 0x22 ���� ��
-static U16              oven_error_bit = 0;                         // ���� ���� ��Ʈ ��
-static U16              ary_error_cnt[16];                          // ���� ī��Ʈ
+static msec_t           tm_recv;                                    // ��� ���� Ȯ���� ���� �ð� ����
+static int              cnt_retry;                                  // ���� ���п� ���� �� ���� Ƚ��
+static int              bit_onoff19 = 0;                            // bit sw 0x19 ���� ��
+static int              bit_onoff21 = 0;                            // bit sw 0x21 ���� ��
+static int              bit_onoff22 = 0;                            // bit sw 0x22 ���� ��
+static U16              oven_error_bit = 0;                         // ���� ���� ��Ʈ ��
+static U16              ary_error_cnt[16];                          // ���� ī��Ʈ
 
-static void run_step_work( int n_step);                             // ������ �۾��� ����
-static void run_next_step_work( void);                              // ���� �۾� ����
+static void run_step_work( int n_step);                             // ������ �۾��� ����
+static void run_next_step_work( void);                              // ���� �۾� ����
 
 /** ----------------------------------------------------------------------------
-@brief  WORD ����Ʈ�� ����/���� ����Ʈ ������ �ٲ۴�.
-@remark �򿣵���� ��Ʋ���������, ��Ʋ������� �򿣵������ ����
+@brief  WORD ����Ʈ�� ����/���� ����Ʈ ������ �ٲ۴�.
+@remark �򿣵���� ��Ʋ���������, ��Ʋ������� �򿣵������ ����
 @param  -
 @return -
  -----------------------------------------------------------------------------*/
@@ -94,14 +94,14 @@ static void swap_byte( U16 *p16){
 }
 
 /** ----------------------------------------------------------------------------
-@brief  uart�� ���� ������ ����
-@remark ������ ������ uart ���� �ܰ踦 �ʱ�ȭ�Ѵ�.
+@brief  uart�� ���� ������ ����
+@remark ������ ������ uart ���� �ܰ踦 �ʱ�ȭ�Ѵ�.
 @param
 @return
  -----------------------------------------------------------------------------*/
 static int write_to_uart( void){
 
-    { // ����� �ڵ�, ���� �����͸� ����Ʈ ������ ���
+    { // ����� �ڵ�, ���� �����͸� ����Ʈ ������ ���
         int ndx;
 
         printf( "send:");
@@ -112,19 +112,19 @@ static int write_to_uart( void){
     }
 
     int rst = uart_write( obj_uart, tx_data, tx_szdata);
-    sw_uart = SW_WAIT_ADDRESS;                                      // ������ ���� �� uart ���� �ܰ� �ʱ�ȭ
+    sw_uart = SW_WAIT_ADDRESS;                                      // ������ ���� �� uart ���� �ܰ� �ʱ�ȭ
 
-    tm_recv = get_cur_msec();                                       // ���� �ð� ����
+    tm_recv = get_cur_msec();                                       // ���� �ð� ����
 
     return rst;
 }
 
 /** ----------------------------------------------------------------------------
-@brief  uart�� ������ �����͸� �ϼ�
-@remark tx_data   <- ������ ������
-        tx_szdata <- ������ ������ ����Ʈ ����
-@param  pdata   : ������ ������
-        sz_data : ������ ����Ʈ ����
+@brief  uart�� ������ �����͸� �ϼ�
+@remark tx_data   <- ������ ������
+        tx_szdata <- ������ ������ ����Ʈ ����
+@param  pdata   : ������ ������
+        sz_data : ������ ����Ʈ ����
 @return
  -----------------------------------------------------------------------------*/
 static void make_tx_data( char *pdata, int sz_data){
@@ -141,11 +141,11 @@ static void make_tx_data( char *pdata, int sz_data){
 }
 
 /** ----------------------------------------------------------------------------
-@brief  �������κ��� ���� �����͸� ��û�Ѵ�.
+@brief  �������κ��� ���� �����͸� ��û�Ѵ�.
 @remark
-@param  addr_high   : ���� address
-        addr_low    : ���� address
-        size        : �䱸�� ������ ����Ʈ ����
+@param  addr_high   : ���� address
+        addr_low    : ���� address
+        size        : �䱸�� ������ ����Ʈ ����
 @return
  -----------------------------------------------------------------------------*/
 static void modbus_func03( int addr_high, int addr_low, int size){
@@ -159,15 +159,15 @@ static void modbus_func03( int addr_high, int addr_low, int size){
     buff[ndx++] = 0x00;
     buff[ndx++] = size;
 
-    make_tx_data( buff, ndx);                                       // ���� ���� �����͸� ����
-    write_to_uart();                                                // uart�� ����
+    make_tx_data( buff, ndx);                                       // ���� ���� �����͸� ����
+    write_to_uart();                                                // uart�� ����
 }
 /** ----------------------------------------------------------------------------
-@brief  �������κ��� ���� �����͸� ��û�Ѵ�.
+@brief  �������κ��� ���� �����͸� ��û�Ѵ�.
 @remark
-@param  addr_high   : ���� address
-        addr_low    : ���� address
-        size        : �䱸�� ������ ����Ʈ ����
+@param  addr_high   : ���� address
+        addr_low    : ���� address
+        size        : �䱸�� ������ ����Ʈ ����
 @return
  -----------------------------------------------------------------------------*/
 static void modbus_func04( int addr_high, int addr_low, int size){
@@ -181,17 +181,17 @@ static void modbus_func04( int addr_high, int addr_low, int size){
     buff[ndx++] = 0x00;
     buff[ndx++] = size;
 
-    make_tx_data( buff, ndx);                                       // ���� ���� �����͸� ����
-    write_to_uart();                                                // uart�� ����
+    make_tx_data( buff, ndx);                                       // ���� ���� �����͸� ����
+    write_to_uart();                                                // uart�� ����
 }
 
 /** ----------------------------------------------------------------------------
-@brief  �������� ���� ����(���� ��û)
+@brief  �������� ��� ����(���� ��û)
 @remark
-@param  addr_high   : ���� address
-        addr_low    : ���� address
-        data_high   : ���� data
-        data_log    : ���� data
+@param  addr_high   : ���� address
+        addr_low    : ���� address
+        data_high   : ���� data
+        data_log    : ���� data
 @return
  -----------------------------------------------------------------------------*/
 static void modbus_func06( int addr_high, int addr_low, int data_high, int data_low){
@@ -205,14 +205,14 @@ static void modbus_func06( int addr_high, int addr_low, int data_high, int data_
     buff[ndx++] = data_high;
     buff[ndx++] = data_low;
 
-    make_tx_data( buff, ndx);                                       // ���� ���� �����͸� ����
-    write_to_uart();                                                // uart�� ����
+    make_tx_data( buff, ndx);                                       // ���� ���� �����͸� ����
+    write_to_uart();                                                // uart�� ����
 }
 
 /** ----------------------------------------------------------------------------
-@brief  GUI�� ���� ���� ����
+@brief  GUI�� ���� ��� ����
 @remark
-@param  pcmd    : GUI�� ��û�� ����
+@param  pcmd    : GUI�� ��û�� ���
 @return
  -----------------------------------------------------------------------------*/
 static void set_value( command_t *pcmd){
@@ -234,19 +234,23 @@ static void set_value( command_t *pcmd){
     case TG_FAN2_RPM        : addr = 0x1e; break;
     case TG_FAN1_DIRECTOIN  : addr = 0x1f; break;
     case TG_FAN2_DIRECTOIN  : addr = 0x20; break;
+    case TG_BURNER1_1_RPM   : addr = 0x28; break;
+    case TG_BURNER1_2_RPM   : addr = 0x29; break;
+    case TG_BURNER23_1_RPM  : addr = 0x2A; break;
+    case TG_BURNER23_2_RPM  : addr = 0x2B; break;
     case TG_ERROR_CLEAR     : addr = 0x31; break;
     }
 
     int value_high  = ( pcmd->value >> 8) & 0xff;
     int value_low   = ( pcmd->value     ) & 0xff;
 
-    modbus_func06( 0, addr, value_high, value_low);                     // Modbus Func 6 �Լ� ȣ��
+    modbus_func06( 0, addr, value_high, value_low);                     // Modbus Func 6 �Լ� ȣ��
 }
 
 /** ----------------------------------------------------------------------------
-@brief  GUI�� ����ġ on/off ���� ����
+@brief  GUI�� ����ġ on/off ��� ����
 @remark
-@param  pcmd    : GUI�� ��û�� ����
+@param  pcmd    : GUI�� ��û�� ���
 @return
  -----------------------------------------------------------------------------*/
 static void onoff_switch( command_t *pcmd){
@@ -265,13 +269,13 @@ static void onoff_switch( command_t *pcmd){
     int value_high  = 0;
     int value_low   = pcmd->value;
 
-    modbus_func06( 0, addr, value_high, value_low);                     // Modbus Func 6 �Լ� ȣ��
+    modbus_func06( 0, addr, value_high, value_low);                     // Modbus Func 6 �Լ� ȣ��
 }
 
 /** ----------------------------------------------------------------------------
-@brief  GUI�� ��Ʈ ���� ����ġ on/off ���� ����
-@remark 0x0021, 0x0022 ��Ʈ ���� ����ġ ����
-@param  pcmd    : GUI�� ��û�� ����
+@brief  GUI�� ��Ʈ ���� ����ġ on/off ��� ����
+@remark 0x0021, 0x0022 ��Ʈ ���� ����ġ ����
+@param  pcmd    : GUI�� ��û�� ���
 @return
  -----------------------------------------------------------------------------*/
 static void onoff_bit( command_t *pcmd){
@@ -346,11 +350,11 @@ static void onoff_bit( command_t *pcmd){
     int value_high  = ( *p_onoff >> 8) & 0xff;
     int value_low   = ( *p_onoff     ) & 0xff;
 
-    modbus_func06( 0, addr, value_high, value_low);                     // Modbus Func 6 �Լ� ȣ��
+    modbus_func06( 0, addr, value_high, value_low);                     // Modbus Func 6 �Լ� ȣ��
 }
 
 /** ----------------------------------------------------------------------------
-@brief  ���� ���� ��Ʈ�� ī��Ʈ�� �ʱ�ȭ
+@brief  ���� ���� ��Ʈ�� ī��Ʈ�� �ʱ�ȭ
 @remark -
 @param  -
 @return
@@ -365,7 +369,7 @@ static void clear_error_cnt(){
 
 }
 /** ----------------------------------------------------------------------------
-@brief  GUI�κ��� ������ ��û�� �ִٸ�
+@brief  GUI�κ��� ������ ��û�� �ִٸ�
 @remark -
 @param  -
 @return
@@ -374,19 +378,19 @@ static void check_gui_cmd( void){
 
     command_t   cmd;
 
-    if ( 0 < gui_get_command( &cmd)){                               // GUI�κ��� ��û�� �ִٸ�
+    if ( 0 < gui_get_command( &cmd)){                               // GUI�κ��� ��û�� �ִٸ�
         switch( cmd.cmd){
-        case CMD_VALUE  :                                           // ���� �� ����
+        case CMD_VALUE  :                                           // ���� �� ����
             set_value( &cmd);
             break;
-        case CMD_ONOFF  :                                           // ���� ����ġ ����
+        case CMD_ONOFF  :                                           // ���� ����ġ ����
             if ( TG_BITONOFF > cmd.target){
                 onoff_switch( &cmd);
             } else {
                 onoff_bit( &cmd);
             }
             break;
-        case CMD_CLEAR_ERROR_CNT    :                               // ���� ī��Ʈ �ʱ�ȭ
+        case CMD_CLEAR_ERROR_CNT    :                               // ���� ī��Ʈ �ʱ�ȭ
             clear_error_cnt();
             break;
         }
@@ -397,7 +401,7 @@ static void check_gui_cmd( void){
 }
 
 /** ----------------------------------------------------------------------------
-@brief  �������κ��� ���� ���� �޾���
+@brief  �������κ��� ���� ���� �޾���
 @remark
 @param -
 @return
@@ -407,14 +411,14 @@ static void on_rcv_control( void){
     gui_oven_control_t  oven;
     int                 ndx;
 
-    // �򿣵���� ��Ʋ��������� ����
-    U16 *pword = (U16 *)&rx_data[3];                                // �����ʹ� rx_data[3]���� ����
+    // �򿣵���� ��Ʋ��������� ����
+    U16 *pword = (U16 *)&rx_data[3];                                // �����ʹ� rx_data[3]���� ����
 
     for ( ndx = 0; ndx < rx_szdata / 2; ndx++){
         swap_byte( pword++);
     }
 
-    // ���� ó��
+    // ���� ó��
 
     oven.header    = HDR_OVEN_CONTROL;
     memcpy( ( char *)&oven.control, &rx_data[3], sizeof( oven_control_t));
@@ -435,14 +439,14 @@ static void on_rcv_control( void){
     printf( "manual_onoff21 = 0x%04x\n", bit_onoff21);
     printf( "manual_onoff22 = 0x%04x\n", bit_onoff22);
 
-    // GUI�� ����
+    // GUI�� ����
     gui_send_data_to_gui( ( char *)&oven, sizeof( gui_oven_state_t));
 
-    // ���� �ܰ� ����
+    // ���� �ܰ� ����
     run_next_step_work();
 }
 /** ----------------------------------------------------------------------------
-@brief  �������κ��� ���� ���� �޾���
+@brief  �������κ��� ���� ���� �޾���
 @remark
 @param -
 @return
@@ -452,59 +456,59 @@ static void on_rcv_status( void){
     gui_oven_state_t    oven;
     int                 ndx;
 
-    // �򿣵���� ��Ʋ��������� ����
-    U16 *pword = (U16 *)&rx_data[3];                                // �����ʹ� rx_data[3]���� ����
+    // �򿣵���� ��Ʋ��������� ����
+    U16 *pword = (U16 *)&rx_data[3];                                // �����ʹ� rx_data[3]���� ����
 
     for ( ndx = 0; ndx < rx_szdata / 2; ndx++){
         swap_byte( pword++);
     }
 
-    // ���� ó��
+    // ���� ó��
 
     oven.header    = HDR_OVEN_STATE;
-    memcpy( ( char *)&oven.state, &rx_data[3], 0x32 * 2);           // 0x32 : ���� ���� ���� 2����Ʈ ����
+    memcpy( ( char *)&oven.state, &rx_data[3], 0x32 * 2);           // 0x32 : ���� ���� ���� 2����Ʈ ����
 
-    bit_onoff21 = oven.state.onoff_state1;                          // ���� ���� ���¸� �ݿ�
-    bit_onoff22 = oven.state.onoff_state2;                          // ���� ���� ���¸� �ݿ�
+    bit_onoff21 = oven.state.onoff_state1;                          // ���� ���� ���¸� �ݿ�
+    bit_onoff22 = oven.state.onoff_state2;                          // ���� ���� ���¸� �ݿ�
 
     if ( oven_error_bit != oven.state.system_error){
 
-        // ����� ��Ʈ�� �ִ� �� Ȯ��
+        // ����� ��Ʈ�� �ִ� �� Ȯ��
         U16     bit_ndx  = 0x0001;
         int     bit_prev;
         int     bit_curr;
 
         for ( ndx = 0; ndx < 16; ndx++){
-            bit_prev = oven_error_bit           & bit_ndx;          // ���� ��Ʈ ����
-            bit_curr = oven.state.system_error  & bit_ndx;          // ���� ��Ʈ ����
-            if ( bit_prev != bit_curr){                             // ��Ʈ ���� ���̰� �ִٸ�
-                if ( 0 != bit_prev){                                // ��Ʈ ���� 0->1 ��ȭ�� �� ���� ī��Ʈ ����
+            bit_prev = oven_error_bit           & bit_ndx;          // ���� ��Ʈ ����
+            bit_curr = oven.state.system_error  & bit_ndx;          // ���� ��Ʈ ����
+            if ( bit_prev != bit_curr){                             // ��Ʈ ���� ���̰� �ִٸ�
+                if ( 0 != bit_prev){                                // ��Ʈ ���� 0->1 ��ȭ�� �� ���� ī��Ʈ ����
                     ary_error_cnt[ndx]++;
                 }
             }
             bit_ndx <<= 1;
         }
 
-        // GUI�� ���� ī��Ʈ ����
+        // GUI�� ���� ī��Ʈ ����
         for ( ndx = 0; ndx < 16; ndx++){
             oven.state.error_cnt[ndx]   = ary_error_cnt[ndx];
         }
 
-        oven_error_bit = oven.state.system_error;                   // ���� ��Ʈ �� ����
+        oven_error_bit = oven.state.system_error;                   // ���� ��Ʈ �� ����
     }
 
     printf( "onoff_state1       = 0x%04x\n", oven.state.onoff_state1);
     printf( "onoff_state2       = 0x%04x\n", oven.state.onoff_state2);
     printf( "onoff_realy_load   = 0x%04x\n", oven.state.onoff_relay_load);
 
-    // GUI�� ����
+    // GUI�� ����
     gui_send_data_to_gui( ( char *)&oven, sizeof( gui_oven_state_t));
 
-    // ���� �ܰ� ����
+    // ���� �ܰ� ����
     run_next_step_work();
 }
 /** ----------------------------------------------------------------------------
-@brief  �������κ��� ���� ���� ����� �޾���
+@brief  �������κ��� ��� ���� ����� �޾���
 @remark
 @param -
 @return
@@ -513,15 +517,15 @@ static void on_rcv_echo( void){
 
     printf( "receive func code 0x%x\n", rx_data[1] & 0xff);
 
-    if ( gui_command_exists()){                             // ó���ؾ��� ������ ���� �ִٸ�
-        check_gui_cmd();                                    // ���� ������ �����Ѵ�.
-    } else {                                                // ó���ؾ��� ������ ���ٸ�
-        run_next_step_work();                               // ���� �ܰ�� �Ѿ� ����.
+    if ( gui_command_exists()){                             // ó���ؾ��� ����� ���� �ִٸ�
+        check_gui_cmd();                                    // ���� ����� �����Ѵ�.
+    } else {                                                // ó���ؾ��� ����� ���ٸ�
+        run_next_step_work();                               // ���� �ܰ�� �Ѿ� ����.
     }
 }
 
 /** ----------------------------------------------------------------------------
-@brief  �������κ��� Modbus 80 ���� �ڵ� ���� �� ó��
+@brief  �������κ��� Modbus 80 ���� �ڵ� ���� �� ó��
 @remark
 @param -
 @return
@@ -533,7 +537,7 @@ static void on_rcv_80_code( void){
     switch( step_work){
         case STEP_CHECK :
             printf( "failed to command to oven\n");
-            gui_send_error_code( ERR_RECEIVE_80);                   // 0x80 �ڵ� ������ GUI�� �˸�
+            gui_send_error_code( ERR_RECEIVE_80);                   // 0x80 �ڵ� ������ GUI�� �˸�
             break;
         default :
             break;
@@ -542,14 +546,14 @@ static void on_rcv_80_code( void){
 }
 
 /** ----------------------------------------------------------------------------
-@brief  uart�κ��� CRC���� Ȯ���� ������ ��������
+@brief  uart�κ��� CRC���� Ȯ���� ������ ��������
 @remark
 @param
 @return
  -----------------------------------------------------------------------------*/
 static void on_receive_data( void){
 
-    // function �ڵ庰�� �з�
+    // function �ڵ庰�� �з�
     switch ( rx_data[1]){
         case 0x03   :   on_rcv_control();   break;
         case 0x04   :   on_rcv_status();    break;
@@ -566,11 +570,11 @@ static void on_receive_data( void){
 @brief  CRC üũ
 @remark
 @param
-@return true: CRC �� ����
+@return true: CRC �� ����
  -----------------------------------------------------------------------------*/
 static int is_crc_ok( void){
 
-    // rx_index�� ���ο� ����Ʈ�� ���� ��ġ. ��, ������ ����Ʈ ����
+    // rx_index�� ���ο� ����Ʈ�� ���� ��ġ. ��, ������ ����Ʈ ����
     U16 crc         = CRC16( ( unsigned char *)rx_data, rx_index-2);
 
     U32 data_crc_lo = rx_data[rx_index-2];
@@ -582,10 +586,10 @@ static int is_crc_ok( void){
 }
 
 /** ----------------------------------------------------------------------------
-@brief  uart ��Ʈ�κ��� ������ �����͸� ó��
+@brief  uart ��Ʈ�κ��� ������ �����͸� ó��
 @remark
-@param  obj : ��� ��ü
-@return ���� ����Ʈ ����
+@param  obj : ��� ��ü
+@return ���� ����Ʈ ����
  -----------------------------------------------------------------------------*/
 static int on_serial_read( poll_obj_t *obj )
 {
@@ -593,7 +597,7 @@ static int on_serial_read( poll_obj_t *obj )
     int     ndx;
     int     rdcnt;
 
-    tm_recv = get_cur_msec();                                       // ����Ʈ Ÿ�� ������ �ɸ��� �ʵ��� ���� �ð� ����.
+    tm_recv = get_cur_msec();                                       // ����Ʈ Ÿ�� ������ �ɸ��� �ʵ��� ���� �ð� ����.
 
     memset(buff, 0, sizeof(buff));
     rdcnt = uart_read(obj, buff, sizeof(buff));
@@ -609,10 +613,10 @@ static int on_serial_read( poll_obj_t *obj )
                 case SW_WAIT_FUNCTION   :
                     rx_data[rx_index++] = ch_data;
                     switch( ch_data){
-                    case 0x03   :                                   // ������ 0x04�� COUNT ������ �ʿ�
+                    case 0x03   :                                   // ������ 0x04�� COUNT ������ �ʿ�
                         sw_uart = SW_WAIT_COUNT;
                         break;
-                    case 0x04   :                                   // ������ 0x04�� COUNT ������ �ʿ�
+                    case 0x04   :                                   // ������ 0x04�� COUNT ������ �ʿ�
                         sw_uart = SW_WAIT_COUNT;
                         break;
                     default :
@@ -620,28 +624,28 @@ static int on_serial_read( poll_obj_t *obj )
                         break;
                     }
                     break;
-                case SW_WAIT_COUNT      :                           // ������ ���̸� ����
+                case SW_WAIT_COUNT      :                           // ������ ���̸� ����
                     sw_uart             = SW_WAIT_DATA_COUNT;
                     rx_data[rx_index++] = ch_data;
-                    rx_szdata           = ch_data;                  // CRC�� ������ ����Ʈ ����
+                    rx_szdata           = ch_data;                  // CRC�� ������ ����Ʈ ����
                     break;
                 case SW_WAIT_DATA_COUNT :
-                    rx_data[rx_index++] = ch_data;                  // rx_szdata ���� ����Ʈ ��ŭ �о� ����
-                    if ( rx_szdata == rx_index-3){                  // -3: ���� 1����Ʈ, FUN 1����Ʈ, ������ ���� 1����Ʈ ���� ����
+                    rx_data[rx_index++] = ch_data;                  // rx_szdata ���� ����Ʈ ��ŭ �о� ����
+                    if ( rx_szdata == rx_index-3){                  // -3: ���� 1����Ʈ, FUN 1����Ʈ, ������ ���� 1����Ʈ ���� ����
                         sw_uart = SW_WAIT_CRC_LOW;
                     }
                     break;
-                case SW_WAIT_DATA       :                           // ��� ���� 0x05���� �о� ���� ������ ������ 4����Ʈ
+                case SW_WAIT_DATA       :                           // ��� ���� 0x05���� �о� ���� ������ ������ 4����Ʈ
                     rx_data[rx_index++] = ch_data;
-                    if ( 4 == rx_index-2){                          // -2: ���� 1����Ʈ, FUN 1����Ʈ
+                    if ( 4 == rx_index-2){                          // -2: ���� 1����Ʈ, FUN 1����Ʈ
                         sw_uart = SW_WAIT_CRC_LOW;
                     }
                     break;
-                case SW_WAIT_CRC_LOW    :                           // crc low ����Ʈ ����
+                case SW_WAIT_CRC_LOW    :                           // crc low ����Ʈ ����
                     sw_uart             = SW_WAIT_CRC_HIGH;
                     rx_data[rx_index++] = ch_data;
                     break;
-                case SW_WAIT_CRC_HIGH   :                           // crc high ����Ʈ ����
+                case SW_WAIT_CRC_HIGH   :                           // crc high ����Ʈ ����
                     sw_uart             = SW_WAIT_ADDRESS;
                     rx_data[rx_index++] = ch_data;
                     if ( is_crc_ok()){
@@ -655,9 +659,9 @@ static int on_serial_read( poll_obj_t *obj )
 }
 
 /** ----------------------------------------------------------------------------
-@brief  �����͸� �������� �� ���� ���� ó��
-@remark �µ��� �� �о��� ���� ���� �޸��� �µ� ������ -9999��
-        RUNSTOP �� ��û�� ���� �����Ͱ� ���ٸ� RUNSTOP_NOT_EXISTS�� ����
+@brief  �����͸� �������� �� ���� ���� ó��
+@remark �µ��� �� �о��� ���� ���� �޸��� �µ� ������ -9999��
+        RUNSTOP �� ��û�� ���� �����Ͱ� ���ٸ� RUNSTOP_NOT_EXISTS�� ����
 @param
 @return
  -----------------------------------------------------------------------------*/
@@ -666,44 +670,44 @@ static void on_no_data( void){
     if ( MAX_RETRY < cnt_retry){
         printf( ">>>>>>>> failed to send data\n");
 
-        if ( STEP_CHECK == step_work){                              // GUI ��û���� ������ ���� ���̾���
-            gui_send_error_code( ERR_SEND_COMMAND);             // ���� ���� ���и� GUI�� �˸�
+        if ( STEP_CHECK == step_work){                              // GUI ��û���� ����� ���� ���̾���
+            gui_send_error_code( ERR_SEND_COMMAND);             // ��� ���� ���и� GUI�� �˸�
         }
     } else {
-        write_to_uart();                                    // ���� ���� �����͸� �ٽ� ����
+        write_to_uart();                                    // ���� ���� �����͸� �ٽ� ����
         cnt_retry++;
         return;
     }
 
-    run_step_work( STEP_CONTROL);                                   // ����� ��� �����ߴٸ� ���� ���¸� ���ϴ� �۾����� �ٽ� ����
+    run_step_work( STEP_CONTROL);                                   // ����� ��� �����ߴٸ� ���� ���¸� ���ϴ� �۾����� �ٽ� ����
 }
 
 /** ----------------------------------------------------------------------------
-@brief  �μ��� ���� �۾� STEP�� �����Ѵ�.
+@brief  �μ��� ���� �۾� STEP�� �����Ѵ�.
 @remark
-@param  n_step  : ������ STEP
+@param  n_step  : ������ STEP
 @return -
  -----------------------------------------------------------------------------*/
 static void run_step_work( int n_step){
 
-    step_work   = n_step;                                           // �۾� �ܰ� ����
-    cnt_retry   = 0;                                                // ���� �۾��� ���� �� ���� Ƚ�� �ʱ�ȭ
-    msleep( 50);                                                    // ���� ���� ��û ���� ���� ������ ������ �� �Ǵ� ��찡 ����
+    step_work   = n_step;                                           // �۾� �ܰ� ����
+    cnt_retry   = 0;                                                // ���� �۾��� ���� �� ���� Ƚ�� �ʱ�ȭ
+    msleep( 50);                                                    // ���� ��� ��û ���� ���� ������ ������ �� �Ǵ� ��찡 ����
 
     switch( step_work){
-        case STEP_CONTROL       : modbus_func03( 0x00, 0x00, sizeof( oven_control_t) /2);   break;  // ������ ��û ���� /2: word ������ ����, 2���� ��û�ϸ� 4 ����Ʈ ����
-        case STEP_STATE         : modbus_func04( 0x00, 0x00, 0x32                      );   break;  // oven_stae_t�� error_cnt[] ������ �־ ���� �Է�
-        case STEP_CHECK         : check_gui_cmd();                                          break;  // GUI ��û Ȯ��
+        case STEP_CONTROL       : modbus_func03( 0x00, 0x00, sizeof( oven_control_t) /2);   break;  // ������ ��û ���� /2: word ������ ����, 2���� ��û�ϸ� 4 ����Ʈ ����
+        case STEP_STATE         : modbus_func04( 0x00, 0x00, 0x32                      );   break;  // oven_stae_t�� error_cnt[] ������ �־ ���� �Է�
+        case STEP_CHECK         : check_gui_cmd();                                          break;  // GUI ��û Ȯ��
         default                 :
-            msleep( 100);                                           // 100mm sec �޽�, ��� ���� ����
-            run_next_step_work();                                   // ���� STEP ����
+            msleep( 100);                                           // 100mm sec �޽�, ��� ���� ����
+            run_next_step_work();                                   // ���� STEP ����
             break;
     }
 }
 
 /** ----------------------------------------------------------------------------
-@brief  ���� �۾� STEP�� �����Ѵ�.
-@remark STEP�� ����ϴ� step_work�� ����
+@brief  ���� �۾� STEP�� �����Ѵ�.
+@remark STEP�� ����ϴ� step_work�� ����
 @param  -
 @return -
  -----------------------------------------------------------------------------*/
@@ -715,14 +719,14 @@ static void run_next_step_work( void){
 }
 
 /** ----------------------------------------------------------------------------
-@brief  ������ ���� ���� Ȯ��
+@brief  ������ ���� ���� Ȯ��
 @remark
-@param  msec_t tm_curr  : ���� �ð�
+@param  msec_t tm_curr  : ���� �ð�
 @return
  -----------------------------------------------------------------------------*/
 int rs485_timer( msec_t tm_curr){
 
-    if ( 500 <= ( tm_curr - tm_recv) ){                        // 1�� �̻� ���ŵǴ� �����Ͱ� ���ٸ� ��� �̻����� �Ǵ�
+    if ( 500 <= ( tm_curr - tm_recv) ){                        // 1�� �̻� ���ŵǴ� �����Ͱ� ���ٸ� ��� �̻����� �Ǵ�
         on_no_data();
     }
     return 0;
@@ -730,20 +734,20 @@ int rs485_timer( msec_t tm_curr){
 
 
 /** ----------------------------------------------------------------------------
-@brief  rs485 ��� ���� ����
+@brief  rs485 ��� ���� ����
 @remark
-@param  uart_name   : uart ��ġ �̸�
+@param  uart_name   : uart ��ġ �̸�
 @return
  -----------------------------------------------------------------------------*/
 int rs845_run_start( void){
 
-    run_step_work( STEP_CONTROL);                                   // ���� ���� ���¸� ���ϴ� �۾����� ����
+    run_step_work( STEP_CONTROL);                                   // ���� ���� ���¸� ���ϴ� �۾����� ����
 
     return 0;
 }
 
 /** ----------------------------------------------------------------------------
-@brief  ��� ������ ���� �ʱ�Ȱ�� �Ѵ�.
+@brief  ��� ������ ���� �ʱ�Ȱ�� �Ѵ�.
 @remark
 @param
 @return
@@ -754,7 +758,7 @@ int rs485_initialize( void){
     poll_obj_t  *obj;
     int          ndx;
 
-    inifile = ini_create( INI_SYSTEM);                                    // IniFile ����
+    inifile = ini_create( INI_SYSTEM);                                    // IniFile ����
     if  ( NULL == inifile){
         printf( "ini file error.\n");
         return -1;
@@ -775,12 +779,12 @@ int rs485_initialize( void){
         ini_free( inifile);
     }
 
-    memset( &rx_data, 0, sizeof( rx_data));                         // ���� ���� ���� �ʱ�ȭ
+    memset( &rx_data, 0, sizeof( rx_data));                         // ���� ���� ���� �ʱ�ȭ
 
     obj_uart    = obj;
 
-    // ���� ī��Ʈ�� ���� ��Ʈ �ʱ�ȭ
-    // ���� ���Ͽ��� �о� ����
+    // ���� ī��Ʈ�� ���� ��Ʈ �ʱ�ȭ
+    // ���� ���Ͽ��� �о� ����
 
     for ( ndx = 0; ndx < 16; ndx++){
         ary_error_cnt[ndx] = 0;
diff --git a/app/app-prime-modbus/include/all_share.h b/app/app-prime-modbus/include/all_share.h
index 6577855..74273aa 100644
--- a/app/app-prime-modbus/include/all_share.h
+++ b/app/app-prime-modbus/include/all_share.h
@@ -1,10 +1,10 @@
 //------------------------------------------------------------------------------
-// ȭ�ϸ�   : all_share.h
-// ������Ʈ :
-// ��  ��   : ���� �޸� ����ü�� �����Ѵ�.
+// ȭ�ϸ�   : all_share.h
+// ������Ʈ :
+// ��  ��   : ���� �޸� ����ü�� �����Ѵ�.
 // 
-// ���۱�   : FA�������ֽ�ȸ��
-// ��  ��   :
+// ���۱�   : FA�������ֽ�ȸ��
+// ��  ��   :
 //------------------------------------------------------------------------------
 #ifndef _ALL__SHARE_HEADER_
 #define _ALL__SHARE_HEADER_
@@ -25,9 +25,9 @@ typedef unsigned long long  U64;
 typedef signed short        I16;
 
 enum command_enum_t {
-    CMD_VALUE   = 0,                                                // ���� �� ����
-    CMD_ONOFF,                                                      // ���� ����ġ ON/OFF
-    CMD_CLEAR_ERROR_CNT                                             // ���� ī��Ʈ�� �ʱ�ȭ
+    CMD_VALUE   = 0,                                                // ���� �� ����
+    CMD_ONOFF,                                                      // ���� ����ġ ON/OFF
+    CMD_CLEAR_ERROR_CNT                                             // ���� ī��Ʈ�� �ʱ�ȭ
 };
 
 enum target_value_t {
@@ -46,6 +46,10 @@ enum target_value_t {
     TG_FAN2_RPM,
     TG_FAN1_DIRECTOIN,
     TG_FAN2_DIRECTOIN,
+    TG_BURNER1_1_RPM,
+    TG_BURNER1_2_RPM,
+    TG_BURNER23_1_RPM,
+    TG_BURNER23_2_RPM,
     TG_ERROR_CLEAR
 };
 
@@ -87,18 +91,18 @@ enum target_onoff_t {
 };
 
 enum {
-    HDR_OVEN_CONTROL  = 0,                                          // 40000 ���� ��, ��Ʈ�� ����
-    HDR_OVEN_STATE,                                                 // 30000 ���� ��, ���� ����
-    HDR_ERROR_CODE                                                  // ���� �ڵ�
+    HDR_OVEN_CONTROL  = 0,                                          // 40000 ���� ��, ��Ʈ�� ����
+    HDR_OVEN_STATE,                                                 // 30000 ���� ��, ���� ����
+    HDR_ERROR_CODE                                                  // ���� �ڵ�
 };
 
 enum {
-    ERR_SEND_COMMAND    = 0,                                        // ���� ���ۿ� ���� ������ ����
-    ERR_RECEIVE_80                                                  // 0x80 �ڵ带 ��������
+    ERR_SEND_COMMAND    = 0,                                        // ��� ���ۿ� ���� ������ ����
+    ERR_RECEIVE_80                                                  // 0x80 �ڵ带 ��������
 };
 
 //
-// �ý��� ��ü ���� ����ü ����ü
+// �ý��� ��ü ���� ����ü ����ü
 //
 
 typedef struct
@@ -149,10 +153,10 @@ typedef struct {
     U16     reserved25;             // 25
     U16     reserved26;             // 26
     U16     reserved27;             // 27
-    U16     reserved28;             // 28
-    U16     reserved29;             // 29
-    U16     reserved2a;             // 2A
-    U16     reserved2b;             // 2B
+    U16     burner1_1_rpm;          // 28
+    U16     burner1_2_rpm;          // 29
+    U16     burner23_1_rpm;         // 2A
+    U16     burner23_2_rpm;         // 2B
     U16     reserved2c;             // 2C
     U16     reserved2d;             // 2D
     U16     reserved2e;             // 2E
@@ -212,7 +216,14 @@ typedef struct {
     U16     communication_error;    // 2F
     U16     sensor_error;           // 30
     U16     reserved31;             // 31
-    U16     error_cnt[16];          // ���� ī��Ʈ
+    U16     burner1_ignition_rpm;   // 32
+    U16     burner2_ignition_rpm;   // 33
+    U16     burner3_ignition_rpm;   // 34
+    U16     burner1_current_rpm;    // 35
+    U16     burner2_current_rpm;    // 36
+    U16     burner3_current_rpm;    // 37
+    U16     controller_error;       // 38
+    U16     error_cnt[16];          // ���� ī��Ʈ
 } STRUCT_PACK oven_state_t;
 
 typedef struct {
@@ -232,13 +243,13 @@ typedef struct {
 
 //------------------------------------------------------------------------------
 //
-// ������, ���̷ε�
+// ������, ���̷ε�
 //
 //------------------------------------------------------------------------------
 
 //------------------------------------------------------------------------------
 //
-// ���� ���� ����
+// ���� ���� ����
 //
 //------------------------------------------------------------------------------
 
-- 
2.1.4