# Native Code > برنامه نویسی در Delphi > مباحث عمومی دلفی و پاسکال > سوال: کار با پورت سریال در دلفی

## Mask

با سلام
در سایت و گوگل جستجو کردم.
دوستان کامپوننت comport رو پیشنهاد کرده بودند. که دانلود و نصب کردم اما نشد.
  چطوری میتونم مقدار ارسال شده رو برای پورت سریال مانیتور کنم.
با تشکر.

----------


## h_mohamadi

از کامپوننت mscom استفاده کنید

----------


## moein+

> از کامپوننت mscom استفاده کنید


سلام،
اگر امکان داره در مورد این MSCOM یکم توضیح می دین ؟ ویا مقاله ای،تاپیکی، چیزی در این مورد تو این فروم هست ؟
آیا MSCOM رو تو همه ویندوز ها می شه استفاده کرد ؟
و آیا برای ارتباط با USB  راهکاری دارید ؟

----------


## devil00x

من پیشنهاد میکنم از کامپوننت nrcomm استفاده کنی که :
- دسترسي مستقيم به پورتها Com و LPT
- دسترسي به دستگاههاي bluetooth 
- دسترسي به Telephone API 
- امكان Speech API 
- پشتيباني از Caller ID
- پشتيباني از GSM 
- امكان ارسال SMS
- استخراج اطلاعات مختلف از دستگاه GSM 
- پشتيباني از پروتكل Zmodem 
- دسترسي به پورتهاي USB
- كنترل دستگاههاي USB (خاموش/روشن كردن)
و ...
که من اینجا آپلود کردم.
امیدوارم مورد استفادت قرار بگیره.

----------


## kamran_dev

هدفتون برای استفاده از پورت سریال چی هست ؟

----------


## moein+

> من پیشنهاد میکنم از کامپوننت nrcomm استفاده کنی که :
> - دسترسي مستقيم به پورتها Com و LPT
> - دسترسي به دستگاههاي bluetooth 
> - دسترسي به Telephone API 
> - امكان Speech API 
> - پشتيباني از Caller ID
> - پشتيباني از GSM 
> - امكان ارسال SMS
> - استخراج اطلاعات مختلف از دستگاه GSM 
> ...


البته بنده از پاسخ شما نهایت تشکر رو دارم، ولی هر تازه واردی مثل من با چرخی در این فروم به این نتیجه می رسه که گفتگوها در اینجا بیشتر به شما ماهی را میدهد تا یادگیری ماهیگیری...
و دلیل سوال من در قسمت فوق بیشتر سعی در راستای ایجاد گفتگو و تشریح یک فرآیند تا تکمیل اون بود، چرا که دیدم در این فروم دوستانی حتی با مبانی ارسال و دریافت روی RS232 مشکل دارند در حالی که نسبت به ابزار آماده (کامپوننت ها) به نظر اشراف خوبی دارند! 
ممنون، موفق باشید.

----------


## mossaferin

> چطوری میتونم مقدار ارسال شده رو برای پورت سریال مانیتور کنم.


در واقع قصد نوشتن spy  داری ؟ یا تو برنامه خودت می خوای مقداری رو که ارسال میکنی ، مانیتور کنی؟

----------


## ariobarzan

سلام
من با Comport  کار کردم 
کار باهش راحته

اول روی فرم یه ComPort بزار
2- با دستور  ComPort1.Open   این کمپوننت گوش به زنگ داده های دریافتی از پورت سریال میشه می تونی این دستور را موقع نمایش فرم اجرا کنی
3- در خاصیت  onRxChar   اون شروع کن به کد نویسی 
ComPort1.Read(data,count)

 data  یه متغیره که از نوع Byte باید تعریف کنی
Count  هم متغیریه که جزیی از پروسیجر  onRxChar   خود برنامه تعریف میکنه

بقیه کار هم بستگی بخودت داره  مثلا میتونی یه Memo بزاری روی صفحه که وقتی یه دیتا اومد تو پورت سریال و این کمپوننت  اتوماتیک دیتا رو خوند توی memo  هم درج کنه یا اینکه دیتا رو پردازش کنی و تصمیم خاصی بگیری
فقط یادت باشه که پیکربندی اطلاعات ارسالی و پورت باید با هم سازگار باشه
برای تنظیم پیکربندی پورت هم از دستور ComPort1.ShowSetupDialog
استفاده کن .
به همین راحتی
موفق باشی :چشمک: 
--------------------
با دستور ComPort1.close
هم این کمپوننت دست از گوش دادن به پورت سریال برمیداره :خیلی عصبانی: 
بهتره موقعی که کاری با پورت نداری یا آخر برنامه این دستور را هم بنویسی

----------


## ariobarzan

> من پیشنهاد میکنم از کامپوننت nrcomm استفاده کنی .


لطفا در مورد نحوه کار با این کمپوننت لطف کنید یه کم توضیح بدین :تشویق:  :تشویق: 
بنظر میآد کمپوننت خوبی باشه
یه سوال دیگه : نصب این کمپوننت رایگانه؟ نیاز به کرک یا ..... نداره ؟ :متفکر:

----------


## MohsenB

اگه دنبال کد اساسی می گردین به این کدا نگاه کنید:

procedure Out32(PortAddress:smallint;Value:byte);stdcall;
{Write a byte to a port.}
begin
     asm
        push dx
        mov dx,PortAddress
        mov al, Value
        out dx,al
        pop dx
     end;
end;

function Inp32(PortAddress:smallint):byte;stdcall;
{Read a byte from a port.}
var
   Value:byte;
begin
   asm
        push dx
        mov dx, PortAddress
        in al,dx
        mov Value,al
        pop dx
    end;
    Inp32:=Value
end;
ازاین کدها میتونید برای ارسال و دریافت روی پورتا استفاده کنید ، مثلا برا نوشتن به بایت روی پورت موازی(LPT) می تونید بنویسید :
Out32($378 ,140);این کد عدد 140 رو رو پورت پرینتر می ریزه .
البته یه مشکل این کدا اینه که ویندوز ایکس پی به بالا بهش از لحاظ امنیتی گیر میده.

----------


## ariobarzan

برنامه نويسي كد اسمبلي تو دلفي  بعد از ويندوز  98   ، ديگه تو  بقيه ويندوز ها  با مشكلاتي همراه هست .
فكر كنم استفاده از كمپوننت ها خيلي بهتر باشه و جوابگو هم هست
اون قديما  كه با پاسكال  تحت داس يا با دلفي 3  تحت ويندوز 95 و 98  با پورت ها  كار ميشد اين كد ها  راه حل بود  ولي  همونطور كه دوستمون هم اشاره  كردند  از  xp  به بعد سيستم عامل به اين  جور برنامه نويسي گير  ميده . :ناراحت: 
همون كمپوننت ها رو استفاده كني راحت تري

----------


## sips65

سلام .
یک لینک دانلود واسه MSCOM قرار نمیدین ؟؟؟؟
مرسی.

----------


## Felony

> برنامه نويسي كد اسمبلي تو دلفي  بعد از ويندوز  98   ، ديگه تو  بقيه ويندوز ها  با مشكلاتي همراه هست .
> فكر كنم استفاده از كمپوننت ها خيلي بهتر باشه و جوابگو هم هست
> اون قديما  كه با پاسكال  تحت داس يا با دلفي 3  تحت ويندوز 95 و 98  با پورت ها  كار ميشد اين كد ها  راه حل بود  ولي  همونطور كه دوستمون هم اشاره  كردند  از  xp  به بعد سيستم عامل به اين  جور برنامه نويسي گير  ميده .
> همون كمپوننت ها رو استفاده كني راحت تري


بستگی به کدتون داره ، خیلی از توابع دلفی تو کتابخانه هاش با نوشتن اسمبلی به صورت inLine پیاده سازی شدن .

----------


## mr13668248

کل اینترنت رو گشتم و یه مطلب درست حسابی فارسی پیدا نکردم.   :افسرده:  :ناراحت:

----------


## hamedjim

> کل اینترنت رو گشتم و یه مطلب درست حسابی فارسی پیدا نکردم.


من کامپوننت nrcomm رو نصب کردم و با استفاده از مثال‌هایی که داشت تونستم به راحتی با پورت کام ارتباط برقرار کنم. در این پست هم برنامه ساده ای که رو نوشته بودم قرار دادم. از یک مبدل USB به سریال استفاده کردم و با آی‌سی Max232به بورد میکروکنترلری خودم وصل کردم. هر چیزی رو که از برنامه ارسال می کردم به راحتی روی LCD2*16 نمایش دادم و برعکس..

----------


## lemaghsoodi@gmail.com

با سلام 

من الان خیلی گیرم می شه کد کاملتری قرار بدی 
مثلا کد یک برنامه ساده که با کلیک روی دکمه اطلاعات خوانده شده از کامبورت را نمایش بده 
با تشکر

----------

