![]() |
![]() |
![]() |
#1 |
Опытный
|
![]()
Парни такая тема уже была но что то её не видно! Хочу вывести сигналы АЛСН с MSTS на реальный АЛСН с локомотива через USB, кто может пробовал что подскажите!какая схема нужна и вообще что и как!
__________________
Если Вас ещё не забанили-это не Ваша вина, а моя не дороботка! |
![]() |
![]() |
![]() |
|
Яndex
Спонсор
Регистрация: 01.01.2007
Сообщения: 500
Реклама показывается изредка по случайному принципу |
![]() |
![]() |
#2 |
Матёрый пользователь
|
![]()
Для этого нужно решить три задачи:
1. Получить информацию о показании АЛСН из памяти игры программным путем. 2. Передать эту информацию на какое-либо внешнее устройство (пины LPT порта или спец. интерфейсная плата). 3. Преобразовать полученный сигнал в зажигание огня на индикаторе АЛСН. По первому пункту: программно вытащить из памяти игры значение SIGASP впередистоящего светофора - не проблема. Используем функцию ReadProcessMemory(), адерс для SIGAPS 0x84af46, значение типа int. Передать информацию тоже не сложно. Можно использовать простую запись на пины порта LPT. Можно девайсы посложнее: LPT: http://www.chip-dip.ru/product0/2362.aspx USB: http://www.chip-dip.ru/product0/937406537.aspx Все это дело программируется достаточно просто. Еще советую сайтик http://www.pcports.ru, тут много полезного про вывод информации из компьютера на внешние устройства. Третий пункт. Тут все совсем просто и зависит от умения держать паяльник и от конкретных дейталей, имеющихся в наличии. P.S. По подобной схеме у меня прекрасно работает, подключенная к МСТС, кабина от вагона типа Е: http://www.trainsim.ru/forum/showthr...?t=4783&page=4 |
![]() |
![]() |
![]() |
#3 |
Опытный
|
![]()
По первому пункту: программно вытащить из памяти игры значение SIGASP впередистоящего светофора - не проблема. Используем функцию ReadProcessMemory(), адерс для SIGAPS 0x84af46, значение типа int.
Опиши подробней пожалуйста! К сожелению не умею но придётся научиться!
__________________
Если Вас ещё не забанили-это не Ваша вина, а моя не дороботка! Последний раз редактировалось MATRIXXX; 22.02.2009 в 18:47. |
![]() |
![]() |
![]() |
#4 |
Матёрый пользователь
|
![]()
Программировать на C++ умеешь? Тогда вечером или завтра напишу код для этого дела.
|
![]() |
![]() |
![]() |
#5 |
Матёрый пользователь
|
![]()
Читаем из памяти с помощью функции:
ReadProcessMemory(hProcess, (LPCVOID)pSigAsp, &SigAsp, 4, NULL); где DWORD pSigAsp = 0x84af46; SigAsp - переменная типа int, в которую записывается прочитанное значение. hProcess получаем следующим образом: hProcess = OpenProcess( PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE, FALSE, dwProcessID); Для получения ProcessID по имени exe-файла используем следующие функции: Код:
bool GetProcessByExeName(void) { HANDLE hProcessSnap; PROCESSENTRY32 pe32 = {0}; hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPALL, NULL); if(hProcessSnap == INVALID_HANDLE_VALUE) { return false; } pe32.dwSize = sizeof(PROCESSENTRY32); if(Process32First(hProcessSnap, &pe32)) { do { if(CompName(pe32.szExeFile, ExeName)) // Сравнение имени процесса с ExeName { dwProcessID = pe32.th32ProcessID; // Возврат ID найденного процесса CloseHandle(hProcessSnap); return true; } } while(Process32Next(hProcessSnap, &pe32)); } CloseHandle(hProcessSnap); return false; } Код:
// Сравнение именен процессов bool CompName(char *Name, char *exeName) { while (*Name && *exeName) { if ( toupper(*Name) != toupper(*exeName) ) { return false; } Name++; exeName++; } return !(*Name || *exeName); } |
![]() |
![]() |
![]() |
#6 |
Опытный
|
![]()
Слушай а поповоду вывода с компа своими руками что можно смострячить?
__________________
Если Вас ещё не забанили-это не Ваша вина, а моя не дороботка! |
![]() |
![]() |
![]() |
#7 |
Матёрый пользователь
|
![]()
Сайт http://www.pcports.ru/ тебе в помощь. Глянь статьи про LPT-порт. Там все очень просто.
|
![]() |
![]() |
![]() |
#8 |
Опытный
|
![]()
Слушай покупать не хочу хочу сам спаять где достать схему и какие там чипы стоят и тд!?
__________________
Если Вас ещё не забанили-это не Ваша вина, а моя не дороботка! |
![]() |
![]() |
![]() |
#9 |
Матёрый пользователь
|
![]()
Нафига чипы? Вот способ управления светодиодами. Осталось только развязку транзисторную сделать и можно лампами управлять.
http://www.pcports.ru/articles/6.php |
![]() |
![]() |
![]() |
#10 |
Опытный
|
![]()
Сё кажись просёк фишку! Спасибо Aleks
__________________
Если Вас ещё не забанили-это не Ваша вина, а моя не дороботка! Последний раз редактировалось MATRIXXX; 24.02.2009 в 22:32. |
![]() |
![]() |
![]() |
#11 |
Опытный
Регистрация: 11.10.2008
Сообщений: 201
Вы сказали Спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
![]() |
![]()
Купите готовое устройство обмена данных с внешним УД по средством УСБ порта и адаптируйте под свои нужды.
Искать можно по инету или на ближайшем развале радио деталей.с Как правило в комплект входит программа(интерфейс) командного управления. |
![]() |
![]() |
![]() |
#12 |
Разработчик
|
![]()
Зачем покупать,если можно самому изготовить и с меньшими затратами
![]() Тоже штука заинтересовала.Самому изготовить печатную плату,все спаять-не проблема,а вот софт-это тяжко для меня.Matrixхx,если сварганишь софт,дай знать,плиз.Буду очень благодарен. |
![]() |
![]() |
![]() |
#13 |
Матёрый пользователь
Регистрация: 16.09.2007
Адрес: Los Andgeles South Harvard Boulevard со своей ...
Сообщений: 1,630
Вы сказали Спасибо: 254
Поблагодарили 649 раз(а) в 170 сообщениях
![]() |
![]()
А возможно ли сделаьть так, чтоб ПБ светился огням?
![]()
__________________
METALLICA ZDSimulator, перешёл на него. Перебрался в Лос Анджелес и изменил свою жизнь до неузнаваемости через 10 пластических операций |
![]() |
![]() |
![]() |
#14 |
Матёрый пользователь
Регистрация: 10.05.2007
Адрес: Санкт-Петербург
Сообщений: 3,835
Вы сказали Спасибо: 3,627
Поблагодарили 3,573 раз(а) в 1,136 сообщениях
![]() |
![]() |
![]() |
![]() |
![]() |
#15 |
Опытный
Регистрация: 11.10.2008
Сообщений: 201
Вы сказали Спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
![]() |
![]()
Есть микропроцессорные блоки для управления оборудованием путем командного ввода с компьютера. Комп - микропроцессор - с - устройства действия. Модуль имеет шину управления. К шине подключаются съёмники команд. На шину подключаеться от 250 - 394 съёмников, а к ним УД. Я такое видел, когда готовили линию станков по обработке металла. Только это все импортное.
|
![]() |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|
|
![]() Что это? |