Ngôn ngữ lập trình ASP.NET

Một phần của tài liệu Thiết kế hệ thống điều khiển phân tán đèn giao thông trong phạm vi đô thị (Trang 26)

Từ khoảng cuối thập niên 90, ASP (Active Server Pages) đã được nhiều lập trình viên lựa chọn để xây dựng và phát triển ứng dụng web động (dynamic web) trên máy chủ sử dụng hệ điều hành Windows. ASP đã thể hiện được những ưu điểm của mình với mô hình lập trình thủ tục đơn giản, sử dụng hiệu quả các đối tượng COM: ADO (ActiveX Data Object) - xử lý dữ liệu, FSO (File System Object) - làm việc với hệ thống tập tin…, đồng thời, ASP cũng hỗ trợ nhiều ngôn ngữ: VBScript, JavaScript. Chính những ưu điểm đó, ASP đã được yêu thích trong một thời gian dài.

Tuy nhiên, ASP vẫn còn tồn đọng một số khó khăn như Code ASP và HTML lẫn lộn, điều này làm cho quá trình viết code khó khăn, thể hiện và trình bày code không trong sáng, hạn chế khả năng sử dụng lại code. Bên cạnh đó, khi triển khai cài đặt, do không được biên dịch trước nên dễ bị mất source code. Thêm vào đó, ASP không có hỗ trợ cache, không được biên dịch trước nên phần nào hạn chế về mặt tốc độ thực hiện. Quá trình xử lý Postback khó khăn, …

Đầu năm 2002, Microsoft giới thiệu một kỹ thuật lập trình Web khá mới mẻ với tên gọi ban đầu là ASP+, tên chính thức sau này là ASP.Net. Với ASP.Net, không những không cần đòi hỏi ta phải biết các tag HTML, thiết kế web, mà nó còn hỗ trợ mạnh lập trình hướng đối tượng trong quá trình xây dựng và phát triển ứng dụng Web. ASP.Net là kỹ thuật lập trình và phát triển ứng dụng web ở phía Server (Server-side) dựa trên nền tảng của Microsoft .Net Framework.

Hầu hết, những người mới đến với lập trình web đều bắt đầu tìm hiểu những kỹ thuật ở phía Client (Client-side) như: HTML, Java Script, CSS (Cascading Style Sheets). Khi Web browser yêu cầu một trang web (trang web sử dụng kỹ thuật client- side), Web server tìm trang web mà Client yêu cầu, sau đó gởi về cho Client. Client nhận kết quả trả về từ Server và hiển thị lên màn hình.

ASP.Net sử dụng kỹ thuật lập trình ở phía server thì hoàn toàn khác, mã lệnh ở phía server (ví dụ: mã lệnh trong trang ASP) sẽ được biên dịch và thi hành tại Web Server. Sau khi được Server đọc, biên dịch và thi hành, kết quả tự động được chuyển sang HTML/JavaScript/CSS và trả về cho Client. Tất cả các xử lý lệnh ASP.Net đều được thực hiện tại Server và do đó, gọi là kỹ thuật lập trình ở phía server.

Những ưu điểm của ASP.NET :

ASP.Net cho phép ta lựa chọn một trong các ngôn ngữ lập trình mà ta yêu thích: Visual Basic.Net, J#, C#,…

Trang ASP.Net được biên dịch trước. Thay vì phải đọc và thông dịch mỗi khi trang web được yêu cầu, ASP.Net biên dịch những trang web động thành những tập tin DLL mà Server có thể thi hành nhanh chóng và hiệu quả. Yếu tố này là một bước nhảy vọt đáng kể so với kỹ thuật thông dịch của ASP.

ASP.Net hỗ trợ mạnh mẽ bộ thư viện phong phú và đa dạng của .Net framework, làm việc với XML, Web Service, truy cập cơ sở dữ liệu qua ADO.Net, … ASPX và ASP có thể cùng hoạt động trong 1 ứng dụng.

ASP.Net sử dụng phong cách lập trình mới: Code behide. Tách code riêng, giao diện riêng -> Dễ đọc, dễ quản lý và bảo trì.

Kiến trúc lập trình giống ứng dụng trên Windows. Hỗ trợ quản lý trạng thái của các control

Tự động phát sinh mã HTML cho các Server control tương ứng với từng loại Browser Hỗ trợ nhiều cơ chế cache.

Triển khai cài đặt

Không cần lock, không cần đăng ký DLL Cho phép nhiều hình thức cấu hình ứng dụng Hỗ trợ quản lý ứng dụng ở mức toàn cục

Global.aspx có nhiều sự kiện hơn

Quá trình xử lý file ASPX:

Khi Web server nhận được yêu cầu từ phía client, nó sẽ tìm kiếm tập tin được yêu cầu thông qua chuỗi URL được gởi về, sau đó, tiến hành xử lý theo sơ đồ trong hình 2.1:

Hình 2.1 – Mô tả quá trình xử lý file ASP.NET 2.2 Tổng quan Kit Friendly ARM Mini 2440

2.2.1 Giới thiệu

Kit Mini 2440 là một board máy tính độc lập dựa trên vi xử lý Samsung S3C2440 ARM9. Board có kích thước 10cmx10cm, đây là board lý tưởng cho việc nghiên cứu về hệ thống ARM hoặc tích hợp [9].

Hình 2.1 : Kit Friendly ARM Mini 2440 2.2.2 Đặc trưng của Mini 2440

Bảng 2.1 – Đặc tính của Mini 2440

CPU Samsung S3C2440A (ARM920T), 400MHz, max. 533Mhz

RAM 64MByte SDRAM

32bit Bus 100MHz Clock

Flash 64MByte or 128MByte Nand Flash

2MByte Nor Flash with Bios System Clock 12Mhz Crystal

LCD • 4 wire resistive touch screen interface • STN-Displays

type

• monochrome, 4 gray levels, 16 gray levels, 256 colors or 4096 colors

• Max: 1024x768 • TFT-Display

• 1, 2, 4 or 8 bpp palletized color displays

• 16 or 24 bpp non-palletized true-color displays • Max: 1024x768, 64k colors

Interface and Resource • 1 10/100M Ethernet RJ-45 (DM9000) • 3 Serial Ports (1 RS232) • 1 USB Host • 1 USB Device • 1 SD-Card Interface • 1 Audio Output • 1 Audio Input • 1 Microphone • 4 User LEDs • 6 User Buttons • 1 PWM Buzzer

• 1 Adjustable Resistance (for ADC testing) • 1 I2C EEPROM

• 1 Real Time Clock with Battery (RTC) • 1 20pin Camera Interface (2.0mm) • 1 34pin GPIO (2.0mm)

• 1 40poin System Bus (2.0mm) • 1 10pin JTAG (2.0mm)

Power Supply • 5V Connector Dimension • 10 x 10 c OS Support • Linux 2.6 • Android • Windows CE 5 and 6 2.2.3 Các giao diện của Mini 2440

Hình 2-2 là giao diện của mini2440 [10]: - Switch (S1): Bật/tắt nguồn

- Switch (RST): Reset

Hình 2.2 : Giao diện của Mini 2440

- Mini2440 sử dụng nguồn 5V bên ngoài. - SDRAM :

o Có 2 chip 32Mbytes trên Boad (HY57V561620, 4Banks x 4MBit x 16bit). Có hai chip 16bits và 32bits cho Bus dữ liệu trên Board.

o Địa chỉ vật lý bắt đầu từ 0x30000000 - Flash :

o Có hai loại bộ nhớ flash trên Board : 2M Nor Flash (SST39VF1601) và 64M Nand Flash (K9F1208).

ƒ Nor Flash: 16bit Data + 20bit Address Bus ƒ Nand Flash: 8bit Data / Address Bus

- EEPROM

o EEPROM 24C08(1Mbyte) được nối với I2C bus : I2CSCL và I2CSDA

Hình 2.3 : EEPROM trên Mini 2440

- Ethernet

o Giao diện của Ethernet trên Mini2440 sử dụng chip Davicom DM9000. Địa chỉ Mac cần được cấu hình lại trên Linux hoặc WinCE (Tùy thuộc vào hệ điều hành được cài trên Kit)

- UART

o Có 3 cổng Serial trên Board là CON1(UART0), CON2(UART1) và CON3(UART2). UART được nối vào một bộ chuyển đổi RS232.

Chương 3 : Trin khai xây dng h thng điu khin phân tán đèn giao thông qua Ethernet

Hệ thống điều khiển đèn giao thông như hình 3-1 bao gồm : - Web Server

- Module Camera và giao tiếp - Module Chốt đèn giao thông

Các chốt sẽ giao tiếp với Server bằng Ethernet hoặc Wifi để truyền tín hiệu cho nhau.

Trong hình 3-1, Web Server nằm tại trung tâm, sẽ quản lý toàn bộ thông tin các chốt đèn giao thông như : Tên đường, các trạng thái đèn, và hình ảnh camera tại chốt đó.

Các chốt đèn giao thông bao gồm :

- Module chốt điều khiển đèn giao thông là một Board sử dụng chip PSoC điều khiển LED ( xanh, đỏ), điều khiển thời gian đếm ngược.

- Module chốt đèn giao thông được nối với Kit Mini 2440 sử dụng chip ARM9 để truyền các trạng thái hiện có về Server qua Ethernet. Kit Mini2440 có nhiệm vụ nén hình ảnh từ camera và truyền về Server qua Ethernet.

3.1 Module chốt đèn giao thông

Module này sẽ mô phỏng phỏng một chốt đèn giao thông, hiển thị thông tin đếm ngược thời gian đèn xanh, đèn đỏ. PSoC được sử dụng đóng vai trò là CPU, xử lý các tác vụ, điều khiển các tín hiệu. LED 7 thanh được sử dụng để hiển thị thời gian, sử dụng LED màu đỏ và xanh để hiển thị tín hiệu, ngoài ra module này sử dụng giao tiếp I2C với Kit Mini 2440.

Module gồm các khối sau:

a. Khối hiển thị

Hình 3.2 : Khối hiển thị

b. Khối giao tiếp

- Khối giao tiếp dùng để kết nối giữa Module điều khiển đèn và Kit Mini 2440 - Sử dụng chuẩn giao tiếp RS 485.

Hình 3.3 : Khối giao tiếp c. Khối Vi điều khiển

Hình 3-4 là sơ đồ nguyên lý của khối Vi điều khiển

- Sử dụng chip vi điều khiển PSoC để điều khiển LED 7 thanh, nhận tín hiệu từ RS485:

o Port 0 dùng để đẩy dữ liệu ra LED 7 thanh

o Port 2 dùng để quét LED

o Port 1 dùng để nhận tín hiệu đầu vào (gồm dữ liệu RS485 và chọn các chế độ hiển thị)

d. Sơđồ mạch nguyên lý Module chốt đèn giao thông

Sơ đồ mạch nguyên lý được lắp ghép từ các khối trên, hình 3-5.

e. Thuật toán xử lý trên PSoC

Thuật toán trên PSoC - Hình 3.6 :

PSoC có nhiệm vụ điều khiển tín hiệu trên LED, nhận tín hiệu điều khiển từ Trung Tâm được truyền qua Kit Mini2440.

Hình 3.6 : Thuật toán trên PSoC

Module chốt đèn giao thông chỉ là mạch mô phỏng một chốt giao thông thực tế trên các ngã tư, nếu muốn sử dụng thực tế thì cần phải thiết kế lại các khối nguồn, còn chức năng thì không thay đổi nhiều. Vì vậy nếu hệ thông mô phỏng hoạt động tốt thì khi đưa vào thực tế thì cũng sẽ hoạt động được.

3.2 Module camera & Ethernet - Kit Mini 2440

Module này sử dụng Kit Mini 2440 của Samsung – Hình 3.7 - để thực hiện nén ảnh JPEG từ camera, và giao tiếp Ethernet. KIT MINI2440 sử dụng chip ARM9-based S3C2440 của samsung, xung nhịp có thể lên đến 533MHz. Kit Mini 2440 rất mạnh

trong các ứng dụng nhúng như điều khiển thiết bị, các thiết bị cầm tay, và định vị GPS. KIT MINI2440 có 64MB SDRAM, 2MB NOR flash và có cổng xSD để mở rộng.

Hình 3.7 : Kit MINI 2440

KIT MINI2440 sử dụng hệ điều hành Linux, là một hệ điều hành nguồn mở, các giao tiếp với thiết bị bên ngoài cần phải cài driver trên hệ điều hành Linux. Đối với camera cần phải thực hiện việc nén ảnh JPEG để truyền đi.

3.2.1 Ứng dụng giao tiếp Camera

Phần cứng : Kit Mini 2440 và USB Webcam.

Thực hiện cài đặt Driver cho webcam trên KIT MINI2440 và sau đó cài đặt gói mjpg streamer. Mjpg streamer là một ứng dụng trên hệ điều hành nhúng Linux, thực hiện lấy hình ảnh từ webcam và sau đó stream qua giao thức HTTP qua Port 8080 (Port có thể thay đổi được) [12], hình ảnh được có thể xem qua các trình duyệt như Firefox, Internet Explorer,... Hình 3.8 mô tả hoạt động của mjpg streamer, hình 3.9 là thực tế sau khi cài đặt mjpeg streamer và chạy chương trình.

Hình 3.8 : Mô tả hoạt động của mjpeg streamer

Cài đặt mjpeg streamer :

Tại các chốt mạng đều có một địa chỉ IP tĩnh cụ thể, để xem được chúng ta chỉ cần nhập địa chỉ IP đó trên trình duyệt.

Xây dựng Website truyền dữ liệu qua I2C

Hệ điều hành Linux được sử dụng làm hệ điều hành nhúng trên Mini2440, do vậy xây dựng website để thuận tiện cho việc điều khiển, truyền dữ liệu qua I2C. Thực tế, website trên mini2440 là trang web tĩnh có nhúng CGI script. CGI script có nhiệm vụ truyền thông tin qua I2C – Hình 3.10.

Hình 3.10: Giao diện website trên Mini 2440

Để tạo CGI Script, chương trình phải được biên dịch từ ngôn ngữ C hoặc Perl, sau đó nhúng vào thẻ <form/> của trang web.

Đoạn code sau mô tả việc truyền dữ liệu qua I2C :

Biên dịch và chạy ứng dụng:

Giải nén :

# tar xzvf mjpg-streamer.tgz # cd mjpg-streamer

# make clean all

Cài biến môi trường

# export LD_LIBRARY_PATH=.

3.3 Xây dựng Web Server 3.3.1 Chức năng của Website 3.3.1 Chức năng của Website

Yêu cầu đặt ra là Website phải chức năng đăng nhập cho người quản trị (Administrator), chức năng điều khiển các chốt đèn giao thông, ngoài ra còn có khả

void i2c_write(int addr, const unsigned char *buf, int count) {

if (count <= 0) return; mutex_lock(&i2c_mtx); /* Turn on I2C clock */

s3c_regset32(&CLKCON, 1 << 16);

/* Set mode to master transmitter and enable lines */ IICSTAT = I2C_MODE_MASTER | I2C_MODE_TX | I2C_RXTX_ENB; /* Set buffer start and count */

buf_ptr = (unsigned char *)buf; buf_count = count;

/* Send slave address and then data */ SRCPND = IIC_MASK;

INTPND = IIC_MASK;

IICCON |= I2C_TXRX_INTENB;

/* Load slave address into shift register */ IICDS = addr & 0xfe;

/* Generate START */

IICSTAT = I2C_MODE_MASTER | I2C_MODE_TX | I2C_START | I2C_RXTX_ENB; if (wakeup_wait(&i2c_wake, HZ) != OBJ_WAIT_SUCCEEDED)

{

/* Something went wrong - stop transmission */ int oldlevel = disable_irq_save();

i2c_stop();

restore_irq(oldlevel); }

/* Go back to slave receive mode and disable lines */ IICSTAT = 0;

/* Turn off I2C clock */

s3c_regclr32(&CLKCON, 1 << 16); mutex_unlock(&i2c_mtx); }

năng hiển thị tin tức, xem thông tin tắc đường,… Hình 3.11 là sơ đồ về các chức năng của website.

H  th ng đi u khi n  đèn giao thông

Tin t c

Thông tin giao thông

Tin t c

Tin t c

Thông tin giao thông

B n đ Qu n tr /  Administrator Qu n tr tin t c Qu n tr ch t giao  thông Hình 3.11 : Sơđồ chức năng của Website 3.3.2 Thiết kế Cơ sở dữ liệu

Để điều khiển các chốt đèn giao thông, vậy hệ thống phải quản lý các ngã tư giao thông trên một địa bàn tại khu vực (Ở đây là khu vực thành phố Hà Nội), chính vì vậy phải yêu cầu thiết CSDL để lưu trữ thông tin về các chốt ngã tư, trạng thái, hay các thông số cần thiết khác.

Ở đây, MS SQL Server 2008 được dùng để thiết kế CSDL, vì .NET Framework hỗ trợ rất tốt cho MS SQL Server, các thư viện thao tác với CSDL đã sẵn có, thêm nữa SQL Server 2008 có tính bảo mật rất tốt và dễ sử dụng.

a. Mô tả các bảng trong CSDL

Từ yêu cầu trên, sau đây là các bảng được thiết kế:

Đèn giao thông

Để lưu giữ thông tin các nút đèn giao thông

Bảng 3.1 – TrafficLight Table TrafficLight

Ký hiệu Kiểu Mô tả Khóa

Traff_ID Int Mã đèn giao thông Khóa chính

Traff_Name nvarchar(100) Tên chốt đèn giao thông Traff_Second_Green Int Thời gian đèn xanh

Traff_Second_Red Int Thời gian đèn đỏ

Traff_Status bit Trạng thái

Traff_X Float Vị trí X trong bản đồ số

Traff_Y Float Vị trí Y trong bản đồ số

District_ID Int Mã quận,huyện Khóa ngoại

Tham chiếu đến bảng District

Tên quận huyện

Bảng 3.2 – District Table District

Ký hiệu Kiểu Mô tả Khóa

District_ID Int Mã quận Khóa chính

District_Name Nvarchar(50) Tên

Description Nvarchar(100) Miêu tả

Quyền - Role

Lưu giữ thông tin về quyền hạn cho phép phân quyền người dùng

Bảng 3.3 –Role Table Role

Ký hiệu Kiểu Mô tả Khóa

RoleID Int Mã quyền Khó chính

RoleName Nvarchar(50) Tên quyền

Người dùng - User

Lưu giữ thông tin người dùng.

Bảng 3.4 – User Table User

Ký hiệu Kiểu Mô tả Khóa

UserID Int Mã quận Khóa chính

Username Nvarchar(30) Tên đăng nhập

Password Nvarchar(30) Mật khẩu

RoleID Int Mã quyền Khóa ngoại

Tin tức - News

Lưu giữ thông tin tin tức

Bảng 3.5 – News Table News

Ký hiệu Kiểu Mô tả Khóa

IDNews Int Mã tin tức Khóa chính

IDGroupNews Int Mã nhóm tin Khóa phụ

IDUser Int Mã người dùng Khóa phụ

Title Nvarchar(200) Tiêu đề tin

Shortcut Nvarchar(100) Tóm tắt

Body Nvarchar(Max) Nội dung

CreateDate Datetime Ngày đưa tin

Picture Nvarchar(200) Đường dẫn ảnh

Nhóm tin - GroupNews

Lưu giữ thông tin người dùng.

Bảng 3.6 – GroupNews Table GroupNews

Ký hiệu Kiểu Mô tả Khóa

IDGroupNews Int Mã nhóm tin Khóa chính

Title Nvarchar(200) Tiêu đề

Description Nvarchar(200) Mô tả

Hình 3.12 : Sơđồ quan hệ trong CSDL

Từ hình ta thấy quan hệ giữa các bảng với nhau, IDDistric thuộc bảng TrafficLight

Một phần của tài liệu Thiết kế hệ thống điều khiển phân tán đèn giao thông trong phạm vi đô thị (Trang 26)

Tải bản đầy đủ (PDF)

(62 trang)