#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