• Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal

Вся активность

Этот поток обновляется автоматически   

  1. Ранее
  2. Когда меняем роутер (подключаемся то к одному то к другому), каждый раз скрипт править будем для другого ip адреса? не кошерно как то получается . Если роутер работает дефалтовым шлюзом, может просто пинговать как раз его? сначала получим адрес шлюза, а потом пинганем #!/bin/sh default_gateway=$(ip route show | grep 'default' | awk '{print $3}') if [ -z "$default_gateway" ]; then echo "default gateway is not found" else ping -c 1 $default_gateway fi
  3. не совсем иногда отваливается от роутера. при перезагрузке роутера - коннект восстанавливается. С другими устройствами такого не наблюдается. пока что сделал скрипт: if ping -c 1 192.168.1.1 >> /dev/null then echo Connected >> /dev/null else echo "WiFi not connect. Reconect..." ifdown wlan sleep 3 ifup wlan fi и добавил его в cron каждую минуту. буду наблюдать
  4. В директории /usr/lib/python3.6 нужно создать файл onionGpio.py и вставить в него этот код: import sys __version__ = "0.1" _EXIT_SUCCESS = 0 _EXIT_FAILURE = -1 GPIO_BASE_PATH = '/sys/class/gpio' GPIO_EXPORT = GPIO_BASE_PATH + '/export' GPIO_UNEXPORT = GPIO_BASE_PATH + '/unexport' GPIO_PATH = GPIO_BASE_PATH + '/gpio%d' GPIO_VALUE_FILE = 'value' GPIO_DIRECTION_FILE = 'direction' GPIO_ACTIVE_LOW_FILE = 'active_low' _GPIO_INPUT_DIRECTION = 'in' _GPIO_OUTPUT_DIRECTION = 'out' _GPIO_OUTPUT_DIRECTION_LOW = 'low' _GPIO_OUTPUT_DIRECTION_HIGH = 'high' _GPIO_ACTIVE_HIGH = 0 _GPIO_ACTIVE_LOW = 1 class OnionGpio: """Base class for sysfs GPIO access""" def __init__(self, gpio, verbose=0): self.gpio = gpio self.path = GPIO_PATH%(self.gpio) self.verbose = verbose if self.verbose > 0: print ('GPIO%d path: %s'%(self.gpio, self.path)) def _initGpio(self): """Write to the gpio export to make the gpio available in sysfs""" with open(GPIO_EXPORT, 'w') as fd: fd.write(str(self.gpio)) fd.close() return _EXIT_SUCCESS return _EXIT_FAILURE def _freeGpio(self): """Write to the gpio unexport to release the gpio sysfs instance""" with open(GPIO_UNEXPORT, 'w') as fd: fd.write(str(self.gpio)) fd.close() return _EXIT_SUCCESS return _EXIT_FAILURE # value functions def getValue(self): """Read current GPIO value""" # generate the gpio sysfs instance status = self._initGpio() if status == _EXIT_SUCCESS: gpioFile = self.path + "/" + GPIO_VALUE_FILE value = 0 with open(gpioFile, 'r') as fd: value = fd.read() fd.close() # release the gpio sysfs instance status = self._freeGpio() return value return _EXIT_FAILURE def setValue(self, value): """Set the desired GPIO value""" ret = _EXIT_FAILURE # generate the gpio sysfs instance status = self._initGpio() if status == _EXIT_SUCCESS: gpioFile = self.path + "/" + GPIO_VALUE_FILE with open(gpioFile, 'w') as fd: fd.write(str(value)) fd.close() ret = _EXIT_SUCCESS # release the gpio sysfs instance status = self._freeGpio() return ret return _EXIT_FAILURE # direction functions def getDirection(self): """Read current GPIO direction""" # generate the gpio sysfs instance status = self._initGpio() if status == _EXIT_SUCCESS: gpioFile = self.path + "/" + GPIO_DIRECTION_FILE direction = _EXIT_FAILURE # read from the direction file with open(gpioFile, 'r') as fd: direction = fd.read() fd.close() # release the gpio sysfs instance status = self._freeGpio() return direction return _EXIT_FAILURE def _setDirection(self, direction): """Set the desired GPIO direction""" ret = _EXIT_FAILURE # check the direction argument if direction != _GPIO_INPUT_DIRECTION and direction != _GPIO_OUTPUT_DIRECTION and direction != _GPIO_OUTPUT_DIRECTION_LOW and direction != _GPIO_OUTPUT_DIRECTION_HIGH: return _EXIT_FAILURE # generate the gpio sysfs instance status = self._initGpio() if status == _EXIT_SUCCESS: gpioFile = self.path + "/" + GPIO_DIRECTION_FILE # write to the direction file with open(gpioFile, 'w') as fd: fd.write(direction) fd.close() ret = _EXIT_SUCCESS # release the gpio sysfs instance status = self._freeGpio() return ret return _EXIT_FAILURE def setInputDirection(self): ret = self._setDirection(_GPIO_INPUT_DIRECTION) return ret def setOutputDirection(self, initial=-1): argument = _GPIO_OUTPUT_DIRECTION if initial == 0: argument = _GPIO_OUTPUT_DIRECTION_LOW elif initial == 1: argument = _GPIO_OUTPUT_DIRECTION_HIGH ret = self._setDirection(argument) return ret # active-low functions def getActiveLow(self): """Read if current GPIO is active-low""" # generate the gpio sysfs instance status = self._initGpio() if status == _EXIT_SUCCESS: gpioFile = self.path + "/" + GPIO_ACTIVE_LOW_FILE activeLow = _EXIT_FAILURE with open(gpioFile, 'r') as fd: activeLow = fd.read() fd.close() if self.verbose > 0: print ('onionGpio:getActiveLow:: Reading %s file ... Read %s'%(gpioFile, activeLow)) # release the gpio sysfs instance status = self._freeGpio() return activeLow return _EXIT_FAILURE def _setActiveLow(self, activeLow): """Set the desired GPIO direction""" ret = _EXIT_FAILURE # generate the gpio sysfs instance status = self._initGpio() if status == _EXIT_SUCCESS: gpioFile = self.path + "/" + GPIO_ACTIVE_LOW_FILE if activeLow == _GPIO_ACTIVE_HIGH or activeLow == _GPIO_ACTIVE_LOW: with open(gpioFile, 'w') as fd: if self.verbose > 0: print ('onionGpio:_setActiveLow:: Writing %s to %s file'%(str(activeLow), gpioFile)) fd.write(str(activeLow)) fd.close() ret = _EXIT_SUCCESS # release the gpio sysfs instance status = self._freeGpio() # note: active_low setting is reset when the gpio sysfs interface is released! return ret return _EXIT_FAILURE def setActiveHigh(self): ret = self._setActiveLow(_GPIO_ACTIVE_HIGH) return ret def setActiveLow(self): ret = self._setActiveLow(_GPIO_ACTIVE_LOW) return ret Не забудьте сохранить. Теперь вы можете пользоваться библиотекой onionGpio на Python 3.
  5. Выложите, пожалуйста, измененный файл под Python 3 в этой теме, чтобы другие могли его просто скачать, а не переделывать сами вручную.
  6. Я не ошибся в названии модуля. Я делал по инструкции: https://docs.onion.io/omega2-docs/gpio-python-module.html. Только заменил python-light на python3. PS Я уже решил проблему. Взял файл данной библиотеки от python 2.7 и переделал для python 3, как указано здесь: https://community.onion.io/topic/2590/oniongpio-for-python3/4.
  7. Вы уверены, что при импорте указали название модуля правильно? Возможно он называется не "onionGpio", а "pyOnionGpio"? Скорее всего у вас ошибка в названии модуля при вызове его в Python 3.
  8. Всем привет! Мне понадобилось поработать с контактами GPIO на Omega-2+. Программирую на Python3. Установил модуль: root@Omega-D90D:~# opkg install python3 pyOnionGpio Package python3 (3.6.0-2) installed in root is up to date. Installing pyOnionGpio (0.2-1) to root... Downloading http://repo.onion.io/omega2/packages/onion/pyOnionGpio_0.2-1_mipsel_24kc.ipk Installing python-base (2.7.14-5) to root... Downloading http://downloads.lede-project.org/releases/17.01-SNAPSHOT/packages/mipsel_24kc/packages/python-base_2.7.14-5_mipsel_24kc.ipk Configuring python-base. Configuring pyOnionGpio. Импортировал модуль: import onionGpio Но при запуске программы через Python3 возникает ошибка: ModuleNotFoundError: No module named 'onionGpio' Подскажите, это я где-то косячу, или проблема в другом?
  9. Если бутлоадер жив, то и доставать не требуется. Убить его можно по неосторожности, но тогда можно сдуть крышку (на первых омегах и крышки то небыло), клипсой зацепиться за флеш и считать. Я на skw92 модулях так и делал
  10. Ясно, вы работаете над коммерческим проектом. Я рекомендую вам использовать отдельный раздел, тогда ОС, действительно останется жива после "затирания до дыр" и хоть часть данных можно будет вынуть при работающей на Омеге ОС. При неработающей ОС это сделать намного сложнее, поскольку жесткий диск, как из компьютера не достанешь Ну и соответственно в зависимости от того в чем вы собираетесь хранить данные вы можете регулировать длительность жизни вашего устройства.
  11. Вопрос не чем пользоваться (базами, файлами и и.п.), а на каком разделе устройства, имеет ли смысл выносить данные на отдельный раздел или нет? Установка дополнительного внешнего накопителя sd-карта usb-флеш, существенно увеличивают стоимость изделия, что не приемлемо. При наличии доступа в сеть, данные и так синхронизируются, но есть обязательное требование - хранить данные N-дней
  12. Существует бесплатная База Данных PostgreSQL для различных ОС, включая Windows и Open WRT. Она конечно не имеет всех возможностей в Open WRT, но ее вполне можно использовать для хранения данных. Ее можно установить на флешку и тогда не придется обращаться к конкретным кластерам и секторам накопителя. Это позволит продлить жизнь флешке (SD карте, если у вас Omega 2+) даже проведением элементарной дефрагментацией, хотя и без нее флешка проживет дольше чем если обращаться к секторам памяти и кластерам напрямую. И, для обеспечения сохранности данных (в случае если флешка все-таки сдохнет) можно раз в определенный период синхронизировать Базу Данных с Базой Данных, например на вашем домашнем компьютере.
  13. Собственно вопрос, где хранить данные которые меняются? Для хранения статических конфигурационных параметров, которые меняются только в процессе настройки, оверлей самое подходящее место, но в процессе эксплуатации раз в сутки необходимо сохранять некие данные. Поскольку ресурс spi flash по количеству циклов записи ограничен, решил вынести хранение этих данных на отдельном разделе. Если отдельный раздел из за постоянных записей (в течении N-лет) будет "затерт до дыр" то раздел с firmware по прежнему останется живым. Вот и думаю стоит оно того или нет. Может оставить всё на оверлее? Хочу услышать мнение.
  14. Идея не плохая, да и с программой в принципе заморачиваться не придётся т.к. всё написано в документации к ADC Expansion. Попробую закупить пару микросхем.
  15. На ADC Expansion стоит ADS1115, как и на ардуиновском модуле. Может попробовать с ним?
  16. Действительно, почему-то картинка не загружается. Я прикрепил её к этому сообщению. Я не провит питона. Насколько я понял, сначала надо указать регистры [55H] Затем прочитать память [AAH] И наконец отправить команду на преобразование [3CH] Я сам не очень пойму, какие команды должен вводить. Про них написано в даташите стр. 6-10, но я всё равно не могу разобраться. Ссылка на даташит Там приводится вот эта команда: (TA1=(T7:T0), TA2=(T15:T8)) Но я не понимаю, что в ней и для чего.
  17. Здравствуйте. Не могу открыть вашу схему. В смысле картинка не прогружается. Вы хотите использовать скрипты? Не желаете питоном воспользоваться для решения этой задачи? И какую конкретно команду вам нужно ввести?
  18. Всем привет. Я хочу подключить к моей Omega-2+ аналогово цифровой преобразователь DS2450 по шине 1-wire. Подключаю по этой схеме: В качестве аналогового датчика использую фоторезистор. Первое, что я делаю, это регистрирую мастер 1-wire: insmod w1-gpio - Custom bus0 = 0,19,0 Затем я проверяю соединение: cat /sys/devices/w1_bus_master1/w1_master_slave_counт 1 Вывод адресов подключенных устройств: cat / sys / devices / w1_bus_master1 / w1_master_slaves 20-0000000a2208 Прежде чем читать данные из этого АЦП, я должен сначала настроить каналы. Для этого мне нужно ввести определенную команду, но я не знаю, как это сделать. Я писал на официальный форум omega, а также в техподдержку Onion и Maxim Integrated, но нигде мне не помогли. Последняя надежда на ваш форум. PS. Я знаю, что Onion выпустила модули АЦП к Omega-2, но DS2450 у меня есть в наличии, да и сами модули не дешёвые. Если уж и здесь вы не знаете, как мне помочь, то хотябы подскажите способы подключения других микросхем АЦП. Спасибо. cat / sys / devices / w1_bus_master1 / w1_master_slaves 20-0000000a2208
  19. надо было i2c.node и i2c-bus .js поместить в текущий каталог с пакетом i2c (без bus) не понял как работать с несколькими устройствами в режиме диалога и с конкурентным доступом.
  20. Примеры i2c-bus не работают ни один
  21. обновил прошивку до 0.2 sysupgrage -l пока все работает как должно
  22. Проверка
  23. online gambling online casino games online casino bonus casino online slots | empire city online casino foxwoods online casino
  24. online casino bonus online casino bonus casino bonus slots for real money | online casino games play online casino
  25. best online casino betfair online casino real casino online casino slots | online casino sites best online casino
  26. online casino slots parx online casino casino bonus | real casino
  1. Загрузить больше активности