Страница 2 из 3

Re: Где взять исходники старых версий LinuxCNC?

Добавлено: 07 янв 2015, 11:01
PKM
Здесь есть исходники, еси что http://buildbot.linuxcnc.org/dists/

Re: Где взять исходники старых версий LinuxCNC?

Добавлено: 07 янв 2015, 11:10
Сергей Саныч
PKM писал(а):У меня качается без проблем
да я тоже скачал. Правда, на телефон. Сейчас бы еще разобраться, как из "загрузок" в "этих ваших андроидах" перетащить в гуглодиск или на карточку. :monkey: :monkey: :monkey:
таки перетащил через ж..., точнее, через dropbox.

Re: Где взять исходники старых версий LinuxCNC?

Добавлено: 07 янв 2015, 12:16
Сергей Саныч
Распаковал, перетащил rtapi.h в исходники, скомпилировал serport.
та же проблема.
Или надо вообще всё перекомпилить?
Подскажите, как правильно сделать?

И еще вопрос: я не совсем представляю механизм правок в git.
Вот кто-то внес мелкое исправление. В каких версиях оно отразится? Тем более, что параллельно ведутся работы сразу над несколькими ветвями: 2.6, 2.7 и 2.8? :thinking:

Re: Где взять исходники старых версий LinuxCNC?

Добавлено: 07 янв 2015, 14:46
PKM
Сергей Саныч писал(а):Или надо вообще всё перекомпилить?
Именно. Надо перекомпилить и rtapi
То есть придется скомпилить версию rin-in-place

Либо с билдбота установить мастер из пакетов http://buildbot.linuxcnc.org/
Сергей Саныч писал(а):И еще вопрос: я не совсем представляю механизм правок в git.
Вот кто-то внес мелкое исправление. В каких версиях оно отразится? Тем более, что параллельно ведутся работы сразу над несколькими ветвями: 2.6, 2.7 и 2.8?
Исправления вносят только разработчики, которых немного.
Высоко экспериментальные исправления обычно идут в отдельные ветки, и только оттуда могут попасть в мастер.
Перспективные идут в мастер.
Более-менее безопасные - в 2.7.
Мелкие проверенные исправления - в текущий 2.6.
Также все коммиты из 2.6 и 2.7 периодически подтягиваются в мастер.

Re: Где взять исходники старых версий LinuxCNC?

Добавлено: 07 янв 2015, 14:51
Сергей Саныч
Собственно, хотелось бы исправить одну мелкую ошибку в serport, непосредственного отношения к теме не имеющую.
Ее почему-то никто не замечает, видимо, этим компонентом никто вообще не пользуется :thinking:
В функции read() неправильно обрабатываются pin-1-in и pin-1-in-not
Вместо

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

FUNCTION(read) { 
    int i = inb(MSR);

    pin_9_in = (i & RI) == 0;
    pin_9_in_not = (i & RI) == RI;

    pin_1_in = (i & DCD) == 0;
    pin_1_in_not = !(i & DCD) == DCD;

    pin_6_in = (i & DSR) == 0;
    pin_6_in_not = (i & DSR) == DSR;

    pin_8_in = (i & CTS) == 0;
    pin_8_in_not = (i & CTS) == CTS;
}
должно быть

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

FUNCTION(read) { 
    int i = inb(MSR);

    pin_9_in = (i & RI) == 0;
    pin_9_in_not = (i & RI) == RI;

    pin_1_in = (i & DCD) == DCD;
    pin_1_in_not = (i & DCD) == 0;

    pin_6_in = (i & DSR) == 0;
    pin_6_in_not = (i & DSR) == DSR;

    pin_8_in = (i & CTS) == 0;
    pin_8_in_not = (i & CTS) == CTS;
}
Может, кто из посвященных доведет до сведения разработчиков?

Re: Где взять исходники старых версий LinuxCNC?

Добавлено: 07 янв 2015, 15:06
PKM
Сергей Саныч писал(а):видимо, этим компонентом никто вообще не пользуется
А что с ним делать можно? :) Просто читать и писать в СОМ как в ЛПТ?

На вид там просто лишний "!"

Re: Где взять исходники старых версий LinuxCNC?

Добавлено: 07 янв 2015, 15:19
Сергей Саныч
PKM писал(а):А что с ним делать можно? :) Просто читать и писать в СОМ как в ЛПТ?
В общем, да. Как лишних три бесплатных выхода и четыре входа. Правда, лог. уровни маленько нестандартные.
PKM писал(а):На вид там просто лишний "!"
В результате pin_1_in_not всегда FALSE. У DCD не та полярность, что у остальных входов. Поэтому для единообразия надо проинвертировать оба сигнала. Там еще поменяны местами 0 и DCD в правых частях выражений.

Re: Где взять исходники старых версий LinuxCNC?

Добавлено: 07 янв 2015, 17:11
PKM
Полярность? Это же битовые сигналы? Или там при подаче напряжения бит пропадает, в отличии от остальных?

Re: Где взять исходники старых версий LinuxCNC?

Добавлено: 07 янв 2015, 19:22
Сергей Саныч
PKM писал(а):Полярность? Это же битовые сигналы? Или там при подаче напряжения бит пропадает, в отличии от остальных?
Там логические уровни такие (применительно к использованию в LCNC): лог. 1 (true) примерно плюс 10 вольт, лог. 0 (false) - минус 10 вольт. Это на выходах. На входах допустимые уровни - от +3 до +12В и от -3 до -12.
Соотношение сигналов на физических контактах порта и битов регистров - разное. Где-то положительный уровень на выводе соответствует лог. 1 в регистре, где-то - наоборот. Чтобы не морочить голову пользователям, драйвер устанавливает для всех сигналов общий принцип. Собственно, в LPT так же, только физические уровни другие.

Re: Где взять исходники старых версий LinuxCNC?

Добавлено: 07 янв 2015, 19:28
PKM
Сергей Саныч писал(а):Чтобы не морочить голову пользователям, драйвер устанавливает для всех сигналов общий принцип. Собственно, в LPT так же, только физические уровни другие
Ага, то есть DCD инвертирован относительно других. Видимо, это неудачно пытались учесть с помощью "!"
Надо бы сообщить разрабам...

Re: Где взять исходники старых версий LinuxCNC?

Добавлено: 07 янв 2015, 20:26
Сергей Саныч
PKM писал(а):Ага, то есть DCD инвертирован относительно других. Видимо, это неудачно пытались учесть с помощью "!"
Вот-вот, именно так.
Надо будет как-нибудь нарисовать на нем что-нибудь общественно полезное, что добру пропадать :)
Выходы, к примеру, удобно использовать для управления твердотельными реле (SSR).

Re: Где взять исходники старых версий LinuxCNC?

Добавлено: 07 янв 2015, 22:01
PKM
А что насчет проблемы с выгрузкой, решилась?

Re: Где взять исходники старых версий LinuxCNC?

Добавлено: 07 янв 2015, 22:13
Сергей Саныч
Пока нет. Честно говоря, не понял, как надо перекомпилировать, чтобы свежие правки были учтены.
И что понимается под "мастером", тоже не знаю.
Пока тупо взял старую версию serport, исправил логику DCD, скомпилировал comp-ом, положил в 2.7 - вроде работает.

Re: Где взять исходники старых версий LinuxCNC?

Добавлено: 07 янв 2015, 22:19
PKM
Сергей Саныч писал(а):Пока тупо взял старую версию serport, исправил логику DCD, скомпилировал comp-ом, положил в 2.7 - вроде работает.
Правильно, т.к. она не использует глючный rtapi.
Сергей Саныч писал(а):как надо перекомпилировать, чтобы свежие правки были учтены
На компе уже есть скомпилированная их исходников версия?

Re: Где взять исходники старых версий LinuxCNC?

Добавлено: 07 янв 2015, 22:38
Сергей Саныч
PKM писал(а):На компе уже есть скомпилированная их исходников версия?
Да. 2.7-pre2 run-in-place.

Re: Где взять исходники старых версий LinuxCNC?

Добавлено: 07 янв 2015, 22:39
PKM
Ну так зайти в соотв. папку
git pull
cd src
make

Re: Где взять исходники старых версий LinuxCNC?

Добавлено: 07 янв 2015, 22:41
PKM
Если будет на что-то ругаться - там же некоторые файлы уже поправлены, как я понял... так его:

git reset --head origin/2.7

Это сбросит все изменения в файлах и вернет к чистому 2.7

Re: Где взять исходники старых версий LinuxCNC?

Добавлено: 07 янв 2015, 22:51
nkp
PKM писал(а):git pull
если устновлена из исходников версия 2.7 , тогда непонятно (мне)) - зачем git ?
исправляем что хотим, в папке src командуем make, всё

Re: Где взять исходники старых версий LinuxCNC?

Добавлено: 07 янв 2015, 22:56
PKM
... можно и так :)

Re: Где взять исходники старых версий LinuxCNC?

Добавлено: 08 янв 2015, 20:05
Сергей Саныч
По драйверу serport. я был не совсем прав, когда говорил, что DCD имеет не ту логику, что и остальные входные сигналы. Всё там одинаково. Другое дело, что для единообразия имеет смысл все входящие сигналы проинвертировать.
То есть вот так:

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

FUNCTION(read) { 
    int i = inb(MSR);

    pin_9_in = (i & RI) == RI;
    pin_9_in_not = (i & RI) == 0;

    pin_1_in = (i & DCD) == DCD;
    pin_1_in_not = (i & DCD) == 0;

    pin_6_in = (i & DSR) == DSR;
    pin_6_in_not = (i & DSR) == 0;

    pin_8_in = (i & CTS) == CTS;
    pin_8_in_not = (i & CTS) == 0;
}
При этом положительный уровень на входах порта приводит к лог.1 на pin-x-in и лог. нулю на pin-x-in-not.
Та же логика и у выходов порта.