PDA

View Full Version : چند تا سوال در زمینه های مختلف در vb.net



aminsaeedi
شنبه 23 دی 1391, 16:37 عصر
من برنامه دارم که با میکرو avr ارتباط داره زبان میکرو هم بیسیک هست

1- یک سری داده از vb.net به سمت میکرو ارسال می شود
(این داده ورودی از کاربر فقط عدد هست و موقع ارسال یک کد برای شناسایی نوع داده به اول آن اضافه می شود و در میکرو عدد از شناسه جدا شده و پردازش لازم روی آن انجام می شود حالا من می خوام که همین داده ارسالی به vb.net برگرده برای تأیید صحیح بودن داده ارسالی البته بعد از پردازش روی اون

من از رویداد datarecived استفاده کردم و با دستور readline مقدار رسیده را در یک متغیر ریختم

حالا چطوری می تونم این رو نمایش بدم


2- وقتی برنامه را نوشتم و یک فایل جدا از visual studio رو بدست آوردم
توی هر بار اجرا شدن برنامه مقدار متغیر ها چگونه است صفر می شود یا اینکه آخرین مقدار رو در آخرین اجرا خواهد داشت

3- چطور حالت defult درست کنم توی برنامه

aminsaeedi
شنبه 23 دی 1391, 22:50 عصر
کسی نمی تونه جواب من رو بده :ناراحت:

aminsaeedi
یک شنبه 24 دی 1391, 13:25 عصر
دوستان یه کمک به من بکنید خیلی گیر کردم

aminsaeedi
دوشنبه 25 دی 1391, 11:23 صبح
:ناراحت::گریه:

aminsaeedi
چهارشنبه 27 دی 1391, 00:10 صبح
چرا اینجا کسی به داد آدم نمی رسه

Leon_SFS
چهارشنبه 27 دی 1391, 22:47 عصر
جواب سوال 2 : بله تو هر بار اجرا متغیرهایی که تو برنامه تعریف میکنی ریست میشه
چون اونارو تو رم تعریف میکنه و وقتی از برنامه خارج میشه حافظه ایی که برنامت از رم گرفته پاک میشه

سوال 3: آره میتونی
چنتا راه داره یکی که به صورت هارد کد،یعنی موقع تعریف متغییر بیای مقدار دهی اولیه کنی
یه راه دیگه اینکه مقدار های اولیتو بیای تو یه فایل ذخیره کنی و بعد موقع اجرای برنامه بیای اون فایلرو بخونی


سوال 1 رو هم بیشتر توضیح بده،میخوای محتوای متغییرتو چاپ کنی جایی؟

aminsaeedi
پنج شنبه 28 دی 1391, 11:09 صبح
Private Sub srl_datarecived(ByVal sendr As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles srl.DataReceived
Dim s As String = srl.ReadLine()
lbl.Text = s

End Sub

http://s3.picofile.com/file/7623414301/Capture3.png


من این برنامه رو نوشتم برای دریافت روی خط سوم برنامه هنگ می کنه و توی این خط من دارم مقدار متغیر رو توی یک لیبل می ریزم مقدار متغیر توی عکس نشون میده که به درستی از سمت میکرو اومده ولی توی نمایش دادنش مشکل دارم

Leon_SFS
پنج شنبه 28 دی 1391, 22:09 عصر
خب این به خاطر اینه که اون ایونت srl_datarecived داره تو یه ترد دیگه اجرا میشه واسه اینکه دیتا رو بگیره و تو میخوای از یه ترد دیگه به کنترل های تو صفحه دسترسی داشته باشی
که ترد ui که مسئول کنترل های تو صفحت هست نمیزاره
یه راه داره اینکه بیای یه اینوکر بنویسی که بگرد اگه نتونستی چیزی پیدا کنی بگو واست مثال بزارم
راه آسونش اینه که
1. اون متغییری که توش دیتا اومدرو میریزی پابلیک تعریف کنی
بعد بیای مثلا یه فلگ تو برنامت تعریف کنی،بعد با یه تایمر هی اون فلگرو چک کنی که اگه true بود یعنی دیتا اومده
و بری دیتارو چاپ کنی

dim s as string
dim flag as boolean
Private Sub srl_datarecived(ByVal sendr As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles srl.DataReceived
s = srl.ReadLine()
flag = true
End Sub

تو ایونت تایمر :
if flag = true then
lbl.text = s
flag = false
end if

من وی بی چندان وارد نیستم،کدایه بالارم همینجا نوشتم
شاید خطایه نحوی داشته باشه ولی همچین فرمی میتونه داشته باشه

aminsaeedi
پنج شنبه 28 دی 1391, 23:31 عصر
این قضیه تایمر رو خوب اومدی آقا لئون فعلا مشکلم حل شده باید برم در مورد کار با فایل ها هم یه بررسی کنم تا ببینم اون قسمت 3 رو باید چکار کنم فعلا ممنون