1.1 Giới thiệu.
C# là một ngôn ngữ lập trình h ớng đối t ợng đợc phát triển bởi Microsoft, là phần khởi đầu cho kế hoạch .NET của họ. Tên của ngôn ngữ bao gồm ký tự thăng theo Microsoft nhng theo ECMA là C#, chỉ bao gồm dấu số thờng. Microsoft phát triển C# dựa trên C++ và Java. C# đợc miêu tả là ngôn ngữ có đợc sự cân bằng giữa C++, Visual Basic, Delphi và Java. C# đợc thiết kế chủ yếu bởi Anders Hejlsberg kiến trúc s phần mềm nổi tiếng với các sản phẩm Turbo Pascal, Delphi, J++, WFC.
C#, theo một hớng nào đó, là ngôn ngữ lập trình phản ánh trực tiếp nhất đến .NET Framework mà tất cả các chơng trình .NET chạy, và nó phụ thuộc mạnh mẽ vào Framework này. Mọi dữ liệu cơ sở đều là đối tợng, đợc cấp phát và hủy bỏ bởi trình dọn rác Garbage-Collector (GC), và nhiều kiểu trừu tợng khác chẳng hạn nh class, delegate, interface, exception, v.v, phản ánh rõ ràng những đặc trng của .NET runtime.
.NET Framework là một th viện class có thể đợc sử dụng với một ngôn ngữ .NET để thực thi các việc từ thao tác chuỗi cho đến phát sinh ra các trang web động (ASP.NET), phân tích XML và reflection. .NET Framework đợc tổ chức thành tập hợp các namespace, nhóm các class có cùng chức năng lại với nhau, thí dụ nh System.Drawing cho đồ hoạ, System.Collections cho cấu trúc dữ liệu và System.Windows.Forms cho hệ thống Windows Forms.
Cấp cao hơn nữa đợc cung cấp bởi khái niệm này là assembly. Một assembly là một file hoặc nhiều file đợc liên kết với nhau (thông qua file al.exe), chứa đựng nhiều namespace và object. Các chơng trình cần các các lớp để thực thi một chức năng đặc biệt nào đó sẽ tham chiếu các assembly chẳng hạn nh System.Drawing.dll và System.Windows.Forms.dll cũng nh các core library (lu trong file mscorlib.dll).
1.2 Các tập lệnh sử dụng.
Ngời lập trình dùng Microsoft’s.NET Framework có thể sử dụng SerialPort class để truy cập vào thiết bị cổng COM. Những ứng dụng có thể sử dụng thuộc
tính, những phơng pháp và sự kiện của class để truy cập mà không phải dùng đến lập trình mức thấp hoặc Window API.
Truy cập đến PORT
Để truy cập vào cổng COM, ta đặt các tham số truyền tin, và mở một kết nối đến cổng .
Chúng ta cần sử dụng: using System.IO.Ports();
Chúng ta cần sử dụng:
SerialPort sp = new SerialPort("COM3", 46080, Parity.None, 8,
StopBits.One);
Tìm cổng
PortNames của lớp SerialPort là phơng pháp trả về 1 mảng tên của tất cả cổng COM của hệ thống. Các yếu tố của mảng không đợc đảm bảo để là những chữ cái .
sp.PortName(); Mở Cổng
Trớc khi truyền tin qua 1 cổng thì ứng dụng phải mở 1 kết nối đến SerialPort . Dùng phơng pháp OPEN sử dụng những thông số đợc chỉ định hay thông số mặc dịnh cha đợc chỉ định trớc đó:
sp.Open(); Đóng cổng:
Một ứng dụng mà hoàn tất việc truyền tin thì cổng sẽ đóng và trả cổng cho ứng dụng khác . Phớng pháp Close sẽ đóng cổng và xóa bộ đệm truyền, nhận . Ph- ơng pháp Dispose sẽ đóng cổng và giải phóng các nguồn đang dợc sử dụng để nó có thể mở cổng lại ngay sau khi đóng cổng.
sp.Close(); sp.Dispose(); Truyền dữ liệu:
NetFrameWork hỗ trợ nhiều phơng pháp cho đọc và gửi dữ liệu cổng COM Lớp SerialPort cung cấp phơng pháp đọc và ghi ra Port.
Trong những ứng dụng để truyền những dữ liệu dạng TEXT, có số lợng lớn hơn Byte. Ta có lớp SerialPort bao gồm phơng pháp mã hóa và giải mã những dữ liệu loại này. Cho ví dụ, những ứng dụng mà muốn gửi “gui du lieu”:
sp.Write("gui du lieu\r");
Ta có thể truyền 1 chuỗi nh trên với lệnh Writeline.
2 Tập lệnh AT.
2.1 Lịch sử phát triển.
Các modem đợc sử dụng từ những ngày đầu của sự ra đời của máy tính. Từ Modem là một từ đợc hình thành từ hai từ modulator và demodulator. Và định nghĩa đặc trng này cũng giúp ta hình dung đợc phần nào là thiết bị này sẽ làm cái gì. Dữ liệu số thì đến từ một DTE, thiết bị dữ liệu đầu cuối đợc điều chế theo cái cách mà nó có thể đợc truyền dữ liệu qua các đờng dây truyền dẫn. ở một mặt khác của đờng dây, một modem thứ hai điều chế dữ liệu đến và xúc tiến, duy trì nó.
Các modem ngày xa chỉ tơng thích cho việc gửi và nhận dữ liệu. Để thiết lập một kết nối thì một thiết bị thứ hai nh một dialer thì đợc cần đến. Đôi khi kết nối cũng đợc thiết lập bằng tay bằng cách quay số điện thoại tơng ứng và một khi modem đợc bật thì kết nối coi nh đợc thực thi. Vấn đề này thì không có gì cần phải bàn cãi trong những ngày trớc đây khi mà máy tính đợc sử dụng bởi những nhà kỹ thuật khéo léo, modem và các máy tính lớn. Các máy tính loại nhỏ ở các năm 70 thâm nhập vào thị trờng là các gia đình, cùng với chi phí thì sự thiếu hụt về kiến thức kỹ thuật trở thành một đề tài cần thảo luận.
Chúng ta đang nói về tuổi đời khi Internet, tele-banking và các ứng dụng truyền thông phổ biến khác khi mà chúng ta biết chúng bây giờ không còn tồn tại nữa rồi. Lí do chính của mọi ngời còn sử dụng modem đó là để kết nối với BBSes, Bullitin Board Systems. Các hệ thống máy tính chính thống đợc sử dụng bởi các công ty và các tính nguyện viên nơi mà mọi ngời có thể giao tiếp với ngời khác bằng cách sử dụng các board thông tin và up rồi download phần mềm cùng với các tiện tính. Với chi phí thấp thì dễ dàng cho việc sử dụng các modem, nó làm cho cộng việc này trở thành có thể thực thi. ở điều kiện lí tởng,
các modem có thể quay các số điện thoại mong muốn mà không cần có giao diện dành cho ngời dùng hay một bộ quay số bên ngoài
Các lệnh AT là các hớng dẫn đợc sử dụng để điều khiển một modem. AT là một cách viết gọn của chữ Attention. Mỗi dòng lệnh của nó bắt đầu với “AT” hay “at”. Đó là lí do tại sao các lệnh Modem đợc gọi là các lệnh AT. Nhiều lệnh của nó đợc sử dụng để điều khiển các modem quay số sử dụng dây mối (wired dial-up modems), chẳng hạn nh ATD (Dial), ATA (Answer), ATH (Hool control) và ATO (return to online data state), cũng đợc hỗ trợ bởi các modem GSM/GPRS và các điện thoại di động
Bên cạch bộ lệnh AT thông dụng này, các modem GSM/GPRS và các điện thoại di động còn đợc hỗ trợ bởi một bộ lệnh AT đặc biệt đối với công nghệ GSM. Nó bao gồm các lệnh liên quan tới SMS nh AT+ CMGS (gửi tin nhắn SMS), AT+CMSS (gửi tin nhắn SMS từ một vùng l trữ), AT+CMGL (chuỗi liệt kê các tin nhắn SMS) và AT+CMGR (đọc tin nhắn SMS)
Chú ý là khởi động “AT” là một tiền tố để thông báo tới modem về sự bắt đầu của một dòng lệnh. Nó không phải là một phần của tên lệnh AT. Ví dụ nh D là một tên lệnh AT thực tế trong ATD và +CMGS là tên một lệnh AT thực tế trong AT+CMGS. Tuy nhiên, một số sách hay một số trang web lại sử dụng chúng thay cho nhau nh là tên của một lệnh AT.
Sau đây là một vài nhiệm vụ có thể đợc hoàn thành bằng cách sử dụng các lệnh AT kết hợp với sử dụng 1 modem GSM/GPRS hay một điện thoại di động:
- Lấy thông tin cơ bản về điện thoại di động hay modem GSM/GPRS. Ví dụ nh tên của nhà sản xuất (AT+CGMI), số model (AT+CGMM), số IMEI (International Mobile Equipment Identity) (AT+CGSN) và phiên bản phần mềm (AT+CGMR).
- Lấy thông tin trạng thái hiện tại của điện thoại di động hay modem GSM/GPRS. Ví dụ nh trạng thái hoạt động của điện thoại (AT+CPAS), trạng thái đăng kí mạng mobile (AT+CREG), chiều dài sóng radio (AT+CSQ), mức sạc bin và trạng thái sạc bin (AT+CBC).
- Thiết lập một kết nối dữ liệu hay kết nối voice tới một remote điều khiển. - (ATD, ATA,..)
- Gửi (AT+CMGS, AT+CMSS), đọc (AT+CMGR, AT+CMGL), viết (AT+CMGW) hay xóa tin nhắn SMS (AT+CMGD) và nhận các thông báo của các tin nhắn SMS nhận đợc mới nhất (AT+CNMI).
- Đọc (AT+CPBR), viết (AT+CPBW) hay tìm kiếm (AT+CPBF) cá mục về danh bạ điện thoại (phonebook).
- Thực thi các nhiệm vụ liên quan tới an toàn, chẳng hạn nh mở hay đóng các khóa chức năng (AT+CLCK), kiểm tra xem một chức năng đợc khóa hay cha (AT+CLCK) và thay đổi password (AT+CPWD).
- Điều khiển hoạt động của các mã kết quả/các thông báo lỗi của các lệnh AT.
- Thiết lập hay thay đổi cấu hình của điện thoại di dộng hay modem GSM/GPRS. Ví dụ, thay đổi mạng GSM (AT+COPS), loại dịch vụ của bộ truyền tin (AT+CBST), các thông số protocol liên kết với radio (AT+CRLP), địa chỉ trung tâm SMS (AT+CSCA) và khu vực lu trữ các tin nhắn SMS (AT+CPMS).
- Lu và phục hồi các cấu hình của điện thoại di động hay modem GSM/GPRS. Chú ý là nhà sản xuất điện thoại di động thờng không thi hành tất cả các lệnh AT, các thông số lệnh và các giá trị của tham số trong các điện thoại di động. Trạng thái hành vi của các lệnh AT thực thi có thể cũng khác so với các định nghĩa chuẩn trớc đó. Nói chung, các modem GSM/GPRS đợc thiết kế dành cho các ứng dụng wireless mà có đợc các hỗ trợ tốt về các lệnh AT hơn là các điện thoại di động thông thừơng khác.
Thêm vào đó, một vài lệnh AT yêu cầu sự hỗ trợ từ các tổng đài của mạng di động. Ví dụ, SMS thông qua GPRS có thể đợc kích hoạt trên các điện thoại di động có sử dụng GPRS và các modem GPRS với lệnh +CGSMS (tên lệnh ở dạng text: Select Service for MO SMS Messages). Nhng nếu tổng đài mạng điện thoại không hỗ trợ quá trình truyền dẫn SMS thông qua GPRS, thì bạn không thể sử dụng chức năng này đợc.
3. Modem GSM và Modem GPRS. 3.1. Modem GSM
Một modem GSM là một modem wireless, nó làm việc cùng với một mạng wireless GSM. Một modem wireless thì cũng hoạt động giống nh một modem quay số. Điểm khác nhau chính ở đây là modem quay số thì truyền và nhận dữ liệu thông qua một đờng dây điện thoại cố định trong khi đó một modem wireless thì gửi và nhận dữ liệu thông qua sóng radio.
Một modem GSM có thể là một thiết bị mở rộng bên ngoài hay một PC Card/PCMCIA Card. Điển hình đó là một modem GSM rời bên ngoài đợc kết nối với một máy tính thông qua một cáp nối tiếp hay một cáp USB. Một modem GSM hợp chuẩn với một PC Card/PCMCIA Card đợc thiết kế cho việc sử dụng với môt máy tính laptop. Nó đợc gắn vào một trong những khe cắm PC Card/PCMCIA Card của một máy tính laptop.
Giống nh một điện thoại di động GSM, một modem GSM yêu cầu 1 thẻ SIM với một sóng nhà cung cấp dịch vụ để hoạt động.
Nh đã đề cập trong mục trớc đó về hớng dẫn về SMS, các máy tính sử dụng lệnh AT để điều khiển modem. Cả hai modem GSM và modem quay số đều có hỗ trợ một bộ các lệnh AT chuẩn chung. Vì thế bạn có thể sử dụng modem GSM hay modem quay số đều đợc.
Bổ trợ cho các lệnh AT chuẩn, các modem GSM còn hỗ trợ một bộ lệnh AT mở rộng. Những lệnh AT mở rộng này đợc định nghĩa trong các chuẩn của GSM. Với các lệnh AT mở rộng này,bạn có thể làm một số thứ nh sau:
- Đọc, viết, xóa tin nhắn. - Gửi tin nhắn SMS.
- Kiểm tra chiều dài tín hiệu.
- Kiểm tra trạng thái sạc pin và mức sạc của pin. - Đọc, viết và tìm kiếm về các mục danh bạ.
Số tin nhắn SMS có thể đợc thực thi bởi một modem SMS trên một phút là rất thấp, nó chỉ khoảng từ 6 đến 10 tin nhắn SMS trong 1 phút.
3.2. Modem GPRS :
Một modem GPRS là một modem GSM mà có hỗ trợ thêm cộng nghệ GPRS cho việc truyền dữ liệu. GPRS hỗ trợ cho Dịch Vụ Radio Gói Đầy Đủ
(General Packet Radio Service). Nó là một công nghệ truyền gói tin và là một mở rộng của GSM (GSM là một công nghệ chuyển mạch). Một u điểm đáng kể của GPRS trên nền GSM đó là GPRS có tốc độ truyền dữ liệu cao hơn.
GPRS có thể đợc sử dụng giống nh một bộ truyền tin của SMS. Nếu nh SMS trên nền GPRS đợc sử dụng thì nó có thể đạt tới tốc độ truyền là 30 tin nhắn SMS trong một phút. Điều này cho thấy nó thực thi nhanh hơn nhiều so với sử dụng SMS trên nền GSM (với GSM thì tốc độ truyền chỉ khoảng 6 tới 10 tin nhắn SMS trong một phút). Cần phải có modem GPRS để truyền và nhận tin nhắn SMS trền nền GPRS. Và cần chú ý là một vài sóng mang wireless không hỗ trợ việc gửi và nhận tín nhắn SMS trên nền GPRS.
Nếu nh chúng ta cần gửi hay nhận các tin nhắn SMS thì cần phải có một modem GPRS chuẩn.
3.3. Sự chọn lựa giữa: Mobile Phone và Modem GPRS
Nói chung, một modem GSM/GPRS thờng đợc khuyên dùng hơn dành cho máy tính cho việc gửi và nhận tin nhắn. Đó là bởi vì các điện thoại di động thờng có những giới hạn nhất định nào đó của nó so với các modem GSM/GPRS. Say đây là một vài miêu tả giới hạn của nó.
Một vài model điện thoại di động (chẳng hạn nh Ericsson R380) không thể sử dụng với máy tính trong việc nhận các tin nhắn SMS ở dạng chuỗi nối tiếp nhau.
Khi một thiết bị điện thoại di động nhận các tin nhắn SMS , tin nhắn này bao gồm tất cả các phần của một tin nhắn SMS nối chuỗi với nhau, nó kết hợp chúng lại với nhau thành một tin nhắn một cách tự động. Cách xử lí hợp lí nên là: khi thiết bị di động nhận các tin nhắn SMS mà các phần của tin nhắn này đợc kết nối móc chuỗi với nhau, nó đẩy chúng tới máy tính mà không kết hợp chúng lại.
Nhiều model điện thoại di động không thể sử dụng đợc với máy tính để nhận các tin nhắn MMS. Bởi vì khi chúng nhận một thông báo MMS, chúng sẽ xử lí nó một cách tự động thay vì đa nó tới máy tính.
Một điện thoại di động không hỗ trợ các lệnh AT, các tham số lệnh và các giá trị của tham số. Ví dụ, các thiết bị di động không hỗ trợ việc gửi và nhận các tin nhắn SMS ở chế độ text. Cho nên lệnh AT "AT+CMGF=1" (nó chỉ dẫn cho điện thoại di động sử dụng chế độ text) sẽ gây ra một thông báo lỗi phản hồi lại.
Thờng thì các modem GSM/GPRS hỗ trợ cho một bộ lệnh AT hoàn chỉnh nhiều hơn so với các thiết bị điện thoại di động.
Hầu hết các ứng dụng tin nhắn SMS phải ở chế độ sẵn sàng suốt 24 giờ trong một ngày (ví dụ nh, ứng dụng tin nhắn SMS mà cung cấp dịch vu download nhạc chuông nên đợc chạy tại tất cả các thời gian trong ngày nh thế ngời dùng mới có thể doanload nhạc chuông tại bất kỳ thời điểm nào mà họ muốn). Nếu nh các ứng dụng sử dụng điện thoại di động để gửi và nhận các tin nhắn SMS thì chiếc điện thoại di dộng này phải đợc mở suốt cả ngày. Tuy nhiên một số model điện thoại di động không thể hoạt động khi tháo bin ra khỏi, thậm chí khi một adaptor AC đợc kết nối, điều đó có nghĩa là bin sẽ đợc nạp điện 24 tiếng trong một ngày.
Bên cạnh các vấn đề trên, các điện thoại di động và các modem GSM/GPRS ít hay nhiều cũng giống nhau trong việc gửi và nhận các tin nhắn từ máy tính. Thực ra thì bạn có thể coi một lệnh AT đợc dùng để kích hoạt các thiết bị di động nh "GSM/GPRS modem + keypad + display + ...".
Có nhiều sự khác nhau giữa các điện thoại di động và các modem GSM/GPRS ở trong các giới hạn về tốc độ truyền tin SMS, vì thế yếu tố xác định cho tốc độ truyền tin nhắn SMS là mạng wireless.
4 Các thủ tục cần có cho việc gửi các lệnh AT tới một điện thoại di động hay một modem GSM/GPRS bằng cách sử dụng MS HyperTerminal. hay một modem GSM/GPRS bằng cách sử dụng MS HyperTerminal.
Để sử dụng MS HyperTerminal cho việc gửi các lệnh AT đến điện thoại di