Khai báo biến trong

Một phần của tài liệu Nghiên cứu truyền tin bằng giao thức RTP và ứng dụng thực tiễn (Trang 28)

2. Ngôn ngữ

2.3.2.Khai báo biến trong

Trong VBScript dùng từ khóa Dim để khai báo biến:

<% Dim ten_bien %>

Trong JScript khai báo biến bằng từ khóa var như sau:

<% var ten_bien %>

Ví dụ:

<html>

<%

Dim ten_bien

%>

<% = "Day la" & ten_bien %>

</html>

2.3.3. Biến phiên và biến ứng dụng

Biến phiên (Session) là biến lưu thông tin một người sử dụng, có giá trị trong tất cả các trang Web trong suốt phiên của người sử dụng và được tính từ lúc người sử dụng bật trình duyệt đến khi tắt trình duyệt.

Biến ứng dụng (Application) lưu trữ thông tin của tất cả các người sử dụng trong một ứng dụng và chỉ bị xóa khi tắt ứng dụng.

Biến phiên và biến ứng dụng được tạo bằng các đối tượng Session và Application, cú pháp tạo biến như sau:

<% Session(ten_bien) = Gia tri khoi tao %>

<% Application(ten_bien) = Gia tri khoi tao %>

2.3.4. Khai báo thủ tục, hàm và cách gọi 2.3.4.1. Đối với VBScript:

- Khai báo

<Script Language = VBScript Runat = Server> Sub Ten_thu_tuc(doi_so) Noi_dung_thu_tuc End Sub Funtion ten_ham(doi_so) Noi_dung_ham ten_ham = gia_tri_tra_ve End Funtion </Script> - Cách gọi Call Ten_thu_tuc(gia_tri_truyen_cho_thu_tuc)

ten_bien = ten_ham(gia_tri_truyen_cho_ham)

2.3.4.2. Đối với JScript:

- Khai báo

<Script Language = VBScript Runat = Server> Funtion ten_thu_tuc(doi_so) { Noi_dung_thu_tuc } Funtion ten_ham(doi_so) { Noi_dung_ham return gia_tri_tra_ve } </Script> - Cách gọi ten_thu_tuc(gia_tri_truyen_cho_thu_tuc) ten_bien = ten_ham(gia_tri_truyen_cho_ham)

2.3.5. Tạo liên kết giữa các file

Ta có thể tạo liên kết giữa các file dùng chung hoặc tránh trường hợp nội dung của một file quá dài bằng cách chia nhỏ các file và liên kết chúng lại với nhau trong file chính bằng chỉ dẫn #include, cú pháp liên kết như sau:

<!--#include file = “ten_file_lien_ket”-->

2.3.6. Các đối tượng Component 2.3.6.1. Khái niệm về Component 2.3.6.1. Khái niệm về Component

ActiveX Component là một file chứa những đoạn Code để thực hiện một công việc hay một số công việc hoàn chỉnh nào đó giúp cho người lập trình không phải viết lại nữa, nó là chìa khóa để xây dựng nên các ứng dụng Web mạnh, thường được lưu trữ dưới dạng file .dll hoặc .exe

2.3.6.2. Sử dụng các Component

Mỗi một Component có thể chứa một hoặc nhiều đối tượng trong nó, mỗi đối tượng đó lại có các phương thức và thuộc tính riêng. Để sử dụng được các đối tượng này thì ta phải gắn nó với một biến nào đó bằng phương thức: (adsbygoogle = window.adsbygoogle || []).push({});

Server.CreateObject Cú pháp như sau:

<% Set ten_bien = Server.CreateObject(“ten_Object”) %> <% var ten_bien = Server.CreateObject(“ten_Object”) %>

2.3.6.3. Phương thức và thuộc tính của đối tượng

Đối tượng bao gồm thuộc tính và phương thức, trong đó thuộc tính là những biến để lưu trạng thái, còn phương thức là hàm để thực hiện các công việc liên quan đến đối tượng. Trong ASP có chứa sẵn một số đối tượng giúp cho người lập trình thực hiện một số chức năng nào đó, nên ta có thể sử dụng mà không cần khai báo, cú pháp sử dụng để gọi phương thức và đặt giá trị cho thuộc tính là:

Doi_tuong.phuong_thuc [tham_so_truyen] Doi_tuong.ten_thuoc_tinh = gia_tri

Ví dụ về sử dụng phương thức Write của đối tượng Response viết dòng chữ được truyền như một tham số:

<% Response.Write “Chao moi nguoi” %>

2.3.6.4. Giải phóng đối tượng

Khi không sử dụng đến đối tượng nữa, ta có thể giải phóng đối tượng để nó không chiếm tài nguyên của hệ thống, sử dụng câu lệnh:

Set Ten_doi_tuong = Nothing

Trong ASP chủ yếu có các đối tượng như sau:

- Application: cung cấp các phương thức và thuộc tính để chia sẻ thông tin giữa các User trong cùng một ứng dụng, tạo và hủy các đối tượng và biến có phạm vi hoạt động ở mức ứng dụng.

- Request: lấy các thông tin Client chuyển đến WebServer thông qua HTTP. Thông thường HTTP Request bao gồm các tham số được truyền từ một Form trong HTML theo phương thức Post

hoặc Get

- Response: điều khiển việc gửi thông tin tới User

- Server: truy nhập tới các phương thức và thuộc tính trên Server - Session: lưu trữ tất cả các thông tin cho một phiên làm việc của

Chương 3: ĐIỀU KHIỂN CỔNG LPT

1. Giới thiệu:

Cổng LPT của máy tính (hay còn gọi là PC Parallel Port) là một đầu cắm cái gồm 25 chân (25 pin female – DB25) [21]. Cấu tạo của nó như sau:

Hình 1: Cấu tạo cổng LPT

2. Điều khiển cổng LPT

Như trên hình vẽ ta thấy từ chân 2 đến chân 9 của cổng LPT là 8 bit dữ liệu đầu ra (tương ứng từ D0 đến D7). Các chân đầu ra này có dạng TTL, nghĩa là trạng thái dữ liệu ở các mức 0 hoặc 1. Để điều khiển được các thiết bị qua cổng này, ta phải tạo được các mức điện áp ra tương ứng tại các chân mà ở đó có thiết bị cần điều khiển.

Như vậy ta cần phải đưa được các mức điện áp tại đầu ra dữ liệu theo ý muốn. Với hệ điều hành Windows 2k/XP nguyên bản, ta không thể truy xuất trực tiếp phần cứng qua các hàm in/out port được, nghĩa là không thể gọi trực tiếp các hàm API để thực hiện lệnh in/out dữ liệu tại cổng LPT được. Chính vì vậy ta phải tạo một thư viện chứa các hàm API mà ở đó ta có thể gọi chúng để thực hiện các lệnh in/out port theo yêu cầu. Để thực hiện được việc này ta lưu file inpout32.dll của thư viện truy cập LPT trên Win2k/XP vào thư mục hệ thống của Windows theo đường dẫn: C:\Windows\system32

Công việc tiếp theo là tạo một COM để truy xuất phần cứng. Công nghệ lập trình tạo COM tương đối phức tạp, để đơn giản hóa, ta có thể hiểu COM là một đối tượng mà người lập trình tạo ra nhằm mục đích thực hiện một công việc gì đó. Việc sử dụng COM đơn giản chỉ là cung cấp các tham số, gọi hàm và nhận kết quả. Trong lập trình ASP thì việc sử dụng COM được thực hiện bởi lệnh như sau:

Khai báo COM: Dim obj[tên_COM] Ví dụ: Dim objLPT

Tham chiếu đến COM: Set obj = CreateObject(“tên _COM_đăng_ký”)

Ví dụ: Set

objLPT=Server.CreateObject("LPTControlCOM")

Gọi một hàm của COM: obj[tên_COM].tên_hàm(tham_số…) Ví dụ: objLPT.InPort(STATUS)

Sau đây là ví dụ về việc tạo một COM để truy xuất cổng LPT bằng Visual Basic 6.0 trong bộ Visual Studio 6.0 của Microsoft: (adsbygoogle = window.adsbygoogle || []).push({});

Project mới được mở ra có dạng như sau:

Ta có thể đặt tên cho COM này bằng bất kỳ tên nào tùy ý, ví dụ ta đặt tên cho COM là LPTControlCOM trong cửa sổ Name Properties

và viết Code cho nó như sau:

Private Declare Function Inp Lib "inpout32.dll" _

Alias "Inp32" (ByVal PortAddress As Integer) As Integer Private Declare Sub Out Lib "inpout32.dll" _

Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)

Function InPort(PortAddress) InPort = Inp(PortAddress) End Function

Sub OutPort(PortAddress, Value) Out PortAddress, Value

Lưu Project vào thư mục C:\Minh\

với tên Class là C:\Minh\LPTControl.cls

và tên Project là C:\Minh\LPTControlCOM.vbp

Tiếp theo ta sẽ cho Visual Basic biên dịch Project

Cách biên dịch như sau:

Vào Menu File và chọn Make LPTControlCOM.dll

Lưu vào thư mục C:\Windows\system32

Sở dĩ ta lưu vào thư mục này vì LPTControlCOM.dll được coi như là một file hệ thống của Windows

Bước tiếp theo ta sẽ đăng ký LPTControl.dll với Windows, ta sẽ mở cửa sổ lệnh (Command Windows) và gõ lệnh:

C:\>regsvr32 :\windows\system32\LPTControl.dll

Khi đó Windows sẽ có thông báo:

Nghĩa là ta đã đăng ký thành công một COM với Windows.

Với lập trình trên Internet bằng ngôn ngữ ASP có sử dụng các script (Java script hoặc VB script) thì ta có thể gọi COM này để truy xuất đọc và ghi (read/write) các thanh ghi trạng thái của LPT bằng những câu lệnh đơn giản.

Ví dụ ta dùng ngôn ngữ kịch bản VB script thì các câu lệnh sẽ như sau:

Khởi tạo COM như sau: Set

Với địa chỉ các thanh ghi trạng thái của LPT (hệ Hexa) DATA = 378

STATUS = 379 CONTROL = 37a

thì ta có thể đọc thanh ghi trạng thái STATUS như sau: x= objLPT.InPort(&H379)

hoặc ghi dữ liệu ở các đầu ra bằng lệnh: objLPT.OutPort(&H378,y)

Để kết thúc việc truy xuất LPT, ta dùng câu lệnh như sau: Set objLPT = Nothing

Việc xác định giá trị bit cho các chân của LPT được cung cấp bởi bảng sau [28]:

Chân Bit Giá trị (adsbygoogle = window.adsbygoogle || []).push({});

2 D0 1 3 D1 2 4 D2 4 5 D3 8 6 D4 16 7 D5 32 8 D6 64 9 D7 128

3. Kiểm tra

Để kiểm tra đầu ra TTL của cổng LPT, ta có thể dùng đồng hồ đo (VOM kế) đo điện áp đầu ra của các chân dữ liệu hoặc lắp một mạch điện tử đơn giản để kiểm tra một cách trực quan theo sơ đồ nguyên lý được cung cấp sau đây:

(Các chân từ 18 đến 25 của cổng LPT phải được nối với mass)

Chương 4: Thực nghiệm

ĐIỀU KHIỂN CÁC THIẾT BỊ

CHO NGÔI NHÀ THÔNG MINH CỦA THẾ KỶ XXI

1. Giới thiệu:

Như đã đề cập đến ở phần trước, ta có thể điều khiển cổng LPT của máy tính bằng việc truy xuất phần cứng thông qua COM và lập trình ASP. Điều đó có nghĩa là ta hoàn toàn có thể sử dụng web để điều khiển được mức điện áp ra TTL của các chân Data (D0 đến D7). Từ đó, ta có thể ứng dụng để điều khiển từ xa (thông qua web) một số thiết bị điện trong gia đình hay công sở …, nghĩa là ta có thể nối các thiết bị điện này vào cổng LPT, rồi thông qua web, ta có thể ngồi bất cứ nơi đâu truy cập Internet để điều khiển các thiết bị này qua trang web đã được xác định mà không phải có mặt trực tiếp tại nơi lắp đặt thiết bị.

2. Mô hình § Ì n1 § Ì n2 Qu¹ t B×nhNL TBx Hub/Switch Internet Modem/Router Modem/Router Hub/Switch Server Client

Như mô tả trên mô hình, thì các thiết bị sử dụng điện trong ngôi nhà thông minh của chúng ta được nối trực tiếp với một máy tính đặt tại nhà, mà ta tạm coi đó là một Server. Các thiết bị này có thể là các thiết bị sử dụng điện thông thường như đèn, quạt, hay bình nước nóng hoặc bất cứ thiết bị nào đó mà ta cần để điều khiển tắt hoặc bật từ xa. PC làm Server này sẽ được cài đặt các phần mềm cần thiết, được cấu hình để thực hiện những yêu cầu mà chúng ta đặt ra.

Còn Client là một máy tính PC bình thường ở bất cứ nơi nào, miễn là máy tính đó được nối mạng Internet. Người sử dụng là chúng ta sẽ ngồi trên máy Client ở xa hoặc rất xa máy Server ở nhà có thể bật trình duyệt Web, quan sát ngôi nhà của mình và điều khiển các thiết bị điện nối vào máy Server qua chính Client đó.

3. Giải pháp thực hiện:

Tuy nhiên, khi thực hiện điều đó cũng cũng làm nảy sinh một vấn đề, đó là các thiết bị này luôn đòi hỏi dòng lớn và thường điện áp cung cấp cho nó phải là nguồn xoay chiều 220V. Để giải quyết được vấn đề này thì ta sẽ lắp một mạch ngoài điều khiển gián tiếp các thiết bị, đảm bảo an toàn cho PC mà vẫn cung cấp nguồn cho các thiết bị theo đúng điện áp và đủ dòng điện. Như vậy ta sẽ xây dựng một mạch điện điểu khiển đóng mở các Rơle theo như sơ đồ sau đây và lúc này thì việc cấp nguồn cho các thiết bị sẽ phụ thuộc vào chế độ đóng mở của các Rơle trong mạch

R¬ le

Ch©n d÷ liÖu LPT (Di)

Ch©n Mass LPT (18->25) Nguån cung cÊp

Vcc

Nguồn cung cấp cho mạch là nguồn nuôi từ ngoài PC, dải điện áp có thể từ 5V đến 24 V (phụ thuộc vào loại Rơle mà ta sử dụng). Transistor là loại switching, còn các diode dùng để bảo vệ các cuộn dây của Rơle, Transistor và chính cổng LPT của PC.

Việc xây dựng một mạch điện để điều khiển các thiết bị có thể được đơn giản hóa bằng một IC tích hợp, với thiết kế nhỏ gọn, mức tín hiệu đầu vào TTL phù hợp với đầu ra từ cổng LPT của PC. Có hai loại IC có thể được sử dụng cho mục đích này là ULN2003 hoặc ULN2803, cấu trúc của từng loại như sau:

Như ta thấy trên hình vẽ thì hai loại IC này tương đương nhau, chỉ khác là UNL2003 gồm 16 chân với 7 lối vào, tương ứng với nó là 7 lối ra trong khi ULN2083 có 18 chân với 8 lối vào và cũng tương ứng là 8 lối ra.

Đặc điểm của hai IC này là tích hợp sẵn Diode bảo vệ bên trong, nên ta có thể sử dụng trong mạch mà không cần phải lắp thêm linh kiện gì cho nó, điện áp sử dụng có dải rộng phù hợp để điều khiển các loại Rơle từ 5V đến 24V, lắp mạch đơn giản, hoạt động với độ tin cậy cao.

Hiện nay, trên thị trường Việt Nam thì loại IC ULN2003 phổ biến, mặc dù ngõ vào điều khiển ít hơn so với ULN2803, nhưng do tính thông dụng của nó nên ta sẽ xây dựng mạch điện điều khiển các thiết bị theo IC ULN2003.

Sơ đồ nguyên lý của mạch điện như sau:

4. Các bước tiến hành:

Với sơ đồ nguyên lý được cung cấp như trên, ta sẽ lắp lắp một mạch điện tử để thực hiện mục đích của mình, có thể sử dụng Orcad, Protel, Winboard hay bất cứ chương trình phần mềm nào khác để vẽ mạch in rồi sau đó tiến hành lắp ráp theo đúng sơ đồ trên. Sử dụng IC ULN2003 ta sẽ có 7 đầu vào điều khiển cùng với 7 đầu ra TTL tương ứng, như vậy ta sẽ điều khiển được 7 thiết bị sử dụng điện trong nhà bằng mạch điện vừa chế tạo được.

Sau khi lắp lắp xong mạch điện, như vậy đã đảm bảo rằng ta đã hoàn thành các bước chuẩn bị cho phần cứng. Bước tiếp theo ta sẽ chuẩn bị các phần mềm và thực hiện các thao tác để cho mạch điện có thể hoạt động theo ý muốn của chúng ta.

Cấu hình của phần cứng yêu cầu:

- CPU: tốc độ tương đối để truy cập Internet và xử lý dữ liệu Khuyến nghị: Ram >= 256 MB

Chip Pentium IV >= 1.8GHz - Hệ điều hành: Windows XP (hoặc 2k) (adsbygoogle = window.adsbygoogle || []).push({});

- Kết nối Internet thông qua ADSL, modem ADSL

- Webcam hoặc IP camera (kèm theo Video Capture Card) - Các thiết bị sử dụng điện thông thường trong gia đình.

4.1. Cài đặt IIS

Để có thể sử dụng được ngôn ngữ ASP (Active Server Page) cho lập trình Web thì ta phải cài đặt IIS (Internet Information Service) cho máy tính, bởi vì thông thường các trình duyệt không hiểu được các mã lệnh của ASP. Việc cài đặt IIS sẽ tạo trên các máy đơn một Web Server ảo (hay còn gọi là Web Server địa phương- Localhost) [2], từ đó ta có thể thử nghiệm các trang .asp hoặc có thể tạo một Server để có thể truy cập từ các Client ở xa đến máy tính mà ta sẽ sử dụng làm máy chủ.

Cách cài đặt như sau:

Vào Setting -> Control Panel -> Add or Remove Programs -> Add/Remove Windows Components, màn hình hiện lên như sau:

Chọn Finish, ta đã hoàn thành việc cài đặt IIS cho máy tính, lúc này trên máy tính sẽ xuất hiện thư mục C:\Inetpub, trong thư mục Inetpub

chứa thư mục con wwwroot, tại nơi đây chứa các file mà chúng được coi như trong một server, nhưng là trong server ảo. Ta có thể thử nghiệm hoạt động của IIS bằng cách vào chương trình soạn thảo văn bản

notepad.exe tạo một file hello.asp chứa đoạn code như sau: <%

Response.write “Hello World” %>

Lưu file này trong thư mục C:\Inetpub\wwwroot, sau đó mở trình duyệt Internet (có thể là Internet Explorer, Opera hoặc Mozilla Firefox…), gõ địa chỉ http://localhost/hello.asp, màn hình hiện lên dòng chữ như sau:

Điều đó có nghĩa là IIS của ta đã chạy tốt, tiếp theo ta sẽ lập trình để có thể sử dụng cổng LPT cho điều khiển thiết bị.

4.2. Lập trình điều khiển

Dùng trình soạn thảo Microsoft FrontPage, Microsoft Visual InterDev hoặc Notepad để tạo một đoạn Code như sau:

<%

' Địa chỉ các thanh ghi Const DATA =&H378

Const STATUS =&H379 Const CONTROL =&H37a Dim objLPT Dim pin1 Dim pin2 Dim pin3 Dim pin4 Dim pin5 Dim pin6 Dim pin7 Dim pin8 Dim pin9 Dim pin10 Dim pin11 Dim pin12 Dim pin13 Dim pin14 Dim pin15 Dim pin16 Dim pin17 Dim reg Set objLPT=Server.CreateObject("MyLPTCOM.LPTAccess") ' Write to LPT If Request("Submit")<>"" Then pin2=IIf(Request("pin2")="1",1,0) pin3=IIf(Request("pin3")="1",2,0) pin4=IIf(Request("pin4")="1",4,0) pin5=IIf(Request("pin5")="1",8,0) pin6=IIf(Request("pin6")="1",16,0) pin7=IIf(Request("pin7")="1",32,0) pin8=IIf(Request("pin8")="1",64,0) pin9=IIf(Request("pin9")="1",128,0)

reg=pin2 Or pin3 Or pin4 Or pin5 Or pin6 Or pin7

Một phần của tài liệu Nghiên cứu truyền tin bằng giao thức RTP và ứng dụng thực tiễn (Trang 28)