![]() |
АЛСН
Парни такая тема уже была но что то её не видно! Хочу вывести сигналы АЛСН с MSTS на реальный АЛСН с локомотива через USB, кто может пробовал что подскажите!какая схема нужна и вообще что и как!
|
Для этого нужно решить три задачи:
1. Получить информацию о показании АЛСН из памяти игры программным путем. 2. Передать эту информацию на какое-либо внешнее устройство (пины LPT порта или спец. интерфейсная плата). 3. Преобразовать полученный сигнал в зажигание огня на индикаторе АЛСН. По первому пункту: программно вытащить из памяти игры значение SIGASP впередистоящего светофора - не проблема. Используем функцию ReadProcessMemory(), адерс для SIGAPS 0x84af46, значение типа int. Передать информацию тоже не сложно. Можно использовать простую запись на пины порта LPT. Можно девайсы посложнее: LPT: [url]http://www.chip-dip.ru/product0/2362.aspx[/url] USB: [url]http://www.chip-dip.ru/product0/937406537.aspx[/url] Все это дело программируется достаточно просто. Еще советую сайтик [url]http://www.pcports.ru[/url], тут много полезного про вывод информации из компьютера на внешние устройства. Третий пункт. Тут все совсем просто и зависит от умения держать паяльник и от конкретных дейталей, имеющихся в наличии. P.S. По подобной схеме у меня прекрасно работает, подключенная к МСТС, кабина от вагона типа Е: [url]http://www.trainsim.ru/forum/showthread.php?t=4783&page=4[/url] |
По первому пункту: программно вытащить из памяти игры значение SIGASP впередистоящего светофора - не проблема. Используем функцию ReadProcessMemory(), адерс для SIGAPS 0x84af46, значение типа int.
Опиши подробней пожалуйста! К сожелению не умею но придётся научиться! |
Программировать на C++ умеешь? Тогда вечером или завтра напишу код для этого дела.
|
[QUOTE=MATRIXXX;72551]Опиши подробней пожалуйста![/QUOTE]
Читаем из памяти с помощью функции: 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-файла используем следующие функции: [code] 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; }[/code] [code] // Сравнение именен процессов bool CompName(char *Name, char *exeName) { while (*Name && *exeName) { if ( toupper(*Name) != toupper(*exeName) ) { return false; } Name++; exeName++; } return !(*Name || *exeName); }[/code] Вроде разобраться можно. |
Слушай а поповоду вывода с компа своими руками что можно смострячить?
|
Сайт [url]http://www.pcports.ru/[/url] тебе в помощь. Глянь статьи про LPT-порт. Там все очень просто.
|
Слушай покупать не хочу хочу сам спаять где достать схему и какие там чипы стоят и тд!?
|
Нафига чипы? Вот способ управления светодиодами. Осталось только развязку транзисторную сделать и можно лампами управлять.
[url]http://www.pcports.ru/articles/6.php[/url] |
Сё кажись просёк фишку! Спасибо Aleks
|
Купите готовое устройство обмена данных с внешним УД по средством УСБ порта и адаптируйте под свои нужды.
Искать можно по инету или на ближайшем развале радио деталей.с Как правило в комплект входит программа(интерфейс) командного управления. |
Зачем покупать,если можно самому изготовить и с меньшими затратами;)
Тоже штука заинтересовала.Самому изготовить печатную плату,все спаять-не проблема,а вот софт-это тяжко для меня.Matrixхx,если сварганишь софт,дай знать,плиз.Буду очень благодарен. |
А возможно ли сделаьть так, чтоб ПБ светился огням?
[img]http://s43.radikal.ru/i102/0902/b5/dd8f16e79610.jpg[/img] |
[QUOTE=DeBUG;72950]Купите готовое устройство обмена данных с внешним УД по средством УСБ порта и адаптируйте под свои нужды.
Искать можно по инету или на ближайшем развале радио деталей.с Как правило в комплект входит программа(интерфейс) командного управления.[/QUOTE] По-подробнее, пожалуйста! |
[QUOTE=Ace Hard;73438]По-подробнее, пожалуйста![/QUOTE]
Есть микропроцессорные блоки для управления оборудованием путем командного ввода с компьютера. Комп - микропроцессор - с - устройства действия. Модуль имеет шину управления. К шине подключаются съёмники команд. На шину подключаеться от 250 - 394 съёмников, а к ним УД. Я такое видел, когда готовили линию станков по обработке металла. Только это все импортное. |
Текущее время: 03:19. Часовой пояс GMT +4. |
Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
© 2001-2019, Администраторы и разработчики Клуба Trainsim