Jump to content

Recommended Posts

Знаете - один старый мудрый человек спросил меня буквально пару дней назад: "Вы хотите 40 минут затачивать стамески и 5 минут работать?"

Лучше бы посоветовали как избежать этого в домашних кокпитах...

Share this post


Link to post
Share on other sites

 

 

Знаете - один старый мудрый человек спросил меня буквально пару дней назад: "Вы хотите 40 минут затачивать стамески и 5 минут работать?"

Лучше бы посоветовали как избежать этого в домашних кокпитах...

 

Да я так и делаю. Пять минут работы острой стамеской приносят удовольствие не только от результата, но и от процесса!

P.S. Старому мудрому человеку (который скорее всего каГтавит) наверное работа не в удовольствие :) 

Share this post


Link to post
Share on other sites

Да я так и делаю. Пять минут работы острой стамеской приносят удовольствие не только от результата, но и от процесса!

P.S. Старому мудрому человеку (который скорее всего каГтавит) наверное работа не в удовольствие :)

Нет, - не кагтавит. Славянин. Замечательнейший старик, который все свои стамески сделал своими руками. Все до одной.

Знаток и профессионал своего дела.

Учит людей резьбе по дереву. Таких сейчас - по пальцам перечесть. 

 
Edited by McGordon

Share this post


Link to post
Share on other sites

Да я так и делаю. Пять минут работы острой стамеской приносят удовольствие не только от результата, но и от процесса!

P.S. Старому мудрому человеку (который скорее всего каГтавит) наверное работа не в удовольствие :)

Кстати - он мне и сказал, что непосредственно при резьбе - главное не отвлекаться, а быстро довести инструмент до рабочего состояния. А колдовать над железом (закалка металла, в том числе и исправление погрешностей производителя) - можно и потом :)

Share this post


Link to post
Share on other sites

Всем доброго времени суток. Столкнулся с такой проблемой при попытке вытаскивания данных из PT: Модули загружаются вечно в разные места памяти. Так вот вопрос: Как в Delphi7 узнать не только расположение процесса в памяти но и модуля(допусти es_154m_3_105.GAU)?

Буду очень благодарен за толковый ответ, а то уже четвертый день пытаюсь найти ответ.

Share this post


Link to post
Share on other sites

Всем доброго времени суток. Столкнулся с такой проблемой при попытке вытаскивания данных из PT: Модули загружаются вечно в разные места памяти. Так вот вопрос: Как в Delphi7 узнать не только расположение процесса в памяти но и модуля(допусти es_154m_3_105.GAU)?

Буду очень благодарен за толковый ответ, а то уже четвертый день пытаюсь найти ответ.

Вот класс, который я использую для этого в своем PTMediator. (C++). Думаю, разберетесь в нем сами. Если сами не разберетесь, то даже с объяснениями не найдете свой GAU. Еще поищите на форуме, я давно постил, как искать его в памяти с помощью Артмани и ПТ медиатора.

#include "MemoryClass.h"
#include "tlhelp32.h"
#include <string.h>

MemoryClass	Mem; // создадим объект класса

MemoryClass::MemoryClass(void)
{
	Process.Found = false;
	Process.Opened = false;
	Process.dwPID = 0;
}

MemoryClass::~MemoryClass(void)
{
}



DWORD MemoryClass::_ScanSubProcess(DWORD dwPID, char *ModuleName)
{
	HANDLE hSnap;
	DWORD baseaddress;
	MODULEENTRY32 mod;

	HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, Process.dwPID);//open main process
				mod.dwSize = sizeof(MODULEENTRY32);	
				// Search PT-154m
				hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, Process.dwPID);
				if (hSnap == NULL) 
				{
					Log.timeStamp() << "MEMORY Error:  Cannot load ToolHelp" << ENDL ;
				}
				if (Module32First(hSnap, &mod))
				{
					while (Module32Next(hSnap, &mod)) 
					{
						if (_debug) Log.timeStamp() << " MEMORY: Parcing Module: " << mod.szModule << ENDL;

						if (strcmp(mod.szModule, ModuleName) == 0)
						{	
							baseaddress = (DWORD) mod.modBaseAddr;
							char charBuf[256];
							sprintf(charBuf, " MEMORY: Base address for %s is 0x%X",ModuleName, (long)baseaddress);
							Log.timeStamp() << charBuf << ENDL;
							CloseHandle(hProcess);
							return baseaddress;
						}		
					}
							Log.timeStamp() << " MEMORY: Base address for " << ModuleName << " was not found" << ENDL;
					CloseHandle(hProcess);
					return 0;
				}
return 0;
}

int MemoryClass::ReadMem()
{
//  int address = 0x038A50; //Адрес ячейки памяти
	int counter =0;
	int value = 0;
		if (true)
		{
                    HANDLE phandle = OpenProcess(PROCESS_ALL_ACCESS, 0 ,Process.dwPID); //Получаем доступ к процессу
					ReadProcessMemory(phandle,(LPVOID)counter,&value,4,0); //Делаем запрос на чтение памяти нашего процесса, value - буфер куда копируются данные
 //                   MessageBox (HWND_DESKTOP, "Memory is read", "Ok", MB_OK | MB_ICONINFORMATION);
					counter++;
					return counter;
		}
		else 	return -111111111;
}





void MemoryClass::_PrintProcessNameAndID( DWORD processID )
{
    TCHAR szProcessName[MAX_PATH] = TEXT("<unknown>");

    // Get a handle to the process.

    HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |
                                   PROCESS_VM_READ,
                                   FALSE, processID );

    // Get the process name.

    if (NULL != hProcess )
    {
        HMODULE hMod;
        DWORD cbNeeded;

        if ( EnumProcessModules( hProcess, &hMod, sizeof(hMod), 
             &cbNeeded) )
        {
            GetModuleBaseName( hProcess, hMod, szProcessName, 
                               sizeof(szProcessName)/sizeof(TCHAR) );
        }
    }

    // Print the process name and identifier.
	char textBuff[256];
    sprintf(textBuff, TEXT(" MEMORY: (PID:%6u)  %s"), processID ,szProcessName);
	Log << textBuff << ENDL;

	if (strcmp(szProcessName, Settings.SIOC.ProcName) == 0 )
		{
			Process.dwPID = processID;
			Process.Found = true;
		}


    CloseHandle( hProcess );
}


void MemoryClass::ListMainProc(char *ProcessName)
{
	Log.timeStamp() << " MEMORY: Preparing for the processes listing" << ENDL;
    // Get the list of process identifiers.
    DWORD aProcesses[1024], cbNeeded, cProcesses;
    unsigned int i;
    if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) )
        return;
    // Calculate how many process identifiers were returned.
    cProcesses = cbNeeded / sizeof(DWORD);
    // Print the name and process identifier for each process.
    for ( i = 0; i < cProcesses; i++ )
        if( aProcesses[i] != 0 )
            _PrintProcessNameAndID( aProcesses[i] );

	if (Process.Found)	
	{
		Log.timeStamp() << " MEMORY: Main process is located! PID: " << (int) Process.dwPID << " Name: " << Settings.SIOC.ProcName << ENDL;
	}
	else
	{
		Log.timeStamp() << " MEMORY: Main process was not found! Please check if the process is started and the process name is correct:" << Settings.SIOC.ProcName << ENDL;
		return; // и выйти нах
	};

	// начнем перебирать переменные и искать подмодули

	for (int i = 0	; i <= Settings.SIOC.VarCount; i++) // основной цикл перебора
	{
		DWORD tempaddress;
		if (Settings.SIOC.DataVars[i].Valid) tempaddress = _ScanSubProcess(Process.dwPID, Settings.SIOC.DataVars[i].SubProcName);
		Settings.SIOC.DataVars[i].SubProcAddress = tempaddress;
		PostMessage(Display[DATA_TAB_ID].hWnd, ID_SUBADDR_UPDATE_VAR, NULL, (WPARAM)i); 
	}; // конец основного цикла перебора

	if (Process.Found) 	PostMessage(Display[DATA_TAB_ID].hWnd, ID_START_MEMSYNC, NULL, NULL); 

}

Share this post


Link to post
Share on other sites

 

Спасибо огромное! Буду вникать. А среда C++ Builder 6.0 подойдет или это в студие делалось?

Edited by jonny247

Share this post


Link to post
Share on other sites

Спасибо огромное! Буду вникать. А среда C++ Builder 6.0 подойдет или это в студие делалось?

 

Тот листинг, что я привел не скомпилируется, ибо это кусочек PT Mediator-a. Я его привел здесь, чтобы показать какие фунции из WinApi32 надо использовать для поиска процессов и их модулей. Т.е. EmumProcess, GetProcessModules и т.д. Это все функции стандартной библиотеки Windows, Psapi, Toolhelp-а и т.д. Еще может помочь погуглить "перечислить все процессы и все модули в Windows". Там будет примерчик, который скомпилится и перечислит Вам все процессы и все субмодули. В какой среде писать, без разницы мне кажется, библиотеки, что Вам нужны, доступны для любой среды ИМХО. В сети просто примеров наверное больше на C++ для Visual Studio. Я поэтому на ней и стал делать медиатор свой. А так вообще я не программист (дяденька, я ненастоящий сварщик :D ), просто мне надо было сделать роутер в свое время для проекта. Отсюда и нестройный код, в который врезаны куски примеров, которые я искал в сети и комментарии в нем неполиткорректные :)

Share this post


Link to post
Share on other sites

... Я поэтому на ней и стал делать медиатор свой. А так вообще я не программист (дяденька, я ненастоящий сварщик  :D ), просто мне надо было сделать роутер в свое время для проекта. Отсюда и нестройный код, в который врезаны куски примеров, которые я искал в сети и комментарии в нем неполиткорректные :)

Подскажите. а ваш роутер работает с железом KREML'ина?(F2/L2) А то может я зря пытаюсь изобрести велосипед(а то и колесо пытаюсь заново открыть).

В любом случае примного вам благодарен за наставление на путь истинный)))

Share this post


Link to post
Share on other sites

Подскажите. а ваш роутер работает с железом KREML'ина?(F2/L2) А то может я зря пытаюсь изобрести велосипед(а то и колесо пытаюсь заново открыть).

В любом случае примного вам благодарен за наставление на путь истинный)))

Тоже заинтересовал этот вопрос )

Share this post


Link to post
Share on other sites

Подскажите. а ваш роутер работает с железом KREML'ина?(F2/L2) А то может я зря пытаюсь изобрести велосипед(а то и колесо пытаюсь заново открыть).

В любом случае примного вам благодарен за наставление на путь истинный)))

Нет, но если мне дадут спецификацию интерфейса, то прикрутить его дело недели работы по вечерам. У меня есть железо от Kreml, но уже год так и лежит в коробке, как бандеролька пришла :( Штурвал до стапелей пока не добрался, вот я и не делал. У меня в основном платы все на сиоке, вот я под него и делал медиатор. Много кому надо на F2/L2? Спецификация API обмена есть?

Share this post


Link to post
Share on other sites

Нет, но если мне дадут спецификацию интерфейса, то прикрутить его дело недели работы по вечерам. У меня есть железо от Kreml, но уже год так и лежит в коробке, как бандеролька пришла :( Штурвал до стапелей пока не добрался, вот я и не делал. У меня в основном платы все на сиоке, вот я под него и делал медиатор. Много кому надо на F2/L2? Спецификация API обмена есть?

Виталя, привет!

Можно вечером созвониться и я попробую тебе рассказать часть, потому как сам все не знаю. Там протокол еще в стадии наполнения и изменения, но основное уже есть.

Share this post


Link to post
Share on other sites

Здравствуйте уважаемые!

Прошу совета.

Восстанавливаю РУС МиГ-23 до исходного состояния и столкнулся с вопросом нанесения надписей на верхнюю крышку. Крышка не родная(изготовлена из алюминия), по этому надписи необходимо наносить с нуля. Вопросы:

- может кому попадался аутентичный авиационный шрифт, поделитесь ссылочкой?

- посоветуйте технологию нанесения этих надписей(станка с ЧПУ и гравера в хозяйстве нет)

Спасибо!

Share this post


Link to post
Share on other sites

Виталя, привет!

Можно вечером созвониться и я попробую тебе рассказать часть, потому как сам все не знаю. Там протокол еще в стадии наполнения и изменения, но основное уже есть.

Ок, уходим в личку тогда, чтобы не флудить.

Share this post


Link to post
Share on other sites

Подскажите. а ваш роутер работает с железом KREML'ина?(F2/L2) А то может я зря пытаюсь изобрести велосипед(а то и колесо пытаюсь заново открыть).

В любом случае примного вам благодарен за наставление на путь истинный)))

Ответ содержится в этом сообщении http://www.avsim.su/forum/topic/111118-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BA%D0%BE%D0%BA%D0%BF%D0%B8%D1%82%D0%B0-%D1%81-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B3%D0%BE-%D0%BD%D1%83%D0%BB%D1%8F/page-37#entry2611520

Обратитесь к Евгению, Вам нужны роутеры F2 <-> IOCP.  А PTMediator будет делать Вам синхронизацию памяти гауга <-> IOCP. Все будет быстро работать, PTМедиатор специально оптимизирован на скорость, думаю, цепочка из двух роутеров видимых задержек не прибавит.

Share this post


Link to post
Share on other sites
посоветуйте технологию нанесения этих надписей(станка с ЧПУ и гравера в хозяйстве нет)

Хм... Либо найти станок с ЧПУ или гравер на стороне, либо найти в гаражах перебойщиков номеров и попользоваться их шрифтом. Хотя у них могут быть только цифры. У меня вот есть почти полная узкая семёрка, весьма редкий шрифт, не могу недостающие шесть букв найти.

И вообще, в профиле не зря пустует графа «Место жительства», может открыть путь для предложений.

Share this post


Link to post
Share on other sites

Уважаемые кокпитостроители, приобрел потенциометры, вот эти: http://www.ebay.com/itm/5-1-Pole-8-Position-PANEL-PCB-Wiring-ROTARY-SWITCH-1P8T-/390697404791?pt=LH_DefaultDomain_3&hash=item5af7614977 для панели AUTOBRAKE, а у них не совпадают обороты щелчков с рисками на панели, или это нормально!? Может посоветуете где другие приобрести..

post-87779-0-98374400-1390790050_thumb.jpg

  • Upvote 1

Share this post


Link to post
Share on other sites

Уважаемые кокпитостроители, приобрел потенциометры, вот эти: http://www.ebay.com/itm/5-1-Pole-8-Position-PANEL-PCB-Wiring-ROTARY-SWITCH-1P8T-/390697404791?pt=LH_DefaultDomain_3&hash=item5af7614977 для панели AUTOBRAKE, а у них не совпадают обороты щелчков с рисками на панели, или это нормально!? Может посоветуете где другие приобрести..

Вам нужны с ходом на 45 градусов! Можно взять здесь :http://www.opencockpits.com/catalog/interruptor-rotativo-posiciones-p-155.html?cPath=24_55

Edited by mishanya_izgib

Share this post


Link to post
Share on other sites

Вам нужны с ходом на 45 градусов! Можно взять здесь :http://www.opencockpits.com/catalog/interruptor-rotativo-posiciones-p-155.html?cPath=24_55

Все верно.На ebay таких не нашел, только на опенкокпитс или тут http://www.simworld.pl/shop/product_info.php?cPath=2&products_id=54

Share this post


Link to post
Share on other sites

Да, я тоже склоняюсь уже к тому, что кроме Поляков и Испанцев купить больше не где!  Будем брать, значит у них! Эх, надо было сразу заказывать вместе с MIP-панелями, но думал, я самый умный и сэкономлю на покупке с eBAY,а оно вот оно как... :umnik2: Спасибо Вам ребята всем за советы.  Значит, мне нужно для моей MIP (брал эту  http://www.simworld.pl/shop/product_info.php?cPath=10&products_id=36) 7  потенциометров  с ходом на 45 градусов и все на восемь позиций!? А эти, модифицированные мной с eBAY, больше ни куда не пойдут в кокпите, можно их считать учебным материалом?! Спасибо Вам! :sarcastic:

Share this post


Link to post
Share on other sites

Это не потенциометры. Это поворотные переключатели. Потенциометрами называются переменные резисторы с большой ручкой для оперативного кручения руками (бывают еще маленькие переменные резисторы, под отвертку, они называются подстроечными).

Edited by САБ
  • Upvote 1

Share this post


Link to post
Share on other sites

Да, я тоже склоняюсь уже к тому, что кроме Поляков и Испанцев купить больше не где!  Будем брать, значит у них! Эх, надо было сразу заказывать вместе с MIP-панелями, но думал, я самый умный и сэкономлю на покупке с eBAY,а оно вот оно как... :umnik2: Спасибо Вам ребята всем за советы.  Значит, мне нужно для моей MIP (брал эту  http://www.simworld.pl/shop/product_info.php?cPath=10&products_id=36) 7  потенциометров  с ходом на 45 градусов и все на восемь позиций!? А эти, модифицированные мной с eBAY, больше ни куда не пойдут в кокпите, можно их считать учебным материалом?! Спасибо Вам! :sarcastic:

Те что купленные на Ebay пригодяться Вам для оверхеда, там есть переключатели на 30 град,  и один еще на МСP

Edited by popovichyr
  • Upvote 1

Share this post


Link to post
Share on other sites

Спасибо,

popovichyr

  значит, не все так уж и плохо... :umnik2:

Edited by Antonio737

Share this post


Link to post
Share on other sites

В продаже есть готовое решение под вашу панель. Сэкономит время:

http://www.sismo-soluciones.com/index.php/shop/components-parts/1-2013-08-20-detail

Сергей привет, но Вы ведь тоже говорите, что нравится собирать  своими руками, тем более  собрать этот модуль самому совсем не сложно,зачем переплачивать существенную разницу!?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...