#include <zephyr/kernel.h>
#include <zephyr/drivers/uart.h>
#include "BLE_service.h"
Idź do kodu źródłowego tego pliku.
 | 
| void  | process_results (struct uart_event *evt) | 
|   | Funkcja przetwarzająca odebrane dane z czujnika. Sprawdza, czy odebrano kompletną ramkę (bądź ramki), weryfikuje sumę kontrolną i na podstawie identyfikatora komendy wywołuje funkcje, które dalej przetwarzają odebrane dane.  
  | 
|   | 
| 
static void  | uart_cb (const struct device *dev, struct uart_event *evt, void *user_data) | 
|   | 
| 
void  | init_sensor_uart () | 
|   | Funkcja inicjalizująca interfejs UART. 
  | 
|   | 
| uint8_t  | send_inst (enum instruction inst, uint8_t arg1, uint8_t arg2, bool set) | 
|   | Funkcja wysyłająca instrukcje do czujnika. Przeprowadza walidację argumentów, konstruuje ramkę i umieszcza ją w buforze wyjściowym, po czym wywołuje funkcję systemową uart_tx().  
  | 
|   | 
 | 
| uint8_t  | rx_buf [2][100] | 
|   | 
| const struct device *  | myUart | 
|   | 
| int  | requested | 
|   | 
| float  | pm25 | 
|   | 
| 
float  | pm10 | 
|   | 
| uint16_t  | pm25r | 
|   | 
| 
uint16_t  | pm10r | 
|   | 
| 
const struct uart_config  | uart1_cfg | 
|   | 
| 
struct k_sem  | wait_for_read | 
|   | Semafor do ogsługi procesu odczytywania wartości. Jest on zajmowany w momencie odebranie żądania odczytu charakterystyki reprezentującej stan konfiguracji czujnika i zwalniany po odebraniu przez UART odpowiedzi na zapytanie. 
  | 
|   | 
| bool  | ss_sleep_status | 
|   | 
| bool  | ss_reporting_mode | 
|   | 
| uint16_t  | ss_device_id | 
|   | 
| uint8_t  | ss_working_period | 
|   | 
- Autor
 - Maciej Jędrasik (Maciej.Jedrasik.STUD@pw.edu.pl) 
 
- Wersja
 - 1.0 
 
- Data
 - 2024-05-29 
 
 
◆ SENSOR_RX_FAILED
      
        
          | #define SENSOR_RX_FAILED   2 | 
        
      
 
Kod błędu zwracany przez funkcję send_inst() w przypadku niepowodzenia transmisji za pomocą interfejsu szeregowego. 
 
 
◆ SENSOR_VALUE_INVALID
      
        
          | #define SENSOR_VALUE_INVALID   1 | 
        
      
 
Kod błędu zwracany przez funkcję send_inst() w przypadku podania nieprawidłowego argumentu do ustawienia. 
 
 
◆ instruction
| Wartości wyliczeń | 
|---|
| SLEEP  | Tryb uśpienia  
 | 
| SDR  | Tryb raportowania  
 | 
| QD  | Żądanie odczytów jakości powietrza  
 | 
| SID  | Ustawienie identyfikatora czujnika  
 | 
| SWP  | Okres pracy  
 | 
| CFIRM  | Sprawdzenie wersji oprogramowania  
 | 
 
 
◆ process_results()
      
        
          | void process_results  | 
          ( | 
          struct uart_event * |           evt | ) | 
           | 
        
      
 
- Parametry
 - 
  
    | evt | Struktura opisująca zdarzenie interfejsu UART. Zawiera informacje o odebranych danych.  | 
  
   
 
 
◆ send_inst()
      
        
          | uint8_t send_inst  | 
          ( | 
          enum instruction |           inst,  | 
        
        
           | 
           | 
          uint8_t |           arg1,  | 
        
        
           | 
           | 
          uint8_t |           arg2,  | 
        
        
           | 
           | 
          bool |           set ) | 
        
      
 
- Parametry
 - 
  
    | inst | Rodzaj instrukcji do wysłania do czujnika.  | 
    | arg1 | Pierwszy argument instrukcji  | 
    | arg2 | Drugi argument instrukcji  | 
    | set | Parametr opisujący czy czujnik ma ustawić wartość przekazaną w argumentach (true), czy też odpowiedzieć ramką z bieżącą konfiguracją (false)  | 
  
   
- Zwraca
 - uint8_t 0 w przypadku powodzenia, kod błędu w pozostałych przypadkach. 
 
 
 
◆ myUart
  
  
      
        
          | const struct device* myUart | 
         
       
   | 
  
extern   | 
  
 
 
◆ pm25
Zmienne do przechowywania odczytów jakości powietrza w postaci zmiennoprzecinkowej 
 
 
◆ pm25r
Zmienne do przechowywania odczytów jakości powietrza w postaci przesyłanej przez czujnik (zakodowane na 2 bajtach) 
 
 
◆ requested
Zmienna służąca do wybrania buforu na dane przychodzące 
 
 
◆ rx_buf
Bufor na dane przychodzące 
 
 
◆ ss_device_id
Zmienna przechowująca numer ID czujnika 
 
 
◆ ss_reporting_mode
Zmienna przechowująca tryb raportowania czujnika 
 
 
◆ ss_sleep_status
Zmienna przechowująca stan uśpienia czujnika 
 
 
◆ ss_working_period
  
  
      
        
          | uint8_t ss_working_period | 
         
       
   | 
  
extern   | 
  
 
Zmienna przechowująca okres pracy czujnika