У меня проблема с приложением в Arduino Uno.Arduino Uno, несколько процессов, многопоточность
На плате есть датчик, который подсчитывает продукты каждую секунду, через некоторое время отправляет на сервер количество продуктов, однако этот процесс занимает больше секунды, поэтому код, который он регистрирует, не вызывается до тех пор, пока этот процесс завершен, поэтому часть продукта иногда не учитывается.
Я искал, поддерживает ли Arduino многопоточность, чтобы иметь поток для отправки данных на сервер, а другой для регистрации количества продуктов, но пока у меня нет четкого ответа.
Что было бы лучшим решением для решения этой проблемы?
const long MAX_ITERATION = 100000;
const int OFF = 1;
const int ON = 0;
const int PHOTOELECTRIC_SENSOR = 3;
int counter = 0;
long iteration = 0;
int state = OFF;
void loop() {
registerProduct();
if (iteration >= MAX_ITERATION) {
// this process takes more than a second
sendDataToServer();
iteration = 0;
}
iteration++;
}
void registerProduct() {
int currentSensorState = digitalRead(PHOTOELECTRIC_SENSOR);
if (currentSensorState != state) {
if (currentSensorState == ON) {
counter++;
}
}
state = currentSensorState;
}
void sendDataToServer() {
// Sends data through HTTP protocol, and sets counter to zero
}
Большое спасибо, я попробую ваше предложение. – jahepi