تقييم الموضوع :
  • 1 أصوات - بمعدل 1
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] مشكلة إستقبال رسائل باللغة العربية AT Command ؟
#1
Question 
السلام عليكم ورحمة الله وبركاته

المشكلة التى اواجهها هى ( عند تنفيذ اكواد USSD ) عدم إستقبالى للرد من المودم وذلك فى حالة اذا كان الرد باللغة العربية فهو يظهر لى على هيئة ارقام ؟؟ وان كانت الرسالة باللغة الإنجليزية فهى تظهر دون اى مشاكل ولكنى احتاج للتعديل عليها حيث انه يظهر بعض الاحرف التى لا افهم معناها واضطر لإزالتها

كود الإتصال وتنفيذ أوامر USSD

كود :
port.Close();


port.BaudRate = 921600;
port.PortName = com1.Text;
port.Parity = Parity.None;
port.DataBits = 8;
port.StopBits = StopBits.One;
port.ReadTimeout = 3000;
port.WriteTimeout = 3000;
port.DataReceived += port_DataReceived;
port.Open();

//تحويل جمله طاير
if (men.SelectedIndex == 8)
{
//*666*2*X*Y*Z#
port.Write(String.Format("AT+CUSD=1,\"{0}\"{1}", goml1.Text + mob.Text + "*" + int.Parse(val.Text) + "*" + pass1.Text + "#", Environment.NewLine));
}

//تحويل قطاعي طاير
if (men.SelectedIndex == 7)
{
//*666*2*X*Y*Z#
port.Write(String.Format("AT+CUSD=1,\"{0}\"{1}", katay1.Text + mob.Text + "*" + int.Parse(val.Text) + "*" + pass1.Text + "#", Environment.NewLine));
}

//معرفة رقم الموبايل
if (men.SelectedIndex == 4)
{
//*666*2*X*Y*Z#
port.Write(String.Format("AT+CUSD=1,\"{0}\"{1}", mob_no1.Text, Environment.NewLine));
//messag.Text = Session["msg"].ToString();

}

//معرفة تاريخ ووقت الشبكة
if (men.SelectedIndex == 3)
{
//*666*2*X*Y*Z#
port.Write(String.Format("AT+CUSD=1,\"{0}\"{1}", date11.Text, Environment.NewLine));
}
//معرفة رصيد التحويل
if (men.SelectedIndex == 6)
{
//*666*2*X*Y*Z#
port.Write(String.Format("AT+CUSD=1,\"{0}\"{1}", exch_credit1.Text + pass1.Text + "#", Environment.NewLine));
//messag.Text = Session["msg"].ToString();
}
//معرفة رصيد المكالمات
if (men.SelectedIndex == 5)
{
//*666*2*X*Y*Z#
port.Write(String.Format("AT+CUSD=1,\"{0}\"{1}", call_credit1.Text, Environment.NewLine));
//messag.Text = Session["msg"].ToString();
}
//ussd ارسال رساله
if (men.SelectedIndex ==0)
{
//*666*2*X*Y*Z#
port.Write(String.Format("AT+CUSD=1,\"{0}\"{1}", sendussd1.Text + mess.Text, Environment.NewLine));
//messag.Text = Session["msg"].ToString();
}

//اجراء مكالمة
if (men.SelectedIndex == 2)
{
//*666*2*X*Y*Z#
port.Write(String.Format("AT+CUSD=1,\"{0}\"{1}", call1.Text + mob.Text, Environment.NewLine));
//messag.Text = Session["msg"].ToString();
}


////ارسال رساله
if (men.SelectedIndex == 1)
{
try
{
if (objclsSMS.sendMsg(port, mess.Text, mob.Text))
{
//MessageBox.Show("Message has sent successfully");
lblmsg.Text = "Message has sent successfully";
}
else
{
//MessageBox.Show("Failed to send message");
lblmsg.Text = "Failed to send message";

}
}
catch (Exception)
{
throw;
}

}

كود إستقبال الرد من المودم

كود :
void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            SerialPort spL = (SerialPort)sender;
            byte[] buf = new byte[spL.BytesToRead];
            spL.Read(buf, 0, buf.Length);

            foreach (Byte b in buf)
            {
                mm += b.ToString();
            }

            var result = Encoding.UTF8.GetString(buf);//just return OK

            string x = result.Remove(0, 11);
            o = x.Remove(x.Length - 13);
           lblmsg.Text = o;
        }

فكيف يمكن استقبال الرسالة باللغة العربية - وكيف يمكن الاستغناء عن الجزء الذى اقوم فيه بتنسيق الرسالة بحيث اعرض الرسالة التى استقبلها كما هى سواء باللغة العربية او الانجليزية ؟
الرد }}}
تم الشكر بواسطة: 30june


الردود في هذا الموضوع
مشكلة إستقبال رسائل باللغة العربية AT Command ؟ - بواسطة a.amin - 30-12-13, 02:58 AM


التنقل السريع :


يقوم بقرائة الموضوع: