LINUX.ORG.RU

VirtualGPIO. Эмулятор GPIO для Raspberry Pi 3. А так же отладочная утилита управления GPIO.

 , , , , virtual gpio


0

1

В ходе одного моего проекта мне понадобилось проводить отладку взаимодействия с GPIO. Проще было выполнять большую часть тестов не на Raspberry Pi, а на ПК который использую для разработки. Поэтому я написал небольшую утилиту для эмуляции GPIO. Но кроме эмуляции, данная утилита ещё может работать и с реальным GPIO (не проверял) отслеживая состояние вводов и посылая сигналы на выходы.

Пакет для Debian https://yadi.sk/d/81w1aWnMx2tZK
Исходный код https://yadi.sk/d/n-OqSBLwx2td5

Публикую данную программу под лицензией GNU GPL v3.

Утилита пишет журнал, позволяет для удобства маркировать GPIO и довольно гибка в настройках. Если по маркировке сделать двойной клик, то это работает так же как переключение кнопки.

☆☆☆

Последнее исправление: rezedent12 (всего исправлений: 2)

Божественный код от самого светоча! С благоговением открываю архив, не знаю, чего там ожидать! :D

Harald ★★★★★
()
Ответ на: комментарий от Harald

благоговением открываю архив, не знаю, чего там ожидать! :D

Остатки от первоначальной переусложнённой логики которую я упростил. Да и комментариев я маловато оставил.

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от dk-
'Китайский код
  ButtonGPIO.Add(ButtonGPIO1, 0)
  ButtonGPIO.Add(ButtonGPIO1, 1)
  ButtonGPIO.Add(ButtonGPIO2, 2)
  ButtonGPIO.Add(ButtonGPIO3, 3)
  ButtonGPIO.Add(ButtonGPIO4, 4)
  ButtonGPIO.Add(ButtonGPIO5, 5)  
  ButtonGPIO.Add(ButtonGPIO6, 6)
  ButtonGPIO.Add(ButtonGPIO7, 7)
  ButtonGPIO.Add(ButtonGPIO8, 8)
  ButtonGPIO.Add(ButtonGPIO9, 9)
  ButtonGPIO.Add(ButtonGPIO10, 10)
  ButtonGPIO.Add(ButtonGPIO11, 11)
  ButtonGPIO.Add(ButtonGPIO12, 12)
  ButtonGPIO.Add(ButtonGPIO13, 13)
  ButtonGPIO.Add(ButtonGPIO14, 14)
  ButtonGPIO.Add(ButtonGPIO15, 15)
  ButtonGPIO.Add(ButtonGPIO16, 16)
  ButtonGPIO.Add(ButtonGPIO17, 17)
  ButtonGPIO.Add(ButtonGPIO18, 18)
  ButtonGPIO.Add(ButtonGPIO19, 19)
  ButtonGPIO.Add(ButtonGPIO20, 20)
  ButtonGPIO.Add(ButtonGPIO21, 21)
  ButtonGPIO.Add(ButtonGPIO22, 22)
  ButtonGPIO.Add(ButtonGPIO23, 23)
  ButtonGPIO.Add(ButtonGPIO24, 24)
  ButtonGPIO.Add(ButtonGPIO25, 25)
  ButtonGPIO.Add(ButtonGPIO26, 26)
  ButtonGPIO.Add(ButtonGPIO27, 27)
  m = ButtonGPIO.Max
Stil ★★★★★
()
Ответ на: комментарий от Stil

Пришлось ибо расположение GPIO на raspberry pi хаотичное. Так что либо пришлось бы «китайским кодом» вводить координаты всех элементов либо как я сделал, китайским кодом создать на них ссылки.

rezedent12 ☆☆☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.