# Native Code > برنامه نویسی موبایل > سوال: چگونه در سيستم PDU پيامها را از حافظه بخوانيم ؟؟

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

سلام دوستان ... گوشي من Sony مدل S500! هست كه به راحتي به كامپيوتر متصلش كردم و با استفاده از پورتش بهش دستورات AT رو ارسال ميكنم ... من با استفاده از فرمان  AT  فهميدم كه گوشيم از AT پشتيباني ميكنه .. و بعد با فرمان AT+CMGF=?  فهميدم كه با PDU كار ميكنه چون مقدار بازگشتيش 0 بود ... خوب حالا من به راحتي با فرمت PDU اس ام اس ارسال ميكنم ولي نميتونم اس ام اس بخونم ... اگه امكان داره دوستان در خوندن اس ام اس توسط اين سيستم راهنمايي كنند ... در ضمن چه جوري بايد فهميد كه پيام تازه دريافت شده تا اون رو بخونيم ؟؟؟

----------


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

سلام شرمنده دوستان مشكلم رو تونستم حل كنم ... فقط مشكل اينه كه وقتي اس ام اس هاي فارسي رو از حافظه ميخونم و از حالت PDU در ميارمشون اصلا به شكل فارسي نيست و به صورت كاراكترهاي در هم انگليسي نشون داده ميشه توي كامپيوتر ... براي اين مشكل ايا راهي وجود داره ؟؟؟

----------


## noorsoft

> سلام دوستان ... گوشي من Sony مدل S500! هست كه به راحتي به كامپيوتر متصلش كردم و با استفاده از پورتش بهش دستورات AT رو ارسال ميكنم ... من با استفاده از فرمان  AT  فهميدم كه گوشيم از AT پشتيباني ميكنه .. و بعد با فرمان AT+CMGF=?  فهميدم كه با PDU كار ميكنه چون مقدار بازگشتيش 0 بود ... خوب حالا من به راحتي با فرمت PDU اس ام اس ارسال ميكنم ولي نميتونم اس ام اس بخونم ... اگه امكان داره دوستان در خوندن اس ام اس توسط اين سيستم راهنمايي كنند ... در ضمن چه جوري بايد فهميد كه پيام تازه دريافت شده تا اون رو بخونيم ؟؟؟


با سلام دوست عزیز هر گوشی که دستورات AT را ساپورت کنه PDU را هم ساپورت میکنه 
- 
برای فهمیدن اینکه پیام جدید اومده یا نه (فقط با چک کردن و مقایسه لیست پیامها امکان پذیره)
AT+CMGL
موفق باشی

----------


## noorsoft

> سلام شرمنده دوستان مشكلم رو تونستم حل كنم ... فقط مشكل اينه كه وقتي اس ام اس هاي فارسي رو از حافظه ميخونم و از حالت PDU در ميارمشون اصلا به شكل فارسي نيست و به صورت كاراكترهاي در هم انگليسي نشون داده ميشه توي كامپيوتر ... براي اين مشكل ايا راهي وجود داره ؟؟؟



پیامهای فارسی به حالت 16 بیتی کد میشن پس نباید انتظار داشته باشی روی حالت 7 بیتی که پیامهای انگلیسی کد شده اند باز بشه برای همینه که شما در حالت تایپ فارسی کارکترهای کمتری نسبت که حالت تایپ انگلیسی داری یعنی 70 در مقابل 160

به هر حال شما باید PDU را در حالت USC2 از کد خارج کنی
موفق باشی

----------


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

ممنونم ... مشكلم حل شده بود ... بازم ممنونم از جوابي كه دادين ..

----------


## vahid_d_0101

> سلام دوستان ... گوشي من Sony مدل S500! هست كه به راحتي به كامپيوتر متصلش كردم و با استفاده از پورتش بهش دستورات AT رو ارسال ميكنم ... من با استفاده از فرمان AT فهميدم كه گوشيم از AT پشتيباني ميكنه .. و بعد با فرمان AT+CMGF=? فهميدم كه با PDU كار ميكنه چون مقدار بازگشتيش 0 بود ... خوب حالا من به راحتي با فرمت PDU اس ام اس ارسال ميكنم ولي نميتونم اس ام اس بخونم ... اگه امكان داره دوستان در خوندن اس ام اس توسط اين سيستم راهنمايي كنند ... در ضمن چه جوري بايد فهميد كه پيام تازه دريافت شده تا اون رو بخونيم ؟؟؟


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

----------


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

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+cpms?  Query of currently selected memory for SMS writing, … 
+CPMS: "ME",3,20 

OK 
at+cpms="MT"  Selecting MT memory (SIM + Mobile) 
+CPMS: 5,30 

OK 
at+cmgf?  Query of currently selected SMS management mode (being 
+CMGF: 0  either Text if 1 or PDU if 0) 

OK 
at+cmgf=1  Selecting Text mode for SMS management 
+CMGF: 1 

OK 
at+cmgw="+33600000000"  Writing a SMS to MT memory. The first available memory 
> testing SMS. Writing this SMS to memory  index is then used to stored the SMS, in our case index 903 of 
> <CTRL-Z>  mobile’s memory is used. 
+CMGW:903 

OK 
at+cmss=903  Ask the mobile phone to send the SMS stored in memory 
+CMSS: 0  index 903, to the recipient specified above (+33600000000, 
  myself). 
OK 
+CMTI: "ME",904  Notification from my mobile phone: I have received a new 
SMS, which has been stored to memory index 904. This is the 
SMS I have sent to myself above. The location where this 
SMS has been stored (ME and not SM) depends on the 
SMS’s class, which is a parameter you can set only using 
PDU mode when sending your SMS. More details about PDU 
mode can be found in ETSI 03.40 and 03.38. 
at+cmgr=904  I can now read my new SMS in memory index 904. 
+CMGR: "REC UNREAD" 
,"+33600000000","00/02/24,10:38:42+00",39 
testing SMS. Writing this SMS to memory 

OK 
at+cmgd=904  Tell the mobile phone to delete the SMS in memory index 904. 
OK

----------


## soheil_programmer

> با سلام دوست عزیز هر گوشی که دستورات AT را ساپورت کنه PDU را هم ساپورت میکنه 
> - 
> برای فهمیدن اینکه پیام جدید اومده یا نه (فقط با چک کردن و مقایسه لیست پیامها امکان پذیره)
> AT+CMGL
> موفق باشی


با سلام

در مورد اومدن پیام جدید با نظرتون مخالفم که فقط باید کل پیام ها را جهت فهمیدن پیام جدید چک کنیم، اگه شک دارین در مورد دستور زیر تحقیق کنید:
AT+CNMI

----------


## d68715

AT+CNMI=2,1,0,1
هر بار کانکت شدی اینو واسه گوشی بفرست بعد اوکی میزنه بعد اگه اس ام اس جدید اومد خود گوشی میاد رو پورت ایندکس جدید اس ام اس رو میاره
مثل یه اینتراپت

----------


## leopard

این s500 رو چطوری میشه وصلش کرد به PC؟ من هر کاری میکنم ارور 321 میگیرم 

AT+CMGL رو Ok میده ولی وقتی مثلا میزنم AT+CMGL=1 ارور 321 میده 
AT+CMGF? رو هم که میزنم CMG(0) رو برمیگردونه یعنی رو حالته PDU هستش ...

کلا پدرمونو در آورده چند روز باید پروژه رو تحویل بدم . کسی میتونه کمک کنی؟ 
یا اگه کسی قبلا برنامش رو نوشته سورسش رو داره بفرسته ممنون میشم 
مرسی

----------

