View Full Version : سوال: کمک در مورد دریافت وزن از باسکول
esagraphic
دوشنبه 13 بهمن 1393, 17: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, 10:13 صبح
سلام.
بجای SerialPort1.ReadExisting از SerialPort1.ReadLine استفاده کن احتمالا درست میشه.
esagraphic
سه شنبه 14 بهمن 1393, 11:18 صبح
سلام.
بجای SerialPort1.ReadExisting از SerialPort1.ReadLine استفاده کن احتمالا درست میشه.
سلام
من اینکارو کردم اما اون موقع اصلاً هیچ نتیجه ای بدست نمیارم
اصلاً دریافت نمیکنه
Mani_rf
چهارشنبه 15 بهمن 1393, 10: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, 11: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, 11:47 صبح
اون حالت لسنر را هم انجام دادم اما بازم هیچی دریافت نمی کنم
esagraphic
شنبه 18 بهمن 1393, 16:07 عصر
از دوستان کسی نبود کمک کنه در این زمینه
Mani_rf
دوشنبه 20 بهمن 1393, 16:16 عصر
سلام. بدون وجود دستگاه یک مقداری مشکله مشکل را حل کنیم. اگر ممکنه همون خروجی که با روش خودت گرفته بودی رو توی فایل متنی (.txt) ذخیره کن و بگزار تا ببینم کاری میتونم انجام بدم.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.