PDA

View Full Version : سوال: کمک در مورد دریافت وزن از باسکول



esagraphic
دوشنبه 13 بهمن 1393, 16:08 عصر
سلام من قبلا با یک نمایشگری کار میکردم در مورد باسکول وزن ثابت بود و کاراکتر های اظافی هم که داشت حذف میکردم اما این مورد فرق میکنه زمانی که وزن را از باسکول میگیرم کلی پشت سر هم دریافت میشه و اصلاً ثابت نیست چیطوری میتونم ثابت نگهش دارم تصویر را درج کردم

128135

طبق که در تصویر مشاهده میکنید کلی وزن را فرستاده حالا وزن مورد نظر من تنها 000190 است اینو میخوام اگه ثابت میبود میشد حذفش کرد لطفا هرکی میدونه رهنمائی کنه و اگه شما راهی بلدین که بتونم تنها 10 بیت را از پورت سریال دریافت کنم شاید مشکل حل بشه
اینم از کد ها م

Private Sub DisplayText(ByVal sender As Object, ByVal e As EventArgs)

textBox2.AppendText(StrRecieve)



End Sub


Private Sub serialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived




StrRecieve = SerialPort1.ReadExisting
Me.Invoke(New EventHandler(AddressOf DisplayText))

End Sub

Mani_rf
سه شنبه 14 بهمن 1393, 09:13 صبح
سلام.
بجای SerialPort1.ReadExisting از SerialPort1.ReadLine استفاده کن احتمالا درست میشه.

esagraphic
سه شنبه 14 بهمن 1393, 10:18 صبح
سلام.
بجای SerialPort1.ReadExisting از SerialPort1.ReadLine استفاده کن احتمالا درست میشه.

سلام
من اینکارو کردم اما اون موقع اصلاً هیچ نتیجه ای بدست نمیارم
اصلاً دریافت نمیکنه

Mani_rf
چهارشنبه 15 بهمن 1393, 09:41 صبح
من تجربه کار با پورت سریال رو ندارم اما به نظرم کاری که میشه انجام داد اینه که یک لیسنر برای این کار درست کنی که به کارکتر ابتدا یا انتهای رشته ورودی حساس باشه. چیزی شبیه به این:



Private Sub DisplayText(ByVal sender As Object, ByVal e As EventArgs)
textBox2.AppendText(Lisener.LastOrDefault)
End Sub


Private Lisener As New List(Of String) From {""}
Private Sub serialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived


Dim inputChar As String = SerialPort1.ReadExisting
If inputChar = "+" Then
Lisener.Add("")
Me.Invoke(New EventHandler(AddressOf DisplayText))
Else
Lisener(Lisener.Count - 1) = Lisener.Last & inputChar
End If


End Sub

esagraphic
چهارشنبه 15 بهمن 1393, 10:10 صبح
من تجربه کار با پورت سریال رو ندارم اما به نظرم کاری که میشه انجام داد اینه که یک لیسنر برای این کار درست کنی که به کارکتر ابتدا یا انتهای رشته ورودی حساس باشه. چیزی شبیه به این:



Private Sub DisplayText(ByVal sender As Object, ByVal e As EventArgs)
textBox2.AppendText(Lisener.LastOrDefault)
End Sub


Private Lisener As New List(Of String) From {""}
Private Sub serialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived


Dim inputChar As String = SerialPort1.ReadExisting
If inputChar = "+" Then
Lisener.Add("")
Me.Invoke(New EventHandler(AddressOf DisplayText))
Else
Lisener(Lisener.Count - 1) = Lisener.Last & inputChar
End If


End Sub




سلام باشه من اینو هم امتحان میکنم اما چیزی که دستگاه گفته این شکلی است شاید شما چیزی بدونین ازش
128179

esagraphic
چهارشنبه 15 بهمن 1393, 10:47 صبح
اون حالت لسنر را هم انجام دادم اما بازم هیچی دریافت نمی کنم

esagraphic
شنبه 18 بهمن 1393, 15:07 عصر
از دوستان کسی نبود کمک کنه در این زمینه

Mani_rf
دوشنبه 20 بهمن 1393, 15:16 عصر
سلام. بدون وجود دستگاه یک مقداری مشکله مشکل را حل کنیم. اگر ممکنه همون خروجی که با روش خودت گرفته بودی رو توی فایل متنی (.txt) ذخیره کن و بگزار تا ببینم کاری میتونم انجام بدم.