Нужны критика и нравоучения. Формирование импульсов

Делись идеей, получай поддержку и критику!

Нужны критика и нравоучения. Формирование импульсов

Postby K0sinus on 03 Jan 2018, 19:19

Приветствую! Изучаю среду сам, по мере выполнения проекта на работе. За период создания приложения походил по граблям, несколько раз всё переписывал и "отшкуривал", но нет предела совершенству, поэтому прошу опытных коллег поделиться мастерством и указать на места, которые можно доделать или сделать по-другому. Что можно сделать оптимальнее в плане ресурсов, что можно сделать более профессионально, чтобы код не смотрелся дилетантским. Буду рад любым замечаниям.

Сам проект довольно большой, поэтому начну с его части - формирование затухающих импульсов data_input. Все subVI прикреплять не буду, только те, которые реализуют сам алгоритм.

Коротко о программе: есть два режима: авто и ручной (кнопка Корректировка таблицы их переключает - в авто режиме таблицу редактировать нельзя). В авто-режиме импульсы строятся по следующим параметрам: Амплитуда первого импульса, режим затухания (линейный/экспоненциальный), декремент затухания (или коэф-т убывания при линейном), время фронтов (t1=t3) и длительность импульса t2. Также программно заданы амплитуда минимального импульса и времена пауз t4 (зависят от амплитуды). Программа рассчитывает количество импульсов и заносит в таблицу все параметры каждого импульса. При выделении строк в таблице также выделяются импульсы на графике. Кроме импульсов также рисуется огибающая.
В режиме корректировки таблицы можно каждый импульс задавать отдельно, редактируя нужную строку. Есть возможность сохранения или загрузки таблицы.
Да, есть ещё режим отр. импульсов (Mode) - если он true, то каждый отрицательный импульс равен предыдущему положительному, а не уменьшается.


Я пытался всё комментировать, но иногда сам путаюсь в своём де коде - так что задавайте вопросы по программе, подробно распишу.

Сама программа работает как надо (за исключением нескольких моментов, о которых я знаю), но вот что касается красоты кода - мне не с чем сравнить, только недавно открыл для себя конечные автоматы, может, я ещё чего полезного не знаю...
Attachments
build_pulses.vi
(48.69 KiB) Downloaded 13 times
data_input.vi
(387.06 KiB) Downloaded 14 times
K0sinus
beginner
beginner
 
Posts: 18
Joined: 22 Nov 2017, 10:29
LabVIEW Version: 2014
Karma: 0

Re: Нужны критика и нравоучения. Формирование импульсов

Postby K0sinus on 10 Jan 2018, 08:55

Неужели все идеально?
K0sinus
beginner
beginner
 
Posts: 18
Joined: 22 Nov 2017, 10:29
LabVIEW Version: 2014
Karma: 0

Re: Нужны критика и нравоучения. Формирование импульсов

Postby Artem.spb on 10 Jan 2018, 09:48

на основе своего молчания предположу, что дело не в идеальности, а в отсутствии конкретного вопроса.
Если всё работает, то смысл «ремонтировать»?.
Artem.spb
expert
expert
 
Posts: 1241
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 218
CLD hardware I/O VIP freelance

Re: Нужны критика и нравоучения. Формирование импульсов

Postby K0sinus on 10 Jan 2018, 10:20

Дело не в ремонте, а в обучении. Хочется быть "выше, быстрее, сильнее". Я не жду глубокого разбора, но наверняка есть слабые моменты, видные невооружённым глазом. Может, я где-то чешу левое ухо правой рукой, а можно проще, например, ногой ;) Хочу обогатить свой арсенал. Я так понял, эта тема нужна для этого...
K0sinus
beginner
beginner
 
Posts: 18
Joined: 22 Nov 2017, 10:29
LabVIEW Version: 2014
Karma: 0

Re: Нужны критика и нравоучения. Формирование импульсов

Postby taras_33 on 10 Jan 2018, 20:06

Что бы найти слабые моменты, нужно понимать как работает прогамма. А разбираться в чужом коде, особенно если он кусками и запустить на выполнение невозможно, вряд ли кто то станет.
У каждого свой стиль программирования, мне например нравиться модульность. Это когда вся программа состоит из маленьких кирпичиков - SubVI, потому как модифицировать или что то добавить в отдельно взятый "кирпичик" гораздо проще, чем разбираться в паутине одного VI. Каждый SubVI дожен выполнять "вот это" и ещё.... так вот никаких "ещё" только "вот это".

Конкретно о программе. Я бы обратил внимание на Producer-Consumer pattern. Т.е. разделил бы UI с рабочим кодом. Event structure должна обслуживать кнопочки и реагировать на хотелки юзера немедленно, а не вычислять чего то там... Но опять же каждому свое....
То, что мы знаем-------ограничено, а что не знаем------бесконечно!
User avatar
taras_33
advanced
advanced
 
Posts: 157
Joined: 31 Oct 2009, 18:25
Location: Minsk -> Miami
Medals: 1
Activity (1)
LabVIEW Version: 2016
Karma: 88
CLD

Re: Нужны критика и нравоучения. Формирование импульсов

Postby K0sinus on 11 Jan 2018, 08:37

Спасибо большое, буду изучать структуру produser-consumer. Про модульность тоже учту. Выложу потом тут запускабельную модель, надеюсь, количество откликов увеличится.
K0sinus
beginner
beginner
 
Posts: 18
Joined: 22 Nov 2017, 10:29
LabVIEW Version: 2014
Karma: 0


Return to Проекты

Who is online

Users browsing this forum: No registered users and 2 guests

cron