我在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