# Native Code > برنامه نویسی موبایل >  فرستادن sms بوسیله پورتها

## noorsoft

دوستان  در این قسمت شروع به ارسال دستورات AT به مودم را داریم 
لطفا قبلا نکاتی که در رابطه با  PDU بیان شده را مطالع نمایید تا سوالات تکراری در این تاپیک مطرح نشه

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

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

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


ATV1Q0

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

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

----------


## noorsoft

فرستادن پیام بصورت Text
در این حالت نیاز به کد کردن پیام نیست و با چند دستور ساده شما میتونین پیام را ارسال کنید 
فقط این نکته را فراموش نکنین که پیامهای چند قسمتی و فارسی را نمیشه از این طریق ارسال کرد (فقط Short Message)

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

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

----------


## مهران رسا

> ترجیها از مودمها و موبایهایی استفاده کنین که با Com1 /RS232 به کامپیوتر وصل میشن


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

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

----------


## noorsoft

> سلام میشه بیشتر توضیح بدین .
> 
> راستی اگه امکانش هست این آموزش رو در زبان 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


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

----------


## مهران رسا

سلام .  :قلب: 

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

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

Settings = "9600,N,8,1" 
 
Output = "ATV1Q0" & Chr$(13)

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

----------


## noorsoft

> سلام . 
> 
> مرسی از لطفت ... 
> 
> فقط اگه میشه در مورد دستورات زیر یه توضیح کوچولو بده :
> 
> Settings = "9600,N,8,1" 
>  
> Output = "ATV1Q0" & Chr$(13)
> ...


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

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

----------


## barnamejoo

سلام
ممنون از مقاله تون. لطفا در ادامه وقتی CMGF=1 (Text mode) تمام شد اگر ممکنه درمورد راه CMGF=0 هم توضیح بدید که کمی سخت تره و من درست نفهمیدم چشکلی کار میکنه از روی مقاله های خارجی...
(همون راهی که برای دستگاه های سونی اریکسون کار میکنه)

----------


## raravaice

> اگر ممکنه درمورد راه CMGF=0 هم توضیح بدید که کمی سخت تره و من درست نفهمیدم چشکلی کار میکنه از روی مقاله های خارجی...


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

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

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

موفق باشید

----------


## noorsoft

دوستان عجله نکنین تا مرحله مرحله بریم جلو

این کد ارسال پیام بصورت 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)

----------


## مهران رسا

سلام .

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

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

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

 
For n = 1 To 10


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

----------


## مهران موسوی

دوستان اگه قرار مطلبي اينجا ارائه بشه بهتره به طور كلي باشه ... نه اينكه شما روي VB كاركنيد ... اگه كلي باشه بعدا ميتونه مفيد واقع بشه و اگه با VB باشه افراد بعد از ديدن اين مبحث دلسرد ميشن و تاپيك رو دنبال نميكنن ...

يا حق. ...

----------


## مهران رسا

درسته !

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

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

----------


## مهران موسوی

ولي زباني هست كه ضعف زيادي داره ... من يكي كه هيچ وقت حاظر نميشم برنامه هاي بزرگم رو با اين زبان بنويسيم ... خوب بگذريم نميخوام روي اين بحث مانور بديم ...

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

----------


## مهران رسا

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


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

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

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

----------


## noorsoft

> سلام .
> 
> داداش Noorsoft اگه امکان داره اسمت رو بگو ما از این سردرگمی در بیایم ! :دی
> 
> یه خواهشی داشتم . اینکه در باره هر کدی که میذاری یه توضیح کامل بدی . اون کد شناسایی پورت ها رو به بدبختی فهمیدم . چون اصلاً تا حالا با MsCOMM کار نکرده بودم .
> 
> مثلاً یه سوال در مورد همون کد ! : استفاده از حلقه n چیه ؟!! و چرا 10 بار اجرا میشه ؟!!
> 
>  
> ...



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

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

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

----------


## مهران رسا

چی شد پس .؟!!!

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

----------


## noorsoft

اگر مطالب یکم دیر شد باید ببخشید

تا اینجا طریقه ارسال پیام بصورت 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

هر کدوم از این دستورات را که فکر میکنید نیاز به توضیحات داره بگین تا با مثال براتون توضیح بدم

----------


## مهران رسا

لطفاً قبل از هرچیز بفرمایید اصلاً AT چیه ؟!!

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

با تشکر ...

----------


## noorsoft

AT مخفف Attention 
ببین یکسری دستوراته که برای مودم قرار داده شده که از طریق اونها شما میتونین درخواستهای خودتون را به مودم ارسال کنید این دستورات AT نامیده میشن

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

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

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

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

----------


## مهران رسا

سلام . مرسی از توضیحاتتون .

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

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


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


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

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

----------


## noorsoft

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


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

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

مفاهیم پورت :

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

----------


## مهران رسا

سلام .

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

----------


## noorsoft

پورت های com را تست مکینه بهشون موبایل یا مودم جی اس ام وصل هست یا نه

----------


## e601

با سلام خدمت دوستان عزیز بخصوص استاد 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) 

با تشکر...

----------


## مهران رسا

> پورت های com را تست مکینه بهشون موبایل یا مودم جی اس ام وصل هست یا نه


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

مرسی

----------


## noorsoft

> با سلام خدمت دوستان عزیز بخصوص استاد noorsoft
> چند تا سوال در مورد آموزشی که دادین دارم...
> 
> 1. من دستگاه موبایل خودم (K750) رو بوسیله کابل USB خودش به یکی از درگاههای USB که پشت کیس قرار داره وصل میکنم. چون توی پستای قبلی تاکید روی اتصال از طریق Com داشتید میخواستم ببینم روش اتصال من درسته یا نه (چون به نظر من که راه دیگه ای واسه اتصال گوشی به کامپیوتر وجود نداره شایدم من بلد نیستم!!!!)
> 
> 2.  اگه میشه یه توضیحی در مورد این کد بدین و اینکه آیا Chr(26( یعنی همون Ctrl+Z؟
>  یا اینکه چرا دستور
>  Mscomm1.output"AT+CSCA=" & Chr(34) &ServiceCenterNumber & Chr(34) 
>  رو بصورت
> ...


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

----------


## noorsoft

> اگه میشه یه توضیح کامل در مورد پورت های Com بدید ... 
> 
> مرسی



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

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

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

----------


## reza6384

سلام.

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

----------


## raha_20

وقتی موبایل با پورت usb کار میکنه ما چطوری برای شروع با پورت com برنامه نویسی کنیم

----------


## noorsoft

با استفاده از توابع APi ویندوز در واقع باید پورت را بصورت یک فایل بازکنید و از اون استفاده کنید

----------


## raha_20

لطفا بیشتر در این مورد توضیح بدین . من هنوز مشکل دارم د ر مورد پورتها

----------


## noorsoft

دقیقا مشکلتون کجاست؟

----------


## hamidghasemi

سلام
          كدي كه براي شناسايي پورت موبايل دادين كارنمي كنه .يعني من گوشي 6230i خودم رو با كابل وصل كردم برنامه تا آخر كار مي كنه ولي پورت رو نمي شناسد.

----------


## reza6384

> سلام
> كدي كه براي شناسايي پورت موبايل دادين كارنمي كنه .يعني من گوشي 6230i خودم رو با كابل وصل كردم برنامه تا آخر كار مي كنه ولي پورت رو نمي شناسد.


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

----------


## noorsoft

دوستان این برنامه فقط موبایلهایی را پیدا میکنه که از طریق پورت Come  به کامپیوتر وصل شده باشن

----------


## kingwebs

آقا رضا من هم همین مشکل را داشتم.
راه حلش اینکه بایستی از حالت دیباگ بیای بیرون. بایستی برنامه رو BUILD کنی بعد اجراش کنی

----------


## r_o_o_z_y

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

----------


## reza6384

> اما وقتی می خوام mscomm1.CommPort = 20 بکنم error می ده !


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

----------


## r_o_o_z_y

من .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

البته من الان Vb2005 را بر روی سیستم دارم (برای سورس و توضیح گفتم )

----------


## noorsoft

شما باید با استفاده ار دستورات Api  این کار رو انجام بدین
دستور Cratefile به شما کمک میکنه پورت را بصورت یک فایل باز کنید و با دستورات Readfile و writefile امکان خوندن و نوشتن درون پورت را پیدا میکنید.

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

----------


## r_o_o_z_y

> شما باید با استفاده ار دستورات Api این کار رو انجام بدین
> دستور Cratefile به شما کمک میکنه پورت را بصورت یک فایل باز کنید و با دستورات Readfile و writefile امکان خوندن و نوشتن درون پورت را پیدا میکنید


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




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


منظورتون Device Manager هستش ؟!
چه طوری ؟

----------


## reza6384

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


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

----------


## r_o_o_z_y

آقا رضا چی شد پس ؟!

----------


## reza6384

> آقا رضا چی شد پس ؟!


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

----------


## r_o_o_z_y

فقط دقت کنید که من با هایپرترمینال می تونم کانکت بشم و اس ام اس سند کنم !
و در ویژوال بیسیک فقط مشکل کانکت شدن به پورت (20) را دارم !
و از کابل USB هم استفاده می کنم !
ممنون !
اگر کامپوننت دیگه ای هست دوستان برام لینک کنند !
ممنون !

----------


## reza6384

سلام.
من امروز چك كردم و ديدم كه MSComm1 از Com16 به بالا ديگه جواب نميده و ميگه INVALID PORT NAME.

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

http://www.rs232-serial-communicatio...FQtCMAody3rELg

----------


## r_o_o_z_y

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

----------


## r_o_o_z_y

من الان دارم تست می کنم ببینم اگه پورت usb را تغییر بدم بیارم روی 4 کار می کنه یا نه !
نتیجش را اعلام می کنم !

----------


## r_o_o_z_y

خوب پورت را آوردم زیر 6 و با استفاده از PDU الان راحت می تونم با پورت USB متصل به گوشی کار کنم !
مشکلم تا حدودی حل شد ;)

----------


## Black_Strom

جواب میده رو همه موبایل ها - با تلفن نمیشه ؟
جایی خونده بودم که میشه ... ؟

----------


## AmirAmiri

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

با تشکر...

----------


## mohsenm66

سلام

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

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

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

----------


## volkswagen

یک سوال دارم که شاید مسخره بیاد.با ویژوال بیسیک 6 میشه برای موبایل برنامه نوشت؟

----------

