2009-02-26 47 views
5

Tôi hiện đang làm việc trên một dự án liên quan đến công tắc 4 cổng A/V. Công tắc này có thể được điều khiển thông qua RS-232.Giao diện Javascript với Cổng nối tiếp RS-232

Máy tính sẽ giao diện với công tắc sẽ chạy Vista. Tôi muốn tạo một tiện ích thanh bên có 4 nút-1 cho mỗi cổng trên nút chuyển. Khi người dùng nhấn nút, nó sẽ chuyển sang cổng đó.

Tôi đã thực hiện một chút googling, và có vẻ như không có một cách rất tốt để giao tiếp giữa javascript và rs-232.

Có ai có bất kỳ đề xuất nào cho tôi không?

Cảm ơn!

+0

kiểm tra hướng dẫn trên nút chuyển - đôi khi có một tổ hợp phím chọn một trong các cổng. (ví dụ: <1-4>) khác hơn thế, tôi nghĩ những người khác là đúng - JS được tách biệt với những thứ cụ thể của máy. – Tim

+0

Bạn đang nói về JavaScript được thực hiện trong trình duyệt? –

Trả lời

6

Tôi nghĩ bạn sẽ cần thêm lớp Java hoặc Active-X ở giữa. JavaScript là khá tốt bị cô lập (cố ý) từ hệ điều hành.

1

Bạn có thể thử xem một thứ gì đó như V8 và viết một trình bao bọc nhỏ cho thư viện C để hiển thị với máy ảo.

+0

V8 là rất tốt đẹp btw. –

1

Bạn cần một thành phần ActiveX RS-232 mà bạn cài đặt trên hệ thống và sau đó tạo một đối tượng từ trong mã javascript trong tiện ích thanh bên của bạn. Lưu ý rằng không có tiêu chuẩn để tạo ra các đối tượng từ các thành phần ActiveX, điều này chỉ có sẵn trong JScript, Microsoft thực hiện ngôn ngữ chúng ta đều biết là Javascript.

8

Bạn có thích hacks phức tạp không?

Cài đặt máy chủ web. Sử dụng CGI, Python, PHP, Perl hoặc một số phương pháp khác để kiểm soát cổng nối tiếp từ một trang trên máy chủ web.

Chỉ điều khiển tại trang web.

+2

Nó không phức tạp. Bất cứ ai "-1" d này là ngớ ngẩn. Nó đơn giản hơn nhiều so với việc viết mã ActiveX hoặc XPCOM để gửi thư rác ra cổng nối tiếp. –

+0

+1 cho bên ngoài (hoặc bên trong) hộp. Câu trả lời tốt! – Moose

+0

+1; nó thậm chí không nhất thiết phải là một máy chủ web đầy đủ, có thể chỉ là một C daemon (tôi đoán C là cách dễ nhất để truy cập vào cổng nối tiếp) mà nghe trên một ổ cắm và nói một cái gì đó gần đủ để HTTP để đánh lừa trình duyệt ;-) – Kieron

2

Tôi không có giải pháp, nhưng ở đây có thể là sự khởi đầu của một giải pháp.

  1. Signed java applet sẽ cung cấp cho bạn truy cập vào hệ thống
  2. Sử dụng RXTX (Java nối tiếp COM API) để kết nối với cổng nối tiếp
  3. Applet sẽ cần phải cài đặt các file vào thư mục jre/ext. Khởi động lại ứng dụng sau khi làm như vậy.

Bây giờ nếu bạn đang chạy javascript từ máy của riêng mình, bạn có thể sử dụng HTA để có toàn quyền truy cập vào hệ thống.

+0

Bạn đăng câu trả lời bắt đầu 'Tôi không có giải pháp, nhưng đây có thể là sự khởi đầu của một câu trả lời ??? ??? Một nhận xét, nhiều nhất là – Mawg

3

Javascript nói riêng hoặc chỉ từ trình duyệt với một số phương pháp? Và trình duyệt nào? (IE hoặc Firefox?) Các plugin Firefox sử dụng XUL + javascript khá dễ dàng, mặc dù bạn vẫn phải triển khai một cái gì đó trong XPCOM (tương đương với Mozilla của ActiveX/COM) để làm việc với RS232.

Hoặc bạn có thể sử dụng JSDB làm máy chủ web ngẫu nhiên (trên một cổng thay thế của máy cục bộ). Đó là ridiculously dễ dàng để sử dụng cổng RS232 trong JSDB:

c:\>jsdb 
js>S=new Stream('com1://115200'); 
com1 
js>S.write('\x00'); // send ASCII character 0 to the serial port 
1 
js> 

Vì vậy, thực hiện trình duyệt-side của bạn chỉ có thể là bất cứ điều gì yêu thích bookmark/liên kết của bạn/thingy là các liên kết đến http://localhost:9999/comport/1 nơi 9999 là cổng # JSDB được nghe và "1" là công tắc cổng nối tiếp. Mã JSDB sẽ lắng nghe cổng và gửi lệnh RS232 thích hợp sau khi phân tích cú pháp yêu cầu GET từ trình duyệt.

1

Tôi rất tiếc khi đăng bài dưới câu hỏi của chính mình- Tôi chưa đăng ký, vì vậy bây giờ tôi không thể chỉnh sửa nó.

Tôi muốn triển khai Tiện ích thanh bên của Vista cho tác vụ. Thật không may, có vẻ như đó chỉ là những tài liệu html cơ bản với javascript, vì vậy nó không giống như vậy sẽ là một giải pháp tốt cho tôi. Tôi có lẽ sẽ chỉ viết một ứng dụng .Net hoặc một cái gì đó.

Cảm ơn tất cả các đầu vào của bạn. Nếu bất kỳ ai vẫn có ý tưởng, tôi sẽ lấy chúng.

0

AFAIK, thời gian chạy của tiện ích Vista hỗ trợ việc sử dụng các điều khiển ActiveX đã ký. Bạn cũng có thể sử dụng Java. Bạn có thể tạo một trình bao bọc ActiveX cho .Net có một số lượng hỗ trợ hợp lý cho các thiết bị nối tiếp. Đối với hầu hết các phần ActiveX + Serial truyền thông được giới hạn trong điều khiển thương mại.

3

RealTerm có giao diện COM mở rộng và dễ kiểm soát từ JavaScript trên cửa sổ. SourceForge downloads page có phiên bản 2.0.0.57 và i2cchip.com có phiên bản 2.0.0.70.

Có một ví dụ JavaScript trong thư mục con "mẫu" được cài đặt theo mặc định.

Đáng buồn thay, các ví dụ JavaScript dường như đã bị xóa khỏi các phiên bản sau 4 Nó vẫn có thể thực hiện được, nhưng không có ví dụ.

Các vấn đề liên quan