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