Tôi đã chơi bằng cách tạo âm thanh bằng cách sử dụng các hàm sóng toán học trong C. Bước tiếp theo trong dự án của tôi là nhận đầu vào của người dùng từ bộ điều khiển bàn phím MIDI để điều chỉnh sóng khác quảng cáo chiêu hàng.Lập trình thiết bị Linux - Đọc trực tiếp từ/Dev
Khái niệm đầu tiên của tôi là điều này tương đối đơn giản và Linux, là Linux, sẽ cho phép tôi đọc luồng dữ liệu thô từ thiết bị của mình giống như bất kỳ tệp nào khác.
Tuy nhiên, nghiên cứu áp đảo khuyên rằng tôi viết trình điều khiển thiết bị cho bộ điều khiển MIDI. Ý tưởng chung là mặc dù các tập tin thiết bị có thể có mặt, hạt nhân sẽ không biết những gì các cuộc gọi hệ thống để thực thi khi ứng dụng của tôi gọi các hàm như read() và write().
Bất chấp những cảnh báo này, tôi đã làm một thử nghiệm. Tôi cắm vào bộ điều khiển MIDI và đặt tên cho tập tin thiết bị "/ dev/midi1". Một dòng ổn định của các ký tự null xuất hiện, và khi tôi nhấn một phím trên bộ điều khiển MIDI một vài byte xuất hiện tương ứng với các khối thông báo dự kiến mà một thiết bị MIDI sẽ xuất ra. MIDI Protocol Info
Vì vậy, câu hỏi của tôi là:
Tại sao dòng cat'ed cư xử theo cách này?
Điều này có nghĩa là có trình điều khiển thiết bị cắm và chạy đã được cài đặt trên hệ thống của tôi không?
Tôi có nên tiếp tục và viết trình điều khiển thiết bị hay tôi có thể đọc sách như một tệp không?
Cảm ơn bạn đã nâng cao để chia sẻ sự khôn ngoan của bạn trong các lĩnh vực này.
thay vì sử dụng nó, tôi khuyên bạn nên đọc() thiết bị từ chương trình 'C'. Bạn nói rằng bạn đang nhìn thấy dữ liệu 'hợp lệ', tại sao không tìm ra chắc chắn? btw, phải có một trình điều khiển thiết bị ở đó, nếu không bạn sẽ không có một tập tin thiết bị, cũng không có cách nào để truy cập nó. – KevinDTimm