Làm thế nào để quản lý các phụ thuộc?


9

Tôi muốn bao gồm một phụ thuộc như Đăng nhập . Trên trang của nó có ghi:

  • Tải tập tin zip
  • Đặt thư mục Ghi nhật ký trong "library \".

Tôi không muốn tin (với tư duy Maven) rằng đây là cách chúng tôi quản lý các phụ thuộc trong các dự án Arduino. Điều đó có nghĩa là, mọi người kiểm tra gói của tôi sẽ phải lặp lại các bước đó cục bộ (hoặc bạn có bao gồm "thư viện \" trong kiểm soát phiên bản) Cách thực hành tốt nhất để quản lý phụ thuộc là gì?


Không, đó là những gì mọi người làm.
Mã Gorilla

Thư viện là những gì thư viện là. Đây không phải là Maven. Đây là Arduino. Thật đơn giản để những người không có kiến ​​thức về vi điều khiển có thể nháy đèn LED. Nếu bạn muốn các cơ sở IDE thực sự thì hãy sử dụng một IDE thực sự.
Majenko

1
Chà, tôi đang sử dụng cú đánh đầu tiên trong Google cho Arduino IDE, nhưng điều này không giúp tôi phụ thuộc. Làm đèn LED nhấp nháy không cần thiết phải có thư viện và tôi đồng ý rằng mọi thứ nên đơn giản. Đó là lý do tại sao tôi yêu cầu quản lý phụ thuộc.
Markus Malkusch

Thay vào đó, hãy tìm C ++ IDE hoặc G ++ IDE. Và chocrosscompiling
gilhad

Câu trả lời:


6

Arduino có nghĩa là cách dễ dàng cho những người không có kỹ thuật và vì vậy nó che giấu càng nhiều càng tốt từ quan điểm đơn giản trở nên đơn giản.

Đối với dự án đơn giản, nó hoạt động với chi phí đầu tư của các thư viện sao chép ở đây và ở đó và sử dụng "IDE" của Arduino. Gọi các chương trình là "phác thảo" và thao tác để ẩn nó, đó là trong C ++. Và vân vân.

Nếu bạn muốn thực hiện các dự án phức tạp hơn, kiểm soát phiên bản, môi trường tốt và như vậy, bạn cần phải rời khỏi "cách đơn giản là Arduino" và bắt đầu sử dụng các công cụ mạnh mẽ và phức tạp hơn.

Cá nhân tôi sử dụng https://github.com/sudar/Arduino-Makefile https://github.com/ladislas/Bare-Arduino-Project và có nó trong kho GIT.

Bằng cách này, tôi có thể chia sẻ các thư viện giữa các dự án trong nhóm, cũng liên kết đến các thư viện bên ngoài cây hoạt động, cũng như các mô hình con gits, cả hai đều cho phép bạn cập nhật các thư viện từ bên thứ 3 cho tất cả các dự án, cũng như các dự án cũ.

Tôi vẫn sử dụng rất nhiều Arduino (như setup / loop, digitalRead, v.v.), nhưng tôi cũng sử dụng các cấu trúc g ++ "bình thường" trên đường đi. Sau này tôi sẽ chuyển hướng nhiều hơn sang mã C / g ++ / .. đơn giản, có thể sử dụng một số RTOS hoặc lâu hơn, nhưng bây giờ nhu cầu của tôi vẫn chưa có. (google "arduino rtos" Tôi hiện đang đọc https://github.com/greiman/NilRTOS-Arduino )

Arduino không có nghĩa là "thực hành tốt nhất" nào. Nó có nghĩa là "cách nhanh chóng và dễ dàng để làm một cái gì đó, khi bạn không biết gì". Và nó hoạt động, vì bất kỳ ai và con chó của anh ta đều có thể bắt đầu với Arduino và nếu quan tâm, anh ta có thể tự mình đi xa hơn, hoặc anh ta có thể gắn bó dễ dàng và vui vẻ bằng mọi cách.


1

Nếu bạn muốn dự án được khép kín, bạn có thể đặt các phụ thuộc thư viện vào thư mục phác thảo. Vì vậy, cấu trúc thư mục của bản phác thảo Foo với phụ thuộc thư viện Logging sẽ trông giống như thế này:

Foo
|_Foo.ino
|_src
  |_Logging
    |_Logging.h
    |_Logging.cpp

Và trong Foo.ino, bạn sẽ bao gồm thư viện như thế này:

#include "src/Logging/Logging.h"

Thật không may, một số thư viện sử dụng cú pháp bao gồm không chính xác vẫn hoạt động khi thư viện được cài đặt trong một trong các thư mục thư viện nhưng không phải khi nằm trong thư mục phác thảo. Thư viện ghi nhật ký sử dụng cú pháp bao gồm đúng nhưng đôi khi để đặt thư viện vào thư mục phác thảo, bạn sẽ cần sửa lỗi này. Ví dụ: giả sử bạn có một thư viện có tên là Bar và trong Bar.cpp bạn sẽ thấy điều này:

#include <Bar.h>

Điều đó sẽ không hoạt động vì nếu được cài đặt trong thư mục phác thảo Bar.h sẽ không nằm trong một trong các đường dẫn bao gồm tiêu chuẩn, do đó bạn cần chỉnh sửa Bar.cpp và thay đổi cú pháp bao gồm thành:

#include "Bar.h"

Điều này sẽ khiến thư mục cục bộ được tìm kiếm cho tập tin bao gồm.

Nhược điểm của hệ thống này là bạn có thể kết thúc với nhiều bản sao của thư viện để cập nhật hoặc sửa đổi từng bản sao. Tất nhiên đó cũng có thể là một lợi ích bởi vì mỗi dự án có thể có phiên bản thư viện hoạt động nổi tiếng của riêng nó sẽ không bị ảnh hưởng bởi bất kỳ cập nhật nào bạn có thể thực hiện cho cùng một thư viện được sử dụng trong các dự án khác.

Tôi thường chỉ thêm các hướng dẫn về cách cài đặt các phụ thuộc thư viện theo cách thông thường vào tài liệu cho một dự án. Điều đó nên nằm trong khả năng của người dùng Arduino trung bình. Nếu một phiên bản cụ thể của một thư viện là cần thiết thì bạn tài liệu đó. Tuy nhiên, có những trường hợp tôi muốn bàn giao một dự án độc lập cho một người không quen sử dụng Arduino IDE và đó là khi tôi đã sử dụng hệ thống được mô tả ở trên cho tất cả các thư viện bên thứ 3 cần thiết.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.