PDA

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



saz20120
سه شنبه 04 خرداد 1389, 11:34 صبح
سلام دوستام

من میخوام وقتی که وقتی به پورت سریال 0 ارسال میشه عملی در پروژه انجام نشه و اگر 1 برای یک لحظه ارسال بشه یه تایمر شروع به ثانیه شماری کند و برای بار دوم که 1 ارسال میشه تایمر stop بشه. باید چه کار کنم.دوستان لطف کنن اگه بلدند بنسویسن:افسرده:

poorhasan
پنج شنبه 06 خرداد 1389, 09:11 صبح
سلام دوستام

من میخوام وقتی که وقتی به پورت سریال 0 ارسال میشه عملی در پروژه انجام نشه و اگر 1 برای یک لحظه ارسال بشه یه تایمر شروع به ثانیه شماری کند و برای بار دوم که 1 ارسال میشه تایمر stop بشه. باید چه کار کنم.دوستان لطف کنن اگه بلدند بنسویسن:افسرده:
دوست عزیز اینجا در مورد ابزار گزارش گیری در vb بحث میشه اینجا که جای این سوال نیست بعدش هم سوالتو واضح تر بیان کن با چی می خای 1 رو به پورت سریال بفرستی ؟؟؟؟؟؟؟؟:متفکر::متفکر::متفک ::متفکر:

saz20120
پنج شنبه 06 خرداد 1389, 21:08 عصر
به وسیله ی میکرو کنترولر

poorhasan
جمعه 07 خرداد 1389, 09:41 صبح
به وسیله ی میکرو کنترولر
سلام
یه دونه کنترل mscomm روی فرم میذاری
در رویداد لود فرم موارد زیر رو وارد می کنی

mscomm1.comport=1
mscom1.portopen=true
بعد روی کنترل mscomm دابل کلیک می کنی و کد های زیر رو می نویسی
if mscomm1.commevent=comEvReceive then
a=asc(mscomm1.input)
if a=1 then
timer1.enabled=true
else
timer1.enabled=false
end if
end if

saz20120
جمعه 07 خرداد 1389, 23:03 عصر
mscomm1.comport=1
mscom1.portopen=true
بعد روی کنترل mscomm دابل کلیک می کنی و کد های زیر رو می نویسی
if mscomm1.commevent=comEvReceive then
a=asc(mscomm1.input)



شرمنده دوست عزیز یه توضیحی درباره ی اینا و متدها میدی؟؟:افسرده:

ali_habibi1384
شنبه 08 خرداد 1389, 18:42 عصر
mscomm1.comport=1
mscom1.portopen=true
بعد روی کنترل mscomm دابل کلیک می کنی و کد های زیر رو می نویسی
if mscomm1.commevent=comEvReceive then
a=asc(mscomm1.input)

خط اول شماره پورت رو مشخص میکنه
خط دوم اون پورت رو باز میکنه و منتظر دریافت اطلاعات میمونه

خط آخر کد اسکی دریافت شده از پورت رو در متغیر a قرار میده.
البته دوست عزیزمون قسمت آخر سوال شما رو دقت نکرده که اگر تایمر True باشد و 1 بیاید باید اونو Stop کنه.
قسمت آخرش رو اینجوری بنویس:


If a = 1 Then
If Timer1.Enabled = True Then
Timer1.Enabled = False
Exit Sub
Else:
Timer1.Enabled = True
End If
End If

saz20120
سه شنبه 11 خرداد 1389, 15:35 عصر
شرمنده دوستان
اگر حالا بخوام که یه متغیر داشته باشم که هر عددی توی اون متغیر قرار دادم به تعداد عدد که یک ارسال شد تایمر stop بشه باید چی کار کنم؟؟؟

منظورم اینه که مثلا من 10 رو توی متغیر قرار میدم وقتی 10بار یک ارسال شد تایمر stop بشه؟؟

poorhasan
چهارشنبه 12 خرداد 1389, 11:55 صبح
شرمنده دوستان
اگر حالا بخوام که یه متغیر داشته باشم که هر عددی توی اون متغیر قرار دادم به تعداد عدد که یک ارسال شد تایمر stop بشه باید چی کار کنم؟؟؟

منظورم اینه که مثلا من 10 رو توی متغیر قرار میدم وقتی 10بار یک ارسال شد تایمر stop بشه؟؟
سلام
باید یه برنامه کانتر بنویسی
مثل کد زیر
if a=10 then
b=b+1
if b=10 then
عملیات مورد نظر
b=0
end if
end if

ali_habibi1384
چهارشنبه 12 خرداد 1389, 12:16 عصر
کاری نداره که،
یه متغیر سراسری تعریف کن : Public Sum as integer توی قسمت general
بعد هر بار که عدد یک دریافت کردی یکی بهش اضافه کن و شرط بذار که اگه برابر با اون عدد توی تکست باکست هست تایمر رو Stop کنی.

ali_habibi1384
چهارشنبه 12 خرداد 1389, 12:24 عصر
سلام
باید یه برنامه کانتر بنویسی
مثل کد زیر
if a=10 then
b=b+1
if b=10 then
عملیات مورد نظر
b=0
end if
end if
این کد جواب نمیده زیرا متغیر b محلی هست و با هر بار ورود به زیر برنامه مقدرش صفر خواهد بود .

poorhasan
پنج شنبه 13 خرداد 1389, 08:25 صبح
این کد جواب نمیده زیرا متغیر b محلی هست و با هر بار ورود به زیر برنامه مقدرش صفر خواهد بود .
با سلام
دوست عزیز من که متغیر ها رو اصلن تعریف نکردم که بخوام محلی تعریفشون کنم
اره دوست عزیزمون درست میگن باید متغییر a,b در قسمت جنرال فرم تعریف بشن