PDA

View Full Version : سوال: دریافت SMS



neegar
یک شنبه 21 اسفند 1390, 10:14 صبح
سلام به دوستان من یک برنامه ارسال و دریافت sms نوشتم که sms ارسال میکنه اما قسمت دریافت sms کار نمی کنه کدی که نوشتم به صورت زیر هست نمی دونم اشکالش از کجاست ؟؟؟؟؟؟؟؟؟
لطفا کمکم کنید. :افسرده:

Imports GsmComm.GsmCommunication
Imports GsmComm.PduConverter
Imports System
Imports System.ComponentModel
Imports System.Drawing
Imports System.Runtime.CompilerServices
Imports System.Windows.Forms
Imports Microsoft.VisualBasic
Imports System.Collections.Generic
Imports System.Data

Namespace SMS
Public Class Form1

Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
Dim retry As Boolean
Dim port As Integer = 1
Dim baudRate As Integer = &H2580
Dim timeout As Integer = 300
Dim dlg As New frmConnection With { _
.StartPosition = FormStartPosition.CenterScreen _
}
dlg.SetData(port, baudRate, timeout)
If (dlg.ShowDialog(Me) = DialogResult.OK) Then
dlg.GetData(port, baudRate, timeout)
CommSetting.Comm_Port = port
CommSetting.Comm_BaudRate = baudRate
CommSetting.Comm_TimeOut = timeout
Else
MyBase.Close()
Return
End If
Cursor.Current = Cursors.WaitCursor
CommSetting.comm = New GsmCommMain(port, baudRate, timeout)
Cursor.Current = Cursors.Default
AddHandler CommSetting.comm.PhoneConnected, New EventHandler(AddressOf Me.comm_PhoneConnected)
AddHandler CommSetting.comm.MessageReceived, New MessageReceivedEventHandler(AddressOf Me.comm_MessageReceived)
Do
retry = False
Try
Cursor.Current = Cursors.WaitCursor
CommSetting.comm.Open()
Cursor.Current = Cursors.Default
tmSendSMS.Start()
Catch exception1 As Exception
Cursor.Current = Cursors.Default
If (MessageBox.Show(Me, "Unable to open the port.", "Error", MessageBoxButtons.RetryCancel, MessageBoxIcon.Exclamation) = DialogResult.Retry) Then
retry = True
Else
MyBase.Close()
Exit Do
End If
End Try
Loop While retry
End Sub

Private Function GetMessageStorage() As String
Dim storage As String = String.Empty
storage = "SM"
If (storage.Length = 0) Then
Throw New ApplicationException("Unknown message storage.")
End If
Return storage
End Function

Private Sub MessageReceived()
Cursor.Current = Cursors.WaitCursor
Dim storage As String = Me.GetMessageStorage()
'AddHandler CommSetting.comm.PhoneConnected, New EventHandler(AddressOf Me.comm_PhoneConnected)
'AddHandler CommSetting.comm.MessageReceived, New MessageReceivedEventHandler(AddressOf Me.comm_MessageReceived)
Dim messages As DecodedShortMessage() = CommSetting.comm.ReadMessages(PhoneMessageStatus.R eceivedUnread, storage)
Dim message As DecodedShortMessage
For Each message In messages
Me.Output(String.Format("Message status = {0}, Location = {1}/{2}", Me.StatusToString(message.Status), message.Storage, message.Index))
Me.ShowMessage(message.Data)
Me.Output("")
HandleIncommingMessage(message)
Next
Dim c As Integer = messages.Length
Me.Output(String.Format("{0,9} messages read.", c.ToString))
Me.Output("")
End Sub

Private Sub tmSendSMS_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmSendSMS.Tick
Me.Output("Process SMS sendings ... ")
Try
'1- Retrive passwords that is not send
Dim lsUser As New List(Of user)
lsUser = GetNotSents()

MessageReceived()

'2- for each record send sms to destination
For Each u As user In lsUser
'u.SMS = (Now.Ticks Mod 10000).ToString("0000")
If SendPass(u.MobileNo, u.SMS) Then
UpdateUser(u)
End If
Threading.Thread.Sleep(100)
Next

Catch ex As Exception

End Try
End Sub

Public Class user
Public MobileNo As String
Public SMS As String
Public ID As Integer
End Class

Dim ConnStr As String = "Data Source=TEB506\SQLEXPRESS;Initial Catalog=Test;Integrated Security=True"

Private Function GetNotSents() As List(Of user)
Dim conn As New SqlClient.SqlConnection(ConnStr)
Dim cmd As New SqlClient.SqlCommand("Select MobileNo, SMS , ID From tblSMS Where IsSend =0", conn)
Dim lsuser As New List(Of user)

conn.Open()
Dim dr As SqlClient.SqlDataReader
dr = cmd.ExecuteReader
If dr.HasRows Then
While dr.Read
Dim u As New user
u.MobileNo = dr.Item("MobileNo").ToString().Trim
u.SMS = dr.Item("SMS").ToString()
u.ID = dr.Item("ID")

lsuser.Add(u)

End While

End If
conn.Close()
GetNotSents = lsuser
End Function

Private Function SendPass(ByVal MobileNo As String, ByVal SMS As String) As Boolean
Try
Dim pdu As SmsSubmitPdu

Dim alert As Boolean = False
Dim unicode As Boolean = True
If Not (alert OrElse [unicode]) Then
pdu = New SmsSubmitPdu(SMS, MobileNo, "")
Else
Dim dcs As Byte
If Not (alert OrElse Not [unicode]) Then
dcs = DataCodingScheme.NoClass_16Bit
ElseIf Not (Not alert OrElse [unicode]) Then
dcs = DataCodingScheme.Class0_7Bit
ElseIf (alert AndAlso [unicode]) Then
dcs = DataCodingScheme.Class0_16Bit
Else
dcs = DataCodingScheme.NoClass_7Bit
End If
pdu = New SmsSubmitPdu(SMS, MobileNo, dcs)
End If
pdu.RequestStatusReport = True

CommSetting.comm.SendMessage(pdu)

'Dim pdus() As OutgoingSmsPdu = SmartMessaging.SmartMessageFactory.CreateConcatTex tMessage(SMS, MobileNo)

'For Each x As OutgoingSmsPdu In pdus
' CommSetting.comm.SendMessage(x)
'Next

Me.Output("Message sent to " + MobileNo)
Return True
Catch ex As Exception
Me.Output("failed to send message to " + MobileNo + " error : " + ex.Message)
Return False
End Try

End Function

Public Sub HandleIncommingMessage(ByVal message As DecodedShortMessage)
Try
Dim conn As New SqlClient.SqlConnection(ConnStr)
Dim cmd1 As New SqlClient.SqlCommand("INSERT INTO tblSMSLog (Message, Type, [Date], Status) VALUES ('" & message.Data.UserDataText & "', 0, getdate(), '" & StatusToString(message.Status) & "') ", conn)
conn.Open()
cmd1.ExecuteNonQuery()
conn.Close()
Catch ex As Exception
Me.Output("Failed to Update DB , Error: " & ex.Message)
End Try
End Sub

Private Sub UpdateUser(ByVal u As user)
Try
Dim conn As New SqlClient.SqlConnection(ConnStr)
Dim cmd As New SqlClient.SqlCommand("UPDATE tblSMS set IsSend = 1 , SendID=ident_current('tblSMSLog') Where ID=" & u.ID, conn)
Dim cmd1 As New SqlClient.SqlCommand("INSERT INTO tblSMSLog (Message, Type, [Date], Status) VALUES ('" & u.SMS & "', 1, getdate(), 'Sent') ", conn)
conn.Open()
cmd1.ExecuteNonQuery()
cmd.ExecuteNonQuery()
conn.Close()
Catch ex As Exception
Me.Output("Failed to Update DB , Error: " & ex.Message)
End Try
End Sub


End Class
End Namespace

h_a_m_i_d
یک شنبه 21 اسفند 1390, 19:37 عصر
سلام دوست عزیز میخواستم بپرسم طرز کار این برنامه چطور هست یعنی
برای ارسال باید به تلفن همراه وصل بشه یا اینترنت

neegar
شنبه 19 اسفند 1391, 11:43 صبح
سلام دوست عزیز میخواستم بپرسم طرز کار این برنامه چطور هست یعنی
برای ارسال باید به تلفن همراه وصل بشه یا اینترنت

به GSM Modem وصل میشه.

123s0ran
شنبه 19 اسفند 1391, 12:10 عصر
سلام دوستان من هم دقیقا همین مشکل دارم لطفا رهنمای کنید

davood-ahmadi
شنبه 19 اسفند 1391, 15:01 عصر
سلام
اگر کامپونت رو خریدید که معمولا داکیومنت داره . احتمالا طرز استفاده رو مثال داده و راهنمایی هم کرده و خیلی راحت می تونید بفهمید کجاش ایراد داره.
اگر کامپوننت رایگان و یا کرکه که نمونه بگذارید تا بنده و دوستان تست کنیم و بگیم که مشکلش کجاست.

123s0ran
شنبه 19 اسفند 1391, 15:26 عصر
سلام بفرماید این کامپونت mCore.NETSMSLibrary1.2.3_2 هستش همراه با کرکش ظاهرا اتصال به پورتشم مشکل داره لطفا ی نگاهی بندازید ببیند مشکل از کجاست مرسی و ممنون

[/URL][URL]http://sites.google.com/site/mousavinet/files/mCore.NETSMSLibrary1.2.3.zip (https://342a7ca3-a-62cb3a1a-s-sites.googlegroups.com/site/mousavinet/files/mCore.NETSMSLibrary1.2.3.zip?attachauth=ANoY7cpJ4K IRVn4N2FacgDPHzlz8NUFNZKVj9jp0JP6a1z2EnkrykNrxM6th 2AoJz-eomnNLPO9n_rziZ26_lPqaJMcOrj3-bnNyRFuI1qSJcPxcey8QOK725bDaosah5V_ehe856IFzUsNHp3 5yb5PSHYMClH9caKU4uof-kDUCnxLpFk31Fvtyjvsz-FUaTJKRnLcFIu5XkCtJ-_2pDglXE8r3i3j4kjclC2uIpt-83EkbOmM804I%3D&attredirects=3)
:لبخندساده:

123s0ran
شنبه 19 اسفند 1391, 15:46 عصر
ببخشید این برنامه هم از اداخل انجمن گرفتم اگه میشه ی توضحی در موردش بدید و طبق معمول این برنامه هم مثل سایره برنامه های دیگه sms های دریافت شده گوشی نمی تونه بخونه...

http://barnamenevis.org/attachment.php?attachmentid=95358&d=1353502069

davood-ahmadi
شنبه 19 اسفند 1391, 15:48 عصر
آدرس لینکت مشکل داره . نتونستم دانلودش کنم. مطمئنی از درستیه لینک و یا با فیلتر... باید برم؟

123s0ran
شنبه 19 اسفند 1391, 16:02 عصر
ن مشکلی نداشت لطفا اون لینک بعدی که توی پست 7 گذاشتم ببینید.چون اون توی خود انجمن اپ شد و مشکلی واسه دانلود نداره و دقیقا مثل همه برنامه های دیگه مشکل خواندن sms از گوشیه داره. و اگه میشه ی توضیحی بدید در مودش لطفا

davood-ahmadi
شنبه 19 اسفند 1391, 16:31 عصر
شما اگر از دکمه btnReadMessage استفاده می کنی که این دکمه به Event خاصی ارتباط نداره.
من فکر کنم مشکل شما اینه. تست کن اگر جواب نداد دستگاه gsm رو به کامپیوترم وصل می کنم ببینم علت دیگش چیه؟
من قبلا با این کامپوننت و این کد کار کرده بودم . دقیقا همین طراحی بود. ( یادم نیست به چه خاطر ازش استفاده دائم نکردم )

123s0ran
شنبه 19 اسفند 1391, 17:49 عصر
سلام درسته اقای davood-ahmadi مشکل از اونه حق با شماست اگه لطف کنید شما ببینید درست میشه چون باور کنید من خودم تاز کار هستم و هیچ سر رشته ای توی این مباحث ندارم .مرسی و تشکر
:لبخندساده:

123s0ran
یک شنبه 20 اسفند 1391, 00:33 صبح
:ناراحت::ناراحت::افسرده:

davood-ahmadi
یک شنبه 20 اسفند 1391, 09:24 صبح
فکر کنم درست شد چکش کن

123s0ran
یک شنبه 20 اسفند 1391, 12:25 عصر
سلام ببخشید مشکل پورت و فرستادن اس ام اس درست شده دستتون درد نکنه اما واسه خوندن ی اروری میده که نوع ارور توی عکس زیر می تونید ببینید... و نمی دونم مشکل از گوسی من هستش یا برنامه :متفکر:


101204