تقييم الموضوع :
  • 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
#2
هل من توضيح ؟
الرد }}}
تم الشكر بواسطة:
#3
وعليكم السلام أخوي
المشكلة يبدو أنها لها علاقة بترميز النص نفسه

هل ممكن تعمل مثال عن الخطأ اللي بيظهر في النص حتى نفهم المشكلة
اللَّهُمَّ أَنْتَ رَبِّي ، لا إِلَه إِلاَّ أَنْتَ خَلَقْتَني وأَنَا عَبْدُكَ ، وأَنَا على عهْدِكَ ووعْدِكَ ما اسْتَطَعْتُ ، أَعُوذُ بِكَ مِنْ شَرِّ ما صنَعْتُ ، أَبوءُ لَكَ بِنِعْمتِكَ علَيَ ، وأَبُوءُ بذَنْبي فَاغْفِرْ لي ، فَإِنَّهُ لا يغْفِرُ الذُّنُوبِ إِلاَّ أَنْتَ .
الرد }}}
تم الشكر بواسطة:
#4
السَلٱمٌ عـَلـْيگمّ-ۈرحـْمّـٌة ٱللـّہ ﯙبُرگـّاتہ
اذا سمحت اخي انا بحاجه هذا البرنامج وانا اوعدك اننا بصلح المشكله الخاصه باللغه العربيه انشا الله رسلي بالبرنامج الاصلي مع السورس كود
هذا الايميل تبعي
t772299420@gmail.com
وهذا الواتس
00967772299420

انتضرك
الرد }}}
تم الشكر بواسطة:
#5
الأرقام التي تصلك عبارة عن النص باللغة العربية بتشفير Hex


فك التشفير و ستحصل على النص الصحيح 
موفق
الرد }}}
تم الشكر بواسطة:



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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم