Автор Тема: Околокрафтовский флуд  (Прочитано 2829533 раз)

Валентин Гаврилов и 4 Гостей просматривают эту тему.

Оффлайн Alex_SG

  • Живу на форуме
  • *******
  • Сообщений: 7526
  • хейтер и пессимист :crazy:
Re: Околокрафтовский флуд
« Ответ #26055 : Сентября 23, 2021, 13:47:32 »
Если задача решена, условный прибор работает и выполняет поставленные ему задачи, значит все нормально.
Доводилось делать реверсинжиниринг ОЧЕНЬ дорогого оборудования (в частности был плотномер асфальта PQI) за стопицот мильонов.
Ребята не парясь сделали его на том, что в конце 90-х можно было назвать ардуино - набор готовых модулей индикатора, клавиатуры, контроллера (вроде PIC какой то), источники питания. Своего была там у них только небольшая аналоговая платка измерительной части. АЦП уже в "ардуине".
И это дело до сих пор есть на рынке и в рублях некисло так стоит.

Оффлайн Bulldozerrr

  • Эксперт
  • *****
  • Сообщений: 2935
Re: Околокрафтовский флуд
« Ответ #26056 : Сентября 23, 2021, 14:49:53 »
На допотопном VB 6.0 ;)
Он до сих пор актуален несмотря на древность. Работает с GDI, GDI+, WIA, со всеми функциями Win32API и даже могёт подцепить несколько классов Net.
Например, для поржать, программа использующая библиотеки GDI, GDI+ и WIA Automation. Экзешник большой из-за того, что в нём картинка.


Вспомнить штоле C++ быдлер.
Хотя, это крайне неудачная мысль.
Кроссплатформенности никакой.

Хотя эклипс с крестовым иде тоже не шибко хорошо.
Вся его хваленая кроссплатформенность объясняется просто.
Он написан на яве. И работает через jvm. То есть в критичных к быстродействию задачах сольется.
По ходу тонкая работа с железом в критических по скорости задачах и кроссплатформенный код это несовместимые понятия.
Придется пилить и компилировать под конкретные операционки.

Хотя в целом через ctypes на питоне можно с dllками драйверов напрямую работать.
Были бы только описания функций этих dll.
Подозреваю, что и с портами можно на питоне мощно работать.
Но со звуком у меня в питоне пока не вышло.
Попробовал сваять генератор.
Если сэмплы конечной длительности еще генерируются нормально, то цикл бесконечный тормозится на пересчете каждого фрейма.
Сделал модифицированный алгоритм с подгоном частоты к ближайшему значению соотносящемуся с частотой дискретизации в целых числах. То есть один сэмпл из целого количества периодов гоняется в цикле. Естественно размер сэмпла итерациями подгоняется по количеству периодов до уменьшения ошибки частоты в требуемых пределах. Я ставил 0.1%.
Слышно моменты досылания нового сэмла в аудиопоток.
Пробовал и с wdm, и с асио и с васапи. Один хрен рвет аудиопоток.
Как решить, пока не знаю.
« Последнее редактирование: Сентября 23, 2021, 15:15:12 от Bulldozerrr »

Оффлайн Aleksander8

  • Опытный
  • ****
  • Сообщений: 884
    • Ламповая лаборатория
Re: Околокрафтовский флуд
« Ответ #26057 : Сентября 23, 2021, 15:31:21 »
Пробовал и с wdm, и с асио и с васапи. Один хрен рвет аудиопоток.
Как решить, пока не знаю.
В приведённой программе используется DirectX 8 for Visual Basic без регистрации. Формируется буфер и прокручивается бесконечно.
VB 6.0 не может работать с DirectX 9 и выше.
 Начиная с DirectX 9 используется управляемый код. Я не знаю что это. Но современные ЯП должны же их как-то использовать.
 С портами хорошо работается на С#. Должно легко и просто работать на VB.Net.

Оффлайн iZEP

  • Живу на форуме
  • *******
  • Сообщений: 21049
  • .._ .__. .. __.. _.. .._
Re: Околокрафтовский флуд
« Ответ #26058 : Сентября 23, 2021, 15:34:39 »
Цитировать
С портами хорошо работается на С#
т.е. можно написать прямой драйвер усб карты, имея таблицу команд чипа (си-медия)?

Оффлайн Bulldozerrr

  • Эксперт
  • *****
  • Сообщений: 2935
Re: Околокрафтовский флуд
« Ответ #26059 : Сентября 23, 2021, 15:38:50 »
т.е. можно написать прямой драйвер усб карты, имея таблицу команд чипа (си-медия)?
Теоретически можно.
Но я не совсем понимаю цели.

... и добавил:

В приведённой программе используется DirectX 8 for Visual Basic без регистрации. Формируется буфер и прокручивается бесконечно.
VB 6.0 не может работать с DirectX 9 и выше.
 Начиная с DirectX 9 используется управляемый код. Я не знаю что это. Но современные ЯП должны же их как-то использовать.
 С портами хорошо работается на С#. Должно легко и просто работать на VB.Net.
Кстати, попробовал изменить алгоритм. Беру сейчас для первой итерации начальное число периодов буфера равное округленному значению частоты сигнала поделенной на 10. То есть продолжительность буфера у нас не менее 100 мс. Естественно речь идет о полосе 20-20000Гц.
Потом алгоритм считает продолжительность буфера. По продолжительности буфера считается округленное количество тактов дискретизации в буфере. Далее по количеству тактов определяется фактическая продолжительность буфера, по которой вычисляется скорректированная частота сигнала. Далее считаем ошибку частоты и, если ошибка не укладывается в заданное значение увеличиваем количество периодов на 1 и повторяем цикл. И так, пока фактическая частота сигнала в буфере не будет отличаться от заданной на заданное значение погрешности.
Далее зациклил проигрывание буфера. И выпадения сигналов на слух прекратились.
Получается при малой продолжительности буфера во времени аудиопоток воспроизводится быстрее, чем выполняется команда зацикливания буфера.
То есть в принципе при использовании продолжительности буфера от 100мс питон успевает за время проигрывания предыдущего буфера передать в аудиопоток следующий.

ЗЫ. Директ икс для звука? В наше время?

Тот же PyAudio для питона спокойно тащит MME, WDM, ASIO, WASAPI, DIRECTSOUND, CoreAudio, ALSA. И в этом списке стопроцентно указано не все.
Ему вообще наплевать на host API. Просто работает по системному индексу звукового устройства. То есть работает с драйверами.
При этом имеет механизм очень подробного получения инфы о характеристиках звуковых девайсов.
Есть, правда, проблема. Не умеет из коробки разделять каналы при записи воспроизведении. По крайней мере из документации такой возможности в явном виде не наблюдается.
То есть если система видит, что устройство поддерживает 2 входных канала, то выбрать произвольно любой канал для записи не выйдет.
Как и не выйдет прямо из монофонического трека вывести данные в стереопоток. Только разве что сам драйвер аудиоустройства раскидает моно по стереоканалам, если умеет.
О том, чтобы взять на запись левый канал и записать в правый вообще речи не идет.
В первом случае придется распарсивать данные из потока и разбирать поканально сторонним алгоритмом.
Во втором удваивать размер буфера данных и дублировать данные.
В третьем последовательно менять данные местами.
« Последнее редактирование: Сентября 23, 2021, 19:15:51 от Bulldozerrr »

Оффлайн Spero_In_Inteligo

  • Живу на форуме
  • *******
  • Сообщений: 8926
  • Код пишу, на досуге на проволоку нажимаю.
Re: Околокрафтовский флуд
« Ответ #26060 : Сентября 23, 2021, 19:08:46 »
а кто-то паяет ПОС`ом?) Какой производитель самый толковый?
И, я так понимаю, что с канифолью, при использовании стороннего флюса уже не стоит брать?

Оффлайн Medvedeff8

  • Ветеран форума
  • ******
  • Сообщений: 3027
  • Слабоумие и отвага!
Re: Околокрафтовский флуд
« Ответ #26061 : Сентября 23, 2021, 19:43:50 »
ПОСом все и паяют. Что касаемо флюсов и канифоли - того флюса, что присутствует в припое, в большинстве случаев хватает, чтобы не использовать сторонние флюсы.

Оффлайн Aleksander8

  • Опытный
  • ****
  • Сообщений: 884
    • Ламповая лаборатория
Re: Околокрафтовский флуд
« Ответ #26062 : Сентября 23, 2021, 19:54:26 »
Кстати, попробовал изменить алгоритм. ..... И выпадения сигналов на слух прекратились.
Вот и хорошо.
ЗЫ. Директ икс для звука? В наше время?
"За неимением гербовой пишем на простой" :)
 Когда старший внук сообщил, что идёт учиться на программиста, я сел за изучение С++. Потратил кучу времени. Внуку отсоветовали идти на прикладное программирование и он пошёл на web. Пришлось бросить.
 VB 6.0 давно не поддерживается. Он остановился на DirectX 8. VB.Net с этого года перестал развиваться, но пока будет поддерживаться.
 Поздновато мне метаться между ЯП. Для моих несложных задач хватает и старья.




Оффлайн Spero_In_Inteligo

  • Живу на форуме
  • *******
  • Сообщений: 8926
  • Код пишу, на досуге на проволоку нажимаю.
Re: Околокрафтовский флуд
« Ответ #26063 : Сентября 23, 2021, 19:56:24 »
ПОСом все и паяют.

думаю что 99%) В общем попадался мне как-то паленый ПОС, на любой температуре - отвратительная консистенция, не растекался.
Нормальный есть, но подумываю пополнить запасы, поэтому и спрашиваю про производителя.

Что касаемо флюсов и канифоли - того флюса, что присутствует в припое, в большинстве случаев хватает, чтобы не использовать сторонние флюсы.

А я тут выше спрашивал за флюсы. Канифоль так-то покрывает все задачи, но иногда попадается разъем, который ну никак не хочет паяться.

... и добавил:

Поздновато мне метаться между ЯП. Для моих несложных задач хватает и старья.

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

Оффлайн Geezer

  • Живу на форуме
  • *******
  • Сообщений: 12817
  • Atypique
Re: Околокрафтовский флуд
« Ответ #26064 : Сентября 23, 2021, 20:05:30 »
Без проблем использую ASAHI ПОС-63 0,8 мм :)

Оффлайн Bulldozerrr

  • Эксперт
  • *****
  • Сообщений: 2935
Re: Околокрафтовский флуд
« Ответ #26065 : Сентября 23, 2021, 22:45:15 »
Вот и хорошо."За неимением гербовой пишем на простой" :)
 Когда старший внук сообщил, что идёт учиться на программиста, я сел за изучение С++. Потратил кучу времени. Внуку отсоветовали идти на прикладное программирование и он пошёл на web. Пришлось бросить.
 VB 6.0 давно не поддерживается. Он остановился на DirectX 8. VB.Net с этого года перестал развиваться, но пока будет поддерживаться.
 Поздновато мне метаться между ЯП. Для моих несложных задач хватает и старья.





Кстати web приложения на питоне под django тоже прикольно собирать.
Там очень интересная реализация модели.
Я этим планирую заняться.

Оффлайн Aleksander8

  • Опытный
  • ****
  • Сообщений: 884
    • Ламповая лаборатория
Re: Околокрафтовский флуд
« Ответ #26066 : Сентября 23, 2021, 23:04:22 »
Я этим планирую заняться.
Желаю успехов!
Интересно что-либо изучать, когда есть конкретная задача.

Оффлайн Bulldozerrr

  • Эксперт
  • *****
  • Сообщений: 2935
Re: Околокрафтовский флуд
« Ответ #26067 : Сентября 24, 2021, 02:06:24 »
Заметил интересный нюанс.
Пытаю свой фокусрайт.
Если на выход кидать моно сигнал по ASIO, то он тупо маршрутизируется в один - левый канал.
А вот дефолтовый виндовый MME (с которым оперирует системный микшер винды) автоматом маршрутизирует моно в оба выходных канала.

Оффлайн fed13fed

  • Эксперт
  • *****
  • Сообщений: 1891
Re: Околокрафтовский флуд
« Ответ #26068 : Сентября 24, 2021, 02:28:39 »
Без проблем использую ASAHI ПОС-63 0,8 мм :)

Я второй раз беру Felder, второй раз взял олово-свинец-медь, 2.5% флюс, паяет превосходно, растекается, смачивает, ложится ровно и красиво, в общем, никаких с ним проблем не испытывал.

Оффлайн Geezer

  • Живу на форуме
  • *******
  • Сообщений: 12817
  • Atypique
Re: Околокрафтовский флуд
« Ответ #26069 : Сентября 24, 2021, 07:12:24 »
Цитировать
иногда попадается разъем, который ну никак не хочет паяться
Решение здесь простое: торцом лезвия офисного ножичка безжалостно сдираем блестящее гальваническое покрытие и основной металл под ним прекрасно залуживается с обычным советским флюсом ФКСп ;)