một cách tôi có thể viết mã của mình và mô phỏng / kiểm tra nó bằng máy tính để bàn
Nếu bạn có nghĩa là có thể "kiểm tra đơn vị" bằng máy tính để bàn, tôi có thể cung cấp một thư viện mà tôi đã viết có tên là arduino_ci .
Nó không cung cấp thi đua. Bạn sẽ thể hiện các bài kiểm tra của bạn trong mã. Ví dụ, đây là một bài kiểm tra được lấy từ tài liệu tham khảo xác thực dữ liệu được ghi vào một cổng:
unittest(pin_history)
{
GodmodeState* state = GODMODE();
int myPin = 3;
state->reset(); // pin will start LOW
digitalWrite(myPin, HIGH);
digitalWrite(myPin, LOW);
digitalWrite(myPin, LOW);
digitalWrite(myPin, HIGH);
digitalWrite(myPin, HIGH);
// pin history is queued in case we want to analyze it later.
// we expect 6 values in that queue.
assertEqual(6, state->digitalPin[1].size());
bool expected[6] = {LOW, HIGH, LOW, LOW, HIGH, HIGH};
bool actual[6];
// convert history queue into an array so we can verify it.
// we expect to find 6 values: the 5 we set, plus the initial LOW
// and this is where/how we assert that
int numMoved = state->digitalPin[myPin].toArray(actual, 6);
assertEqual(6, numMoved);
// verify each element
for (int i = 0; i < 6; ++i) {
assertEqual(expected[i], actual[i]);
}
}
Trong thực tế, có thể bạn sẽ không gọi digitalWrite
trực tiếp các chức năng - bạn sẽ gọi một chức năng trong thư viện của mình, sau đó xác minh rằng "trạng thái thế giới" (được biểu thị ở đây bởi GODMODE
cấu trúc) phù hợp với những gì bạn mong đợi thư viện của mình sẽ làm.