Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dx3mod/avr8js-blink-tester
A minimal server to simulate (with avr8js) and test LED blinking
https://github.com/dx3mod/avr8js-blink-tester
Last synced: about 2 months ago
JSON representation
A minimal server to simulate (with avr8js) and test LED blinking
- Host: GitHub
- URL: https://github.com/dx3mod/avr8js-blink-tester
- Owner: dx3mod
- Created: 2024-08-04T18:00:19.000Z (5 months ago)
- Default Branch: master
- Last Pushed: 2024-08-06T15:25:47.000Z (5 months ago)
- Last Synced: 2024-08-06T18:17:50.605Z (5 months ago)
- Language: TypeScript
- Homepage:
- Size: 15.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# avr8js-blink-tester
Демонстрация возможности автоматизированной проверки практических работ студентов, проходящих курс по программированию микроконтроллеров AVR.
Такая система позволит автоматизировать тестирование программного кода в рамках симуляции, определяя корректность его работы путем сравнения с ожидаемым поведением.
В репозитории представлен пример веб-сервиса, тестирующий симуляцию по миганию светодиодом на 7-мом пине с интервалом в 1000мс.
## Теоретическая часть
Для симуляции микроконтроллеров AVR можно использовать решение от проекта [Wokwi] — симулятор МК AVR [avr8js], доступный в виде библиотеки.
Принцип использования симулятора:
```
Pre-Compiled machine code --> AVR8js <--> Glue code <--> external hardware functional simulation <--> simulation state display for the user
```Стоит сказать, что из коробки есть поддержка только Arduino (ATmega328), но при желании есть возможность для адаптации и других контроллеров семейства.
## Использование
Для запуска сервиса вам потребуется [Node.js]:
```console
$ npm i # установка зависимостей
$ npm run start # запуск на порту 8000
```Теперь, чтобы отправить прошивку (в формате Intel HEX) на проверку, можно воспользоваться каким-нибудь HTTP-клиентов, вроде [httpie].
```console
$ http --body post localhost:8000/test/blink @build/arduino.avr.uno/sketch_aug4a.ino.hex
```После чего в случае успешного тестирования вернётся `Ok`, иначе `Fail` с сообщением о причинах.
Например, если мигание будет происходить с интервалом в 400мс:
```
Fail: delay != 1000ms
```[Wokwi]: https://wokwi.com/
[avr8js]: https://github.com/wokwi/avr8js
[Node.js]: https://nodejs.org/en
[httpie]: https://httpie.io/