Tôi là một nhà vật lý thực nghiệm và là một người đam mê lớn của Python.Trình điều khiển thiết bị Python
Tôi thấy nó tuyệt vời để phân tích dữ liệu và viết kịch bản, và tôi cũng sử dụng nó để giao tiếp các dụng cụ phòng thí nghiệm (máy phân tích mạng, phạm vi, máy phân tích tín hiệu và bộ tạo tín hiệu ...). Tôi nghĩ Python sẽ là một đối thủ cạnh tranh rất nghiêm trọng đối với MATLAB trong lĩnh vực của tôi nếu có tồn tại một thư viện tốt đẹp kết hợp với các trình điều khiển thiết bị.
Cho đến nay, tôi đã được sử dụng một số chiến lược để giao tiếp trực tiếp từ phiên IPython tôi:
Sử dụng thư viện pyVisa, đó là tốt đẹp, làm việc cho phần lớn các thiết bị này, nhưng một chút bit cấp thấp và yêu cầu thêm một lớp lập trình để hiển thị các chức năng hữu ích cho người dùng.
Gần đây tôi có thể sử dụng trình điều khiển IVI-COM hoặc .NET bằng cách sử dụng pythondotnet (không phải IronPython, thiếu các thư viện NumPy/Matplotlib ...). Giải pháp này rõ ràng là thỏa mãn nhất vì trình điều khiển IVI đã khá cao, và chúng thường được cung cấp bởi các nhà cung cấp và các công cụ từ các nhà cung cấp khác nhau sau đó có thể hoán đổi cho nhau.
câu hỏi đầu tiên của tôi là một kỹ thuật chứ không phải một: Tôi đọc ở khắp mọi nơi mà COM đối tượng được tích hợp trong khuôn khổ NET và rằng bạn có thể sử dụng objets COM diretly trong .NET. Trong trường hợp của tôi, tôi có thể sử dụng các đối tượng COM bằng cách nhập mô-đun comtypes (xem http://code.activestate.com/recipes/578089-using-iviscope-instrument-driver-with-python/) và dotnet
với clr
từ pythondotnet, nhưng tôi không hiểu cách truy cập các đối tượng COM đó bằng mô-đun clr
. Ai đó có thể giải thích liên kết giữa COM và .NET?
Ngoài ra, tôi luôn hơi bối rối, làm cách nào để biết khi nào tôi có tệp DLL, nếu điều này có chứa mô-đun .NET hay không và nếu tôi có thể mở nó bằng phiên bản 4.0 của .NET (Tôi là người mới bắt đầu hoàn chỉnh trong các vấn đề khung này và một liên kết đến tài liệu thích hợp sẽ hoàn toàn tốt đẹp)?
Câu hỏi thứ hai, nói chung, không có mô-đun nào đã thu thập được số lượng trình điều khiển lớn hơn cho các công cụ khác nhau một cách thống nhất? Dường như với tôi như chúng ta phải có hàng ngàn người làm việc trên cùng một vấn đề.
Gần đây tôi đã rơi vào mô-đun lantz http://lantz.glugcen.dc.uba.ar/. Thật không may, đây là trong Python 3.0, trong khi tôi vẫn đang sử dụng Python 2,7 (với phân phối pythonxy cho Windows). Hơn nữa, tôi hơi sợ bởi thực tế là dự án này không cố gắng thực hiện các khuyến nghị IVI, đó sẽ là một điểm khởi đầu tốt.
Bất kỳ nhận xét hoặc liên kết nào đến một nguồn thông tin có liên quan sẽ được chào đón nhiều hơn.
IronPython đã hỗ trợ cho NumPy/scipy: https://www.enthought.com/repo/.iron/ – jhexp
@Samuel: Là một trong những tác giả của Lantz, tôi có thể nói với bạn rằng hỗ trợ IVI là trên lộ trình. Kế hoạch là cung cấp các lớp mixin triển khai các tập lệnh có thể được kết hợp. Điều gì có thể sẽ không xảy ra là sử dụng cùng một API. IVI và quy ước đặt tên Python không tương thích. Nhưng chúng tôi đang mở để thảo luận, vui lòng tham gia danh sách gửi thư hoặc mở một vấn đề để xem các giải pháp thay thế. – Hernan
Bạn có thể không muốn xem [slave] (https://slave.readthedocs.org/en/develop/) một lớp trừu tượng mà tôi đã tạo. Chúng tôi đang sử dụng nó để kiểm soát thiết bị phòng thí nghiệm của mình. – P3trus