PDA

View Full Version : درخواست کمک برای ارسال کاراکتر به پورت سریال



kaka11111
شنبه 06 بهمن 1386, 13:13 عصر
سلام
راستش من برنامه نویس نیستم . رشته ام الکترونیکه و برای انجام یک پروژه به برنامه نویسی نیاز پیدا کردم .
علت انتخاب vb هم اینه که من برای برنامه نویسی در میکرو کنترل ها از بیسیک استفاده میکنم و کمی با دستوراتش آشنا هستم .
برنامه من باید ارتباط بین دو کامپوتر را از طریق اینترنت برقرار کرده و از برنامه client یک کاراکتر رو به server بفرسته و سپس server اون کاراکتر رو به پورت سریال بفرسته و میکرو اون کاراکتر رو بگیره و عکس العمل مناسب رو انجام بده .
مشکل اینجاست که با وجود اینکه از کار کرد میکرو مطمئن هستم و می دانم که اگر کاراکتر ی از پورت سریال فرستاده بشه حتماً میکرو درست کار میکنه میکرو کنترلر به برنامه vb من جواب نمیده .
این کد برنامه سروره :

'vaghti ro Start click koni in dastorat ejra mishe
Private Sub Command1_Click()
Com.CommPort = 1 'porte serial shomareye 1 (poshte computer)
Com.Settings = "4800,N,8,1" 'tanzimat baud tedad bit ersali
Com.PortOpen = True 'porto baz kon
Win.LocalPort = 789 'porte shomareye 789 baraye tcp/ip
Win.Listen 'porto baz kon
End Sub
'har vaght kasi bekhad vasl besh in dastora ejra mishan
Private Sub Win_ConnectionRequest(ByVal requestID As Long)
If Win.State <> sckConnected Then 'age ghablan vasl nashodim
Win.Close
Win.Accept requestID 'darkhast bargharie ertebat ro ghabol kon
End If
End Sub
'har vaght az client chizi berese in dastorat ejra mishe
Private Sub Win_DataArrival(ByVal bytesTotal As Long)
Dim Data As String * 1
Win.GetData Data 'etelaato dar moteghayere data zakhire kon
Com.Output = Data 'etelaato mostaghim be porte serial befrest
End Sub

منتظر راهنمایی هاتون هستم

ftmotlagh
شنبه 06 بهمن 1386, 13:50 عصر
این مشکلی نداره ...
برنامه میکرو رو بگذارید ...
با چه میکرویی کار می کنید؟؟؟

kaka11111
شنبه 06 بهمن 1386, 21:30 عصر
سلام
راستش من از برنامه میکرو کاملاً مطمئن هستم . با محیط ترمینال امولاتور چکش کردم ( محیط ترمینال امولاتور مستقیم کاراکتر رو به پورت سریال می فرسته ) اما برای اینکه اشکال احتمالی بر طرف بشه کدش رو میذارم .(میکرو avr شماره mega32)

$regfile = "m32def.dat"
$crystal = 4000000
$baud = 4800
Dim I As Integer
Dim D As String * 1
Config Lcd = 16 * 2
Config Lcdbus = 4
Config Lcdpin = Pin , Db4 = Porta.1 , Db5 = Porta.2 , Db6 = Porta.3 , Db7 = Porta.4 , E = Porta.5 , Rs = Porta.6
Cursor Off
Do
' Cls
Main:
D = Waitkey()
Lcd D
Waitms 200
Cls
Select Case D
Case Is = "1":
Toggle Portb.0
Lcd "reley 1"
Waitms 100
Case Is = "2":
Toggle Portb.1
Lcd "reley 2"
Waitms 100
Case Is = "3":
Toggle Portb.2
Lcd "reley 3"
Waitms 100
Case Is = "4":
Toggle Portb.3
Lcd "reley 4"
Waitms 100
Case Is = "5":
Toggle Portb.4
Lcd "reley 5"
Waitms 100
Case Is = "6":
Toggle Portb.5
Lcd "reley 6"
Waitms 100
Case Else :
Goto Main
Toggle Portc.0
Lcd "else"
Waitms 100
End Select
Loop

این برنامه میکروه .
منتظر جوابتون هستم

ftmotlagh
یک شنبه 07 بهمن 1386, 12:18 عصر
سلام
راستش من از برنامه میکرو کاملاً مطمئن هستم . با محیط ترمینال امولاتور چکش کردم ( محیط ترمینال امولاتور مستقیم کاراکتر رو به پورت سریال می فرسته ) اما برای اینکه اشکال احتمالی بر طرف بشه کدش رو میذارم .(میکرو avr شماره mega32)

بله ...
من خودم برنامه نویس میکرو هستم یه لحظه کد رو ببینم....

ftmotlagh
یک شنبه 07 بهمن 1386, 12:51 عصر
؟؟؟؟؟ هیچ مشکلی ندارن ...
برنامه Client رو هم بزارید...
شاید اون مشکل داشته باشه.

ag_ae_sps
یک شنبه 07 بهمن 1386, 14:20 عصر
شاید اینها کمک بکنه من با com.rar میتونم از com یک کامپیوتر به com کامپیوتر دیگه Text بفرستم

CommChk_En
هم یک Port Monitor هست که میتونه مفید باشه

موفق باشید

kaka11111
دوشنبه 08 بهمن 1386, 13:15 عصر
سلام این هم برنامه client

'har vaght ro connect click konim in dastorat ejra mishan
Private Sub Command1_Click()
Win.RemoteHost = Text1 'ip computer servere ke dar text1 neveshte shode baraye connect moshakhas mikonim
Win.RemotePort = 789 'porte server
Win.Connect 'vasl besho
End Sub
'har vaght ro relay 1 click konim in dastorat ejra mishan (ghablesh bayad vasl shode bashim)
Private Sub Command2_Click()
Win.SendData "1" ' code ascii charactere 1 ro befrest
End Sub
'har vaght ro relay 2 click konim in dastorat ejra mishan (ghablesh bayad vasl shode bashim)
Private Sub Command3_Click()
Win.SendData "2" ' code ascii charactere 2 ro befrest
End Sub
'har vaght ro relay 3 click konim in dastorat ejra mishan (ghablesh bayad vasl shode bashim)
Private Sub Command4_Click()
Win.SendData "3" ' code ascii charactere 3 ro befrest
End Sub
'har vaght ro relay 4 click konim in dastorat ejra mishan (ghablesh bayad vasl shode bashim)
Private Sub Command5_Click()
Win.SendData "4" ' code ascii charactere 4 ro befrest
End Sub
'har vaght ro relay 5 click konim in dastorat ejra mishan (ghablesh bayad vasl shode bashim)
Private Sub Command6_Click()
Win.SendData "5" ' code ascii charactere 5 ro befrest
End Sub
'har vaght ro relay 6 click konim in dastorat ejra mishan (ghablesh bayad vasl shode bashim)
Private Sub Command7_Click()
Win.SendData "6" ' code ascii charactere 6 ro befrest
End Sub


از لطف و همراهیتون متشکرم
:تشویق::تشویق:

ftmotlagh
دوشنبه 08 بهمن 1386, 14:00 عصر
این هم مشکل نداره .
بدون اینکه به کام بفرستی چکش کن ببین اصلا اطلاعات رد و بدل می شه یا نه؟؟

kaka11111
دوشنبه 08 بهمن 1386, 17:25 عصر
سلام
همون طور که قبلاً گفتم برنامه با محیط ترمینال امولاتور جواب میداد ( که البته الان با اون هم جواب نمیده ) و تا حدی خیالم از بابت ارتباط سخت افزاری راحته ضمناً هر از گاهی میکرو هم قاطی میکنه و کارهای عجیبی انجام میده مثلاً lcd رو نمی شناسه و پیغامی که قبل از wait key گذاشتم رو هم نمایش نمی ده
اگر راه دیگه ای برای تست ارتباط سختافزاری بلدید با توضیح کامل برانم بذارید .
مر30
:خجالت::خجالت::خجالت::خجالت:: جالت:

ftmotlagh
دوشنبه 08 بهمن 1386, 19:30 عصر
نه...
میکرو رو نمی گم...
ارتباط بین سرور و کلاینت رو میگم.

kaka11111
سه شنبه 09 بهمن 1386, 20:50 عصر
سلام
وقتی برنامه ها رو در vb اجرا می کنم و پس از ارسال کاراکتر از طریق client درون متغییر data ی برنامه server را نگاه می کنم کاراکتر درست داخلشه .
نمیدونم این کافیه یا نه ولی فکر کنم همین کافی باشه اگه راه دیگه ای سراغ دارید بهم بگید .
ممنون

ftmotlagh
چهارشنبه 10 بهمن 1386, 17:04 عصر
خوب طرز اتصال میکرو و پورت سریال رو بگید...
صد در صد از همونه...

kaka11111
جمعه 26 بهمن 1386, 23:27 عصر
سلام
بالاخره مشکل حل شد شاید ( وحتماً ) باورتون نمیشه مشکل از چی بود
برنامه ها کاملاً سالم بودند .
مدار هم سالم بود .
حتی کابل هم تعویض شد و معلوم شد سالم است
عیب ( اگه درست فهمیده باشم ) این بود که چون فرکانس میکرو روی 4000000 بود باود ریت به 4 تقسیم میشد .
چون وقتی به طور اتفاقی با باود 1200 به میکرویی که باود تنظیم شده اش 4800 بود کاراکتر فرستادم جواب داد در هر صورا از همکاری و راهنمایی تون متشکرم .
ضمناً میخواهم این پروژه را تکمیل کنم و آپشن های دیگری هم بهش اضافه کنم . و در این راه حتماً به کمک شما احتیاج پیدا خواهم کرد پس تا اون مو قع خدانگهدار

ftmotlagh
شنبه 27 بهمن 1386, 14:29 عصر
بله ، من اصلا به این توجه نکردم ...
امیدوارم موفق باشید...