Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 2, 2021 13:48:58

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9879
Репутация: +  853  -
Профиль   Отправить e-mail  

Запись в БД с условием

Rodegast
Ты каждый из них будешь в функцию оборачивать что бы название поменять?
Это не смена названия на более понятное, это поднятие на более высокий уровень абстракции того действия, которое производится. Это как в математике есть абстрактные понятия +бесконечность и -бесконечность. Мы не знаем, что это, но мы можем с этим работать. И тут мы не знаем, как эти данные, полученные от устройства, сегодня или гипотетически завтра будут проверяться, но мы уже работаем с результатом этой проверки, как бы они ни проверялись, и работаем вполне успешно.

Rodegast
Видел сколько там методов?
Я тебе скажу больше: когда ты умеешь это делать, у тебя это делается в голове - то, чего у него даже близко в коде нет. Поэтому я просто разработал в голове ту программу, которая ему нужна, от начала до конца, потому что умею их разрабатывать. У меня есть этот набор навыков, и они постоянно срабатывают в воображении. Соответственно, я просто сверху вниз эту программу разработал и посмотрел, насколько его эта написанная программа близка к тому, что должно быть. Поэтому я знаю, какие методы должны быть у него в программе. И поэтому я знаю, что эта проверка данных должна быть вынесена, так как она отчётливо проводится как шаг алгоритма с предусловием и постусловием в той программе, которая у меня уже полностью написана в уме.

Ну и, написав в уме эту программу его, я свои мозги потренировал ещё раз. Мне нужно уметь, поэтому я всё время тренируюсь. И книжки читаю, и код пишу, и программы делаю. Потому что если этого всего не делать, то ты просто ничего не будешь уметь и будешь просто сидеть и всем рассказывать, какой ты замечательный - делать какой-то YouTube-канал, на нём рассказывать, какой язык ты считаешь лучше и прочей муйнёй заниматься. Заниматься чем угодно, только не программированием.



Отредактировано py.user.next (Апрель 2, 2021 13:51:40)

Офлайн

#2 Апрель 2, 2021 13:59:45

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2756
Репутация: +  184  -
Профиль   Отправить e-mail  

Запись в БД с условием

> это поднятие на более высокий уровень абстракции того действия

Вот этого я как раз и не увидел. У тебя как был вызов одного метода так он и остался.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#3 Апрель 2, 2021 23:00:31

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9879
Репутация: +  853  -
Профиль   Отправить e-mail  

Запись в БД с условием

Rodegast
Вот этого я как раз и не увидел. У тебя как был вызов одного метода так он и остался.
Вот об этом я тебе и говорю. Ты не знаешь даже, что такое уровни абстракции. Ты думаешь, что ты понимаешь ООП, но ты не понимаешь его. Поэтому-то ты и написать ничего не можешь. Не потому, что это сложно, а потому, что ты не умеешь это. Ты думал, что синтаксис языка выучишь и так ООП поймёшь? Ну, поздравляю, синтаксис языка, слово class и даже запуск этого всего никак тебя к ООП не приближает. Ты как не умел ничего строить, так и не умеешь. Уровни абстракции есть не только в ООП. И вообще их не в программировании придумали, они были ещё до него.



Офлайн

#4 Апрель 3, 2021 20:45:43

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2756
Репутация: +  184  -
Профиль   Отправить e-mail  

Запись в БД с условием

> Ты не знаешь даже, что такое уровни абстракции.

Ты не поверишь, но я в курсе не только того что такое абстракция, но даже прости Господи манадами пользуюсь. Так что вангуешь ты весьма плохо. Ну и да твоя функция не только написана не аккуратно, но и бессмысленна с точки зрения абстракций, во всяком случае в таком виде.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#5 Апрель 4, 2021 22:19:16

staxbel
Зарегистрирован: 2021-03-13
Сообщения: 48
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись в БД с условием

Всем доброго вечера, был в отъезде, спасибо за ответы, но я так и не понял как лучше сделать?
Мусор там бывает только видов: 1q80, #1180, 11\xf80.

 out_srt = out.decode('сюда_вписать_кодировку_в_которой_вы_получаете_данные') # тут вы можете поймать исключение если у вас там будет таки реальный "мусор", поэтому лучше вставить его в блок try-excrpt и отслеживать DecodeError
if out_str.isdigit():
    #тут пишем в БД
else:
   #тут не пишем в БД
Не могу понять, как посмотреть кодировку в которой приходят данные. Если ставлю utf-8, получаю ошибку
 serial.serialutil.SerialException: could not open port 'COM3': PermissionError(13, 'Отказано в доступе.', None, 5)

Тут родилась другая идея, может ее проще реализовать? При получении данных, сравниваем с предыдущим значением, если значения совпадают - записываем в БД если нет - отправляем запрос еще раз.

p.s. Извините может за глупые вопросы, но я только учусь

Отредактировано staxbel (Апрель 4, 2021 22:31:27)

Офлайн

#6 Апрель 4, 2021 22:42:49

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2756
Репутация: +  184  -
Профиль   Отправить e-mail  

Запись в БД с условием

> Мусор там бывает только видов: 1q80, #1180, 11\xf80.

Откуда он берётся? Приведи пример сообщения которое приходит.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#7 Апрель 4, 2021 22:52:55

staxbel
Зарегистрирован: 2021-03-13
Сообщения: 48
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись в БД с условием

b' 1180'
Данные изменены 2021-04-04 22:51:02.401196
b' 118<'
Данные изменены 2021-04-04 22:51:03.775275
b' 118\x98'
Устройство работает через преобразователь AC4 (rs485-usb), когда прибор один подключен, все ок, но когда параллельно их несколько, получается такой мусор.

Офлайн

#8 Апрель 5, 2021 00:13:28

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2756
Репутация: +  184  -
Профиль   Отправить e-mail  

Запись в БД с условием

> когда прибор один подключен, все ок, но когда параллельно их несколько, получается такой мусор.

Если это из за помех, наводок и прочего, то можно этот “мусор” отфильтровывать.

 >>> int(bytearray( x for x in b' 118\x98' if 47 < x < 58 ))
118



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#9 Апрель 5, 2021 00:19:47

staxbel
Зарегистрирован: 2021-03-13
Сообщения: 48
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись в БД с условием

Rodegast
> когда прибор один подключен, все ок, но когда параллельно их несколько, получается такой мусор.Если это из за помех, наводок и прочего, то можно этот “мусор” отфильтровывать.
1180 не постоянное значение, оно меняется.

Офлайн

#10 Апрель 5, 2021 00:46:33

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2756
Репутация: +  184  -
Профиль   Отправить e-mail  

Запись в БД с условием

> 1180

В таком случае ты не можешь гарантировать что с устройства вообще приходит правильное значение. По какому протоколу оно подключено? Контроль чётности используется?



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version