PDA

نسخه کامل مشاهده نسخه کامل : بلوتوث های USB در #C



آذرخش64
22-06-2009, 11:28
من برنامه زیر نوشتم.قراره یک بایت یک بایت اطلاعات بفرسته.این اطلاعات قراره از طریق بلوتوثی که به سیستمم زدم بفرسته.
وقتی بلوتوث به usbزدم خود سیستم بهشcom4 نسبت داده.بنابراین برنامشو مثله پورت سریال نوشم .اما وقتی برنامه رو اجرا می کنم.برنامه قفل می کنه.شاید برنامه اشتباهه.اگه کسی میتونه کمک کنه.ممنون!


string portName = "COM4";
;int buadRate = 9600
SerialPort serialPort = new SerialPort(portName,buadRate
;serialPort.DtrEnable = true
;serialPort.RtsEnable = true
;serialPort.Handshake = Handshake.None
;serialPort.Parity = Parity.None
;serialPort.StopBits = StopBits.One
System.IO.Ports.SerialPort serialport = new
;(System.IO.Ports.SerialPort("COM3",9600
;serialport.WriteTimeout = 128
;()serialport.Open

;(serialport.Write(codstr, 0, codstr.Length

;()serialPort.Clos

عــــلی
22-06-2009, 22:15
سلام خسته باشید ....
کدای جدید میبینم:31:. تاحالا اینجور کد ندیده بودم شاید به خاطر اینه که زیاد با سخت افزار کار نکردم:20:.
این کدها رو لطفاً تو تگ کد بزارین تا RTL بشه. کلی اررور داشت.میشه بپرسم چرا هم از کام4 استفاده کردین هم از کام3 مگه نگفتی برنامت تو کام4 هست پس کام3 چیه.
دنبال یه برنامه آماده بگرد ببین میتونه باهاش ارتباط برقرار کنه؟ بعد اگه اون برنامه موفق شد بدون از برنامه خودته.

آذرخش64
22-06-2009, 23:35
[CODE][/
private void btncod_Click(object sender, EventArgs e)
{
byte[] str = new byte[5];
str[0] = 12;
str[1] = 24;
str[2] = 102;
str[3] = 215;
str[4] = 2;
string portName = "COM4";
int buadRate = 9600;
SerialPort serialPort = new SerialPort(portName, buadRate);
serialPort.DtrEnable = true;
serialPort.RtsEnable = true;
serialPort.Handshake = Handshake.None;
serialPort.Parity = Parity.None;
serialPort.StopBits = StopBits.One;
serialPort.Open();
serialPort.Write(str, 0, str.Length);
serialPort.Close();

}
CODE]

آذرخش64
23-06-2009, 13:12
کد:
privatevoid btncod_Click(object sender, EventArgs e){byte[] str = newbyte[5];str[0] = 12;str[1] = 24;str[2] = 102;str[3] = 215;str[4] = 2;string portName = "COM4";int buadRate = 9600;SerialPort serialPort = newSerialPort(portName, buadRate);serialPort.DtrEnable = true;serialPort.RtsEnable = true;serialPort.Handshake = Handshake.None;serialPort.Parity = Parity.None;serialPort.StopBits = StopBits.One;serialPort.Open();serialPort.Write(st r, 0, str.Length);serialPort.Close();}

خواهشا اگه کسی می تونه کمک کنه 12 روز دیگه تحویل پروژه دارم.

_H2_
23-06-2009, 17:57
سلام
سوالات C#.Net را بهتر است در انجمن مربوطه بپرسید تا زودتر هم به جواب برسید ...
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

=====

من تاحالا با bluetooth در دات نت کار نکرده ام ...
ولی دستورات صحیح کار با SerialPort میتواند چیزی شبیه این باشد:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

بدیهی است در صورتی که اینراه برای اتصال به یک سخت افزار خاص جواب هم دهد، شما باید استانداردهای سخت افزاری و نرم افزاری آن وسیله را رعایت کنید...
مثلاً اینکه سرعت انتقال دیتا چقدر باشد، بیت توازن چه طور تنظیم شود و...
یا شاید ان سخت افزار برای اتصال نیاز به ارسال الگوی خاصی از بایتها بر طبق یک پروتکل یا جدول خاص داشته باشد ...
شما باید استاندارهای استفاده اتصال به سخت افزار bluetooth را کامل پیدا کرده و مطالعه کنید.

آذرخش64
23-06-2009, 18:15
مگه همه بلوتوث ها نرخ باود یکسان ندارن؟اگه یکسان نباشه که ما واسه گوشی موبایل هم باید هر بار نرخ تعیین کنیم.برنامه شما هم تقریبا مشابه منه.جواب نمیده.راستی اون data2واسه چیه؟

_H2_
25-06-2009, 10:56
سلام

مگه همه بلوتوث ها نرخ باود یکسان ندارن؟
منظورم ان بود که من این اطلاعات استاندارد را ندارم و مثلاً مطمئن نیستم این عدد 9600 است یا خیر!
و همچین پارامترها و تنظیمات دیگر ...


برنامه شما هم تقریبا مشابه منه
بله، در اصل کد خودتان است که به شکل دات نتی تر و خواناتر باز نویسی شده.
این یک کد استاندارد است که مشکل خاصی ندارد، یعنی اگر کد پست 5 کار نکند یا باید تمظیمات کلاس SerialPort را تغییر دهید یا کلاً این راهش نیست.
(
چون در کد پست اول همانطور که جناب hamishebahar هم اشاره کردند یک اختلاف COM3 و COM4 داشتید و در دو پست بعدی هم آرایه را به طرز نامناسبی ساخته اید که راه ساده تری داشته، نتیجتاً فقط کد خودتان را ...
)


راستی اون data2واسه چیه؟
برای روز مبادا !
در اصل میخواستم روش استاندارد تبدیل String به []byte را هم بیان کنم، چون در خیلی از موارد سخت افزاری این تیپی این دستورات کاربرد دارند.
(البته خود کلاس SerialPort هم میتواند این تبدیلات را انجام دهد.)
سپس بارها در تالارهای گفتگو دیده ام که افراد این روش استاندارد را که بلد نیستند یک کدهایی عجیب و غریبی برای این کار مینویسند ... !


با سخت افزارها و نرم افزارهای یا LPT و COM کارکرده ام ولی در ضمینه bluetooth اطلاعاتی ندارم ولی واقعاً فکر نمیکنم به همین راحتی بتوان از بایت اول شروع به ارسال اطلاعات کنید.
حداقل باید یک الگوی هدری خاص برای ارسال بسته های اطلاعات داشته باشد؛ یک استاندارد !

یک سرچ میکنم، اگر چیز بدربخوری در این مورد استاندارد نرم افزاری تبادل اطلاعات در bluetooth پیدا کردم برایتان میگذارم.

آذرخش64
25-06-2009, 18:09
سلام
خیلی ممنونم.به زبان#c تسلط کافی ندارم.10 روز دیگه تحویل پروژه دارم.ممنون میشم اگه چیزی پیدا کردین کمکم کنید.

_H2_
26-06-2009, 22:15
سلام
من یک سرچی روی ارتباط با تجهیزات usb و bluetooth انجام دادم و چند نمونه سورس کد پیدا کردم، متاسفانه یه علت کمی وقت این سورسها را بررسی نکرده ام ولی 4 مورد را که از سایتهای مختلف دانلود کرده ام و به نظرم بیشتر به کار شما شبیه بود برایتان یکجا آپلود کردم.
امیدوارم این پک بکارتان بیایید و کمکتان کند...
متاسفانه گمانم نتوانم کمک بیشتری کنم.

این سورس کد را برای نحوه ارتباط با درگاه usb و bluetooth در زبان C#.Net بررسی کنید
(برخی از سورسها از کامپونتهایی سفارشی استفاده میکنند که درون بسته موجود هستند.)

rapidshare.com/files/248919268/C_-USB-Bluetooth.zip
موفق باشید.