|
Электрика и DCC Обсуждение цифрового и аналогового управления |
|
Опции темы | Опции просмотра |
28.12.2012, 20:56 | #1 |
Заглянувший
Регистрация: 28.12.2012
Адрес: Москва
Сообщений: 4
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: пока неопределено (0)
|
Обмен между PC и модулем Dispatcher
Коллеги,
У меня следующая проблема, которую я пока что не смог найти на форуме: купил модуль Dispatcher версии 1.0.5 (судя по маркеру на плате), подключаю к компу через COM-порт и пытаюсь написать собственное приложение для работы с ним. Вся система выглядит так: 1) Модуль Fleischmann 680801, включенный в розетку 2) Fleischmann MultiMAUS включенный в Мастер (через оригинальный кабель) 3) Модуль Dispatcher подключенный в Slave (через идущий в комплекте 4х пиновый кабель) 4) Dispatcher подключается к компу кабелем COM, 1.8м 4х пиновый кабель от Modelldepo прозванивал тестером, контакт нормальный (видел на форуме у кого то проблема была с этим). На модуле горит красный светодиод. С компа через свою программу посылаю на COM порт следующую последовательность: 0xFF 0xFE 0xF0 0xF0 Согласно протоколу XPressNet, мне должны ответить информацией о версии модуля (что-то типа 0xFF 0xFE 0x02 0x30 0x01 0x33). Однако вместо этого я принимаю следующее: 0xFF 0xFE 0x7D 0x61 0x82 0xE3 Судя по первым двум байтам, COM порт выбирается и открывается правильно (заголовок приходит), однако последующие байты для меня загадка. заголовка 0x7D нет в описании протокола, контрольная сумму (0xE3) тоже не сходится - для этого пакета должно быть 0x9E. Кстати такой пакет принимается на все виды команд - пробовал посылать команду установки адреса модуля. Еще интересный эффект - если MultiMAUS отключить, то модуль вообще ничего не возвращает. Что я делаю не так или не понимаю? К сожалению не могу протестировать с официальной программой, потому что она под Windows, а у меня Linux на компе. |
28.12.2012, 21:24 | #2 |
инженер-электроник
Регистрация: 19.07.2012
Адрес: Тула
Сообщений: 562
Сказал(а) 'не согласен(а)'!: 30
Сказали 'не согласен'! 28 раз(а) в 17 сообщениях
Сказал(а) спасибо: 359
Поблагодарили 720 раз(а) в 280 сообщениях
Репутация: - просто великолепная личность (746)
|
|
28.12.2012, 21:28 | #3 | |
Заглянувший
Регистрация: 28.12.2012
Адрес: Москва
Сообщений: 4
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: пока неопределено (0)
|
Цитата:
Я думал может кто нибудь занимался написанием собственного софта и допускаю возможность того что я просто что-то не так понял в протоколе. Позже попробую завести VirtualBox, возможно он сможет COM пробросить в виртуалку |
|
28.12.2012, 23:14 | #4 |
Местный
Регистрация: 02.06.2008
Адрес: Москва
Сообщений: 1,818
Сказал(а) 'не согласен(а)'!: 75
Сказали 'не согласен'! 6 раз(а) в 6 сообщениях
Сказал(а) спасибо: 3,273
Поблагодарили 815 раз(а) в 540 сообщениях
Репутация: - просто великолепная личность (885)
|
Еще как вариант - попробуй wine-ом воспользоваться.
|
28.12.2012, 23:26 | #5 |
Заглянувший
Регистрация: 28.12.2012
Адрес: Москва
Сообщений: 4
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: пока неопределено (0)
|
Похоже с программой Dispatcher ничего не получится: то что я нашел на офсайте - исключительно 64-битные сборки
|
29.12.2012, 00:04 | #6 |
Гость
Сообщений: n/a
|
Скорее всего проблема с СОМ портом.Даже если "верх" проходит то "низ" 0х33 не воспринимается.У меня нет такого зверя что у Вас,но подобная ситуация была на сканматике(диагностика инжектора),виртуальный СОМ никак не хотел четко работать.Делал даже переходник.Всеравно выдавал разные ошибки на безошибочно работающем инжекторе,а то и вовсе не открывался.Вылечил только покупкой ноута с физическим СОМом. А так попробуйте для этого надо немного пошаманить (открыть доступ к портам)
1. добавляем текущего пользователя (под которым работаем) в группы lp(для LPT) и uucp(для COM) 2. под root-ом chmod 0666 /dev/ttyS0 #для COM1 chmod 0666 /dev/lp0 #для LPT1 3. под пользователем cd /home/нужный пользователь/.wine/dosdevices ln -s /dev/ttyS0 COM1 ln -s /dev/lp0 LPT1 Может поможет. |
29.12.2012, 00:24 | #7 |
Заглянувший
Регистрация: 28.12.2012
Адрес: Москва
Сообщений: 4
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: пока неопределено (0)
|
Кажется начинаю догонять. В возвращаемом пакете передается еще и Call Byte:
0xFF 0xFE - заголовок обмена между PC и модулем 0x7D - Call Byte. Не участвует в подсчете суммы и состоит из ParityBit + 0x60 + Адрес модуля (0x1D получается, командная станция) 0x61 - Header 0x82 - Data byte (0x61 0x82 означает "Instruction not supported by command station") 0xE3 - правильная контрольная сумма, если считать 0x61 XOR 0x82 Такое впечатление, что модуль пытается это передать в сеть. Командная станция резонно отвечает что не знает такой инструкции. В принципе мне удалось поправлять такими вот командами (включить/выключить питание, свет в локомитвах). Осталось непонятным только одно - как в таком случае модуль настраивать - что ему надо передать чтобы изменить адрес, спросить версию и т.д. Такое впечатление что этот интерейс все таки отличается от LI101 Последний раз редактировалось Darkmind; 29.12.2012 в 02:48. |
Опции темы | |
Опции просмотра | |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Расстояние между путей | Enforcer | НО (1:87) | 19 | 18.07.2018 13:42 |
Кто нибудь реализовывал модулем Диспетчер и Светофорным декодером"TrafficLight" | aikav | Цифровая аппаратура Modelldepo | 3 | 17.11.2012 19:27 |
Работа модуля "Dispatcher" со станцией multiZENTRALE pro 10830 | Rokfor | Цифровая аппаратура Modelldepo | 0 | 29.05.2012 15:35 |
Между DCC и DC | Илья | Электрика и DCC | 23 | 20.06.2008 13:56 |