Touradg
  • Touradg
  • 100% (عالی)
  • مدیریت شروع کننده موضوع شبیه ساز: Prepar3D 5.3
14 سال پیش
در طول سالها طراحی و توسعه شبیه ساز پرواز مایکروسافت موضوع برقراری ارتباط با شبیه ساز پرواز و قابلیت ارسال اطلاعات و درخواستها به شبیه ساز و خواندن متغیرها از شبیه ساز جزء مسائل بسیار پر اهمیت بوده است که بخش عمده ای از زمان طراحی را به خود اختصاص میداده است.تا قبل از ویرایش دهم شبیه سازپرواز این وظیفه بر عهرده ماژولی به نام FSUIPC بوده است.علیرغم اهمیت زیاد این ماژول هیچ وقت مایکروسافت بطور رسمی این ماژول و پشتیبانی از آن را اعلام نکرد ولی بطور مخفیانه و در طول سالها کدها و سایر موارد را به طراح آن ارائه می کرده است.تا آنجایی که می توان سهم بزرگی از موفقیت شبیه ساز پرواز مایکروسافت را این ماژول و قابلیتهای آن دانست.این ماژول در اصل یک نوع هک هست و با جاروب محیط حافظه اختصاص یافته به شبیه ساز ، متغیرهای قابل خواندن و نوشتن را شناسایی می کند و این قابلیت را ایجاد می کند تا بتوانید اطلاعات را بخوانید و یا بر روی بخش خاصی از حافظه اختصاص یافته بنویسید.این ماژول اولین بار به نام FS6IPC برای شبیه ساز پرواز 98 مایکروسافت ارائه شد و سپس با واگذاری آن به پیت داوسون ایشان وظیفه تکمیل و بهبود آنرا بر عهده گرفت.ذکر این نکته که آقای داوسن تحلیلگر اسبق نرم افزارهای وزارت دفاع ایالات متحده بوده اند نیز خالی از لطف نیست.
به هر حال در ویرایش دهم تصمیم گرفته شد تا این وظیفه بطور رسمی به یک ماژول اختصاصی سپرده شود.این ماژول بعدها SimConnect نامیده شد.
این ماژول با یک پروتکل بسیار قدرتمند و در عین حال ساده و امن وظیفه برقراری ارتباط بین شبیه ساز و نرم افزارهای غیر را بصورت نا همگام (بر خلاف FSUIPC) ممکن می سازد.سیم کانکت بر اساس مدل client-server و پروتکل ارتباطی Winsock این کار را انجام می دهد. مدل ارتباطی ناهمگامی که پیشتر ذکر شد دارای مزایایی نسبت به مدل همگام می باشد.از جمله:

-بازده بهتر در استفاده از چرخه های پردازشی
-استفاده از آن در نرم افزارهای با قابلیت استفاده از چند پردازشگر و یا چند نخی ها ایمن هست.
-پایداری بالاتر در زمان بروز خطا

یکی از نقاط ضعف این متد همانند تمام طراحی های وابسته به حلقه-بسته (Closed Loop) ، تاخیری هست که در این روش بوجود می آید که می توان با استفاده از متد هایی خاص در طراحی نرم افزارها این ضعف را پوشش داد.البته این ضعف بیشتر در طراحی مواردی مثل خلبان خودکار و یا هوش مصنوعی بکار رفته در ترافیک پروازی نمود خواهد نمود.تاخیر در محاسبه و دریافت اطلاعات در زمانهای بحرانی مثل مراحل آخر تقرب در یک فرود خودکار می تواند دردسر ساز باشد.

UserPostedImage


برای استفاده از سیم کانکت به دو صورت می توان اقدام کرد: پردازشهای داخلی مثل DLL ها و پردازشهای خارجی مثل EXE .نمونه شاخص استفاده از DLL ها ، نمایش دهنده های پروازی میباشند (Gauge)
یکی دیگر از مزایای استفاده از سیم کانکت قابلیت تعریف سطح اهمیت پردازشی (Priority) می باشد که در بازده نهایی برنامه تاثیر مستقیم دارد.می توان اهمیت پردازشی مواردی را همانند چراغهای فرود ،وضعیت فلپ ، و.. را که در طول پرواز دفعات کمی تغییر می کنند را پائین آورد و در عین حال اهمیت مواردی مثل سرعت ، ارتفاع و... را که دائماً در حال تغییر هستند افزایش داد.
سیم کانکت مجموعه بزرگی از متغیرها ، متدها و.. را پشتیبانی میکند و می تواند جایگزین خوبی برای FSUIPC باشد.استفاده از آن بسیار ساده و تقریباً تمامی زبانهای برنامه نویسی مرسوم را پشتیبانی میکند.


هرگونه برداشت و بهره برداری از این مطلب بدون ذکر منبع هیچ موردی ندارد ولی انصاف نیست. [blackhee]

PC Flight Simulation Geek Since 1998
Mostafaa747
14 سال پیش
ممنون تورج جان؛ مقاله جالبی بود!
با وجود این مقاله ها فروم به سمت تخصصی تر و حرفه ای تر شدن پیش میره 😁
امیدوارم دوستانی که ایده هایی رو در سر دارن، بعد از خوندن این مقاله، با بهره گیری ازش، بتونن با طراحی نرم افزاری هرچند ساده، در جهت توسعه توانایی هاشون حرکت کنن! 👍
Touradg
  • Touradg
  • 100% (عالی)
  • مدیریت شروع کننده موضوع شبیه ساز: Prepar3D 5.3
14 سال پیش
ممنون مصطفی جان
امیدوارم همینطور باشه.این مقالات فقط ایده های اولیه هستند.امیدوارم دوستان هم همت کنند.
PC Flight Simulation Geek Since 1998
S.Salahshour
  • S.Salahshour
  • 66.36% (دوستانه)
  • بال نقره ای - شاهین سوار
14 سال پیش
ممنون تورج جان بسیار مقاله جالب و مفیدی بود امیدوارم بیشتر شاهد چنین مقالاتی باشیم
mohammad razzaghi
14 سال پیش
من روی این simconnect یه تحقیقاتی کردم، کار باهاش ساده تر از FSUIPC هست ولی مشکلش اینه که FS9 رو پشتیبانی نمیکنه، و اکثریت دوستان هم من جمله خود من هنوز به نسخه 9 وفاداریم 😉
کاربرانی که در حال مشاهده موضوع هستند