PDA

View Full Version : Serial Port



ar_monti@
یک شنبه 28 فروردین 1384, 14:27 عصر
سلام
دوستان عزیز من یک کد مناسب جهت ارتباط با Serail port جهت انتقال اطلاعات میخواهم. از دوستانی که به من کمک کنند بسیار ممنون هستم . اگر هم از کامپوننت خاصی استفاده میکنند مرا راهنمایی کنند .
ممنون

hr110
دوشنبه 29 فروردین 1384, 06:56 صبح
جستجو کنید، قبلا جواب داده شده :mad:

مثلاً:
http://www.barnamenevis.org/forum/viewtopic.php?t=19209

ar_monti@
دوشنبه 29 فروردین 1384, 09:35 صبح
سلام
دوست عزیز این لینکی که شما زحمت کشیدید و در اختیار من قرار دادید کار من را راه نینداخت به این دلیل که از کامپوننتی که در اختیار من قرار دادند Help خوبی معرفی نکردند.
با تشکر

hr110
دوشنبه 29 فروردین 1384, 10:30 صبح
گفتم مثلاً شما مابقی لینکها رو هم بیابید و پیگیری کنید مطئمن هستم که جواب شما در این سایت وجود دارد.
البته این رو هم قبل عرض کنم که نباید فکر کنید لقمه آماده براتون مهیاست، کمی هم خلاقیت و ابتکار و پشتکار نیازمندید. :wink:

:flower:

saeed_d
دوشنبه 29 فروردین 1384, 15:13 عصر
از Indy که توی خود دلفی هم هست می‌تونی استفاده کنی. اگه تو اینترنت یه کم بگردی مثالهای خوبی رو هم پیدا می‌کنی.

ar_monti@
سه شنبه 30 فروردین 1384, 12:04 عصر
ممنون از راهنماییتان

ar_monti@
سه شنبه 30 فروردین 1384, 16:13 عصر
با سلام
لطفا کمک کنید . من کد زیر را اجرا کردم و برای نوشتن و نواندن پورت سریال به مشکل برخوردم. تقاضا دارم مرا راهنمایی فرمایید. پیغامی که میدهد میگوید که پورت سریال را نمیتواند بخواند در صورتی که من توسط hyper terminal بین دو تا pc با همون کابل تونستم ارتباط برقرار کنم.

برای write نوشتم :

procedure TForm1.SendChar(sToSend:string);
begin
CommPort := 'COM1'; (***** 4 start *)
hCommFile := CreateFile(PChar(CommPort),
GENERIC_WRITE,
0,
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
WriteFile(hCommFile,
PChar(sToSend)^,
Length(sToSend),
NumberWritten,
nil); (***** 4 end *)
// Readfile(
CloseHandle(hCommFile); (***** 5 *)
end;



برای خواندن نوشتم :


procedure TForm1.ReceivChar(var sReciv:string);
begin
CommPort := 'COM1'; (***** 4 start *)
hCommFile := CreateFile(PChar(CommPort),
GENERIC_WRITE,
0,
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);

if not ReadFile (hCommFile, chBuffer, sizeof(chBuffer),
NumberOfBytesRead, Nil) then
showmessage('Problem with ReadStringFrmRS232');


{
ReadFile(hCommFile,
PChar(sToSend)^,
Length(sToSend),
NumberWritten,
nil); (***** 4 end *)
}

CloseHandle(hCommFile); (***** 5 *)
end;



لطف کنید متن را کپی کرده وآنگاه ملاحظه فرمایید.
ممنون

ar_monti@
سه شنبه 30 فروردین 1384, 16:15 عصر
یک سوال دیگه اینکه دراینجا آیا لازم است سریال پورت را Initialize کرد یا خیر.