روباتیک و انتقال اطلاعات محیطی روبات به کامپیوتر ( قسمت 11 )

 

تیر ماه 85 شماره 23

اشاره :
بحث مقدماتی ورودی کردن پورت پرینتر را در مقاله گذشته آغاز کردیم و در این شماره آنرا به پایان خواهیم برد. امیدوارم مثل همیشه به آزمایش عملی آزموده های خود بپردازید. متاسفانه علیرقم اظهار لطف و محبت دوستان، در این شماره نمی توانم قسمت پرسش و پاسخ را قرار دهم، اما در شماره آینده حتما آن را خواهید دید. در شماره های قبلی تمامی مراحل ارسال اطلاعات به پورت موازی را همراه با کد، مورد بررسی قرار داریم. در صورتی که احساس می کنید، برخی از موارد را فراموش کرده اید، سری به چند مقاله قبلی بزنید. علاوه بر این، در این مقاله به تکمیل برنامه ناظر Online پورت موازی نیز خواهیم پرداخت که می تواند بعنوان یک برنامه کمکی، بر تمامی کارهایی را که بر روی پورت پرینتر انجام می دهید، نظارت داشته باشید. همانطور که قبلا نیز اشاره نموده بودیم، علاوه بر امکان نظارت، امکان تغییر داده ها را نیز به برنامه اضافه کرده ایم.


تکمیل برنامه ناظر Online پورت موازی
نکته: فراموش نکنید که فایل inpout32.dll را در پوشه System32 که در پوشه Windows قرار دارد، کپی نمایید.

در شماره های قبل تنها بر روی بیت های داده ای کار کرده بودیم. در اینجا برای تکمیل برنامه خود، کار بر روی بیت های کنترلی و همچنین بیت های وضعیتی را به پایان می بریم. توجه داشته باشید که بیت های وضعیتی نباید توسط کاربر تغییر یابند.
حال کدهایی که برای نمایش وضعیت بیت های کنترلی نیاز داریم، از نظر می گذرانیم

توجه: جاهایی که از علامت سه نقطه (...) استفاده شده است، بدین معناست که کدهای آن قسمت ها، در شماره قبل اشاره شده است.

کد1


شکل 1 برنامه را در حال اجرا نمایش می دهد:

شکل 1


حال برای اعطای اجازه تغییر بیت های کنترل، کد 2 را استفاده نمایید:

کد 2


توجه داشته باشید که می بایست بعد از انتخاب تمامی CheckBox های قسمت کنترل، از پنجره Object Inspector بر روی برگه Events کلیک نموده و از قسمت OnClick گزینه StrobeClick را انتخاب نمایید( شکل 2) .

شکل 2


با این کار، تمامی تغییرات اعمال شده به CheckBox ها در این قسمت پردازش می شوند.
دریافت اطلاعات از پورت موازی
ابتدا در قسمت Setup سیستم خود، تنظیمات پورت موازی خود را به حالت EPP تبدیل نمایید. (حالت SPP برای کار بر روی پورت مناسب نیست).
حال می بایست کارهای زیر را انجام دهیم:
بیت شماره پنج (ششمین بیت) موجود در آدرس 37A+400 را به 1 تبدیل می کنیم.
بیت شماره پنج (ششمین بیت) موجود در آدرس 37A را به 1 تبدیل می کنیم.
حال شما براحتی می توانید اطلاعات ارسال شده از یک مدار خارجی را توسط پورت موازی دریافت و در سیستم رایانه خود مورد پردازش قرار دهید.
ابتدا به شکل 3 که حالت طراحی برنامه را نشان می دهد توجه کنید.

شکل 3


توضیحات برنامه:
ابتدا توجه نمایید که حالت پیش فرض Timer ها، وضعیت False است. دکمه Read From LPT برای تبدیل وضعیت پورت به حالت ورودی و دریافت اطلاعات از طریق پورت تعبیه شده است. توجه داشته باشید که Edit قرار گرفته در این قسمت Read Only است و کاربر نمی تواند تغییری در آن بوجود آورد.
دکمه Automatic Receive کارهای یاد شده برای دکمه Read From LPT را بصورت اتوماتیک انجام می دهد. با زدن این دکمه، هرگاه ورودی پورت تغییر پیدا کرد، تغییرات، بصورت اتوماتیک منعکس خواهند شد.
دکمه Sending Data نیز برای تبدیل پورت، به حالت ورودی و ارسال اطلاعات به پورت، تعبیه شده است. دکمه Automatic Sending برای ارسال مکرر داده ها به پورت، مورد استفاده قرار می گیرد. با فعال نمودن این حالت، تنها با وارد کردن مقدار مورد نظر، آن مقدار به پورت ارسال می شود.
توجه داشته باشید، که نمی توان در یک آن، پورت موازی، هم ورودی و هم خروجی باشد. حال در اینجا از زبان کامپیوتر برای بیان مراحل کار استفاده نماییم.

نکته: فراموش نکنید که فایل inpout32.dll را در پوشه System32 که در پوشه Windows قرار دارد، کپی نمایید.

کدهای که وظیفه معرفی فایل dll را بر عهده دارند( کد 3) :

کد 3


کدهای مربوط به دکمه Read From LPT

کد 4


کدهای مربوط به دکمه Automatic Receive
در شکل 5 ، حالت برنامه را در صورتی این دکمه را فعال کنید مشاهده می کنید:

شکل 4


همانطور که شاهد هستید، برچسب دکمه تغییر کرده است و دکمه ارسال اتوماتیک غیر فعال شده است( کد 5 ) .

کد 5

کد مربوط به Timer1

کد 6


کد های مربوط به دکمه Sending Data

کد 7


توجه داشته باشید که می تواندی بجای کد  a and 223میتوانید از با استفاده از عملگرهای منطقی and و not به هدف خود برسید: a and not(32)
کدهای مربوط به دکمه Automatic Sending
در شکل 5 ، حالت برنامه را در صورتی این دکمه را فعال کنید مشاهده می کنید:

شکل 5


همانطور که شاهد هستید، برچسب دکمه تغییر کرده است و دکمه دریافت اتوماتیک غیر فعال شده است( کد 8 ) .

کد 8

کد مربوط به Timer2

کد 9


حال می توانید با رعایت اصول ایمنی که در شماره قبل به آن اشاره شد، نتایج عملی تمام این کارها را بر روی کامپیوتر خود شاهد باشید.
بدلیل طولانی شدن مطالب، پاسخ به سوالات شما را در شماره آینده قرار خواهم داد.
موفق باشید و سربلند.



     
 

  
نویسنده : ali gooliof ; ساعت ۱٢:۳٧ ‎ب.ظ روز ۱۳۸٧/٢/٢٤
تگ ها :