Я хочу перенести свой проект в новый технологический стек.
Текущий стек:
- C #
- UWP
- Windows IoT
- Raspberry Pi 3
Новый стек
- C ++
- WiringPi
- Linux (может быть Raspbean)
- Raspberry Pi 3
Одна из причин, по которой я хочу это сделать: цикл, который мне нужно использовать для прослушивания UART:
private async Task<byte> getByte()
{
uint loaded = 0;
do
{
loaded = await dataReaderObject.LoadAsync(1);
Task.Delay(-1).Wait(10);
} while (loaded == 0);
return dataReaderObject.ReadByte();
}
Однако то, что я нашел вWiringPi выглядит примерно так:
int serialGetchar (int fd) ;
Возвращает следующий символ, доступный на последовательном устройстве.Этот вызов будет блокироваться на срок до 10 секунд, если данные недоступны (когда он вернет -1)
Получено от здесь
Есть что-то вродеследовать коду?
WiringPiCPPLib.UARTDataReceived += OnDataReceived;
void OnDataReceived(byte[] data) { ... }
Я хочу обработку UART на основе событий, а не while(true)
стиль.