Форум Trainsim  

Вернуться   Форум Trainsim > Microsoft Train Simulator > MSTS - Подвижной состав

Ответ
 
Опции темы Опции просмотра
Старый 20.02.2009, 22:13   #1
MATRIXXX
Модератор
 
Аватар для MATRIXXX
 
Регистрация: 10.05.2007
Адрес: Нижний Новгород
Сообщений: 238
Вы сказали Спасибо: 24
Поблагодарили 9 раз(а) в 6 сообщениях
MATRIXXX стоит на развилке (репутация по умолчанию)
Отправить сообщение для MATRIXXX с помощью ICQ
По умолчанию АЛСН

Парни такая тема уже была но что то её не видно! Хочу вывести сигналы АЛСН с MSTS на реальный АЛСН с локомотива через USB, кто может пробовал что подскажите!какая схема нужна и вообще что и как!
__________________
Если Вас ещё не забанили-это не Ваша вина, а моя не дороботка!
MATRIXXX вне форума   Ответить с цитированием
Старый 01.01.2007, 12:00  
Яndex
Спонсор
 
 
Регистрация: 01.01.2007
Сообщения: 500


Реклама показывается изредка по случайному принципу
По умолчанию РЕКЛАМА

 
Старый 21.02.2009, 14:00   #2
Aleks
Матёрый пользователь
 
Регистрация: 25.07.2007
Адрес: г. Москва
Сообщений: 574
Вы сказали Спасибо: 1
Поблагодарили 8 раз(а) в 7 сообщениях
Aleks стоит на развилке (репутация по умолчанию)
Отправить сообщение для Aleks с помощью ICQ
По умолчанию

Для этого нужно решить три задачи:
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
Aleks вне форума   Ответить с цитированием
Старый 22.02.2009, 11:41   #3
MATRIXXX
Модератор
 
Аватар для MATRIXXX
 
Регистрация: 10.05.2007
Адрес: Нижний Новгород
Сообщений: 238
Вы сказали Спасибо: 24
Поблагодарили 9 раз(а) в 6 сообщениях
MATRIXXX стоит на развилке (репутация по умолчанию)
Отправить сообщение для MATRIXXX с помощью ICQ
По умолчанию

По первому пункту: программно вытащить из памяти игры значение SIGASP впередистоящего светофора - не проблема. Используем функцию ReadProcessMemory(), адерс для SIGAPS 0x84af46, значение типа int.

Опиши подробней пожалуйста!

К сожелению не умею но придётся научиться!
__________________
Если Вас ещё не забанили-это не Ваша вина, а моя не дороботка!

Последний раз редактировалось MATRIXXX; 22.02.2009 в 18:47.
MATRIXXX вне форума   Ответить с цитированием
Старый 22.02.2009, 12:44   #4
Aleks
Матёрый пользователь
 
Регистрация: 25.07.2007
Адрес: г. Москва
Сообщений: 574
Вы сказали Спасибо: 1
Поблагодарили 8 раз(а) в 7 сообщениях
Aleks стоит на развилке (репутация по умолчанию)
Отправить сообщение для Aleks с помощью ICQ
По умолчанию

Программировать на C++ умеешь? Тогда вечером или завтра напишу код для этого дела.
Aleks вне форума   Ответить с цитированием
Старый 24.02.2009, 20:33   #5
Aleks
Матёрый пользователь
 
Регистрация: 25.07.2007
Адрес: г. Москва
Сообщений: 574
Вы сказали Спасибо: 1
Поблагодарили 8 раз(а) в 7 сообщениях
Aleks стоит на развилке (репутация по умолчанию)
Отправить сообщение для Aleks с помощью ICQ
По умолчанию

Цитата:
Сообщение от MATRIXXX Посмотреть сообщение
Опиши подробней пожалуйста!
Читаем из памяти с помощью функции:
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);
}
Вроде разобраться можно.
Aleks вне форума   Ответить с цитированием
Старый 24.02.2009, 21:22   #6
MATRIXXX
Модератор
 
Аватар для MATRIXXX
 
Регистрация: 10.05.2007
Адрес: Нижний Новгород
Сообщений: 238
Вы сказали Спасибо: 24
Поблагодарили 9 раз(а) в 6 сообщениях
MATRIXXX стоит на развилке (репутация по умолчанию)
Отправить сообщение для MATRIXXX с помощью ICQ
По умолчанию

Слушай а поповоду вывода с компа своими руками что можно смострячить?
__________________
Если Вас ещё не забанили-это не Ваша вина, а моя не дороботка!
MATRIXXX вне форума   Ответить с цитированием
Старый 24.02.2009, 21:47   #7
Aleks
Матёрый пользователь
 
Регистрация: 25.07.2007
Адрес: г. Москва
Сообщений: 574
Вы сказали Спасибо: 1
Поблагодарили 8 раз(а) в 7 сообщениях
Aleks стоит на развилке (репутация по умолчанию)
Отправить сообщение для Aleks с помощью ICQ
По умолчанию

Сайт http://www.pcports.ru/ тебе в помощь. Глянь статьи про LPT-порт. Там все очень просто.
Aleks вне форума   Ответить с цитированием
Старый 24.02.2009, 22:08   #8
MATRIXXX
Модератор
 
Аватар для MATRIXXX
 
Регистрация: 10.05.2007
Адрес: Нижний Новгород
Сообщений: 238
Вы сказали Спасибо: 24
Поблагодарили 9 раз(а) в 6 сообщениях
MATRIXXX стоит на развилке (репутация по умолчанию)
Отправить сообщение для MATRIXXX с помощью ICQ
По умолчанию

Слушай покупать не хочу хочу сам спаять где достать схему и какие там чипы стоят и тд!?
__________________
Если Вас ещё не забанили-это не Ваша вина, а моя не дороботка!
MATRIXXX вне форума   Ответить с цитированием
Старый 24.02.2009, 22:20   #9
Aleks
Матёрый пользователь
 
Регистрация: 25.07.2007
Адрес: г. Москва
Сообщений: 574
Вы сказали Спасибо: 1
Поблагодарили 8 раз(а) в 7 сообщениях
Aleks стоит на развилке (репутация по умолчанию)
Отправить сообщение для Aleks с помощью ICQ
По умолчанию

Нафига чипы? Вот способ управления светодиодами. Осталось только развязку транзисторную сделать и можно лампами управлять.
http://www.pcports.ru/articles/6.php
Aleks вне форума   Ответить с цитированием
Старый 24.02.2009, 22:30   #10
MATRIXXX
Модератор
 
Аватар для MATRIXXX
 
Регистрация: 10.05.2007
Адрес: Нижний Новгород
Сообщений: 238
Вы сказали Спасибо: 24
Поблагодарили 9 раз(а) в 6 сообщениях
MATRIXXX стоит на развилке (репутация по умолчанию)
Отправить сообщение для MATRIXXX с помощью ICQ
По умолчанию

Сё кажись просёк фишку! Спасибо Aleks
__________________
Если Вас ещё не забанили-это не Ваша вина, а моя не дороботка!

Последний раз редактировалось MATRIXXX; 24.02.2009 в 22:32.
MATRIXXX вне форума   Ответить с цитированием
Старый 24.02.2009, 23:51   #11
DeBUG
Опытный
 
Регистрация: 11.10.2008
Сообщений: 201
Вы сказали Спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
DeBUG стоит на развилке (репутация по умолчанию)
По умолчанию

Купите готовое устройство обмена данных с внешним УД по средством УСБ порта и адаптируйте под свои нужды.
Искать можно по инету или на ближайшем развале радио деталей.с Как правило в комплект входит программа(интерфейс) командного управления.
DeBUG вне форума   Ответить с цитированием
Старый 28.02.2009, 02:46   #12
RUSHPIL
Разработчик
 
Аватар для RUSHPIL
 
Регистрация: 20.06.2008
Адрес: Сергиев-Посад
Сообщений: 1,440
Вы сказали Спасибо: 1,620
Поблагодарили 1,730 раз(а) в 288 сообщениях
RUSHPIL стоит на развилке (репутация по умолчанию)
Отправить сообщение для RUSHPIL с помощью ICQ
По умолчанию

Зачем покупать,если можно самому изготовить и с меньшими затратами
Тоже штука заинтересовала.Самому изготовить печатную плату,все спаять-не проблема,а вот софт-это тяжко для меня.Matrixхx,если сварганишь софт,дай знать,плиз.Буду очень благодарен.
RUSHPIL вне форума   Ответить с цитированием
Старый 28.02.2009, 05:35   #13
Сибиряк
Матёрый пользователь
 
Аватар для Сибиряк
 
Регистрация: 16.09.2007
Адрес: Los Andgeles South Harvard Boulevard со своей ...
Сообщений: 1,630
Вы сказали Спасибо: 254
Поблагодарили 649 раз(а) в 170 сообщениях
Сибиряк стоит на развилке (репутация по умолчанию)
По умолчанию

А возможно ли сделаьть так, чтоб ПБ светился огням?
__________________
METALLICA
ZDSimulator, перешёл на него.
Перебрался в Лос Анджелес и изменил свою жизнь до неузнаваемости через 10 пластических операций
Сибиряк вне форума   Ответить с цитированием
Старый 28.02.2009, 10:37   #14
Ace Hard
Матёрый пользователь
 
Аватар для Ace Hard
 
Регистрация: 10.05.2007
Адрес: Санкт-Петербург
Сообщений: 2,960
Вы сказали Спасибо: 2,935
Поблагодарили 3,053 раз(а) в 854 сообщениях
Ace Hard стоит на развилке (репутация по умолчанию)
По умолчанию

Цитата:
Сообщение от DeBUG Посмотреть сообщение
Купите готовое устройство обмена данных с внешним УД по средством УСБ порта и адаптируйте под свои нужды.
Искать можно по инету или на ближайшем развале радио деталей.с Как правило в комплект входит программа(интерфейс) командного управления.
По-подробнее, пожалуйста!
Ace Hard вне форума   Ответить с цитированием
Старый 28.02.2009, 20:40   #15
DeBUG
Опытный
 
Регистрация: 11.10.2008
Сообщений: 201
Вы сказали Спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
DeBUG стоит на развилке (репутация по умолчанию)
Сообщение

Цитата:
Сообщение от Ace Hard Посмотреть сообщение
По-подробнее, пожалуйста!
Есть микропроцессорные блоки для управления оборудованием путем командного ввода с компьютера. Комп - микропроцессор - с - устройства действия. Модуль имеет шину управления. К шине подключаются съёмники команд. На шину подключаеться от 250 - 394 съёмников, а к ним УД. Я такое видел, когда готовили линию станков по обработке металла. Только это все импортное.
DeBUG вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 01:04. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot
© 2001-2019, Администраторы и разработчики Клуба Trainsim
TopList Нажми для появления дома Trainsim на карте Intermap
Что это?