intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Điện thoại di động với C #

Chia sẻ: Bùi Trọng Quốc Viễn | Ngày: | Loại File: DOC | Số trang:6

147
lượt xem
28
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Điện thoại di động còn được biết tới như một modemdây hay GSM Modem. Nếu như modem là thiết bị truyền nhận dữ liệu qua dây (wire) thì ĐTDĐ là thiết bị truyền nhận dữ liệu qua sóng vô tuyến (wireless). Cũng như modem, chúng ta hoàn toàn có thể điều khiển được ĐTDĐ qua tập lệnh AT do Viện Tiêu Chuẩn Viễn Thông Châu Âu (European Telecommunication Standards Institute - ETSI) đưa ra.

Chủ đề:
Lưu

Nội dung Text: Điện thoại di động với C #

  1. Điện thoại di động (ĐTDĐ) còn được biết tới như một modem không dây hay GSM Modem. N ếu như modem là thiết bị truyền nhận dữ liệu qua dây (wire) thì ĐTDĐ là thiết b ị truy ền nh ận d ữ liệu qua sóng vô tuyến (wireless). Cũng như modem, chúng ta hoàn toàn có thể đi ều khi ển đ ược ĐTDĐ qua tập lệnh AT do Viện Tiêu Chuẩn Viễn Thông Châu Âu (European Telecommunication Standards Institute - ETSI) đưa ra. Dưới đây là một số tài liệu về tập lệnh thao tác với ĐTDĐ được sử dụng trong quá trình vi ết ứng dụng: [1]. GSM 07.05, ver 5.5.0 - Use of Data Terminal Equipment - Data Circuit Terminating Equipment (DTE - DCE) interface for Short Message Service (SMS) and Cell Broadcast Service (CBS). [2]. GSM 03.40, ver 5.3.0 - Technical realization of the Short Message Service (SMS) Point-to- Point (PP). [3]. GSM 03.38, ver 5.3.0 - Alphabets and language-specific information. [4]. GSM 07.07, ver 5.0.0 - AT command set for GSM Mobile Equipment (ME). Trong đó, tài liệu [1] mô tả về các kiểu định dạng của tin nhắn (text, binary) và các l ệnh AT thao tác với tin nhắn; tài liệu [2], [3] mô t ả về cấu trúc và ki ểu mã hoá c ủa tin nh ắn (binary); tài li ệu [4] mô tả tập lệnh thao tác với ĐTDĐ. Khởi đầu  Hình 1: Cáp dữ liệu của điện thoại C55     Thiết bị được sử dụng ở đây là điện thoại Siemens C55, giao ti ếp với máy tính qua cáp nối ti ếp RS232, chương trình thử nghiệm là HyperTerminal (có sẵn trong Windows). Mọi thông tin về điện thoại (tên sản phẩm, s ố IMEI, bộ nhớ, sổ đi ện thoại...) đều đ ược l ưu tr ữ trong máy; các thông tin khác như nội dung tin nhắn, dung lượng SIM đ ược l ưu tr ữ trên SIM. Các thông tin này đều có thể truy xuất được qua tập lệnh AT. Hình 2 cho th ấy vi ệc truy xuất thông tin của điện thoại Siemens C55 bằng chương trình HyperTerminal. Nhập cuộc Như vậy chỉ bằng việc gửi lệnh AT thích hợp đến điện thoại, bạn có thể truy xuất đ ược thông tin bạn mong muốn. Dưới đây trình bày cách viết một chương trình quản lý ĐTDĐ qua c ổng COM bằng ngôn ngữ C# trên nền .NET 2.0. Kể từ phiên bản .NET Framework 2.0, Microsoft đã cung cấp thêm lớp SerialPort cho phép người lập trình có th ể giao ti ếp v ới các thi ết b ị ngo ại vi qua cổng COM. Việc sử dụng thư viện này khá đơn giản. using System.IO.Ports; void Form1_Load(object sender, EventArgs e) {
  2. /* Khởi tạo cổng COM1 với */ /* tốc độ 9600 bps, 0 bit chẵn lẻ, 8 bit dữ liệu, 1 bit d ừng */ SerialPort ComPort = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One); /* Gửi lệnh AT tới điện thoại */ ComPort.Write("AT+CGSN\r"); /* Khởi tạo sự kiện xử lý dữ liệu nhận được từ điện thoại */ ComPort.DataReceived += new SerialDataReceivedEventHandler(ProcessReceivedData); }             Hình 2: Sử dụng HyperTerminal     để truy xuất thông tin ĐTDĐ /* Hàm xử lý dữ liệu nhận được từ điện thoại */ void ProcessReceivedData(object sender, SerialDataReceivedEventArgs e) { String ReceivedData = ComPort.ReadLine(); ... } Một điểm quan trọng trong quá trình lập trình với cổng COM là làm sao đ ể đ ồng b ộ hoá đ ược việc nhận và gửi dữ liệu giữa máy tính và thiết bị ngoại vi. Nếu bạn g ửi nhiều l ệnh AT t ới đi ện thoại cùng một lúc trong khi chưa kịp xử lý thông tin trả về trước đó thì s ẽ d ẫn t ới vi ệc "tràn b ộ đệm". Để giải quyết vấn đề này, bạn sử dụng lớp AutoResetEvent cho phép t ạm d ừng m ột ti ến trình cho đến khi nhận được thông báo tiếp tục. AutoResetEvent Wait = new AutoResetEvent(false); 
  3.                                Hình 3: Sơ đồ  gửi lệnh và xử lý dữ liệu     Dưới đây là sơ đồ xử lý tuần tự từng lệnh AT gửi đến cổng COM: Sau khi g ửi l ệnh cmd1, chương trình sẽ tạm dừng (bằng hàm WaitOne()) trước khi gửi lệnh cmd2 cho đến khi nh ận được thông báo đã xử lý xong dữ liệu (bằng lệnh hàm Set()). using System.Threading; void Form1_Load(object sender, EventArgs e) { ... AutoResetEvent Wait = new AutoResetEvent(false); for (int i = 0; i < 3; i++ ) { /* Gửi lệnh AT tới điện thoại */ ComPort.Write(cmd); /* Chờ cho tới khi xử lý xong dữ liệu */                    Hình 4: Cửa sổ chính chương trình     Wait.WaitOne(); } }
  4. void ProcessReceivedData(object sender, SerialDataReceivedEventArgs e) { ... switch(cmd) { /* Xử lý lệnh cmd1 */ Case cmd1: ...                         Hình 5: Cửa sổ Phonebook     /* Thiết lập thông báo */ Wait.Set(); break; /* Xử lý lệnh cmd2 */ Case cmd2: ... Wait.Set(); break; ... } } 
  5.                                   Hình 6: Cửa sổ   Messages     Các tin nhắn được lưu trong ĐTDĐ dưới 2 định dạng: text và binary (PDU mode). Đ ịnh d ạng binary là mặc định trong tất cả các máy điện thoại, ngoài ra trong m ột s ố máy còn h ỗ tr ợ thêm định dạng text. Bạn có thể kiểm tra xem máy của mình hỗ trợ nh ững đ ịnh dạng nào b ằng l ệnh AT sau: AT+CMGF=? Nếu kết quả trả về là (0) thì máy hỗ trợ định dạng binary, (0-1) thì máy hỗ tr ợ 2 đ ịnh d ạng binary và text. Tùy vào việc máy hỗ trợ những định dạng tin nhắn nào mà b ạn có th ể l ập trình đ ể đ ọc và g ửi tin nhắn một cách thích hợp. Đối với máy chỉ hỗ trợ tin nhắn d ạng binary, b ạn nên tham kh ảo tài liệu [2] để biết thêm thông tin về cấu trúc của tin nhắn. Đối v ới tin nhắn d ạng text, b ạn có th ể tham khảo tài liệu [1]. Kết quả Hình 4, 5 và 6 là một số hình ảnh của chương trình qu ản lý điện tho ại đ ược vi ết b ằng ngôn ng ữ C# dựa trên các phân tích đã đề cập ở trên. Như vậy, bằng tập lệnh AT bạn hoàn toàn có thể làm chủ được chiếc ĐTDĐ xinh x ắn c ủa mình như lưu lại số điện thoại, tin nhắn hay thậm chí viết các ứng d ụng nh ằm hỗ tr ợ cho vi ệc qu ản lý và cảnh báo từ xa bằng SMS. Bạn có thể tải về tài liệu và chương trình demo tại website www.hitekgroup.net.    MỘT SỐ LỆNH AT ĐƯỢC DÙNG TRONG CHƯƠNG TRÌNH STT     Câu lệnh     Chức năng         1     AT+CGMI     Xác định thông tin về nhà sản xuất         2      AT+CGMM     Xác định model của sản phẩm         3     AT+CGMR     Xác định phiên bản   firmware         4     AT+CGSN     Xác định số IMEI của thiết bị         5     AT+CBC     Xác định thời   lượng pin         6     AT+CSQ     Xác định độ mạnh của sóng         7     AT+CPBS     Lựa chọn bộ   nhớ để lưu Phonebook         8     AT+CPBR     Đọc một phần tử trong Phonebook         9      AT+CPBF     Tìm kiếm một phần tử trong Phonebook         10     AT+CPBW     Ghi một phần tử   vào Phonebook         11     AT+CMGF     Thiết lập định dạng của tin nhắn         12     AT+CPMS      Lựa chọn bộ nhớ để lưu tin nhắn         13     AT+CMGL     Liệt kê tin nhắn         14     AT+CMGR       Đọc một tin nhắn xác định         15     AT+CMGS     Gửi một tin nhắn         16     AT+CMGD      Xoá một tin nhắn xác định         Để biết chi tiết cấu trúc lệnh, tham khảo tài liệu [1] và [4].      Theo PcWorlf Vn
  6. _____________________________
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2