PDA

View Full Version : فرستادن sms بوسیله پورتها



noorsoft
سه شنبه 21 خرداد 1387, 10:52 صبح
دوستان در این قسمت شروع به ارسال دستورات AT به مودم را داریم
لطفا قبلا نکاتی که در رابطه با PDU بیان شده را مطالع نمایید تا سوالات تکراری در این تاپیک مطرح نشه

قبل از هر چیز شما باید یک دستگاه مودم و یا یک دستگاه موبایل تهیه فرمایید توضیح اینکه اکثر گوشیهای موجود در بازار این دستورات را ساپورت میکنن فقط نکته ای که هست ترجیها از مودمها و موبایهایی استفاده کنین که با Com1 /RS232 به کامپیوتر وصل میشن

نکته : ابتدا تست اولیه قبل از انجام برنامه نویسی همیشه سعی کنید در یک برنامه مطمئن مثل هایپر ترمینال دستورات و مودم و همه چیزی را تست کنین اگه جواب میده برنامش را بنویسید

برای شروع و تست اینکه مودم به کامپیوتر وصل هست یا نه و آیا مودمی که وصله دستورات AT مربوط به جی اس ام را ساپورت میکنه یا نه از دستور زیر استفاده میکنیم



ATV1Q0

توجه کنین که این دستورات احتیاز به زدن Enter یا همون <CR> یا همون کد 13 داره
اگه OK دریافت کردین موفق شدین به گوشی وصل بشین

یک نکته دیگه را هم اضافه کنم که این دستور در مودمهای مارک دار صادق نیست و شما باید دستور AT را ارسال کنید و بعد Ok دریافت کنید

noorsoft
سه شنبه 21 خرداد 1387, 11:02 صبح
فرستادن پیام بصورت Text
در این حالت نیاز به کد کردن پیام نیست و با چند دستور ساده شما میتونین پیام را ارسال کنید
فقط این نکته را فراموش نکنین که پیامهای چند قسمتی و فارسی را نمیشه از این طریق ارسال کرد (فقط Short Message)

AT+CMGF=1 یعنی شما قصد راسال متن بصورت Text را دارین
AT+CMGS="09531234567" شماره ای که قصد دارین براش پیام بفرستید را با <CR>
بعد از آن متن پیام را وارد نمایید و <ctrl–Z> را اسال نمایید

اگه +CMGS و OK دریافت کردین پیام ارسال شده

مهران رسا
سه شنبه 21 خرداد 1387, 16:33 عصر
ترجیها از مودمها و موبایهایی استفاده کنین که با Com1 /RS232 به کامپیوتر وصل میشن


سلام میشه بیشتر توضیح بدین .

راستی اگه امکانش هست این آموزش رو در زبان VB مطرح کنین . (راحت تره)

noorsoft
چهارشنبه 22 خرداد 1387, 10:15 صبح
سلام میشه بیشتر توضیح بدین .

راستی اگه امکانش هست این آموزش رو در زبان VB مطرح کنین . (راحت تره)

حرفی نیست ولی من قصد دارم مبانی را بگم که با هر زبان برنامه برنامه نویسی بشه اون کار را کرد

حالا به خاطر گل روی شما با وی بی هم توضیح میدم

گفتم اول شما باید پورت را شناسایی کنید


Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub DetectComPort()
Dim s As String
Dim iPort As Integer
Dim n As Single
Dim bModem As Boolean
On Error Resume Next
Me.MousePointer = 11

For iPort = 1 To 15
With MSComm1
.CommPort = iPort
.Settings = "9600,N,8,1"
.InputLen = 0
On Error Resume Next
.PortOpen = True
If Err = 0 Then
.Output = "ATV1Q0" & Chr$(13)
For n = 1 To 10
DoEvents
Sleep 500
s = s & .Input
If InStr(s, "OK" & vbCrLf) <> 0 Then
cmbPort.AddItem iPort
Exit For
End If
Next
.PortOpen = False
End If
End With
Next
If cmbPort.ListCount > 0 Then
cmbPort.ListIndex = 0
End If
Me.MousePointer = 0
End Sub


این زیر برنامه پورتی که موبایل به اون متصله را تشخیص میده (ترجیحات برای تست برنامه های خود از پورتهای سریال استفاده کنین)

مهران رسا
چهارشنبه 22 خرداد 1387, 10:30 صبح
سلام . :قلب:

مرسی از لطفت ...

فقط اگه میشه در مورد دستورات زیر یه توضیح کوچولو بده :



Settings = "9600,N,8,1"




Output = "ATV1Q0" & Chr$(13)




باز هم ممنونم :بوس:

noorsoft
چهارشنبه 22 خرداد 1387, 11:27 صبح
سلام . :قلب:

مرسی از لطفت ...

فقط اگه میشه در مورد دستورات زیر یه توضیح کوچولو بده :



Settings = "9600,N,8,1"




Output = "ATV1Q0" & Chr$(13)



باز هم ممنونم :بوس:


چند تا نکته را بهشون اشاره میکنم تا به یاری خدا دچار سردرگمی نشین
نکته اول اینکه همیشه مودم جوابهای شما را سریعا ارسال میکنه پس در بعضی از دستورات شما باید فرصت کافی به مودم بدین تا جواب شما را بده برای همین از دستور sleep استفاده کردیم
نکته دوم 9600 در تنظیمات پورت سریال مشخص کننده سرعت انتقال اطلاعاته و میتونه بیشتر از این ها هم باشه و بستگی به مودمتون داره
N مشخص کننده Parity=None
8 مشخص کننده 8بیت برای هر کارکتره
1 هم stop bits ما میشه
پس همه اینها برای تنظیمات mscomm

بعد از اینکه تنظیمات را انجام دادین باید به تشخیص بدین موبایل شما دستورات AT را ساپورت میکنه یا نه برای اینکار دستور ATV1Q0 را به موبایل میدین و اگه Ok از طرف موبایل داده شده شما میتونین دستورات بعدی را هم بدین
امیدوارم متوجه منظورم شده باشین

barnamejoo
چهارشنبه 22 خرداد 1387, 13:10 عصر
سلام
ممنون از مقاله تون. لطفا در ادامه وقتی CMGF=1 (Text mode) تمام شد اگر ممکنه درمورد راه CMGF=0 هم توضیح بدید که کمی سخت تره و من درست نفهمیدم چشکلی کار میکنه از روی مقاله های خارجی...
(همون راهی که برای دستگاه های سونی اریکسون کار میکنه)

raravaice
چهارشنبه 22 خرداد 1387, 13:23 عصر
اگر ممکنه درمورد راه CMGF=0 هم توضیح بدید که کمی سخت تره و من درست نفهمیدم چشکلی کار میکنه از روی مقاله های خارجی...

توی اعلان همین بخش مفصلا راجع به این مسئله مطلب هست.
http://barnamenevis.org/forum/showthread.php?t=108432

در حالت 0 شما در اصل مد PDU رو به جای TEXT انتخاب کردی و باید دیتای ارسالی رو کد کنی بفرستی..

یعنی:
اول باید طول کد PDU تشکیل شده رو به CMGS یا CMGW بدی بعد یه <CR> بعد دیتای کد شده و در انتها Ctrl+z

موفق باشید

noorsoft
چهارشنبه 22 خرداد 1387, 18:03 عصر
دوستان عجله نکنین تا مرحله مرحله بریم جلو

این کد ارسال پیام بصورت Text





Mscomm1.output"AT+CMGF=1"
Mscomm1.output"AT+CSCA=" & Chr(34) &ServiceCenterNumber & Chr(34)
Mscomm1.output"AT+CMGS=" & Chr(34) &PhoneNumber(i) & Chr(34)
Mscomm1.output Message
Mscomm1.output Chr(26)

مهران رسا
پنج شنبه 23 خرداد 1387, 12:26 عصر
سلام .

داداش Noorsoft اگه امکان داره اسمت رو بگو ما از این سردرگمی در بیایم ! :دی

یه خواهشی داشتم . اینکه در باره هر کدی که میذاری یه توضیح کامل بدی . اون کد شناسایی پورت ها رو به بدبختی فهمیدم . چون اصلاً تا حالا با MsCOMM کار نکرده بودم .

مثلاً یه سوال در مورد همون کد ! : استفاده از حلقه n چیه ؟!! و چرا 10 بار اجرا میشه ؟!!



For n = 1 To 10


مرسی از زحماتی که می کشی ...

مهران موسوی
پنج شنبه 23 خرداد 1387, 12:51 عصر
دوستان اگه قرار مطلبي اينجا ارائه بشه بهتره به طور كلي باشه ... نه اينكه شما روي VB كاركنيد ... اگه كلي باشه بعدا ميتونه مفيد واقع بشه و اگه با VB باشه افراد بعد از ديدن اين مبحث دلسرد ميشن و تاپيك رو دنبال نميكنن ...

يا حق. ...

مهران رسا
پنج شنبه 23 خرداد 1387, 12:59 عصر
درسته !

ولی به دلیل اینکه فعلاً یکی از ساده ترین زبان ها برای آموزش این مبحث VB هست ما پیشنهاد دادیم روی VB آموزش رو دنبال کنیم .

دستورات VB خیلی ساده هستند و توسط بیشتر برنامه نویسان هم قابل فهم اند .

مهران موسوی
پنج شنبه 23 خرداد 1387, 13:12 عصر
ولي زباني هست كه ضعف زيادي داره ... من يكي كه هيچ وقت حاظر نميشم برنامه هاي بزرگم رو با اين زبان بنويسيم ... خوب بگذريم نميخوام روي اين بحث مانور بديم ...

به نظرت اگه روش كار رو بدونيم نميتونيم با هر زباني كه دلمون خواست پياده سازيش كنيم ؟؟؟

مهران رسا
پنج شنبه 23 خرداد 1387, 13:27 عصر
به نظرت اگه روش كار رو بدونيم نميتونيم با هر زباني كه دلمون خواست پياده سازيش كنيم ؟؟؟

چرا ! 100% همینطوره !

ولی به دلیل اینکه من کار با پورت ها در VB رو بلد نبودم از مدیر بخش درخواست کردم مبحث رو از VB شروع کنه که ایشون هم لطف کردند و با درخواست من موافقت کردند .

حالا اگه شما مقاله فارسی و جامعی در مورد کار با پورت ها در VB دارید خیلی ممنون میشم به من معرفی کنید .

noorsoft
پنج شنبه 23 خرداد 1387, 13:47 عصر
سلام .

داداش Noorsoft اگه امکان داره اسمت رو بگو ما از این سردرگمی در بیایم ! :دی

یه خواهشی داشتم . اینکه در باره هر کدی که میذاری یه توضیح کامل بدی . اون کد شناسایی پورت ها رو به بدبختی فهمیدم . چون اصلاً تا حالا با MsCOMM کار نکرده بودم .

مثلاً یه سوال در مورد همون کد ! : استفاده از حلقه n چیه ؟!! و چرا 10 بار اجرا میشه ؟!!



For n = 1 To 10
مرسی از زحماتی که می کشی ...


زودتر میگفتی با این کنترل کار نکردی
توضیحات این طوری رو ان شالله تو بخش وی بی کامل میزارم ایجا جاش نیست می بینی که ممکنه فردا منو هم بیرون کنند :لبخند:

ولی با این حال این یک حلقه است که شروع میکنه یکی یکی پورتها را چک میکنه ببینه موبایل به کدوم وصله از پورت 1 تا 10 البته شما میتونین تا هر پورتی که خواستین تست کنید

برای اینکه دیگه از این مشکلا پیش نیاد من توضیحات کلی را میگم و یک تکه برنامه با توضیحات فارسی Attach میکنم که هر کی خواست استفاده کنه و هدف تاپیک هم درست انجام بشه

مهران رسا
شنبه 25 خرداد 1387, 14:51 عصر
چی شد پس .؟!!!

آقا فرشاد ما همچنان منتظرم ادامه آموزش خوب شما هستیم .

noorsoft
شنبه 01 تیر 1387, 08:13 صبح
اگر مطالب یکم دیر شد باید ببخشید

تا اینجا طریقه ارسال پیام بصورت Text را یاد گرفتین
طریقه ارسال PDU را هم تو پستهای قبلی گفته شد.
حالا چیزی که باید گفته بشه یکسری از دستورات AT که شما باید ارسال کنید و از طریق اونها چیزهایی که لازم دارین را متوجه بشین



Call Control

ATA Answer Command
ATD Dial Command
ATH Hang Up Call
ATL Monitor Speaker Loudness
ATM Monitor Speaker Mode
ATO Go On-Line
ATP Set Pulse Dial as Default
ATT Set Tone Dial as Default
AT+CSTA Select Type of Address
AT+CRC Cellular Result Codes


Data Card Control Commands

ATI Identification
ATS Select an S-register
ATZ Recall Stored Profile
AT&F Restore Factory Settings
AT&V View Active Configuration
AT&W Store Parameters in Given Profile
AT&Y Select Set as s Powerup Option
AT+CLCK Facility Lock Command
AT+COLP Connected Line Identification Presentation
AT+GCAP Request Complete Capabilities List
AT+GMI Request Manufacturer Identification
AT+GMM Request Model Identification
AT+GMR Request Revision Identification
AT+GSN Request Product Serial Number Identification


Phone Control Commands

AT+CBC Battery Charge
AT+CGMI Request Manufacturer Identification
AT+CGMM Request Model Identification
AT+CGMR Request Revision Identification
AT+CGSN Request Product Serial Number Identification
AT+CMEE Report Mobile Equipment Error
AT+CPAS Phone Activity Status
AT+CPBF Find Phone Book Entries
AT+CPBR Read Phone Book Entry
AT+CPBS Select Phone Book Memory Storage
AT+CPBW Write Phone Book Entry
AT+CSCS Select TE Character Set
AT+CSQ Signal Quality


Computer Data Card Interface Commands

ATE Command Echo
ATQ Result Code Suppression
ATV Define Response Format
ATX Response Range Selection
AT&C Define DCD Usage
AT&D Define DTR Usage
AT&K Select Flow Control
AT&Q Define Communications Mode Option
AT&S Define DSR Option
AT+ICF DTE-DCE Character Framing
AT+IFC DTE-DCE Local Flow Control
AT+IPR Fixed DTE Rate


Reporting Options Commands

AT+CLIP Calling Line Identification Presentation
AT+CR Service Reporting Control
AT+DR Data Compression Reporting
AT+ILRR DTE-DCE Local Rate Reporting


Network Communication Parameter Commands

ATB Communications Standard Option
AT+CBST Select Bearer Service Type
AT+CEER Extended Error Report
AT+CRLP Radio Link Protocol
AT+DS Data Compression


Miscellaneous Commands

A/ Re-Execute Command Line
AT? Command Help
AT*C Start SMS Interpreter
AT*T Enter SMS Block Mode Protocol
AT*V Activate V.25bis Mode
AT*NOKIATEST Test Command
AT+CESP Enter SMS Block Mode Protocol


SMS Commands SMS Text Mode

AT+CSMS Select Message Service
AT+CPMS Preferred Message Storage
AT+CMGF Message Format
AT+CSCA Service Centre Address
AT+CSMP Set Text Mode Parameters
AT+CSDH Show Text Mode Parameters
AT+CSCB Select Cell Broadcast Message Types
AT+CSAS Save Settings
AT+CRES Restore Settings
AT+CNMI New Message Indications to TE
AT+CMGL List Messages
AT+CMGR Read Message
AT+CMGS Send Message
AT+CMSS Send Message from Storage
AT+CMGW Write Message to Memory
AT+CMGD Delete Message


SMS PDU Mode

AT+CMGL List Messages
AT+CMGR Read Message
AT+CMGS Send Message
AT+CMGW Write Message to Memory

noorsoft
شنبه 01 تیر 1387, 08:16 صبح
هر کدوم از این دستورات را که فکر میکنید نیاز به توضیحات داره بگین تا با مثال براتون توضیح بدم

مهران رسا
شنبه 01 تیر 1387, 12:53 عصر
لطفاً قبل از هرچیز بفرمایید اصلاً AT چیه ؟!!

در ضمن من هنوز هم متوجه نشدم اون کدی که برای پیدا کردن درگاه ها گذاشته بودید چیکار می کنه ...
آیا پورت USB که گوشی بهش وصل هست رو پیدا می کنه ؟!!

با تشکر ...

noorsoft
یک شنبه 02 تیر 1387, 07:38 صبح
AT مخفف Attention
ببین یکسری دستوراته که برای مودم قرار داده شده که از طریق اونها شما میتونین درخواستهای خودتون را به مودم ارسال کنید این دستورات AT نامیده میشن

توجه داشته باشین مودمهای کامپیوتر - موبایل و ... همه دستورات AT را ساپورت میکنن ولی ممکنه دستورات گروههای مختلف با هم فرق داشته باشن مثلا دستورات مودمهای کامپیوتر با دستورات مودم جی اس ام فرق دارن
یک نکته دیگه اینکه توی یک گروه خاص مودم مثلا جی اس ام مودم هم بعضی از دستورات خاص قرار داده شده اند که در مدلهای مختلف دیگه ممکنه کار نکنه ولی چیزی که مسلم است اینه که دستورات اصلی و پایه بین همه اونها مشترکه
خوب ما قصد داریم به مودم بگوییم فلان اس ام اس را بفرست - فلان پیام را بخوان - حذف کن و .....
باید با دستورات قابل فهم برای مودم اینکار انجام شود که همون AT Command ها هستند.

دوست عزیز در مورد سوال دوم
ببین شما برای اینکه ببینید موبایل یا مودم جی اس ام به کامپیوتر وصل شده یا نه باید دستور AT را روی پورتی که دستگاه به ان متصل است ارسال کنید اگر جواب OK دریافت کردید شما توانسته اید با دستگاه ارتباط برقرار کنید

ما در اون زیر برنامه چکار کرده بودیم؟
توی یک حلقه شروع به بازکردن پورتها کرده بودیم اگه پورت باز بشه دستور AT را ارسال میکردیم و منتظر جواب میشدیم اگه جواب OK داده میشد آن پورت پورتی بود که مودم به آن وصل شده در غیر این صورت پورت بعدی را تست میکردیم و ....

در مورد پورت USB قضیه یکم فرق میکنه
ببین وقتی شما موبایل را به کامپیوتر وصل میکنی یک پورت مجازی ساخته میشه که توسط درایور موبایل استفاده میشه ما با استفاده از کنترل MSCOMM نمی توانیم به پورت USB وصل بشیم
برای همین در پستهاغی اول نوشته بودم ابتدا برای یادگیری و تمرین حتی المقدور سعی کنید روی پورتهای Com کارکنید

مهران رسا
یک شنبه 02 تیر 1387, 12:05 عصر
سلام . مرسی از توضیحاتتون .

پس یعنی دیگه نیازی نیست گوشی به کامیپوتر وصل باشه !؟؟ و فقط از طریق مودم که به خط تلفن وصل هست sms رو ارسال می کنیم ؟!!

یه سوال دیگه :


شروع به بازکردن پورتها کرده بودیم اگه پورت باز بشه


یک پورت com چه زمانی باز میشه ؟!! (اصلاً این قضیه ربطی به وصل بودن گوشی به کامپیوتر داره ؟)


باور کنید من هنوز متوجه نشدم ...

آخه من در بخش VB تاپیکی در مورد چگونگی ارسال sms از طریق پورت USB مطرح کرده بودم و فکر کردم جواب رو در این بخش می تونم بگیرم ...

noorsoft
دوشنبه 03 تیر 1387, 08:25 صبح
پس یعنی دیگه نیازی نیست گوشی به کامیپوتر وصل باشه !؟؟ و فقط از طریق مودم که به خط تلفن وصل هست sms رو ارسال می کنیم ؟!


گفتم که دستورات مودم کامپیوتر با دستورات مودم جی اس ام فرق دارن
ببین مودم کامپیوتر باید اطلاعات را از دیجیتال تبدیل به آنالوگ کنه و روی خط تلفن انتقال بده و اطلاعات دریافتی را از آنالوگ به دیجیتال تبدیل کنه.

ولی مودم جی اس ام باید اطلاعات را به BTS بده و بگیره پس با هم فرق دارین و نمی شه با مودم معمولی کامپیوتر این کار را انجام داد

مفاهیم پورت :

پورت یک درگاه است که اطلاعات از طریق آن به یک دستگاه ارسال یا دریافت میشه. پورتها انواع گوناگونی دارند مثل سریال - موازی - یو اس بی - و ...
وقتی شما یک دستگاه را به یک پورت وصل میکنین از طریق ادرس درگاه اون پورت میتونین با آن دستگاه ارتباط برقرار کنین.
نکته دیگه اینکه اگر یک پورت در برنامه ای قبلا باز شده باشد. اجازه بازشدن در برنامه های دیگر داده نمی شود (دقیقا مثل فایلها در وی بی)

مهران رسا
سه شنبه 04 تیر 1387, 13:24 عصر
سلام .

بلاخره اون کدی که گذاشتید مودم رو چک می کنه یا USB ؟

noorsoft
چهارشنبه 05 تیر 1387, 15:32 عصر
پورت های com را تست مکینه بهشون موبایل یا مودم جی اس ام وصل هست یا نه

e601
جمعه 07 تیر 1387, 21:28 عصر
با سلام خدمت دوستان عزیز بخصوص استاد noorsoft
چند تا سوال در مورد آموزشی که دادین دارم...

1. من دستگاه موبایل خودم (K750) رو بوسیله کابل USB خودش به یکی از درگاههای USB که پشت کیس قرار داره وصل میکنم. چون توی پستای قبلی تاکید روی اتصال از طریق Com داشتید میخواستم ببینم روش اتصال من درسته یا نه (چون به نظر من که راه دیگه ای واسه اتصال گوشی به کامپیوتر وجود نداره شایدم من بلد نیستم!!!!)

2. اگه میشه یه توضیحی در مورد این کد بدین و اینکه آیا Chr(26( یعنی همون Ctrl+Z؟
یا اینکه چرا دستور
Mscomm1.output"AT+CSCA=" & Chr(34) &ServiceCenterNumber & Chr(34)
رو بصورت
Mscomm1.output = "AT+CSCA=+9891200500"
استفاده نکردید؟ (البته با فرض اینکه شماره خط مال همراه اوله)

Mscomm1.output"AT+CMGF=1"
Mscomm1.output"AT+CSCA=" & Chr(34) &ServiceCenterNumber & Chr(34)
Mscomm1.output"AT+CMGS=" & Chr(34) &PhoneNumber(i) & Chr(34)
Mscomm1.output Message
Mscomm1.output Chr(26)

با تشکر...

مهران رسا
یک شنبه 09 تیر 1387, 14:30 عصر
پورت های com را تست مکینه بهشون موبایل یا مودم جی اس ام وصل هست یا نه

اگه میشه یه توضیح کامل در مورد پورت های Com بدید ... :لبخند:

مرسی

noorsoft
دوشنبه 10 تیر 1387, 17:13 عصر
با سلام خدمت دوستان عزیز بخصوص استاد noorsoft
چند تا سوال در مورد آموزشی که دادین دارم...

1. من دستگاه موبایل خودم (K750) رو بوسیله کابل USB خودش به یکی از درگاههای USB که پشت کیس قرار داره وصل میکنم. چون توی پستای قبلی تاکید روی اتصال از طریق Com داشتید میخواستم ببینم روش اتصال من درسته یا نه (چون به نظر من که راه دیگه ای واسه اتصال گوشی به کامپیوتر وجود نداره شایدم من بلد نیستم!!!!)

2. اگه میشه یه توضیحی در مورد این کد بدین و اینکه آیا Chr(26( یعنی همون Ctrl+Z؟
یا اینکه چرا دستور
Mscomm1.output"AT+CSCA=" & Chr(34) &ServiceCenterNumber & Chr(34)
رو بصورت
Mscomm1.output = "AT+CSCA=+9891200500"
استفاده نکردید؟ (البته با فرض اینکه شماره خط مال همراه اوله)

Mscomm1.output"AT+CMGF=1"
Mscomm1.output"AT+CSCA=" & Chr(34) &ServiceCenterNumber & Chr(34)
Mscomm1.output"AT+CMGS=" & Chr(34) &PhoneNumber(i) & Chr(34)
Mscomm1.output Message
Mscomm1.output Chr(26) با تشکر...

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

noorsoft
دوشنبه 10 تیر 1387, 17:20 عصر
اگه میشه یه توضیح کامل در مورد پورت های Com بدید ... :لبخند:

مرسی


پورتهای سریال یا COM گذرگاههایی هستند که اطلاعات بصورت سریال از اونها انقال پیدا میکنه
بعضی از مادر بردها یک یا دو کام پورت دارن و بعضی از اونها هم فاقد کام پورت می باشند

هر پورت سریال دارای یک آدرس می باشد که اگر شما از آن آدرس میتوانید اطلاعات دریافت و ارسال نمایید

پورتهایی که روی مادربورد هستند پورتهای اصلی و پورتهایی که از طریق نصب درایور اضافه میشن پورتهای مجازی گفته میشن مثلا شما وقتی مودم نصب میکنین یک پورت 3 یا 4 یا ... اضافه میکنه که از طریق آن اطلاعات رد و بدل میشه یا همچنین وقتی شما یک موبایل USB به کامپیوتر وصل میکنین

reza6384
دوشنبه 17 تیر 1387, 10:51 صبح
سلام.

من از VS2005 استفاده می کنم، در NET2. دیگه احتیاجی به MSCOMM32.ocx نیست و برای ارتباط با پورت سریال از System.IO.Ports.SerialPort استفاده می کنیم، و فرق دیگه ای که داره اینه که هنگامی که داده روی بافر پورت می شینه یک Event فراخوانی می شه و بنابر این دیگه احتیاجی به سرکشی نداریم. من برای دریافت داده ها از این پورت سریال مشکل دارم، چون باید Delegate بشه و این حرف ها، نمیشه با این رویداد TextBox رو Update کرد چون سیستم می گه دو تا Thread نمی تونن به Textbox دسترسی داشته باشن. من سوالم رو در تالار VB.net پرسیدم اما کسی بهش جواب نده.
سوالم راجه به دریافت داده ها از پورت سریاله.
http://barnamenevis.org/forum/showthread.php?t=112323
لطفا کسانی که برای ارسال و دریافت SMS از VS2005 استفاده کردن راهنمایی کنند. ممنون

raha_20
یک شنبه 20 مرداد 1387, 12:30 عصر
وقتی موبایل با پورت usb کار میکنه ما چطوری برای شروع با پورت com برنامه نویسی کنیم

noorsoft
دوشنبه 21 مرداد 1387, 06:20 صبح
با استفاده از توابع APi ویندوز در واقع باید پورت را بصورت یک فایل بازکنید و از اون استفاده کنید

raha_20
سه شنبه 22 مرداد 1387, 12:34 عصر
لطفا بیشتر در این مورد توضیح بدین . من هنوز مشکل دارم د ر مورد پورتها

noorsoft
سه شنبه 22 مرداد 1387, 13:02 عصر
دقیقا مشکلتون کجاست؟

hamidghasemi
چهارشنبه 06 شهریور 1387, 08:05 صبح
سلام
كدي كه براي شناسايي پورت موبايل دادين كارنمي كنه .يعني من گوشي 6230i خودم رو با كابل وصل كردم برنامه تا آخر كار مي كنه ولي پورت رو نمي شناسد.

reza6384
پنج شنبه 07 شهریور 1387, 11:48 صبح
سلام
كدي كه براي شناسايي پورت موبايل دادين كارنمي كنه .يعني من گوشي 6230i خودم رو با كابل وصل كردم برنامه تا آخر كار مي كنه ولي پورت رو نمي شناسد.

اول توی Device Manager گزینه Modems رو باز کنید، اگر موبایل شما اونجا بود مثلا به اسم NOKIA 6230i Modem اون وقته که ok هست، بعد باید Double Click کنید و بازش کنید و بعد از قسمت Modem ببینید به چه پورتی وصله.

noorsoft
جمعه 08 شهریور 1387, 08:36 صبح
دوستان این برنامه فقط موبایلهایی را پیدا میکنه که از طریق پورت Come به کامپیوتر وصل شده باشن

kingwebs
پنج شنبه 21 شهریور 1387, 14:03 عصر
آقا رضا من هم همین مشکل را داشتم.
راه حلش اینکه بایستی از حالت دیباگ بیای بیرون. بایستی برنامه رو BUILD کنی بعد اجراش کنی

r_o_o_z_y
سه شنبه 23 مهر 1387, 00:13 صبح
من الان گوشی n73 را با پورت USB به سیستم وصل می کنم و در قسمت Modem با com20 می شناسه !
اما وقتی می خوام mscomm1.CommPort = 20 بکنم error می ده !
و وقتی هم به طور دستی از mscomm می خوام شماره پورت را تایین کنم بهم error می ده که همچین پورتی وجود ندارد !
چی کنم !؟!
من حتما به همچین ارتباطی احتیاج دارم! برای فرستادن sms و برنامه نویسی براش با Visual Basic !!!
لطفا کمک کنید !
ممنون

reza6384
سه شنبه 23 مهر 1387, 09:09 صبح
اما وقتی می خوام mscomm1.CommPort = 20 بکنم error می ده !


لطفا بگین که چه Error ای میده.
در ضمن، حالا که می خواین با پورت برنامه بنویسید پیشنهاد من اینه که از Net2. برای اینکار استفاده کنید، چون دیگه احتیاجی به کامپوننت MsComm نداره و در خود Framework تعریف شده : System.Io.Ports.SerialPort
و مزیت دیگه که خیلی خیلی مهمه اینه که دیگه در Net2. شما احتیاجی به سرکشی برای رسیدن داده ندارید، هر وقت که داده روی پورت رسید یک رویداد به نام DataReceived فراخوانی میشه و می تونید بافر رو بخونید.

r_o_o_z_y
چهارشنبه 24 مهر 1387, 00:41 صبح
من .Net کار نمی کنم !
این برنامه را هم با VB می خوام بنویسم !
آیا راهی هست ؟!
در ضمن من می دونم که گوشی از AT پشتیبانی می کنه !
چون با HyperTerminal به راحتی می تونم باهاش ارتباط برقرار بکنم و اس ام اس بفرستم !
من الان هم می خوام که بتونم باهاش اس ام اس بفرستم !
مشکل اینجاست که اصلا Mscomm پرت این گوشی را که سیستم به نام COM20 می شناسه ! نمی شناسه !
و در VB که من از همون دستور .CommPort =20 استفاده می کنم این error را می ده :
Run-time error '8002':
invalid port number
با اینکه من با همین شماره پورت به راحتی با hyperterminal به موبایل وصل می شم و اس ام اس سند می کنم !

!××××××××
پ ورقی :
روش .Net اش را اگه سورس دارید (برای فرستادن اس ام اس ) بذارید و یکم توضیح بدید !
به غیر از Mscomm از چیز دیگه ای هم می شه استفاده کرد در VB 6 ?
×××××××!
ممنون

r_o_o_z_y
چهارشنبه 24 مهر 1387, 00:59 صبح
البته من الان Vb2005 را بر روی سیستم دارم (برای سورس و توضیح گفتم )

noorsoft
چهارشنبه 24 مهر 1387, 05:55 صبح
شما باید با استفاده ار دستورات Api این کار رو انجام بدین
دستور Cratefile به شما کمک میکنه پورت را بصورت یک فایل باز کنید و با دستورات Readfile و writefile امکان خوندن و نوشتن درون پورت را پیدا میکنید.

در ضمن مشکل شماره پورت رو هم میتونین در device managment حل کنید و شماره پورت رو تغییر بدین

r_o_o_z_y
چهارشنبه 24 مهر 1387, 14:30 عصر
شما باید با استفاده ار دستورات Api این کار رو انجام بدین
دستور Cratefile به شما کمک میکنه پورت را بصورت یک فایل باز کنید و با دستورات Readfile و writefile امکان خوندن و نوشتن درون پورت را پیدا میکنید

می شه یک مثال بزنید ؟ در ویژوال بیسیک اینطوریه ؟


در ضمن مشکل شماره پورت رو هم میتونین در device managment حل کنید و شماره پورت رو تغییر بدینمنظورتون Device Manager هستش ؟!
چه طوری ؟

reza6384
پنج شنبه 25 مهر 1387, 09:35 صبح
من .Net کار نمی کنم !
این برنامه را هم با VB می خوام بنویسم !
آیا راهی هست ؟!
در ضمن من می دونم که گوشی از AT پشتیبانی می کنه !
چون با HyperTerminal به راحتی می تونم باهاش ارتباط برقرار بکنم و اس ام اس بفرستم !
من الان هم می خوام که بتونم باهاش اس ام اس بفرستم !
مشکل اینجاست که اصلا Mscomm پرت این گوشی را که سیستم به نام COM20 می شناسه ! نمی شناسه !
و در VB که من از همون دستور .CommPort =20 استفاده می کنم این error را می ده :
Run-time error '8002':
invalid port number
با اینکه من با همین شماره پورت به راحتی با hyperterminal به موبایل وصل می شم و اس ام اس سند می کنم !



دوست عزيز ، شايد مشكل از اون كامپوننت باشه. اينجوري كه شما ميگين كدي كه نوشتيد درسته ، اما شايد براي اون كامپوننت COM20 تعريف نشده.
ولي اين كه كامپوننت ديگري هست يا نه ، نمي دونم. چون اون زماني كه VB6 كار ميكردم همه از اين كامپوننت براي ارتباط با پورت سريال استفاده مي كردن و اين كامپوننت خود Microsoft هست.
من توي كامپيوتر محل كارم VB6 دارم، شنبه براتون تست مي كنم و جواب ميدم.

r_o_o_z_y
پنج شنبه 25 مهر 1387, 23:02 عصر
آقا رضا چی شد پس ؟!

reza6384
جمعه 26 مهر 1387, 00:18 صبح
آقا رضا چی شد پس ؟!

اگر منظورتون کد VB6 هست که عرض کردم خدمتتون، شنبه براتون اینجا میذارم.
:چشمک::چشمک:

r_o_o_z_y
جمعه 26 مهر 1387, 11:13 صبح
فقط دقت کنید که من با هایپرترمینال می تونم کانکت بشم و اس ام اس سند کنم !
و در ویژوال بیسیک فقط مشکل کانکت شدن به پورت (20) را دارم !
و از کابل USB هم استفاده می کنم !
ممنون !
اگر کامپوننت دیگه ای هست دوستان برام لینک کنند !
ممنون !

reza6384
شنبه 27 مهر 1387, 15:15 عصر
سلام.
من امروز چك كردم و ديدم كه MSComm1 از Com16 به بالا ديگه جواب نميده و ميگه INVALID PORT NAME.

اين هم يه كامپوننت براي ارتباط با پورت سريال. همينجوري Search كردم. اين هم Trial هست و اگر خواستيد بايد كركش رو هم پيدا كنيد.

http://www.rs232-serial-communications.com/serial-communications-activex.htm?gclid=CLSgrZ_gsJYCFQtCMAody3rELg

r_o_o_z_y
شنبه 27 مهر 1387, 22:49 عصر
پس مشکل از همین بود که پورتم 20 بود !
منم تعجب کردم !
مرسی !
اما اگه کامپوننت مجانی دارین لطفا همینجا بذارین تا همه هم استفاده کنن !

r_o_o_z_y
شنبه 27 مهر 1387, 22:52 عصر
من الان دارم تست می کنم ببینم اگه پورت usb را تغییر بدم بیارم روی 4 کار می کنه یا نه !
نتیجش را اعلام می کنم !

r_o_o_z_y
شنبه 27 مهر 1387, 23:07 عصر
خوب پورت را آوردم زیر 6 و با استفاده از PDU الان راحت می تونم با پورت USB متصل به گوشی کار کنم !
مشکلم تا حدودی حل شد ;)

Black_Strom
پنج شنبه 09 آبان 1387, 12:13 عصر
جواب میده رو همه موبایل ها - با تلفن نمیشه ؟
جایی خونده بودم که میشه ... ؟

AmirAmiri
دوشنبه 13 آبان 1387, 08:01 صبح
سلام دوستان عزیز.
آقا همتون مشکلتون رو گفتید ولی مشکل هیچ کدومتون مشکل من نبود.
ببینید من نه تو hyper terminal و نه تو خود برنامم با VB.Net میتونم به گوشیم متصل بشم خطایی هم که میده اینه که میگه این پورت در حاله حاضر به وسیله یک برنامه دیگه در حال استفاده است حالا نمیدونم اون برنامه چی چی هستش که کار منو لنگ کرده.
( در ضمن من از طریق USB میخوام به گوشیم وصل بشم گوشیم هم N73 هست و PC Suite هم رو سیستم نصبه)
حالا با این تفاسیر به نظر شما من باید چه کار کنم و مشکلم کجاست؟؟؟؟؟؟
خیلی ممنون میشم که راهنمایی کامل کنید و حتما یک نمونه کد کامل با همون API و همچنین با دستورات وی بی دات نت هم برام بزارید که با USB کار کنه.

با تشکر...

mohsenm66
چهارشنبه 20 آبان 1388, 11:28 صبح
سلام

من در كار با پورت ها يه مشكلي دارم و اينكه براي خواندن اطلاعات در حجم بالا اين كار انجام نمي شود يا به طور ناقص انجام مي شود

مثلا براي دستور cmgl=4 ليست همه پيام ها را نمي آورد
يا براي پاك كردن نيز همين مشكل را دارم

ممنون ميشم كسي من را راهنمايي كند

volkswagen
جمعه 04 دی 1388, 15:25 عصر
یک سوال دارم که شاید مسخره بیاد.با ویژوال بیسیک 6 میشه برای موبایل برنامه نوشت؟