Эти сегменты никогда не возвращаются к LOW
.
Вам понадобится что-то вроде:
int fontArray[][7] = {
// pins: {13, 12, 11, 10, 9, 8, 7}, // 8
{1, 1, 1, 1, 1, 1, 0}, // 0
{0, 1, 1, 0, 0, 0, 0}, // 1
// ...
};
И затем используйте:
void sevenSegment(int a) {
for (int i = 0; i < 7; i++) {
digitalWrite(13 - i, fontArray[a][i]);
}
}
В случае, если пинн-номера не являются смежными, можно использовать второй массив следующим образом: [ 117]
int pinArray[] = {13, 12, 11, 10, 9, 8, 7};
void sevenSegment(int a) {
for (int i = 0; i < 7; i++) {
digitalWrite(pinArray[i], fontArray[a][i]);
}
}
Проблема действительно в PyDev, а не в вашем коде. То, что вы сделали, абсолютно правильно, но IDE всегда будут испытывать трудности с разрешением атрибутов на динамическом языке, таком как Python. В случае исключения DoesNotExist оно добавляется через __ метакласс __
, а не через обычное наследование объектов, поэтому PyDev вряд ли сможет его найти. Однако это определенно должно сработать.
В Pydev есть обходной путь для таких случаев (когда члены определены во время выполнения). Просто добавьте # @ UndefinedVariable в конец строки, которая вызывает предупреждение (или ctrl + 1 на клавиатуре, когда курсор находится на «DoesNotExist»), и он не будет жаловаться.
Eclipse жалуется, что User.DoesNotExist не определен.
Что вы имеете в виду? У вас есть ошибка Python и трассировка стека? Этот код должен работать (как в документации ). Похоже на проблему с затмением. Просто запустите сервер разработки и посмотрите, работает он или нет:
manage.py runserver
Может ли Eclipse разрешать атрибуты, созданные во время выполнения, через __ метакласс __
es?
Обратите внимание, что вы никогда не определяете DoesNotExist
ни для одной из ваших моделей, и это также не определено в django.db.models.base.Model
.
Я только что обнаружил, что Pydev действительно имеет хороший способ решения этой проблемы.
Перейдите в Окно > Настройки , затем Pydev > Редактор > Анализ кода .
Щелкните вкладку Не определено и добавьте «DoesNotExist» в текстовое поле с названием . Считайте следующие имена глобальными .
Можно решить эту проблему и другим способом: просто перейдите к классу User и добавьте @DynamicAttrs в docstring.
Это сообщит PyDev, что атрибуты класса добавляются динамически, и заставит его больше не жаловаться на "проблемы" вроде DoesNotExist.
У меня такая же проблема на Ubuntu в VirtualEnv, чтобы решить проблему я использовал эти сниппеты.
В parituclar он сделал пользовательские поля User Fields с кодом:
class UserField(forms.CharField):
def clean(self, value):
super(UserField, self).clean(value)
try:
User.objects.get(username=value)
raise forms.ValidationError("Someone is already using this username. Please pick an other.")
except User.DoesNotExist:
return value