JongYong Park / Mbed 2 deprecated NUCLEO-F767_LIFI_4CH_os2_v2

Dependencies:   mbed

Revision:
34:d704131107dd
Parent:
23:45461af5efc5
Child:
35:dcddce1fe126
diff -r 45461af5efc5 -r d704131107dd lifiReceiver.cpp
--- a/lifiReceiver.cpp	Tue Apr 09 10:44:11 2019 +0000
+++ b/lifiReceiver.cpp	Wed Apr 10 11:56:56 2019 +0900
@@ -21,15 +21,6 @@
     OP_HF, OP_LF, OP_PLOT_ADC, OP_RESERVED
 };
 
-enum receiver_state {
-    IDLE_STATE = 0, //waiting for sync
-    SYNC_STATE, //synced, waiting for STX
-    START_STATE, //STX received
-    LENGTH_LSB_STATE,
-    LENGTH_MSB_STATE,
-    DATA_STATE, //receiving DATA
-    END_STATE
-};
 
 ///////////////////////////////////////////////////////
 ////////////  GLOBAL VARIABLES   //////////////////////
@@ -53,58 +44,10 @@
 //int probe_adc_low = 0;
 //int probe_adc_gap = 0;
 
-struct RX_VARS {
-    int sensorValue;
-    int oldValue;
-    int edge_val;
-    int steady_count;
-    int dist_last_sync;
-    unsigned int detected_word;
-    int new_word;
-    long shift_reg;
-    int old_edge_val;
-    int probe_adc_high;
-    int probe_adc_low;
-    int probe_adc_gap;
-    enum receiver_state frame_state;
-    uint8_t rx_frame_buffer[FRAME_BUFFER_SIZE];
-    //////////// keep received message
-    bool is_valid;
-    bool is_received;
- //   uint8_t rx_frame_buffer_save[FRAME_BUFFER_SIZE];
-    int probe_adc_high_received;
-    int probe_adc_low_received;
-    int probe_adc_gap_received;
-    ///////////
-    // no auxiliary security header
-    int rx_frame_index;
-    int rx_frame_size;
-    uint16_t pdu_length;
-    uint16_t pdu_length_count;
-//    uint16_t pdu_length_save;
-//    uint16_t pdu_length_count_save;
-    uint16_t frame_length;
-//    uint16_t frame_length_save;
-};
-// __attribute__((packed));
+
 
-struct RX_VARS_RECEIVED {
-    int probe_adc_high;
-    int probe_adc_low;
-    int probe_adc_gap;
-    uint8_t rx_frame_buffer[FRAME_BUFFER_SIZE];
-    //////////// keep received message
-    bool is_valid;
-    bool is_received;
-    ///////////
-    int rx_frame_size;
-    uint16_t pdu_length;
-    uint16_t pdu_length_count;
-    uint16_t frame_length;
-};
-
-static RX_VARS rx_vars[LIFI_MIMO_CHANNEL_NUM];
-static RX_VARS_RECEIVED rx_vars_received[LIFI_MIMO_CHANNEL_NUM];
+static LIFI_RECEIVING_FRAME rx_vars[LIFI_MIMO_CHANNEL_NUM];
+static LIFI_RX_FRAME rx_vars_received[LIFI_MIMO_CHANNEL_NUM];
 
 void LifiRx_CopyAdcInfo_FromReceivedFrame(int channel, int high, int low)
 {
@@ -337,7 +280,7 @@
 #endif
 }
 
-int add_byte_to_frame_v1(int channel,uint8_t * rx_frame_buffer, int * rx_frame_index, int * rx_frame_size, enum receiver_state * frame_state,unsigned char data)
+int add_byte_to_frame_v1(int channel,uint8_t * rx_frame_buffer, int * rx_frame_index, int * rx_frame_size, enum lifi_rx_state * frame_state,unsigned char data)
 {
     if(data == SYNC_SYMBOL/* && (*rx_frame_index) < 0*/) {
         (*rx_frame_index) = 0 ;
@@ -387,7 +330,7 @@
 
 int add_byte_to_frame(int channel, uint8_t * rx_frame_buffer,
                       int * rx_frame_index, int * rx_frame_size,
-                      enum receiver_state * frame_state, unsigned char data)
+                      enum lifi_rx_state * frame_state, unsigned char data)
 {
     if (data == SYNC_SYMBOL/* && (*rx_frame_index) < 0*/) {
         (*rx_frame_index) = 0;
@@ -417,31 +360,18 @@
                 return -1;
             }
 
-        } else if ((*frame_state) == START_STATE) {
-            (*frame_state) = LENGTH_LSB_STATE;
-            rx_vars[channel].pdu_length = data;
-#if RX_DEBUG_FRAME
-            printf("%dLENGTH_LSB(%d) ",channel+1,data);
-#endif
-        } else if ((*frame_state) == LENGTH_LSB_STATE) {
+        }
+        else if ((*frame_state) == START_STATE) {
 
-            (*frame_state) = LENGTH_MSB_STATE;
-            rx_vars[channel].pdu_length = rx_vars[channel].pdu_length + (data << 8);
+            rx_vars[channel].pdu_length = data ;
             rx_vars[channel].pdu_length_count = 0;
             rx_vars[channel].frame_length = rx_vars[channel].pdu_length + LIFI_FRAME_HEADER_SIZE;
 #if RX_DEBUG_FRAME
-            printf("%dLENGTH_MSB(%d) length=%d ",channel+1,data, rx_vars[channel].pdu_length);
-#endif
-
-        } else if ((*frame_state) == LENGTH_MSB_STATE) {
-
-#if RX_DEBUG_FRAME
-            printf("%dD=%c[%x] ",channel+1,data,data);
+            printf("%dLENGTH(%d) length=%d ",channel+1,data, rx_vars[channel].pdu_length);
 #endif
             (*frame_state) = DATA_STATE;
-            rx_vars[channel].pdu_length_count++;
-
-        } else if ((*frame_state) == DATA_STATE) {
+        }
+        else if ((*frame_state) == DATA_STATE) {
             rx_vars[channel].pdu_length_count++;
             // when ETX
             if (rx_vars[channel].pdu_length_count
@@ -543,19 +473,12 @@
         rx_vars[channel].new_word = 0;
 
         // return 1 from add_byte_to_frame() means got ETX
-#if LIFI_PACKET_USE_LENGTH
         if ((byte_added = add_byte_to_frame(channel,
                                             rx_vars[channel].rx_frame_buffer,
                                             &rx_vars[channel].rx_frame_index,
                                             &rx_vars[channel].rx_frame_size, &rx_vars[channel].frame_state,
                                             received_data)) > 0)
-#else
-        if ((byte_added = add_byte_to_frame_v1(channel,
-                                               rx_vars[channel].rx_frame_buffer,
-                                               &rx_vars[channel].rx_frame_index,
-                                               &rx_vars[channel].rx_frame_size, &rx_vars[channel].frame_state,
-                                               received_data)) > 0)
-#endif
+
         {
             valid_chars = true;
             // 여기서 ETX를 0으로 변경해 버린다.