Tôi gặp vấn đề lạ với một số mã mà tôi thừa kế từ một lập trình viên khác đã rời công ty và cần một số hướng dẫn về cách thậm chí bắt đầu giải quyết nó.Cổng nối tiếp USB ảo trùng lặp được tạo - điều gì có thể gây ra điều này?
Vấn đề là - trên cơ sở bán thường xuyên, chúng tôi nhận thấy rằng các cổng kết nối ảo ảo USB trùng lặp đang được tạo. Ví dụ, trên PC của tôi, khi tôi xem các Cổng trong Trình quản lý Thiết bị và chọn "Xem Thiết bị Ẩn", tôi có hai mục nhập cho cùng một thiết bị - một trên COM6 và một trên COM8.
Thật không may, chúng tôi không thể tạo lại sự cố một cách đáng tin cậy. Chúng tôi nghi ngờ nó có thể xảy ra khi một người nào đó nhanh chóng ngắt kết nối và kết nối lại cáp USB khi phần mềm của chúng tôi đang chạy, nhưng điều đó cần phải được xác nhận.
Theo như tôi có thể biết, mã được viết giả định rằng sẽ không có ai rút phích cắm cáp. Tôi không thấy logic nào phát hiện tình trạng này sau khi SW bắt đầu. Và nó không thành công khi bạn cắm lại cáp - âm thầm tạo ra đọc và ghi lỗi ngay cả sau khi cáp được cắm trở lại in Bạn phải khởi động lại chương trình trước khi nó sẽ hoạt động trở lại.
Tôi có rất ít trải nghiệm nối tiếp và USB, đồng thời có chút mất mát về cách bắt đầu khắc phục sự cố này.
Có ai có thể đề xuất tại sao điều này có thể xảy ra không?
Misc. Cụ thể, trong trường hợp họ có thể có liên quan:
mã nối tiếpUSB là trong C++ DLL/trình điều khiển
VS2008
FTDIBUS USB Serial
Windows XP và Win7
Screen shot của mục nhập Registry trùng lặp (lưu ý giá trị của khóa đã chọn!)
Có thể liên quan đến điều này? http://blogs.msdn.com/b/oldnewthing/archive/2004/11/10/255047.aspx – jcoder
Có, JohnB là chính xác. Các thiết bị không có số sê-ri được xác định bởi vị trí của chúng trên xe buýt USB. Khi điều này thay đổi, nó được xem như một thiết bị khác. – janm
FTDI khá nổi tiếng với các trình điều khiển crappy của nó. Liên hệ với họ để được hỗ trợ. –