Việc truyền thông nối tiếp trên Windows được thực hiện thông qua một
ActiveX có sẵn là Microsoft Comm Control. ActiveX này dược lưutrữ trongtập
tin MSComm32.ocx. Quá trình này có hai khả năng thực hiện điều khiển trao đổi thông tin:
Điều khiển sự kiện : Truyền thông điều khiển sự kiện là phương pháp tốt nhất
trong quá trìnhđiều khiển việc trao đổi thông tin. Quá trìnhđiều khiển thực hiện
thông qua sự kiện OnComm.
Hỏi vòng : Quá trình điều khiển bằng phương pháp hỏi vòng thực hiện thông
qua kiểm tra các giá trị của thuộc tính CommEvent sau một chu kỳ nào đó để xác định xem có sự kiện nào xảy ra hay không. Thông thường phương pháp này sử dụng cho các chương trình nhỏ.
ActiveX MsComm có các thuộc tính cơ bản mô tả như sau:
Thuộc tính Mô tả
CommPort Số thứ tự cổng truyền thông
Input Nhận ký tự từ bộ đệm
Output Xuất ký tự ra cổng nối tiếp
PortOpen Mở / đóng cổng
* Lý do sử dụng ngôn ngữ lập trình Delphi
Delphi là môi trường xây dựng ứng dụng tức thời (Rapid Application Development – RAD) bao gồm các công cụ phát triển hệ thống và cơ sở dữ liệu
dành cho hệ điều hành Microsoft Windows và có cả phiên bản dành cho hệ điều
hành Linux. Delphi kết hợp sự tiện dụng của môi trường phát triển trực quan
(visual), tốc độ và sức mạnh của trình biên dịch 32 bít, Delphi đã tích hợp các
công nghệ riêng rẽ để tạo nên một môi trường phát triển toàn diện, cần thiết và rất hữu ích cho ngành công nghiệp phần mềm nói chung và cho mỗi lập trình viên (dù không chuyên) nói riêng. Luôn có sự dễ chịu, thoải mái và đa dạng về
công cụ cũng như kỹ thuật lập trình bằng môi trường Delphi.
Với những ưu điểm tiêu biểu kể trên, để có thể giao tiếp thuận tiện với người sử dụng với giao diện dễ dùng mà vẫn đảm bảo giao tiếp tốt với phần
cứng hệ thống, ta sử dụng ngôn ngữ lập trình Delphi thông qua bộ lập trình phần
mềm Delphi 2010.
6.4 Thiết kế chương trình chính
Một số hàm quan trọng của chương trình :
Hàm xử lý kết nối cổng nối tiếp RS-232 : Hàm này sẽ quét các cổng COM trong máy tính mà chưa được sử dụng để tạo một danh sách cho người sử dụng
chọn rồi kết nối
procedure TFormMain.btnCommScanConnectClick(Sender: TObject);
Hàm xử lý sự kiện OnComm : ActiveX phát sinh khi có một sự kiện truyền thông nào đó xảy ra trên cổng nối tiếp
procedure TFormMain.mainMSCommComm(Sender: TObject);
Hàm xử lý chuỗi lệnh EVI : Hàm này phân tích chuỗi lệnh điều khiển camera
Sony EVI-D100, đổi thành chuỗi byte rồi truyền vào cổng nối tiếp RS-232 procedure TFormMain.EVICommandExec(strEVICommand: string);
Hàm lắng nghe mạng máy tính : Hàm này sử dụng khi chạy ở bên server, lắng nghe trên mạng yêu cầu kết nối của máy tính từ xa
procedure TFormMain.mainServerSocketListen(Sender: TObject; Socket: TCustomWinSocket);
Hàm yêu cầu kết nối mạng máy tính : Hàm này sử dụng khi chạy ở bên client, yêu cầu kết nối tới máy khác từ xa
procedure TFormMain.mainClientSocketConnect(Sender: TObject; Socket: TCustomWinSocket);
Hàm chấp nhận kết nối mạng máy tính : Hàm này sử dụng khi chạy ở bên server, sau khi có yêu cầu kết nối của bên client sẽ đồng ý cho kết nối
Socket: TCustomWinSocket);
Giao diện chương trình sau khi đã hoàn thànhnhư sau:
Hình 6.4 : Giao diện chương trình (a)
Và giao diện chương trình mở rộng để khi người sử dụng ra lệnh điều
khiểntrực tiếp cho camera Sony EVI-D100 :