Самопальный интерпретатор

Mach, популярные и не очень CAD, CAM. Обсуждение и разработка программ для управления станками.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Самопальный интерпретатор

Сообщение Serg »

AndyBig писал(а):Если ЦПУ перестанет реагировать на прерыывания, то никакой буфер уже не спасет :)
Ну почему-же? Останется DMA-контроллер и UART, процессор им нужен только для настройки их взаимодействия.
AndyBig писал(а):Это особенности реализации драйверов :)
Драйвер тут точно не при чём. Причём архитектура и реализация SATA-контроллера. Хотя надо отдать должное - в современных чипсетах стало заметно лучше, но принципиально проблема не решаема на x86.
AndyBig писал(а):Кроме того COM-порты с их аппаратным контролем потока начинают постепенно уходить в прошлое.
Вот как-то не заметил... Сначала порты делали на простеньком 8250, потом стали применять 16450 у которого внутри появился программируемый генератор (скорость передачи), потом все стали ставить 16550, в котором появились аппаратные буфера приёма и передачи (на 14 байт) и полноценная схема аппаратного контроля потока. Потом пошли 16550N, которые научились работать с контроллером DMA. Сейчас все ставят 16750 (и аналоги) которые аппаратно умеют выполнять все функции RS232/422/485, имеют расширяемые буфера и ещё много всяких полезных фишек.
AndyBig писал(а):Что за косяки? :) А то может это косяки организации сети, а не ОС :)
Если мне не изменяет мой склероз, то венда, если у неё на сетевом интерфейсе несколько IP-адресов, до сих пор не научилась отправлять пакеты не с первого адреса...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: Самопальный интерпретатор

Сообщение Сергей Саныч »

UAVpilot писал(а):Сейчас все ставят 16750 (и аналоги) которые аппаратно умеют выполнять все функции RS232/422/485, имеют расширяемые буфера и ещё много всяких полезных фишек.
Они-то умеют. А драйвер виндовский об этом догадывается?
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Самопальный интерпретатор

Сообщение Serg »

Сергей Саныч писал(а):Они-то умеют. А драйвер виндовский об этом догадывается?
хз, я не силён в программировании под винду. По логике должен-бы поддерживать - железки для x86 в первую очередь в расчёте на винду делают.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
vovan
Кандидат
Сообщения: 49
Зарегистрирован: 06 апр 2015, 15:01
Репутация: -42
Настоящее имя: Valdemar Zabanist

Re: Самопальный интерпретатор

Сообщение vovan »

Сергей Саныч писал(а): А драйвер виндовский об этом догадывается?
умеет, просто их надо включить в настройках драйвера.
Аватара пользователя
AndyBig
Мастер
Сообщения: 3971
Зарегистрирован: 07 мар 2014, 04:01
Репутация: 1121
Откуда: юг России
Контактная информация:

Re: Самопальный интерпретатор

Сообщение AndyBig »

UAVpilot писал(а):Останется DMA-контроллер и UART
А толку, если обрабатывать данные уже некому? :)
UAVpilot писал(а):Драйвер тут точно не при чём. Причём архитектура и реализация SATA-контроллера
На IDE такого не было? Что-то у меня какие-то смутные воспоминания имеются о таких случаях, когда SATA еще и не было :)
UAVpilot писал(а):Вот как-то не заметил...
Сколько сейчас есть в продаже ноутов с этим портом? Или десктопных материнок с выведенным в разъемы этим портом? Как, впрочем, и с LPT :)
UAVpilot писал(а):венда, если у неё на сетевом интерфейсе несколько IP-адресов, до сих пор не научилась отправлять пакеты не с первого адреса...
Тогда бы доп. адреса просто не работали бы. Но они же работают? :)
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Самопальный интерпретатор

Сообщение Serg »

AndyBig писал(а):А толку, если обрабатывать данные уже некому? :)
Ну так пока остатки буфера передаются/принимаются ЦПУ можно ведь ресетнуть, восстановить предыдущее состояние и продолжить работу... :)
Или вот представь, засунули всё, что надо передать в память, настроили DMA на передачу и запустили процесс - всё, тут ЦПУ уже больше не нужен. :)
AndyBig писал(а):На IDE такого не было?
Было. Но дело не только в контроллере - в платформе x86 полноценный асинхронный ввод/вывод невозможен.
AndyBig писал(а):Сколько сейчас есть в продаже ноутов с этим портом?
Я ж не зря написал "и аналоги" - полнофункциональные аналоги 16750 сейчас встроены во все чипсеты. :)
AndyBig писал(а):Тогда бы доп. адреса просто не работали бы. Но они же работают? :)
Они нормально и не работают. Например если на сетевом интерфейсе навешаны адреса 1.1.1.1 и 2.2.2.2, то он будет принимать входящие пакеты и dst:1.1.1.1 и с dst:2.2.2.2, но посылать в сеть сможет только пакеты с src:1.1.1.1, при попытке отправить пакет с src:2.2.2.2 в исходящем пакете всё равно будет src:1.1.1.1.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
AndyBig
Мастер
Сообщения: 3971
Зарегистрирован: 07 мар 2014, 04:01
Репутация: 1121
Откуда: юг России
Контактная информация:

Re: Самопальный интерпретатор

Сообщение AndyBig »

UAVpilot писал(а):Ну так пока остатки буфера передаются/принимаются ЦПУ можно ведь ресетнуть, восстановить предыдущее состояние и продолжить работу...
Уже пробовали проделать такое на компе с виндой или линуксами? :))
UAVpilot писал(а):в платформе x86 полноценный асинхронный ввод/вывод невозможен
А в какой возможен? Что-то я на вскидку такой и не припоминаю... Кажется, везде внешняя шина адреса-данных одна и если она кем-то занимается на передачу, то на прием уже никак не может быть использована пока не освободится :) А для неблокировки ее на длительное время есть таймауты. Честно говоря, не знаю внутренности драйверов IDE и SATA в подробностях, но не понимаю почему таймауты там не используются в таких ситуациях, и не вижу принципиальных препятствий использовать их :)
UAVpilot писал(а):полнофункциональные аналоги 16750 сейчас встроены во все чипсеты
Я писал не про чипсеты, а про готовые потребительские устройства :) Порт может даже в системе висеть, вот только в большинстве случаев добраться до него физически вариантов нет :)
UAVpilot писал(а):Например если на сетевом интерфейсе навешаны адреса 1.1.1.1 и 2.2.2.2, то он будет принимать входящие пакеты и dst:1.1.1.1 и с dst:2.2.2.2, но посылать в сеть сможет только пакеты с src:1.1.1.1, при попытке отправить пакет с src:2.2.2.2 в исходящем пакете всё равно будет src:1.1.1.1.
Повторюсь - тогда бы они просто не работали :) К примеру - отправляется пакет с HTTP-запросом с адреса 2.2.2.2, а ответ приходит на адрес 1.1.1.1, где его никто не ждет :) Связи нет, интерфейс не работает :)
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Самопальный интерпретатор

Сообщение selenur »

В моем случае прикол был в том, что нельзя было сделать UDP слушатель с одним и тем-же портом, на каждом из сетевых интерфейсов, в результате чего это усложняло прием данных по UDP от устройств, из разных подсетей. А если делать один слушатель для всех интерфейсов, по данному порту, то там что-то снова создавало проблему приема по UDP.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Самопальный интерпретатор

Сообщение Serg »

AndyBig писал(а):Повторюсь - тогда бы они просто не работали :) К примеру - отправляется пакет с HTTP-запросом с адреса 2.2.2.2, а ответ приходит на адрес 1.1.1.1, где его никто не ждет :) Связи нет, интерфейс не работает :)
Именно так и происходит, если в случае HTTPS сертификат прицеплен ко второму IP - https в этом случае работать не будет. А вот нешифрованные соединения вполне себе будут работать, например пинг вот так работает:

Код: Выделить всё

C:\>ping 172.16.0.99

Обмен пакетами с 172.16.0.99 по с 32 байтами данных:
Ответ от 172.16.0.21: число байт=32 время=1мс TTL=64
Ответ от 172.16.0.21: число байт=32 время=1мс TTL=64
Ответ от 172.16.0.21: число байт=32 время=2мс TTL=64
Ответ от 172.16.0.21: число байт=32 время<1мс TTL=64

Статистика Ping для 172.16.0.99:
    Пакетов: отправлено = 4, получено = 4, потеряно = 0
    (0% потерь)
Приблизительное время приема-передачи в мс:
    Минимальное = 0мсек, Максимальное = 2 мсек, Среднее = 1 мсек

C:\>
Кстати, а не серверная винда при попытке навесить второй IP ругается, что на интерфейсе уже есть IP из этой подсети.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
AndyBig
Мастер
Сообщения: 3971
Зарегистрирован: 07 мар 2014, 04:01
Репутация: 1121
Откуда: юг России
Контактная информация:

Re: Самопальный интерпретатор

Сообщение AndyBig »

UAVpilot писал(а):например пинг вот так работает:
Странно, у меня он работает вот так:

Код: Выделить всё

PING 192.168.1.95 (192.168.1.95): 56 data bytes
64 bytes from 192.168.1.95: seq=0 ttl=128 time=2.159 ms
64 bytes from 192.168.1.95: seq=1 ttl=128 time=1.504 ms
64 bytes from 192.168.1.95: seq=2 ttl=128 time=1.219 ms
64 bytes from 192.168.1.95: seq=3 ttl=128 time=1.222 ms
64 bytes from 192.168.1.95: seq=4 ttl=128 time=1.225 ms
64 bytes from 192.168.1.95: seq=5 ttl=128 time=1.246 ms
64 bytes from 192.168.1.95: seq=6 ttl=128 time=1.240 ms
64 bytes from 192.168.1.95: seq=7 ttl=128 time=1.233 ms
64 bytes from 192.168.1.95: seq=8 ttl=128 time=1.229 ms
64 bytes from 192.168.1.95: seq=9 ttl=128 time=1.217 ms
При этом конфигурация сетевой карты:
112.JPG (2491 просмотр) <a class='original' href='./download/file.php?id=49188&mode=view' target=_blank>Загрузить оригинал (81.21 КБ)</a>
Это еще и к вопросу про
UAVpilot писал(а):Кстати, а не серверная винда при попытке навесить второй IP ругается, что на интерфейсе уже есть IP из этой подсети
Винда - семерка 64, не ругается :)
selenur писал(а):В моем случае прикол был в том, что нельзя было сделать UDP слушатель с одним и тем-же портом, на каждом из сетевых интерфейсов
А интерфейсы были физически разными? Или несколько IP на одной сетевой карте?
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Самопальный интерпретатор

Сообщение Serg »

AndyBig писал(а):Странно, у меня он работает вот так:
возможно уже и поправили, у меня венда только во внутренней сети есть - апдейты не накатить.
С SSL не далее как в начале апреля клиент попал с 2008 server, ему нужно два разных вебсервера, каждый со своим сертификатом - он так и не смог наладить нормальную работу SSL на втором IP, пришлось ему второе подключение к сети покупать.
AndyBig писал(а):А интерфейсы были физически разными? Или несколько IP на одной сетевой карте?
а это не важно, должно и так и так работать.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
AndyBig
Мастер
Сообщения: 3971
Зарегистрирован: 07 мар 2014, 04:01
Репутация: 1121
Откуда: юг России
Контактная информация:

Re: Самопальный интерпретатор

Сообщение AndyBig »

UAVpilot писал(а):С SSL не далее как в начале апреля клиент попал с 2008 server, ему нужно два разных вебсервера, каждый со своим сертификатом - он так и не смог наладить нормальную работу SSL на втором IP
По части HTTP-серверов на винде не в курсе, занимался ими слегка только под CentOS (на своем выделенном сервере) :)
UAVpilot писал(а):а это не важно, должно и так и так работать
По идее да, но все равно интересно :)
Аватара пользователя
Крафтер
Мастер
Сообщения: 211
Зарегистрирован: 27 мар 2015, 22:25
Репутация: 61
Настоящее имя: Андрей
Откуда: Ростов-на-Дону
Контактная информация:

Re: Самопальный интерпретатор

Сообщение Крафтер »

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

Мне первый вариант больше нравится. Во втором случае если на каждой строке будет указана подача, то нормально притормозить не получится.
Аватара пользователя
Predator
Мастер
Сообщения: 9583
Зарегистрирован: 18 июл 2013, 18:26
Репутация: 2531
Контактная информация:

Re: Самопальный интерпретатор

Сообщение Predator »

Крафтер писал(а):Перемножать значение ползунка на текущую подачу
А зачем? Принимай текущую подачу за 100% и всё, а ползунок допустим будет от 0 до 150%, но текущая подача F равна именно 100%, т.е. ползунком можно, как убавить, так и прибавить подачу.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Самопальный интерпретатор

Сообщение selenur »

Predator писал(а):
Крафтер писал(а):Перемножать значение ползунка на текущую подачу
А зачем? Принимай текущую подачу за 100% и всё, а ползунок допустим будет от 0 до 150%, но текущая подача F равна именно 100%, т.е. ползунком можно, как убавить, так и прибавить подачу.
Абсолютно согласен, в данном случае, ты лишь итоговую скорость корректируешь, и не задумываешься, о передергиваниях ползунка и прочего :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
Predator
Мастер
Сообщения: 9583
Зарегистрирован: 18 июл 2013, 18:26
Репутация: 2531
Контактная информация:

Re: Самопальный интерпретатор

Сообщение Predator »

Просто в таком случае ползунок будет равносилен переключателю % подач, выделил на скрине, что собственно правильно.
1273151574-.jpg (2442 просмотра) <a class='original' href='./download/file.php?id=49308&mode=view' target=_blank>Загрузить оригинал (88.15 КБ)</a>
Кстати, на обороты тоже ползунок бы не помешал, если возможно конечно ;)
Аватара пользователя
Крафтер
Мастер
Сообщения: 211
Зарегистрирован: 27 мар 2015, 22:25
Репутация: 61
Настоящее имя: Андрей
Откуда: Ростов-на-Дону
Контактная информация:

Re: Самопальный интерпретатор

Сообщение Крафтер »

Значит все за первый вариант.
Аватара пользователя
AndyBig
Мастер
Сообщения: 3971
Зарегистрирован: 07 мар 2014, 04:01
Репутация: 1121
Откуда: юг России
Контактная информация:

Re: Самопальный интерпретатор

Сообщение AndyBig »

Крафтер писал(а):Значит все за первый вариант.
Угу, так логичнее и удобнее всего :)
Только вот
Крафтер писал(а):если ползунок посередине, то всё двигается в 2 раза медленнее
Посередине - все должно двигаться как задано в кодах (скорость 100%), а влево-вправо уменьшает-увеличивает скорость :)
Аватара пользователя
Predator
Мастер
Сообщения: 9583
Зарегистрирован: 18 июл 2013, 18:26
Репутация: 2531
Контактная информация:

Re: Самопальный интерпретатор

Сообщение Predator »

Крафтер писал(а):Значит все за первый вариант
Я не за первый и не за второйю
Я уже написал, как лучше сделать Re: Самопальный интерпретатор #154
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Самопальный интерпретатор

Сообщение selenur »

Крафтер - посмотрел твои исходники, и заметил что у тебя управление моторами реализовано не через драйверы моторов, где используется всего по 2 вывода (step, dir), а путем управления каждой обмоткой (т.е. практически минуя драйвер), чем обусловлена такая реализация? :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Ответить

Вернуться в «Windows / Mach»