Selaa lähdekoodia

oprava callbacku pre restart kounikacie

Juraj Ďuďák 1 vuosi sitten
vanhempi
commit
1cb4aa770f
2 muutettua tiedostoa jossa 14 lisäystä ja 7 poistoa
  1. 7 1
      Inc/nbus_types.h
  2. 7 6
      Src/nbus_app.c

+ 7 - 1
Inc/nbus_types.h

@@ -134,6 +134,12 @@ typedef enum
     MEASURE_RUNNING,
 } nBusMeasurementActive_t;
 
+typedef enum
+{
+	CallbackType_UART,
+	CallbackType_SENSOR,
+}nBusStateCallbackType_t;
+
 /**
  * @brief Dátová štruktúra pre implementáciu základných funkcií na aplikačnej
  * úrovni. Komunikačný zásobník nBus je HW nezávislá implementácia komunikačného
@@ -188,7 +194,7 @@ typedef struct
      * ukončenie načítania vstupných dát cez komunikačné rozhranie. Je to signál
      * pre ukočenie načítania, ktoré bolo sputené cez uart_receive
      */
-    uint8_t (*loop_callback)(void);
+    uint8_t (*loop_callback)(nBusStateCallbackType_t);
 
 } nBusPlatformInterface_t;
 

+ 7 - 6
Src/nbus_app.c

@@ -113,6 +113,7 @@ static void process_request()
     if (nBus.addressModule != MODULE_ADDRESS)
     {
         nBus.send_response = NO_RESPONSE;
+        receivePacket();
         return;
     }
 
@@ -181,7 +182,7 @@ static void nbus_blink_LED(uint8_t delay)
 
 /**
  * @brief UART receive complete.
- * This callback have to valled from application, when RX data is ready.
+ * This callback have to called from application, when RX data is ready.
  * @param int size Size of received packet
  * Received packet is located in uBus.rx_buffer
  */
@@ -308,14 +309,14 @@ void nbus_stack(void)
 
         if (nBus.hw_platform->loop_callback != NULL)
         {
-            switch (nBus.hw_platform->loop_callback())
+            if (nBus.hw_platform->loop_callback(CallbackType_SENSOR) == 1)
             {
-            case 1:
                 nBus.interface->read();
-                break;
-            case 2:
+            }
+
+            if (nBus.hw_platform->loop_callback(CallbackType_UART) == 1)
+            {
                 nBus.uart_state = UART_RX_WAIT;
-                break;
             }
         }
     }